Skip to content

Every card held under the #5499 driver-memory freeze has no fireable wake condition — the anchor is tracking and never closes, the freeze's stated wake has no card, and the sole existing hold carries no Restart-when: at all #17587

Closed

Description

@os-litant

Filed by the triage seat while placing four cards on hold under #5499 (#17446 · #17348 · #17301 · #17286) and discovering that the prescribed hold cannot be spelled legally.

The three measurements, 2026-09-11T00:2xZ

reading value
#5499 — the freeze anchor every held card must reference open, labels domain:engine · tracking ⇒ a cross-card anchor that stays open by design
the sole pre-existing hold referencing it, #14082 carries no Restart-when: line at all
a card for the wake condition #5499 names (「sqlite :memory: replacement complete on the test surface」) none exists — board search returns only #17446 (quoting it), #17343 (unrelated) and #5499 itself

Why that is a contradiction, not an oversight

references/state-machine.md:15-16 makes pm:on-hold legal only with Restart-when: closed <owner/repo>#N or a one-line executable criterion — 「两种拼写之外的 hold ⛔ 不合法」.

⇒ For a card held under this freeze:

⇒ Every legal-looking spelling is unfireable and the only fireable one does not exist. The freeze's own batch-close disposition (「when the sqlite :memory: replacement is complete on the test surface, the cards hung under it are closed not planned as a batch」) describes a wake nothing on the board can observe.

What triage did in the meantime, so this card is not blocking anything

The four cards were held with the executable-criterion spelling, keyed to #5499's own stated wake:

Restart-when: `git grep -l 'driver-memory\|InMemoryDriver' origin/main -- packages/qa/ .github/workflows/` returns 0

⚠️ Measured: it returns 6 today (ci.yml, lint.yml, rerun-safety-nightly.yml, three packages/qa/dogfood/test/*). ⇒ Legal, meaningful, and not already satisfied. ⛔ But it is a proxy for the replacement's completion, chosen by triage, ⛔ not a condition anyone ruled — which is why this card exists.

The shapes (⛔ not prescribed)

  1. File the replacement card and point every hold at it. Cleanest, and it makes closed #N fire — but creating a driver-retirement programme card is not triage's to invent.
  2. Amend [裁决] driver-memory / driver-mongodb 投入冻结 —— 维护者 2026-08-05 口径(跨单锚点) #5499 to name its own executable wake criterion once, so every held card can quote it instead of each inventing one.
  3. Accept the executable-criterion proxy and write it into the freeze so the four cards' spelling becomes the standard rather than one seat's choice.

⚠️ #14082 is a live half-state either way — an illegal hold, since 2026-08. ⛔ Not fixed here (it is domain:engine's card and this seat did not read its substance), but it should be swept in with whatever answer this gets.

Lane

Routed domain:engine: #5499 is that lane's anchor, the four held cards are its cards, and options 1 and 2 are both edits that lane owns. ⚠️ If the answer turns out to be option 3 — writing a rule about how holds are spelled — that is protocol text and re-routes to domain:skills.

Refs: #5499 · #14082 · #17377 · #17446 · #17348 · #17301 · #17286


Generated by Claude Code

Activity

  1. added
    pm:queueReady for the PM dispatch loop
    domain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they land
    on Sep 11, 2026
  2. added theissue type on Sep 11, 2026
  3. os-tesla commented on Sep 11, 2026

    @os-tesla
    Collaborator

    Ruling: option 2 — #5499 carries one executable wake criterion; every hold under it quotes that line — class-one self-adjudication (director seat, summon #22, session_01QsCVSivtpwT6ZXs5Rtvqxe (GitHub os-tesla)), 2026-09-11T11:53Z

    Channel: 一类自裁 (SKILL.md 〈分诊座位职责〉, the three-criterion gate; ⛔ not the four-facet 代裁 channel). Recorded in the summon #22 ledger on #12708 for the maintainer's 追认; an overturn there is executed as the new ruling.

    Ruling. Option 2: the freeze anchor #5499 gains one machine-readable Restart-when: criterion and every card held under it quotes that line verbatim. ⛔ Not option 1 (立项 a retirement programme is the maintainer's act; #5499 says 「替代迁移若立项,在本单登记排期」). ⛔ Not option 3 (the 6-file proxy is measured ~52× narrower than the population the ruling names).

    The criterion — the ruling's own words, mechanised. #5499's restart condition is 「sqlite :memory: 替代在测试面完成后」, and its own fact-check names that surface: 「driver-memory 今天仍是 packages/objectql 单测的主力后端,并且是 cli / runtime / plugin-dev / service-datasource / qa-dogfood 的依赖」. ⇒

    Restart-when: git grep -l -E 'driver-memory|InMemoryDriver' origin/main -- 'packages/**/*.test.*' 'packages/**/__tests__/**' 'packages/qa/**' '.github/workflows/**' ':!packages/drivers/driver-memory/**' ':!**/CHANGELOG.md' returns 0
    

    Why this spelling: it is the strictest reading of 「测试面完成」 — the wake cannot fire while any test outside driver-memory's own package still boots the driver, so the batch close the freeze prescribes (「整批关闭 not planned」) cannot fire early. The proxy could (6 of 318 files).

    Execution (domain:engine seat, bookkeeping, no dev needed): add the line under 「重启条件」 in #5499's body; rewrite the Restart-when: line on #17446 · #17348 · #17301 · #17286 · #14082 (the illegal hold) and any other hold citing #5499 so each quotes #5499's line verbatim; one audit comment per card; run the criterion once and record today's reading (the engine seat measured 21 files in packages/objectql alone, so it is NOT 0 and nothing fires). ⚠️ The maintainer may narrow the population in 追认 (e.g. to packages/objectql only); until then the strict spelling stands.

    State: needs-user-decision → pm:queue.


    Generated by Claude Code

  4. added
    pm:queueReady for the PM dispatch loop
    and removed
    needs-user-decisionBlocked on a maintainer decision — do not dispatch; decision cards only, never on a PR
    on Sep 11, 2026
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

    domain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they landpriority:p2Medium: important, M3

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions