Changelog & roadmap
What shipped, what's next, and dated commitments through the public MVP launch on July 20, 2026.
v0.1.0 — beta (current)
Released: internal beta, May 2026. Founder dogfood only; production host https://mcp.cortex.jakeselby.com/mcp reserved but not yet serving.
Tools
- 17 tools live in code:
memory.*(4),rules.*(4),trust.*(2),action.communicate/schedule/remind/log,briefing.generate,entity.resolve,entity.relationships. memory.recallwired to real hybrid retrieval.memory.*remainder,rules.*,trust.*,briefing.generate, andaction.logwired to real handlers.action.communicate/schedule/remindstructurally registered as Phase 0 stubs (returnpending_approvalwith a stubdecision_id) — engine wiring follows in Story 7-31.entity.resolve/entity.relationshipsregistered, returnfeature_not_availableuntil the consolidation pipeline ships.
Transport
- Streamable HTTP at
/mcp; SSE on GET; session viamcp-session-idheader. - Health probe at
/health(unauthenticated). - Permissive CORS for dev; production CORS scopes per (user × client) once OAuth lands.
Auth & limits
- Shared static bearer token from AWS Secrets Manager.
- Rate limits: 20/min, 1000/day, daily inference budget per bearer.
- 429 returns
Retry-Afterin seconds.
v0.2.0 — action approval (Story 7-33)
Target: July 20, 2026 (public MVP launch).
- Add
action.pending— pull the queue of decisions awaiting approval. - Add
action.approve— resolve a pending decision and let the engine execute the side effect. - Add
action.reject— resolve a pending decision and discard the side effect. - Replace stub
action.communicate/action.schedule/action.remindwith real action-engine dispatch (Story 7-31). - Add server-initiated
notifications/decisions/createdon the SSE channel. - Add the
ApprovalCeremonyPayloadshape to the public surface contract (already documented in Concepts).
Net effect: the public surface goes from 17 live + 3 stub tools to 20 live tools.
v0.3.0 — substrate surface expansion (ADR-0021 + ADR-0022, 2026-05-27 evening)
Target: July 20, 2026 (alongside v0.2.0 and the trigger dispatch release; public MVP launch). Stacked on top of the cognitive-infrastructure pivot SCP.
- Accept ADR-0021 (Substrate Public API Surface — Read Depth & Learning Channels) and ADR-0022 (Extension Action Class Registration Protocol). ADR-0019 amended additively with an
executed_modifiedoutcome ontrigger.complete(no breaking change to dispatch path). - Promote to public the
meta.*explainability tools (meta.why_this_action,meta.why_this_notification,meta.what_rules_fired) plus newdecision.inspect/decision.history. Per-tool boundary clarification per ADR-0021 + ADR-0020. See Concept: Explainability. - Add counterparty depth read surface —
counterparty.profile,counterparty.list,counterparty.activity,counterparty.classify,trust.posture. Entity-type parameterized per ADR-0018. See Concept: Counterparty depth. - Add commitments primitive —
commitments.list/create/resolve/snooze. Auto-extracted from consolidation Phase 2; writes route through the action engine.commitments.delegateshipsfeature_not_available— V2 (Trusted Delegate). See Concept: Commitments. - Add extension action class registration —
action_classes.register/list/deregisterper ADR-0022. Customers register{client_namespace}.{action_class}for their vertical without internal enum migrations. Per-tenant quota enforced; namespace ownership locked toclient_idwithin tenant. See Concept: Extension action classes. - Add subscriptions / watchlists / alerts —
subscriptions.*,watchlists.add,alerts.set. Inbound interest declaration; evaluator polled at 5-min cadence (event-hooked V1.1+). See Concept: Subscriptions. - Add routing read-preview —
routing.handlerslive MVP;routing.preview+routing.policyshipfeature_not_available(V1.x+ depends on the cross-app routing engine). See Concept: Cross-app routing. - Add feedback learning channel —
feedback.signal(live forsignal_kind="modification_delta"; other kinds stub V1.1+) plus the additiveexecuted_modifiedoutcome ontrigger.complete. Modification-delta classifier splits substantive vs cosmetic; only substantive deltas demote per-counterparty trust. See Concept: Feedback learning. - Add patterns / insights, identity / availability, agent capability discovery families. Subset live MVP; rest ship
feature_not_availablewith documented forward pointers.agent.capabilities()is the canonical runtime self-description. - Add a third metering dimension Substrate Read Calls (Postgres-only, separate from action calls). Plus a per-tenant
action_classes.registerquota. See Rate limits & quotas. - Add three error codes:
namespace_owned,too_many_classes,not_found. Existingfeature_not_availableenvelope extended withdetails.adr+details.section+details.shippingforward-pointers. Full catalog at /pitch/docs/errors.
Net effect: the public surface grows from 20 baseline tools to ~48 tools across 11 families — substrate-grounded cognitive infrastructure callable from any MCP client.
v0.3.0 (companion) — cognitive substrate trigger dispatch (ADR-0019, 2026-05-27 morning)
Target: July 20, 2026 (alongside v0.2.0; public MVP launch).
- Accept ADR-0019 (Cognitive Substrate Trigger Dispatch Protocol). Supersedes ADR-0017 §2 (two-layer proactivity model). The Claude-specific framing drops; Claude Code Routines becomes one of many recipe-level handler implementations.
- Accept ADR-0020 (Internal vs Public MCP Surface Boundary). The Cortex chat app's
/api/mcproute is internal-only; the public reference architecture is the minimal example handler repo plus the recipe library. - Add the
handler.*tool family —handler.register,handler.list,handler.update,handler.delete,handler.rotate_secret,handler.test. - Add the
trigger.*introspection family —trigger.history,trigger.inspect,trigger.replay. - Add the REST callback endpoints
POST /v1/triggers/{trigger_id}/completeandPOST /v1/triggers/{trigger_id}/reverse. - Add outbound HMAC-SHA256-signed webhook dispatch with idempotency keys, exponential retry, and a Postgres-backed DLQ. Spec at /pitch/docs/dispatch.
- Add three error codes:
signature_invalid,handler_disabled,idempotency_conflict. Full catalog at /pitch/docs/errors. - Add outbound trigger dispatch metering as a separate quota dimension (distinct from inbound MCP tool calls).
- Publish the TypeScript handler SDK (
@cortex/sdk-ts) and the minimal example handler repo (examples/handler-minimal/). - Publish recipes for Trigger.dev, n8n, Zapier, custom-webhook at /pitch/docs/recipes.
Net effect: the public surface grows from 20 tools (v0.2.0) to 29 live tools spanning pull (memory / rules / trust / action / briefing / entity) and push (handler / trigger).
v0.4.0 — entity consolidation
Target: Phase 0 follow-up to v0.3.0.
- Wire
entity.resolveagainst the consolidation pipeline. - Wire
entity.relationshipsagainst the consolidated knowledge graph. - Add optional
entity_typeparameter tomemory.*/entity.*tools (defaultperson) per ADR-0018.
v0.5.0 — cross-app routing (V1.1 preview)
Target: V1.1, post-MVP. Lights up once founder beta data shows the multi-app-per-user cohort exists.
- Add the
routing.*tool family —routing.set_default_handler,routing.get_default_handler,routing.list_app_registrations. Records and resolves the user's preference when multiple AI products on Cortex register handlers for the same action class. - Add the MCP-executor handler tier (ADR-0019 Tier 2): Cortex as MCP client to the customer's MCP server. Same envelope; transport via
tools/callinstead of HTTP POST. - Add multi-handler fan-out per (user × action class), opt-in.
v1.0.0 — OAuth + production GA
Target: Phase 1.
- Replace shared bearer auth with per-(user × client) OAuth tokens minted by the operator dashboard.
- Add configurable per-client rate limits and inference budgets.
- Add
X-RateLimit-*response headers. - Scope CORS per registered client.
- SOC 2 Type II in flight; HIPAA posture documented for regulated deployments.