Suite status audit and bug handoff (2026-09-21)
Suite status audit and bug handoff (2026-09-21)
Section titled “Suite status audit and bug handoff (2026-09-21)”On 2026-09-21 the README was rewritten around a dated status table (Working / Prototype / Research / Not started). Every row was verified by running the installed vox 0.6.0+build.5357 (about 450 commits behind main) and reading current source. This page records the bugs found along the way. Each entry stands alone, so an agent can pick up any one of them as an individual fix.
Conventions for whoever picks one up:
- One branch per entry:
fix/<slug>. Test first. Scoped cargo only. - Don’t push without asking.
- When an entry lands, update the matching README status row and add a README Log line, then mark the entry here
**Fixed <date> (<sha>)**. - Before starting, rebuild
voxfrommain: some behaviour may differ at HEAD.
High priority (data loss / security / misleading)
Section titled “High priority (data loss / security / misleading)”vox fmtdeletes all comments and silently drops unsupported declarations.crates/vox-compiler/src/fmt/has no comment handling, and the printer’s catch-all_ => {}(fmt/printer.rs~179) discards e.g.workflow/activityblocks (golden/checkout_workflow.voxgoes from 29 lines to 1).- Repro:
vox fmtonexamples/golden/hello.voxstrips the frontmatter, ANCHOR and// vox:skiplines. - Fix: preserve comment trivia. Until that works, fail closed whenever the comment count would drop.
- Repro:
- A DB newer than the binary is called “legacy or non-baseline”, with advice to export, re-create and re-import it (doctor separately says “do not delete”). Code:
crates/vox-cli/src/commands/codex.rs:55-60,crates/vox-db/src/store/types/error.rs:34.- Seen with DB schema 93 on binary baseline 92.
- Fix: tell the user to upgrade
vox, never suggest deleting data, and consider degrading to read-only.
vox populi servewritesmesh.tokeninto~/.vox/config.tomland prints it.- Fix: store the token via Clavis (
vox_secrets), stop printing it, ask before persisting, and read any legacy config value with a deprecation warning. - Then run
vox ci secret-env-guardandvox ci secrets-parity.
- Fix: store the token via Clavis (
vox rollbackspawns the daemon and rewrites~/.vox/run/orchestrator-daemon.token. That can rotate a live session’s token.- Its help also credits vox-bounded-fs; the real mechanism is the orchestrator operation log (
orch.undo_operation). - Fix: only the process that binds the socket writes the token, and rollback doesn’t spawn a daemon.
- Its help also credits vox-bounded-fs; the real mechanism is the orchestrator operation log (
- The telemetry spool grows without bound and ignores consent.
init_telemetry_sinks(crates/vox-cli/src/lib.rs~699) always registersSpoolSink.- On the audited machine: 8,605 files / 34 MB since Sep 4.
- Fix per
telemetry-trust-ssot.mdand ADR-023: honour upload-off andVOX_TELEMETRY=off, and cap and prune the spool.
- The vox-secrets vault panics on a current-thread tokio runtime. Location:
crates/vox-secrets/src/backend/vox_vault.rs:1459,block_in_place.vox harness evalprints the panic 4 times and the secret lookup fails.- Fix at the async boundary. Write a
current_threadtest first and confirm it fails.
Broken core paths
Section titled “Broken core paths”vox run src/main.voxfails on thevox initscaffold (“Nofn main()found”). A fix (route service-shaped files to the app lane) was committed locally on 2026-09-21 but not yet pushed; once it lands the app lane still depends on entry 8.- Cause: the auto-mode
@pageheuristic incrates/vox-cli/src/commands/runtime/run/run.rs, together with the starter template incrates/vox-project-scaffold/src/lib.rs.
- Cause: the auto-mode
- The generated Rust server only builds inside a Vox checkout. (A fix via
VOX_REPO_ROOTresolution was in progress in another working tree on 2026-09-21.)crates/vox-codegen/src/codegen_rust/emit/mod.rs~698-710 emits relativepath =dependencies into this repo.- It also pulls in heavy crates the app doesn’t use.
- Nothing tests a generated app outside the workspace.
vox emit client/vox build --target clientcrash on anycomponent.- Cause: the TS write loop in
crates/vox-cli/src/commands/build.rs~352 lackscreate_dir_all(parent).
- Cause: the TS write loop in
vox testinherits bug 8. It fails outside the repo because it goes through the generated Rust project.- The starter template trips its own
id-column lint (E0001). vox replhas no session state.crates/vox-cli/src/commands/repl.rschecks each line in isolation, soletandfndon’t persist. Values also print in Debug form.vox lspneeds avox-lspbinary that no installer ships. Either run the LSP in-process (check crate-edge policy; propose any exception, don’t add it) or install it.vox termdiscards submitted input. Location:crates/vox-term/src/app.rs:116,let _intent = input.submit();.vox termfails headless / underTERM=dumb, despite its help text (“Failed to initialize input reader”).vox memory searchnever prints results.crates/vox-cli/src/commands/memory_cli/search.rsbinds the results to_exec.- It also queries DuckDuckGo and Wikipedia without consent.
vox generatecan’t reach a stock Ollama. It probes/healthon port 11434, a route Ollama doesn’t serve, and its hint references the invalid pathscripts/vox_populi::inference.vox.vox chathas two related problems: its hint names a non-existentvox ai serve, and its 30s timeout is too short for a cold model.
Honesty of CLI surfaces
Section titled “Honesty of CLI surfaces”vox doctorexits 0 with 18 checks failing. Required and optional checks should be distinguished.vox doctorgives wrong advice on macOS:- a WSL Docker fix;
cargo install vox-clifrom crates.io, which isn’t published;- the retired
vox run --isolation wasm(ADR-048).
- Feature-gated-off commands are still advertised.
vox speechneedsoratio,vox visusneedsdei,vox mcpneedsmcp-server,vox skillneedsars.vox stopexits 0 while printing “not enabled”.vox commands --format jsonreports all of them ascompiled_in:true, feature_gate:null.- Decide with evidence whether
mcp-serverandarsshould be default features.
vox upgradesays “up to date” when there are zero releases. It also still searches forvox-bootstrap-*assets (a retired crate).vox pm searchturns a registry 404 into “No packages matched”. Code:crates/vox-package/src/registry.rs~139. The default registry URL doesn’t exist.- 11 of 18 plugin catalog default sources point at nonexistent
vox-foundation/vox-plugin-*repos. File:crates/vox-plugin-catalog/catalog.toml. vox plugin doctor/listacceptmens-candle-cudaon macOS arm64. Add platform and host-feature checks.vox snapshot orphanschecks nothing.crates/vox-cli/src/commands/snapshot.rs:139-140resolves insta’ssource:relative to the snapshot dir instead of the workspace, then reports 264/264 unresolvable as “0 orphans”, exit 0.vox term,vox shell replandvox initleave.vox/store.dbandclavis_vault.dbin the current directory.vox-orchestrator-d --helpdoesn’t print help (it demands a socket env var). The daemon also rejects numeric JSON-RPC ids.- Small polish:
- a BOM in
crates/vox-cargo-shim/Cargo.toml, and apython -chint inbom-check; - the EBNF header says “Vox 0.4”;
vox llm promptignoresNO_COLOR;- the
export-ggufhelp points at the gatedmerge-qlora; vox new webhelp overpromises;vox build -o distwrites the Rust tree tosrc/target/generated.
- a BOM in
Docs and CI
Section titled “Docs and CI”- Dead
cargo vox-cuda-releasealias. It was removed in e828828a9 but is still referenced in mens-training, cli, how-to-train-mens-4080 and ADR-034. Replace it with thevox-mlbundle. docs/src/reference/stability.mdoverstates maturity. Re-grade it to the README’s four states with dates, fix its tier ordering, and sweep the FAQ and other docs that repeat the old grades.- voxlang.org is stale (feed stops 2026-05-15) and
/reference/stability/returns 404.docs-deploy.ymlhas no successful run in its last 100; they fail at the Cloudflare Pages API step. The build itself passes.
- Main CI is red.
- No green main
ci.ymlrun was found. “CI Fallback (GitHub-hosted)” failed on 09-19, 09-20 and 09-21. - Link checker, Scorecard, CodeQL and setup-e2e are also failing.
- The self-hosted fleet is down (0/2).
- No green main
- The Mobile iOS E2E workflow can’t find
pnpm-lock.yamlat the repo root. Setcache-dependency-path, and check the Android and EAS lanes too. - ADR-041 is internally stale.
- It claims codegen is Stable, and says
emit_main_bootisn’t wired even thoughset_current_hir_moduleis now emitted. - Add a dated status update, and correct the
AGENTS.mdimplementation-status paragraph.
- It claims codegen is Stable, and says
- Stale crate docs.
- The
crates/vox-lsp/README.mdfeature list is wrong. - The
vox-wasm-enginedocs claim a retired--backend wasiCLI path.
- The
- The MCP registry and dispatch table drift.
vox_compiler::ast_inspectis registered but not dispatched,vox_visual_rag_queryis a stub, and the dashboard’s “mesh kill” isn’t wired.- Add a registry/dispatch parity test.
Known elsewhere (not duplicated here)
Section titled “Known elsewhere (not duplicated here)”- MENS trainer defects: see the MENS pipeline audit of 2026-09-20 (
mens-fine-tuning-pipeline-audit-2026-09-20.md, not yet committed on 2026-09-21). Thefix/mens-training-quick-fixesworktree held 47 uncommitted files and no commits on 2026-09-21. - Deep research defects: see the deep-research audit of 2026-09-20 (
deep-research-system-audit-and-handoff-2026.md, not yet committed on 2026-09-21). Its fixes were parked, unmerged, on 2026-09-21. vox-constrained-genis declared by 3 crates but imported by none. That is a design question, not a bug.