Skip to content

[finding] Three source comments still say the boot-refusal codes are "deliberately NOT wire vocabulary" — #16649 registered them, so all three are false in packages/core and packages/drivers/driver-sql #16884

Description

@zhuangjianguo

⛔ 分级与路由(domain:* / priority:* / type)属分诊,本卡由执行席 domain:spec 不带分级立卡。⛔ Filed unassigned.

Surfaced as finding F2 of the at-tier contract review of PR #16879 (card #16649), rated non-blocking by that reviewer and deliberately not ridden on that PR.

The defect

PR #16879 registers fourteen door: 'none' error codes in ERROR_CODE_LEDGER under the #16404 ruling ("every code that ships in dist is registered there, door or no door"). Three source comments elsewhere in the tree still assert the pre-ruling position — that these codes are deliberately not wire vocabulary — and each is now false. Locate by text, ⛔ not by line number:

file the false claim
packages/core/src/service-not-registered.ts "deliberately NOT wire vocabulary … dispatcher-error-vocabulary.ts classifies it door: 'none' / boot-refusal … a registration question for #8846's ledger, not something to start doing at a door"
packages/core/src/plugin-contract.ts the same sentence
packages/drivers/driver-sql/src/dialect-emission-refusal.ts "That is the test the ledger applies (the class MONGODB_MULTI_TENANT_UNSUPPORTED was UNregistered for failing …)"

Two of the three name codes PR #16879 registers (SERVICE_NOT_REGISTERED, PLUGIN_CONTRACT_VIOLATION); the third cites, as its worked example of the rule, the very code that PR reverses (MONGODB_MULTI_TENANT_UNSUPPORTED, unregistered by #8035, re-registered under #16404).

⚠️ Also now stale in all three: the boot-refusal classification they point at. PR #16879 ratchets all fourteen of those rows out of dispatcher-error-vocabulary.ts, taking that class from 14 rows to 0, so a reader who follows the pointer finds nothing.

⭐ Why this is worth a card

The ledger's own driver-sql row comment was corrected inside PR #16879. The source comment that states the same rule was not — because it lives in a different package and folding it in would have extended a packages/spec diff into @objectstack/core and @objectstack/driver-sql src for comment-only edits. ⇒ The tree now states the rule two ways, and the authoritative one is the ledger.

The harm direction is the one this family keeps producing: an author or agent reading service-not-registered.ts learns that registering the code is "not something to start doing" — after it has been done, by a maintainer-approved ruling. That is a confident false statement about the tree at the exact point a reader decides whether to act.

Shape of a fix (⛔ prose only — the ruling is settled and stays)

The reviewer supplied a replacement shape; recorded, not mandated:

Registered in ERROR_CODE_LEDGER under <owner> (#16649, under the #16404 door-or-no-door rule); door: 'none' on this tree — <existing reachability sentence>; if a transport ever answers with it, error.code carries this spelling.

Do not change behaviour. No code, no registration, no gate. Each of the three keeps its existing reachability sentence — those readings were re-measured by the review and are true (none of the fourteen reaches an HTTP door on this tree). Only the "not wire vocabulary" justification and the dangling boot-refusal pointer are false.

Ordering — discharged 2026-09-08T14:19:35Z. This card's premise was conditional on PR #16879 merging; it merged at that time (613bfbd3d), verified on origin/main: the ledger carries 321 code entries (was 307 ⇒ +14) and verdict: 'boot-refusal' rows are now 0. ⇒ all three comments are false as of now, and this card is live.

⛔ It is deliberately not given a Blocked-by: line. Its parent card #16649 remains open for its own second half (widen the gate's spec-face refusal to every published package; retire the boot-refusal verdict), so a directive pointing at #16649 would hold this card long after its actual precondition was met. ⚠️ Checked with the repo's own directiveValues from scripts/pm/check-half-states.mjs rather than by eye: the earlier inline mention was inside backticks mid-sentence and the predicate returned [], so no machine directive was ever set — the sentence was prose, and only the prose needed correcting.

Dedup

Whole domain:spec lane enumerated to the last page at 2026-09-08T12:31Z — 141 returned against totalCount 141, a complete enumeration rather than a sample — and no open card covers these three comments.

⚠️ Limit of that check, stated rather than hidden: two of the three files are under packages/core and packages/drivers, which are domain:engine territory, so a duplicate filed in that lane would not appear in a domain:spec enumeration. ⛔ Keyword search was not used as the control: search_issues returns total_count: 0 for camelCase identifiers in this repo (recorded on #16779), and the discriminating terms here are SERVICE_NOT_REGISTERED-style constants and file paths.

⚠️ Routing note for triage, ⛔ not a routing decision by this seat: the fix lands in packages/core (×2) and packages/drivers/driver-sql (×1) — none of it in packages/spec — so by the anchoring rule (the domain is where the fix lands) this is probably not domain:spec, despite being surfaced by a packages/spec review. This seat ⛔ does not write domain:*.

Refs: PR #16879 (where F2 was found; the verdict is comment 5586239164) · #16649 (the registering card) · #16404 (the ruling) · #8035 (the reversed decision).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions