Skip to content

Migrate table-create onto a new table-create lifecycle driver#62

Merged
HynLcc merged 1 commit into
mainfrom
migrate-table-create-lifecycle
Jun 19, 2026
Merged

Migrate table-create onto a new table-create lifecycle driver#62
HynLcc merged 1 commit into
mainfrom
migrate-table-create-lifecycle

Conversation

@HynLcc

@HynLcc HynLcc commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

What

Migrates the table-create runner kind onto a lifecycle driver, following the
incremental runner-migration campaign (#59 conditional-lookup, #60
field-duplicate, #61 field-create).

table-create is a seedless, create-from-scratch family — no seed cache, no
reusable fixture, drop-on-cleanup — that no existing driver fits. This adds a
minimal new driver framework/runners/table-create-lifecycle.ts, modeled on
field-add-lifecycle.ts but without the seedReady/seedMode machinery
(there is nothing to seed).

The driver owns the repeated protocol:

prepareFixture (allocate a mutable run accumulator)
  -> runPrimary (measured create + verify, mutating the fixture in place)
  -> buildResult (success + diagnostic-error paths)
  -> finally drop-created cleanup

table-create.runner.ts becomes a thin spec + delegator. Its result-assembly
logic is lifted verbatim and re-pointed at the fixture, so the artifact
stays byte-for-byte equivalent. The per-table createTable routing assertions
and the single-engine check are preserved.

Simplification: no seedHash mask

Because there is no seed cache, this family never emits a seedHash, so the
seedHash diff-mask dance the field-add family needs does not apply here.
No diff-artifacts.mjs mask changes were required.

Validation (local, two cases × v1,v2)

  • Baseline A↔B clean with existing masks (no seed cache → no new masks).
  • G1 baseline A ↔ candidate clean for all 4 case×engine artifacts.
  • Negative tests (diff has teeth):
    • semantic perturbation (verification.tables[].fieldCount 20→19) → fails
    • masked-field difference (createdTables[].tableId, *Ms) → passes
    • sibling-of-masked semantic field (createdTables[].status 201→200) → still fails ✅ (mask is not over-broad)
  • Semantics: result=pass, routeMatched=true, v1 actualV2=false / v2 actualV2=true, verification tables correct (10 tables/0 records, 1 table/1000 records, all 20 fields), error=null.
  • Trace refs preserved vs baseline (40 refs for 10x-20f-no-records, 6 for 1x-20f-1k-records). Local saved=0/failed=all is the expected no-Jaeger behavior; saved==ref/failed=0 is verified in CI.

Tracker

table-create → Migrated; 22/35 → 23/35 runner kinds, 29/55 → 31/55 cases.

🤖 Generated with Claude Code

table-create is a seedless, create-from-scratch family that no existing
driver fits, so this adds a minimal framework/runners/table-create-lifecycle.ts
modeled on field-add-lifecycle.ts but WITHOUT the seedReady/seedMode machinery
(there is nothing to seed). The driver owns the repeated protocol:
prepareFixture (allocate a mutable run accumulator) -> runPrimary (measured
create + verify, mutating the fixture in place) -> buildResult (success +
diagnostic-error paths) -> finally drop-created cleanup.

The runner becomes a thin spec + delegator. Its result-assembly logic is lifted
verbatim and re-pointed at the fixture, so the artifact stays byte-for-byte
equivalent. Per-table createTable routing assertions and the single-engine
check are preserved.

Because there is no seed cache, this family never emits a seedHash, so the
seedHash diff-mask dance the field-add family needs does not apply here — no
diff-artifacts.mjs mask changes were required.

Validation (local): two cases x v1,v2.
- Baseline A vs B clean with existing masks (no seed cache, no new masks).
- G1 baseline A vs candidate clean for all 4 case x engine artifacts.
- Negative tests: semantic perturbation (verification fieldCount) fails;
  masked-field difference (tableId / *Ms) passes; sibling-of-masked semantic
  field (createdTables[].status) still fails (mask not over-broad).
- Semantics: result=pass, routeMatched=true, v1 actualV2=false / v2=true,
  verification tables correct, error=null.
- Trace refs preserved vs baseline (40 for 10x, 6 for 1k).

Tracker: table-create -> Migrated; 22/35 -> 23/35 runner kinds, 29/55 -> 31/55
cases.

Co-Authored-By: Claude <noreply@anthropic.com>
@HynLcc HynLcc merged commit ac98305 into main Jun 19, 2026
6 checks passed
@HynLcc HynLcc deleted the migrate-table-create-lifecycle branch June 19, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant