Skip to content

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

Open
ScriptedAlchemy wants to merge 1986 commits into
masterfrom
codex/tracedecay-total-redesign-plan-reopened
Open

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

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Replacement review for #421 after its accidental merge was reverted from master in 52a9aab. This commit has the exact tree of #421 head d4c67d4. Do not merge until explicitly authorized.

@changeset-bot

changeset-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 83f3ac9

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

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

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Post-reopen correction pushed in a23f86a: source-neutral background reconcile no longer advances the scheduler epoch and cancel in-flight text activation; mounted hook overflow uses the explicit invalidating path. Evidence: RED reproduced 0/1, GREEN 1/1 for ordinary_background_reconcile_does_not_supersede_in_flight_text_work; cargo check --lib --locked passed.

@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

if [[ -n "${{ steps.target-runtime.outputs.runtime_library }}" ]]; then
companion_args+=(
--companion
"${{ steps.target-runtime.outputs.runtime_library }}=${{ steps.target-runtime.outputs.runtime_entry_name }}"

P1 Badge Install the bundled Linux runtime beside the binary

For Linux targets, this archive now contains libonnxruntime.so.1, and the verification step succeeds only while that companion remains beside the $ORIGIN-linked executable. However, install.sh lines 80-84 extracts the archive and copies only tracedecay into the install directory before deleting the temporary directory. On systems without a compatible system ONNX Runtime, binaries installed through the advertised script will therefore fail in the dynamic loader even for --version; install the companion library beside the executable or use a layout whose runtime search path matches the installed location.


{
"type": "json",
"path": "server.json",
"jsonpath": "$.version"

P1 Badge Advance the SDK version in release PRs

The new npm publication job derives its version from the packed sdks/typescript/package.json, but this release-please list updates only the root manifest, CLI manifest, and server.json; the SDK manifest and lockfile remain fixed at 0.1.0. Starting with the release after 0.1.0, the job will either fail its different-integrity check for @tracedecay/sdk@0.1.0 or no-op for identical bytes, so no SDK version corresponding to the new stable release is published.


const overview = useQuery({
queryKey: ['delivery', 'overview'],
queryFn: () => fetchEnvelope('/api/delivery/overview', DeliveryOverviewV1Schema),

P1 Badge Scope Delivery queries to the selected project

When the scope bar selects a project other than the active project, this query keeps the same cache key and continues fetching the unprefixed active-project route. The dashboard already provides scopeKey and scopedUrl, and the backend mounts /api/projects/{id}/delivery/overview; without using them here, the page labels the selected project while showing another project's Git, CI, and release data, and switching scopes does not trigger a refetch.


let digest = RegistrationDigest {
project_id: project_id.to_string(),
canonical_root: registration_root.to_path_buf(),
git_common_dir: git_common_dir.clone(),
tracked_branches,

P1 Badge Include Git remote identity in the registration digest

When origin changes via git remote set-url without touching branch metadata or store artifacts, this digest remains identical, so the cache returns at lines 130-131 before git_remote_url is recomputed at line 147. The registry consequently retains the old remote and its alias, causing remote-based cross-project resolution to reject the new identity or continue resolving the stale one until an unrelated artifact changes; include the normalized remote in the digest.

AGENTS.md reference: AGENTS.md:L159-L161


private sendCurrentDiagnostics(): void {
const uris = vscode.languages.getDiagnostics().map(([uri]) => uri);
this.sendChangedDiagnostics(uris);

P2 Badge Batch startup diagnostics instead of dropping the tail

At activation or language-client restart, getDiagnostics() can return more than 32 document URIs, but this passes the entire list to limitAdmittedNativeDiagnosticDocuments, which permanently slices it to the first 32. Documents after that boundary are never synchronized unless they later emit a diagnostic-change or open event, leaving TraceDecay's native diagnostic state incomplete indefinitely for larger workspaces; split the startup list into bounded batches instead.

ℹ️ 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".

ScriptedAlchemy added a commit that referenced this pull request Aug 24, 2026
fix(clippy): clear the workspace clippy failures on #707
ScriptedAlchemy added a commit that referenced this pull request Aug 25, 2026
Removing the re-export shims left their module doc comments orphaned in
`context` and `graph`. The rest are pre-existing lints that only fire under
`--all-features`, which compiles the `test-transport` support surface as
non-test code:

- the registered-test-server constructor gets the file's existing explicit
  `expect_used` allow, since `lib.rs` denies it only outside `cfg(test)`;
- `http_application_registry` is read by the `cfg(test)` capacity journey and
  only reads as dead under `test-transport` alone, so the allow is gated to
  `not(test)` rather than renamed to a discard;
- the hotpath cadence helpers keep `#[inline(always)]` with an explicit allow,
  preserving the author's intent instead of silently downgrading it.

The `daemon_suite` restart wait is now the original helper recovered from the
PR #707 head rather than a reconstruction: it additionally proves the runtime
readiness receipt authorizes the exact configuration the SDK selected.
ScriptedAlchemy added a commit that referenced this pull request Aug 26, 2026
ScriptedAlchemy added a commit that referenced this pull request Aug 26, 2026
The relocation fix that anchored this test above the package allocated a
`PathBuf` only to hand out a reference, which `-D warnings` rejects as
`unnecessary_to_owned` and which failed the Clippy gate on #707.

`validate_requested_workload` takes `&Path`, and `CARGO_MANIFEST_DIR` is a
literal, so `Path::new` yields a `&'static Path` with no allocation and no
temporary to borrow from.
ScriptedAlchemy added a commit that referenced this pull request Aug 26, 2026
…707-20260826-a1

perf(index): integrate post-#721 catch-up delta into #707
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

#733 landed Clippy-red. Helper branch (not merged, shared checkout untouched):

cursor/707-clippy-after-733 @ latest HEAD of this PR (186880e550)

Clears the #733 Clippy denials:

  • nest Unbound | Unavailable or-patterns
  • collapse nested hint/witness and session-drain ifs
  • box SessionGraphAttachmentStateV1::Attached so the enum is not 808B

Adopt when you want:

git fetch origin cursor/707-clippy-after-733
git merge --ff-only origin/cursor/707-clippy-after-733

I will not land this on #707.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Clippy helper is now on the Codex worktrees (still not landed on this PR head):

  • relocate /fast/projects/tracedecay/.codex-worktrees/root-package-relocation @ 806b8c74ef (cherry-pick of 3293045f53)
  • post-721 /tmp/tracedecay-integrate-post721-707-a1 @ 127ab57fae (ff to 186880e550 then same cherry-pick)

Same change as cursor/707-clippy-after-733. I will not push/merge this onto #707.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Isolated post-#721 verification (worktree /tmp/tracedecay-integrate-post721-707-a1, CARGO_TARGET_DIR=/tmp/td-post721-isolated-target):

Green (non-vacuous) on merge 3b1baaee82 / later 127ab57fae:

  • tracedecay-graph-db --lib 87
  • tracedecay-runtime-core --lib 677
  • tracedecay-usecases --lib 837 (+1 ignored)
  • tracedecay-code-index --lib 177 (+1 ignored)
  • sealed_publication_tests 3, daemon::scheduler 33, session_runtime 1, sealed_projection_deadline_tests 1
  • late-bind native_declared_topology_projection 12

Not green

  • --all-features cannot compile tracedecay-rusqlite-runtime (admission.rs:120): hotpath::mutex! vs std::sync::Mutex because graph-db enables hotpath/hotpath without tracedecay-rusqlite-runtime/hotpath.
  • daemon::tests::scheduler 11 passed / 11 failed. Failures are scheduler_config::*: ensure_worker_planprofile code-index worker plan was not installed during daemon bootstrap (plus one writer-gate timeout and one missing scheduler key). Production bootstrap.rs still calls install_profile_worker_plan; the test daemon path does not.

Clippy helper remains on this tree at 127ab57fae / relocate 806b8c74ef. Not pushed to this PR head.

ScriptedAlchemy added a commit that referenced this pull request Aug 27, 2026
Ports the missing pieces of commit b1e41b712 ("fix(build): land the
batching commit's missing consumers") onto #707: HookCompletedReadinessDistributions
moved into tracedecay-agent-hosts with pub(crate) fields, so
input_rows_processed, input_rows_dropped_at_cap, and events_considered
are no longer reachable outside the crate. Adds the three public
accessors.

source_event and input_rows_received (also added by the source commit)
are not ported: nothing on this branch reads them through an accessor
today - the root-crate benchmark still compares via
serde_json::to_value(&readiness_distributions)["field"], which does
not need them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@cursor
cursor Bot changed the base branch from master to cursor/vendor-split-707-d6ed August 27, 2026 05:09
cursor Bot pushed a commit that referenced this pull request Aug 27, 2026
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/vendor-split-707-d6ed branch from 5d8f2a1 to c7fcf3f Compare August 27, 2026 05:52
ScriptedAlchemy added a commit that referenced this pull request Aug 27, 2026
…d6ed

chore(vendor): stacked vendor-only PR for #707 — generated vendor churn, land first
@ScriptedAlchemy
ScriptedAlchemy deleted the branch master August 27, 2026 06:24
@ScriptedAlchemy
ScriptedAlchemy changed the base branch from cursor/vendor-split-707-d6ed to master August 27, 2026 06:24
cursor Bot pushed a commit that referenced this pull request Aug 27, 2026
…rules

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Converge existing configuration snapshots onto the linked-worktree default and classify linked worktrees from canonical Git identity.
…plan-reopened' into codex/tracedecay-total-redesign-plan-reopened
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Closing the remaining findings in the Aug 28 Codex review:

  • Beta workspace-version authority was already fixed by 261c40e1ebf6229eb09657c227a2d8d7a91c5378.
  • Hermes same-origin embedding is fixed in e77654aad8e003b823a29ae7e6838d3b3b06e0d8: /dashboard-url now returns /api/plugins/tracedecay/embed/; that mount proxies HTML/assets/API/SSE, and the iframe rejects cross-origin loopback URLs.
  • Selected-project events are fixed in the same commit: the provider reconnects to /api/projects/{id}/events, derives scoped delivery acknowledgements, and the project gateway explicitly admits that selected project's events/delivery-ack POST.

Verification: dashboard typecheck; 38 focused Vitest cases; dashboard-api scoped-post unit test; 8 Hermes proxy tests passed with one FastAPI-only case skipped because FastAPI is not installed.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Follow-up on the scheduler-race note: no additional port is required on the current implementation. read_task_lock_snapshot distinguishes a vanished file (None) from on-disk garbage (Some with timestamp fallback), and task-lock create/read/remove is serialized by acquire_task_lock_coordination; the normal owner cannot disappear between an AlreadyExists result and the contender's snapshot read. The old #739 fix b44015fa02571d93938aa764c0a81102615131ce is also an ancestor of current #707. The earlier #738 conflict is gone.

@ScriptedAlchemy

ScriptedAlchemy commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Closing the remaining actionable findings in the Aug 17 Codex review: all five are fixed by 8b9d07f936f7ac7069921658b6fb29ec834eddb6, which is an ancestor of the current #707 head.

  • Linux installs copy every libonnxruntime.so* companion next to the installed binary; tests/install_script_test.sh verifies the versioned and unversioned runtime files survive installation.
  • Both release-please manifests update crates/tracedecay-sdk/Cargo.toml and Cargo.lock with the release.
  • Delivery queries use selected-project scope.
  • The registration digest includes normalized Git-remote identity.
  • Startup diagnostics are processed in bounded batches without dropping the tail.

The focused install regression and the current dashboard/release verification pass on the pushed head.

Drop blanket and unlabeled function histograms that retained thousands of
HDR registries during acceptance journeys; explicit semantic spans remain.
Forward Clap's lifecycle-global flag into the tool parser so piped whole-payload dry-runs work on either side of --args without consuming stdin twice.
Adopt the reviewed CLI fast path and dashboard embedding updates while
preserving the labeled-only Hotpath function instrumentation boundary.
BleedingDev pushed a commit to BleedingDev/tracedecay that referenced this pull request Sep 2, 2026
Merges ScriptedAlchemy/tracedecay PR ScriptedAlchemy#707 (codex/tracedecay-total-redesign-plan-reopened)
at 5749e4f into the product branch, advancing the pinned
floor from 08fbe33 (1005 upstream commits).

Upstream restructured the daemon into new crates (daemon-service, session-runtime,
configuration, store-runtime, ...). Product mounts that lived in moved files were re-applied
at their new locations per the convergence map; the map, footprint policy and every floor
pin now name the new head.

Conflicts resolved: 13 files, 11 moved seams re-applied.
Build: cargo check --workspace --all-targets clean after 4 repair rounds; product crate
tests recorded in the train log. Repair phase notes: check_green_tests_failing status
remains outstanding for follow-up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
BleedingDev pushed a commit to BleedingDev/tracedecay that referenced this pull request Sep 2, 2026
…ths; widen configuration touch-point cap

Remapped 21 source_paths in coding-memory-authority-matrix.json and the five SOURCE_MARKERS keys in the matrix checker to the crates upstream 5749e4f split the daemon into (graph-query, session-memory, session-runtime, host-admission, daemon-service, configuration, dashboard-api, runtime-core); crates/tracedecay/src/branch.rs now lists runtime-core branch.rs plus branch/tracking.rs. Realigned the core script's wrapped 'retained store remains the sole / runtime configuration authority' marker with the wrapper entrypoint's literal. Raised configuration_registry_mount max_changed_lines 360 -> 540 (measured 505) because ScriptedAlchemy#707 moved the config module into crates/tracedecay-configuration, and recorded the reason in patch-footprint-policy.md; no other cap and no max_files changed. Gates: check-coding-memory-authority-matrix-core.py 0, check-coding-memory-authority-matrix.py 0, product_coding_memory_authority_matrix_test.py 0, check-patch-footprint-policy.py 0, product_patch_footprint_policy_test.py 0, check-upstream-ownership-registry.py 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
BleedingDev pushed a commit to BleedingDev/tracedecay that referenced this pull request Sep 2, 2026
…t branch

Merges sync/upstream/5749e4f (upstream ScriptedAlchemy/tracedecay PR ScriptedAlchemy#707 at
5749e4f, floor advanced from 08fbe33) into
feat/pluggable-memory-providers-v2 on top of the wave checkpoint 0c4da0f.

Product mounts follow upstream's crate split (tracedecay-configuration,
-daemon-service, -session-runtime, -session-memory, -graph-query); the
convergence map, footprint policy, authority matrix, surface map, m0 record and
observation policy point at the new locations (remapped by symbol content).
The test-only harness seam (open_with_native_provider_for_test /
ActivationSelector::Pinned) stays removed as unauthorized under the shutdown
entry; the composition gate no longer requires it.

Fixes the wave-left focused test failures: the three cognitive_recall
advisory-rendering tests (train) and the observation_journey budget-bound
admission test, whose caller deadline sat under the lane's foreground budget so
the sample it asserted on could never breach it.

Verified at root: cargo check --workspace --all-targets --features
tracedecay/memory-provider-host exit 0; cargo check -p tracedecay (default)
exit 0; product crate tests 724/724; root focused memory tests 76/76 after the
fix (interleaved_sessions_bind_exact_scopes_and_remount_resumes_from_watermark
and daemon-service lsp_session_rejects_a_client_root_that_differs_from_the_admitted_root
each failed once under an 8-job parallel batch and passed on every rerun;
tracked as flaky); tracedecay-configuration/-daemon-service/-session-runtime
tests 145 passed. All product gates and contract tests green in the train log.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Derive resident pressure from the effective cgroup-v2 ceiling and stream sealed catalog symbols so warming cannot duplicate the full catalog beside its manifest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant