Repository navigation
The vLLM rank-population law, executable against a hermetic refusal matrix - #10264
Conversation
…atrix gunbc.spark.vllm_observed refuses to call a front-door readback a tensor-parallel realization: one front door establishes an engine and an artifact and says nothing about which machines carry which rank. This is the missing half -- given a resolved parallel configuration and a set of participants, decide whether they form a coherent population, and refuse with every finding when they do not. IT PROVES THE LAW EXECUTES; IT CLAIMS NO WORKER EXISTS. Nothing here acquires anything. A later host adapter supplies real participants, and only that adapter joined to a coherent decision may mint a production receipt. Landing the law first was the reviewer's ruling and is the right order: authoring the receipt records now would leave a family of types with no constructor path and no discriminating RED -- decoration that would later be cited as coverage. THE SHAPE IS NOT INVENTED. It was read off the live pair with host access granted this session: world_size=2, DP rank 0, PP rank 0, TP ranks 0 and 1, two worker processes with distinct pids, one per fabric address, under a single EngineCore identity. Every refusal arm is a way that observation could have come back wrong. THE EXPECTED RANK SET IS PINNED WITHOUT BEING ENUMERATED, which is a better construction than listing it. Count equals world size, no rank twice, no rank out of range -- by pigeonhole those cannot all hold unless every rank appears exactly once. Completeness is a CONSEQUENCE, and there is no expected list for a caller to supply, which is what stops the caller authoring both sides of its own join. (There is also no list-range primitive in std, and I did not mint one to get an enumeration I do not need.) FOUR DESIGN POINTS THE MATRIX EXISTS TO HOLD. - The host join runs in BOTH directions. Both ranks on one selected host satisfies "no participant on an unselected host" while half the unit carries nothing. - Completeness is a field because a partial collection and a small population produce the same list, and only the first is a missing rank. - Provenance travels through the decision, so a fixture-built coherence cannot be read as acquired evidence by the first consumer that accepts one. - Every finding is collected, not the first. An operator re-collecting once per finding pays a full observation cycle against a service whose incarnation changes between attempts -- and on this pair three incarnations came and went in one day, so each re-collection is against a different subject. Fourteen witnesses green: one positive control, one provenance control, and twelve refusal arms including a world-size-2 PIPELINE-parallel decomposition, which is the case a bare world size cannot distinguish from this unit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G
…he decision Review 59414, both findings. `tensor_parallel_rank` was recorded on every participant and read by nothing: a population claiming both workers were TP rank 0 passed as COHERENT under a law named after tensor parallelism. `decide_vllm_rank_population` now refuses through `TensorParallelRankDoesNotMatchGlobalRank`, with two discriminating REDs -- a contradicting rank and an out-of-range one, both of which were green before this commit. Correspondence is the whole law, not one check among three: `NotATensorParallelDecomposition` already refuses PP != 1 or DP != 1, so every population reaching here is a pure TP decomposition, where vLLM assigns global rank and TP rank identically. Global ranks are already range-checked and unique, so separate TP range and uniqueness arms would be permanently green by construction -- decoration, not walls. `vllm_rank_population_is_coherent` is deleted. It matched the decision coproduct back into a Bool, discarding the findings at the one place they are carried; its sole consumer now matches the decision directly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G
|
Review 59414 addressed; both findings taken as stated. 1. Correspondence is the whole law rather than one check of three. Two discriminating REDs, both green before this commit:
2. All 16 witnesses in |
…identity to its host Review 59425, both findings. PROVENANCE WAS A LABEL, NOT A FACT. `participants` and `observation` were independent arguments, so a caller could hand fixture-built participants to an observation stamped `AcquiredFromHostVantage` and read acquired coherence back out -- fixture data laundered into production evidence at the one place the accepted arm is supposed to mean something. A list and its provenance are one act of collection, so they are now one value: `VllmJoinedObservation` carries its participants, and no constructor takes a provenance. `vllm_fixture_observation` stamps HermeticFixture; `vllm_acquired_observation` costs a `VllmHostVantage` per participant host and refuses, naming every uncovered host, otherwise. This does not reach structural impossibility -- nothing yet mints a vantage from a real connection, and that missing host adapter is the class's next-rung trigger. What it removes is the FREE relabel. A BIRTH IDENTITY IS A PID, AND A PID IS HOST-LOCAL. Compared as a bare string across the population it refused a legitimate cross-host pair whenever two machines happened to birth their worker at the same number -- something this exact two-host launch can produce any time -- reporting two real processes as one counted twice. The comparison is now scoped to the host, and the finding carries it. Two new discriminating REDs and one new positive control; 19 witnesses pass. `w_two_ranks_sharing_one_worker_birth_refuses` now shares a host as well, because that is the state it was always meant to describe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G
|
Review 59425 addressed. Both findings verified against the code and fixed; both were real. 1. Provenance could be applied to someone else's participants. Confirmed: Fixed structurally rather than by validation: a list and its provenance are one act of collection, so they are now one value.
Rung honesty: this does not reach structural impossibility. Nothing yet mints a vantage from a real connection, so a vantage is still authorable in a fixture — the missing host adapter is this class's next-rung trigger, and that is stated in the module. What the change removes today is the free relabel: acquired provenance now costs a vantage per participant host instead of a keyword. 2. Worker birth identity compared globally. Correct — it is a pid, and a pid is host-local. Two legitimate workers on different machines that happen to birth at the same pid were refused as one process counted twice, which this exact two-host launch can produce on any restart. The comparison is now scoped by Witnesses (19, all passing):
|
Side-chat ruling on this head: REQUEST_CHANGES on the acquired-provenance arm, and it is right. `vllm_host_vantage` took a host name and returned a vantage. It cost no connection, no executed host effect, no capture. So the previous commit did not remove the free relabel -- it changed it from one keyword into one wrapper call per host, and naming the wrapper after the vantage did not make it one. Claiming otherwise in the module annotation was the worse half of the defect: an inflated rung is cited as coverage. The whole acquisition vocabulary is gone: VllmObservationProvenance, VllmHostVantage, VllmAcquiredObservationAdmission and vllm_acquired_observation are deleted, `vllm_fixture_observation` becomes `vllm_declared_joined_observation`, and RankPopulationCoherent carries no provenance. What is left is the pure question this module can actually answer: given a DECLARED population, is it coherent. The future host adapter owns VllmAcquiredJoinedObservation, mints acquisition from a real executed observation, projects its semantic fields into this law, and joins its own acquired record to the coherent decision to make a production receipt. The adapter earns provenance; the kernel cannot, so it no longer claims it. 16 witnesses pass. The three deleted ones tested the removed arm; every refusal in the matrix and the positive control are untouched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G
|
Reworked on the side-chat ruling, which was REQUEST_CHANGES on the acquired-provenance arm. It was right, and the claim I made in the previous commit was too strong.
The whole acquisition vocabulary is removed rather than patched — What remains is the question this module can actually answer: given a declared population, is it coherent. That keeps the PR's stated scope — "nothing here acquires anything" — true of its vocabulary as well as its behaviour. The future host adapter owns 16 witnesses pass. The three deleted ones tested only the removed arm; every refusal in the matrix and the positive control are untouched, so the rank law itself is unchanged. — sent from eager-pike-541 |
Side-chat ruling on 1621af0, two semantic blockers. SELECTED HOSTS MUST BE DISTINCT. Both directions of the host join are existence checks, so `[A, A]` with both ranks on A satisfied every one of them -- right count, ranks 0 and 1, corresponding TP ranks, every participant on a selected host, every selected entry naming a host carrying a rank, distinct process keys -- and decided COHERENT. One machine presented as a pair, and the two-host claim rested on list multiplicity standing in for host identity. `SelectedHostNamedMoreThanOnce` refuses it. The invariant is distinctness, NOT one rank per host: a legitimate tensor-parallel deployment may co-locate ranks on one selected machine. A second witness holds that line, so the fix cannot quietly become a law forbidding co-location -- it asserts the co-located population refuses for the IDLE host and specifically not for distinctness. A PID IS A HOST-LOCAL PROCESS KEY. `worker_birth_identity` is now `host_local_worker_process_key` and the finding is `RanksShareHostLocalWorkerProcessKey { host, process_key }`. A pid names a process slot at one observation instant; the number is reused, and under Ray an actor can restart while the logical actor persists. Nothing in this kernel can tell a restart from continuity, so naming the field after an identity it has not earned is the same inflation this module just removed from its provenance. The wet adapter -- which can retain a Ray session, actor id, restart ordinal, node id and process-start evidence -- projects a real identity into this equality key. 18 witnesses pass. PR body synchronized to the pure-kernel shape; it was still describing the deleted provenance control. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G
|
Side-chat rescore at 1. A two-entry list is not a two-host unit. Real, and I had missed it: both directions of the host join are existence checks, so Deliberately not a one-rank-per-host law — a legitimate TP deployment may co-locate ranks. 2. A pid is not a birth identity. 3. Body synchronized — it still described the deleted 18 witnesses pass locally; awaiting exact-head CI. — sent from eager-pike-541 |
…d field nothing reads, under a sentence describing the wall it would build (#10315) * File the class two lanes hit independently: prose asserting a wall nothing can produce DESIGN section 4b requires a row per discovered class. This one earned it by recurring five times across two unrelated lanes in one day. THE CLASS: a carrier records a discriminating value, an annotation beside it describes what that value prevents, and NO OPERATION ANYWHERE accepts the value and can return a different answer because of it. The declaration typechecks, the witnesses pass, and the sentence is not a lie about intent -- it describes a wall that was never built. The field corroborates the paragraph and the paragraph explains the field, so each is the other's evidence and neither touches an executed path. RECOGNITION RULE, about the question rather than the answer: name the operation that TAKES this value and can return two results because of it. If none exists, the field is inert and the prose is the only wall. The mechanical tell is a field appearing exactly three times -- type declaration, constructor parameter, constructor body -- and nowhere else. WHY IT SURVIVES REVIEW, which is why it recurs: the discriminating RED is UNAUTHORABLE. A reviewer hunting the missing negative case cannot write one, because there is no call to make. Four instances passed three independent review rounds and two side-chat rulings on #10264 and #10249 before any was found, and the fourth was found only after a peer session described the shape from an unrelated lane. RECEIPTS: the inert tensor_parallel_rank; a host vantage that cost a wrapper call while its annotation claimed it had removed the free relabel; a resolved-configuration capture of three arbitrary strings that advanced a refusal stage on the strength of its ARM NAME; a health-coverage backend written once and read by nothing under prose promising another backend would get no answer. Plus a fifth from a peer lane on unrelated subject matter -- "an annotation standing where a field should have been", beside an advertised success surface with no construction anywhere. BOUNDARIES DRAWN, because the nearest neighbour has a different remedy. check_subject_shape_cannot_represent_the_state_the_check_detects has a check that EXISTS and executes, unauthorable because the subject cannot carry the state -- repair the subject's shape. Here no check exists at all, unauthorable because there is nothing to call -- add the question. And it is not specification-without-execution: there IS a consumer, green by execution, so the general rule is satisfied BY the defect. CEILING AND TRIGGER: both lanes found instances only after repairing three or four smaller ones each, and both kept missing the next. The trigger is a lens over the Node tree asking whether any function in the closure destructures each declared field -- the same read the namespace authority performs, so it costs no substrate edit. Until then the class is mitigatable by review diligence, which both lanes have measured to be insufficient. Projection regenerated via the generated-artifact gate; 5 agreement witnesses pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G * State the rule as the census can decide it, and refuse the second borrowed receipt Side-chat review found that this row's rule and this row's instrument were not asking the same question, and that a second receipt did not belong. THE RULE AND THE LENS DISAGREED. The recognition rule asked whether an operation "can return two different results because of" the field. That is semantic INFLUENCE. The next-rung lens asked only whether some function destructures the field. That is SYNTACTIC USE. They are not equivalent: a function may bind a field into a dead binding, or compare it inside an arm already decided, leaving the answer invariant while a use census reports the wall present. Shipping both would have reproduced, inside this row's own enforcement, exactly the false coverage the row exists to name. Narrowed to the mechanically decidable population: no RESOLVED, NON-CONSTRUCTION READ anywhere in the field's dependent production closure. Both qualifiers carry weight. RESOLVED, because a consumer may sit in another module or reach the field through an alias, so a textual miss would report inertness that is not there. NON-CONSTRUCTION, because the constructor body reads every field by definition -- a census counting that read finds no inert field anywhere and is permanently green. The three-appearance tell is demoted to what it is: a candidate generator, the cheapest way to find one, never the adjudicator. The influence residue goes to live_argument_threaded_past_the_arm_that_decides, which already exists, rather than being absorbed here. THE OOBE RECEIPT IS A DIFFERENT CLASS. `OobeBrowserSessionReady` was carried as a fifth receipt. Whole-tree resolution found NO construction anywhere, so no field instance was ever produced and then ignored. That contradicts this row's own boundary sentence, which requires a consumer that EXISTS, executes on every run, and is green while one field it carries goes uninterrogated. The remedies diverge too: an unread field needs a question that consumes it, an unproducible success surface needs a construction path or the deletion of the advertised state. Two candidates from two lanes are now admitted by resemblance and refused by the rule. Both refusals stay in the row. That pair is the evidence the boundary is enforced by applying the rule rather than by asserting it. THE CAPTURE RECEIPT'S GRAIN WAS TOO COARSE. The outer response discriminant WAS read, and reading it advanced the stage. What nothing examined were the three strings inside the capture payload. The receipt now says payload rather than coproduct, because a receipt that misplaces its own subject is not a receipt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G --------- Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
gunbc.spark.vllm_observed(#10249) refuses to call a front-door readback a tensor-parallel realization, because one front door establishes an engine and an artifact and says nothing about which machines carry which rank. This is the missing half.It proves the law executes. It claims no worker exists — nothing here acquires anything. A later host adapter supplies real participants, and only that adapter joined to a coherent decision may mint a production receipt.
Why the law before the receipt
Authoring
VllmJoinedRankPopulationReceiptand friends now would land a family of types with no constructor path and no discriminating RED — decoration that gets cited as coverage later. The law can be exercised in both directions today, so it lands today.The shape was measured, not invented
Read off the live pair with the host access granted this session:
Every refusal arm below is a way that observation could have come back wrong.
The expected rank set is pinned without being enumerated
Count equals world size · no rank twice · no rank out of range. By pigeonhole those cannot all hold unless every rank in the range appears exactly once — so completeness is a consequence, not an assertion, and there is no expected list for a caller to supply, disagree with, or drift from. That closes the reviewer's specific concern that a caller passing expected ranks alongside participants authors both sides of its own join.
(There is also no list-range primitive in
std, and I did not mint one to get an enumeration the construction doesn't need.)Four things the matrix exists to hold
[A, A]with both ranks on A passed every one of them — a single machine presenting as a pair, with the two-host claim resting on list multiplicity standing in for host identity. Distinctness is not one-rank-per-host: a legitimate TP deployment may co-locate ranks, and a witness holds that line.HermeticFixture | AcquiredFromHostVantage, with the acquired arm minted by wrapping each host in aVllmHostVantage— a constructor taking a host name and nothing else. That cost no connection, no host effect, no capture: it turned a free relabel into one wrapper call per host. The vocabulary is gone. The future adapter owns acquisition, mints it from a real executed observation, projects the semantic fields into this law, and may consume this decision only while retaining its own acquired record.host_local_worker_process_key, compared within a host because pids are host-local — comparing them globally refused a legitimate cross-host pair on a pid collision. It is not called an identity because nothing here can tell a Ray actor restart from process continuity.Executed evidence
Eighteen witnesses green — one positive control and seventeen discriminating cases:
The positive control is what stops every refusal being satisfied by a law that refuses everything; the pipeline-parallel case is what a bare world size cannot distinguish from this unit.
Not in scope
No production receipt, no acquisition, and no change to #10225's withholding — which still requires the full admitted target, atomically.
🤖 Generated with Claude Code
https://claude.ai/code/session_01U397y4s3dSBof7vGPAX87G