You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf(storage): make optional lifecycle diagnostics opt-in #1655
Native implementation slice of canonical #1617, limited to its existing opt-in observability requirement. The checksum format/retirement foundation is #1637. This is an independently reviewable part of the remaining XL policy change; #1617 remains the close gate.
Scope
Make optional lifecycle I/O, construction I/O and storage attribution collection opt-in on default read/query/export/publish paths. Without an explicit collector, optional counters, inventories and diagnostic clocks do no bookkeeping. Preserve explicit captures across workers and keep mandatory receipt identities, allocation ownership/resource limits, persisted recovery authority, cache release and durability barriers unchanged. Do not present disabled measurements as measured zero.
Acceptance criteria
Deterministic tests show ordinary operations do not allocate/update optional collectors or start diagnostic clocks; explicitly captured operations still produce real nonzero evidence.
Capture lifetime/worker propagation is isolated and safe under concurrent operations; existing explicit attribution tests continue to measure actual work.
Mandatory publication/receipt/recovery/resource outcomes and error ordering are unchanged; relevant existing tests pass.
The nearest linked development topic explains how to opt into diagnostics and distinguishes measurement from required contract accounting.
Boundaries
No payload/checksum format change, digest algorithm replacement, identity caching or durability migration. #1617's default-read and publish/export digest slices own those. Existing #1623/#1632 ingest measurements are preserved; this slice changes when optional bookkeeping is active, not their measurement contracts.
Read-only implementation handoff for the existing #1617/#1618 owner: /tmp/graphforge-1655-opt-in-plan-13cc28af.md, with frozen method/input manifest /tmp/graphforge-1655-plan-13cc28af/method-input-digests.json. This session will review/integrate only and creates no competing branch. Refresh against merged #1637 before implementation.
Verified optional costs include lifecycle_io fallback table/snapshot allocations, legacy RegionScope unconditional clocks/proc sampling, construction Scope starting clocks before the enabled check, and inactive test-support row-family allocation. Preserve IoCounter bytes used by construction encoded-artifact receipts (lanes.rs:334; encoding.rs:2248), persisted phase reconciliation, allocation/resource ownership, recovery and cache-release facts. Absent optional observations must be unavailable/None/null; requested qualified evidence must still reject missing data.
The handoff maps existing explicit capture/attribution contexts and producer activation before graph open, plus nested/worker/concurrent routing tests. #1652 process-wide hash/CPU observations are separate and must not be claimed as operation-isolated evidence. This is a plan, not completed implementation or validation.
Merged in PR #1677, commit a151855 on main. All acceptance outcomes are implemented: optional diagnostics require an explicit operation-owned capture; CLI activation is --json --diagnostics; worker propagation and inactive/nested/concurrent contexts are directly covered; mandatory admission, budgets, cache accounting, progress and receipts remain.
Final-head local verification: 16 selected nextest cases passed, workspace Clippy with -D warnings, formatting and make pre-push-fast passed. Both independently verified GitHub review findings were corrected and their threads resolved. Exact-head CI run 36749219524 passed; merge-queue run 36753224903 passed, including native durability and binding/API contracts. The squash commit and issue closure were verified on main.
Activity
DecisionNerd commentedon Sep 30, 2026
Read-only implementation handoff for the existing #1617/#1618 owner:
/tmp/graphforge-1655-opt-in-plan-13cc28af.md, with frozen method/input manifest/tmp/graphforge-1655-plan-13cc28af/method-input-digests.json. This session will review/integrate only and creates no competing branch. Refresh against merged #1637 before implementation.Verified optional costs include lifecycle_io fallback table/snapshot allocations, legacy RegionScope unconditional clocks/proc sampling, construction Scope starting clocks before the enabled check, and inactive test-support row-family allocation. Preserve IoCounter bytes used by construction encoded-artifact receipts (lanes.rs:334; encoding.rs:2248), persisted phase reconciliation, allocation/resource ownership, recovery and cache-release facts. Absent optional observations must be unavailable/None/null; requested qualified evidence must still reject missing data.
The handoff maps existing explicit capture/attribution contexts and producer activation before graph open, plus nested/worker/concurrent routing tests. #1652 process-wide hash/CPU observations are separate and must not be claimed as operation-isolated evidence. This is a plan, not completed implementation or validation.
DecisionNerd commentedon Sep 30, 2026
Merged in PR #1677, commit a151855 on main. All acceptance outcomes are implemented: optional diagnostics require an explicit operation-owned capture; CLI activation is
--json --diagnostics; worker propagation and inactive/nested/concurrent contexts are directly covered; mandatory admission, budgets, cache accounting, progress and receipts remain.Final-head local verification: 16 selected nextest cases passed, workspace Clippy with
-D warnings, formatting andmake pre-push-fastpassed. Both independently verified GitHub review findings were corrected and their threads resolved. Exact-head CI run 36749219524 passed; merge-queue run 36753224903 passed, including native durability and binding/API contracts. The squash commit and issue closure were verified on main.CI: https://github.com/CurateLabs/graphforge/actions/runs/36749219524
Queue: https://github.com/CurateLabs/graphforge/actions/runs/36753224903
perf(storage): make optional diagnostics explicit and operation-scoped (