Repository navigation
The 2026-09-23 floor sizing receipt: uncensored at the 26 GiB row, the microVM shape resolves, the fit stall retires - #12117
Merged
Merged
Conversation
…swap, PSI, local events and charged processes The 2026-09-19 sizing receipt bounds the held set only to the minute and is censored on swap, because the watchdog names the minute a phase was in and the swap figure beside it was the host's. floor_seam now emits one [floor-cgroup] beat at every phase boundary (seams added inside strict-preparation, at publication, and in claim_executor at parse/declarations/floor-entry), and each beat also prints the leaf's memory.swap.current, memory.events.local, memory.pressure and cgroup.procs as pid:comm:VmRSS, all raw. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ap/PSI/events/procs line and seam beats on top Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…irement covers everything the reader prints (review 70239) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… seams inside the planning window The first attributed run (floor job 106950715986) put most of the floor process's growth in the planning window before resolve, with no overlapping process of size. floor_heap_beat reads mallinfo2 at each seam so retained state and allocator-held freed memory separate without the trim that would change the heap; nominal-subject-seeds, arm-set-planning and lane-roster seams split the window. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…seam, and seams inside the diff projections Floor job 106963145694 put the peak's early growth in live heap, from the lane-roster evaluation (which resolves through the process-lifetime shared index/store) and the diff projections. The census says whether those stores grow and whether any later seam reads them; the seams say which projection. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ops resolving the whole CI spec v2.workflow.floor_diff_observe needs base, head and range form; it reached them through gunbc.ci_spec gunbc_ci_spec, and closure is module-grain, so the floor resolved and typechecked a 1,548-module closure (gate roster, deploy stages and their imports) that the process resolve store held for the whole run beside the floor's own prepared subject. DiffMode, DiffPolicy and the policy value move to gunbc.ci_diff_policy; gunbc.ci_spec carries it by reference; the observer and the four other importers read it there. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…compile-clean doc at the policy's new home (review 70278) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… seams placed before it Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…e microVM shape resolves, the fit stall retires A dated successor to gunbc_floor_memory_stat_receipt_2026_09_21 from required-floor run 35815214135 (a base carrying #12081 and #12088, instrument #12078): 40 beats, one at every phase seam, each with the leaf's own memory.swap.current. The beat carrier gains the new seams and a BeatSwap field (SwapUnread on every earlier beat), and receipt_peak_reading_standing reads the peak beat's leaf swap before the declared policy, so this receipt's peak reads PeakIsUncensoredSampledMaximum. With it as the standing, gunbc_runner_microvm_shape resolves on production inputs at the unchanged cell row and reserve: the expecting-red probe flips to a regression control citing the demand receipt as what moved, and runner_microvm_floor_fit_stall, whose trigger that is, retires. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… leading annotation (DESIGN 4c: module-item grain) emit-build refused 40 body-grain annotations inside gunbc_floor_memory_stat_receipt_2026_09_23; the ordinal-to-token mapping now lives in the declaration's own leading comment. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
6 tasks
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 23, 2026
…roducer; the frontier and its refusal arm are deleted observe_app_control_plane returns observe_github_app_control_plane(lifecycle_controller_app, lifecycle_controller_app_key, gunbai_ci_declared_installation_id, gunbai_ci_registration_goal.required_permissions); an unreachable control plane is carried inside GitHubAppControlPlaneState and refused at the mint's credential join. app_control_plane_producer_frontier, AppControlPlaneObservation and SlotControllerRefusal AppControlPlaneUnproduced are deleted; the producer's header names this consumer. The shape witness drops its fleet-row-refuses half: #12117 moved the demand so the fleet row's shape resolves and retired the fit stall; the shakedown half stands. 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.
Deliverable 4 of the floor memory attribution lane (work item adhoc-80d33957-f14). This builds on #12078 (instrument) and #12088 (the one reduction). Until those land, the diff also shows their commits; the change here is the last commit.
The receipt
gunbc.floor_demandgunbc_floor_memory_stat_receipt_2026_09_23is a dated successor to_2026_09_21, and it is now the input togunbc_floor_held_set_standing.actions-runner@srv4-14.service.memory.swap.current.beatis the sample ordinal, and the instrument'swhen=token is the comment above each row.gunbc.floor_cold_build_receipt), not the 28 GiB shakedown slot, and not a fresh attempt cgroup, which is why it carries memory.stat and never the leaf'smemory.peak. Swap policy:SwapMaxDeclaredUnread(32 GiB,gunbc.runner_slot_allocation gunbc_runner_slot_desired memory_swap_max).Carrier and folds
FloorSeamgains one arm per seam the instrument now names (lane-roster through publication).receipt_peak_seamanswers each; the match is exhaustive.FloorMemoryStatBeat.swap: BeatSwapisSwapRead { bytes }orSwapUnread. Every earlier beat carriesSwapUnread, never a fabricated zero.receipt_peak_reading_standingreads the peak beat's leaf swap first. A zero reading means none of the leaf's pages were in swap at the peak, so a slot that COULD swap did not at that instant, and the peak isPeakIsUncensoredSampledMaximum. A non-zero reading censors asSwapHeldPagesAtPeak { beat, swapped }.SwapUnreadfalls through to the declared-policy rule, unchanged, nowpeak_standing_from_swap_policy. This is the consumptionfloor_receipt_uncarried_observation_frontierasks for, and that frontier's text is updated: swap leaves it; PSI, oom and process overlap are now printed every beat but not yet carried.The fit, re-judged against current demand
With the new standing,
gunbc_runner_microvm_shaperesolves on production inputs, with the cell row (26 GiB) and the realization allowance (1 GiB) unchanged and nothing deleted or supplied.the_production_shape_refuses_today_on_the_memory_remainder_with_all_three_figuresflips (DESIGN §4b(4)) to the regression controlthe_production_shape_resolves_on_the_memory_remainder_since_the_2026_09_23_receipt. It cites the DEMAND RECEIPT as what moved and derives the sum through the same folds, with no transcribed figures.gunbc.guarantee_stall.runner_microvm_floor_fit_stall, whosenext_rung_triggeris exactly this capability, is deleted along with its roster entry. Its executed evidence stays enrolled.the_production_shape_answers_according_to_the_floor_demand_standing(either-state) asserts the refusal triple the day a later receipt moves demand back over, and the supplied-input controls keepShapeRefusedWorkMemoryExceedsCellRemainderexecuted.slot_row_pinned_below_demonstrated_demand_unrefusedkeeps its own trigger, and only its mention of the stall changes.docs/plans/microvm-and-floor-wind-down-state.md§2 gains a dated note and keeps the prior state as history.Margin, stated as a bet (§4d): the demand is one warm run's SAMPLED maximum, a lower bound on true demand at 60 s cadence plus seam beats, and the sum fits by about a gibibyte. A later receipt can put it back over, and the either-state witness is what would say so.
New witnesses
a_leaf_swap_reading_at_the_peak_decides_before_the_declared_policy: one declared-swap receipt driven three ways (read zero → uncensored, read non-zero →SwapHeldPagesAtPeak, unread → policy cause).the_2026_09_23_receipt_reads_an_uncensored_sampled_maximum_through_its_leaf_swap: real rows, asserting the ROUTE (peak beat swap read zero, and the policy alone would censor), not only the answer.the_standing_receipt_attributes_its_peak_to_a_named_seam: re-pointed to the 09-23 standing (peak during publication), still asserting the 09-21 attribution.Executed
claim_batchoverdag/test/claim/floor/floor_demand_witness_test.dag(28) anddag/test/claim/runner/runner_microvm_witness_test.dag(48), on BuildBuddy withGUNBC_MEMORY_BUDGET_BYTESandEstimatedMemory=48GB: exit 0, whichclaim_batchreturns only when no claim failed, so 76/76 passed. The required CI check runs no claims since #11742, so this is the execution.Not done
The 28 GiB fresh-attempt-cgroup run. It waits on #12011's shakedown slot, and the slot lane has not answered. This receipt judges only the 26 GiB row.
🤖 Generated with Claude Code