Skip to content

v1.0.0-beta.64

Pre-release
Pre-release

Choose a tag to compare

@ScriptedAlchemy ScriptedAlchemy released this 01 Oct 18:29
d4835ab

1.0.0-beta.64 (2026-10-01)

⚠ BREAKING CHANGES

  • sessions: session-temporal stores written by earlier builds are refused until tracedecay wipe --stale --yes resets 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 --yes to reset only the profile authority (global.db) instead of tracedecay 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 the tracedecay 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). The db_relpath field is removed from graph scopes in projects context JSON 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 --yes to reset only the profile authority (global.db), then the printed tracedecay init <path> commands.
  • branch: tracedecay_status branch_diagnostics no longer reports serving_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-branch db_file, db_path, db_exists, size_bytes, parent_db_path, parent_db_exists and warnings. The tracedecay://branches resource drops db_file and size_bytes and lists branches by name. tracedecay branch list no longer prints a per-branch size or missing-db flag. branch-meta.json is written without db_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; send node_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 --json successes (and first-class commands such as tracedecay git status --json) print the MCP tool result with the typed result under structuredContent instead 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 --json refusals from typed application tools and from pre-owner failures print the MCP tool result with the record at structuredContent.problem instead of an application envelope or an untyped {"problem": ...} object. The problem detail union gains daemon_unreachable, and @tracedecay/sdk is 0.11.0.
  • host-admission: group-commit hook admission fsyncs (#2685)
  • code-index: tracedecay gitignore is 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)