Releases: skibidiskib/ai-codex
v1.3.1: hotfix for --version
Patch release. v1.3.0 reported `ai-codex v1.2.0` when invoked with `--version` because the version string was hardcoded. Fixed by reading from `package.json` at runtime.
No other changes. Recommended upgrade for anyone scripting against `ai-codex --version`.
```
npx [email protected]
```
v1.3.0: SvelteKit + Cloudflare Workers
First major framework expansion since launch. ai-codex now supports SvelteKit projects with the same output shape as Next.js.
Added
- SvelteKit adapter (
src/adapters/sveltekit.ts)+page.svelte,+page.server.ts,+server.ts,+layout.sveltedetection- Route groups
(name), optional params[[opt]], catch-all[...rest] - Detects both function-export and const-export server route handlers
- Both
.tsand.jsvariants supported
- Cloudflare Workers bindings extraction
- Parses
wrangler.jsonc/wrangler.toml - Surfaces D1, R2, KV, AI, Durable Object, and Service bindings in the index
- Parses
- Adapter architecture
- Per-framework files under
src/adapters/ - Cheaper to add new frameworks; Next.js logic isolated from SvelteKit logic
- Per-framework files under
- Test suite
- 53 vitest tests
- Includes a Next.js pipeline integration test that byte-compares generated output against checked-in fixture snapshots
- Negation patterns in `files` array
- `.test.ts` / `.test.js` excluded from the npm tarball
Credits
External PR #5 by @raiden076. SvelteKit groundwork, Cloudflare bindings, and the adapter refactor were their work. Thank you.
Install
```
npx [email protected]
```
v1.2.0 - Drizzle ORM support
What is new
Multi-source schema detection — ai-codex now picks up Drizzle ORM tables alongside Prisma models in the same project.
Drizzle support
- Walks
db/,src/db/,lib/db/,src/lib/db/,app/db/,database/,drizzle/for*.tsfiles containingpgTable/mysqlTable/sqliteTabledeclarations. - Parses table name, columns, primary key, not-null, unique, and
references()foreign keys. - Emits with the same
PK | UQ | FKmarkers as Prisma inschema.md.
Mixed projects
Projects with both Prisma and Drizzle (e.g. legacy migration in flight) get both sources indexed in the same schema.md.
Internals
FrameworkInfo.hasPrisma/prismaSchemaPathreplaced withschemaSources: SchemaSource[].- New
parseDrizzleSchema()with conservative type allowlist and tail-scoping bound to the next field-start index (prevents phantom modifiers leaking from sibling fields). --versionoutput string corrected to v1.2.0.
Closes
- #3 — Drizzle ORM support
Install
npm install -g [email protected]
# or
npx [email protected]Changelog
- v1.1.3 — Pages Router walker
- v1.1.2 — count-based heuristic for stray
src/app/(regression fix from 1.1.1) - v1.1.1 —
src/app/andsrc/pages/detection (deprecated, do not use) - v1.0.1 — initial public release
v1.1.3: Pages Router walker
Pages Router walker (closes a long-standing gap)
Pages Router has been listed as supported since v1.0.0, but the walker only handled App Router naming (route.ts, page.tsx). Real Pages Router projects produced empty output: every section marked "skipped (not applicable)".
v1.1.3 adds a proper walker that handles:
- Routes: any
.ts/.tsx/.js/.jsxfile underpages/api/** - Pages: any
.tsx/.jsx/.ts/.jsfile underpages/**, excluding_app,_document,_error, andmiddleware - HTTP method detection: scans handler bodies for
req.method === 'X'patterns; falls back toANYwhen no branch is detected index.tsxfiles collapse to their parent route (e.g.,pages/blog/index.tsx→/blog)- Catch-all
[...slug]and optional catch-all[[...slug]]correctly converted
Generalized stray-leftover heuristic
The v1.1.2 fix prevented a stray src/app/page.tsx from masking a populated root app/. v1.1.3 applies the same count-based heuristic to Pages Router, so a stray src/pages/index.tsx no longer masks a populated pages/.
No App Router behavior changes
Verified byte-identical output on a 1,063-route App Router project.
Install / upgrade
npx ai-codex@latest
# or
npm install -g ai-codex@latestNotes on previous versions
- v1.1.1 is deprecated (buggy with stray
src/appleftovers; npm install will warn). - v1.1.2 remains valid for App Router users; v1.1.3 is the recommended version for everyone.
🤖 This release was prepared and verified by Claude Code.
v1.1.2: stray src/app heuristic
Stray src/app/ leftover no longer masks the real app/
v1.1.1 unconditionally preferred src/app/ over app/. Any project with both a stray src/app/page.tsx (e.g., from old scaffolding) and a populated root app/ got the stray picked, dropping all the real routes and pages.
v1.1.2 replaces that with a count-based heuristic: walk each candidate (src/app, app), count up to 5 router files, prefer the higher count, with a stable tie-break to src/app per Next.js convention.
Notes
- This release supersedes v1.1.1, which is deprecated.
- For Pages Router support, see v1.1.3.
🤖 This release was prepared and verified by Claude Code.
v1.1.1 (deprecated)
⚠️ This version is deprecated. It has a regression that masksapp/when a straysrc/app/page.tsxexists. Use v1.1.2 or later.npm installwill surface a warning.
What this release intended
Detect src/app/ and src/pages/ for projects using the Next.js src/ directory layout (closes #2).
Before v1.1.1, the framework detector only checked root-level app/ and pages/, so projects using the standard src/ convention got "skipped (not applicable)" for routes.md and pages.md.
Why it was deprecated
The chosen precedence rule (src/app always wins over app) turned out to be too aggressive: a stray empty src/app/page.tsx would mask a populated root app/. v1.1.2 fixes this with a count-based heuristic.
Upgrade
npm install -g ai-codex@latest # or npx ai-codex@latest🤖 This release was prepared and verified by Claude Code.