Backfill timeline activity metadata and drop legacy fields (#24738)
## Stack - Base: #24726 (`codex/fix-timeline-activity-missing-target-metadata`) - Merge this PR after #24726. ## What changed This is the migration-first cleanup for legacy timeline activity metadata. - Add a 2.35 workspace command that audits and backfills missing type IDs and snapshots before removing `timelineActivity.name`. - Preserve dangling type IDs and their stored snapshots when an application-provided type has been uninstalled; the snapshot remains the durable historical rendering contract. - Keep type ID and snapshot columns nullable for the rolling-deployment window. Non-null enforcement is deliberately deferred instead of mutating the 2.33 command or weakening the migration validator. - Retain the existing null-safe coalescing and legacy-name read fallbacks while mixed-version data can still be observed. - Drop deprecated core `timelineActivityType.renderer` storage/API through a registered 2.35 instance command. ## Safety - Dry-run reports the per-workspace audit without mutations. - Missing type IDs and snapshots must be repaired before the legacy name field is dropped. - Dangling live type references with valid snapshots are preserved rather than remapped. - No previous-version upgrade command is changed. - The command is idempotent after the legacy field has been removed. ## Validation - 2.35 command, renderer-drop, and upgrade-shape Jest: 3 suites / 10 tests passed. - Focused timeline frontend Jest: 4 suites / 22 tests passed. - Shared standard-object identifier snapshot Jest: passed. - Server standard-object related-ID snapshot Jest: passed. - Full server lint/format: passed; one pre-existing unrelated unused-import warning remains. - Direct `twenty-shared` `tsgo`: passed. - Direct server `tsgo` reached only missing dependent workspace build artifacts (`twenty-emails`, `twenty-sdk`, and generated SDK output); no changed-file diagnostic was emitted. - `git diff --check`: passed. Relates to twentyhq/core-team-issues#2785.
F
Félix Malfait committed
d231a540feab441c95640b7aa34c271825259df0
Parent: d4ba07f
Committed by GitHub <noreply@github.com>
on 8/25/2026, 1:44:28 PM