Problem Statement. app/ai-service/exceptions.py::AIServiceError carries a code
field. It's freeform — code is a string without validation.
Technical Context. Same as #41 on backend.
Expected Outcome. A ErrorCode enum in app/ai-service/schemas/errors.py. The
enum is the only allowed source of truth.
Acceptance Criteria.
- Tests pin all currently used codes;
INVALID_CODE_USAGE raises at boot if any random
string is passed.
Files or modules likely to be affected.
app/ai-service/exceptions.py,
app/ai-service/schemas/errors.py.
Dependencies. #41.
Difficulty. Easy
Estimated effort. S
Backlog item #76 from `docs/maintainer-issue-backlog.md.
Problem Statement.
app/ai-service/exceptions.py::AIServiceErrorcarries acodefield. It's freeform —
codeis a string without validation.Technical Context. Same as #41 on backend.
Expected Outcome. A
ErrorCodeenum inapp/ai-service/schemas/errors.py. Theenum is the only allowed source of truth.
Acceptance Criteria.
INVALID_CODE_USAGEraises at boot if any randomstring is passed.
Files or modules likely to be affected.
app/ai-service/exceptions.py,app/ai-service/schemas/errors.py.Dependencies. #41.
Difficulty. Easy
Estimated effort. S
Backlog item #76 from `docs/maintainer-issue-backlog.md.