diff --git a/docs/adr/040-timeline-domain-data-model.md b/docs/adr/040-timeline-domain-data-model.md index 5ae61f17..30f5767a 100644 --- a/docs/adr/040-timeline-domain-data-model.md +++ b/docs/adr/040-timeline-domain-data-model.md @@ -109,4 +109,7 @@ the event intact (V71/ADR-032 hardening — a person delete must never 500). - The `timeline → document.DatePrecision` compile coupling is permanent until a shared-package refactor; precedent already exists (`importing/DocumentImporter`, `person`). - The service/controller/DTO layer (#775) inherits the view-assembly, optimistic-lock - translation, forgery-guard, and permission obligations recorded above. + translation, forgery-guard, and permission obligations recorded above. It must also add a + service-level title-length check (new `ErrorCode`, e.g. `TIMELINE_TITLE_TOO_LONG`, mirroring + `GESCHICHTE_TITLE_TOO_LONG`) — `title` is `VARCHAR(255)`, and without the guard an over-long + title surfaces as a raw `DataIntegrityViolationException` → HTTP 500.