"Changelog"

Changelog

All notable changes to the Vox project are documented here.

[Unreleased]

Changed

  • Codegen (Rust): Dropped stale split modules under crates/vox-codegen-rust/src/ (emit_main.rs, emit_lib.rs, emit_expr.rs, emit_agent.rs, emit_table.rs, emit_trait.rs); all emission lives in emit.rs to avoid drift.
  • Docs: docs/book.toml — set git-repository-icon = "fab-github" for mdbook 0.5.x (was fa-github, which targets the wrong FA style and errors at render).
  • Docs: how-to-setup.md + scripts/README.md — document vox-bootstrap flags (--dev, --install-clang, --apply, plan / plan --human).

Added

  • CLI / scripts / CI (hybrid migration QA): vox mens pipeline; std.process.run_capture + std.fs.glob; vox-compilerd run.mode; vox ci check-docs-ssot stale-ref scan; script-execution in CI feature matrix; GitLab guard parity + native-only ml-train; doc command surface duals.
  • Codex / Arca / Turso: ADR 004, architecture docs (codex-vnext-schema, codex-baas, orphan-surface-inventory, codex-legacy-migration), schema migration V8 (codex_* reactivity + lineage), vox_db::Codex type alias, vox_db::codex_legacy, vox-runtime optional database feature + db module (VOX_DB_* + legacy TURSO_*), Coolify template under infra/coolify/, CI guard scripts/check_codex_ssot.sh
  • Parser/Codegen: for item in list key item.id: keyed iteration syntax — emits stable React key props from item fields instead of array indices; falls back to _i when no key modifier is given (motivated by Svelte research — avoids silent list-diffing performance bugs)
  • Codegen: bind={var} on JSX form elements is the canonical two-way binding form; compiler expands to value + onChange with correct setter derivation for simple idents and field-spread paths
  • 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)
  • 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_check wrapper (B-060)
  • Store: CodeStore::batch_insert() for bulk artifact insertion (B-062)
  • Store: Pagination support (LIMIT/OFFSET) in list_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_code warnings suppressed (future integration)

Fixed

  • Store: Replaced .unwrap() on embedding try_into() with proper error handling (B-056)
  • Normalize: All AstNode variants now have explicit cases (no wildcard fallthrough) (B-058)
  • LSP: Removed unused imports in main.rs

Removed

  • PLAN.md — content merged into AGENTS.md §3 (B-076)