Repository navigation
Ground extdeps.deepseek.deepseek_v4_1_flash at a pinned Hub revision - #11007
Conversation
…ub revision. V4.1 is a separately versioned upstream, so its config, KV/parameter footprint, and encoder live here rather than as a fork of the V4 family module. Co-authored-by: Cursor <cursoragent@cursor.com>
…card. The card contradicts itself on parameter totals; component byte sizes now come from shard headers at dba1be0a40aa45a94ad051997016db3960a90277, and the new module is enrolled as an ExternalModelScope carrier. Co-authored-by: Cursor <cursoragent@cursor.com>
The tree API's 510296708312-byte shard total is object-store file size, not serving memory and not index metadata.total_size; deepseek-recipe stays a different product. Co-authored-by: Cursor <cursoragent@cursor.com>
…iterals. Safetensors payload bytes stay the authority, card parameter counts are labelled as card, hosted API id is dropped, and witnesses now check yarn/budget/prefill/DSML relations rather than echoing declarations. Co-authored-by: Cursor <cursoragent@cursor.com>
The .dag parser treats a newline after `count:` as the end of the argument, so the payload-total fold was not a module. Co-authored-by: Cursor <cursoragent@cursor.com>
The rework kept the function that multiplies by deepseek_v4_1_flash_yarn_factor after deleting the binding (review 63389). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Restored — sent from tidy-lark-676 |
…w arithmetic in std. Bare Nat for sliding_window, index_topk, and vision_max_image_tokens forked the TokenCount already used in this module. The output-budget copies in V4, V4.1 Flash, and GLM were the same saturating subtract, not an upstream fact. Scope-describing Bool flags with no consumer are gone; the annotations remain. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63405 (claude/opus REQUEST_CHANGES) — all three findings verified against HEAD and fixed in 91a19ee:
— sent from tidy-lark-676 |
…get wrappers. config.json returns integer arrays; fixed-arity layer_a records re-invented that shape. Remaining-window arithmetic already lives in std.measure; product nicknames were a layer inversion. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63427 (claude/opus REQUEST_CHANGES) — both findings verified on 91a19ee and fixed:
— sent from tidy-lark-676 |
…scribed rows on declared frontiers. The product module was minting huggingface.co/blob URLs beside HubRepoId, and most config/encoder rows sat in neither a consumer nor a frontier. Blob/tree construction now lives once in the Hub module; V4's encoder citation uses the same fold. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63444 (claude/opus REQUEST_CHANGES) — both findings verified on c3dd2fd and fixed:
— sent from tidy-lark-676 |
… the tautological list witness. DeepseekV41DeclaredFrontier was a second carrier for subject+reason+dissolution. The layer-id test compared the module to its own literals. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63463 (cursor/auto REQUEST_CHANGES) — both findings verified on 9f68937 and fixed:
— sent from tidy-lark-676 |
…ame a subject. required-witnesses-floor refused five // lines at EOF after the Bool they used to sit on was deleted. Co-authored-by: Cursor <cursoragent@cursor.com>
…coverage facts, pin the MIT license source. hub_blob_url and peers now prefix datasets/spaces (and api collections) from HubRepoId.kind; same-path controls are in the witness. Fleet unread-on-fleet was a gunbc observation, not a DeepSeek fact. Parser names live under recipes.vllm.ai. LICENSE at the pin is MIT, consumed by DSV41-1. Co-authored-by: Cursor <cursoragent@cursor.com>
…ommentary-only rows. engram, effort_preamble, and system_token now execute in the witness (layer overlap, budget-named preamble, token distinct from think markers). The three frontier lists are folded for partition and expiry, so they are no longer a roster nobody reads. named_effort_values duplicated the closed effort type; declares_no_output_ceiling was a commentary Bool. Co-authored-by: Cursor <cursoragent@cursor.com>
review 63626 was right: tool-call and reasoning parser rows were only self-equal literals, while the frontier named tokenizer_mode alone and claimed the parsers. Each flag is now its own frontier row; the witness checks identity, unique keys, and that all three decls are listed. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63626 is right: Fixed on this head: three |
…recipes.vllm.ai. The live site is a mutable view. The selector strings are cited from models/deepseek-ai/DeepSeek-V4.1-Flash.yaml at that commit, which is the last change to that file and still spells tokenizer-mode / tool-call-parser / reasoning-parser as deepseek_v41. Co-authored-by: Cursor <cursoragent@cursor.com>
…_window. The .dag function landed without its derived std_measure.rs, so stacked heads failed required-regen / generated-artifact stage0-mirrors. The bytes are the required-regen candidate emit, not a hand translation. Co-authored-by: Cursor <cursoragent@cursor.com>
…ion of both sides' additions Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D2AF1pri3WJkug5AtCYLGF
… Bool -- and four GB10 images say what they hold for DeepSeek V4.1 (#11016) * Ground DeepSeek-V4.1-Flash as its own extdeps authority at a pinned Hub revision. V4.1 is a separately versioned upstream, so its config, KV/parameter footprint, and encoder live here rather than as a fork of the V4 family module. Co-authored-by: Cursor <cursoragent@cursor.com> * Settle V4.1 Flash numbers from the pinned safetensors index, not the card. The card contradicts itself on parameter totals; component byte sizes now come from shard headers at dba1be0a40aa45a94ad051997016db3960a90277, and the new module is enrolled as an ExternalModelScope carrier. Co-authored-by: Cursor <cursoragent@cursor.com> * Split Hub tree file size from tensor payload on the V4.1 Flash pin. The tree API's 510296708312-byte shard total is object-store file size, not serving memory and not index metadata.total_size; deepseek-recipe stays a different product. Co-authored-by: Cursor <cursoragent@cursor.com> * Rework #11007: bytes as the fit figure, oracles instead of restated literals. Safetensors payload bytes stay the authority, card parameter counts are labelled as card, hosted API id is dropped, and witnesses now check yarn/budget/prefill/DSML relations rather than echoing declarations. Co-authored-by: Cursor <cursoragent@cursor.com> * A runtime row carries the architectures it registers, not one model's Bool -- and four GB10 images say what they hold for DeepSeek V4.1 ServingRuntimeRow.registers_glm5_next answered exactly one model's question, so it was silent about DeepseekV41ForCausalLM while looking complete. It is replaced by the image's complete architecture registry, read by executing ModelRegistry.get_supported_archs() inside each exact digest on a GB10, and serving_arm_admits now asks membership against the checkpoint's own architecture (taken from config.json at each pinned revision). Each registry lives in that image's own extdeps.docker.images module rather than in the arm. Beside it, gunbc.spark.serving_runtime_capability_probe records what four images actually hold for V4.1 on sm_121 -- architecture registration, FP4 weight kernels, FP4 KV-cache kernels, CSA2 compressor kernels, DSpark speculator -- each asked by its own symbol inside the digest, with the candidate roster and its unprobed entries declared beside the result so "no image admits V4.1" has a readable denominator. The SGLang candidate refuses four of the five rather than answering them, because they are asked in vLLM's vocabulary. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Parse: keep the byte_size count argument on the same line as the label. The .dag parser treats a newline after `count:` as the end of the argument, so the payload-total fold was not a module. Co-authored-by: Cursor <cursoragent@cursor.com> * wip rework * Restore the yarn factor row so scaled-window positions resolve. The rework kept the function that multiplies by deepseek_v4_1_flash_yarn_factor after deleting the binding (review 63389). Co-authored-by: Cursor <cursoragent@cursor.com> * One pin, one compute-capability type, and "probed" now has to have a receipt behind it Review found two second-authorities and both are cut at the root. The serving arm rows carried a literal digest and a literal vLLM version beside the extdeps modules that own them, so a re-pin in extdeps would have left the row launching the old image with nothing refusing. They now read the pinned reference and the declared version from the image's own module. hub_cli_path keeps its single home on the arm row, and the copy this branch had added to the gitcommit90 module is deleted rather than duplicated one layer down. The probe module had minted its own ComputeCapability carrier and an sm_ label nothing called, beside extdeps.gpu.types GpuComputeCapability which already models the vendor-qualified major/minor and already derives that label. The reading is now that type. It stays a gunbc observation: extdeps.systems.nvidia's GB10 row still declares no compute capability, because the cited NVIDIA pages do not state one. Sweeping the same class found two declarations of this branch's own with no consumer -- the reading lookup and the reading roster. They are consumed now rather than deleted, by a witness asserting that every candidate the roster calls PROBED has a reading carrying a host, a date and an instrument. That closes the gap where "probed" could be a label with no receipt behind it, which would have counted an unread image into the sweep's denominator. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Carry V4.1 Flash token windows as TokenCount and fold remaining-window arithmetic in std. Bare Nat for sliding_window, index_topk, and vision_max_image_tokens forked the TokenCount already used in this module. The output-budget copies in V4, V4.1 Flash, and GLM were the same saturating subtract, not an upstream fact. Scope-describing Bool flags with no consumer are gone; the annotations remain. Co-authored-by: Cursor <cursoragent@cursor.com> * Three FP4-KV readings measured the instrument, not the images, and the question behind them was wrong too DSV41-4 read the operator roster from vLLM at the pinned revision and found that two of the three names this probe asked for were never operators and the third names a C++ header, which Python cannot ask for. Verified here against csrc/libtorch_stable/torch_bindings.cpp at 07b75534651a0dd584c6f3be75d8c62fb8426397 rather than taken on report. A name that cannot be present answers `absent` for every image on earth, so those three rows measured this probe and not the runtimes -- and they measured it confidently, agreeing with each other exactly as a blind instrument guarantees. Reading the real roster then showed the question was wrong as well as the spelling. The four KV operators that DO exist are present in any image shipping the compiled extension, while the nvfp4 DS-MLA layout they stood for is reached only through a build defining ENABLE_NVFP4_SM100 -- and DeepseekV4FlashInferMLASparseBackend.supports_combination admits, at device capability major 12, exactly fp8, fp8_e4m3 and fp8_ds_mla. On sm_12x that layout is never selected, kernels or no kernels, so a capability named for its kernels would have gone green everywhere while implying a KV path this hardware cannot take. So the outcome type grows a third way to learn nothing -- KernelProbeSymbolUngrounded, the state where the run succeeded and the question was malformed -- the folds count it as unprobed rather than missing, and the capability is renamed to what it can actually decide here: the MLA KV layout the backend admits, gated on FlashInfer's sparse MLA SM120 decode API. No corrected symbol is spelled in this module. The upstream roster extdeps.vllm.deepseek_v4_1_sm12 is its one home, and the capability carries a frontier naming it, which is why v41_capability_probe_symbol is now a type rather than a string: a string field would have forced either an invented name or an empty value that reads as "no symbol needed". Two witnesses hold the line: an ungrounded symbol must read unprobed and never missing, and the capability without a landed roster must carry a frontier rather than a spelling. A third was CORRECTED -- it asserted the production image was missing all five capabilities and passed over the vacuous reading, which is what a blind instrument buys you. It now asserts the four that were actually asked, and that the fifth is unprobed. The class is filed at gunbc.recurring_failure_mode.a_probe_symbol_that_cannot_exist_records_a_false_absence: ceiling 4, because a probe symbol that is membership in a modelled upstream roster has no constructor for a name that cannot exist, and its next-rung trigger is that roster landing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Transcribe config layer-id arrays as List and drop product output-budget wrappers. config.json returns integer arrays; fixed-arity layer_a records re-invented that shape. Remaining-window arithmetic already lives in std.measure; product nicknames were a layer inversion. Co-authored-by: Cursor <cursoragent@cursor.com> * Three new extdeps modules land as carriers that declare their scope, and a carrier the cover check could not see gets its name A new file under dag/extdeps has exactly two landing states, carrier or machinery, and the frozen manifest is neither. These three image modules arrived as neither: they copied a sibling's shape, and that sibling is pre-freeze debt rather than a pattern to follow. They now declare extdeps_model_scope naming the subject each of them speaks for -- the published repository, which is the one thing in those files the publisher owns -- and they are enrolled in scope_carrier_paths. Two declarations in the gitcommit90 module are deleted rather than kept. One was an interpreter path nothing read. The other was a TORCH_CUDA_ARCH_LIST receipt from `docker image inspect`: an observation of ours, authored into the publisher's module, directly beneath an annotation saying that readings belong in gunbc.spark.runtime_architecture_registry_reading. Writing the rule and breaking it in the same file is worse than not writing it. Running the frontier's own witnesses to check this turned up a red that predates this branch: extdeps.standards.rfc_8118 has been on scope_carrier_paths since #10439 while declaring its scope as rfc_8118_model_scope, and carrier_content_declares_scope reads bytes for the literal `data extdeps_model_scope:`. A carrier whose scope the cover check cannot see is exactly the state that check exists to refuse, so carriers_declare_scope_on_disk has been failing on main for a week. It is fixed here with the same alias that module already uses for its authority anchor -- one scope under two names, the module-scoped one still the authority -- because a branch that only fixes its own half of a red wall stays red. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Route V4.1 Flash Hub URLs through huggingface.hub and enroll the transcribed rows on declared frontiers. The product module was minting huggingface.co/blob URLs beside HubRepoId, and most config/encoder rows sat in neither a consumer nor a frontier. Blob/tree construction now lives once in the Hub module; V4's encoder citation uses the same fold. Co-authored-by: Cursor <cursoragent@cursor.com> * Enroll V4.1 Flash deferred facts as std.roster_frontier rows and drop the tautological list witness. DeepseekV41DeclaredFrontier was a second carrier for subject+reason+dissolution. The layer-id test compared the module to its own literals. Co-authored-by: Cursor <cursoragent@cursor.com> * Attach the trailing scope note to the vLLM parser rows so parse can name a subject. required-witnesses-floor refused five // lines at EOF after the Bool they used to sit on was deleted. Co-authored-by: Cursor <cursoragent@cursor.com> * Honor Hub repo kind in URL construction, split vLLM recipe and fleet-coverage facts, pin the MIT license source. hub_blob_url and peers now prefix datasets/spaces (and api collections) from HubRepoId.kind; same-path controls are in the witness. Fleet unread-on-fleet was a gunbc observation, not a DeepSeek fact. Parser names live under recipes.vllm.ai. LICENSE at the pin is MIT, consumed by DSV41-1. Co-authored-by: Cursor <cursoragent@cursor.com> * A receipt keeps the digest it was taken in, the capability join keeps the machine, and prerequisites stop calling themselves service Three findings from the side-chat review, each verified against the code before it was touched, each true. A READING'S SUBJECT CANNOT MOVE. The four registry readings took their image_reference from the image module's pinned_reference(), which looks like one-digest-one-home and is the wrong shape for a receipt: repinning would have silently re-addressed every past reading to a digest nobody ran anything inside. The observed digest is frozen into the reading now, and desired identity is joined to it at the point of use by reading_applies_to. extdeps still owns what the fleet intends to run; this module owns what was read and when. The repin control is the arm itself -- serving_arm_admits refuses, naming both digests, when the reading was not taken inside the image the arm would launch. Inheriting the old list instead is the exact shape of every silent-wrongness row this repository files: the provenance still reads convincingly while the fact underneath it has moved. A KERNEL QUESTION HAS NO ANSWER APART FROM THE MACHINE IT WAS ASKED ON. The lookup matched image and capability only, and took the LAST matching row. Two defects in one shape: readings from different compute capabilities could combine into a single positive verdict, and two disagreeing readings resolved by list order. It is keyed on the device now and returns a typed lookup whose third arm is OutcomeConflicted -- disagreement is not a value to pick between, it is a receipt set that has lost its single-valuedness, so it counts as unprobed and the remedy is to re-probe. AND A SYMBOL INVENTORY IS NOT A SERVING ENGINE. Every probe here asks whether a symbol is registered or a module imports; that can rule an image OUT decisively and cannot rule one IN. The positive arm is V41RuntimePrerequisitesPresent rather than Admissible, carrying the profile it holds for and the sentence that says what remains. The build obligation's subject is the prerequisites rather than "able to serve", with executable feasibility named as a separate launch receipt. Requirements are bound to a profile in the same move: DSpark is the speculative-decode path, and making it mandatory for everyone converted a deployment choice into a hardware verdict, ruling out images that would have served the thing actually wanted. Six new witnesses, including both directions of the repin wall, cross-device isolation, and the agreeing/disagreeing pair -- a conflict test alone is satisfied by a function that never finds anything. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Consume the Flash frontier groups in the authority witness and drop commentary-only rows. engram, effort_preamble, and system_token now execute in the witness (layer overlap, budget-named preamble, token distinct from think markers). The three frontier lists are folded for partition and expiry, so they are no longer a roster nobody reads. named_effort_values duplicated the closed effort type; declares_no_output_ceiling was a commentary Bool. Co-authored-by: Cursor <cursoragent@cursor.com> * The capability receipts keep their digest too, and a compute capability without its vendor is not a device Two blockers from the side-chat re-review, both true, and both the same root as the last round applied in one place and not the other. THE CAPABILITY RECEIPTS COULD STILL MOVE. The readings were frozen to the digest they were taken in; the ProbedRuntimeImage subjects that cite them were left reading the image module's current pin, so a repin would have carried every capability row onto a digest nobody probed. That is worse than the reading case rather than the same size: a kernel ABSENCE is what rules an image out, so an inherited absence rules out an image nobody looked inside, and the sweep's headline finding is made of exactly those absences. Each probe subject now takes the observed digest from that image's frozen reading, so the observed digest has one home and the receipts cite it rather than re-deriving it. The candidate roster still names the DESIRED pin, deliberately. That is what makes a repin find nothing instead of finding stale answers: desired identity moves, the receipts do not, and the join between them fails loudly. A COMPUTE CAPABILITY WITHOUT ITS VENDOR IS NOT A DEVICE. The device key compared major and minor only, so AMD's (12, 1) -- gfx121 -- matched NVIDIA's sm_121, two unrelated pieces of hardware. GpuComputeCapability carries the vendor precisely so that a capability number cannot be asked as a universal coordinate, and the key now includes it. No AMD row exists in this module, which is exactly why the omission was invisible and exactly why the control asks the question anyway. Three controls, not two: a repinned digest must find no capability rows and read IncompletelyProbed; a same-numbered device from another vendor must find nothing; and every capability row's subject must be a digest some reading was taken in -- which breaks loudly if anyone re-derives a probe subject from a live pin again. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Put all three vLLM recipe flags on the DSV41-1 frontier. review 63626 was right: tool-call and reasoning parser rows were only self-equal literals, while the frontier named tokenizer_mode alone and claimed the parsers. Each flag is now its own frontier row; the witness checks identity, unique keys, and that all three decls are listed. Co-authored-by: Cursor <cursoragent@cursor.com> * One scope, one name: the alias written to satisfy a grep is replaced by the rename it was avoiding The previous commit gave extdeps.standards.rfc_8118 a second name for its model scope so that a byte-reading carrier check could find it, and the annotation said "one scope, two names" in as many words. That is nicknaming, and writing it down did not make it something else: the check reads file bytes for `data extdeps_model_scope:`, so the alias existed to satisfy a grep rather than to model anything. DESIGN section 5 names the moment precisely -- noticing you are implementing a workaround IS the line-stop signal -- and this one was noticed and shipped anyway. The declaration is renamed instead. `rfc_8118_model_scope` becomes `extdeps_model_scope`, its three references move with it, and the module carries one name for one fact. The rename is exactly as cheap as the alias was; nothing was traded away for it. What this change still does not fix, and says so at the declaration: the carrier check reads bytes for a declaration the namespace tree already carries, which is the positional citation section 3 rules out, and it is why a correctly scoped module could sit red for a week with nobody noticing. That root belongs to the frontier's own lane rather than to a DeepSeek runtime PR, and the difference between fixing it and paying a nickname to keep it green is the difference this commit exists to undo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Pin the vLLM Flash recipe flags to vllm-project/recipes@798d4ed, not recipes.vllm.ai. The live site is a mutable view. The selector strings are cited from models/deepseek-ai/DeepSeek-V4.1-Flash.yaml at that commit, which is the last change to that file and still spells tokenizer-mode / tool-call-parser / reasoning-parser as deepseek_v41. Co-authored-by: Cursor <cursoragent@cursor.com> * Two nicknames of my own: one predicate under two names, and an architecture spelling beside its authority Both are the same law I have been applying to everything else in this branch, missed on my own declarations. registry_reading_names and reading_applies_to were one predicate -- exact digest string equality -- under two names. The first was written to route around a parse trap, the second for the repin join, and the first was never revisited once the second existed. registry_reading_for calls reading_applies_to now and the duplicate is gone. The membership witness spelled "DeepseekV41ForCausalLM" inline while the production path imports deepseek_v4_1_flash_architecture_class from its authority. That is worse than untidy in this particular spot, because both uses are NEGATIVE assertions: rename the authority and the witness keeps asserting that two runtimes do not register a string nothing uses any more -- green, and about nothing. It reads the symbol now. The neighbouring "DeepseekV4ForCausalLM" literal was checked for the same defect and left: V4's architecture class has no declaration anywhere in extdeps, only prose mentions in deepspec, so there is no authority to import. A literal with no home is a modelling gap rather than a second name, and inventing a home for it inside a witness would be the fork this commit is removing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018Y9csRyPFVoCayJTEZTKpP * Regenerate the std.measure stage0 mirror for token_count_remaining_in_window. The .dag function landed without its derived std_measure.rs, so stacked heads failed required-regen / generated-artifact stage0-mirrors. The bytes are the required-regen candidate emit, not a hand translation. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> 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>
The Hub pin is #11007's, already on main; recipe parser flags live in extdeps.vllm.recipe_deepseek_v4_1_flash, not inside a conflict body. Co-authored-by: Cursor <cursoragent@cursor.com>
…erived topology (#11013) * Add V4.1 native serving candidates with fleet-derived topology. 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> * Align V4.1 selection with the operator constraints. 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> * Carry V4.1 runtime profiles in the selection domain. 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> * Cite DSV41-0 payload total_size as the V4.1 external footprint. 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> * Cite V4.1 payload as shard-header bytes, distinct from tree file size. DSV41-0 verified both quantities at the same pin; keep FootprintReportedExternally on the tensor payload. Co-authored-by: Cursor <cursoragent@cursor.com> * Rework V4.1 selection against the blocking brief. 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> * Derive GLM and DeepSeek candidate fields from the same cartesian. 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> * Stop inheriting V4 Flash parameters and delete covering topologies. 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> * Derive subject constraint cells from the input's constraint set. 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> * Set GB10 V4.1 KV layout to fp8_ds_mla; leave bytes-per-token unestablished. 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> * Cite GB10 V4.1 KV as an SM12 frontier until clever-bat-173 lands. 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> * Name DSV41-4 recipe/sm12 as frontiers; do not transcribe publisher fit 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> * Drop the eight-indexer KV figure; keep bytes unestablished until DSV41-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> * Fund KV-bytes only on the V4.1 axis roster; drop the permanently green 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> * Carry the unestablished TP-width standing as a DissolutionCondition, 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> * Exclude definite hard-constraint failures before requesting unread axes, 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> * Carry the funded-axis roster on the serving decision input instead of 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> * Stop pinning the published 0909 image to the public-source fallback git 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> * Pin the published V4.1 Spark image to gunbc.spark.v41_published_image_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> * Re-sync stacked #11022 observation and recipe to b728211; cite typed lookup rows. The published candidate now takes v41_published_distribution_name and PublicCommitAbsent instead of concatenating observation prose. Bare _gb recipe names are gone on that head. Co-authored-by: Cursor <cursoragent@cursor.com> * Include axis goal in the serving decision key, and stop treating the unread Spark image as an established git pin. A HigherIsBetter/LowerIsBetter flip on no-redundancy changed feasibility without changing identity; spark_runtime was Established from a placeholder string. Bound-only and goal-only witnesses isolate those mutations. Co-authored-by: Cursor <cursoragent@cursor.com> * Give the stacked V4.1 recipe figures an executing consumer, and drop the false this-PR frontier. The publisher-fit rows are schema headroom, not a Spark floor; selection no longer claims a future import as the trigger. Co-authored-by: Cursor <cursoragent@cursor.com> * Name the GB10 fallback image's arch list as a requested build target, 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 * Give the published-image observation rows an executing consumer, and drop the copy-pasted recipe frontier. The pin is already used by selection; this witness reads the unused digests, observation fold, and registry fold so §3c is per declaration. Co-authored-by: Cursor <cursoragent@cursor.com> * Declare serving_deployment_subject and restore the imports the selection spine still spells. The floor refused a citation to a missing subject name, and seven NewUnresolvedness rows after std.interval and v2.std.optional were dropped while OrderedClosedInterval, Present, and Absent stayed in use. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert edits to #11022's recipe and observation modules, and drop the decorative publisher-fit witness. Consumption of those stacked files belongs on clever-bat-173; this PR should not keep a second authority over them. Co-authored-by: Cursor <cursoragent@cursor.com> * Put the V4.1 deferred KV-layout, TP-width, and bytes-per-token facts on std.roster_frontier. The three unread DissolutionCondition rows are the same concept the recipe module already enrolls as FrontierRow; a witness now folds the roster. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop rebase conflict markers from the V4.1 Hub module. The Hub pin is #11007's, already on main; recipe parser flags live in extdeps.vllm.recipe_deepseek_v4_1_flash, not inside a conflict body. Co-authored-by: Cursor <cursoragent@cursor.com> * Carry #11022's recipe module at f1b8c80, not a stale stacked copy. Observation already matched; fit-statement and install-note rows are #11022's, not this PR's. Co-authored-by: Cursor <cursoragent@cursor.com> * Name engram_standing as a declared later consumer on the selection frontier. The type and dispatch were facts with no executing route; a fourth FrontierRow states the weight-fit trigger instead of pretending an existence witness is consumption. Co-authored-by: Cursor <cursoragent@cursor.com> * Derive GB10 V4.1 KV layout from the sm12 admit wire, and drop the spent frontier row. Co-authored-by: Cursor <cursoragent@cursor.com> #11022 made extdeps.vllm.deepseek_v4_1_sm12 importable; a hand-pinned KvFp8DsMlaLayout plus transcribed admit prose was a second authority for that module's rows. * Refuse a failed sm12 KV-layout join instead of fabricating Auto. The previous miss arms inhabited KvAutoLayout and baked it into every V4.1 profile; §5 requires Absent, not a stand-in the selection path never re-checks. Co-authored-by: Cursor <cursoragent@cursor.com> * Flatten V4.1 profiles with binary concat. The one-arg concat left a list of lists, so profile field reads were type errors at eval. Co-authored-by: Cursor <cursoragent@cursor.com> * Keep the V4.1 field complete when sm12 KV admit is missing. A miss is AxisGap/NeedsEvidence naming v41_sm12_admitted_kv_cache_dtypes, not a dropped profile and not Auto. Co-authored-by: Cursor <cursoragent@cursor.com> * Carry a named sm12 KV-layout obligation through select_serving_deployment. An empty admit roster stays a complete field and answers NeedsEvidence citing v41_sm12_kv_layout / supports_combination, not an unestablished field. Co-authored-by: Cursor <cursoragent@cursor.com> * Preserve the sm12 KV join as named field standing before profile projection. Unadmitted and unmatched wires keep the cartesian field complete and unestablish it with the v41_sm12_kv_layout / supports_combination obligation, never Auto and never an empty profile list. Co-authored-by: Cursor <cursoragent@cursor.com> * Plant an unadmitted SM12 wire and an admitted no-match wire in the same red. Auto is present locally and refused by supports_combination; the admit roster's unmatched spelling (fp8_e4m3) has no KvLayoutPolicy. Both must keep the named join standing. Co-authored-by: Cursor <cursoragent@cursor.com> * Route live select_serving_deployment through the sm12 admit fold. It is select_serving_deployment_at_sm12_admit with v41_sm12_admitted_kv_cache_dtypes, not a parallel path. The planted unadmitted and admitted-no-match reds stay. Co-authored-by: Cursor <cursoragent@cursor.com> * Stop fabricating fp8_ds_mla on a failed sm12 wire match. V4.1 profiles consume Sm12KvLayoutStanding: join failure keeps three profile standings without filling KV. Delete the permanently green ax_sm12_kv_admitted path. Plants feed the same wire the profiles are built from. Co-authored-by: Cursor <cursoragent@cursor.com> * Delete unused domain_over and the optional sm12 layout fork. Weight-fit scale, ceiling, and comparison consume std.measure instead of unwrapping ByteSize into a second Nat formula. Co-authored-by: Cursor <cursoragent@cursor.com> * Put failed profile standings in the domain identity. 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> * Delete the unused constraint-identity alias and subtract measures at 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> * Floor measure_sub with a Nat zero, not an Int literal. Co-authored-by: Cursor <cursoragent@cursor.com> * Carry weight treatment in field identity and drop the Bool infeasibility 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> * Refuse measure_sub underflow and derive the live V4.1 field from the 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> * Key the V4.1 GB10 lead runtime by its observed image digest, not commentary. 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> * Consume vllm_deepseek_v4_1_sm12_revision instead of restating the SM12 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> * Locate hard-constraint exclusions and restore covering topologies for 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> * Install the emitted std.measure mirror for MeasureSubtraction. 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> * Enforce the published arm64 digest as a V4.1 hard constraint before Pareto. 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> * Join the V4.1 runtime constraint to the published arm64 digest identity. 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> * Keep the V4.1 runtime join on the unique digest rendering, and isolate 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> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Summary
extdeps.deepseek.deepseek_v4_1_flashas its own upstream authority (not a fork ofdeepseek_v4), pinned to Hub commitdba1be0a40aa45a94ad051997016db3960a90277.config.json: 1M yarn-scaled window over 64K native, CED 20/20, CSA2 KV-source layers), publisher footprint (552B backbone, 8B/16B active, 196B engram, 890 B/token global KV), and encoder facts fromencoding/encoding.py(numeric effort 1–100, DSML tags with leading spaces, no standalone tool role).Test plan
mainor a serving copytest.claim.deepseek.deepseek_v4_1_flash_authority_witnessMade with Cursor