Repository navigation
refactor(runtime): move project lifecycle to native tasks - #4361
Conversation
|
Co-authored-by: ScriptedAlchemy <25274700+ScriptedAlchemy@users.noreply.github.com>
dbde759 to
f2db3d7
Compare
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Re-reviewed d14005c and cross-referenced #3736, including its recent progress updates. The new delta only reorders an import; no new concrete source defect found in the lifecycle/retirement slice.
I changed the PR body's Fixes #3736 to Refs #3736. This patch completes focused project-server timer/retirement ownership work, but the broad issue still has runtime seams and execution acceptance to track: native_runtime::handle() retains a production process_runtime() fallback in crates/tracedecay-rusqlite-runtime/src/native_runtime.rs:42–43, and this PR does not supply the owning-suite/platform, storage-wait, or paired performance/thread-use evidence required by the updated issue. Historical entry-point/framing/git/headroom migrations already recorded as landed are not being reopened.
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Pushed f07293a. Removed the three forwarding lifecycle hop wrappers and their module, imported the canonical lifecycle functions directly, and removed the obsolete Tokio-context comment. This completes the caller cutover without adding a compatibility facade.
Pinned rustfmt, commitlint, git diff --check, and the ambient-Tokio repository gate pass (2,509 production source files checked). Native lifecycle execution remains pending CI.
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Fixed the current Clippy E0308 failures in ee130e4. The production harness shutdown and the two affected lifecycle tests now create std::time::Instant deadlines, matching the canonical native shutdown helpers. Audited all remaining calls to both helpers; no wrappers or timeout changes were added.
Pinned rustfmt, diff checks, and commitlint passed. The three compiler errors came from the current CI job; the new head is pushed for CI compilation and existing shutdown tests. Native builds were not rerun in the constrained local environment.
Use the canonical asynchronous SQL reader for persisted scope lookup and CAS admission while preserving the foreground priority and read budget. Exercise real native-task CAS, readback, and stale-revision conflict requests and assert that scope-set reads do not park native workers.
…ersync-runtime-cutover # Conflicts: # crates/tracedecay/src/daemon/engine.rs # crates/tracedecay/src/daemon/tests/route_discovery.rs
Project-server lifecycle waits and retirement supervision run through the native runtime, preserving cleanup ownership when a caller abandons its wait. Native deadlines and tracked retirement tasks retain typed cancellation receipts. The obsolete forwarding module is removed, and registered scope-set lookup and CAS admission use the canonical asynchronous SQL reader.
The cold-root journey issues successful CAS, exact readback, and stale-revision requests on native tasks while retaining the fixture's Tokio context for operations that require it. Shutdown is joined before fixture data is removed.
Includes master through
6dbbfa647c, including the LSP process-exit classification repair. The conflicting route-opening logic was already behaviorally equivalent to master; its comments and documentation now use master's version without duplicating that change in this PR.Validation:
1a667de855c38f91911fb42371ac62d2b4c541b4, all 57 LSP integration tests passed, including the process-exit classification regression; zero failures, ignored tests, or filtered tests. Bazel invocationa97932c1-3eea-4c1e-b006-64dab9f5b05fforced Rustc and TestRunner remote, disabled local fallback, and disabled test-result caching.e1f6a54passed 168 of 169 targets. All 939 root unit tests passed, including all three native multi-root journeys; only the now-repaired LSP suite failed. Clippy and the shipped CLI job were cancelled at their two-hour and 90-minute job limits, respectively.Full current-head hosted CI, including Linux fleet, Clippy, shipped CLI, and aggregate results, must pass before merge.
Refs #3736