Skip to content

chore(deps): upgrade asupersync to 0.6.0 (git pin) - #3983

Merged
ScriptedAlchemy merged 7 commits into
masterfrom
chore/deps-asupersync-0.6
Oct 15, 2026
Merged

ScriptedAlchemy merged 7 commits into
masterfrom
chore/deps-asupersync-0.6

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Fixes #3874

Why

asupersync 0.6.0 has a release section in upstream CHANGELOG.md, but no tag and no crates.io release yet. The release needs it now, so the workspace pins upstream main at 432e2c3b2cf2bad02fc88e380d29a6b0b5c01422, whose Cargo.toml declares 0.6.0. asupersync-macros, franken-kernel, franken-evidence and franken-decision resolve from the same git source and rev through upstream path dependencies.

Follow-up: once 0.6.0 is on crates.io, replace the git pin with version = "=0.6.0" (the manifest comment says so) and relock.

Scope

Breaking changes from the v0.6.0 changelog, checked against our usage:

  • QuicFrame non-exhaustive, ChildRegion<Caps>, Http2ListenerStatsSnapshot and ManagedSupervisorReport new fields, SignalMaskGuard: !Send, lost UnwindSafe impls. None of these types is used here; the one open_child_region call holds a Cx<cap::All>, which the changelog says is unchanged. No source migration needed.
  • RuntimeBuilder::new() and its presets now start an on-demand blocking pool (blocking_threads(0, 512)). operation_task_owner::tests::construction_rejects_native_runtime_without_blocking_pool built a pool-less runtime from the bare builder and failed on 0.6. It now asks for blocking_threads(0, 0), the changelog's documented way to get the old behaviour. Production builders (the CLI runtime and native_runtime's process runtime) already size their pools explicitly.
  • Deeper future types under the pinned nightly push two Send proofs past the default recursion limit (recursion_depth_exceeding_limit, Tracking issue for future-compatibility warning recursion_depth_exceeding_limit rust-lang/rust#159228): DaemonInvocationClient::invoke_controlled in tracedecay-daemon-protocol (through asupersync::time::sleep) and commands::daemon in the CLI binary. Both crates now set #![recursion_limit = "256"], as crates/tracedecay/src/lib.rs already does.
  • spawn_blocking's no-runtime fallback no longer detaches its thread (GitHub Harden transcript ingestion edge cases #80). native_runtime::spawn_blocking queues on RuntimeHandle::spawn_blocking (the pool), never that fallback, so its contract and tests are unchanged.

Build infra: .bazelrc sets --repo_env=CARGO_NET_GIT_FETCH_WITH_CLI=true. crate_universe re-fetches git dependencies on every splice. libgit2 indexed asupersync's ~1 GB history on one thread for over 25 minutes and hit the 600 s cargo-bazel splice timeout; the git CLI fetch takes about 2 minutes.

Blast Radius

Every crate that uses asupersync (27 of them) builds against the new runtime. Behaviour changes that do not alter signatures (poll quotas, deadline timers, IO capability checks) apply only to budgets with quotas or deadlines and to restricted contexts; this workspace uses Budget::INFINITE and unrestricted contexts throughout.

Verification

Run on the branch merged with master at #3980 (after #3883's nightly pin and the T2-F1a CLI flip).

  • bazel build --config=clippy //crates/<crate>/... for all 27 crates that depend on asupersync: pass. After the last master merge I reran it for the CLI, root, rusqlite-runtime, runtime-core and daemon-protocol crates, the ones that merge touched or this PR edits.
  • //:rustfmt_check and rustfmt_check_2024 for the three touched crates: pass.
  • unit_test for every crate that names asupersync, and the CLI's tracedecay_unit_test: pass. operation_task_owner::tests::construction_rejects_native_runtime_without_blocking_pool failed before the fix with the predicted assertion and passes after it.
  • //crates/tracedecay:daemon_suite, :session_suite, :mcp_suite: pass. One earlier mcp_suite run failed multi_str_replace_behavior_test::later_replacement_edits_the_original_span_not_inserted_text ("project runtime ... failed to publish"); it passed 3 of 3 runs alone and the next full run passed, so it is a load flake.

Devin Review

@changeset-bot

changeset-bot Bot commented Oct 15, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2ecd4f7

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

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

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

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.

chore(deps): upgrade asupersync to 0.6.0 once it is released

1 participant