Capabilities · 15. Status appendix
This is the whole capability set in one table. Every row carries its status, the flag that gates it and that flag's default, the surface it is reached through, and a link to the explainer that says why it exists and what it does not do.
Sort or filter on the # column (family letter plus index) or on Family. Statuses read as follows. SHIPPED means it is in the default code path today. FLAG means it is built and gated, and the flag and its default are named in the next column. FEATURE means a compile-time cargo feature, which cannot be turned on at runtime. STUBBED means the surface exists with no runtime behind it. DECLARED-NOT-WIRED and NOT ACTIVE mean the code exists and no reachable path calls it. n/a in the flag column means the capability is unconditional.
This table is transcribed from the daemon feature inventory taken at 93b41a7d9735c4f7d1186c7a57b861d746273366 and is the only page in this set that duplicates data held elsewhere. Where a row here and an explainer disagree, this table is the defect.
| # | Capability | Family | Status | Flag and default | Reached through | Explainer |
|---|---|---|---|---|---|---|
| A1 | Durable fact memory | A Memory that persists | SHIPPED | n/a | MCP store_fact, query_facts, delete_fact, list_entities, fact_history; HTTP /v1/facts; Console Memory › Facts | 1.1 |
| A2 | Private-by-default namespaces | A Memory that persists | SHIPPED | n/a | MCP store_fact(private), enforced on every recall surface | 1.2 |
| A3 | Tenant partitioning | A Memory that persists | SHIPPED (caveated: an unscoped query defaults to all tenants) | n/a | HTTP all fact routes; Console Memory › Tenants | 1.3 |
| A4 | Erasure: compaction, retention sweep and legal holds | A Memory that persists | SHIPPED; legal holds FLAG | CORECRUXD_FEATURE_LEGAL_HOLD=off | HTTP /v1/legal-holds, POST /v1/admin/actions (compact-facts); CLI admin | 1.4 |
| A5 | The memory panel | A Memory that persists | FLAG | CORECRUXD_FEATURE_MEMORY_PANEL=on (=0 disables) | MCP memory_view, memory_edit, memory_pin, memory_history; Console Memory | 1.5 |
| A6 | Assisted memory formation (engrams, auto-capture) | A Memory that persists | FLAG | CORECRUXD_FEATURE_ENGRAM_MCP=off; CORECRUXD_AUTO_CAPTURE=off | MCP engram_resolve; HTTP /v1/engrams, /v1/memory/session-init, /v1/memory/extract, /v1/memory/candidates | 1.6 |
| B1 | Valid-time queries (as_of) | B Time and truth | SHIPPED (narrow: valid time only) | n/a | MCP query_facts(as_of); HTTP GET /v1/facts?as_of= | 2.1 |
| B2 | Freshness horizons and decay-adjusted recall | B Time and truth | FLAG for the tools; recall-time demotion is unconditional | CORECRUXD_FEATURE_FRESHNESS=on; CORECRUXD_MEMORY_SALIENCE=off | MCP memory_freshness, memory_sweep_candidates, memory_set_horizon, memory_reverify; Console System › Settings | 2.2 |
| B3 | Contradiction surfacing | B Time and truth | FLAG | CORECRUXD_FEATURE_CONSOLIDATION=on; CORECRUXD_CONSOLIDATION_SCHEDULER=off; CORECRUXD_SEMANTIC_DEDUP=off | MCP memory_contradictions; HTTP /v1/console/review/contradictions, /v1/console/review/queue; Console Memory › Review | 2.3 |
| B4 | Reversible consolidation | B Time and truth | FLAG | CORECRUXD_FEATURE_CONSOLIDATION=on | MCP memory_consolidate; HTTP /v1/console/review/consolidations and .../undo; Console Memory › Review | 2.4 |
| C1 | Budget-aware fact recall | C Retrieval and budgets | SHIPPED | n/a | MCP query_facts; HTTP GET /v1/facts?token_budget= | 3.1 |
| C2 | Corpus search with a coverage report | C Retrieval and budgets | SHIPPED; graph expand FLAG | CORECRUXD_QUERY_GRAPH_EXPAND=off | MCP query; HTTP /v1/query/text-search, /v1/query/graph-expand, /v1/query/time-range, /v1/relations/expand; Console Explorer | 3.2 |
| C3 | Two-pass scan then expand | C Retrieval and budgets | SHIPPED | n/a | MCP query_scan, query_expand; HTTP /v1/query/text-search/expand | 3.3 |
| C4 | Reversible pointer budgeting | C Retrieval and budgets | SHIPPED, unconditional | CRUX_BUDGET_REVERSIBLE has been removed | MCP query, query_facts (CRC-v1 envelope) | 3.4 |
| C5 | Optional dense re-rank, and a pluggable embedder | C Retrieval and budgets | SHIPPED (conditional); real model is a compile-time FEATURE | FEATURE dense-embed-model=off | MCP query; HTTP POST /v1/compute/embed; Console System › Settings | 3.5 |
| C6 | Cold-start playbooks and self-observation | C Retrieval and budgets | SHIPPED; self-observe FLAG | CRUX_SELF_OBSERVE=off | MCP get_bootstrap; HTTP /v1/bootstrap/pull, /v1/bootstrap/status, /v1/ops/facts, /v1/ops/errors, /v1/ops/health | 3.6 |
| C7 | Reuse check | C Retrieval and budgets | FLAG | CORECRUXD_FEATURE_REUSE_CHECK=off | MCP reuse_check | 3.7 |
| C8 | Local prose ingest lane | C Retrieval and budgets | FLAG | CORECRUXD_LOCAL_INGEST=on; index build CORECRUXD_BUILD_CCXI=1 | HTTP POST /v1/local/ingest, POST /v1/append; CLI corecruxctl ingest | 3.8 |
| C9 | Three-lane fusion (bm25 plus graph plus dense) | C Retrieval and budgets | DECLARED-NOT-WIRED | n/a | no surface; every reference in the daemon is inside a test module | 3.9 |
| D1 | Sessions that survive a restart | D Sessions and continuity | SHIPPED | n/a | MCP get_session, save_session, list_sessions, delete_session, archive_session, unarchive_session; HTTP /v1/sessions/{id}/state; Console Work › Sessions | 4.1 |
| D2 | Budgeted session checkpoints | D Sessions and continuity | SHIPPED | n/a | MCP session_checkpoint (token_budget hard-required) | 4.2 |
| D3 | Procedural memory (cases) | D Sessions and continuity | SHIPPED | n/a | HTTP POST /v1/cases, POST /v1/cases/retrieve | 4.3 |
| D4 | Agent-to-agent handoff packages | D Sessions and continuity | SHIPPED; telemetry FLAG; v2 entitlement-gated | CORECRUXD_HANDOFF_OBSERVATIONS=off; v2 needs handoff:v2 in CORECRUXD_ENABLED_PRO_SERVICES | MCP create_handoff, accept_handoff; HTTP POST /v1/workbench/handoff-v2 | 4.4 |
| D5 | Decision records | D Sessions and continuity | SHIPPED | n/a | MCP record_decision | 4.5 |
| D6 | Declared constraints, pre-flight checks and action enrichment | D Sessions and continuity | SHIPPED | n/a | MCP declare_constraint, get_constraints, check_constraints, enrich_action; HTTP POST /v1/actions/enrich | 4.6 |
| D7 | Autonomy contract | D Sessions and continuity | FLAG | CORECRUXD_FEATURE_AUTONOMY_CONTRACT=off | MCP autonomy_contract | 4.7 |
| D8 | Artefact parking | D Sessions and continuity | FLAG | CORECRUXD_FEATURE_ARTEFACTS=off | MCP artefact_put, artefact_get, artefact_list | 4.8 |
| E1 | The work board | E Work and coordination | SHIPPED; status feed FLAG | CORECRUXD_FEATURE_STATUS_FEED | MCP list_work, create_work, update_work_state, comment_on_work, status_feed; HTTP /v1/work, /v1/status-feed; Console Work › ExecPlans | 5.1 |
| E2 | ExecPlan projection into the board | E Work and coordination | SHIPPED | aggregator enabled when CRUX_EXECPLANS_ROOT is set | MCP list_work(source="all"); HTTP GET /v1/work?source=all; Console Work › ExecPlans | 5.2 |
| E3 | Human approval gates | E Work and coordination | HTTP gate SHIPPED; MCP queue FLAG | CORECRUXD_FEATURE_APPROVAL_QUEUE=off | MCP approval_request, approval_decide; HTTP /v1/work/gate/pending, /v1/work/gate/{actionId}/approve and /reject; Console Trust › Gates | 5.3 |
| E4 | Live-session presence and intent, with overlap warnings | E Work and coordination | FLAG | CORECRUXD_COORD=on | MCP coord_status, coord_announce; HTTP /v1/coord/active, /v1/coord/announce; Console Rings › Live board | 5.4 |
| E5 | Path leases (punchcards) | E Work and coordination | FLAG | CORECRUXD_PUNCHCARD=off (off, advisory, enforce) | MCP punch_in, punch_out, list_punchcards, force_release, check_punchcard; HTTP /v1/punchcards; Console Rings › Punchcards | 5.5 |
| E6 | Orchestrator groups | E Work and coordination | FLAG | CORECRUXD_ORCHESTRATORS=off | MCP create_orchestrator, attach_to_orchestrator, detach_from_orchestrator, list_orchestrators, update_orchestrator; HTTP /v1/orchestrators*; Console Rings | 5.6 |
| E7 | Projects, planes, layers and the context graph | E Work and coordination | SHIPPED | n/a | MCP list_projects, get_project_context; HTTP /v1/projects*, /v1/projects/{id}/planes*, /v1/projects/{id}/context-graph; Console Work › Projects | 5.7 |
| E8 | Project narrative artefacts (storybook and dossiers) | E Work and coordination | SHIPPED | n/a | HTTP /v1/projects/{id}/storybook*, /v1/projects/{id}/dossiers* | 5.8 |
| F1 | Hash-chained observation journal | F Trust and verification | SHIPPED | n/a | HTTP /v1/sessions/{id}/observations, /v1/observations/aggregate; MCP list_observations, get_observation, verify_observation | 6.1 |
| F2 | Mediation, usage and consolidation receipts | F Trust and verification | PARTIAL: the main classes default off; memory_use is never emitted | CORECRUXD_STREAM_RECEIPTS=false; CORECRUXD_FEATURE_USAGE_RECEIPTS=false | HTTP POST /v1/mediation/receipts, GET /v1/receipts/list; Console Trust › Receipts, Trust › Mediation | 6.2 |
| F3 | Receipt verification | F Trust and verification | Library SHIPPED; MCP tool FLAG; keyring env vars DECLARED-NOT-WIRED | CORECRUXD_FEATURE_RECEIPT_VERIFY=off | MCP receipt_verify; HTTP /v1/receipts/{id}, .../signature, .../verification; CLI corecruxctl audit-verify, receipts verify-cose, output-verify | 6.3 |
| F4 | Evidence export: audit bundles, replay and subject exports | F Trust and verification | Bundle export and verify SHIPPED; MCP tool FLAG; several replay routes return 501 in CE | CORECRUXD_FEATURE_AUDIT_EXPORT=off | MCP audit_export_bundle; HTTP POST /v1/audit/bundle/verify, /v1/replay/*; CLI corecruxctl audit-verify, audit-pack | 6.4 |
| F5 | Content provenance on output (C2PA and BYOK gateway) | F Trust and verification | FLAG | CORECRUXD_FEATURE_C2PA_OUTPUT=off; CORECRUXD_FEATURE_PROVENANCE_API=off (unmounts the routes) | MCP output_attest; HTTP /v1/provenance/sign, /verify, /verify-record; CLI output-verify, c2pa-verify | 6.5 |
| F6 | Transparency-log anchoring (Rekor, RFC 3161) | F Trust and verification | NOT ACTIVE, and unreachable in this build regardless | CORECRUXD_WITNESS_ENABLED=false; CORECRUXD_TSA_ENABLED=false | HTTP GET /v1/witness/smoke; CLI corecruxctl receipts witness-smoke, verify-external-anchor, verify-rfc3161-timestamp | 6.6 |
| F7 | Observe-audit step graph | F Trust and verification | FLAG | CORECRUXD_OBSERVE=off; redaction CORECRUXD_OBSERVE_REDACT | HTTP /v1/observe/sessions/{id}/steps, .../audit, .../audit/conformance, .../audit/export | 6.7 |
| F8 | Activity journal with per-turn verification | F Trust and verification | FLAG | CORECRUXD_FEATURE_ACTIVITY_LOG=off; TTL CORECRUXD_FEATURE_ACTIVITY_LOG_TTL_SECS | MCP activity_recent; HTTP /v1/activity, /v1/activity/turn/{id}, .../verify; Console Work › Activity | 6.8 |
| F9 | Incident records and export | F Trust and verification | FLAG | CORECRUXD_FEATURE_INCIDENTS=off | HTTP /v1/incidents, /v1/incidents/{id}/export; CLI corecruxctl incident | 6.9 |
| F10 | Acknowledged memory use | F Trust and verification | FLAG; the memory_use receipt class is DECLARED-NOT-WIRED | CORECRUXD_FEATURE_MEMORY_ACK=off | MCP memory_acknowledge_use | 6.10 |
| F11 | Scoped forget (GDPR Art. 17) | F Trust and verification | FLAG; the dry run is always available | CORECRUXD_FEATURE_SCOPED_FORGET=on | MCP memory_forget, memory_forget_dry_run | 6.11 |
| F12 | Session handshake and invocation verify | F Trust and verification | SHIPPED | n/a | MCP cuecrux_session; HTTP POST /session, POST /invocation/verify, GET /v1/sessions/{id}/plan | 6.12 |
| F13 | Posture self-audit tools | F Trust and verification | SHIPPED, unflagged | n/a (execplan_gate requires token_budget) | MCP route_access_matrix, auth_posture_audit, egress_policy_check, execplan_gate | 6.13 |
| G1 | Four auth modes, with a fail-closed start | G Identity and access | SHIPPED, and required: there is no default | CORECRUXD_AUTH_MODE must be set to off, dev_scopes, jwt_hs256 or jwt_jwks | env; every HTTP route | 7.1 |
| G2 | Deny-by-default route authorization | G Identity and access | FLAG, and the default logs rather than blocks | CORECRUXD_ROUTE_AUTH=shadow | env; all HTTP routes | 7.2 |
| G3 | The scope vocabulary | G Identity and access | SHIPPED | n/a | HTTP headers, JWT claims, MCP tokens | 7.3 |
| G4 | Passport identity records, presence and principal resolution | G Identity and access | SHIPPED as records; per-request cryptographic enforcement is NOT WIRED | n/a | MCP issue_passport, get_passport, get_agent_identity, resolve_principal; HTTP /v1/passports*, /v1/principal/resolve; Console Trust › Passport | 7.4 |
| G5 | Passport revocation | G Identity and access | FLAG; enforced on the MCP dispatcher only, and fails open on a read failure | CRUX_PASSPORT_REVOCATION=on (only 1 and true enable it) | MCP revoke_passport | 7.5 |
| G6 | Passport mint requests | G Identity and access | FLAG; the one flag that changes MCP catalogue membership | CORECRUXD_FEATURE_PASSPORT_MINT_REQUESTS=off | MCP request_passport_mint; HTTP /v1/passport/mint-requests/pending and .../approve, .../reject; Console Trust › Pending mints | 7.6 |
| G7 | Identity continuity across identifiers | G Identity and access | FLAG | CORECRUXD_FEATURE_IDENTITY_CONTINUITY=off; CORECRUXD_IDENTITY_LINKS=off | MCP passport_split, passport_merge, passport_link_device; HTTP /v1/identity/links*, /v1/identity/candidates*; Console Trust › Identity | 7.7 |
| G8 | Credential rails | G Identity and access | SHIPPED; the MCP token registry is fail-closed at startup | dev override CRUX_MCP_ALLOW_EMPTY_AGENT_REGISTRY=1 | HTTP /v1/auth/device/*, /v1/auth/tailscale/token, /v1/auth/whoami; MCP bearer tokens; CLI corecruxctl login | 7.8 |
| G9 | RCX capability tokens | G Identity and access | SHIPPED as crate and router; inert when no token is configured | n/a | MCP tools/list filter and tools/call gate (-32030); HTTP /v1/rcx/publish/* | 7.9 |
| G10 | Agent passports and scope aliasing | G Identity and access | FLAG | CORECRUXD_AGENT_PASSPORTS=off | MCP, on every fact write | 7.10 |
| H1 | Session cost lens | H Cost and metering | Analyser and CLI SHIPPED; daemon storage and read FLAG | CORECRUXD_FEATURE_COST_LENS=off | CLI corecruxctl session cost; HTTP /v1/cost/report; Console Meters › Token Burn | 8.1 |
| H2 | Cost attributed to work and plans | H Cost and metering | SHIPPED as a read-time join, not a binding | n/a | HTTP GET /v1/work (token_burn); Console Work › ExecPlans | 8.2 |
| H3 | Per-passport token accounting and usage reporting | H Cost and metering | SHIPPED, advisory only; nothing enforces the limit | limit via CORECRUXD_SESSION_TOKEN_BUDGET | MCP session_token_usage; HTTP /v1/agents/{passport}/usage, /v1/mcp/tools/usage; Console Meters | 8.3 |
| H4 | Token-savings holdout | H Cost and metering | FLAG; not present in config.example.env | CRUX_OUTPUT_HOLDOUT=0.0 (off) | MCP token_savings | 8.4 |
| H5 | Quota buckets and the credit meter | H Cost and metering | FLAG | CORECRUXD_QUOTA=off (with CORECRUXD_QUOTA_HOSTED_SURFACES empty); CORECRUXD_CREDIT_METER=off | HTTP GET /v1/quota, POST /v1/credits/spend; quota middleware on every route | 8.5 |
| H6 | Agent Workbench (Pro surfaces) | H Cost and metering | FLAG; an unlisted capability returns 402 pro_service_not_enabled | CORECRUXD_ENABLED_PRO_SERVICES=empty | HTTP /v1/workbench/* (12 surfaces); Console System › Workbench | 8.6 |
| I1 | .cruxpack signed memory export | I Portability and custody | Build, sign and verify SHIPPED; the entities and receipts sections are STUBBED and always empty | n/a | CLI corecruxctl memory pack | 9.1 |
| I2 | Pack verification and import planning | I Portability and custody | Verify and plan SHIPPED; HTTP import FLAG | CRUX_MEMORY_IMPORT=off | CLI corecruxctl memory import; HTTP POST /v1/memory/import | 9.2 |
| I3 | Composed context export, verified offline | I Portability and custody | SHIPPED, unflagged | n/a | CLI corecruxctl context export, corecruxctl context verify | 9.3 |
| I4 | Streaming fact export and envelope import | I Portability and custody | SHIPPED | n/a | HTTP GET /v1/facts/export, POST /v1/result-envelope/import | 9.4 |
| I5 | Custody scorecard | I Portability and custody | FLAG, and largely constant when on | CRUX_CONTEXT_CUSTODY_AUDIT=off | MCP context_custody_audit | 9.5 |
| I6 | Crypto-shred envelope and destroy marker | I Portability and custody | STUBBED, explicitly non-destructive | n/a | library only, no surface | 9.6 |
| J1 | Peer-to-peer tenant sync | J Sync and connectors | SHIPPED; mutual auth and delegation FLAG | CORECRUXD_SYNC_MUTUAL_AUTH=off; CORECRUXD_SYNC_DELEGATION_ENFORCE=off (fail-closed when off) | HTTP /v1/sync/handshake/nonce, /v1/sync/tenants/{id}/manifest, .../collections/{c}, .../promotions/preview, .../promotions/confirm, .../offboard | 10.1 |
| J2 | Background fact sync, and the sharing posture | J Sync and connectors | SHIPPED when a remote is configured; posture and backfill SHIPPED | CORECRUXD_SYNC_REMOTE_URL plus CORECRUXD_SYNC_REMOTE_API_KEY | MCP sync_pull, sync_push, sync_status; HTTP GET /v1/admin/sharing/posture, POST /v1/admin/sharing/backfill | 10.2 |
| J3 | Scheduled connector jobs | J Sync and connectors | SHIPPED, always spawned; jobs self-skip | n/a | HTTP GET /v1/facts?entity_prefix=__sync__:: | 10.3 |
| J4 | Markdown vault watcher | J Sync and connectors | SHIPPED, double-gated | CORECRUXD_VAULT_WATCH_ROOTS must be set and a file-watcher pack must be installed and granted | env CORECRUXD_VAULT_WATCH_*; status fact __sync__::vault-watcher | 10.4 |
| J5 | GitHub connector and indexed corpus | J Sync and connectors | SHIPPED | CORECRUXD_INTEGRATIONS_ENABLED=on; CORECRUXD_GITHUB_SYNC_INTERVAL_SECS=900 | MCP github_search, github_recent_commits, github_open_prs, github_open_issues, github_comments_since; HTTP /v1/integrations/github/*; Console Studio › Integrations | 10.5 |
| J6 | OpenAI-compatible connector and function-calling shim | J Sync and connectors | Connector SHIPPED; shim FLAG | CORECRUXD_OPENAI_SHIM=off | HTTP /v1/integrations/openai/*, GET /v1/openai/tools.json, POST /v1/openai/invoke | 10.6 |
| J7 | Repository and workspace intelligence | J Sync and connectors | SHIPPED; active watch is feature-gated | n/a | MCP register_repo, list_repos, get_workspace_storyline; HTTP /v1/repos*, /v1/workspace/scan, /v1/workspace/storyline | 10.7 |
| J8 | Daemon-to-daemon embedding provider | J Sync and connectors | FLAG; the route stays mounted and returns capability-disabled | CORECRUXD_COMPUTE_PROVIDER=off; consumer side CORECRUXD_EMBED_DELEGATE_URL | HTTP POST /v1/compute/embed (scope compute:embed) | 10.8 |
| K1 | Integration packs | K Extensibility | SHIPPED | n/a | HTTP POST /v1/extensions/register, GET /v1/extensions, DELETE /v1/extensions/{id}; Console System › Extensions | 11.1 |
| K2 | Capability grants | K Extensibility | SHIPPED | n/a | HTTP /v1/extensions/{id}/grants, /v1/console/integrations/{packId}/install, .../grant, .../disable | 11.2 |
| K3 | Signed distribution: keyring, trust tiers and the two registries | K Extensibility | SHIPPED; documented development bypasses are enumerated | n/a | HTTP /v1/extensions/keys, /v1/extensions/registry, POST /v1/extensions/install-from-registry; CLI corecruxctl extensions sync, review, install | 11.3 |
| K4 | External tools over HTTPS | K Extensibility | SHIPPED | n/a | MCP ext.*; HTTP POST /v1/extensions/{id}/tools/{name}/invoke | 11.4 |
| K5 | WASM extension host | K Extensibility | FEATURE, compiled out by default; kind: wasm dispatch returns 501 without it | FEATURE wasm-extensions=off | HTTP the same invoke route as K4 | 11.5 |
| K6 | Extension tools in the agent's tool list | K Extensibility | SHIPPED | n/a | MCP tools/list, tools/call | 11.6 |
| K7 | Studio packs and the signed template library | K Extensibility | SHIPPED; required_tier is advisory | n/a | HTTP POST /v1/studio/pack/build, /verify, GET /v1/studio/library, POST /v1/studio/library/{id}/install; CLI corecruxctl studio sync; Console Studio | 11.7 |
| K8 | The substrate: entities, edges, kinds and the relations graph | K Extensibility | SHIPPED | n/a | MCP entity_upsert, entity_get, entity_list, entity_delete, entity_history, edge_*, kind_*; HTTP /v1/entities, /v1/edges, /v1/kinds, /v1/relations; Console Canvas › Graph | 11.8 |
| K9 | Lenses, and the Feature Registry as the reference lens | K Extensibility | SHIPPED | n/a | MCP feature_file_search, feature_coverage_report, feature_trigger_audit, feature_suggest_next, get_gaps; HTTP /v1/features/capabilities* | 11.9 |
| K10 | Projection read models | K Extensibility | SHIPPED for entity projections; several artifact projections return 501 in the Community Edition | n/a | HTTP /v1/projections/*, /v1/admin/projections/* | 11.10 |
| K11 | Typed action traces and session mining | K Extensibility | FLAG, one flag for both the trace ring and learn | CORECRUXD_FEATURE_TOOL_TRACES=on (0 or empty disables) | MCP tool_trace_recent, learn | 11.11 |
| L1 | One process, three listeners, and a lifecycle that refuses rather than degrades | L Operating the daemon | SHIPPED | port and host variables per listener; CORECRUXD_MCP_ENABLED; CORECRUXD_SHUTDOWN_DRAIN_SECS | HTTP 14800, MCP 14801, gRPC 4007, all loopback by default | 12.1 |
| L2 | Configuration that resolves predictably | L Operating the daemon | SHIPPED | 393 environment variables plus config.yaml; nine mutually incompatible boolean dialects | env and config file | 12.2 |
| L3 | The agent config wizard | L Operating the daemon | SHIPPED | n/a | CLI crux-config-wizard init, regenerate, check, list, add, remove, diff; .crux/agent-profile.toml | 12.3 |
| L4 | Agent config audit and drift warning | L Operating the daemon | SHIPPED, advisory, warn-only, and fails open | opt-out is the literal string CRUX_HOOK_CONFIG_AUDIT=off | MCP audit_config, check_config_audit; SessionStart hook | 12.4 |
| L5 | Ingress hardening | L Operating the daemon | SHIPPED; all four knobs accept 0 to disable | CORECRUXD_MAX_REQUEST_BODY_BYTES=16 MiB; _MAX_INFLIGHT=1024; _RATE_LIMIT_RPS=300; _RATE_LIMIT_BURST=600 | applied to the HTTP and MCP listeners | 12.5 |
| L6 | Health, readiness and the capacity guard | L Operating the daemon | SHIPPED | CORECRUXD_PUBLIC_PROBES_MINIMAL=off; capacity threshold CORECRUXD_CAPACITY_EMERGENCY_FREE_RATIO=0.10 | HTTP GET /healthz, GET /readyz, GET /v1/version | 12.6 |
| L7 | Prometheus metrics | L Operating the daemon | SHIPPED; the endpoint is unauthenticated and public | n/a | HTTP GET /metrics | 12.7 |
| L8 | Logging, redaction and tracing | L Operating the daemon | Redaction SHIPPED; OpenTelemetry export is a compile-time FEATURE | FEATURE otel=off; RUST_LOG; OTEL_EXPORTER_OTLP_ENDPOINT; note CORECRUX_LOG_FORMAT is read by no code | stderr, JSON log output, ops-fact path, MCP parse-error echo | 12.8 |
| L9 | Admin actions, valves and the operator queue | L Operating the daemon | SHIPPED | CORECRUXD_ADMIN_FORCE_SEAL=off; CORECRUXD_OPERATOR_ACTION_MAX_PENDING; _TIMEOUT_SECS | HTTP POST /v1/admin/actions, POST /v1/admin/valves, POST /v1/admin/restart, GET /v1/admin/control, GET /v1/admin/ops-log; Console System › Settings | 12.9 |
| L10 | Update and drift posture | L Operating the daemon | SHIPPED | CORECRUXD_UPDATE_CHECK_ENABLED (containers should set 0) | MCP update_status; HTTP GET /v1/version (update block); Console System › Settings | 12.10 |
| L11 | Live event stream | L Operating the daemon | SHIPPED | n/a | HTTP GET /v1/events/stream | 12.11 |
| L12 | The operator console | L Operating the daemon | FLAG; the upstream proxies are unset by default | CORECRUXD_CONSOLE_ENABLED=on; CORECRUXD_CORECRUX_BASE_URL; CORECRUXD_ENGINE_BASE_URL | HTTP /console, /console-assets/*, /console-v2/*, /console-3d/*, /activate, /v1/console/* | 12.12 |
| L13 | Context injection bundle | L Operating the daemon | FLAG | CORECRUXD_CONTEXT_SURFACE=off; cache CORECRUXD_ASSEMBLY_CACHE=off | HTTP GET /v1/context, POST /v1/context | 12.13 |
| L14 | Storage hygiene | L Operating the daemon | Ephemeral GC FLAG, read once at boot; the session TTL reaper is always on at 60s | CORECRUXD_EPHEMERAL_GC=off; CORECRUXD_OBS_RETENTION_DAYS unset means retain forever | env | 12.14 |
| M1 | The HTTP API | M Surfaces and tooling | SHIPPED; /v1/openapi.json carries schemas for about 7% of the surface | n/a | 303 paths across 347 registrations; GET /v1/openapi.json | 13.1 |
| M2 | The MCP server | M Surfaces and tooling | SHIPPED; four JSON-RPC methods only, and no resources/* or prompts/* | card CRUX_AGENT_CARD=on; resource metadata 404s unless CRUX_MCP_RESOURCE_URL is set | MCP POST /mcp, GET /mcp, /.well-known/agent-card, /.well-known/oauth-protected-resource; CLI corecruxd mcp-stdio | 13.2 |
| M3 | Tool-surface shaping | M Surfaces and tooling | FLAG; shaped-out tools remain callable by name | CORECRUXD_TOOL_SURFACE=full (full, minimal, dynamic) | MCP tools/list; intent from cuecrux_session(intent) | 13.3 |
| M4 | The gRPC data plane | M Surfaces and tooling | DECLARED-NOT-IMPLEMENTED in this edition: all 10 registered RPCs return unimplemented, and a third compiled service with 5 operations is never registered | n/a | gRPC port 4007, services CoreCruxDataPlaneV1 and CoreCruxExportV1 | 13.4 |
| M5 | corecruxctl, the operator CLI | M Surfaces and tooling | SHIPPED; corecruxctl ops append is compiled but wired to no subcommand | n/a | CLI, 50 modules; on-ramps are corecruxctl start and corecruxctl deploy-audit | 13.5 |
| M5a | Uncovered corecruxctl capability set | M Surfaces and tooling | SHIPPED, and documented nowhere in the 82 reference chapters | n/a | CLI parity, reconcile, snapshot, stage1-import, machine, config, session, observe ingest, compaction-sync, tooling-env, audit-pack, openclaw | 13.6 |
| M6 | Claude Code hooks | M Surfaces and tooling | SHIPPED | installed by crux-config-wizard init or corecruxctl hooks install | CLI crux-hook: SessionStart banner, config-audit advisory, PreToolUse punchcard check | 13.7 |
| M7 | crux-llm-shim | M Surfaces and tooling | SHIPPED, experimental v1, and documented nowhere else | CRUX_LLM_SHIM must be 1; default off | CLI crux-llm-shim, shipped in releases | 13.8 |
| M8 | Official SDKs | M Surfaces and tooling | SHIPPED, with a dated defect register: 6 blocking, 5 staleness | n/a | npm @cuecrux/client; PyPI corecrux-client | 13.9 |
| M9 | The desktop shell | M Surfaces and tooling | NOT IN THE DEFAULT BUILD: two crates excluded from the workspace, compile-gated in CI only | n/a | no runtime surface | 13.10 |
| N1 | The no-phone-home guarantee, and its one exception | N Assurance and release | CI gate SHIPPED; the startup passport claim is FLAG | CORECRUXD_PASSPORT_CLAIM_ON_STARTUP=true | scripts/assert-no-phone-home.sh; the egress-probe workflow | 14.1 |
| N2 | Required checks and the merge queue | N Assurance and release | SHIPPED | n/a | eleven required checks on main; licence-header gate, typos gate, unwrap ratchet, twelve coverage floors; unsafe_code = "forbid" workspace-wide | 14.2 |
| N3 | Test depth: five tiers | N Assurance and release | SHIPPED | n/a | cargo test, cargo fuzz, cargo mutants; 5,969 test attributes measured 2026-07-27 | 14.3 |
| N4 | Signed, SBOM'd releases | N Assurance and release | SHIPPED | n/a | GitHub releases with cosign signatures, a CycloneDX SBOM and SLSA provenance; ghcr image; Helm chart | 14.4 |
| N5 | Contract-drift tests (three-place wiring) | N Assurance and release | SHIPPED | n/a | cargo test -p corecruxd; route manifest plus auth classification plus registration | 14.5 |
| N6 | The licence, and the open-closed line | N Assurance and release | SHIPPED | n/a | LICENSE, NOTICE, SECURITY.md, TRUST-CONTRACT.md, CITATION.cff | 14.6 |
Totals. 119 capabilities across 14 families: 79 SHIPPED on the default code path, 36 gated behind a flag or a compile-time feature, and 4 that are STUBBED, DECLARED-NOT-WIRED or NOT ACTIVE (C9 three-lane fusion, F6 transparency-log anchoring, I6 crypto-shred, M4 the gRPC data plane).

