Skip to content

Migrate table-delete + table-restore onto lifecycle driver#51

Merged
HynLcc merged 1 commit into
mainfrom
migrate-table-lifecycle-driver
Jun 18, 2026
Merged

Migrate table-delete + table-restore onto lifecycle driver#51
HynLcc merged 1 commit into
mainfrom
migrate-table-lifecycle-driver

Conversation

@HynLcc

@HynLcc HynLcc commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

What

Migrates the table-delete and table-restore runner kinds onto a lifecycle driver, mirroring the already-migrated link family (table-delete-link / table-restore-link on table-link-lifecycle.ts).

  • New framework/runners/table-lifecycle.tsrunTableSamplesLifecycle, the non-link sibling of runTableLinkSamplesLifecycle. Owns the shared protocol for plain (linkless) table archive/restore: fixture prep, the per-sample iteration loop, aggregation via buildTableLifecycleSamplesResult, the diagnostic error path, and the cleanup short-circuit.
  • table-delete.runner.ts / table-restore.runner.ts now declare only what varies per kind (per-sample request + verification, success-only details, cleanup policy). Export names are unchanged, so registry.ts is untouched.
  • tasks/runner-migration-tracker.md — both kinds moved to Migrated; counts updated 8/35 → 10/35 runner kinds · 10/55 → 12/55 cases.

Two members (delete + restore) justify the generic non-link family driver per the runner-framework rule #6.

Cases covered

  • table-delete/10k-20f (runner kind table-delete)
  • table-restore/10k-20f (runner kind table-restore)

Verification (local)

  • pnpm check ✅ (exit 0)
  • v1+v2 local runs pass for both cases.
  • G1 artifact diff: baselineA↔baselineB and baselineA↔candidate pass for both cases × v1/v2 (behavior-identical).
  • G1 negative tests: perturbing phases[0].name and thresholds[0].metric both fail the diff.
  • Protected surface untouched: no changes to cases/**, registry.ts, framework/types.ts, framework/artifacts.ts, or ../teable-ee.

CI acceptance via GitHub Actions (teable-ee-e2e-perf.yml, this branch ref, v1+v2) is being run before merge.

🤖 Generated with Claude Code

Add framework/runners/table-lifecycle.ts (runTableSamplesLifecycle), the
non-link sibling of runTableLinkSamplesLifecycle. The driver owns the shared
archive/restore sample loop for plain tables: fixture prep, the per-sample
iteration, aggregation through buildTableLifecycleSamplesResult, the
diagnostic error path, and the cleanup short-circuit. The table-delete and
table-restore runners now declare only what varies for each kind (per-sample
request + verification, success-only details, cleanup policy).

This mirrors the already-migrated link family (table-delete-link /
table-restore-link on table-link-lifecycle.ts); two members justify the
generic non-link family driver.

Behavior is artifact-identical, proven by the G1 diff over both cases x v1/v2:
baselineA<->baselineB and baselineA<->candidate all pass; perturbing
phases[0].name or thresholds[0].metric fails the diff. pnpm check passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@HynLcc HynLcc merged commit ad24669 into main Jun 18, 2026
6 checks passed
@HynLcc HynLcc deleted the migrate-table-lifecycle-driver branch June 18, 2026 17:09
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