Repository navigation
build: pin Rust to nightly-2026-09-27 - #3883
Merged
Merged
Conversation
asupersync nightly-outcome-try compiles on this dated nightly. Bazel selects that channel only; the stable toolchain lane is gone. Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
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)
ScriptedAlchemy
enabled auto-merge
October 14, 2026 07:49
Break the code-text generation self-cycle, prove deep registry and database types field-by-field, and erase nested futures at the boundary that was walking them past recursion_depth_exceeding_limit. Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
ScriptedAlchemy
disabled auto-merge
October 14, 2026 11:00
ScriptedAlchemy
enabled auto-merge
October 14, 2026 11:01
Erase each overflowing child at the concrete call so its Send proof is a separate root. A generic helper leaves the proof in the caller. Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
…pth-warnings-f220 fix(nightly): shorten Send proofs that overflow rustc
|
map_or_default replaces map().unwrap_or_default() under -Dwarnings. The probe matches a dated nightly by version text, and the provenance fixture follows cargo's nested build-script directory. Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
…-toolchain-1f4f # Conflicts: # crates/tracedecay-code-index-runtime/src/git_watch.rs # crates/tracedecay-daemon-service/src/doctor_kernel.rs # crates/tracedecay-daemon-service/src/doctor_kernel/tests.rs # crates/tracedecay-global-db/src/schema_stages.rs # crates/tracedecay-rusqlite-runtime/src/native_runtime.rs # crates/tracedecay-session-runtime/src/session_sync.rs # crates/tracedecay-session-runtime/src/session_temporal_refresh_scheduler/registry.rs # crates/tracedecay-sessions/src/runtime/ingest/user.rs
Re-merges schema_stages.rs with the #3909 authority-classify erasure and master's bounded observation-authority audit, erases the LSP request and refresh-batch futures, and fixes nightly clippy lints in new master code.
Master's native-runtime cutover made every timed, blocking, and SQL future hold an Asupersync Cx across an await. Proving that Send costs dozens of solver levels, and nested callers overflowed recursion_depth_exceeding_limit under nightly clippy. spawn_blocking, sleep_until, the SQL reader and writer admissions, and NativeTask::spawn now erase once at the source, and timeout/timeout_at return a named Timeout future instead of three nested async fns.
Reconciles #3909's Send-proof erasures and field assertions with the master merge (git watcher, observability producer, stack runtime, CLI daemon calls), turns #3909's boxed-future annotations into erase_send! so type_complexity passes, and fixes nightly needless_bool, large_enum_variant, and needless_borrows lints. The LSP erasures from the previous commit are dropped: the runtime-primitive fix covers them.
…-toolchain-1f4f # Conflicts: # crates/tracedecay-rusqlite-runtime/src/native_runtime.rs
This was referenced Oct 15, 2026
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.
Summary
nightly-2026-09-27inrust-toolchain.toml, Bazelrules_rust, CI, and release builds.0.5.0'snightly-outcome-tryfeature and deletes the stable toolchain lane.map_unwrap_or, the toolchain probe's version check, and the provenance fixture's build-script path.Motivation
asupersync's
nightly-outcome-trydefault needstry_trait_v2, which stable1.99.0does not provide. A second stable lane would rebuild the same graph on a different rustc. This PR keeps one pinned nightly everywhere.nightly-2026-08-25(the asupersync/fastmcp date) predates rust-lang/rust#162275, which stops coroutine witnesses from inflating auto-trait recursion depth.nightly-2026-09-27includes that fix.recursion_depth_exceeding_limit(rust-lang/rust#159228) is still warn-by-default. Clippy's-Dwarningsturns it into an error, so Send proofs that overflow were shortened in the merged #3909 commits.recursion_limitwas not raised.nightly-2026-10-13(rustc 1.101.0-nightly (e9bbadf68 2026-10-12), not commit822182db4) still emitted 13 of those diagnostics on the pre-#3909 tree, so the pin stayed on2026-09-27.Changes
rust-toolchain.toml: channelnightly-2026-09-27; componentsclippy,rustfmt,rust-analyzer,rust-src.MODULE.bazel:versionsandrustfmt_versionarenightly/2026-09-27..bazelrc:--@rules_rust//rust/toolchain/channel=nightly, required when no stable toolchain is registered.Cargo.toml: asupersync featuresproc-macros,native-runtime,nightly-outcome-try.Cargo.lockis unchanged (v4 does not record features)..github/workflows/ci.yml: feature-gates no longer setsRUSTUP_TOOLCHAIN=stable..github/workflows/release.yml: the TypeScript/SDK job resolves the channel fromrust-toolchain.tomlinstead oftoolchain: stable..github/workflows/upstream-compat.yml: the floating nightly probe and itsnightly-dateinput are removed.bazel-10-readinessstays.scripts/bazel/rust_test_environment_probe.rs: a dated nightly's--versiontext does not contain the channel date. PATHcargo/rustc/rustdocmust print the same version as the declared binaries, and that text must containnightly.target/debug/buildforbuild-script-runs. Nightly cargo nests units atbuild/<package>/<hash>/out.map(...).unwrap_or_default()call sites Clippy denies on this nightly now usemap_or_default.No
rust-versionor MSRV field exists. None was added. cargo-conductor was not touched.Test plan
bazel build //...passes when the change crosses package boundariesHost: 4 vCPU Intel Xeon, 16780713984 bytes RAM, Linux. Bazel 9.3.0, jobs=4 from
.bazelrc. Both builds are clean output bases ofbazel build --config=release //crates/tracedecay-cli:tracedecay(CI shipped-cli config: opt 3, no LTO, unstripped). The nightly wall clock is the second clean output base, so fetches and the OS cache were warmer. Critical path is the compile comparison.Critical path +61s (~4.6%). Unstripped release binary −343960 bytes. Index-bench sealed and artifact digests match:
sealed_state_digestsha256:a33bbec1b1d52f0b3fb52eb871bdd62de12f9e442850687c16346d1db7f58873artifact_digestsha256:25d4ee8168a322c35617972ec91f0f6b3b4df60f4028d2d0f03b4a598a1f7517asupersync proof: the nightly release build compiled
asupersync v0.5.0(959 files) and linked the CLI. The crate params file containsfeature="nightly-outcome-try".cargo tree -p tracedecay-runtime-core --locked --offlineshowsnative-runtime,nightly-outcome-try,proc-macros.cargo +nightly-2026-09-27 fmt --all -- --checkexited 0 before the Clippy rewrite. The rewrite was formatted withrustfmt +nightly-2026-09-27.python3 scripts/test-check-sdk-publish-workflow.py -qreportedRan 26 tests in 0.043s/OK.cargo +nightly-2026-10-13 check --workspace --all-targets --message-format=jsonone5e5b01935(before #3909), cleanCARGO_TARGET_DIR=/tmp/td-cargo-1013, exited 0 with 13recursion_depth_exceeding_limitdiagnostics (7 unique spans).CI on
e5e5b01935(dispatch run 38527900207) failed before this fix:recursion_depth_exceeding_limitunder-Dwarnings, plusclippy::map_unwrap_or(155 diagnostics).workspace-cand macOS:scripts:rust_test_environment_probe(rustc --versiondoes not containnightly-2026-09-27).workspace-code:core_cli_suiteprovenance tests found 0 build-script counters.root-b: hosted runner lost communication.Library/Caches/com.apple.pythonappeared in the fixture home, plusencoder_outputs_match_recorded_fhrr_bits, one git snapshotNeedsInspection, and two daemon socketNotConnectedfailures.PR events run the Linux jobs only. macOS (
macos-26) and Windows (windows-latest) Bazel lanes run only fromworkflow_dispatchwithrun_os=true:This agent's
ghtoken returned HTTP 403 (Resource not accessible by integration) on that dispatch. A dispatch run was nevertheless started (38527900207) one5e5b01935.Checklist
CHANGELOG.mdupdated (under[Unreleased]if no version bump).envfiles includedCHANGELOG stays with release automation. The compiler pin is the breaking change for anyone still on stable 1.99.0: rustup and Bazel both resolve
nightly-2026-09-27only.Master merge (2026-10-14)
Master's native-runtime cutover (#3736) made timed, blocking, and SQL futures hold an Asupersync
Cxacross an await. Proving thoseSendcosts dozens of solver levels, so nested callers overflowedrecursion_depth_exceeding_limitunder nightly Clippy. The proofs were shortened at the source, andrecursion_limitwas not raised:native_runtime::spawn_blocking,sleep_until, andNativeTask::spawnbox their futures once.timeout/timeout_atreturn a namedTimeoutfuture instead of three nestedasync fns.Database::writer) and the reader/snapshot joins (engine::connection::run_blocking) are boxed.RuntimeHandle(store-size telemetry, shard publication, memory release) no longer hold it across an await.The #3909 erasures that conflicted with master were re-merged onto master's code. Its boxed-future annotations now use
erase_send!, sotype_complexitypasses. Nightlyneedless_bool,large_enum_variant,map_unwrap_or, andneedless_borrows_for_generic_argslints in new code are fixed.Local gate on
e65f6794ca:bazel build --config=clippy //crates/...passes,//crates/tracedecay-cli:tracedecaybuilds with no overflow warnings, and//crates/tracedecay:unit_test,//crates/tracedecay-cli:tracedecay_unit_test,//crates/tracedecay-rusqlite-runtime:unit_test, and//crates/tracedecay-runtime-core:unit_testpass.