Problem Statement. Legacy /ai/* paths exist alongside /v1/ai/*. The webhook in
swagger.config.ts says "deprecated" but no Sunset header is emitted.
Why it matters. Consumers (the mobile + frontend) get no machine-readable signal to
migrate.
Technical Context. RFC 8594 Sunset and Deprecation headers.
Expected Outcome.
- Legacy handlers emit
Sunset: <RFC 1123 date> (e.g. Sunset: Wed, 01 Oct 2026 00:00:00 GMT) and Deprecation: true.
- A configurable
LEGACY_RETIREMENT_DATE env renders the header.
Acceptance Criteria.
- A test asserts both headers on every
/ai/* route.
- Backwards compatibility preserved (still 308s to /v1/ai/*).
Files or modules likely to be affected.
app/ai-service/main.py.
Difficulty. Easy
Estimated effort. XS
Backlog item #58 from `docs/maintainer-issue-backlog.md.
Problem Statement. Legacy
/ai/*paths exist alongside/v1/ai/*. The webhook inswagger.config.ts says "deprecated" but no
Sunsetheader is emitted.Why it matters. Consumers (the mobile + frontend) get no machine-readable signal to
migrate.
Technical Context. RFC 8594
SunsetandDeprecationheaders.Expected Outcome.
Sunset: <RFC 1123 date>(e.g.Sunset: Wed, 01 Oct 2026 00:00:00 GMT) andDeprecation: true.LEGACY_RETIREMENT_DATEenv renders the header.Acceptance Criteria.
/ai/*route.Files or modules likely to be affected.
app/ai-service/main.py.Difficulty. Easy
Estimated effort. XS
Backlog item #58 from `docs/maintainer-issue-backlog.md.