Repository navigation
v1.0.0-beta.64
Pre-release
Pre-release
1.0.0-beta.64 (2026-10-01)
⚠ BREAKING CHANGES
- sessions: session-temporal stores written by earlier builds are refused until
tracedecay wipe --stale --yesresets them. - graph-db: the test-helpers release_staging_rows_for_relational_head surface now applies production receipt semantics.
- global-db: registries created by v1.0.0-beta.63 and earlier carry graph_scopes.db_relpath. The schema contract refuses that shape as the reset-required state for the "project registry" authority and leaves the table untouched. Upgrade to a release with #2877 and run
tracedecay wipe --stale --yesto reset only the profile authority (global.db) instead oftracedecay wipe --all --yes. That loses the project registry, usage accounting and remote-deletion records; every project's code index, graph and memory stay, and the reset prints thetracedecay init <path>command that registers each project again. Session stores those releases wrote carry the same table: the daemon names each one when it first opens it, and the same command resets it (its session history is lost). Thedb_relpathfield is removed from graph scopes inprojects contextJSON and the project_context MCP result. - global-db: a registry whose code_projects table lacks the primary_root_platform, primary_root_bytes and primary_root_last_seen_at columns is no longer migrated in place. The daemon serves it in the reset-required state (authority "project registry"). With #2877, run
tracedecay wipe --stale --yesto reset only the profile authority (global.db), then the printedtracedecay init <path>commands. - branch:
tracedecay_statusbranch_diagnosticsno longer reportsserving_db_path,serving_db_exists,live_branch_db_path,live_branch_db_exists,nearest_tracked_ancestor_db_path,nearest_tracked_ancestor_db_exists, nor per-branchdb_file,db_path,db_exists,size_bytes,parent_db_path,parent_db_existsandwarnings. Thetracedecay://branchesresource dropsdb_fileandsize_bytesand lists branches by name.tracedecay branch listno longer prints a per-branch size ormissing-dbflag.branch-meta.jsonis written withoutdb_file; older binaries read such metadata as corrupt and fall back to single-store mode. - sessions: Codex admission ignores cursors of the retired per-session source identity; stores that still carry them beside observation rows must be reset with
tracedecay wipe --stale --yes. - contracts: tracedecay_signature, tracedecay_derives and tracedecay_test_map refuse
id; sendnode_id. LexicalFieldV1 no longer decodes snake_case variant names. @tracedecay/sdk is bumped to 0.11.0. - global-db: TRACEDECAY_ENABLE_GLOBAL_DB is no longer read. Use TRACEDECAY_DISABLE_GLOBAL_DB=1 to disable global accounting; an ENABLE=1 no longer overrides it, and ENABLE=0 no longer disables it. The dashboard accounting mode no longer reports enabled_by_env.
- sessions: lcm_status reports payload_gc.last_gc_status as null for a store whose GC never recorded a status, instead of deriving ok/partial/failed from last_error; the next GC pass records it.
- cli:
tool --jsonsuccesses (and first-class commands such astracedecay git status --json) print the MCP tool result with the typed result understructuredContentinstead of the bare application envelope. - graph-db: graph format 7. Sealed stores and replays from format 6 are superseded and rebuild cold; there is no migration.
- cli:
tracedecay tool --jsonrefusals from typed application tools and from pre-owner failures print the MCP tool result with the record atstructuredContent.probleminstead of an application envelope or an untyped{"problem": ...}object. The problem detail union gainsdaemon_unreachable, and@tracedecay/sdkis 0.11.0. - host-admission: group-commit hook admission fsyncs (#2685)
- code-index:
tracedecay gitignoreis removed and exits as an unknown command. index.git_ignore.v1 is retired, the settings patch no longer accepts git_ignore, and tracedecay_admin_project no longer has a gitignore_status action (@tracedecay/sdk 0.11.0). index.exclude.v1 and index.include.v1 now decide which files the code index, grep, ast-grep search and unmounted-files walks see, applied at the next daemon start. - sessions: release retention in micros; GC owner rows only (#2680)
- sessions: retention.observation.reclaim_superseded_cursor_advances is removed; ObservationRetentionReport drops cursor_advances_reclaimed, cursor_advances_before and cursor_advances_after; LcmRetentionReport drops raw_rows_before and raw_rows_after.
Features
- graph-db: publish small refreshes as layered generations (#2695) (8be35c1)
- sessions: publish typed LCM convergence in status (#2717) (c0fe494)
Bug Fixes
- cli: one typed tool-result shape for every --json refusal (#2690) (dcf2fad)
- cli: print every tool --json answer as the tool result (#2716) (79b6931)
- code-index: classify retries by type, not error text (#2708) (605402f)
- code-index: free captured sources once a pass lets them go (#2778) (4e3e1d6)
- code-index: honor index exclude/include, drop gitignore (#2514) (57da1e8), Refs #2377
- code-index: keep status on the committed generation (#2760) (b11bc4d)
- code-index: retry a held store lock on its release (#2768) (fb7f652)
- code-index: serve first search while restart graph warms (#2739) (f66f8a3)
- config: report uncompilable stored index patterns as findings (#2728) (e27b73d)
- contracts: drop the id and snake_case wire spelling aliases (#2722) (240c971)
- daemon-protocol: let a delivered reply win over a failed probe (#2686) (bf0e1fe)
- daemon: close stores in one teardown, drop capacity retry (#2751) (54fb091), Refs #2476
- daemon: join dropped observability drains at shutdown (#2665) (410e8f8)
- daemon: serve doctor report over reset-required stores (#2711) (5dc246d)
- dashboard: answer the story curate fixture with its receipt (#2701) (3abbb8e)
- doctor: open the project a lone doctor asks about (#2743) (4624623), Refs #2713
- doctor: report ingest refusals informationally (#2681) (dd092c2)
- feedback: publish the advisory mount's own typed state (#2724) (a908b62)
- feedback: wait for a reopened generation's source proof (#2668) (03ba683)
- hooks: keep hook spool locks free of durability barriers (#2732) (654d88d)
- hooks: never fail a delivered hook on its receipt spool (#2698) (833a46c)
- hooks: wake the drain when a delivery receipt is published (#2759) (3114485)
- hosts: report ETXTBSY spawn refusals on the first attempt (#2719) (72fa922)
- maintenance: retire a removed worktree's scheduler first (#2725) (f528565)
- mcp: pin lcm convergence and schema template key (#2758) (bdd8a97), Refs #2749 #2753
- memory: allocate SQLite and tree-sitter from mimalloc (#2773) (c36fa64)
- memory: charge and release the retained parse pool (#2775) (aa1e2d5)
- memory: charge resident owner pages, admit headroom (#2790) (962897f), Refs #2490
- memory: keep refresh survivors out of indexing worker heaps (#2784) (a29f123)
- memory: release idle thread heaps, charge graph owner pages (#2727) (f5b938b)
- memory: return idle index workers' heaps and drop built sources (#2661) (154a0eb)
- memory: wake refused work on the release it waits on (#2771) (7b364c8)
- runtime-core: share in-flight checkout topology walks (#2726) (d06b068)
- sessions: converge Claude rotation and invalid frames (#2788) (daf93e0), Refs #2780 #2781 #2782
- sessions: read only the source objects a capture names (#2777) (da62880)
- sessions: release retention in micros; GC owner rows only (#2680) (fff453b)
- sessions: resume replaced transcripts by prefix digest (#2737) (ca59a36), Refs #2712
- sessions: skip converged Codex rollouts at discovery (#2789) (fa0bf83), Refs #2787
- sessions: skip converged Pi and Kimi sessions at discovery (#2791) (e557275), Refs #2787
- sessions: wait on capacity release instead of re-reading history (#2779) (3923a22), Refs #2774
- store-runtime: read seals without store or pool locks (#2714) (51aa2b8)
- store-runtime: type remote recovery fence interruptions (#2718) (1ecbdc2)
- test: compile Windows check past unix-only helpers (#2670) (d01a884), Refs #2663
- unwedge refresh joins and scope rollback under load (#2677) (0633913), Refs #2667
Performance Improvements
- code-index: re-resolve only references an edit can move (#2770) (a02c95a)
- graph-db: seal layers from a base row index (#2754) (363a5f7)
- host-admission: group-commit hook admission fsyncs (#2685) (73b0bf1)
- runtime-core: close idle stores concurrently at shutdown (#2669) (180200b)
- sessions: drive retention from cursors and candidates (#2675) (e3f179c)
- sessions: extend session generations, don't copy them (#2761) (9d91e64)
- sessions: resume rewritten JSONL after the retained prefix (#2767) (3dfee41)
- sessions: skip codex rescans for unchanged rollouts (#2786) (c0af5d5)
Code Refactoring
- branch: delete per-branch database residue (#2731) (d04b269)
- global-db: drop graph_scopes.db_relpath (#2747) (ae7bed2)
- global-db: drop in-place registry column migrations (#2741) (ccef776)
- global-db: one opt-out variable for global accounting (#2723) (3d79ba6)
- graph-db: delete the test-only sealed receipt denial (#2755) (09d89e3)
- sessions: delete surviving legacy session readers (#2715) (5514288)
- sessions: delete the Codex v1 source-cursor replay (#2730) (611207f)