Skip to content

DSV41-2: V4.1 native serving candidates, constraints against facts, derived topology - #11013

Merged
gunbai-bot[bot] merged 55 commits into
mainfrom
session/crisp-crane-661
Sep 12, 2026
Merged

gunbai-bot[bot] merged 55 commits into
mainfrom
session/crisp-crane-661

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Summary

  • No-redundancy is replica_count == 1 (tp4x2 fails; tp2x1 and tp4x1 pass). Idle hosts are admitted.
  • V4.1 domain is every (tp, replicas) with tp * replicas <= host_count (fleet_admitted_topologies). Covering-only lists remain GLM/V4 Flash. Runtime TP width set is named unestablished (DSV41-1), not guessed; tp4x1 is in the field.
  • V4.1 KV is KvFp8DsMlaLayout (fp8_ds_mla); bytes-per-token stay unestablished. Speculation is DSpark. Window is yarn-scaled max_model_len 1048576.
  • V4.1 field is three runtime profiles: GB10 public-source lead at 07b75534, published arm64 v41_published_arm64_reference(), and the unread fleet spark_runtime (source unestablished).
  • Footprint is FootprintReportedExternally from the cited payload 510286023000 (not a fleet reading).
  • Folded signed-off Ground extdeps.deepseek.deepseek_v4_1_flash at a pinned Hub revision #11007 at 6099d0d9a2. selection_policy is deepseek_v4_1_selection_policy, not the quality-requirement declaration.

Receipt

select_serving_deployment(deepseek_v4_1_decision_input) is ServingDeploymentNeedsEvidence (on-fleet footprint, DSV41-1 runtime feasibility, quality evaluation, unfunded axes).

Test plan

  • replica_count_above_one_fails_no_redundancy
  • v4_1_field_is_complete_over_every_shape_the_fleet_admits (three profiles; published pin is arm64 repository@digest)
  • v4_1_gb10_kv_layout_is_fp8_ds_mla_and_bytes_per_token_are_unestablished
  • changing_axis_goal_changes_the_decision_identity / flipping_no_redundancy_goal_on_tp4x2_changes_feasibility
  • the_real_deepseek_v4_1_subject_returns_obligations_rather_than_a_topology
  • CI required lanes

Brian Searls and others added 2 commits September 11, 2026 02:31
Native-quality and no-redundancy are hard constraints over facts (published weights; whole-fleet covering), and the V4.1 field is the cartesian of that artifact with divisor topologies rather than a second authored list.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63387: agreed. glm_candidate_field and deepseek_candidate_field now use derived_candidates_for over their domains; the twelve hand-authored rows and the glm_candidate / deepseek_candidate wrappers are gone. GLM/V4 Flash still use covering topologies (not the V4.1 admitted-idle field). Witness: glm_and_deepseek_fields_are_the_derived_covering_cartesian.

@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63409: fixed. assessment_for now derives DecisionConstraint cells and ConstraintSatisfied rows from unique identities on input.constraints (native-quality is a cell for every subject; no-redundancy only for V4.1). ax_no_redundancy is no longer on the shared axis roster; it is appended on v4_1_selection_axes only. Witness: assessment_dispositions_join_the_constraint_identities_on_the_input.

gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
…aving them dangling

Several rows in the recipe and observation modules have no reader in this
change. DSV41-2 (#11013) states that it will import these modules rather than
fork vram_minimum_gb or the admitted-layout set, and it cannot import a module
that is not on the tree -- so the trigger is this change landing. Said in the
modules, because an unstated absence of consumers is the §3c red and a named
later consumer with its trigger is not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4MBC3Vb8do5fAXAysiXLE
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63505 (REQUEST_CHANGES) — both findings hold on the tree they reviewed; both are fixed on fd60c2c.

  1. ax_kv_bytes_per_token is no longer on serving_selection_axes. It is funded only on v4_1_selection_axes, same pattern as ax_no_redundancy. GLM / V4 Flash candidates stay KvBytesPerTokenNotThisSubject and do not get a fabricated required funded-axis reading absent.

  2. ax_engram_placement is deleted from the funded roster. EngramAcceleratorStanding remains (zero pool gain on GB10 unified memory). engram_reading / engram_gap are gone so there is no permanently green axis.

Witness kv_bytes_axis_is_v4_1_only_and_engram_is_standing_not_an_axis executes that split.

— sent from crisp-crane-661

@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63561 — the v4_1_runtime_supported_tp_widths_unestablished NonEmptyStr was a status narration. It is now v4_1_runtime_supported_tp_widths_frontier: DissolutionCondition (unbound_dissolution), same carrier as the SM12 / recipe / KV-bytes frontiers. The domain is still the full fleet cartesian until DSV41-1 discharges that trigger. Witness v4_1_field_is_complete_over_every_shape_the_fleet_admits reads dissolution_description.

— sent from crisp-crane-661

@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63685 (cursor/auto REQUEST_CHANGES) — verified against current head, not only the SHA it reviewed.

Finding 1 (dangling recipe figures / false §3c frontier): fixed in 3801497. The recipe no longer claims DSV41-2 / this PR as a later consumer whose trigger is “this change landing.” v4_1_publisher_fit_authority_frontier is deleted. Witness v4_1_publisher_fit_is_schema_headroom_not_a_spark_floor reads checkpoint, 1.2 headroom, vram minimum, figure wrappers, fit sentence, and verified-hardware (GB10 absent; H200 present). Selection still does not import the recipe module (that diamond dropped serving declarations). Engine floor and install note remain a named later consumer: DSV41-1 / loyal-ram-346 launch argv. Publisher 614 is not a Spark floor.

Finding 2 (recipes.vllm.ai flags under the Hub module): stale after the #11007 fold. On current dag/extdeps/deepseek/deepseek_v4_1_flash.dag around 414–416 the rows are Hub encoding.py effort mappings (low/high/max), not recipe parser flags. Tokenizer/tool/reasoning deepseek_v41 live in extdeps.vllm.recipe_deepseek_v4_1_flash, not under the Hub pin. No Hub edit for this finding.

gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
… not a compiled-kernel fact

Side-chat finding on #11013: TORCH_CUDA_ARCH_LIST records requested targets; kernel presence
is established only by #11022's in-image probe. Also: the image was built (route B) and not adopted.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D2AF1pri3WJkug5AtCYLGF
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63711 (cursor/auto REQUEST_CHANGES) — verified against current head (3ae3ab56b3), not only 1e2a62a3.

Finding 1 (recipe publisher figures / expired §3c frontier): already fixed in 3801497fc3, still true at HEAD. v4_1_publisher_fit_is_schema_headroom_not_a_spark_floor reads checkpoint, 1.2 headroom, vram minimum, figure wrappers, fit sentence, and verified-hardware. Recipe §3c no longer names “#11013 landing” as the trigger. Engine floor / install note remain a later consumer (DSV41-1 / loyal-ram-346). Selection still does not import the recipe module.

Finding 2 (copy-pasted recipe §3c on the observation module): fixed in 3ae3ab56b3. The pasted “vram_minimum_gb / admitted-layout / this change landing” block is gone. Witness v4_1_published_image_observations_split_architectures_and_register_the_model reads manifest-list vs per-arch digests, documented-tag standing, the observation fold, and v41_published_registers_architecture. Selection continues to consume the arm64 pin / distribution / lookup.

@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63748 (claude/opus REQUEST_CHANGES) — verified against 6d6ab00112.

Finding 1 (two extdeps modules for one recipes.vllm.ai / vllm-project/recipes artifact): not folded in this PR. Operator routing (sunny-carp-329): #11013 lands after clever-bat-173 #11022, then this branch merges main once. 03568713 restored extdeps.vllm.deepseek_v4_1_flash_recipe and gunbc.spark.v41_published_image_observation to #11022's copies and forbade further edits there. Folding those figures into extdeps.vllm.recipe_deepseek_v4_1_flash (this PR's #11007 pin at recipes@798d4ed) would be a second authority over #11022's files. Dual appearance vs origin/main is the stacked merge surface; it is not the intended landing surface. After #11022, merge main once so this PR does not mint the page-anchored module.

Finding 2 (dangling DissolutionCondition frontiers): fixed in 6d6ab00112. v4_1_gb10_kv_layout_authority_frontier, v4_1_runtime_supported_tp_widths_frontier, and v4_1_gb10_kv_bytes_authority_frontier are gone. The same triggers live on v4_1_selection_frontier (std.roster_frontier / frontier_row_decl) citing v4_1_gb10_kv_layout, fleet_admitted_topologies, and v4_1_gb10_kv_bytes_obligation. Witness: v4_1_selection_frontier_is_the_roster_home_for_deferred_kv_and_width_facts.

Brian Searls and others added 19 commits September 11, 2026 11:11
No-redundancy is replica_count == 1, not a covering-partition prune: the field is every shape the fleet snapshot admits, and TP width is left to weight-fit. Native-quality and no-redundancy are declared constraint authorities; Engram is an unestablished placement standing that does not discount the fit check.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pin Hub file size as an external footprint (not serving memory), record Engram as zero pool gain on unified GB10 memory, and join artifact × topology × declared vLLM profiles instead of one fleet-image parameter set.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use metadata.total_size 510286023000 (partitioned backbone/Engram/vision/MTP) rather than tree-file bytes, and record that Engram layers 1 and 14 do not grow the GB10 pool.

Co-authored-by: Cursor <cursoragent@cursor.com>
DSV41-0 verified both quantities at the same pin; keep FootprintReportedExternally on the tensor payload.

Co-authored-by: Cursor <cursoragent@cursor.com>
No-redundancy is replica_count == 1 with tp2x1/tp4x1 in the admitted field; V4.1 profiles use the extdeps window, FP4 KV and DSpark instead of V4 Flash parameters; footprint bytes come from the cited payload; selection_policy is a distinct authority.

Co-authored-by: Cursor <cursoragent@cursor.com>
Delete the hand-authored glm_* and deepseek_tp* rows so artifact × topology is one generator, matching the V4.1 field.

Co-authored-by: Cursor <cursoragent@cursor.com>
V4.1 profiles use the extdeps window, FP4 KV and DSpark without reading serving_parameters_current; GLM/DeepSeek domains join the admitted fleet shapes; the divisor-cover generator is gone.

Co-authored-by: Cursor <cursoragent@cursor.com>
Dispositions join native-quality and no-redundancy identities instead of one hardcoded authority; the no-redundancy axis is funded only on the V4.1 set.

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

vLLM 07b75534 on SM12 does not admit NVFP4 DS-MLA. The card's 890 B/token does not apply; DSV41-4 owns that figure. Higher-precision KV is a capacity fact, not a native-quality miss.

Co-authored-by: Cursor <cursoragent@cursor.com>
The profile already used KvFp8DsMlaLayout; name extdeps.vllm.deepseek_v4_1_sm12 and supports_combination instead of copying the engine admit set.

Co-authored-by: Cursor <cursoragent@cursor.com>
…t or KV bytes.

GB10 V4.1 stays fp8_ds_mla with dtype set; auto is a launch refusal. Weight-fit still underivable from a Spark reading. Bytes stay unestablished until indexer, SWA, and the allocator report land.

Co-authored-by: Cursor <cursoragent@cursor.com>
…1-4's declaration lands.

Indexer K caches are kv-source ∩ index-source, not eight. SWA is per-sequence, not a per-token term. Do not mint a dashboard rate; the allocator report still decides.

Co-authored-by: Cursor <cursoragent@cursor.com>
…n Engram axis.

GLM/V4 Flash no longer get a fabricated unread-axis obligation. Engram stays standing (zero pool gain on unified memory) without a funded reading that cannot go red.

Co-authored-by: Cursor <cursoragent@cursor.com>
…not a status String.

DESIGN §4c: the DSV41-1 width observation is a dissolution trigger, not commentary in NonEmptyStr.

Co-authored-by: Cursor <cursoragent@cursor.com>
…es, and give V4.1 candidates a complete identity.

scan_feasibility was asking for performance evidence on candidates already known-forbidden, which blocked the no-redundancy exclusion rule. Candidate identity now includes the full profile, snapshot keys include constraint bounds, and the adopted published 0909 image is in the field (digest stays a DSV41-4 frontier).

Co-authored-by: Cursor <cursoragent@cursor.com>
… inferring it from the constraint-authority ref.

The selector was dispatching v4.1 vs base axes by authority identity, so a witness could fund no-redundancy under the wrong authority and refuse as unfunded. Layer lists keep upstream arity; witnesses now check constructors rather than dissolution wording; footprint and host pool stay ByteSize.

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

That image reports vllm-0.1.dev20904+g179dd0fa9 with unknown provenance; 07b75534 is route B. Source revision is now unestablished and cited to clever-bat-173; the digest stays a frontier on their module.

Co-authored-by: Cursor <cursoragent@cursor.com>
…_observation's arm64 repository@digest.

The recipe documents a tag that does not resolve; the digest is a fleet reading, so this selector imports v41_published_arm64_reference rather than authoring one. Source revision stays unestablished from that module's distribution and public-standing observations.

Co-authored-by: Cursor <cursoragent@cursor.com>
Brian Searls and others added 2 commits September 11, 2026 20:36
Ready combinations alone collide when every V4.1 profile is JoinFailed. The domain key now renders each standing (runtime, wire, obligation) so distinct SM12 failures are distinct snapshots.

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

assessment_constraint_identities was a nickname with only a witness caller. Slack is measure_sub (Nat-floored) rather than a second count difference.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64036 (claude/opus REQUEST_CHANGES) — both findings hold on 957f93ce60; they are fixed on 1a8891f29d.

Finding 1: assessment_constraint_identities is deleted. The witness calls unique_constraint_identities on input.constraints.

Finding 2: std.measure now owns measure_sub (Nat-floored at zero). weight_fit_against_envelope consumes it for slack. Discriminating rows are measure_sub_exact_holds and measure_sub_floors_at_zero_holds.

— sent from crisp-crane-661

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up e10e7666c2: measure_sub's floor arm used a bare 0 (Int); it is now a Nat zero (a.count - a.count) so the branches inhabit one type.

— sent from crisp-crane-661

gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
…ica axis

Under the no-redundancy ruling (#11013 constraint_no_redundancy, in flight),
replica count is pinned to 1, so an axis counting replicas is permanently flat
and the 8-vs-4 rank difference is a feasibility question instead: TP8x1 needs
all eight Sparks, TP4x1 fits the four admissible ones.

States how admissible hosts enter. spark_fleet_snapshot carries host_count: 8
and no identities, so fleet_fits silently assumes eight free hosts while
cell_role assigns srv5/srv6 and an undischarged llama.cpp RPC reservation walls
off srv7/srv8. The fit screen must consume the host binding with each exclusion
naming its authority; landed as its own step, since that assumption is wrong
today independent of Engram.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf
gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
The step had a sentence saying it needed an owner; it has one, sequenced after
 #11013 since that PR rewrites the same module. "Wrong and tracked" becomes
"wrong and owned", with DSV41-9 landing the binding as the retiring trigger.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf
…ity predicate.

Combination keys include the treatment digest so a requantised clone is a different snapshot. Admitted topologies enumerate replicas as host_count/tp. Feasibility folds Worse constraints as a list, not a coproduct-to-Bool helper.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64061 (codex/gpt-6-astra REQUEST_CHANGES) — all three findings hold on e10e7666c2; they are fixed on dcfefeb312.

Finding 1: CombinationKey and domain_key_render carry weight_treatment_key. changing_weight_treatment_changes_the_decision_identity plants the same artifact identity with RequantisedWeights and requires a different decision_snapshot_key.

Finding 2: fleet_admitted_topologies enumerates replica counts as 1..=host_count/tp.

Finding 3: constraint_definitely_infeasible is deleted. scan_feasibility consumes constraint_definite_infeasibilities, a list fold over Worse, same shape as constraint_undecided_gaps.

— sent from crisp-crane-661

gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
…arged reservation

Review 64082 is right and verified against the tree. llama_cpp_rpc_release_receipts
carries receipts for BOTH srv7 and srv8, and spark_llama_cpp_rpc_witness pins
undischarged == 0, so the reservation that section named is discharged; the prior
text read a stale cell_role annotation instead of the declarations the witness
executes against. Applying its own stated formula yields six hosts, not the four
it claimed — the count was right by accident and the formula wrong.

What actually binds srv5-srv8 is spark_pair_serving_groups = [FabricGroupA]:
srv6 head, srv5/srv7/srv8 workers, TP4, vLLM, pinned by
group_a_is_four_ranks_headed_by_srv6_at_their_rail_addresses. Cell-role
assignment lags pair-serving desired state, which is why reading roles alone
undercounts. Admissible set is still srv9-srv12, now for the real reason.

Route A's cost restated: not "displacing two named subjects" but tearing down a
running four-rank serving deployment.

DSV41-9 described as a dashboard node with #11013 as the checkable anchor, in the
shape the corpus already cites DSV41-2, since the label does not resolve in-tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64083 (claude/opus REQUEST_CHANGES) — both findings hold on dcfefeb312. No commit: parent froze this HEAD for side-chat.

Finding 1: measure_sub clamps underflow to a fabricated zero. That is §5 ⊤-as-answer. dag/std/nat.dag has no nat_sub, but v2.std.nat nat_sub already answers underflow as NatSubtrahendExceedsMinuend (nat_sub_answers_underflow_as_its_own_arm). The clamp is not inherited. The only consumer (weight_fit_against_envelope) is already behind measure_le, so a refusing/typed-underflow arm is the honest signature; measure_sub_floors_at_zero_holds would become a RED for that arm.

Finding 2: deepseek_v4_1_domain / deepseek_v4_1_candidate_field / deepseek_v4_1_decision_input restate the same cartesian that v4_1_candidate_field_from_sm12 / v4_1_decision_input_from_sm12 build, including the same field identity. Live rows should be those helpers at v41_sm12_kv_layout / v41_sm12_admitted_kv_cache_dtypes.

Will land both in one push when the freeze lifts.

— sent from crisp-crane-661

…sm12 constructors.

Underflow is MeasureSubtrahendExceedsMinuend, matching v2.std.nat nat_sub, not a fabricated zero. Live domain, field, and decision input are v4_1_*_from_sm12 on the extdeps wire.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64083 is landed on bd4d3d6769.

(1) measure_sub is now MeasureDifference | MeasureSubtrahendExceedsMinuend. Underflow is the named refusal, not a floored zero. weight_fit_against_envelope still measure_le-guards before subtract; the Exceeds arm is WeightsImpossibleByLowerBound. Saturation is not the default.

(2) deepseek_v4_1_candidate_field / domain / decision_input are v4_1_*_from_sm12 on v41_sm12_kv_layout and v41_sm12_admitted_kv_cache_dtypes. live_select_is_sm12_admit_with_the_extdeps_roster also requires the live decision snapshot key equal that constructor.

— sent from crisp-crane-661

…entary.

runtime_revision_key was hashing a paragraph of build history and probe notes. The identity is gunbc_vllm_dsv41_gb10_registry_reading.image_reference; probe receipts stay in serving_runtime_capability_probe.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64106 is right: v4_1_runtime_vllm_gb10_lead.image was a commentary paragraph, so runtime_revision_key mixed history and probe notes into execution-profile identity.

3cda8897a7 sets image to gunbc_vllm_dsv41_gb10_registry_reading.image_reference (the local config digest). Kernel/probe standing stays in serving_runtime_capability_probe (v41_gb10_source_build_probe). v4_1_field_is_complete_over_every_shape_the_fleet_admits now requires that equality.

— sent from crisp-crane-661

…2 pin.

The GB10 lead git and the published-arm64 obligation now read full_revision from that extdeps row. The witness compares against the same field.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64122 is right: the SM12 git pin already lives on extdeps.vllm.source_build vllm_deepseek_v4_1_sm12_revision.full_revision.

8d59207776 imports that row. v4_1_runtime_vllm_gb10_lead and the published-arm64 obligation string both consume full_revision. The field-completeness witness compares the established git against that field, not a third literal.

— sent from crisp-crane-661

… GLM and V4 Flash.

scan_feasibility keeps each (candidate, constraint, axis) instead of counting them away. GLM and DeepSeek V4 use covering partitions again; the unfiltered fleet cartesian stays V4.1-only.

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

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64133 is right on both counts.

(1) scan_feasibility now accumulates constraint_infeasibility_cause (candidate, constraint identity, axis) instead of discarding constraint_definite_infeasibilities after a count. Empty remaining is FeasibilityNone → NoFeasibleRealization with those causes. a_sole_hard_constraint_failure_is_no_feasible_not_needs_evidence requires the candidate and axis keys in the cause string. Exclusion-before-unread-axes is unchanged.

(2) GLM and DeepSeek V4 Flash are back on eight_host_topologies (full_fleet_covering_topologies). fleet_admitted_topologies remains the V4.1 domain; the v4_1_selection_frontier row on that function stays V4.1-only.

— sent from crisp-crane-661

Brian Searls and others added 4 commits September 12, 2026 00:19
required-ci stage0-mirrors refused generated surface drift: the seed copy lacked serde, Rc wrapping, and the coproduct field accessor the emitter writes.

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

Diagnostic alternative runtimes stay in the field. Unauthorized images are definite infeasibilities on ax_authorized_runtime. Matching that digest does not establish vLLM source.

Co-authored-by: Cursor <cursoragent@cursor.com>
RuntimeRevision.image is still a pin, so the compare goes through v41_published_arm64_reference(), the unique rendering of v41_published_arm64_digest. Matching that digest does not establish source.

Co-authored-by: Cursor <cursoragent@cursor.com>
…e the no-redundancy goal flip.

RuntimeRevision.image has no digest slot, so the hard constraint still equals v41_published_arm64_reference(). The tp4x2 goal-flip fixture is not that image, so it cannot carry the authorized-runtime constraint.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot merged commit c25ab6d into main Sep 12, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/crisp-crane-661 branch September 12, 2026 02:35
briansrls pushed a commit that referenced this pull request Sep 12, 2026
Held per the freeze: the side-chat is reading fc2d382, CI is saturated, and a
push now lands a verdict on a stale head for the second time tonight. Pushes
when the manager hands over the verdict.

Finding 1: section 11 restated "only four are admissible" three sections after
8.2 forbade carrying the host list as data. Count dropped; the displacement
argument stays by reference to 8.2. And four is not merely forbidden-as-data, it
is now wrong — host_commitment derives three uncommitted units since srv9 took
the GLM canary. Recorded in 8.2 to show the value moved, explicitly not as a
value to consume: replacing four with three repeats the mistake in a fresher
costume.

Finding 2: the four status claims do NOT resolve alike, and checking each
against gh pr view at edit time rather than memory is the whole content of the
finding. #11013 MERGED and #11088 MERGED, so status clauses go and the symbols
are cited plainly; #11107 is OPEN, so host_commitment's in-flight wording is
still true and STAYS. Sweeping them uniformly would trade one false status claim
for another.

Adds a standing instruction beside the section 14 rule: merging main does not
only make citations resolve, it silently falsifies every "not yet on main" claim
in the document, with no conflict and no diagnostic, and those claims read as
settled so a re-read skips them exactly when they have gone wrong. Same class as
the section 14 rule — a restatement that nothing re-derives — which is why they
sit together.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf
gunbai-bot Bot pushed a commit that referenced this pull request Sep 12, 2026
…d the annotation that said otherwise is withdrawn

THE QUADRATIC WAS A SECTION 6 DEFECT AND THE ANNOTATION DEFENDING IT WAS THE REAL
ERROR. I wrote that the choice was a per-host membership scan or the return of an
unchecked mint, and called the resulting quadratic the necessary price of one
construction authority. DESIGN section 6 says a proven cost-shape defect is ALWAYS
fixed regardless of the realized n, and names "n is small here" as not
time-stable, so an eight-row roster discharges nothing. The arithmetic was real:
with every commitment list empty the outer traversal asked the inner producer to
rediscover each host in the same roster, so membership work grew as n(n+1)/2 with
no causes to join.

THE DISTINCTION THE FALSE CHOICE MISSED: a constructor that takes a population and
constructs only while TRAVERSING that population is already population-bounded.
There is no independent host input at the construction site to check, because the
host came from the traversal -- membership follows from where it came from rather
than from a scan asking whether it is there. That is not the deleted
spark_standing_from_causes, which accepted an arbitrary host with no population in
sight.

So spark_host_standings_in is the sole construction authority with the destructure
inside its walk of `units`, and spark_host_standing_in is a LOOKUP over that
result rather than a second mint. One authority, no rescan, no proof type, no
subsystem. The outside-population negatives and the identity-checked positive now
exercise the path production uses, which is the trap from the previous round --
the control was right and was aimed one level too high.

STATUS DRIFT, the other finding. #11013 merged at 02:35:02Z on 2026-09-12, so
"waits on gunbc#11013" was stale in the module note and in the failure-mode row's
second-specimen paragraph, and the row's RUNG receipt said this PR "landed the
authority" while it is open and unmerged. Corrected WITHOUT drifting the other
way: the prerequisite landing and the follow-up happening are different facts, so
the text says the cutover remains a follow-up and this head still carries the
scalar. "landed" becomes "adds".

PR body carries the counts and both named identities, since a squash-merge makes
it the commit message.

Evidence:
  binary sha256 (executable) e6956498e01a0fe1a80fe027a25486f5589176e58818e2cb087d49f0131a4a53
  binary source commit       c22cfa3
  subject tree               this commit's tree (clean worktree)
  spark_host_commitment 14/14, v41_runtime_image_build 22/22,
  ledger_row_coherence 18/18. No FAIL, no error lines.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HHofuqih9HPXr1pbVBqKMA
briansrls pushed a commit that referenced this pull request Sep 12, 2026
… vs NVMe vs NFS routes) (#11098)

* Plan: Engram placement as a fabric/materialization cost decision, not a location string

Plan doc only. No .dag implementation; the one non-prose change is the
doc_graph_roots bind that makes the file reachable.

Models the component's access demand (48 row reads/token, 264 B rows, sub-page
granularity, 15.5x read amplification) against the 203,073,076,240 B table, and
derives the fleet consequence — TP8/one replica when Engram is resident vs
TP4/two replicas when it is not — through axes serving_deployment_selection
already funds. The route ordering is deliberately left NeedsEvidence.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Recut the deduction: feasibility against admissible hosts, not a replica axis

Under the no-redundancy ruling (#11013 constraint_no_redundancy, in flight),
replica count is pinned to 1, so an axis counting replicas is permanently flat
and the 8-vs-4 rank difference is a feasibility question instead: TP8x1 needs
all eight Sparks, TP4x1 fits the four admissible ones.

States how admissible hosts enter. spark_fleet_snapshot carries host_count: 8
and no identities, so fleet_fits silently assumes eight free hosts while
cell_role assigns srv5/srv6 and an undischarged llama.cpp RPC reservation walls
off srv7/srv8. The fit screen must consume the host binding with each exclusion
naming its authority; landed as its own step, since that assumption is wrong
today independent of Engram.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Give the admissible-host binding an owner rather than a queue position

Review's one watch item: step 4 is described as independently correct today, so
if it slides behind the Engram work it becomes a known-wrong screen with no
owner. States that it is not gated on this plan's approval, must not be
sequenced behind the routes, and wants its own work item — with the trigger
that retires "wrong and tracked" named as the binding landing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Cite DSV41-9 as the admissible-host binding's owner

The step had a sentence saying it needed an owner; it has one, sequenced after
 #11013 since that PR rewrites the same module. "Wrong and tracked" becomes
"wrong and owned", with DSV41-9 landing the binding as the retiring trigger.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Fix the exclusion authority in 8.2: pair-serving Group A, not a discharged reservation

Review 64082 is right and verified against the tree. llama_cpp_rpc_release_receipts
carries receipts for BOTH srv7 and srv8, and spark_llama_cpp_rpc_witness pins
undischarged == 0, so the reservation that section named is discharged; the prior
text read a stale cell_role annotation instead of the declarations the witness
executes against. Applying its own stated formula yields six hosts, not the four
it claimed — the count was right by accident and the formula wrong.

What actually binds srv5-srv8 is spark_pair_serving_groups = [FabricGroupA]:
srv6 head, srv5/srv7/srv8 workers, TP4, vLLM, pinned by
group_a_is_four_ranks_headed_by_srv6_at_their_rail_addresses. Cell-role
assignment lags pair-serving desired state, which is why reading roles alone
undercounts. Admissible set is still srv9-srv12, now for the real reason.

Route A's cost restated: not "displacing two named subjects" but tearing down a
running four-rank serving deployment.

DSV41-9 described as a dashboard node with #11013 as the checkable anchor, in the
shape the corpus already cites DSV41-2, since the label does not resolve in-tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Return RealizationSelectionResult itself; stop treating elimination as selection

Review 64096, both findings verified. RealizationSelectionResult carries SIX
arms and the plan collapsed them to three — a second algebra with fewer
distinctions, the exact 3d fork the plan claims elsewhere to avoid.

SelectionNeedsPolicy is the arm that bites: B and D can both be fully measured
and non-dominated (D wins fill, B wins network bytes and failure domain), which
no further measurement resolves. The three-arm vocabulary had to either report
NeedsEvidence for evidence that exists or pick a winner off a front of two.

And "the answer is A regardless of cost" contradicted 8.2, where A fails host
feasibility. If the runtime refuses B/C/D and A fails the host screen, every
candidate violated a hard constraint: NoFeasibleRealization naming both causes.
A surviving candidate passed every constraint; it is never the last one standing.

Reconciled the downstream NeedsEvidence claims: with 11's constraint axis
unfunded, today's output is RealizationSelectionRefused, not
SelectionNeedsEvidence.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Match 14.4's landing recipe to 8.2's three-term formula

Review 64114, verified. 8.2 rejected "roster minus role assignments minus
undischarged reservations" — it yields six — and 14.4 still told the worker to
build exactly that. Correcting the argument while leaving the recipe is the
surviving-attractor shape DESIGN 3 warns about: the dead formula is the one the
implementation would have been written against.

The desired-serving-deployment term now leads, named as the only non-empty term
today and as the one a worker reading the role roster would omit — which admits
six hosts and hands four of them to a new shape while Group A serves on them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Propagate the six-arm result vocabulary into 8.2's host-screen sentence

Own sweep, not review-driven. 8.2 still said a shape exceeding the admissible
set is "Refused"; after 7's correction that arm means the selection itself was
defective. A full fleet is NoFeasibleRealization — well-formed selection, no
surviving candidate — which is the distinction the six arms exist to keep.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Correct the byte-partition rung, and drop the EngramPlacement nickname

Review 64146, both verified.

The byte partitions are CitedToAuthority publisher figures, not
FootprintObservedOnFleet — deepseek_v4_1_flash_payload_footprint_standing says
so, and the only FootprintObservedOnFleet nearby is a different artifact (V4,
168 GB). Claiming the stronger arm was rung inflation in the paragraph whose job
is rung honesty.

The correction has teeth: weight_fit_of returns WeightFitUnderivable on
FootprintReportedExternally, so 8's rank arithmetic run through the screen that
exists today yields underivable for every route. The 5-vs-3 split is motivation
for the decomposition, not a feasibility finding, until a Spark reads the byte
spans. 14 step 1 now takes that read together with the row-size read, since one
pass discharges both.

EngramPlacement was a second name for the selected route, in a plan whose thesis
is that placement is not a property of the component — the exact shape a worker
could mint the forbidden location type from. Named as the MaterializationRoute
inside SelectedWithin instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Recut the plan against seven side-chat findings

F1 coupling. "Two selections, no joint search space" was asserted, not
established, and is wrong: fill is per host, the table is row-sharded across
ranks, refill scope and storage follow host count, page cache follows route and
concurrency, failure cost follows host assignment, and feasible topology follows
the route's resident contribution. No invariance proof exists. New 7.1 takes the
parameterized shape — route selection per exact serving candidate, outer
selection over composed candidates — keeping both authorities distinct without a
context-free route winner. Max admitted latency leaves the demand carrier; it is
serving policy and belonged to the serving subject, as section 4 already said.

F2 logical vs physical. 48 hash IDs is implementation-plus-config derived
(n_hash_cols = (max_ngram_size-1)*n_heads), not config-only. The page-read chain
is a scenario under named assumptions, not derivation: weight and scale are
separate tensors so 264 B is a summed logical payload rather than a layout fact,
and page count, coalescing, readahead, cache hits, host page size and per-rank
ownership are all unestablished. Split into ComponentLogicalAccessDemand and
RoutePhysicalAccessStanding with the standing inseparable from the number.

F3 resident memory. "Zero resident bytes" for a non-resident route is fail-open:
B and D depend on a retained page cache by construction. RouteResidentMemoryStanding
with an unestablished arm that keeps the fit open. TP8/TP4 restated as
lower-bound scenario, matching WeightsNotRuledOutByLowerBound.

F4 census. Placement has four arms including LocalAccelerator; the hop restated
placement and retention that tier_axes and CacheProvider already derive, making
contradictory hops writable; CasTier is keying, not locality; ArtifactRequest is
a closed coproduct over compiler artifacts and cannot host Engram; the component
digest does not exist. Adds the subject/artifact/realization trio. The net-new
count is now open rather than "exactly three".

F5 consumption. A witness is not the production consumer: step 2 merges with the
candidate-field consumption or lands as a declared frontier.

F6 two gates. serving_runtime_capability_probe says of itself that presence is
prerequisite inventory establishing nothing about serving, with feasibility
belonging to RuntimeFeasibility and a launch receipt. Absence rules out; presence
does not rule in. Digest grain corrected to the observed local config digest.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Four bounded plan-text repairs from the side-chat verdict

1. Missing-evidence semantics were self-contradictory across 8.3, 11.1 and 14.
std.decision separates unfunded_constraint_axis_defects (constraint naming an
axis ABSENT from declared axes: a malformed input) from unread_axis_gaps (a
declared axis with no candidate reading: an evidence need). The plan conflated
them. 11.1 now states four states in a table; today's output is
SelectionNeedsEvidence, not RealizationSelectionRefused. Also deleted the
automatic "once the probe lands" progression: a result depends on what a probe
OBSERVES plus the remaining evidence, not on an instrument existing. And says
the runtime axis is declared on purpose — omitting it to obtain a louder refusal
would preserve the six arms' spelling while destroying their meanings.

2. The capability lookup key was wrong, and dangerously. The merged witness
the_published_ask_is_keyed_on_the_pull_pin_not_the_config_id asserts the
observation is keyed on the pull pin and that
architecture_observation_exists(config_id) is FALSE. The prior text would have
had a worker query pin-keyed inventory by config ID and read the miss as absence
of support — manufacturing a measured negative from a wrong key. Execution
identity and observation lookup key are now distinct, with all four terms of the
relation kept.

3. Three claims outran their carriers. The 6.2e-8 ratio is (48 x 264 B) / table
and rests on the ungrounded 264 B assumption, so it is conditional. 8.3 still
called the 48 config-derived; it is implementation-plus-config. 14.1 claimed a
byte-span read would make the arithmetic a feasibility finding; it establishes
neither resident memory nor working set nor execution. And the third-party patch
inference is withdrawn — someone patching their build observes nothing about the
published digest.

4. Host set: consume gunbc.spark.host_commitment rather than restate a
subtraction, since an independently enumerated recipe misses whatever category
lands next — which is how this plan missed the serving-arm claim. No scalar
replaces "four"; the document no longer carries the host list as data, which is
the rule 8.2 already stated and 8.2 itself broke.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Make 14 defer to the sections, and merge main so the cited witness resolves here

Review 64308, all three verified.

The citation finding is a base problem, not a false citation: the witness
the_published_ask_is_keyed_on_the_pull_pin_not_the_config_id and
architecture_observation_exists are on origin/main but were NOT in this branch's
tree, which predates that merge. I verified them against origin/main and cited
them as if the PR tree carried them. Merged main so the symbols resolve in the
corpus this PR actually presents.

Steps 3 and the closing line each restated a reading the section above had
already corrected — step 3 keyed the probe on the config digest, the exact
inversion 11.1 says manufactures a false negative, and the closing line said
refusal where 8.3 now says SelectionNeedsEvidence. Both are the brief a worker
executes, so a stale restatement there outranks corrected prose everywhere else.

Three reviews have now found this same shape in 14. The structural repair, stated
in the section: 14 states no semantics of its own — every step names the section
that owns its meaning, and where a step and a section disagree, the section wins
and the step is the defect.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Authorised edits for review 64320, committed and DELIBERATELY UNPUSHED

Held per the freeze: the side-chat is reading fc2d382, CI is saturated, and a
push now lands a verdict on a stale head for the second time tonight. Pushes
when the manager hands over the verdict.

Finding 1: section 11 restated "only four are admissible" three sections after
8.2 forbade carrying the host list as data. Count dropped; the displacement
argument stays by reference to 8.2. And four is not merely forbidden-as-data, it
is now wrong — host_commitment derives three uncommitted units since srv9 took
the GLM canary. Recorded in 8.2 to show the value moved, explicitly not as a
value to consume: replacing four with three repeats the mistake in a fresher
costume.

Finding 2: the four status claims do NOT resolve alike, and checking each
against gh pr view at edit time rather than memory is the whole content of the
finding. #11013 MERGED and #11088 MERGED, so status clauses go and the symbols
are cited plainly; #11107 is OPEN, so host_commitment's in-flight wording is
still true and STAYS. Sweeping them uniformly would trade one false status claim
for another.

Adds a standing instruction beside the section 14 rule: merging main does not
only make citations resolve, it silently falsifies every "not yet on main" claim
in the document, with no conflict and no diagnostic, and those claims read as
settled so a re-read skips them exactly when they have gone wrong. Same class as
the section 14 rule — a restatement that nothing re-derives — which is why they
sit together.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Side-chat verdict: three lateral contradictions, swept rather than patched

Folded with the two REQUEST_CHANGES edits authorised earlier — one push, one
head for the reviewer.

1. 8.3 still promoted a byte-span read into feasibility, which corrected 14.1
already denied. That mattered more than a duplicate because 14 DEFERS to 8.3, so
the precedence rule routed authority into the error. Replaced with the
reviewer's text: the read establishes the fleet-read payload input and not
loaded resident memory, route working set, or execution feasibility; the
positive arm stays WeightsNotRuledOutByLowerBound.

2. Host claims in three places, not the two named. Section 11 takes the
reviewer's wording — a candidate requiring more hosts than host_commitment makes
available is excluded, and if that empties the field it is NoFeasibleRealization
with causes named. Deleted the 8.2 bullet reasoning admissibility from absence
in the preceding categories, immediately before the text explaining why an
omitted serving-arm claim invalidates exactly that. And 8.1 carried a third
present-tense count the verdict did not name; the sweep found it.

Also removed "three uncommitted units" from 8.2, which I had written as a
demonstration. The instruction is no replacement number anywhere, and a figure
labelled do-not-consume is still a figure that goes stale; the supply gap is an
operator decision this plan does not resolve.

3. The patch inference's remainder: "establishes that the capability is not
universally present" stood in the same paragraph that granted the author may
never have tried the stock path. Replaced with the reviewer's sentence.

All three share the shape section 14's note diagnoses, one axis over: sections
contradicting each other laterally rather than 14 restating a section.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

* Remove the host-feasibility CONCLUSION, not just the number that supported it

Verdict finding, and it is the same class one level subtler than the last: the
availability number is gone but the conclusion it was supporting stayed, stated
independently.

8.1's Route A bullet delegated the answer to host_commitment and then supplied
it anyway in the next clause — my own replacement text, not survivor prose.
Suffix deleted; the TP degree stays, since that is the scenario's demand rather
than an authored availability figure.

8.2's "infeasible without displacing a running four-rank serving deployment"
paragraph deleted entire, no replacement: section 11 owns the host-fit rule.

Swept for the conclusion the way I swept for the number, and found a third:
section 11 named "release Group A" as a remedy, which is today's incumbent as
data. Now names constraint kinds instead, with the note that which is cheapest
to move depends on what is committed at the time and is not a property of any
route.

The distinction worth carrying: a host-fit refusal establishes that a candidate
cannot use the presently admitted supply. It does not establish that a
particular incumbent must be displaced whenever that route is selected — a
sufficient uncommitted population removes the exclusion without displacement
entering the route at all. "A is infeasible without displacing" smuggles today's
supply into a permanent property of the route, which is the stale-fact mechanism
wearing the shape of a conclusion instead of a number.

#11107 re-checked at edit time: still OPEN, so host_commitment's in-flight
wording stays.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DiKZ27VVdsn6hn9V8fN9Kf

---------

Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com>
Co-authored-by: Claude Opus 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.

0 participants