Stories: 1, 2, 3
TDD: no
Containment: exempt (flag retirement — no new user-facing surface; behavior already live at serves:on)
What to build
Retire the released pano-base-feed flag (base-feed/viewer-overlay split (#2322, epic #2316 leg B)), which serves on@100% in prod. Rip its FlagGate/useFlag consumers and the now-dead fallback code path so only the live path remains; delete the flag's IaC declaration in apps/web/worker/features/flagship/resources.ts and its key constant in apps/web/src/flags/keys.ts; remove the flag's own FlagGate/fallback tests. Removing this key retires the split seam itself — the base feed + PostOverlay become the unconditional source of truth.
Confirm the graduate verdict for this key before ripping (per ADR 0136 — machine nominates, human confirmed the set at Gate 1). Out of scope: any other flag in the batch (each is its own child), and any behavior change — the live path stays byte-for-byte what serves:on already delivers.
Acceptance criteria
Stories: 1, 2, 3
TDD: no
Containment: exempt (flag retirement — no new user-facing surface; behavior already live at serves:on)
What to build
Retire the released
pano-base-feedflag (base-feed/viewer-overlay split (#2322, epic #2316 leg B)), which serveson@100%in prod. Rip itsFlagGate/useFlagconsumers and the now-dead fallback code path so only the live path remains; delete the flag's IaC declaration inapps/web/worker/features/flagship/resources.tsand its key constant inapps/web/src/flags/keys.ts; remove the flag's ownFlagGate/fallback tests. Removing this key retires the split seam itself — the base feed + PostOverlay become the unconditional source of truth.Confirm the graduate verdict for this key before ripping (per ADR 0136 — machine nominates, human confirmed the set at Gate 1). Out of scope: any other flag in the batch (each is its own child), and any behavior change — the live path stays byte-for-byte what
serves:onalready delivers.Acceptance criteria
pano-base-feedFlagGate/useFlagconsumers and the dead fallback branch are removed; only the live path remains.flagship/resources.tsand its key constant inflags/keys.tsare deleted; no reference topano-base-feedremains anywhere underapps/web/(grep-clean).FlagGate/fallback tests are removed; the feature's existing behavior tests stay green (live path unchanged).pnpm typecheckandpnpm lintare clean.