Skip to content

feat: consolidate TraceDecay V2 PR8-PR13 delivery - #421

Draft
ScriptedAlchemy wants to merge 6188 commits into
masterfrom
codex/tracedecay-total-redesign-plan
Draft

feat: consolidate TraceDecay V2 PR8-PR13 delivery#421
ScriptedAlchemy wants to merge 6188 commits into
masterfrom
codex/tracedecay-total-redesign-plan

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

This draft PR is the consolidated delivery branch for TraceDecay V2 PR8 through PR13.

  • PR8: completed session/LCM temporal retrieval authority.
  • PR9/PR10: code intelligence, exact/lexical/graph retrieval, FastEmbed semantic projection, calibration, and byte-stable fallback.
  • PR11: application, policy, configuration, catalog, Git transaction, and feedback-cycle core.
  • PR12: CLI/MCP/HTTP/LSP production bindings and canonical diagnostics/impact readers.
  • PR13: Hook V2, Context Scout, host lifecycle/bundles, read-only GitHub/CI feedback, and agent proximity.

The branch also contains the supporting rusqlite runtime cutover, worktree-aware incremental indexing, storage retention/Doctor integration, and direct product tests required by the canonical V2 plans.

Verification

  • Focused PR8-PR13 product tests
  • cargo check --all-features
  • cargo test --all-features
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo fmt --all -- --check
  • Dashboard and host integration checks
  • Distribution/FastEmbed acceptance
  • Linux, macOS, and Windows CI

Current status: implementation is still being consolidated from the shared checkout and CI is red. This PR remains draft until the working tree is committed, broad verification is stable, and the historical conventional-commit blocker is resolved. It must not be merged in its current state.

Safety boundaries

GitHub review ingestion is read-only. Semantic indexing never blocks exact/lexical/graph retrieval and publishes only complete compatible generations. Local coordination logs, private transcript evidence, secrets, and ad hoc artifacts are excluded from commits.

@changeset-bot

changeset-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 98b123b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ScriptedAlchemy ScriptedAlchemy added the WIP Work in progress; do not merge label Jul 10, 2026
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch from e50f8f5 to 4f5ab66 Compare July 10, 2026 05:54
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 986f25cca6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/plans/2026-07-09-tracedecay-brain-rewrite.md Outdated
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch 4 times, most recently from 5862bd6 to 53502de Compare July 11, 2026 16:52
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch 4 times, most recently from 642a33a to 5f2f610 Compare July 23, 2026 17:06
@ScriptedAlchemy ScriptedAlchemy changed the title [WIP] Plan TraceDecay V2 brain rewrite feat: consolidate TraceDecay V2 PR8-PR13 delivery Jul 24, 2026
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch from 76dee0f to 0258866 Compare July 24, 2026 17:16
ScriptedAlchemy added a commit that referenced this pull request Jul 27, 2026
Record the 2026-07-27 audit in the authoritative V2 status files.

Three delivered claims (Plan 16 worktree/store identity, Plan 38 cursor
repair, Plans 18/23 end-to-end sanitization) lost their tests in
9e3ca9f. Filed as verification-coverage corrections, not retractions:
the assertion is missing, the behavior is not withdrawn.

Also record the six instances of gates attesting to something they never
checked, the libtest empty-filter asymmetry that hides them, the six
product defects fixed tonight with their SHAs, and Plan 11's corrected
open-gap list including two items the widened accessibility matrix
surfaced.

None of tonight's commits has CI validation: PR #421 has been
conflicting since 05:13 UTC, so no CI has run since 01:24 UTC. Every
fix is recorded as locally verified only.
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch from 062285a to b73f8bf Compare August 1, 2026 18:32
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch from ef68e05 to f92b7f9 Compare August 7, 2026 08:32
ScriptedAlchemy added a commit that referenced this pull request Aug 7, 2026
Record the 2026-07-27 audit in the authoritative V2 status files.

Three delivered claims (Plan 16 worktree/store identity, Plan 38 cursor
repair, Plans 18/23 end-to-end sanitization) lost their tests in
9e3ca9f. Filed as verification-coverage corrections, not retractions:
the assertion is missing, the behavior is not withdrawn.

Also record the six instances of gates attesting to something they never
checked, the libtest empty-filter asymmetry that hides them, the six
product defects fixed tonight with their SHAs, and Plan 11's corrected
open-gap list including two items the widened accessibility matrix
surfaced.

None of tonight's commits has CI validation: PR #421 has been
conflicting since 05:13 UTC, so no CI has run since 01:24 UTC. Every
fix is recorded as locally verified only.
@ScriptedAlchemy
ScriptedAlchemy force-pushed the codex/tracedecay-total-redesign-plan branch 2 times, most recently from 1486ceb to f44f5c5 Compare August 7, 2026 21:43
ScriptedAlchemy and others added 7 commits August 8, 2026 00:36
Formatting only, no behavior change. These three files were left unformatted by
the interactive-graph cutover and the ambiguity-refusal follow-up.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cancelling in progress discards the only complete signal a long matrix
produces: a run that is 40 minutes in and about to report is killed by the next
push, so a busy branch can go a long time without ever completing a full
matrix. Letting superseded runs finish costs runner time and buys an actual
verdict.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wire PerformanceBudgets, PerformanceComparisons, and AnalyticsControls into
the Observatory page column, between the hook-hint funnel and store telemetry.

The three views are self-contained: each owns its own read, so a refused
budget projection cannot blank the consent controls beside it, and the page
lifts no state on their behalf.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The projection already carried every file's logical path: builder.rs serializes
the whole SanitizedCodeFileV1 under the file record property. The interactive
catalog then skipped every file-labelled entity, so the path was written on
publish and never read back. symbols_in_file consequently demanded a
FileOccurrenceId that no dashboard or MCP caller holds, leaving file-scoped
reads unreachable from the published generation.

- Index logical path to file occurrence while building the symbol catalog,
  ingesting file-labelled entities instead of skipping them.
- Verify each file entity's identity against its payload, matching the check
  the symbol path already performs, and refuse a generation in which two
  distinct file occurrences claim one logical path as typed Corrupt rather
  than silently picking a winner.
- Add symbols_in_logical_file, which answers an unknown path with an empty
  listing (a truthful "not in this generation") while keeping the zero-limit
  refusal and cancellation handling of its occurrence-keyed sibling.
- Move file entity identity into the parent projection module beside symbol
  entity identity, so builder and reader share one definition. A re-derived
  copy would have been a second identity authority, which the graph identity
  ruling rejected.

The scan budget and its Corrupt overrun guard are unchanged; file ingestion
runs inside the same paging and cancellation checks as symbol ingestion.

HANDOFF (GRAPH-CRATES lane; crates/tracedecay-graph-db, -code-index,
-usecases). Committed under a wind-down order, not pushed.

VERIFICATION STATUS
- This commit is UNVERIFIED. Its build was queued as symbolgraph-10
  (cargo test -p tracedecay-code-index --lib graph_projection) and had not
  reached the front of the shared queue when the order landed. It was written
  without a compiler. Highest-risk items to check first: the
  SanitizedCodeFileV1 deserialize bound in build_catalog, and the file_entity_id
  import now resolving from the parent module in both builder.rs and
  interactive.rs.
- Everything already on the branch IS verified, at a pristine snapshot:
  code-index graph_projection::interactive::tests 18 passed / 0 failed, and
  usecases graph::queries::bounded_adjacency_tests 4 passed / 0 failed. That
  closes the previously uncompiled test halves of the strata paging fix and of
  degree ranking, including the tripwire asserting the pre-fix unpaged
  statement is still refused at 10 001 distinct cross-file pairs.
- The shared worktree could NOT build these crates: crates/tracedecay-policy
  work_loop.rs:556 is dirty peer WIP missing four fields on the work proposal
  decision initializer, which fails every downstream crate. Verification ran in
  a pristine git archive snapshot instead. That break is not this lane's and
  was still present at commit time.

REMAINING WORK
- Graph identity bridge, hydration half: BLOCKED. nodes.symbol_occurrence_id
  does not exist in the canonical schema (runtime-core db/migrations.rs:115) or
  anywhere in the write path. The storage owner has neither acknowledged nor
  landed it. Until it does, the ruled join key and the indexer write-at-mint
  cannot be built. The ruling's binding condition that a read whose published
  generation moved past the binding answers a typed staleness refusal is also
  unimplementable without it.
- Reader-side staleness, a real and separately actionable gap: the published
  generation watermark is checked only at reader construction
  (graph_projection.rs:284-309). Every read method then goes through
  read_cancellation (interactive.rs:699-711), which re-checks cancellation only
  and never re-reads the current generation marker. A reader held across a
  later publication keeps serving its pinned snapshot. There is also no
  dedicated staleness variant: GenerationMismatch is overloaded for both a
  foreign generation id and a moved marker.
- Dashboard adjacency cutover: THREE of the four functions granted to this lane
  (caller_rows, callee_rows, neighborhood_edge_rows) no longer exist. The seam
  owner cut them over in bfad7ab, with the ruled typed ambiguity refusal
  following in a82d06e. Only subgraph_candidate_rows remains as SQL, called
  once at dashboard_graph.rs:599 inside the seeded subgraph path, which still
  assembles candidates and edges relationally via edge_rows_for_ids. That is
  the last adjacency read left to cut, and the interactive reader already has
  what it needs: impact for seeded expansion and edges_among for the induced
  edge set.
- Remaining graph-db dead-code warnings are triaged and are NOT unfinished
  features: GraphDb::open, GraphDbOwner::open/is_closed and
  GraphDbRegistry::reopen/remove_closed_fault form one test-harness surface
  paralleling the wired production path (open_with_store_state,
  open_registered_graph, recover_verified_snapshot). They need cfg gating or
  deletion, not wiring.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

WIP Work in progress; do not merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant