Changelog
Changelog
Section titled “Changelog”All notable changes to the Vox project are documented here.
[Unreleased]
Section titled “[Unreleased]”@ai(structured_output = T)now emits a real JSON-schema-constrained LLM call — the generatedLlmConfig.response_formatcarries{"type":"json_schema","json_schema":{"name":…,"strict":true,"schema":{…}}}derived fromT’s typedef (scalars,list[…],Option[…], nested structs; closed objects withrequired), andmax_iterations = Nnow emits a bounded re-prompt loop that retries when the reply is not valid JSON.- Uniform
--jsonacross the build lane —vox --json build,vox --json test, andvox --json run(script lane) emit stable single-lineBuildLaneEnvelopeJSON (envelope_version,command,ok,error_count,warning_count,diagnosticsusing the sameVoxCompilerDiagnosticPayloadasvox check, optionalexit_code) on stdout; human progress notes move to stderr so stdout stays JSONL-parseable.vox buildguarantees exactly one envelope line per invocation regardless of which stage fails. vox doctor --diag <id>— run and report only the build-health check that can produce a given[diag id=…](e.g.sccache.pathological); exits non-zero when the diagnosis fires, and unknown ids list the registered-id registry.
[0.6.0] - 2026-05-26
Section titled “[0.6.0] - 2026-05-26”Release theme: Single-machine multi-agent with no data loss; @endpoint decorator surface retired; language hardening. All Phase 0 (foundations), Phase 1 (language spine), Phase 3 (VCS gossip), Hopper Hp-T1..T4 (unified task intake), and Telemetry unification Phases A–D deliverables from the mesh SSOT.
Language surface changes
Section titled “Language surface changes”@endpoint(kind: server|query|mutation)retired — the canonical bare-form decorators@server/@query/@mutation(introduced in Phase B, audit doc §11.2, 2026-05-23) are now the only endpoint declaration surface. See the v0.5 → v0.6 migration guide.- Other language surface changes (typed list subscript
Option[T], strict-OptionJsonAPI,@json_as, raw strings, intra-project imports) are detailed in the same migration guide.
Removed
Section titled “Removed”- Lexer:
AtEndpointtoken +#[token("@endpoint")]annotation deleted fromcrates/vox-compiler/src/lexer/token.rs. Any remaining@endpointtext in user source now fails to lex. - Parser:
parse_endpointfunction deleted fromcrates/vox-compiler/src/parser/descent/decl/head.rs;Token::AtEndpointremoved from the two decl-leading token sets and the dispatch arm indescent/mod.rs. - Detector severity escalation:
retired/decorator-usageraises@endpoint(kind: …)findings fromSeverity::WarningtoSeverity::Errorper the CR-L6 retirement-guard parity gate (vox-stdlib-gap-audit-2026-05-23.md §Phase H step 18).
Deliberately not removed (still alive in production for the canonical bare-form decorators): EndpointDecl AST node, EndpointKind enum, parse_query / parse_mutation / parse_server_endpoint, all codegen handlers for Decl::Endpoint, and the auth_endpoint / effect_net_decl / id_at_boundary detectors.
scripts/show/— Raw Nerve content automation: Three Vox programs supporting the project’s weekly publication surface.scripts/show/script.voxreads OBS recordings, runs Whisper-local transcription, and drafts a 3-act episode outline from a per-segment template.scripts/show/topic-suggest.voxreads the past week of repo signals (commits, closed issues, merged PRs, doc changes) and proposes 3 ranked episode candidates.scripts/show/title-workshop.voxproduces 10 ranked title candidates from an outline. All three passvox checkwith 0 errors, follow canonical script idioms (// vox:caps,import X;,let mut p = ""for prompt building,process.run+ Option unwrap,env.getfor inputs), and route LLM calls throughvox mens prompt. Scripts produce DRAFTS only; never auto-publish. Seescripts/show/README.md.
Changed
Section titled “Changed”-
Website domain migration:
vox-lang.org→voxlang.org. The domain without a hyphen is the single source of truth for the project website. Touched 116 source files (schemas undercontracts/, Rust doc-comments referencing schema$idURIs,CITATION.cff,CNAMEfiles, GitHub/GitLab CI workflows, top-levelREADME.md, alldocs/src/anddocs-astro/src/files) plus 16docs-astro/public/static HTML files andpublic/CNAME. Build artifacts underdocs-astro/dist/regenerate cleanly onpnpm/npm run build. Internal project namespace identifiers (VS Code extensionname/publisher,vox-language-surface.v1.jsonfile path,vox-language-rules-*-2026.mddoc paths) intentionally left unchanged — they are not website URLs and renaming them has external consequences requiring separate decisions. -
Stale
crates/vox-py/.venv/ignore entries: Removed from.voxignore(SSOT), then propagated viavox ci sync-ignore-filesto.aiignore,.aiexclude,.cursorignore. Also removed from.gitignore(not auto-synced). Thevox-pycrate was archived 2026-04-13 (docs/src/archive/vox-py.md). -
Telemetry unification (Phases A–D):
vox-telemetryL1 facade crate withTelemetryEventenum (ResearchMetric,ModelCall,TaskRootSummary,BuildSummary,Error),TelemetryRecordertrait,record_event!macro,TRACE_CTXtask-local for distributed tracing, andTaskTelemetryAggregatorfor per-task token/cost rollup. -
VOX_TELEMETRYmaster switch:off/0/falsesilences all telemetry paths. Overrides all per-category env vars (VOX_BENCHMARK_TELEMETRY,VOX_MCP_LLM_COST_EVENTS). Seeenv-vars.md. -
vox telemetry doctor: new subcommand that prints the effectiveTelemetryConfig, recorder registration status, and spool path. Exits 1 when master switch is off. -
ModelCallEvent: per-LLM-call telemetry with split prompt-cache tokens (cache_read_input_tokens/cache_creation_input_tokens), latency, cost, and trace context. -
TaskRootSummaryEvent: emitted oncomplete_task,fail_task,doubt_taskwith real token/cost totals populated by theTaskTelemetryAggregator. -
BuildSummaryEvent: emitted aftervox ci build-timingswith wall time and compiled-crate count. -
ErrorEvent: emitted at HTTP 429 (infer.rs), non-2xx HTTP (actor-runtime chat.rs), and circuit-breaker trips. -
Trace propagation:
RemoteTaskEnvelopeextended withparent_task_id,caller_agent_id,trace_id,span_depth; MCP dispatch wraps sub-agent calls inTRACE_CTX::scope;SubAgentDispatchEventenriched withparent_task_idandspan_depth. -
Unified Task Hopper — Option A (Hp-T1..T4):
InMemoryHopperinvox-orchestratorimplements theHopperIntaketrait. Items progress throughInbox → Assigned → Done / Overriddenstates. HTTP intake endpoints surface the hopper at/api/v2/hopper/{inbox,assigned,history,submit,reprioritize,assign,complete}. -
PrioritySourcetyped partial order (Hp-T3): CanonicalPrioritySourceenum (Developer(2) > Orchestrator(1) > LearningPolicy(0)) invox-orchestrator-types; dominance encoded viaOrdso policy checks are a one-liner (source.dominates(other)).ReprioritizationActoris now a backward-compat type alias pointing atPrioritySource. -
DeveloperOverridecapability token (Hp-T4):reprioritizerequires a token minted byDeveloperOverrideMint. Each override is stamped with actor, reason, audit-id, and timestamp inoverride_history; after a developer overridepriority_sourceflips fromOrchestratortoDeveloperand subsequent automated policy must not overwrite it without a newDeveloper-level cap. -
Intra-project imports (Phase 1 — P1-T1):
import "./foo.vox"+pub fnresolution works under--mode interp. Typecheck and--mode scriptparity tracked in Phase 2. -
JSON ergonomics (Phase 1 — P1-T2): Strict-Option
JsonAPI —get/at/pointer+as_str/as_int/has; legacyget_str/get_intretired. Corpus pass rate 41/55. -
Two-daemon lock-contention guard (Phase 3 — P3-T4): Integration test
two_daemon_lock_contentionverifies that a second orchestrator daemon on the same repository correctly loses the exclusive lock and exits cleanly rather than corrupting shared state. -
Effect-row enum extensions (P1-T6):
GpuComputeandMutatevariants added to the effect-row enum; supports MENS distributed-training capability tagging (Mn-T1/Mn-T2 prerequisite). -
ACI envelope on by default — CR-L5:
OrchestratorConfig::agentos_aci_envelope_enableddefaults totruestarting in v0.6. Theattach_aci_envelope()path invox-orchestrator-mcpadds theaciJSON block to tool responses (purely additive; gracefully skips non-JSON outputs). Feature flagvox.orchestrator.agentos.aci_envelope.enabledupdated to match. -
vox audit aci-defaultgate (CR-L5):CrlGate::L5AciDefaultinvox-auditreads the workspace version; passes when v0.5.x hasfalseand v0.6+ hastrue. Prevents accidental rollback.
Changed
Section titled “Changed”- Workspace version:
0.5.0→0.6.0. All published crates inherit the bumped version via[workspace.package]. - vox-db schema:
BASELINE_VERSION = 67(all P3-T1 schema migrations applied). Dashboard route convention (/api/v2/<surface>REST +/v1/wstopic-multiplex WS) in effect per SSOT §5.6.
[0.5.0] - 2026-04-18
Section titled “[0.5.0] - 2026-04-18”- V0.5 Core SSOT: Created
docs/src/architecture/v0.5-core-ssot.mdas the authoritative architecture summary for the v0.5 release. - Golden Path Validation: Verified end-to-end build and dry-run deployment for
marquee_appvia Fly.io target.
- CI/SSOT Stability:
- Resolved 270+ documentation drift errors by archiving stale research into
docs/src/archive/research-2026-q1/. - Bulk-fixed metadata (
training_eligible,archived_date) for all archived research documents. - Cleaned up
contracts/documentation/canonical-map.v1.yamlto match the current documentation tree. - Fixed orphan surface inventory check to handle missing files gracefully.
- Resolved 270+ documentation drift errors by archiving stale research into
- CLI/Constants: Pruned stale document references from
crates/vox-cli/src/commands/ci/constants.rs.
Changed
Section titled “Changed”- vox-db / Mens training: Removed
VoxDb::connect_default_with_training_fallbackand automaticvox_training_telemetry.dbsidecar attach; training usesconnect_defaultonly. Legacy primary returnsLegacySchemaChainuntil codex export/import cutover.VOX_DB_TRAINING_TELEMETRY_SIDECARis unused (docs removed). - Operations SSOT / CI:
contracts/operations/catalog.v1.yamlis the only hand-edited source for first-party MCP +vox-cli+ capability registry rows;contracts/mcp/tool-registry.canonical.yaml,contracts/cli/command-registry.yaml(vox-cli section), andcontracts/capability/capability-registry.yamlare generated viavox ci operations-sync --target {mcp,cli,capability,all} --write.vox ci operations-verifynow enforces strict file parity,input_schemas.rscoverage per tool, andhttp-read-role-governance.yamlvs catalog; the catalog carries acapability:block (runtime builtin maps + capability exemptions). Removed transitionalcontracts/capability/curated-from-operations.generated.yaml. vox-orchestrator/ daemon parity: Populi mesh federation poll,VOX_ORCHESTRATOR_EVENT_LOG, and Codex clarification inbox drain live inmesh_federation_poll,orchestrator_event_log, andclarification_db_inbox_poll;vox-mcpdelegates to them andvox-orchestrator-druns the same background sidecars when config/DB apply. ADR 022 Phase B item 1 updated accordingly.vox-mcp/ daemon probe:ServerState::probe_external_orchestrator_daemon_if_configuredcomparesorch.pingrepository_idto the MCP embed (WARN on mismatch;VOX_MCP_ORCHESTRATOR_DAEMON_REPOSITORY_ID_STRICT→ ERROR) and recordsorch_daemon_repo_id_alignedfor optional RPC.VOX_MCP_ORCHESTRATOR_RPC_READSenables all aligned read pilots (or set per-toolTASK_STATUS/START/STATUS_TOOLflags).vox_orchestrator_startalso callsorch.agent_ids(daemon_reported_agent_ids, mismatch note inhonest_message). Sharedorch_daemon_tcp_client_when_repo_aligned.OrchDaemonClienthasorchestrator_status,task_status,spawn_agent_named,agent_idshelpers.- IPC-first write pilots:
vox_protocol::orch_daemon_methodaddsorch.submit_task,orch.complete_task,orch.fail_task,orch.cancel_task,orch.reorder_task,orch.drain_agent,orch.rebalance,orch.spawn_agent_ext,orch.retire_agent,orch.pause_agent,orch.resume_agent; daemon dispatch + client helpers implemented, MCP routes task/agent lifecycle through backend selectors withVOX_MCP_ORCHESTRATOR_RPC_WRITES(and per-slice overrides). Added contract schemacontracts/orchestration/orch-daemon-rpc-methods.schema.jsonand protocol catalog entryorchestrator-json-line-rpc. - Workspace:
vox-deiis a normal workspace member (minimallib.rs);vox-pyremains the only rootexclude. Docs andvox-clicomments updated;vox ci no-vox-dei-importunchanged. ServerState::new_test: usesOrchestratorConfig::for_testing()(toestub_gate: false, tight limits) so MCP tests do not inherit production post-task behavior that can run nestedcargo check --workspacefor Rust manifests. Theconflict_diff_success_payload_has_expected_keyscontract test no longer callscomplete_task; it builds an in-memory snapshot +record_conflictonly (avoids multi-minute / LNK1104-prone paths). ProductionServerState::newis unchanged.- Eval benchmark matrix:
contracts/eval/benchmark-matrix.schema.jsonnow uses a fixedenumfor eachbenchmark_classesentry (no arbitrary strings).vox-clieval_matrixcentralizes crate / feature / test-filter literals, runsci command-compliancechecks in-process (command_compliance::run) soeval-matrix rundoes not spawncargo run(avoids Windowsvox.exereplacement locks), and has drift tests (matrix JSON ∪ milestones ↔ Rust SSOT ↔ schema enum). GitLabvox-ci-guardsrunsci line-endingsandci command-complianceto match the GitHub guard slice. vox fmt: wired tovox_compiler::fmt::try_format(parse → print → re-parse; atomic in-place write;--check). Packaging Phase B:vox installremoved from the CLI (usevox add/vox lock/vox sync/vox pm);command-registry.yamlrow dropped;vox ci command-complianceaddscheck_project_pm_commands_no_toolchain_lane(WP5) andcheck_operator_docs_no_legacy_vox_install_pm_nudge(WP4).cargo check -p vox-cli --all-features: stubserve/inference(Burn loader retired),workflowusesvox_db::LogExecutionParams,deiundo/redouseOrchestrator::init_db+sync_lock::rw_read(&orch.oplog).- Examples:
examples/actor.voxandexamples/mcp_tool.voxmoved toexamples/archive/legacy_syntax/(non-parseable on current grammar); addedexamples/STYLE.md,FEATURE_INDEX.md,PARSE_STATUS.md, archive READMEs. vox-compilergolden_examples_strict_parse: optionalVOX_EXAMPLES_STRICT_PARSE=1requires everyexamples/golden/*.voxto parse (default CI remains golden-only).vox-cli: default features aremens-baseonly (nogpu). Native Mens train / probe / merge / eval-local requirecargo build -p vox-cli --features gpu.vox-mensbinary (prependsmenssubcommand).vox-codexremoved as avox-clidependency (codex/stub-checkusevox-db); OS keyring helpers live invox_db::secrets(vox-codexstill re-exports for other crates).vox-corpusandvox-runtimeare always linked so grammar / training JSONL paths work even with--no-default-features(mens-baseremains the command-surface gate).vox-ludus: depends onvox-dbinstead ofvox-codex.- Clippy (
-D warnings):cargo clippy --workspace --all-targetsis clean — auto-fixedcollapsible_*,manual_clamp,iter_cloned_collect,lines_filter_map_ok,double_must_use,ptr_arg,manual_find,field_reassign_with_default,match_like_matches_macro,unnecessary_to_owned; targetedallowfor intentional async tests (await_holding_lock),Qwen35AttentionBlockenum size,maybe_refresh_openrouter_modelsundercfg(test), and serializedunsafeenv updates invox-integration-tests. CI: GitHubci.ymland GitLabclippyjob use--all-targetsso integration / bench targets match local gates (workflow-enumeration.mdupdated).
- Codex / data-plane CI:
vox ci query-all-guardandvox ci turso-import-guard(diff-scoped;--allfor full tree), both run fromvox ci ssot-drift; allowlists underdocs/agents/query-all-allowlist.txtanddocs/agents/turso-import-allowlist.txt. Ludus periodic reward SQL moved tovox-dbgamify_periodic_conditionssovox-ludusno longer callsquery_all. - Clavis cloudless vault env:
VOX_CLAVIS_VAULT_PATH,VOX_CLAVIS_VAULT_URL,VOX_CLAVIS_VAULT_TOKEN(precedence over deprecatedVOX_TURSO_*/TURSO_*when compat aliases allowed);vox clavis doctorprintscloudless_vault_storediagnostics. - Telemetry (optional remote upload):
vox telemetry status|export|enqueue|uploadwith local JSON spool (crates/vox-cli/src/telemetry_spool.rs), ClavisVoxTelemetryUploadUrl/VoxTelemetryUploadToken, ADRdocs/src/adr/023-optional-telemetry-remote-upload.md, wire spec indocs/src/archive/research-2026-q1/(archived; do not ingest). Regenerate CLI/capability rows fromcontracts/operations/catalog.v1.yamlviavox ci operations-sync --target cli --write(and capability/MCP targets if you changed catalog tool rows). Release discipline: any change to telemetry contracts, upload behavior, or related env/Clavis IDs gets a bullet under Telemetry in this file’s[Unreleased]section. - Telemetry (Agent Budgeting): Added
agent_exec_history(S1) collection with 3-pillar tracking (time, compute tokens, vendor USD logic). Validated byvox ci data-ssot-guardswith native 90-day retention aging. - Docs (research): Terminal execution policy research (archived in
docs/src/archive/research-2026-q1/; do not ingest) — PowerShell-first agent shells, Cursor/Gemini/Codex policy evidence, allowlist bypass lessons, alignment with operations SSOT. - Telemetry trust SSOT (docs): architecture pages for trust boundaries, taxonomy (roadmap), retention/sensitivity (roadmap), client disclosure, implementation blueprint, and executable backlog;
VOX_BENCHMARK_TELEMETRY/VOX_SYNTAX_K_TELEMETRYdocumented indocs/src/reference/env-vars.md. Entry points:docs/src/architecture/telemetry-trust-ssot.md,AGENTS.md, contributor hub. - LLM premature-completion SSOT:
contracts/operations/completion-policy.v1.yaml+ telemetry JSON Schemas;vox ci completion-audit(writescontracts/reports/completion-audit.v1.json),completion-gates(Tier A + Tier B baselinecontracts/reports/completion-baseline.v1.json),completion-ingest→ VoxDBci_completion_*; wired intocommand-compliance,ssot-drift, and GitHubci.yml. Architecture:docs/src/archive/research-2026-q1/completion-policy-ssot.md. Mens scorecardsummary.jsonadds optionalcompletion_policycrosswalk.--features completion-toestub: merges TOESTUBvictory-claiminto audit (Tier C per policy); CI uses it forcompletion-audit.completion-ingestfills snapshotnew_count/resolved_countvs prior run fingerprints.contracts/reports/completion-task-ledger.v1.json: 768 explicitT-WS###-NNIDs. MCP chat system prompt adds anti-skeleton rider pointing at the policy.vox ci completion-audit --scan-extra <dir>(repeatable): audit generated trees under the repo (canonical paths must stay inside root). vox-orchestrator-d— TCP or stdio newlineDispatchRequest(orch.ping,orch.status,orch.task_status,orch.spawn_agent,orch.agent_ids); sharedVOX_MCP_AGENT_FLEETAgentFleetspawn with MCP; MCPprobe_external_orchestrator_daemon_if_configuredskips stdio peer.- Docs / scripts:
docs/src/how-to/examples-corpus.md,docs/src/how-to/first-full-stack-app.md; - Tests:
budgets_json_loads_and_defines_all_timing_lanes,tool_registry_slice_tolerates_bracket_in_description(LLM-audit hardening). vox ci build-timings— wall-clockcargo checkfor defaultvox-cli, GPU+stub lane, optional CUDA lane (--jsonsupported).--cratesaddsvox-cli --no-default-features,vox-db,vox-oratio,vox-mens --features train, andvox-cli --features oratiolanes. Optional soft budgets:docs/ci/build-timings/budgets.jsonwithVOX_BUILD_TIMINGS_BUDGET_WARN=1/VOX_BUILD_TIMINGS_BUDGET_FAIL=1. GitHub CI runsbuild-timings --cratesin place of the standalone GPU/stub check step.oratiofeature — Oratio /vox-oratiois no longer pulled by defaultmens-base; enable--features oratioforvox oratio(canonical speech CLI; aliasvox speech). CI feature matrix includes anoratiocompile lane.- Docs:
docs/src/architecture/vox-cli-build-feature-inventory.md(feature / compile-impact map);docs/src/architecture/crate-topology-buckets.md(workspace crate buckets);docs/ci/build-timings/(budgets.json,snapshot-metadata.json, optionallatest.jsonl); migration matrix + deviation notes incrate-build-lanes-migration.md. - CLI / Mens:
vox mens pipeline— dogfood corpus → eval → optional native train (replaces PS1 orchestration);scripts/run_mens_pipeline.ps1is a thin delegate. - Scripts / builtins:
std.process.run_capture(stdout/stderr/exit record; non-zero exit stillOk);std.fs.glob(sorted paths);vox-runtimehelpersvox_process_run_capture,vox_fs_glob. - Compilerd: JSON
runparams accept optionalmode(auto|app|script) aligned withvox run --mode. - CI:
vox ci check-docs-ssotscansdocs/srcand.github/workflowsfor retired Python inventory /populi_release_gate.shreferences;FEATURE_SETSincludesscript-executionmatrix rows; docs command surface duals. - GitLab:
vox-ci-guardsaligned with GitHub (toestub-scoped,cuda-features,mens-gate --profile ci_full);NATIVE_TRAIN=falserejected onml-train. - CLI / CI:
vox ciguard commands (manifest, SSOT checks, doc-inventory, workflow allowlist, Mensgates.yamlrunner, TOESTUB scoped, CUDA probes); cratevox-doc-inventory. - Scripts:
ci_fullMens profile; GitHubci.ymlcut over tocargo run -p vox-cli -- ci …; thin shell/ps1 delegates;docs/agents/script-registry.json+ baseline metrics. - Run:
vox run --mode {auto,app,script};vox script(featurescript-execution); frontend bundle path uses pnpm; script builtins:print,std.env.get,std.process.run/exit,std.fs.list_dir,std.args. - Parser: Trailing comma support in function parameter lists (A-072/A-100)
- Parser: Duplicate parameter name detection with clear error message (A-074/A-101)
- Parser: Error recovery test coverage (A-099)
- Parser:
filter_fieldssupport inVectorIndexDeclparsing - Typeck: Lambda parameter type checking test (A-092)
- Typeck: Lambda outer scope capture test (A-093)
- Typeck: Match arm variable binding test (A-094)
- Typeck: Match exhaustiveness error test (A-095)
- Store:
CodeStore::dry_run_migration()— report pending migrations without applying (B-059) - Store:
CodeStore::health_check()—PRAGMA integrity_checkwrapper (B-060) - Store:
CodeStore::batch_insert()for bulk artifact insertion (B-062) - Store: Pagination support (
LIMIT/OFFSET) inlist_components(B-063) - Store: Relevance threshold filtering in
recall_memory(B-064) - VoxDb:
DbConfig::from_env()for environment-based configuration (B-065) - VoxDb: Retry logic (3× with backoff) in
VoxDb::connect(B-066) - VoxDb:
VoxDb::transaction()wrapper for atomic operations (B-067) - VoxDb: Integration test for in-memory connection (B-068)
- AGENTS.md: Phase 5 VoxPM roadmap merged from
PLAN.md(B-076) - Docs:
vox-runtime/README.md— actor model architecture (B-112) - Docs:
vox-pm/README.md— CAS store architecture (B-113) - Docs: mdBook search enabled with full-text indexing (A-136)
- Docs: Automated API reference pipeline
vox doc(A-142) - Docs: Decorator and Keyword manifests in JSON format (B-121/B-122)
- Docs: OpenGraph/SEO metadata and social sharing support (B-125)
- Docs: RSS/Atom feed generation for release notes (B-124)
- CI: Documentation build check and Rustdoc integration (B-117/B-118)
- CI: Dashboard API
dead_codewarnings suppressed (future integration) - OpenCode CLI:
vox opencodesubcommand tree (install, setup, doctor, status, dashboard, spawn, review, config, sync, logs, share) - OpenCode CLI:
vox opencode install— downloads OpenCode AI and scaffolds config - OpenCode CLI:
vox opencode doctor— preflight check (binary, MCP, LSP, config, version) - OpenCode CLI:
vox opencode dashboard— launches embedded real-time agent dashboard - OpenCode CLI:
vox completions <shell>— generate shell completion scripts - OpenCode CLI:
vox mcp-docs— auto-generate MCP tool reference markdown table - OpenCode Integration:
opencode.jsonwith version pinning (opencode_version: >=0.2.0) - OpenCode Integration: Plugin API compatibility shim for OpenCode < 0.2.0
- OpenCode Integration: GitHub Actions workflow for
vox opencode doctorin CI - MCP Server: Protocol version negotiation (server echoes client’s
protocolVersion) - MCP Server: 34 new tools (102 total): A2A messaging, VCS snapshots, JJ-inspired oplog/conflicts/workspaces, OpenCode bridge tools
- MCP Tools:
vox_map_agent_session,vox_record_cost,vox_heartbeat,vox_cost_history(older docs/plugins may referencevox_map_opencode_session— use the canonical name) - MCP Tools:
vox_a2a_send,vox_a2a_inbox,vox_a2a_ack,vox_a2a_broadcast,vox_a2a_history - MCP Tools:
vox_snapshot_*,vox_oplog,vox_undo,vox_redo - MCP Tools:
vox_workspace_*,vox_conflict_*,vox_change_*,vox_vcs_status - Dashboard: Redesigned with dark theme, glassmorphism, D3.js topology, SSE event log
- Dashboard: VCS panel, gamification panel, cost charts
- Docs:
docs/opencode-integration.md— user-facing setup guide - Docs:
docs/architecture/opencode-bridge.md— technical deep-dive - Docs:
docs/mcp-tool-reference.md— auto-generated from 102 MCP tool schemas - Docs:
docs/troubleshooting-faq.md— common issues: port conflicts, MCP timeouts, LSP crashes - AGENTS.md: Updated with 102 MCP tool list, OpenCode bridge section, new documentation links
- CLI UX: Colored output with actionable error suggestions in
vox opencodecommands
- Codex / CI SSOT: Restore
scripts/check_codex_ssot.sh(bash delegate tovox ci check-codex-ssot); aligncontracts/db/baseline-version-policy.yamlwithBASELINE_VERSION45 and the current baseline SQL Keccak digest; refreshcontracts/capability/model-manifest.generated.jsonsovox ci ssot-driftstays green. - Telemetry trust SSOT:
docs/src/architecture/telemetry-trust-ssot.mdmaps build timing /build_*observability,VOX_BENCHMARK_TELEMETRY, and MCPvox_benchmark_listsourceselectors. - Tests:
vox-test-harnesshir_fninitializer matchesHirFn::is_mobile_native;vox-dblocal_testsfixesVOX_DATA_DIRset_vardelimiter typo. - Docs SSOT:
orphan-surface-inventory.mdworkspace crate list includesvox-deisovox ci check-docs-ssotmatches filesystem inventory. vox ci build-timings: Soft budgets load only fromdocs/ci/build-timings/budgets.json(no duplicate Rust const);VOX_BUILD_TIMINGS_BUDGET_FAIL=1works withoutBUDGET_WARN;--jsonserialization errors surface with context;nvccprobe usesCUDA_PATH/CUDA_HOMEwhenPATHis stripped.vox ci command-compliance:TOOL_REGISTRYslice uses stable anchor beforepub fn tool_registryso]inside description strings cannot break parsing.vox ci command-compliance: MCP wiring validatesTOOL_REGISTRYvs canonical-onlyhandle_tool_callarms and checkscrates/vox-mcp/src/tools/tool_aliases.rs(TOOL_WIRE_ALIASES→ canonical names).vox-cli:benchmark_telemetry::record_opt_blockingno longer mixesstd::io::Errorwith CodexStoreErrorin a singleResultchain.- Store: Replaced
.unwrap()on embeddingtry_into()with proper error handling (B-056) - Normalize: All
AstNodevariants now have explicit cases (no wildcard fallthrough) (B-058) - LSP: Removed unused imports in
main.rs
Removed
Section titled “Removed”PLAN.md— content merged intoAGENTS.md§3 (B-076)