Repository navigation
feat: consolidate pending TraceDecay changes - #4742
Open
ScriptedAlchemy wants to merge 22 commits into
Open
ScriptedAlchemy wants to merge 22 commits into
ScriptedAlchemy wants to merge 22 commits into
Conversation
Combine the open pull requests, including draft work, on one review branch. Reconcile duplicate canonical-body batching through bounded temporal reads and the shared ordered SQL authority. Complete the body-loader cutover and retain typed integrity failures.
|
This was referenced Nov 4, 2026
Keep the pending application changes without advancing the release manifest or generated version metadata. Preserve the Grafeo dependency upgrade and every production change; beta.97 publication requires separate authorization.
Provider replay metadata must not be compacted merely because its media URI is shorter than the ingest large-payload detection threshold. Conservatively preserve even short data: references; the existing structured/media/external retention regression covers this case.
The privacy sanitizer rejects unstructured bodies above 1 MiB, so the former 3–4 MiB fixture failed before exercising retention. Use structurally valid JSON bodies admitted by the production bounded structured sanitizer, keeping the three ~3 MiB rows and an over-4 MiB offload to verify the same byte caps and preservation.
Reap the original inode descriptor only after the existing worker-exit checks succeed. A retained runtime may be observed without a subsequent registry lookup; snapshot polling must not leave a deleted-file descriptor open after its SQLite workers finish. Preserve POSIX lock safety while the lost writer is still running. Exercise that path without explicit close polling.
Integrate PR #4745 at 9f2ae73 into the existing #4742 draft, preserving both branch histories. Both changed files matched the source PR's original blobs in the consolidated tree, so retain the source blobs exactly without conflicts. Only the four trace-level timing boundaries are added; existing storage, LCM, search, SQLite lifetime repairs and release metadata stay unchanged. This is consolidation into the draft branch, not a merge into master. Source-reviewed only; combined-head hosted Bazel validation is still required.
ScriptedAlchemy
marked this pull request as ready for review
November 4, 2026 03:06
Contributor
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
The global-store canonical ownership trigger requires an inline row with NULL content to have a canonical-body owner. The privacy fixture deliberately has no admitted body, so its fake inline representation now fails the FK before testing the full-text sink boundary. Keep it as an unavailable external representation with its quarantined metadata intact, and assert that the canary remains stored while no sink can retrieve it. Preserve the existing two full-text privacy regressions and all production constraints; no runtime or schema behavior changes. Native Bazel validation of the consolidated current head is still required.
Linux CI observed count-objects report six loose objects both before and after preflight, but different filesystem allocation in KiB. Compare the complete object directory's relative paths and byte contents instead of allocation blocks, preserving the stronger no-new-or-rewritten-object invariant alongside existing ref and worktree checks.
A scoped one-row pass does not persist the unscoped cursor. When no aged candidate and no later summary source exist, merely advancing the transient aged frontier to the cutoff incorrectly reports more work forever. Mark both storage passes exhausted in that case. Keep resuming when a summary source was consumed, and preserve the original byte/row budgets. Cover idle scoped single-row maintenance and existing continuation behavior.
The worker entered the shared summary-admission semaphore even when a projection pass returned retryable zero-progress failure. A blocked summary permit then stranded the projection retry and its live join. Defer summary convergence until projection retry settles, preserving the existing retry policy and the blocked-admission behavioral regression.
The integrated recommendation authority now refuses patch diagnoses without observed skill use, even when patch counts are present. Update the production MCP list and view expectations to that explicit reason rather than the old absence-of-corrections conclusion. Preserve exact JSON matching and existing usage, privacy, and no-repair assertions.
A changed observations table drops its old GC triggers. Installing the canonical-body maintenance schema then fails on its partial trigger inventory before the existing authority validator can return the typed ResetRequired. Reuse the canonical observation table contract at existing-store admission, before any install writes; retain the final full-schema audit and repair of missing triggers on otherwise valid tables. The session-suite drifted-shape regression requires the typed refusal and preserved legacy rows.
Follow exact hosted //:rustfmt_check diffs for the two newly added regressions. No behavior, assertions, or test budgets change.
GitHub Actions rejects timeout-minutes in composite action steps, before Bazel setup can start. Remove the unsupported key without changing any validation, timeout budget, or runner behavior. Also incorporate master's reviewed Renovate lucide-react lockfile update, preserving its exact blob and ancestry to resolve the current base drift. The original consolidated application changes remain unchanged. Native hosted CI is required on the new combined head.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidate the pending TraceDecay application changes into one branch and review: session/LCM storage and retention, SQLite inode-pin lifetimes, search ranking, graph retention, host integrations, and eval identity.
Ready for review at the user's explicit request. This PR is no longer draft. Review and current-head CI should proceed now. Merge still requires complete applicable validation, resolution of known defects, and repository protections. Beta.97 release metadata remains excluded; release PR #4744 stays separate and is not authorized for publication by this work.
Consolidation
Commit
7a9f53506df27f122dbd872180656963cd3fbb4aintegrates #4745's complete source head9f2ae73dc4a9cdf8a8aa7c07e3bae8b429c65c36as a second parent, preserving both histories. Both tracing files were incorporated byte-for-byte without conflicts. The first-parent diff is exactly those two files; prior application changes, SQLite/LCM repairs and beta.96 metadata remain intact.#4745 is closed as superseded, with its branch retained. The earlier source PRs were consolidated and closed without deleting their branches. This is integration into this PR, not a merge into master. Keep #4374 open: the Codex timing spans enable diagnosis, not a claimed performance fix.
Integration decisions
Included source PRs
The draft-source labels describe the source PRs when imported, not the current status of this consolidated PR.
393cf31c3933213f2e1efa3ee6db01501937f385a059e3d418c71bbe806796a94e83a99be8b0972aa84f5e1906a371974aebbd32fbfce59a83c451d17a4dabdd0eb59651a9ff7f037b6454eb27dc610b82ca320ce06fc29fb90c319166d8b4cfd8434bdc98394929d75b7181fbca068b27cd5596273e6a877ee5d212ac1424da3853feaa6355f7b981747dd96d1eba31acfc0b25d581a95e1423a8f82ddac65c61ee9f2ae73dc4a9#4706 merged independently into master during inventory. #4707 also merged independently while consolidation ran. Release metadata originally folded in from #4722/#4743 was subsequently excluded; it is not part of the application scope.
Verification
The original consolidation author reported the following on the earlier combined code, before later master merges and repair commits:
pnpm install --frozen-lockfile, commit lint andgit diff --check.CARGO_BAZEL_REPIN=workspace bazel fetch --repo=@candbazel run //scripts:gen_builds, without generated drift.bazel build //:rustfmt_check --jobs=4.Those results do not establish current-head integration correctness. The full
bazel build //... --keep_goingwas interrupted under host saturation and did not pass. Master's #4741 hosted-CI cutover was incorporated afterward; current hosted coverage must validate that configuration and the combined source.Two original LCM failures have source repairs below but still require execution on the combined head:
structured_different_media_and_external_representations_are_retainedandrestoration_revisits_old_cursor_and_stops_before_exceeding_byte_budget.Follow-up corrections requiring combined validation
0b93806e: remove unauthorized beta.97 manifest/changelog/generated version changes while preserving the Grafeo upgrade and application work.f2f111f3: retain short and embeddeddata:replay representations; keep the media/external regression intact.06653e61: use sanitizer-admissible large JSON fixtures while retaining the 8 MiB pass and 4 MiB repack boundaries.317f03c8: release lost-file SQLite identity pins through existing worker-exit cleanup during health observation; retain held-writer safety and strengthen health-only cleanup coverage.7a9f5350: integrate chore(sessions): attribute Codex per-rollout store waits #4745's exact two-file tracing diff and ancestry; no behavioral edits, limits or assertions changed.5cc5e873: repair quarantined legacy privacy fixture broken by canonical-body ownership FK. Preserve unavailable content and retained metadata canary; both full-text sink regressions remain and require native execution.Latest current-head CI repairs (source-reviewed; not yet native-test verified)
The full Linux fleet run 41765053905 reported six failed Bazel targets. In addition to the earlier privacy fixture repair
5cc5e873, the following focused fixes were pushed to this same ready-for-review PR:eca03297— Git native-preflight test now compares all Git object paths and exact bytes, instead of filesystem allocation blocks ingit count-objects -v; existing refs and worktree read-only checks remain.0343b7cc— bounded LCM inlining/offload passes no longer report a pending continuation when no eligible aged candidate or later summary lineage remains. Includes an idle scoped single-row regression; does not change row/byte budgets.50fbef3e— retryable zero-progress temporal publication defers summary admission until publication retry; existing blocked-summary-admission behavioral test protects the live join.84302c42— the two production MCP skill list/view journey tests now assert the canonical missing-use-evidence rationale, preserving exact payload comparisons and the no-repair outcome. The actual mcp_suite artifact showed only these two failures (672 passing).The other integrated CI failure concerned legacy observation-shape reset precedence: a drifted observations table lost its GC triggers, and trigger installation returned a generic ownership-schema error before the typed ResetRequired check. Commits
e71ed2dcand formatting follow-up0e2cac22now reuse the canonical observation table contract in read-only existing-store admission before trigger installation, preserving the typed refusal and legacy rows. Existing exact session-suite regression still requires native verification. The old Clippy job failed but its log endpoint returned BlobNotFound, so no Clippy source defect is claimed. Fresh CI for the latest head is 41786442299, queued at inspection. No fresh combined Bazel/native suite has passed this head.No local Bazel, Rust compilation or rustfmt ran during the latest consolidation or ready-for-review transition. Full combined-head validation remains pending. Older source-PR checks and intentionally skipped draft jobs are not evidence of a passing current integration.
Latest full Linux evidence (previous head
7a9f5350)Linux fleet run 41765053905 completed with six failing Bazel targets, not a green matrix: LCM retention bounded continuation, native Git preflight read-only object-count size, two privacy fixture FK tests now source-repaired above, a blocked-summary projection retry, drifted observation schema losing its typed reset, and the MCP suite whose detailed output is in the uploaded test-log artifact. Clippy also failed but its log could not be retrieved reliably. Do not relax limits or equate these with tested fixes. The new head
5cc5e873requires fresh full applicable CI.Current gate repair
b707d39f: fixed both exact Bazelrustfmt_checkdifferences reported by Repository gates job 126429555946, without modifying behavior or assertions. The current-head CI run 41791985865 is queued; no current-head full native pass is claimed.Review focus
Review the storage hydration conflict resolution, imported LCM/retention/host changes, and SQLite lifetime repairs. Preserve the fail-closed submodule boundary (#4593 remains open) and existing validation limits. Ready for review is not a test-pass claim or permission to bypass merge gates. No release, tag mutation or production deployment is authorized.