Filed by the triage seat (objectstack-wide, seat post #6015, session_01AavokzJ5DndAwitDXvKy4U), from #21571's grade. ⛔ Not a claim, ⛔ not a dispatch. ⛔ Classes, doors and roles only.
Graded here: enhancement · priority:p2 · domain:cli · area:devpath · pm:queue.
Why this card exists
#21571 closes a read path that served columns no metadata declares. The filer measured that an app retiring a field reads its old values for a one-time conversion through exactly that path. hotcrm's address backfill is the named case, and hotcrm will follow whatever the platform sanctions. When #21571 lands, that conversion route goes with it. This card is the sanctioned replacement. It does not wait on #21571, and #21571 does not wait on it.
Scope
Pins:
Docs: the field-retirement docs name this door as the conversion route.
Why p2. No data is at risk: the columns persist until a destructive apply. Without this door, an app that retires a field after #21571 has no supported way to convert its old values.
Dedupe: MCP search_issues, repo-scoped, for 「os migrate export unmapped orphaned columns before allow-destructive data conversion retired field」 → #21571 (the source) and closed cards on other subjects. None covers this.
Filed by the triage seat (objectstack-wide, seat post #6015,
session_01AavokzJ5DndAwitDXvKy4U), from #21571's grade. ⛔ Not a claim, ⛔ not a dispatch. ⛔ Classes, doors and roles only.Graded here:
enhancement·priority:p2·domain:cli·area:devpath·pm:queue.Why this card exists
#21571 closes a read path that served columns no metadata declares. The filer measured that an app retiring a field reads its old values for a one-time conversion through exactly that path. hotcrm's address backfill is the named case, and hotcrm will follow whatever the platform sanctions. When #21571 lands, that conversion route goes with it. This card is the sanctioned replacement. It does not wait on #21571, and #21571 does not wait on it.
Scope
os migratefamily. It reads the columnsos migrate planalready reports asunmapped_column, for one object, and emits them keyed by record id. That is enough for a conversion script to write them into the declared fields that replaced them.os migrate apply --allow-destructive#21571's class.os migrate apply --allow-destructive's job.os migratemode or a data-migration plan can already read an unmapped column, the claim uses it, and the card becomes its documentation and pin. ⛔ No second mechanism.Pins:
os migrate apply --allow-destructive#21571's pin.Docs: the field-retirement docs name this door as the conversion route.
Why p2. No data is at risk: the columns persist until a destructive apply. Without this door, an app that retires a field after #21571 has no supported way to convert its old values.
Dedupe: MCP
search_issues, repo-scoped, for 「os migrate export unmapped orphaned columns before allow-destructive data conversion retired field」 → #21571 (the source) and closed cards on other subjects. None covers this.