Context
PR #4008 added two 3.0.x-only workarounds for the `@adcp/client@5.21.1` controller-seeding gap (the SDK on this branch doesn't implement the `controller_seeding: true` + `fixtures.products` pathway that v6 added):
- Four static catalog aliases in `server/src/training-agent/product-factory.ts`:
- `sports_preroll_q2_guaranteed` → `viewpoint_sports`
- `outdoor_ctv_q2_guaranteed` → `viewpoint_sports`
- `primetime_30s_mf` → `viewpoint_sports`
- `late_fringe_15s_mf` → `viewpoint_sports`
- Workflow exclusion of `specialisms/sales-guaranteed/index.yaml` in `.github/workflows/training-agent-storyboards.yml`
When to act
Remove both workarounds together when either:
- The 3.0.x maintenance branch retires (per the cadence policy), OR
- 3.0.x bumps its SDK pin from `@adcp/client@5.x` to `@adcp/sdk@v6+` (unlikely on a maintenance branch but possible)
Why removable
Main resolves the same scenarios cleanly via the v6 `controller_seeding` pathway — no aliases or workflow exclusion needed. Once 3.0.x's SDK supports that pathway too, the aliases are dead code and the exclusion masks no real failure.
Test before removal
After deleting the four aliases + the workflow exclusion, the storyboard CI on 3.0.x must run `sales_guaranteed` and `sales_broadcast_tv` clean without `PRODUCT_NOT_FOUND` (which is what the workarounds were hiding).
Context
PR #4008 added two 3.0.x-only workarounds for the `@adcp/client@5.21.1` controller-seeding gap (the SDK on this branch doesn't implement the `controller_seeding: true` + `fixtures.products` pathway that v6 added):
When to act
Remove both workarounds together when either:
Why removable
Main resolves the same scenarios cleanly via the v6 `controller_seeding` pathway — no aliases or workflow exclusion needed. Once 3.0.x's SDK supports that pathway too, the aliases are dead code and the exclusion masks no real failure.
Test before removal
After deleting the four aliases + the workflow exclusion, the storyboard CI on 3.0.x must run `sales_guaranteed` and `sales_broadcast_tv` clean without `PRODUCT_NOT_FOUND` (which is what the workarounds were hiding).