Repository navigation
refactor(runtime): replace asupersync with Tokio - #4865
Open
ScriptedAlchemy wants to merge 14 commits into
Open
ScriptedAlchemy wants to merge 14 commits into
ScriptedAlchemy wants to merge 14 commits into
Conversation
|
ScriptedAlchemy
marked this pull request as ready for review
November 11, 2026 01:18
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)
Remove obsolete execution-context arguments from storage writers and attachments, and update watch, mpsc, runtime handle and builder callers to the current Tokio contracts. Pin watch change futures while retaining the all-waiter wake and closed-channel assertions. Keep queue batching checks exact and current-thread assertions local to the active runtime. Retained automation settlement uses the existing scoped blocking helper so synchronous storage remains admitted after the caller stops observing its result. Validation: all 11 owning Bazel rustfmt targets and git diff --check pass. Compilation, Clippy and runtime tests remain for hosted CI.
Yield while GC, shutdown and context-scout tasks settle on current-thread runtimes. Assert the selected Tokio runtime and scoped blocking execution. Isolate process-global storage-wait measurements from parallel fixtures, retaining all deadlines and zero-wait assertions. Cover missing SSE timers and loopback runtime ownership. Validation of the full runtime and storage suites remains delegated to CI.
ScriptedAlchemy
enabled auto-merge (squash)
November 11, 2026 21:47
Run storage-pool timers on the pool driver so synchronous waits and inline deferred returns no longer panic without an ambient Tokio runtime. Let block_on move a multi-thread worker task to a blocking thread instead of refusing, and expose the storage blocking-pool marker for boundary tests. Arm Notify futures before checking state in settlement and memory-graph waits so notify_waiters cannot be lost. Observe cancellation before queued observation preparation starts, and drop the unused registry runtime-unavailable variant. Update the Git catalog and remote enrollment tests to exercise the supported blocking boundaries.
Use a native metadata-derived unvouched witness so scheduling delays cannot change the clock branch under test. Keep production acquisition intact and check both unchanged and changed native identities against the same real directory entry fingerprint.
Exercise nested blocking work through the runtime instead of exporting its pool marker. Keep the generation-based Notify waits guaranteed by Tokio. Bound failure in the single-worker progress regression and cover current-thread refusal.
Release admission owners and join exact registered runtime retirement before inspecting or reopening each sampled store. Preserve the cancellation poll sweep and all rollback and reopen assertions.
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.
TraceDecay used Asupersync alongside Tokio for storage and daemon execution. This PR moves those services onto the existing Tokio stack and removes Asupersync, its macros, source patches, Bazel annotations, obsolete runtime arguments, and cross-runtime transport adapters.
Accepted writes and retained tasks keep the runtime that admitted them. Dropping a request's waiter does not abandon settlement. Storage timers use their owning driver, synchronous waits use the marked blocking pool, and
block_onhands scheduling to another worker on a multithreaded runtime while refusing a current-thread runtime. Queued observation preparation checks cancellation before starting. The CLI installs one runtime for its services.The production runtime disables Tokio's LIFO slot through its documented builder option to retain bounded wake behavior. Runtime performance has not been benchmarked. Work that can hold a worker belongs on the blocking pool; regressions exercise socket wake progress through that boundary.
Native macOS Bazel verification on the final source diff committed as
9fdc01b502:git diff --check: passed.The migration also has regressions for accepted blocking settlement after waiter cancellation, retained runtime identity, stopped timer drivers, task panic/cancellation, TLS deadlines and draining, and Unix peer-close handling. Hosted checks for the new head remain pending; native Windows execution is not established by the macOS results. The Devin review reports a hidden flag whose details are unavailable through the PR feedback tool, so no claim is made that this unseen finding was reviewed.