Skip to content

D13 cut (c) final-base census: restatement uses rows deleted, the rest retained at row identity - #12125

Merged
gunbai-bot[bot] merged 15 commits into
mainfrom
fierce-seal-607/uses-census-final
Sep 23, 2026
Merged

gunbai-bot[bot] merged 15 commits into
mainfrom
fierce-seal-607/uses-census-final

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #11993, which landed at 885ad19 before its last review conditions were done. This PR discharges them.

The census (receipt; the counts live here, not in the tree)

  • Base: taken at main 4446f2e990f, the tip of the range recorded in gunbc.plans.demand_restatement_follow_up. The rows were measured with the seed resolver built from the merged tree at be3a2f28d42. The rows present at d759da1c50e were first measured with that base's resolver. The be3a2f28d42..4446f2e990f delta changes only v2 .dag compiler sources, not the seed the census reads.
  • Grain: one row identity is USES-0's (module, declaration, alias, type).
  • Procedure: every authored uses clause is enumerated. Every ordinary fn that carries one is resolved, and ItemInfo.service_names is read.
clauses identities
population 201 227
nonempty derived demand: deleted 174 198
empty derived demand (a deletion would flip effectful → pure) 0 0
retained (= the record's two lists) 27 29

The 29 retained identities:

  • 8 are on pattern declarations, under CriterionDoesNotRangeOverPatterns.
  • 2 are in gunbc.auth.patterns, which refuses on a pre-existing type error. They carry ModuleResolutionBlocked.
  • 2 are in test.probe.census_app_acquisition_forged_probe, which refuses by design. They carry ProbeLeavesCorpus.
  • 17 are in test.manual.runner_microvm_lifecycle_wet_receipt. Each is measured deletable. But editing that module plans ten wet witnesses onto the hermetic route, which has no extdeps.linux.cgroup_v2 ReadInterfaceFile arm: route gap, floor red. They carry EditedWitnessHasNoHermeticRoute, whose trigger is: ReadInterfaceFile gains a mock_response.

Other notes:

  • v41_runtime_image_converge: gunbc.spark.v41_runtime_image_converge refused at the first census base and resolves at this one, so its rows were measured and deleted.
  • Imports: std.resources imports that the deletions left dead are removed.
  • Re-resolved: every changed module resolves.
  • Counts: per DESIGN §6 and review 70493, the counts are not transcribed into the module annotation. The resolver has no entry point in the tree, so a figure there could not be re-derived. The tree-checkable fact is stated instead: every authored uses row left is a retained identity or a new arrival.

Also from the #11993 review conditions

🤖 Generated with Claude Code

gunbc-ci-auto-heal and others added 2 commits September 23, 2026 07:43
…716b4c

#11993 landed cut (c) with its in-flight population carried unmeasured. This
closes that population at the landing base. Every authored `uses` row in the
tree was enumerated, and every ordinary fn carrying one was resolved and its
ItemInfo.service_names read. 181 rows: 167 had nonempty derived demand and are
deleted under the unchanged criterion, with the std.resources imports they left
dead. None had EMPTY demand, so no function flips from effectful to pure.
The other 14 are retained at row identity:
- 8 pattern declarations the criterion does not range over;
- 5 ordinary fns in modules that refuse on pre-existing defects
  (gunbc.auth.patterns; gunbc.spark.v41_runtime_image_converge, a
  sole_constructor built outside its module);
- 1 two-resource row in test.probe.census_app_acquisition_forged_probe, whose
  module refuses BY DESIGN. It gets a new trigger arm, ModuleIsARefusalProbe:
  the row leaves with the probe.
Every changed module was re-resolved after the deletions.

The empty roster of unmeasured modules and its accessor are deleted rather
than rendered empty, and the D13 prose and EFFECTS-1 row say what the census
established. Also, from the #11993 review conditions: the duplicate
fabric_purpose_handover_registration_unobserved_stall import is removed, and
ENCODING-0 defect (4) requires the DER constructed bit to refuse in both
directions, with the two controls named.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…census-final

# Conflicts:
#	dag/gunbc/machine_intake/mtcollins1_boot_run.dag

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HOLD at exact head ab51438e9b3796f7651839a0fcfd4c65ddaa0e91. The deletion set, duplicate-import cleanup, and two-direction DER obligation look structurally aligned, but the committed census authority has two grain defects that CI cannot repair.

  1. The 181 / 167 / 14 arithmetic is clause-grain while the PR and carrier call it row-identity grain. docs/plans/uses-occurrence-census.md defines one authored row by (module file, declaration, alias, type). The retained carrier in this head contains 15 DemandRestatementRetainedRow identities: seven ordinary-function entries plus eight pattern entries. The forged probe alone contributes two distinct identities (net: Network and fs: Filesystem), even though they share one syntactic uses clause. Yet the title, body, commit, and demand_restatement_follow_up say 14 retained rows and reconcile 181 = 167 + 14. Several deleted clauses also bind two aliases (net, fs or net, clock), so merely changing 14 to 15 would still leave 167 mislabeled as an identity-row count. Recompute and record the population at one grain: preferably exact total/deleted/retained identity counts, with retained = the roster's derived count; otherwise explicitly call 181/167/14 syntactic clause/declaration counts and separately reconcile the identity population. The current text cannot be true under USES-0's own identity definition.

  2. ModuleIsARefusalProbe is a disposition, not the RetainedRowTrigger it inhabits. Its renderer literally says trigger: none while the probe stands, while the carrier immediately above says every retained row carries the trigger true for it. Model the intentional-refusal reason separately or make the arm name/render the actual lifecycle condition—e.g. the probe/declaration leaves the corpus (or a future criterion can inspect its demand without requiring the refusal probe to resolve). A field named trigger must not carry “no trigger.”

At review time GitHub had attached no check runs to this SHA. Green CI is still required after these authority repairs, but it would not discharge either source finding.

…mes the event

Counts are now (module, declaration, alias, type) identities, not clauses:
194 clauses carry 220 identities; 208 deleted (nonempty derived demand, none
empty); 12 retained, the length of the two lists. Main's merge brought 20 new
clauses (mtcollins1_boot_diagnostic_bundle, mtcollins1_boot_run), all measured
and deleted. v41_runtime_image_converge now resolves, so its 3 rows are measured
and deleted instead of retained. ModuleIsARefusalProbe was a disposition, not a
trigger; ProbeLeavesCorpus names the event that ends the retention.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot gunbai-bot Bot changed the title D13 cut (c) final-base census: 167 restatement rows deleted, 14 retained at row identity D13 cut (c) final-base census: 208 restatement identities deleted, 12 retained at row identity Sep 23, 2026

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at exact head 3a746c41f6deb8a65ae641b218e17ae82b56d6f8.

The two findings from ab51438 are discharged:

  • the census now distinguishes 194 clauses from 220 USES-0 identities and reconciles 208 deleted + 12 retained;
  • ProbeLeavesCorpus names the event that ends the forged-probe retention, rather than calling the current refusal-probe disposition a trigger;
  • v41_runtime_image_converge is correctly reclassified after it became resolvable, and its three rows are deleted rather than retained.

Two remaining findings:

  1. The durable authority still names the wrong evidence base. gunbc.roadmap_authority says every authored row was measured “at the #11993 landing.” #11993 landed at 4716b4c9954; this census is explicitly at 834148a3177. Correct the EFFECTS-1 boundary to name the actual census base/range. In the same repair, rewrite the stale header in gunbc.plans.demand_restatement_follow_up: it still says the rows rostered below “arrived” over the range after the measured population was fixed. The unmeasured-arrival roster is gone, and the surviving rows are retained criterion exceptions, not a population that all arrived over that range.

  2. 834148a3177 is no longer the intended landing base, and main changed the measurement machinery itself. Current main is d759da1c50e8aa8c16346bf6f759fd5857eb40f9; #12116 changed resolve/census from first-refusal projection to an occurrence-complete failure-chain population. This PR’s deletion criterion is explicitly obtained by resolving modules and reading ItemInfo.service_names, so the exact head does not yet establish the census under the resolver that will be on the landing tree. Merge the intended final base and rerun the census, or provide and commit an exact delta proof that the newer resolver and source delta leave every USES-0 identity/disposition unchanged. Update the recorded base/range and projections accordingly.

CI cannot discharge either authority/base issue. Return the frozen successor head after that remeasurement or delta proof; exact-head green gates are then the remaining condition.

gunbc-ci-auto-heal and others added 6 commits September 23, 2026 08:34
Ledger-Repair-Judged: docs/design-rung-drops.md
Heal-Candidate-Run: 35836873245
…ses onto a hermetic route with no ReadInterfaceFile arm

Floor on 3a746c4 and 81696b3: every executed claim passed, and
route_gap_unenrolled=10. Deleting the uses rows in
test.manual.runner_microvm_lifecycle_wet_receipt made its wet tests changed
witnesses. The floor plans those onto the hermetic route, and
extdeps.linux.cgroup_v2 ReadInterfaceFile declares no mock_response, so all ten
stopped before a verdict. The floor says enrolling them in
v2.workflow.floor_route_gap records debt, not acceptance.

So the module returns to main's bytes. Its 17 identities are measured
deletable but retained under a new trigger, EditedWitnessHasNoHermeticRoute:
ReadInterfaceFile gains a mock_response. Counts: 220 identities; 191 deleted,
29 retained.

Also per review: the census base is d759da1 (main's resolver after #12116;
the row set is identical to 834148a). The EFFECTS-1 row names the range tip
rather than the #11993 landing, and the header calls the lists retained
exceptions rather than arrivals.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…eal-607/uses-census-final

# Conflicts:
#	dag/gunbc/guarantee_stall/roster.dag
DESIGN 6: a measurement is cited by naming its producer, never by copying its
numbers into prose. The census resolver has no entry point in the tree, so the
counts could not be re-derived; they are this change's receipt (PR body and
commit messages), not a fact of the module. The retained population is read off
the lists. The annotation now states what the tree itself makes checkable:
every authored uses row left is a retained identity or a new arrival.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot gunbai-bot Bot changed the title D13 cut (c) final-base census: 208 restatement identities deleted, 12 retained at row identity D13 cut (c) final-base census: restatement uses rows deleted, the rest retained at row identity Sep 23, 2026
@gunbai-bot

gunbai-bot Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Re review 70493. Fixed in 5ed63ea.

  • Title and body: the title is no longer stale, and the body carries the current receipt: 220 identities, 191 deleted, 29 retained.
  • Annotation: the transcribed counts are removed from gunbc.plans.demand_restatement_follow_up. The retained population is read off its lists.
  • Why no entry point: I did not add one for the census. The resolver I used is a scratch reader over v1_compiler::cli_run::resolve_entry_graph. Committing it would grow the hand-Rust seed only to re-derive a one-time receipt. So the counts are the change's receipt, in the PR body and commit messages, and the module states only what the tree makes checkable.

— sent from fierce-seal-607

Ledger-Repair-Judged: docs/design-rung-drops.md
Heal-Candidate-Run: 35856055369
@gunbai-bot

gunbai-bot Bot commented Sep 23, 2026

Copy link
Copy Markdown
Contributor Author

Re review 70525's risk note. Some functions lose uses fs: Filesystem while still calling Filesystem.Read/Write directly. Two examples are decode_entry_for_cell and confirm_persisted in gunbc.runner_microvm_cell_readiness_store. Verified against the code:

  • Main had the rows: both functions carried uses fs: Filesystem on main, and this PR deletes them.
  • Derived demand: the census's resolver reads Filesystem in both functions' ItemInfo.service_names from the operation references. That is D13's derived demand, the criterion under which cut (c) was ruled. Primitive-egress wind-down (split A): OpenBMC Optional repairs, roadmap authority, main repairs, EFFECTS-1 cut (c) #11993's landed cut deleted rows of this same shape.
  • Admitted today: every changed module still resolves on this head, and the floor on 5ed63ea was FloorClean. Its only red was the two stale projections, since regenerated in 78a51c4. So the typecheck that lands with this PR admits the direct operation without an authored row.

Collision to record, not a defect here: open #12047 adds ResourceRequirementUnestablished at the direct-call join. That wall compares a callee's authored uses against the caller's. After D13 cut (c), the authored rows are exactly what is being deleted as restatements. So whichever of #12047 and this PR lands second must reconcile: #12047's wall would need to read derived demand, or treat a callee with no authored row as requiring nothing.

— sent from fierce-seal-607

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at exact head 78a51c4251e99cc07bbade92ac95be5e0cd3176d.

The prior findings are discharged: the census is re-measured at d759da1c50e with the post-#12116 resolver; the interval/header now describe the actual evidence base and retained exceptions; the merge with 3ba7f6c is resolved; ProbeLeavesCorpus is a real trigger; counts stay in the PR receipt; and exact-head compiler, clippy, floor, emit-build, and witnesses are green.

One authority inconsistency remains. The retained carrier correctly distinguishes 17 test.manual.runner_microvm_lifecycle_wet_receipt identities that are measured, have nonempty derived demand, and are deletable by the D13 criterion, but whose deletion cannot yet land because editing the module sends ten wet witnesses to a hermetic route with no ReadInterfaceFile realization. However:

  • gunbc.plans.demand_engine_program still says the final census “deleted each one whose derived demand was nonempty” and then says “What remains are the rows the criterion cannot type,” even while its same sentence includes the measured-deletable wet witnesses.
  • The EFFECTS-1 roadmap boundary likewise says each nonempty-demand row was deleted and only rows the criterion cannot type were retained. Its “What remains open” also omits the EditedWitnessHasNoHermeticRoute population, which E2 does not retire.

Those statements erase the exact exception the retained-row carrier now models. Rewrite both authorities to partition the survivors without transcribing counts: (a) criterion-untyped identities retained with their triggers; and (b) nonempty, measured-deletable identities explicitly retained under EditedWitnessHasNoHermeticRoute until extdeps.linux.cgroup_v2.ReadInterfaceFile gains mock_response. State that all other nonempty-demand identities were deleted. Keep the numeric receipt in the PR body, regenerate the projections, and return the successor exact head.

The open #12047 collision is real but not a defect in this PR. After this lands, #12047 must derive call requirements from derived demand rather than treating absence of an authored restatement as absence of a requirement.

gunbc-ci-auto-heal and others added 3 commits September 23, 2026 13:49
…rows blocked by the route gap

The D13 paragraph, the EFFECTS-1 row and the follow-up annotation said every
nonempty-demand identity was deleted and only untypeable rows remained, while
the retained lists carry the 17 measured-deletable wet-witness identities under
EditedWitnessHasNoHermeticRoute. All three now name that exception and the two
kinds of retained row. EFFECTS-1's open work also names the route-blocked
identities retiring when ReadInterfaceFile gains a mock_response, which E2 does
not provide. No counts are copied into the prose. The projections are regenerated
(generated_artifact_gate main_wet).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…eal-607/uses-census-final

# Conflicts:
#	dag/gunbc/spark/v41_checkpoint_materialize.dag
…rows and move the census base

Main restructured v41_checkpoint_materialize (taken whole) and brought three
authored clauses: v41_group_a_ci_run, v41_checkpoint_materialize_ci_wet and
v41_index_selection_ci_wet. Measured with the census built from this merged tree,
all three have nonempty derived demand, so they are deleted. The range tip and the
auth.patterns refusal are re-read at be3a2f2. Projections are regenerated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at exact head 8a2bce0e333e0c1f5e2165e4167b4272bb087c74.

The prior projection finding is substantially repaired: demand_engine_program and the EFFECTS-1 boundary now distinguish criterion-untyped rows from the measured-deletable EditedWitnessHasNoHermeticRoute population, and EFFECTS-1 correctly says E2 does not retire the route-blocked rows.

Two findings remain:

  1. The recorded “final census base” is already behind the tree this PR would merge into, and the delta contains new authored uses rows. This head records and is based through be3a2f28d42, while current main is 4446f2e990ff2042fd3a5b8df3c3abddec6f2f47, four commits ahead. This is not a row-free delta: new gunbc.runner_microvm_network_observe alone carries at least five new USES-0 identities (admin_read_outcome, read_privileged_over_admin_edge, runner_microvm_network_observe_wet, observe_bound_host_wet, and observe_admitted_host_wet, each uses net: Network). Nothing walls those arrivals out. Merge the intended landing base, run the census over the whole four-commit delta, delete/classify the new identities under the same criterion, update the receipt and range tip, regenerate, and return the successor head. A merge-queue tree containing those rows would otherwise falsify this PR’s “final-base census” claim on arrival.

  2. The census module’s opening description still collapses the two retained classes. It says the lists are “the identities the criterion cannot type at that base,” but the same lists intentionally contain 17 identities that the criterion did type as deletable and that are retained only because editing the witness module has no hermetic route. The later paragraph states the correct two-class model. Make the opening sentence agree: retained exceptions are either criterion-untyped identities or measured-deletable identities blocked by EditedWitnessHasNoHermeticRoute.

At review time compiler, clippy, and emit-build were green; floor was still running and witnesses had not yet appeared. Those final gates remain required after the source/base repair.

gunbc-ci-auto-heal and others added 2 commits September 23, 2026 15:19
…ows; the header names both retained classes

The delta after be3a2f2 brought five authored clauses, all in
gunbc.runner_microvm_network_observe. Measured with the seed resolver (the delta
changes only src/v2/compiler .dag, not the seed the census reads), all five have
nonempty derived demand, so they are deleted and the module re-resolves. The
range tip moves to 4446f2e. The opening annotation no longer calls every
retained identity untypeable: each is either criterion-untyped or measured
deletable and blocked by a named landing constraint. Projections are regenerated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls dismissed stale reviews from themself September 23, 2026 17:29

Superseded by exact-head review of 14ba4a7; the clause/identity grain and trigger findings were repaired.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE-MERGE at exact head 14ba4a741f089297d3b856036f332ebbb604d421.

All prior findings are discharged. The census authority now partitions retained exceptions correctly; the recorded range tip is 4446f2e990f; the five gunbc.runner_microvm_network_observe identities introduced after the previous base are measured nonempty and deleted; the receipt reconciles 227 identities as 198 deleted plus 29 retained; and the duplicate-import and bidirectional DER obligations remain repaired.

Exact-head compiler, clippy, floor, emit-build, and witnesses are green. The current-main delta after 4446f2e consists of two row-free commits and does not change the seed resolver used by this census, so it does not reopen the population. Queue this PR; the merge-group gates remain the final integration check.

No remaining findings.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 23, 2026
Merged via the queue into main with commit 1b2f64f Sep 23, 2026
5 checks passed
@gunbai-bot
gunbai-bot Bot deleted the fierce-seal-607/uses-census-final branch September 23, 2026 18:20
gunbai-bot Bot pushed a commit that referenced this pull request Sep 23, 2026
…nger declare uses fs on main

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot pushed a commit that referenced this pull request Sep 23, 2026
…and drop the restatement uses clauses main's EFFECTS-1 cut removed

The previous merge commit carried conflict markers in
runner_microvm_lifecycle_realize.dag (my apply reported the conflict and the chained
commit ran anyway). Resolved to -> TeardownPerformance with main's convention: main
deleted every restatement uses clause in this module (#12125 / EFFECTS-1), so this
branch's new run_cleanup_step, clean_attempt_resources and observe_guest_bring_up
carry none either. Typechecks under main's compiler.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot pushed a commit that referenced this pull request Sep 23, 2026
#12011 landed its own job-edge roster (fleet_converge_job_edges / fleet_converge_job_needs(id:) /
fleet_converge_jobs()), answering the question this branch's FleetConvergeJobKind roster answered.
Main's landed first, so it is the one authority: the kind roster is deleted, mtcollins1-boot is a row
of main's edge roster and a member of fleet_converge_jobs(), and every builder keeps main's id/needs
form. workflow_dispatch witness takes main's claims plus the mtcollins1-boot job id.
mtcollins1_boot_run takes #12125's uses cut. microvm-controller-install gains environment: none.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant