Skip to content

Refuse unresolved and uncited Altra 2DPC operating rates - #10954

Merged
briansrls merged 17 commits into
mainfrom
session/proud-carp-600
Sep 11, 2026
Merged

briansrls merged 17 commits into
mainfrom
session/proud-carp-600

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

An empty rank table must not turn the cited DDR4-3200 platform ceiling into an operating rate for every two-DIMM population. The uncited 2933/2400 transcription remains retracted. Missing rank-specific rows now produce a typed unresolved clock and bandwidth, carrying DIMMs per channel, rank count, and the platform maximum.

Matching rows must also carry CitedToAuthority evidence. TranscribedUncited rows refuse with their read obligation; missing rows and uncited rows have distinct causes. The admitted-path fixture cites its own synthetic data and establishes no Ampere operating rate. Gated AVL/layout material remains unread and proves neither a derate nor its absence.

The controls cover empty tables, nonempty uncited tables, and matching cited fixture rows capped by the platform maximum. #11068 owns the separate same-channel 1R/2R population constraint: this change does not alter that rule or turn different-channel TBD into a speed result.

Mutation validation at abad65677336034460dd2bcae7f43a46111223b0 was run by parent session crisp-lynx-452 in an isolated detached worktree using /cargo-target/release/gunbc. Its ProcessExit driver checks emptying_rank_specific_ceiling_rows_does_not_admit_an_effective_rate (ARM1) before uncited_rank_specific_rows_do_not_admit_an_effective_rate (ARM2), with named failure reasons. The production file was restored from a pristine copy between mutations. Run receipt: dashboard message msg_44d1f664-cf18-4212-bd28-5f069a17fa67 (logs retained by that session).

Run Exit Result
Intact implementation 0 Both controls pass
Restore empty-table fallback: Absent => ChannelClockAdmitted { rate: platform_max } 1 ARM1 EMPTY_ROWS fails
Ignore provenance: TranscribedUncited => ChannelClockAdmitted { rate: min_rate(a: ceiling, b: platform_max) } 1 ARM1 passes; ARM2 UNCITED_ROWS fails

Thus each control passes intact and detects its corresponding faulty arm. The provenance mutation also demonstrates that the empty-table control alone cannot catch uncited-row admission. The uncited control asserts RankSpecificRateUncited and its read obligation, so refusal with the wrong cause does not pass.

Earlier infrastructure attempts in smart-crab-414 did not evaluate controls: the remote compiler built, but the interpreter exited 101 with HostBudgetUnreadable; the local build exited 101 because this container cannot write /cargo-target/release. These remain infrastructure findings, not semantic reds.

Required CI on this exact head and the operator's re-review remain pending. The operator's CHANGES_REQUESTED is not cleared by a push.

Static validation: git diff --check passed. No effective speed is established for the fleet purchase by this PR.

Brian Searls and others added 2 commits September 10, 2026 18:47
…t in the held datasheet.

The held Altra datasheet and Mt. Jade spec state DDR4-3200 at 2DPC and publish no rank-dependent derate, so the envelope table is now empty rather than an uncited transcription that would decide a 32-slot RAM buy.

Co-authored-by: Cursor <cursoragent@cursor.com>
…el instead.

The empty ceiling table already records that the held datasheet has no rank derate. Mix is now a two-arm Mt. Jade standing consumed by channel_effective_data_rate, with a RED for 1R+2R on one channel.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63200 is right: the one-constructor HeldDatasheetTwoDpcRankDerate and MtJadeSameChannelRankMix rows were only matched in witnesses, so those matches were permanently green.

On f88b3d0a9dd:

  • Those types are gone. Datasheet absence is the empty ceiling table, which ceiling_for_ranks already consumes.
  • Mt. Jade Table 3 is mt_jade_two_slot_rank_standing (uniform vs unlike ranks), consumed by channel_effective_data_rate / memory_bandwidth. 2DPC 1R+2R on one channel is TwoDpcUnlikeRanksOnOneChannelRefused — that RED is authorable (two_dpc_unlike_ranks_on_one_channel_are_refused).
  • Held-unit mix is not an Mt. Jade fact; different-channel mix remains TBD and is not this function.

— sent from proud-carp-600

…el_effective_data_rate.

effective_data_rate answered the same 1DPC/ceiling question as the admitted arm; rate_at now
calls channel_effective_data_rate. memory_bandwidth stays Bandwidth — PopulationOption cannot
express mixed ranks, so a second refuse type would be permanently green.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63205 — both findings held against the tree.

  1. Deleted effective_data_rate. rate_at now matches channel_effective_data_rate (equal slot ranks). Production memory_bandwidth already routed through that function; it is the single clock.

  2. Removed MemoryBandwidthRefusedUnlikeRanksOnChannel / MemoryBandwidthReading. PopulationOption still cannot express unlike ranks, so a bandwidth-level refuse would be a permanently green decoration. The authorable RED remains channel_effective_data_rate(..., slot0_ranks: 1, slot1_ranks: 2) plus mt_jade_two_slot_rank_standing. memory_bandwidth returns Bandwidth; the ChannelDataRate refuse arm is exhaustiveness only and reapplies the uniform-rank admitted clock for this one-module caller.

— sent from proud-carp-600

memory_bandwidth cannot express unlike slot ranks, so catching
TwoDpcUnlikeRanksOnOneChannelRefused and still emitting Bandwidth was a
§5 widen. Mix refuse stays on channel_effective_data_rate, where both
slot ranks are caller-supplied; the one-module path uses cited_channel_clock.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63209 — the fabricate arm was a real §5 widen; it is gone.

memory_bandwidth no longer matches TwoDpcUnlikeRanksOnOneChannelRefused. PopulationOption still carries one module, so a bandwidth-level refuse would be the permanently-green decoration review 63205 already flagged (equal ranks in, refuse arm uninhabited). Widening that type to two slot ranks is a provisioning-shape change, not this datasheet grounding.

The mix refusal stays where a mix can be authored: channel_effective_data_rate / mt_jade_two_slot_rank_standing, with the existing RED at two_dpc_unlike_ranks_on_one_channel_are_refused. The one-module clock is cited_channel_clock, consumed by both that function (after uniform standing) and memory_bandwidth.

— sent from proud-carp-600

The FactCitation companion had no fold. The witness name still claimed a
rank-dependent downclock after the body flipped to a held 3200 rate.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63216 — both findings held.

  • Deleted unused altra_memory_max_data_rate_citation (and the FactCitation import). The rate row stays; standing for the empty 2DPC table remains altra_two_dpc_ceilings_evidence.
  • Renamed downclock_is_rank_dependent to two_dpc_keeps_the_cited_rated_rate_across_ranks so the name matches the 3200-across-ranks claim.

— sent from proud-carp-600

…tinel.

An OCP 2DPC figure is corroboration, not a term that ceilings ASRock (or 1DPC).
The uniform-rank helper now reports Bool on ChannelDataRate instead of 0-1 as Nat.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63225 — both findings held.

  • altra_cited_rated_rate is now min(context.max_data_rate, altra_memory_max_data_rate). mt_jade_dimm_speed_at_two_dpc is no longer a term in that fold (it was also applied on 1DPC and on ALTRAD8UD). It remains a Mt. Jade row, asserted as corroboration in the empty-table witness (and mt_jade_platform_witness).
  • Deleted rate_at -> Nat with 0 - 1. Uniform-rank checks use admitted_rate_equals -> Bool (DataRateAdmitted vs false on refuse). Mix RED still matches ChannelDataRate directly.

— sent from proud-carp-600

PopulationOption still cannot name two slot ranks, so a product refuse
could not fire on a buyer path. Table 3 standing stays in the Mt. Jade
module. Empty-table citation is one field on the table, not a sibling row.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63231 — both findings held; did not widen PopulationOption.

  • Deleted channel_effective_data_rate / ChannelDataRate. That wrapper had no production consumer (memory_bandwidth uses cited_channel_clock). Widening PopulationOption to per-slot ranks is a provisioning-shape change, not this datasheet grounding. Mt. Jade Table 3 stays in extdeps.ocp.mt_jade.platform mt_jade_two_slot_rank_standing, executed by mt_jade_platform_witness.
  • CitedFigureStanding now lives on TwoDpcRateCeilingTable.evidence. Removed altra_two_dpc_ceilings_evidence and the unused per-row TwoDpcRateCeiling.evidence.

— sent from proud-carp-600

Brian Searls and others added 2 commits September 10, 2026 22:26
…ensus import.

GitHub's merge of this branch into an older main still imported grain_admits_single_cabinet
after the helper was renamed; that is the declarations FAIL on required-witnesses-floor.
PopulationOption still names one module, so a 1R+2R refuse cannot fire on
the bandwidth path. A witness-only Table 3 fold is dangling; the 3200
2DPC rate row stays as corroboration.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63273 — the finding held. Did not route Table 3 into memory_bandwidth.

PopulationOption still carries one module.rank_count. Wiring mt_jade_two_slot_rank_standing there would make SameChannelUnlikeRanksNotSupported uninhabited (review 63205 / 63209). Widening the population shape is a provisioning change, not this datasheet grounding.

Deleted TwoSlotRankStanding / mt_jade_two_slot_rank_standing and the witness-only matches. mt_jade_dimm_speed_at_two_dpc remains (3200 at 2DPC, corroboration of the empty Ampere ceiling table).

— sent from proud-carp-600

gunbai-bot Bot pushed a commit that referenced this pull request Sep 10, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>

#10954's source reading is that PR's finding; DESIGN must not settle it while the PR is open and the AVL unread. Same standing for gunbc-private #54's unlanded retraction.
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Mechanical merge of origin/main, pushed by session crisp-lynx-452 — no content change.

This PR's own lane (proud-carp-600) was idle through a delivered high-priority request and this PR
is slot 1 of a staggered push order, so quick-ibex-468 ruled that the merge be performed on its
behalf. Recording it here so the approvals on the prior head remain traceable.

What was done: origin/main (267d69b86cb) merged into session/proud-carp-600 as a merge
commit. No rebase, no force-push, no edit to any file in the diff.

b04a742e743 → 6d3fba0c5c5

Why the prior reviews still describe this head. The merge is verifiably content-free:

git diff origin/main...HEAD before merge 22,759 bytes — 7 files, 127 insertions, 90 deletions
git diff origin/main...HEAD after merge 22,759 bytes — byte-identical
merge conflicts none

The subject the reviewers approved is unchanged. Had the merge produced any conflict, the instruction
was to stop and report rather than resolve it, on the grounds that a conflict would mean the change
was not content-free.

Freshness, by ancestry rather than push time:

gh api repos/gunb-ai/gunbc/compare/267d69b86cb...6d3fba0c5c5 --jq .status
  ahead   (ahead_by=10, behind_by=0)

The push was necessary because this head predated gunbc#10992, so its runs were reproducing an
inherited D0-ADJUDICATE refusal — four claims interrupted before verdict at 503–508 ms against a
500 ms CPU budget, claims_failed=0. A re-run could not have cleared it: the merge ref is pinned at
push time, so a re-run replays the stale ref.

Push-time timestamps were explicitly retired as a freshness test earlier tonight, after they
misclassified two stale PRs as fresh — a head pushed after a fix but merging an older main is still
stale. Ancestry is the test.

The PR remains proud-carp-600's. Nothing further will be done to it by this session.

Brian Searls and others added 3 commits September 11, 2026 03:49
…10992.

The previous floor red was interrupted_before_verdict on those four claims
against a 500ms CPU budget; claims_failed=0. This merge pins the post-01:47:59Z
main ref instead of replaying the stale one.
…a min.

The datasheet figure already sits on the context at construction. Minning
altra_memory_max_data_rate in the product fold forked that fact and would
clamp a non-Altra context without a refusal.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63496 — held. Deleted altra_cited_rated_rate. cited_channel_clock uses context.max_data_rate only. The Altra 3200 citation stays on the context construction sites (altrad8ud_context / mt_collins_context).

— sent from proud-carp-600

The Altra DS is silent on rank derate; attaching CitedToAuthority to that
silence treated absence as a positive warrant. Section 7.1 actually publishes
DDR4-3200 at 2DPC.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63528 — held. altra_two_dpc_ceilings.evidence is now CitedToAuthority to mt_jade_subject_authority_anchor (rev 1.0 §7.1 "DDR4-3200 (2DPC)"), not the Altra datasheet. The datasheet remains silent on a rank-derate table; AVL/PCB stay unread and are not a licence to restore 2933/2400. The 3200 2DPC clock still comes from context.max_data_rate at construction, not a min of silence.

— sent from proud-carp-600

@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: removing the uncited 2933/2400 table is correct, but this head replaces one unsupported inference with another.

“Up to DDR4-3200,” “up to 2 DPC,” and Mt Jade's feature-list phrase “DDR4-3200 (2DPC)” establish a platform capability/ceiling. They do not establish that every 1R, 2R, and 4R two-DIMM population operates at 3200. The absence of a published rank-dependent table is an unresolved input, not a cited empty table whose default is the maximum.

Today altra_two_dpc_ceilings.rows = [] plus cited_channel_clock makes the absence executable as 3200, and two_dpc_keeps_the_cited_rated_rate_across_ranks positively asserts 1R/2R/4R at 3200. That is exactly the inference the source does not carry. The gated AVL/layout material being unread cannot prove a derate, but it also cannot prove there is none.

Please:

  • keep 2933/2400 retracted as uncited;
  • represent the per-population effective rate as unresolved unless an exact authority or an identity-bound observation supplies it;
  • keep the cited 3200 value as a maximum/platform capability, not a default row for every rank count;
  • add a control showing that deleting all rank-specific rows does not manufacture an admitted effective rate;
  • keep #11068's same-channel 1R/2R refusal as a separate population-admission constraint and do not turn different-channel TBD into a speed result.

This head is also behind current main and its required witness run is red; neither condition should gate #11066/#11068/#11071 or the unit-1 receipt recut.

…ling.

The cited 3200 figures remain a platform maximum. A 2DPC effective rate is unresolved until a rank-specific row or an identity-bound observation supplies it, so emptying the table cannot manufacture an admitted clock.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Answering the operator CHANGES_REQUESTED on this PR (GitHub review at 17:38Z): empty rank-specific 2DPC rows no longer execute as DDR4-3200.

cited_channel_clock / memory_bandwidth now return Unresolved for 2DPC unless a matching rank row applies. The 3200 figures stay on the platform-capability carriers (altra_memory_max_data_rate, mt_jade_dimm_speed_at_two_dpc). The 2933/2400 transcription stays retracted. Control emptying_rank_specific_ceiling_rows_does_not_admit_an_effective_rate is green on this head (15/15 node_power_envelope witnesses).

— sent from proud-carp-600

briansrls pushed a commit that referenced this pull request Sep 11, 2026
…prohibition (#10982)

* State epistemic humility in DESIGN: deduced fact, typed bet, over-prohibition.

The corpus already typed warrant standing and asymmetric supplier hypotheses; the document did not name the three-way duty, so over-claim and over-forbid kept looking like rigor.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Keep the over-prohibition receipt on main's typed-uncited rows.

Co-authored-by: Cursor <cursoragent@cursor.com>

#10954's source reading is that PR's finding; DESIGN must not settle it while the PR is open and the AVL unread. Same standing for gunbc-private #54's unlanded retraction.

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Review 63993: a sentinel 0-1 greens the rank-starved bandwidth claim if either side refuses, and emptying production rows left apply_rank_ceiling_row without a positive control. Match the reading in the witness, and enroll a fixture table that is not an Ampere publication.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63993 held on both findings.

  • Deleted derived_bandwidth_count. memory_bandwidth_is_derived_from_the_populated_topology and a_single_rank_population_does_not_reach_the_rated_bus now match MemoryBandwidthDerived / MemoryBandwidthUnresolved; a refusal no longer greens the < comparison via 0 - 1.
  • Enrolled witness-local fixture_admitted_two_dpc_ceilings (not Ampere, not the retracted 2933/2400). a_rank_specific_ceiling_row_admits_the_capped_effective_rate executes 1R unresolved, 2R admitted at min(4000, 3200)=3200, 4R admitted at 2500.

16/16 node_power_envelope witnesses green locally.

— sent from proud-carp-600

@gunbai-bot gunbai-bot Bot changed the title Ground Altra 2DPC ceilings on the held Ampere datasheet (no rank derate published) Refuse unresolved and uncited Altra 2DPC operating rates Sep 11, 2026
@briansrls
briansrls merged commit 1c5146c into main Sep 11, 2026
4 checks passed
@briansrls
briansrls deleted the session/proud-carp-600 branch September 11, 2026 23:22
@briansrls
briansrls restored the session/proud-carp-600 branch September 11, 2026 23:28
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