Repository navigation
Design + model N-dimensional static resource envelope for CI floor scheduling: a Cost-style resource record (memory/compute/storage/energy), each axis a grounded Measure reconciled against its own cap; compile-time lens computes per-Runnable peak envelope from DECLARED input sizes; derive width per- - #6062
Closed
briansrls wants to merge 3 commits into
Closed
briansrls wants to merge 3 commits into
briansrls wants to merge 3 commits into
Conversation
Document the compile-time envelope model, resource-scalar census, and sequencing; remove premature substrate scaffold pending operator sign-off on carrier shape before touching load-bearing scheduler files. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
marked this pull request as ready for review
July 1, 2026 02:26
briansrls
added a commit
that referenced
this pull request
Jul 1, 2026
…t_min fallback-witness regression from #6059) (#6070) * WIP: OOM kill on CI * CI floor: plan spawn width = budget-responsive floor width (fix witness regression) The int_min(floor, exec) form broke witness_floor_spawn_width_zero_budget_falls_back: exec_w (execution_corpus_spawn_width) is computed from the fixed 8 GiB runner cap and ignores the memory_budget param, so min(floor=4, exec=3)=3 != conservative_fallback(4) on an unreadable budget. The int_max form OOM'd (width 3); the int_min form fails the fallback witness. Neither is coherent because exec_w doesn't respond to the budget. Make gunbc_ci_plan_spawn_width return only the budget-responsive floor width (pre-#5975 semantics): 1 at the 8 GiB cap (memory-safe, no OOM — floor peak RSS 5.4 GiB, cgroup peak 7.6 GiB < 8 GiB in run 28488853720), conservative-fallback 4 on unreadable budget. Rename the witness to assert plan_w == floor_w; drop the now-unused int_min import. Note for the real fix (child B design PR #6062): the measured per-shard scalar is 4.24 GiB but run 28488853720 shows real per-shard peak 5.4 GiB at width 1 — the scalar underestimates reality, confirming the tautology; width 2 would OOM at 8 GiB. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 3, 2026
Revives docs/plans/static-resource-envelope.md (grounded design from closed PR #6062, never merged) onto origin/main, re-verifies its §4.1/ §4.2 census against current main post dsl->dag rename, and folds in three live-session deltas (§9): batch/streaming InputEnvelope projection, provenance-as-metric, and cost-model single-authority with the complexity lens. Adds std.static_resource_envelope: StaticPeakDemand/ResourceCap (4-axis: memory/compute/storage/energy, each a grounded Measure), envelope_reconciled/derive_spawn_width (per-axis reconciliation, min over axes), and DemandProvenance (StaticDerived/Measured/ ConvergedState/Fixture) with production refusing Fixture. Grounds a new Storage Quantity + DiskSize alias in std.measure so the storage axis doesn't fuse onto ByteSize/Memory (per #6062 §3 - memory bytes != disk bytes); Quantity is a phantom type tag never pattern-matched in the corpus, confirmed safe to extend. Synthetic-fixture witnesses only (dag/test/claim/ static_resource_envelope_test.dag) - no load-bearing consumer wired. Per parent-session (sunny-newt-884) instruction, holding the actual scheduler wiring (P2/P3) pending operator sign-off on #6062 §7's open carrier-home/axis-set decisions; none of the four §4.1 load-bearing files (ci_floor_measurement.dag, ci_floor_plan.dag, claim_executor.rs, cli_run.rs) are touched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks done
briansrls
added a commit
that referenced
this pull request
Jul 3, 2026
…ut-cost-envelope-scheduling.md (#6186) * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * P1 static resource envelope carrier (model-only, synthetic witnesses) Revives docs/plans/static-resource-envelope.md (grounded design from closed PR #6062, never merged) onto origin/main, re-verifies its §4.1/ §4.2 census against current main post dsl->dag rename, and folds in three live-session deltas (§9): batch/streaming InputEnvelope projection, provenance-as-metric, and cost-model single-authority with the complexity lens. Adds std.static_resource_envelope: StaticPeakDemand/ResourceCap (4-axis: memory/compute/storage/energy, each a grounded Measure), envelope_reconciled/derive_spawn_width (per-axis reconciliation, min over axes), and DemandProvenance (StaticDerived/Measured/ ConvergedState/Fixture) with production refusing Fixture. Grounds a new Storage Quantity + DiskSize alias in std.measure so the storage axis doesn't fuse onto ByteSize/Memory (per #6062 §3 - memory bytes != disk bytes); Quantity is a phantom type tag never pattern-matched in the corpus, confirmed safe to extend. Synthetic-fixture witnesses only (dag/test/claim/ static_resource_envelope_test.dag) - no load-bearing consumer wired. Per parent-session (sunny-newt-884) instruction, holding the actual scheduler wiring (P2/P3) pending operator sign-off on #6062 §7's open carrier-home/axis-set decisions; none of the four §4.1 load-bearing files (ci_floor_measurement.dag, ci_floor_plan.dag, claim_executor.rs, cli_run.rs) are touched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * gunbc.ci: correct stale 8GiB->24GiB runner cgroup cap; drop CI-concurrency scaffolding The live actions-runner@ cgroup cap is 24GiB, not the 8GiB gunbc_ci_runner_cgroup_memory_cap carried since PR-A's §3 de-conflation -- a future OOM investigation reading this constant as ground truth would be misled by a ~3x-too-small figure. Corrected the constant and its disposition prose. Also drops the fleet-concurrency admission-budget scaffolding (job-level GHA concurrency group, slot-compute job, yaml-emitter job.outputs/job.concurrency support) built earlier in this branch in response to a co-residence OOM incident theory: the incident's later 5th occurrence spanned two physical hosts, refuting co-residence as the necessary cause, and the operator has since de-prioritized CI-concurrency work under a broader convergence. None of that machinery had a consumer once dropped, so it is removed rather than left inert. Also drops this branch's earlier, unrelated STEP-1 cost-envelope scaffolding (dag/std/measure.dag Storage/DiskSize/measure_saturating_sub, docs/plans/static-resource-envelope.md) per the operator's ruling to shrink this PR to the (C) cap correction alone and hold new cost-envelope work; recoverable via git history if that thread resumes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: floor-width-budget-source-a (STEP 1 of the bounded-input/cost-envelope d * Revert 8GiB->24GiB cap change: reviewer correctly found it conflates two distinct §3-split authorities api-review (cursor/composer-2.5) on #6186 found this PR's premise was wrong: the live actions-runner@ per-slot cgroup cap really is 8GiB today, not 24GiB. Verified directly: - dag/gunbc/fleet_show_effective_read.dag: 4 live-probed runner-unit fixture rows (srv1-02, srv2-01, srv2-02, 2026-07-03) all read memory_max_raw = "8589934592" - .github/fleet-converge.sh:278 actuates per-slot MemoryMax to "8589934592" - dag/gunbc/ci_budget_tree.dag's own disposition prose (untouched by this branch) independently states "8 GiB, within-run OOM authority" for this same constant - dag/gunbc/roadmap_authority.dag:150 lists "the 8GiB fleet slot contract" and "the 24GiB stopgap" as two different facts to de-conflate, not one fact to correct The ~24GiB figure in gunbc_ci_footprint_granularity_disposition is the INTER-run whole-job peak (gunbc_ci_job_peaks), a different granularity/authority than this WITHIN-run per-slot cap by DESIGN §3's own deliberate split -- exactly the conflation that split exists to prevent. Reverting the constant and its disposition prose to origin/main's original, correct 8GiB. Both witnesses the reviewer flagged as going RED (witness_derived_width_at_runner_cap_is_one, witness_parse_bytes_is_typed) pass again with the revert, confirmed by execution. Also folds four points of genuinely unique thinking from the retired static-resource-envelope.md draft into the signed bounded-input-cost-envelope-scheduling.md (N-axis width beyond memory+cpu, a DemandProvenance/static_derived_fraction metric, an InputEnvelope streaming/rate-bounded projection, and the cost-model/complexity-lens shared authority direction) per the §2 test that dropping a doc must reduce redundancy, not lose information. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Sonnet 5 <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.
Auto-opened by session-dashboard for session
merry-koi-140.Pushing to
session/merry-koi-140advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan