Repository navigation
Floor execution requirement moves to gunbc.floor_demand (floor_demand witness closure 1,761 -> 52) - #12788
Merged
Conversation
…ernal-fleet trust domain move to gunbc.floor_demand The floor's execution demand is a fact about floor demand; it lived in gunbc.fabric_witness_run, so every consumer (floor dispatch, control plane, runners, and floor_demand's own witness) paid for that module's closure to read it. Names unchanged, every importer updated, no re-export. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…t.claim.fabric_witness_run Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…bric_witness_run's closure Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The // blocks explaining floor_isolation_requirement (with its next-rung trigger), gunbc_internal_fleet_trust_domain and floor_execution_requirements (architecture, control-plane class, envelope reasoning with the storage-frontier trigger) now sit directly above their own declarations in gunbc.floor_demand, instead of on an unrelated symbol in fabric_witness_run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Addressing review 73251: fixed in d71833a. My move cut each declaration's body and left its leading
— sent from bold-bat-516 |
…not 'above' (review 73274) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 30, 2026
…ibution; floor execution demand moved in by #12788) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Cut (B) of the floor_demand closure item (jolly-boar-500, from sleek-ibex-207). It is independent of cut (A), #12783. Both are module-boundary moves: no resolver change, no new concept, no re-export shim.
Derivation
gunbc.floor_demandcloses over about 47 modules.floor_execution_requirements). That requirement lived ingunbc.fabric_witness_run, whose subject is building the witness run'sWorkand CI job, and which closes over about 1,255 modules on main.floor_demand's ownfloor_memory_requirement(). The rest (thread count, capability, trust domain, isolation profile) completes what the floor asks of a host.Change
gunbc.floor_demand, with names unchanged:floor_execution_requirementsfloor_isolation_requirementgunbc_internal_fleet_trust_domainspark_serving_trust_domainlives ingunbc.serving.turn_admission). Its role here is the domain floor Work is declared under, whichrunner_attempt_launchadmits. Leaving it infabric_witness_runwould create a cycle, and a new module for one constant would be a new authority.floor_demandgains imports ofproduct.fabric.{work, isolation}andResourceEnvelope. Nothing underdag/productimportsgunbc.*, so there is no cycle.Every importer of the moved symbols (enumerated, since not all are under the required gate)
Now imported from
gunbc.floor_demand:gunbc.fabric_witness_run: keeps onlyfloor_execution_requirements, which it uses itself.gunbc.fabric_floor_dispatchgunbc.fabric_control_plane: previously imported it throughfabric_floor_dispatch, a re-export; now imports it directly from its home.gunbc.runner_attempt_launch: import, plus the comment citing the trust domain's module.gunbc.runner_microvmgunbc.runner_microvm_shakedowntest.claim.floor_demand_witnesstest.claim.fabric_isolation_witnesstest.claim.runner_microvm_slot_controller_witnesstest.claim.runner_throughput_qualification_witness: import, plus itsdecl_ref(module_path: "gunbc.fabric_witness_run", decl_name: "floor_execution_requirements"), which now namesgunbc.floor_demand.No Rust references the moved symbols.
Why the floor_demand witness keeps reading floor_execution_requirements
The suggestion was that it read
floor_memory_requirement()directly. Its claimthe_work_memory_requirement_is_the_held_set_peak_or_absentchecks that the held-set standing reaches the Work's execution requirement (floor_execution_requirements().shape.envelope.memory). That is an inhabitance claim on the route into Work (DESIGN §3), and reading the upstream value would weaken it. After the move it imports the requirement fromgunbc.floor_demand, the module under test, so the closure concern is gone without losing the route.Evidence
Each affected witness was run with
gunbc run --claim-run, one cold process per file, 16 GiBmemory.maxleaf, on current main plus this change:floor/floor_demand_witness_testfabric/fabric_isolation_witness_testrunner/runner_microvm_slot_controller_witness_testrunner/runner_throughput_qualification_witness_testfabric/fabric_floor_dispatch_witness_testfabric/fabric_witness_run_testfabric_witness_run_testrefuses on main too, as a standalone run, with the same class:effect summary incomplete … names no registry row. On main the named callees includeproduct.fabric.isolation.current_runner_slot_profileandproduct.fabric.supply.offer_affordability_for. The class predates this PR and it does not introduce it. I'm noting it rather than fixing it here.fabric_witness_run.Do not merge; landing goes through the operator.
🤖 Generated with Claude Code