SIGN IN SIGN UP

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