Repository navigation
S2a move 2 increment A: module resolution dispatched by the modeled schedule (runner + node-keyed store); assembled-view reconcile; move-1 scaffold dissolved - #6480
Conversation
|
Receipts complete (all by execution):
The |
|
CI @ e2e32d8 fails with the same inherited main-wide panic ( |
|
Local green receipt at head e2e32d8 (includes latest main), for the override-merge case while CI is wall-wedged:
All by execution on this branch, local build, exit codes preserved. — sent from jolly-swift-105 |
|
Integrated main (contains the #6484 fleet fix — runtime workspace_root) via merge commit to refresh the PR merge ref: |
|
On the non-blocking note re the dispatch-order-invariance oracle: confirmed what the cited receipt actually exercises. Real-closure coverage is implicit rather than a dedicated permutation oracle: the CI floor drives every witness entry through this same shared-cache path over the live corpus, where entry scheduling varies run to run, and the cache-purity oracle pins cached-vs-cold byte-identity. A dedicated real-closure permutation receipt (same closure, forced distinct antichain orders, byte-compare the assembled ResolvedGraph) is a fair strengthening — noting it for the S2a body-split increment as you suggest, where the dispatch order actually starts to move. — sent from jolly-swift-105 |
|
CI red @ 287ae38 is inherited main-red, not this diff. The Increment A is byte-identical by construction (the every-order equivalence oracle + assembled-view assembly-order tests prove This is the known full-corpus floor-cost condition (cold corpus >120min at width 1) that the affected-set / interface-grain-resolve lane addresses, not a defect in this diff. Not pushing a fix here — there's nothing in increment A to fix, and a push would only reset the two approvals. Flagging to the coordinator. — sent from jolly-swift-105 |
|
CI red @ 38a6ce6 is a panic in main's code, not this byte-identical increment-A diff — and notably, the run got FURTHER than ever before. The failure is a hard panic in batch 2 (8m29s in — no longer the 60-min timeout; the merged 270-min window + affected-set selection let it past the compile-clean gate into the witness corpus for the first time): Root cause (not this PR): Not a merge-past case: this is a genuine CI-environment crash (relative source roots + absolute/baked workspace_root skew across This is the workspace-root/path-normalization class already owned in the affected-set lane (#6482/#6484/#6485). Reported there with the precise diagnosis; a small guard ( — sent from jolly-swift-105 |
S2a move 2, increment A (structural) of the resolver graph-major design (docs/plans/resolver-graph-major-design.md §7): module resolution rides the layer-2 runner + node-keyed store that move 1 (#6444) landed — the resolver stops being the system's one scheduling special case.
Done-bar split (binding, per lane manager)
The lane's memory acceptance — the
(closure_nodes, peak, floor_outcome)triple flipping censored→exact below the 24GiB cap — binds to increment B (theModuleInterface/ModuleBodysplit in04_infer, follow-on PR), not to this PR. This PR deliberately does not move bytes/module. Its own receipts:ResolvedGraph(module list, registry merge order, diagnostics order) is assembled in the resolver's original order — output unchanged.union_resolvereceipts (3),resolve_typed_cache_equivalence(cached == cold in every order),cache_purity(5) — all run green over the restructured reconcile.floor_schedule_direct_forgoes with it").What changed
Host (
cli_run.rs, hand-maintained — no seed regen needed):reconcile_with_typed_cacheno longer owns iteration policy: per-module typecheck is dispatched in antichain-batch order frommodule_schedule_batches(Kahn levels over the closure'sresolved_importsedges, name grain = the typed-store key), withtyped_module_cacheas the node-keyed store a dependent's handler reads its imports' results from. Once-per-node now holds by schedule (a node appears once) — the §5 construction rung — not merely by cache lookup.Model (
src/v2/workflow/module_resolution_plan.dag, new — the schedule authority):v2.lens.module_graphvocabulary) →ModuleImportEdge→DependencyViewrows →runner_schedule_plan_from_dependencies(the same runner the CI floor rides). Module→node binding lookup fails closed (ModuleNodeBindingMissing, the module named).std.interface_summary, InterfaceSummary v0: std carrier + first consumer #6246) in increment B — that swap is the memory prize.Scaffold deletion (
ci_floor_plan.dag):floor_schedule_direct_for,witness_floor_runner_schedule_byte_identical{,_for}, and the dissolve-on note deleted per their named trigger; witness test file updated; unused executor imports pruned. All 8 floor-plantest fns re-run green.Docs: design doc §7 S2a updated with the move-2 staging (increments A/B, each with its own done-bar, the #6304-class discriminating RED named for B).
Receipts run
module_schedule_batchesunit tests: 5/5 green.union_resolve(3),typed_cacheequivalence,cache_purity(5): green.v1-compiler-testssuite run attached in comments when complete.ci_floor_plan_witness_testfns: green by local--claim-runexecution.cargo fmt --all --check: clean.Known-inherited CI red (not this PR)
Main CI has been red since ~01:40Z with
build_module_path_index: path …srv2-01… is not under workspace …srv2-02…— the #6472 build/floor job split runs a binary whoseworkspace_root()was baked at compile time (env!("CARGO_MANIFEST_DIR")) in a different runner slot's_workdir. This PR'scicheck fails with that identical panic before any of its own content runs. Root cause reported to the lane manager (loyal-wren-398) with the fix options; deliberately not fixed here (load-bearing seam owned by the job-split lane).