You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(spec): regenerate the migration reference page for DataMigrationFlag
The generated `content/docs/references/system/migration.mdx` is derived from
`migration.zod.ts` and CI checks the two agree — adding the schema without
regenerating left them out of sync.
The page's intro is the file's first JSDoc block, and `migration.zod.ts` had
none, so the regenerate lifted the `DATA_MIGRATION_FLAG_OBJECT` constant's
TSDoc into that slot. Given the module now carries both kinds of migration, a
real file-level docblock is what the page wants anyway: it says why the two are
separate — a ChangeSet reshapes the database from metadata, while whether a data
migration has run is a fact about one deployment's rows that no release can
assert.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9uWWyKq6pNPQthwCXL8ma
|**object**|`{ name: string; label?: string; pluralLabel?: string; description?: string; … }`| ✅ | Full object definition to create |
70
92
71
93
94
+
---
95
+
96
+
## DataMigrationFlag
97
+
98
+
Deployment-level record that a data migration ran here and its self-check passed — the evidence gate consumers read instead of the platform version
99
+
100
+
### Properties
101
+
102
+
| Property | Type | Required | Description |
103
+
| :--- | :--- | :--- | :--- |
104
+
|**id**|`string`| ✅ | Migration id (e.g. adr-0104-file-references) — one row per data migration |
105
+
|**last_run_at**|`string`| ✅ | When this migration last completed a gated (apply-mode) run on this deployment |
106
+
|**verified_at**|`string \| null`| optional | When the self-check last PASSED. Null/absent until it does — and cleared again by a later failing run, so a regression closes the gate |
107
+
|**applied_at**|`string \| null`| optional | When the backfill last ran in apply mode (writes enabled) |
108
+
|**blocking**|`integer`| ✅ | Blocking discrepancies reported by the last self-check. The gate requires 0 |
109
+
|**advisory**|`integer`| optional | Advisory findings from the last run (external URLs, stale owners, …) — cost storage or need a modelling decision, never block the gate |
110
+
|**details**|`string`| optional | JSON-encoded counts from the last run, for diagnostics |
0 commit comments