This repo uses Changesets. Per-package notes are generated automatically on release. The timeline below is the human-curated story of what each release actually delivered, pulled from those per-package changelogs and commit history.
For the full raw record see GitHub Releases and each packages/*/CHANGELOG.md.
New package. A focused Next.js (14/15/16) adapter for apps whose auth backend lives outside Next.js (Spring, Rails, Hono, Go, etc.). Distinct from @kavachos/nextjs which bundles the agent-management runtime — this is the "I have a backend already, just give me session + cookies + refresh on the FE" path.
Ships eight server-side helpers (createAuthConfig, getServerSession, refreshSession, fetchWithRefresh, graphqlWithRefresh, buildAuthHeaders, buildClientHeaders, createSignOutAction) and an Edge-runtime-safe withAuth() middleware via a /middleware sub-export. Cookie prefix policy: __Host-{prefix}-token in production, plain names in development (browsers reject __Host- without Secure on HTTP localhost). 26 tests passing.
Fix on a missed barrel in 0.4.0. The ten new OAuth providers were added to providers/index.ts but the top-level auth/index.ts still pointed at the old nine-provider list, so import { notion } from "kavachos/auth" did not resolve. auth/index.ts now re-exports the whole barrel, so providers added in later releases pick themselves up automatically.
kavachos/standards shipped in 0.4.0 but was missing from the exports field in package.json and from the tsup build entries, which meant import { AGENTIC_JWT_CLAIMS } from "kavachos/standards" failed at resolve time. Both are fixed.
Four things shipped together.
- Agentic JWT claim constants. The two relevant IETF drafts (
draft-goswami-agentic-jwt-00anddraft-liu-agent-operation-authorization-01) are encoded as typed constants. Enabling the newemitAgenticJwtClaimsconfig flag populatesagent_id,agent_type, andtrust_tieron every issued token. Off by default so existing deployments do not change shape on upgrade. - Ten OAuth providers promoted to first-class. Notion, Spotify, Discord, Slack, Twitch, Reddit, Figma, Dropbox, Zoom, and Atlassian each ship as a named export with a typed factory, a
DEFAULT_X_SCOPESconstant, and a profile normaliser. Three files of boilerplate you no longer write per provider. - Audit export as Verifiable Credentials.
exportAuditAsVCin the newkavachos/vcsubpath writes your audit log out as a W3C VC (ldp_vcorjwt_vc, individual events or a Verifiable Presentation). Useful for compliance exports that downstream auditors can verify without touching your database. create-kavachos-appon npm.pnpm create kavachos-app my-appnow scaffolds a working Next.js App Router template.
Two adapter additions and a schema defaults change.
cookieAuth()adapter. Validates a JWT from an httpOnly cookie set by a non-Node backend (Go, Python, Rust). Use this when the canonical session already exists upstream and kavachos is the read side.KavachProviderexternal mode. The React provider can now delegate auth to any external API. Same session semantics, different source of truth.- Feature-gated table creation. The migrator only creates tables for features you turn on. Projects that do not use passkeys no longer get passkey tables.
Three small but load-bearing fixes.
- PKCE
code_verifieris now sent during the token exchange for GitHub, LinkedIn, and Slack. Without it those providers would reject the exchange for any app that had code challenge on. - Cookies no longer set the
Secureflag when the origin is not HTTPS. Local dev onhttp://localhostworks again. requireAuthtests updated for the new enforcement path.
Auth hardening wave. Stricter requireAuth enforcement, production-ready cookie defaults, and the PKCE exchange fixes that got polished in 0.2.1.
Five patches consolidating the launch release. Stable exports, clean build artifacts, working CLI version detection, launch docs.
First release with a real semver contract. Core and the primary client-facing packages were promoted to the 0.1 line. Adapters, plugins, and the dashboard stayed on their existing tracks for a separate coordinated versioning pass.
Each package has its own CHANGELOG.md generated from the changeset history. For release-by-release notes down to the patch level see:
packages/core/CHANGELOG.mdforkavachospackages/cli/CHANGELOG.mdfor@kavachos/clipackages/test-utils/CHANGELOG.mdfor@kavachos/test-utils- Adapters and framework packages: each
packages/*/CHANGELOG.md
kavachos(the core) follows semver. Breaking changes are reserved for major bumps.- Adapters under
@kavachos/*are versioned independently. Each adapter's README pins the core version range it supports.