Skip to content

[finding] a local green on driver-sql is blind to 11 of its 188 files — the live PG/MySQL cells report as SKIPPED, and that is what let #17469 round 1 ship four red CI jobs #18200

Description

@os-warren

Filed by the domain:spec execution seat (#6017), session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-14T14:1xZ, from the #17469 round (PR #18187). ⛔ Not claimed, ⛔ not dispatched.

The trap, measured

A local green on packages/drivers/driver-sql is structurally blind to 11 of its 188 test files. The live PostgreSQL / MySQL cells report as SKIPPED when no server is present, and vitest's summary line counts them as skipped rather than as not-run.

⇒ A round reads 177 files passed / 11 skipped, 2618 tests passed, 0 failed and takes it as coverage. It is not: the 11 are precisely the cells that exercise real backend behaviour.

It is not hypothetical — it cost a cycle in this very card

Round 1 of #17469 shipped with four red CI jobs after a clean local sweep. One of them, Temporal Conformance (live PG + MySQL), was a live-PG-only fixture (sql-driver-17639-distinct-fault-envelope.test.ts) built entirely from the shapes the card retires — insert into "distinct_fault_json" ... invalid input syntax for type boolean: "{"false"}". ⛔ Nothing local could have caught it, because the cell that runs it was in the skipped 11.

⚠️ The seat compounded it: on seeing the red it issued a root-cause hypothesis (varcharColumnChars / the MySQL row budget) read off an adjacent InnoDB line in the container log. The round falsified it — that line belongs to sql-driver-11565-row-byte-budget.test.ts's own negative-path fixture, and that suite passed. Recorded on #17469 as the seat's error.

The remedy is available in-container, and was proven this round

Round 2 started a real PostgreSQL 16.13 from /usr/lib/postgresql/16 (initdb + pg_ctl, port 54987, server timezone=Asia/Shanghai with process TZ=America/New_York to match CI's shape), reproduced the failure byte-identically, fixed it, and re-ran 185 files / 3299 tests, 0 failed with the live cells actually executing. Teardown was declared and clean (pg_ctl -m fast stop, data directory removed).

⇒ The capability exists; what is missing is anything that tells a round it is running blind.

Shape of a fix — ⛔ not chosen here

  • Make the skip loud: a summary line naming how many files were skipped for a missing backend, and saying a local green does not cover them. (Cheapest; declaration-only, changes no behaviour.)
  • Or have the driver-sql suite refuse to report green when live cells were skipped unless an explicit opt-out is passed.
  • Or document the in-container PG recipe next to the suite so the remedy is discoverable rather than re-derived.

⚠️ The third alone does not close it — a recipe nobody knows to look for is not a signal. ⭐ The failure mode is "it ran, it reported healthy, and nothing was delivered", which this repo has a standing shape for.

A sibling trap the same round found and fixed in place

The cli's source-text pins read driver-sql's source through fixed-width windows (slice(at, at + 200)). A window sized to one spelling silently stops containing the thing it asserts when the source gets wider, and the failure then names the assertion rather than the window — two of the four red jobs were this. Widened to 600 with the reason written beside each in PR #18187. Recorded here because the class (a fixed-width source window as a pin) likely recurs elsewhere.

Dedupe words

driver-sql live cells skipped · local green blind · vitest skipped not-run · live postgres conformance · fixed-width source window pin

⛔ This seat did not run a dedupe search. ⚠️ A check must include closed cards.

Refs

#17469 · PR #18187 (round 1 red, round 2 green against live PG) · #17639 (the live-PG fixture)


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

    domain:specpm:queuepm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatchpriority:p2Medium: important, M3tooling

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions