Skip to content

delete cli_run governor - #8523

Closed
briansrls wants to merge 3 commits into
mainfrom
integration/manifest-cut
Closed

briansrls wants to merge 3 commits into
mainfrom
integration/manifest-cut

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session fierce-ram-721.
Pushing to integration/manifest-cut advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 3 commits August 19, 2026 04:46
…ed twice

The floor marshalled 10,498 discovered sites into the interpreter, folded them
through `required_floor_manifest` to decide which are required-floor claims, and
marshalled 9,008 back. The host then applied the identical prefix test itself, in
Rust, to explain the difference between sites offered and claims returned. One
decision, two computations, with an interpreted round trip between them whose only
product was a population the host could derive from facts it already held in
`prepared.witness_files`.

The externally required outcome is exactly: exclude a witness whose AUTHORED module
sits in the long home, exclude one that reads the live tree, claim everything else
Hermetic. That is now one loop over the inventory.

Three findings made this a deletion rather than an optimisation:

- `WitnessDisposition` (five arms) had no consumer. Its one predicate,
  `disposition_is_required_floor`, was never called; the file said so itself
  ("stays modelled and unconsumed exactly as it was"). `disposition_for_module`,
  cited in `cli_run.rs` and DESIGN.md as the admission authority, does not exist.

- The duplicate-enrollment invariant was already enforced downstream.
  `receipted: HashSet<String>` is keyed on the same qualified name, so two claims
  sharing one give executed=2, receipted=1 and `ClaimIdentityCountsDisagree`
  refuses. `ManifestScan.enrollments` was a second mechanism for that one
  invariant -- and, being a growing `Value::Map` re-hashed once per fold step, was
  the whole of the phase's quadratic cost.

- The Wet arm was dead: `wet_sites` was always passed as `empty_sites`.

The authored facts stay authored. `long_home_prefixes`, the claim budget and the
warn threshold are still read from `v2.workflow.required_floor`; what is deleted is
the reconstruction, never the fact. The test remains on the module's AUTHORED name
and never its path, which is the 2026-08-04 ruling's actual requirement.

Two refusals were deleted with their producer. `SitePartitionInexact` and the
unexplained-decline arm existed to catch the two computations disagreeing; with one
computation they have no reachable producer, and the partition is now exact by
construction. One refusal was added in their place: `LongHomePrefixesEmpty`, since
an empty roster would otherwise silently admit the long home into the floor.

Deliberately NOT in this change: `eval_call_memo` is untouched, and `Value::Map` is
unchanged. Whether the generic eval-frame memo should survive is a separate question
with its own consumers, and optimising a foundational datatype on behalf of this
machinery was the wrong dependency direction while the machinery's necessity was
still unestablished.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Review 53686: its only call sites were the WitnessSite / ObservedSubjectIdentity
marshalling into the interpreter, both deleted with the manifest path. A helper
whose only purpose was to construct values for a deleted consumer is residue, not
a utility.

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

Four corrections from the architectural review, three of which are defects this
branch introduced rather than inherited.

DUPLICATE IDENTITY IS REFUSED AT CONSTRUCTION AGAIN, AND NAMED. The claim that
`receipt_identities` carried this invariant "unchanged and unmoved" was wrong. The
deleted manifest refused BEFORE executing anything and named the offending
declaration; the downstream count check compares populations after all 9,122 claims
have run, so a duplicate costs a full duplicated evaluation first, and a count
mismatch reports only that two populations disagree -- never which identity did it.
Planned-identity uniqueness and receipt completeness are different properties. A
HashSet at claim construction now refuses with `DuplicateWitnessIdentity` naming the
exact identity, and `planned == executed == receipted` stays as the separate
terminal-completeness check.

THE BUDGET DECODER'S BOUNDARY IS RESTORED. It accepted `n >= 0`, where the deleted
admission decoder refused non-positive values -- a weaker wall wearing the same name.
A zero ceiling is not lenient policy; it refuses every witness before evaluating one.
Now `n > 0`, plus a `ClaimBudgetTiersInverted` refusal enforcing
`0 < warn_ms < budget_ms`: read independently, an inverted policy whose warn tier
sits at or above the hard ceiling can never warn, and both values still typecheck.

LongHomePrefixesEmpty IS DELETED -- it was backwards. An empty exception roster is
the DESIRED terminal state, so refusing on it made "at least one exclusion must exist
forever" a structural requirement of the floor. Once the long home is discharged,
admitting those witnesses to the ordinary population is the intended result. A failed
decode still refuses; a failed read and a legitimately empty roster are different
states and only the first is an error.

THE FIFTH SURVIVOR IS DELETED. `floor_bare_name_ambiguity_next_rung_trigger` had no
consumer -- only a doc-comment citation in `v1_interpreter.rs`, which is not one. It
is namespace-program debt, not a required-floor input, and leaving it here turns this
module into a parking place for adjacent concerns immediately after the cut removed
exactly that accumulation. If the namespace lane needs the finding, its own authority
should carry it. The now-unused `std.dissolution` import goes with it.

STALE MANIFEST-ERA NAMES CORRECTED, because these are the same stale authority claims
that led the first analysis of this area to defend a mechanism that did not exist:
`REQUIRED_FLOOR_MANIFEST_MODULE` -> `REQUIRED_FLOOR_POLICY_MODULE`, `manifest_scope`
-> `policy_scope`, and the surviving prose no longer describes `.dag` as evaluating a
manifest or supplying admission facts. It supplies policy constants; the host
inventory and one loop decide the population.

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

gunbai-bot Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Duplicate of #8514 — both track integration/manifest-cut. #8514 is the PR of record: it carries the full body, the same-commit A/B verification against CI run 32215611659, and two review cycles. Closing this one to keep a single review surface on one branch.

— sent from fierce-ram-721

@gunbai-bot gunbai-bot Bot closed this Aug 19, 2026
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