mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-29 14:37:44 +02:00
- inbox.go: precise wording on legacy cap semantics — it's 200 distinct *issues* (newest entry per issue), not 200 raw rows. Same for the unread-badge degradation note. Add structured slog at the legacy entrypoint with X-Client-Platform / X-Client-Version so we can track install-base on the legacy contract (cf. MUL-1795 A1 follow-up). - client.ts: listInbox always sends ?limit, defaulting to 50 when no param is passed. The server identifies legacy callers by the absence of every pagination param; if a future filter (e.g. ?status=unread) ships without a default limit, it would otherwise fall into the legacy 200-cap branch by accident. - schemas.ts: comment why dedup transform's localeCompare on created_at is correct (RFC3339 strings are lexicographically ordered). - inbox_test.go: fetchInboxLegacy now asserts the response body starts with '[' so a future refactor that wraps the legacy body silently cannot pass these tests. Add TestListInbox_LegacyDedupBeforeCap to pin the dedup-then-cap interaction (250 same-issue items collapse to 1 row, not fill the 200 cap). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>