Pinky OOOO: the fixture-id hardening — collision-free row ids + the timeline fold (v1.98.0) #133

Merged
ClaudiuSchuster merged 1 commit from oss-oo/pinky-oooo-fixture into main 2026-10-16 22:05:22 +00:00
Owner

Mission O1 — the fixture-id hardening

The suite's fixture builders derived message/part row ids from (sid-slice, timestamp) pairs. When sibling inserts share a millisecond AND a sid suffix — reliably in the fast CI container (~9 s suite) — sqlite dies with UNIQUE constraint failed: message.id (5 errors on vanilla main, NNNN's forge run). The proven shape: KKKK's phantom-row leg seeds three _mk_sid-padded sessions all ending 000000, messages stamped at the same derived now - 40 min.

Cure (shared, not local): tests/__init__.py::fixture_row_id(base) — derivation shape preserved verbatim, a per-process monotonic segment appended. Nine builders routed through it (cccc/kkkk/llll add_user_message, ffff add_message/add_part, classify_renamed/dual_stamp/lineage_album add_part, poll_cache _assistant_reply, lineage_graph add_doorbell). Audited-safe shapes documented (seq counters, loop indexes, literals, full-sid composites, no-PK turn_usage, JSON ledger ids).

Regression legs (tests/test_round_oooo.py, 4): the exact CI shape (three same-suffix sids, one shared at) + a frozen-clock burst — tripwire-proven: vanilla derivation fails both with the CI error, cure passes.

Flake dead: 15/15 tight loops on the collision-class modules OK; full canonical suite stable across repeated runs (1692 legs, +4 vs baseline 1688).

Mission O2 — the timeline fold

README timeline promised every shipped round but ended at v1.96.0/#131. Added the v1.97.0/#132 (NNNN) and v1.98.0/#133 (this round) rows; completed the three empty PR cells found by the sweep (#61 → v1.34.0 Pinky DD, #73 → v1.44.0 Pinky NN, #94 → v1.64.0 Pinky III — the merge-wedge read-false row whose squash is on main). The promise is verifiable again: every PR #1–#133 has a row.

Ship gates

  • Full suite green (canonical invocation): Ran 1692 tests … OK (skipped=2) — the version-guard's pre-tag tie is the expected red until v1.98.0 tags the merged main commit (tag at ship).
  • Super-Linter slim-v8.7.0 (six lanes + FILTER_REGEX_EXCLUDE \.github/): all green on the final tree.
  • SERVER_VERSION → v1.98.0; seven version sentinels bumped.
  • tests/README gains the fixture-id law.
## Mission O1 — the fixture-id hardening The suite's fixture builders derived message/part row ids from `(sid-slice, timestamp)` pairs. When sibling inserts share a millisecond AND a sid suffix — reliably in the fast CI container (~9 s suite) — sqlite dies with `UNIQUE constraint failed: message.id` (5 errors on vanilla main, NNNN's forge run). The proven shape: KKKK's phantom-row leg seeds three `_mk_sid`-padded sessions all ending `000000`, messages stamped at the same derived `now - 40 min`. **Cure (shared, not local):** `tests/__init__.py::fixture_row_id(base)` — derivation shape preserved verbatim, a per-process monotonic segment appended. Nine builders routed through it (cccc/kkkk/llll `add_user_message`, ffff `add_message`/`add_part`, classify_renamed/dual_stamp/lineage_album `add_part`, poll_cache `_assistant_reply`, lineage_graph `add_doorbell`). Audited-safe shapes documented (seq counters, loop indexes, literals, full-sid composites, no-PK turn_usage, JSON ledger ids). **Regression legs** (`tests/test_round_oooo.py`, 4): the exact CI shape (three same-suffix sids, one shared `at`) + a frozen-clock burst — tripwire-proven: vanilla derivation fails both with the CI error, cure passes. **Flake dead:** 15/15 tight loops on the collision-class modules OK; full canonical suite stable across repeated runs (1692 legs, +4 vs baseline 1688). ## Mission O2 — the timeline fold README timeline promised every shipped round but ended at v1.96.0/#131. Added the v1.97.0/#132 (NNNN) and v1.98.0/#133 (this round) rows; completed the three empty PR cells found by the sweep (#61 → v1.34.0 Pinky DD, #73 → v1.44.0 Pinky NN, #94 → v1.64.0 Pinky III — the merge-wedge read-false row whose squash is on main). The promise is verifiable again: every PR #1–#133 has a row. ## Ship gates - Full suite green (canonical invocation): `Ran 1692 tests … OK (skipped=2)` — the version-guard's pre-tag tie is the expected red until `v1.98.0` tags the merged main commit (tag at ship). - Super-Linter slim-v8.7.0 (six lanes + `FILTER_REGEX_EXCLUDE \.github/`): all green on the final tree. - `SERVER_VERSION` → v1.98.0; seven version sentinels bumped. - tests/README gains the fixture-id law.
- tests/__init__.py gains fixture_row_id(base): derivation shape preserved verbatim, per-process monotonic segment appended — the CI-container same-ms collision class (UNIQUE constraint failed: message.id, NNNN's 5-error vanilla forge run) is dead by construction
- 9 builders routed through it: cccc/kkkk/llll add_user_message, ffff add_message/add_part, classify_renamed/dual_stamp/lineage_album add_part, poll_cache _assistant_reply, lineage_graph add_doorbell
- tests/test_round_oooo.py: 4 regression legs — the exact CI shape (three padded-zero suffixes, one shared at) + a frozen-clock burst; tripwire-proven (vanilla derivation fails both, cure passes)
- README timeline: v1.97.0/#132 + v1.98.0/#133 rows added; the three empty PR cells completed (#61 v1.34.0, #73 v1.44.0, #94 v1.64.0 wedge-read-false, squash on main) — the promise verifiable again
- SERVER_VERSION v1.98.0 + the seven version sentinels; tests/README gains the fixture-id law
ClaudiuSchuster deleted branch oss-oo/pinky-oooo-fixture 2026-10-16 22:05:22 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
OSS-Singularity/zcode-dispatch-observatory!133
No description provided.