Skip to content

Roadmap: the fleet-health program and the eval-memo rewire program as rows - #11859

Merged
briansrls merged 6 commits into
mainfrom
fleet-health-roadmap-rows
Sep 20, 2026
Merged

briansrls merged 6 commits into
mainfrom
fleet-health-roadmap-rows

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Wind-down of the fleet-health lane (operator, 2026-09-20). Seven roadmap rows so the work, the measurements and the remaining slices survive the session.

Row What it carries
fleet-health-0-live-receipt #11681 is built and green (29 witnesses incl. a call-reachability no-mutation wall); it needs one live run under GUNBC_EVAL_MEMO=0 to leave draft
fleet-health-1-admitted-baselines tell new errors from history; the seam is already HostHealthBaselineBasis
fleet-health-2-serving-admission a host serves only on a fresh satisfied receipt
srv1-srv2-bmc-firmware-exposes-memory-errors firmware 2.07 exposes no memory errors out of band; srv1 has 255 corrected errors in-band since August
srv3-srv4-fan-threshold-flapping-floods-the-event-log 982 of 1200 entries are one fan's deassert; the log wraps within hours
dimm-temperature-limits-need-a-citation srv1 DIMM C1 at 99 C with the BMC reporting OK; no limit is cited, so nothing can judge it
eval-memo-admission-rewire-program held retirement #11741 plus staged rewires #11784 and #11835 (green, awaiting merge) and stage 3

Rows only: no code, no behaviour change.

Note on the roadmap authority's own tests: witness_accepted_scm_sequence_activates_authored_p1_slice and witness_projection_is_active_only fail on main without this change (verified by running the same test with these rows removed). They are pre-existing and not caused by these rows.

🤖 Generated with Claude Code

…wire program

Wind-down of the fleet-health lane (operator, 2026-09-20: step back and prioritize v1 performance
and the v2 migration). What is built, what is measured and what remains now live on the roadmap
rather than in a session:

- fleet-health-0-live-receipt: gunbc#11681 is built and green; one live run under the qualified
  recompute realization is what it needs to leave draft.
- fleet-health-1-admitted-baselines / fleet-health-2-serving-admission: the two slices the ruling
  named, with their input seams already in product.host_health.
- srv1-srv2-bmc-firmware-exposes-memory-errors: two of four hosts cannot report memory errors out
  of band on the 2.07 image (srv1 has 255 corrected errors in-band since August).
- srv3-srv4-fan-threshold-flapping-floods-the-event-log: 982 of 1200 entries are one fan's
  deassert, so the log wraps within hours and memory records roll off with it.
- dimm-temperature-limits-need-a-citation: srv1 DIMM C1 read 99 C with the BMC reporting OK.
- eval-memo-admission-rewire-program: the held retirement gunbc#11741 and its staged rewires
  (gunbc#11784, gunbc#11835 green and awaiting merge; stage 3 next).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Brian Searls and others added 2 commits September 20, 2026 14:49
…do-not-re-derive facts

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

ROADMAP.md is a registered generated artifact whose focus notice interpolates the live hidden
active count, so adding seven ticket_row nodes (owner "", hence outside the focused owner list)
leaves the committed projection stale at 130 -- a projection disagreeing with its authority, and a
drift-gate red. Regenerated with gunbc.instruments.generated_artifact_gate main_wet_one on this
exact head; the diff is the one derived line.

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

gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in the latest push. Review 69197 was right: ROADMAP.md is a registered generated artifact whose focus notice interpolates the live hidden active count, and the seven ticket_row nodes come through a helper that sets owner: "", so they land in the hidden population and the committed projection was stale at 130.

Regenerated with gunbc.instruments.generated_artifact_gate main_wet_one (path ROADMAP.md) on this exact head — main_wet_one rather than a whole-registry regen, so the run touches one artifact. The diff is the single derived line, 130 → 137, which is exactly the count the review predicted.

— sent from swift-newt-222

… (review 69242)

handback is the completion contract, so it carries one sentence saying what
'done' is and nothing dated. boundary carries the standing argument, not a
stage-by-stage status.

The two things that were concatenated there move to where the file already puts
dated matter -- the ticket's updates thread via updated(...), same nesting the
namespace row at :1239 uses: one note for the wind-down status (stages 1 and 2
green and awaiting merge, the retirement held, stage 3 preserved unopened), and
one for the four measurement facts the lane established, which are findings with
a date rather than a contract.

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

gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Review 69242 addressed at 4a88b5d — the finding was correct and it was mine, not a formatting slip: I used handback as a place to leave lane state because it was the field I happened to be writing in.

  • handback: is now one sentence and it is a completion contract: "The shared producers rewired, and retirement re-qualified on the repaired corpus as one combined cutover with the required floor green." Nothing dated, nothing about which PR is open.
  • boundary: now carries only the standing argument — why the memo is keyed before any admission decision, why that makes a string-argument fold quadratic, and why the repair is root-first. The stage-by-stage status sentence is gone from it.
  • The dated matter moved to where this file already puts dated matter: the ticket's updates thread via updated(...), the same nesting the namespace row uses. Two notes, both on: "2026-09-20" — one for the wind-down status (stages 1 and 2 green and awaiting merge, the retirement held as a draft, stage 3 preserved unopened at origin/session/merry-fox-260-stage3 c1c925060c), one for the four measurement facts.

On the four facts specifically, since the review said "if they have no carrier, that is a modeling obligation, not a reason to concatenate them here": they are findings with a date — each is a statement about what an instrument measured on a particular day (the floor's cross-claim TSV vs claim_batch as a ranking source, the diagnostics_merge figure being memo-hit verification cost, the +64%/+12% grammar-resolution comparison, and claim_batch sharing one ctx across entries). TicketUpdate { on, note } is exactly that shape, so the honest home is the updates thread rather than a new carrier. I am not claiming that is the terminal home for measurement provenance in general — a successor who wants these re-derivable rather than transcribed should name the instrument, per DESIGN §6, and that is a real obligation this row does not discharge.

ROADMAP.md is unchanged: this row is hidden, so its fields do not reach the projection and the derived hidden-lane count stays at 137. If the drift gate disagrees I will regenerate on this head.

— sent from swift-newt-222

#11303 consolidated the roadmap projections and changed both the authority
and the projection route, so ROADMAP.md was a concurrent divergence: both
sides changed it since the merge base and neither side's bytes were the
projection of the merged authorities. GitHub reported CLEAN because a plain
text merge never consults the generated-artifact driver; the driver refused.

Regenerated through the declared repair route rather than resolved by hand.
Main's hidden-lane count is 132; with these seven rows the merged projection
derives 139, superseding this branch's earlier 130 -> 137, which was taken
against the pre-#11303 authority.

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

gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Merged main and regenerated ROADMAP.md at 53963d95b8. This was not routine housekeeping, so it is worth stating what it caught.

#11303 ("Consolidate roadmap projections over explicit acceptance history") landed while this PR sat approved. It changed both gunbc.roadmap.roadmap_authority and the projection route. GitHub reported this PR CLEAN / MERGEABLE throughout — but GitHub's merge is a plain text merge and never consults the generated-artifact driver. When I actually merged main, the driver refused:

GeneratedArtifactConcurrentDivergence: ROADMAP.md — both sides changed this generated projection since the merge base, so neither side's bytes are the projection of the MERGED authorities.

Which is exactly right. Landing on the green tally alone would have put authority-ahead-of-artifact bytes on main with nothing saying so.

Repaired through the driver's own declared route, not by hand:

  • Regenerated ROADMAP.md via gunbc.instruments.generated_artifact_gate main_wet_one --arg path=ROADMAP.md against the merged tree (run on srv1; the projection read roadmap_acceptance_event_history.jsonl and wrote 66,303 bytes).
  • Confirmed the regeneration describes this tree before trusting it: dag/gunbc/roadmap/roadmap_authority.dag and dag/gunbc/roadmap/roadmap_acceptance_event_history.jsonl are byte-identical (sha256) between the tree that ran the regen and this branch's merged tree.
  • The derived count reconciles as arithmetic rather than as a hope: main's projection now reads 132 hidden deliverables, the merged projection derives 139 — exactly the seven rows this PR adds. The earlier 130 → 137 in this PR was taken against the pre-#11303 authority and is superseded.

No hand-edited bytes in the projection, and the only non-generated change remains the seven ticket_row rows.

— sent from swift-newt-222

…69299)

DESIGN §6: a measurement is cited by naming the producer that re-derives it,
never by copying its numbers into prose, because a transcribed number is
unreachable from the thing that owns it and rots without anyone touching
either end.

The note did the opposite, and said so out loud -- "none of which a successor
should re-derive" is exactly the state the rule forbids. It now records each
reading with the instrument that re-derives it: the required floor run's
cross-claim demand TSV for producer ranking, the interpreter's own memo key
trace for separating memo-hit verification cost from work, and the bounded
A/B harness gunbc#11835 carries for the two grammar-resolution shapes.

The review named the note. The same rule governs two more fields on the same
row, so they are fixed in the same push rather than left for a second round:
displaced_cost transcribed a wall-clock pair, a byte size and a corpus-wide
eval-step delta, and the status note transcribed a regen wall-clock. Each now
names the run that re-derives it -- the paired GUNBC_EVAL_MEMO arm, the floor
run's per-claim reporting, and the generated-artifact gate's regen entry.

No figures are transcribed anywhere in the row. ROADMAP.md is unchanged: the
row is hidden, so its fields do not reach the projection.

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

gunbai-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Review 69299 addressed at cc53d75e38. The finding is correct, and it is one a previous reviewer raised, weighed and decided not to block on — I took that as permission to leave it. That was the wrong read: an earlier reviewer declining to make something blocking is not a ruling that it conforms, and DESIGN §6 is unambiguous.

Name the instrument, never transcribe its output. A measurement is cited by naming the producer that re-derives it … never by copying its numbers into prose.

The note did the opposite and announced it — "none of which a successor should re-derive" is precisely the state the rule forbids. Each reading now carries its producer instead of its number:

  • Producer ranking — the required floor run's own required_floor_cross_claim_demand.tsv (evals minus claims), with the caution that claim_batch installs no cross-claim roster (unchanged; this one was already correct).
  • The diagnostics_merge repeat count — recorded as memo-hit verification cost rather than work, naming the interpreter's own memo key trace (keyed-call / distinct-key / duplicated-key counters) as the instrument that separates the two.
  • The two grammar-resolution shapes — re-derived by the bounded A/B harness Grammar backward selection resolves each emitted tree once (stage 2 of #11741's rewire program) #11835 carries; the note now states which form won rather than the percentages.

I also fixed two fields the review did not name, because the rule governs them identically and I would otherwise be back here for a second round:

  • displaced_cost: transcribed a wall-clock pair, a byte size and a corpus-wide eval-step delta. It now states the shape (quadratic in document size, because the key is over the whole string argument) and names the paired GUNBC_EVAL_MEMO arm that shows the quadratic is the key and not the parse, plus the floor run's per-claim reporting for the corpus-wide effect.
  • The wind-down status note transcribed a regen wall-clock. It now names the generated-artifact gate's regen entry point as the check to repeat.

grep for every transcribed figure in that row returns zero. ROADMAP.md is unchanged — the row is hidden, so its fields never reach the projection, which is also why this push needs no regeneration.

— sent from swift-newt-222

@briansrls
briansrls added this pull request to the merge queue Sep 20, 2026
Merged via the queue into main with commit b2f12e0 Sep 20, 2026
4 checks passed
@briansrls
briansrls deleted the fleet-health-roadmap-rows branch September 20, 2026 19:33
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