Odel

Changelog

Every release, traceable

Each version is cut, written, and tagged automatically when a pull request merges — straight from the commit history. Currently at v0.4.0.

Back to About
  1. v0.4.0

    minor2026-06-18

    Organizations land as a first-class concept for every account, external MCP gateways gain a full data model with session proxying via a new Durable Object, and the proxy now routes the complete MCP request/response surface end-to-end.

    Features

    • auth, db, apex: organization foundation (personal-org-for-everyone)#244
    • mcp-proxy, mcp-client: proxy the full request/response MCP surface through the gateway#243
    • mcp-proxy, db, apex: external MCP gateways — first-class model v0#234
    • apex: SEO foundation + marketing landing at root#231

    Fixes

    • ci, apex: make release push fast-forward-only; backfill #220 into v0.3.2#225
  2. v0.3.2

    patch2026-06-16

    The release pipeline now cuts versions on demand rather than on every merge, batching all PRs since the last tag into one deliberate release with correct per-PR attribution in the changelog.

    Fixes

    • dev-portal: validate project PUT bodies and upsert tag parents (#167, #176)#220

    Refactoring

    • ci, release-tools: cut releases manually, batching PRs since the last tag#223
  3. v0.3.1

    patch2026-06-16

    The changelog and roadmap on odel.app now update on every release — release commits trigger an apex rebuild so the site is always current, and the CI release pipeline is idempotent.

    Fixes

    • apex, ci: move roadmap/changelog into apex so release commits deploy to prod#221
    • ci: make release tag + GitHub Release steps idempotent#221
  4. v0.3.0

    minor2026-06-15

    Registry refresh now skips external servers that haven't changed since their last import, making each background sync faster and more targeted.

    Features

    • jobs, apex-api: skip-if-fresh registry refresh + per-server pipeline units#214

    Fixes

    • jobs, apex-api: key skip-if-fresh on registry updatedAt, not publishedAt#214

    Documentation

    • jobs, apex-api: address review nits — comments + JSDoc#214
  5. v0.2.0

    minor2026-06-15

    Marketplace endpoint cards now show a live, tabbed listing of every tool, resource, and prompt an external MCP server exposes — fetched on demand and cached for 12 hours.

    Features

    • apex: tabbed live capability listing on the Endpoints tab#215
    • ui: add resource/prompt lists and make tool inputSchema optional#215
    • apex-api: add external module capabilities endpoint with 12h cache#215
    • db: cache external server capabilities on modules (migration 0007)#215
    • mcp-client: probe full capability surface (tools, resources, prompts)#215

    Fixes

    • apex-api, apex, mcp-client: graduated payload trim; retry on unreachable; auth probedAt#215
    • apex-api, apex: guard capability UPDATE; narrow types; doc deferred races#215
    • ui, apex: hide empty prompt args; retry button on probe error#215
    • apex-api: rate-limit forced capability refresh; log oversized drops#215
    • mcp-client: close probe connection when capability listing fails#215

    Maintenance

    • db, repo: migration trailing newlines; document mcp-client zod3 pin#215
    • apex-api, mcp-client: wire mcp-client dep and pin zod to catalog:zod3#215
  6. v0.1.0

    minor2026-06-15

    First release — ships the complete platform foundation: 3D dock landing, marketplace with server-side search and endpoint probing, developer portal with in-browser build and deploy, external registry ingestion, Sentry across all services, CI gates, service API keys, and an autonomous release pipeline that keeps this changelog and roadmap up to date.

    Features

    • ci: add autonomous release pipeline (version + changelog + roadmap on merge)#213
    • apex: redesign about page and add changelog route#213
    • ui: drive roadmap & changelog from data with shipped-in provenance#213
    • release-tools: add deterministic helpers for the autonomous release pipeline#213
    • apex: show verified transport + auth on the endpoint card#213
    • apex-api: persist and expose endpoint probe results#213
    • jobs: probe external endpoints during registry refresh#213
    • db: add endpoint-probe columns to modules#213
    • mcp-client: remote MCP client + SSRF-guarded capability probe#213
    • apex: native badge, about-row icons, deployment/type split, external endpoint card#213
    • apex: marketplace refresh — dense cards, list view, server-driven browse#213
    • apex-api: server-side search, filters, sort and facets on module listing#213
    • jobs: add jobs worker with scheduled external-registry refresh workflow#213
    • sentry: add instrumentOdelWorkflow wrapper for Cloudflare Workflows#213
    • apex, apex-api: admin service-key management UI with list/revoke endpoints#213
    • apex-api, db: wire Better Auth api-key plugin with service keys#213
    • repo-wide: add official MCP registry scraper CLI#213
    • apex-api, ui: hotlink external MCP server icons#213
    • db, types, apex-api: record namespace-verified ownership on imported servers#213
    • apex-api: add admin bulk-import endpoint for external MCP servers#213
    • db, types: add external MCP registry schema fields and config types#213
    • dev-portal: configurable build command, root dir, install & entry point#213
    • dev-portal: deployments page polish#213
    • dev-portal: clearer secrets & variables card#213
    • dev-portal: restyle deploy card for readability#213
    • dev-portal: copy-to-clipboard buttons for deployment logs#213
    • dev-portal: add cancel and force-redeploy controls to deployment UI#213
    • dev-portal: cancel in-flight deployments and reap orphaned deploy locks#213
    • mcp-proxy: emit v2 app.odel/* context+secrets envelope#213
    • dev-portal: add public inspector Vars tab for Odel context + secrets#213
    • apex: USB-C connectors, scroll smoothing, and checkpoint dwells#213
    • apex: ship the dock landing at /landing, retire the old one#213
    • apex: land the scroll narrative on a crescendo CTA#213
    • apex: polish the landing flip and cable ride#213
    • apex: add the flip and cable ride to the landing CTA#213
    • apex: add landing auth chapter and finale platform features#213
    • apex: add landing text scrims and responsive mobile framing#213
    • apex: densify landing scroll choreography#213
    • apex: recess landing dock ports and add line-weight contrast#213
    • apex: make the landing dock read as a dock#213
    • apex: add scroll-driven 3D dock landing page POC#213
    • ci: give sentry triager + issue resolver read-only wrangler access#213
    • apex-api, chat-api: add ESLint flat configs and fix unused imports#213
    • ci: add PR type-check/lint gate and wire resolver to wait on it#213
    • ci: add label-gated issue resolver workflow#213
    • ci: add nightly Sentry triager workflow#213
    • dev-portal: wire Sentry across worker, DOs, and SPA client#213
    • chat-api, mcp-proxy: wire Sentry HTTP error capture via @repo/sentry#213
    • sentry, apex-api, apex: unify Sentry wiring into @repo/sentry#213
    • analytics: type-safe schema, query builder, and usage stats (#40)#213
    • apex-api: add Sentry source map uploads for stack traces#213
    • apex: add Sentry Session Replay integration#213
    • add Sentry error tracking and performance monitoring to apex and apex-api (#39)#213
    • dev-portal: deployment UX improvements (#36)#213
    • mcp-proxy: add Analytics Engine for invocation tracking (#33)#213
    • odel-docs: add documentation structure and fix inspector ports#213
    • navbar: add docs navigation with icons across all apps#213
    • odel-docs: sidebar styling and theme hydration fixes (#30)#213
    • odel-docs: Fumadocs styling and Navbar02 integration (#29)#213
    • odel-docs: replace Docusaurus with Fumadocs + React Router v7 SSR#213
    • add theme system with light/dark mode toggle (#28)#213
    • dev-portal: add required secrets editor for modules (#26)#213
    • dev-portal: Module publishing pipeline with selective options (#23)#213
    • dev-portal: namespacing and overview page improvements (#22)#213
    • dev-portal: add MCP Inspector for testing deployed modules (#19)#213
    • dev-portal: implement user-scoped project naming (#18)#213
    • Add preview environment support for apex (#14)#213
    • dev-portal: add validation config for deployment#213
    • implement Developer Portal with deployment infrastructure (#13)#213
    • add UI for creating new email templates and editing metadata#213
    • add UI for editing template availableVariables#213
    • migrate beta signup notification to database template system#213
    • add email template management system#213
    • add admin dashboard with beta signup management#213
    • add skeleton loaders and improve sidebar styling#213
    • improve MCP client display with session expiry and details#213
    • add account management pages with MCP client controls#213
    • add displayUsername field for Better Auth username plugin#213
    • add public module schema endpoint for MCP discovery#213
    • configure OAuth and MCP for external client access#213
    • add OAuth consent page infrastructure for MCP clients#213
    • add OAuth authentication for external MCP clients#213
    • improve icon caching and clean up debug logging#213
    • implement opt-out logic for default modules#213
    • mcp-proxy: add testing infrastructure with vitest-pool-workers#213
    • chat-ui: add guest mode handling to sidebar navigation#213
    • chat-ui: disable chat input for guest users#213
    • chat-ui: implement guest mode with authentication prompt#213
    • chat-ui: add session cookie support to API services#213
    • chat-ui: integrate Better Auth client#213
    • ui: add shadcn dialog component to shared UI package#213
    • apex: configure for Cloudflare Pages deployment#213
    • apex: improve navbar UX and consolidate auth schema#213
    • implement role-based beta access gating system#213
    • apex-api: add bulk query support for modules endpoint#213
    • chat-ui: integrate apex-api for module catalog data#213
    • apex-api: add field selection and includes to modules API#213
    • ui: add markdown rendering support for module descriptions#213
    • seeds: add production modules to local development seed#213
    • modules-db: add 'default' deployment type for core modules#213
    • database: implement modules catalog v2 schema with shared types#213
    • apex: configure environment-based API URLs and settings#213
    • ui: enhance module components and add roadmap visualization#213
    • apex: add email notifications and bot protection to beta signup#213
    • ui: add shared RoadmapFlowchart component#213
    • apex: add comprehensive module pages with SEO-friendly routes#213
    • apex: update navigation to use React Router Links#213
    • apex: add beta signup system with rate limiting#213
    • themes: add complete color variables to monokai theme#213
    • apex: integrate navbar and breadcrumbs in root layout#213
    • apex: add breadcrumb component with dynamic generation#213
    • apex: move navbar to shared package and customize for Odel#213
    • apex: add navbar-02 component from shadcn registry#213
    • shadcn-ui: add navigation-menu and popover components#213
    • types: add module type definitions and export structure#213
    • ui: add shared UI components and module card component#213
    • apex-api: add shared module management endpoints#213
    • apex: initial React Router v7 SSR application setup#213
    • modules: add modules-db migrations for catalog management#213
    • security: implement hash-once-and-store for user and conversation IDs#213
    • modules: add email-simple module integration#213
    • orchestrator: fetch user and profileId for context injection#213
    • executor: implement context injection layer for modules#213
    • modules: add profile-scoped secret decryption#213
    • db: add profile-scoped secrets and conversation profiles#213
    • crypto: add AES-256-GCM encryption and SHA-256 hashing utilities#213
    • docs: add dynamic changelog with GitHub API integration#213
    • docs: add Obsidian cross-linking support with remark plugin#213
    • add shadcn/ui components to shared packages#213
    • initialize Docusaurus documentation site with Obsidian integration#213
    • initialize apex-ui and apex-api for landing page#213
    • create shared authentication package#213
    • implement D1 migrations and lazy default module granting#213
    • create-turbo: install dependencies#213
    • create-turbo: apply pnpm-eslint transform#213
    • create-turbo: apply official-starter transform#213
    • create-turbo: create basic#213

    Fixes

    • ci, ui: address PR review — harden agent prompt, pin model, DRY repo URL#213
    • apex: rename endpoint badge "Verified" → "Probed" with info tooltip#213
    • mcp-client, apex-api: address PR review round 2 — SSRF flag scope, auth-known, probeError leak#213
    • mcp-client, apex-api: address PR review — honest unreachable auth + redirect downgrade#213
    • apex: installed-view spinner hang + stale data, https-only external links#213
    • apex, ui: tidy copy-timer ref, document sanitize order, TypePill fallback style#213
    • apex: installed-only loading flash, type-label safety, endpoint timer cleanup#213
    • ui, apex, apex-api: scope README sanitize allowlist; document creator cap and test isolation#213
    • apex: harden third-party URLs and trim installed-view refetches#213
    • ui, apex: GitHub-flavored README rendering with sanitized raw HTML#213
    • apex, apex-api: address third review pass on service-key admin UI#213
    • jobs: address review nits on naming, timeouts, and docs#213
    • apex, apex-api: address second review pass on service-key admin UI#213
    • odel-docs: migrate biome config to 2.4 and clear latent lint failures#213
    • apex, apex-api: address review on service-key admin UI#213
    • apex-api, db: address second review pass on api-key plumbing#213
    • apex-api: address review on service-key endpoint and auth middleware#213
    • repo-wide: harden scraper edge cases from review round 3#213
    • ui, repo-wide: address second review pass#213
    • apex-api, ui, repo-wide: address review on external icons + scraper#213
    • apex-api, types: address review — batch writes, slug-collision guard, header denylist, meta size cap#213
    • apex-api: return 401/403 from the admin middleware chain instead of 500#213
    • db: make auth-db migration 0003 replayable on fresh databases#213
    • dev-portal: address review — drop iconKey from allow-list, typed pick#213
    • dev-portal: allow-list editable fields on PUT project (mass assignment)#213
    • dev-portal: normalize POST .../repository response to { project } instead of { module }#213
    • apex, apex-api, chat-api, mcp-proxy, dev-portal: address review on sourcemap upload#213
    • apex, chat-api, mcp-proxy, dev-portal: upload sourcemaps to Sentry, stop serving them publicly#213
    • dev-portal: raise build heap to avoid prod deploy OOM#213
    • mcp-proxy: resolve type errors surfaced by the new check-types gate#213
    • apex, ui, assets: resolve type errors surfaced by the new check-types gate#213
    • apex, dev-portal: migrate to lucide-react v1 (brand icons removed)#213
    • dev-portal: guard null/non-object deploy body against 500#213
    • dev-portal: persist build config after concurrency gate, guard input types#213
    • dev-portal: reject malformed deploy bodies, catch DEL char, migration newline#213
    • dev-portal: review cleanups — consolidate notFound, harden inspector headers#213
    • dev-portal: keep editor WS auth-only, defer ownership to org model (#145)#213
    • dev-portal: harden deploy-auth per review — 404 over 403, editor session ownership#213
    • dev-portal: authenticate deployment routes and websockets#213
    • dev-portal: address deploy-controls review findings#213
    • dev-portal: working theme tokens for module page tab bar#213
    • dev-portal: latest build no longer loses logs after page reload#213
    • dev-portal: single close button and proper width for historical log dialog#213
    • dev-portal: split BUILD_STATE KV between local dev and production#213
    • dev-portal: use wrangler-equivalent esbuild resolution when bundling modules#213
    • dev-portal: bump BuilderSandbox base image to sandbox 0.6.5#213
    • dev-portal: trim Vars context inputs before building the envelope#213
    • dev-portal: defensively normalize persisted Vars secret rows#213
    • dev-portal: tidy inspector Vars preview build and reveal-state cleanup#213
    • dev-portal: show placeholders for per-call requestId/timestamp in tools/call preview#213
    • dev-portal: address round-2 inspector Vars review nits#213
    • dev-portal: address public inspector Vars review#213
    • apex: stop production build OOM by gating source maps#213
    • apex: address landing review — dispose geometries, guard dev helper#213
    • ui: keep navbar items transparent after trigger style refresh#213
    • ui: restore navbar icons after NavigationMenuLink refresh#213
    • mcp-proxy, apex-api: repair rotted test suites#213
    • deps: exclude miniflare from minimumReleaseAge cooldown#213
    • repo-wide: remove duplicate hono@4.12.23 entries from lockfile#213
    • deps: dedupe corrupted pnpm-lock.yaml from dependabot merge collision#213
    • dev-portal: guard inspector projectId param for hono 4.12 typing#213
    • apex-api: guard route params against undefined for hono 4.12 typing#213
    • db, dev-portal: per-column timestamp guards, projects-db migration, repoint modules db scripts#213
    • dev-portal: add non-null assertions for .returning() destructure#213
    • db, dev-portal: correct timestamp storage, serialization, and rendering#213
    • apex-api: handle possibly-undefined count result in modules query#213
    • apex: guard landing loader init against uncaught exceptions#213
    • sentry: silence no-explicit-any on the DO-constructor shim#213
    • sentry: accept any DO constructor in instrumentOdelDurableObject#213
    • apex-api, apex, dev-portal: sync .dev.vars.example with code-required keys#213
    • ci: seed .dev.vars from examples so wrangler types includes secrets#213
    • ci: generate Cloudflare Worker types before check-types#213
    • ci: use correct sentry CLI install path in triager#213
    • apex-api, chat-api, mcp-proxy, dev-portal: address #49 review feedback#213
    • apex: use captureReactException in root ErrorBoundary#213
    • chat-api, mcp-proxy: enable nodejs_compat for @sentry/cloudflare v10#213
    • apex-api: restore Cloudflare runtime types under --include-runtime=false#213
    • sentry, types: add eslint config and resolve no-explicit-any#213
    • resolve inspector port collisions across vite-driven apps#213
    • mcp-proxy: Update empty 200 response handling#213
    • apex-api: use --include-runtime=false for wrangler types#213
    • apex-api: handle missing blob8 column gracefully in usage stats#213
    • apex-api: correct Sentry project name and add SENTRY_RELEASE to all envs#213
    • mcp-proxy: move GET handler to end to avoid shadowing .well-known routes#213
    • mcp-proxy: return 405 for GET requests on module endpoints#213
    • mcp-proxy: always inject context for authenticated users (#37)#213
    • mcp-proxy: add Accept header and SSE parsing to public MCP endpoint#213
    • mcp-proxy, dev-portal: support new module SDK transport and context injection#213
    • apex: show creator name instead of userId on module store page#213
    • dev-portal: use service binding URL for apex-api requests#213
    • auth: continue OAuth flow after login and track clientId in analytics (#34)#213
    • navbar: use uri-builder for auth links and add auth to odel-docs (#32)#213
    • odel-docs: fix sidebar scroll offset and hide Fumadocs theme toggle#213
    • add missing @lordicon/react dependency to ui and apex packages#213
    • dev-portal: fix TypeScript error in publish endpoint#213
    • dev-portal: fix TypeScript errors for production build#213
    • dev-portal: rename publishedModuleId references to moduleId#213
    • apex, dev-portal: fix GitHub account linking flow (#17)#213
    • dev-portal: inject window.ENV for environment detection and add all test bindings#213
    • dev-portal: use isReactRouterSSR flag in validation script#213
    • apex-api: handle __Secure- cookie prefix in production auth middleware#213
    • dev-portal: add remote: true to bindings for local dev#213
    • dev-portal: remove --env flag from wrangler deploy#213
    • dev-portal: add vite-env.d.ts for .lottie types#213
    • assets: add type declarations for .lottie files#213
    • resolve TypeScript errors in packages#213
    • apex: use uri-builder for apiUrl in config#213
    • apex: export config object for login/signup forms#213
    • add CASCADE constraints to modules DB and fix KV routing#213
    • enable cross-subdomain authentication for Better Auth (#10)#213
    • address PR review feedback - N+1 query, foreign key, race condition#213
    • address critical security vulnerabilities from PR review#213
    • add CORS headers to OAuth discovery endpoints in mcp-proxy#213
    • add username plugin to auth clients and fix signOut#213
    • correct CORS middleware ordering for OAuth endpoints#213
    • enable public CORS for OAuth endpoints and add cache safety#213
    • proxy OAuth discovery endpoints from apex to apex-api#213
    • correct production URL from mcp-proxy.odel.app to mcp.odel.app#213
    • module detail page icon rendering and creator routing#213
    • update validation script to support React Router SSR pattern#213
    • apex environment config for React Router v7 SSR#213
    • forward authentication to mcp-proxy and handle no-profile case#213
    • address PR review feedback for turnstile fix#213
    • set production turnstile key as fallback in apex#213
    • address critical PR review issues#213
    • prepare all services for production deployment#213
    • resolve module manager bugs and add email module support#213
    • resolve TypeScript errors and add missing auth dependencies#213
    • resolve local environment configuration and service binding issues#213
    • resolve Zod version conflicts between chanfana and better-auth#213
    • types: add explicit null checks to module catalog helpers#213
    • apex: add lottie file support to vite config#213
    • apex: remove main field from Pages wrangler config#213
    • apex: configure Pages SSR worker deployment#213
    • apex: add _routes.json for Cloudflare Pages SSR routing#213
    • apex-api: configure for Cloudflare Git deployment#213
    • apex: configure remote R2 bucket and production API URL#213
    • ui: normalize apiBaseUrl handling and add null safety#213
    • apex: update module queries to use new schema#213
    • apex: move Turnstile site key to environment variable#213
    • docs: resolve changelog API subrequest limit error#213
    • docs: remove broken link to internal docs from intro page#213
    • docs: remove internal docs from public site#213
    • docs: re-add roadmap.md with lowercase filename#213
    • docs: properly rename Roadmap.md to roadmap.md#213
    • docs: rename Roadmap.md to roadmap.md for consistency#213
    • remove internal doc links from public intro page#213
    • remove dev environment variables from production deployment#213
    • Update D1 database IDs to production values#213

    Performance

    • repo-wide: parallelize check-types/lint via turbo topo transit node#213
    • monaco-editor: lazy-load editor to code-split monaco out of initial bundle#213
    • apex: cap landing canvas at 60fps; add WebGL error boundary#213
    • optimize useThemeColors hook to reduce re-renders#213

    Refactoring

    • apex, apex-api: memoize filterKey, document tag-filter OR semantics#213
    • dev-portal: share build-config validation, address review#213
    • dev-portal: extract injectAuthHeaders, align requireUserId 401 shape#213
    • dev-portal: remove unused DeploymentLogViewer#213
    • dev-portal: show native MCP output schemas, drop the extended flag#213
    • apex: address landing review nits#213
    • ui, apex: refresh shadcn primitives from registry and migrate to unified radix-ui#213
    • ui, apex: move custom components out of shadcn primitives dir#213
    • apex-api: consolidate inline module field-mapping into typed helpers#213
    • apex: remove unused welcome scaffolding#213
    • apex-api: migrate raw D1 queries to @repo/db Drizzle clients#213
    • ci: gate on type-check only; defer lint until configs exist#213
    • ci: run Sentry triager and issue resolver on Sonnet#213
    • sentry: clarify type escapes flagged in #49 re-review#213
    • remove custom OAuth scopes, use standard OIDC scopes#213
    • standardize module IDs to @Creator/moduleId format#213
    • standardize environment configuration across all apps#213
    • consolidate environment variables in wrangler.jsonc#213
    • clean up chat-ui and update API clients after auth migration#213
    • standardize CORS with shared middleware and fix profile timestamps#213
    • consolidate CLAUDE.md documentation to root#213
    • consolidate database migrations in packages/db#213
    • migrate profile management from chat-api to mcp-proxy#213
    • chat-ui: update asset imports after centralization#213
    • assets: centralize shared assets in packages/assets#213
    • apex: migrate from Pages to Workers SSR deployment#213
    • Complete auth refactor#213
    • chat-ui: clean up ModuleManager and fix UI issues#213
    • chat-ui: use shared ModuleCard from @repo/shadcn-ui#213
    • chat-api: remove MODULES_DB dependency and catalog endpoints#213
    • database: consolidate modules-db migrations and seeds#213
    • apex: migrate module routes from slug to moduleId#213
    • centralize database migrations and fix shared local D1 access#213
    • apps: update imports to use @repo/shadcn-ui#213
    • ui: rename package from @repo/ui to @repo/shadcn-ui#213
    • chat-ui: remove unused dev dependencies#213
    • apex-ui: remove legacy SPA in favor of React Router v7 SSR app#213
    • migrations: organize migrations into per-database folders#213
    • mcp: update adapter to use ModuleContext parameter#213
    • rpc: update handlers to use unified context object#213
    • centralize shared configs and theming system#213

    Documentation

    • repo-wide: require PRs that add code to ship tests covering it#213
    • add area: label convention to CLAUDE.md#213
    • claude: refresh Sentry coverage — all active apps wired#213
    • claude: document the two agent observability channels (file logs + sentry)#213
    • refresh CLAUDE.md with new apps, packages, and commit policy#213
    • update documentation for @repo/shadcn-ui rename#213
    • add internal monorepo architecture documentation#213
    • update roadmap and intro with MCP platform vision#213
    • add module context injection architecture and update roadmap#213

    Tests

    • sentry: address review — restore console.error spy after each hono test#213
    • analytics, types, worker-test: address review — schema once per file, 50-char boundary, document detectClient false positive (#179)#213
    • worker-test: address review — drop unused globals flag from vitest config#213
    • analytics, sentry, types, db, monaco-editor, worker-test: add unit suites for remaining shared packages#213
    • auth, middleware: address review — strict JWKS stub URL, link #173#213
    • auth, middleware: add unit suites for the shared auth and CORS packages#213
    • dev-portal: address review — forged x-user-id test on project routes#213
    • dev-portal: address review — repository-disconnect IDOR test, seed project in env-validation test#213
    • dev-portal: address review — IDOR coverage for all ownership-checked project endpoints#213
    • dev-portal: address review — identical-404 bodies on PUT IDOR tests, full repository setup body#213
    • dev-portal: cover project routes with integration tests#213
    • dev-portal, ci: apply pr 161 review feedback#213
    • repo-wide: rebuild test framework on vitest projects with ci gate#213
    • apex-api, mcp-proxy: run all app test suites from root via turbo#213
    • mcp-proxy: assert Bearer scheme on WWW-Authenticate challenge#213

    Maintenance

    • repo-wide: bump wrangler catalog to ^4.100.0#213
    • repo-wide: bump better-auth to 1.6.16, add @better-auth/api-key#213
    • repo-wide: add external MCP server importer CLI#213
    • assets: extend shared base tsconfig for strict type-checking#213
    • repo-wide: reconcile check-types scripts across packages (#69)#213
    • repo-wide, dev-portal: quiet passing-test console output and upstream sourcemap warnings#213
    • dev-portal: sort @sentry/vite-plugin into devDependencies alphabetically#213
    • address review — hash build env, label dummy var paths#213
    • add build job to the checks gate#213
    • split test into its own job behind the checks gate#213
    • monaco-editor: mark lazy editor loading state with role=status#213
    • dev-portal: remove unused editor-test scratch route#213
    • apex, mcp-proxy: wire check-types into the turbo gate#213
    • deps: bump production-minor-patch group, migrate monaco 0.55 namespace#213
    • deps-dev: bump the development-minor-patch group across 1 directory with 4 updates#213
    • deps: bump anthropics/claude-code-action#213
    • dev-portal: retrigger review after workflow posting fix#213
    • ci: deterministic review posting via inline-comment tool and --body-file#213
    • apex-api: apply repo prettier formatting#213
    • dev-portal: clarify Odel key-drift risk and narrow VarsTab props#213
    • deps: bump @modelcontextprotocol/sdk from 1.26.0 to 1.27.0#213
    • apex-api: remove dead module-helper functions#213
    • chat-ui, repo-wide: align prettier formatting on drifted files#213
    • repo-wide: adopt new-york shadcn style and replace tailwindcss-animate with tw-animate-css#213
    • deps: bump vitest to 4.1 and vitest-pool-workers to 0.16#213
    • repo-wide: add missing trailing newlines to package.json files#213
    • repo-wide: migrate shared dependency versions to pnpm catalogs#213
    • repo-wide: introduce pnpm catalog with typescript as proof of mechanism#213
    • repo-wide: upgrade pnpm 10.19.0 to 11.4.0#213
    • deps-dev: bump vite from 7.2.7 to 7.3.3#213
    • deps: bump react-router family from 7.10.1 to 7.15.1#213
    • repo-wide: fix duplicated hono@4.12.23 entries in pnpm lockfile#213
    • db: remove dead seeds and guard against prod clobber#213
    • deps-dev: bump postcss from 8.5.6 to 8.5.10#213
    • deps: remove unused root-level dependencies#213
    • apex-api: remove dead module-helper functions#213
    • mcp-proxy: remove stale npm package-lock.json#213
    • deps: bump hono to 4.12 across all workers and add pnpm override#213
    • deps: bump @modelcontextprotocol/sdk from 1.24.2 to 1.26.0#213
    • deps: bump better-auth to 1.6.11 and drizzle-orm to 0.45.2#213
    • ci: guard review skip on event sender, not pr author#213
    • ci: check both pr author type and actor for bot review skip#213
    • ci: skip claude review job for bot-triggered runs#213
    • db: remove one-off module→project import scripts#213
    • chat-ui, dev-portal, ui: address PR #71 review feedback#213
    • eslint-config: make ESLint the repo-wide lint gate#213
    • gitignore .claude/settings.local.json (per-machine local settings)#213
    • ci: give Sentry triager + issue resolver domain-scoped WebFetch#213
    • deps: bump pnpm/action-setup from 4 to 6#213
    • deps: bump actions/setup-node from 4 to 6#213
    • deps: bump actions/checkout from 4 to 6#213
    • ci: scope github-actions group to minor/patch + explicit PR limit#213
    • set pnpm minimumReleaseAge to 7 days (supply-chain cooldown)#213
    • ci: add 7-day Dependabot cooldown for supply-chain safety#213
    • ci: enable Dependabot for npm + github-actions#213
    • ci: rename PR CI workflow to CI (runs on PRs and main now)#213
    • ci: run checks on push to main to warm the shared pnpm cache#213
    • deps: bump @sentry/* to v10/v5 baseline#213
    • scripts: emit turbo dev logs to logs/dev.log.json#213
    • scripts: default pnpm dev to turbo's TUI mode#213
    • deps: bump @cloudflare/vite-plugin 1.14 -> ^1.39 for wrangler 4.95 compat#213
    • deps: bump wrangler 4.95, turbo 2.9, and refresh browserslist#213
    • configure pnpm onlyBuiltDependencies allowlist#213
    • claude: enable cloudflare plugin and expose Odel_Vault#213
    • Update eslint turbo dependency#213
    • separate MODULE_ROUTES KV for dev and prod environments#213
    • update dependencies and fix type errors (#31)#213
    • dev-portal: remove unused test environment config#213
    • dev-portal: add description to package.json#213
    • update auto-generated worker configuration types#213
    • fix XSS vulnerability in email templates and Prism loading error#213
    • update configuration and documentation for MCP integration#213
    • add authentication to mcp-proxy profile endpoints#213
    • configure dev scripts for mcp-proxy integration#213
    • improve IDE integration and consolidate dependencies#213
    • Update root README#213
    • Update commands and paths in claude instrcution files#213
    • Update docs and instrcution files.#213
    • regenerate lockfile with pnpm overrides#213
    • clean up React types and upgrade TypeScript#213
    • apex: change Turnstile theme to dark mode#213
    • seeds: add conversations-db local user profile seed#213
    • chat-api: enhance module service debugging#213
    • add shadcn ui components and project configuration#213
    • apex: add framer-motion and configure components directory#213
    • add Caddyfile for local development proxy#213
    • configure monorepo for hybrid architecture#213
    • add dev seed script and archive old SQL files#213
    • remove setup-guide.md with secrets#213
    • add docs:serve command for full build and serve#213
    • exclude docs from root dev command#213
    • trigger Pages rebuild#213
    • update pnpm-lock.yaml for docs dependencies#213