Home: notification-service decision range D1-D31 (REST API + name enrichment, PR #205)
docs: D3 TRD — logout denylist + API gateway (#151) now in review as PR #176 D2-carryover entries updated: status flowchart (LOGOUT moves from Deferred to in-review), Kwey's allocation row, the architecture-slice and Part 4 §5 "no gateway" statements (superseded by the gateway cutover), and the demo prep lines. Decisions G1-G10 cited from docs/gateway.md; transcription only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs(D3): align Credit content with issue #169 (lot return, lot_id, configurable amounts, operation logs) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(D3): align Credit content with docs/credit-service.md (saga, get-or-create, read API) Architecture slice, Part 1 §3 and §6, Part 2 §1-§5, Part 3 §1 and §3, the demo row and open items that depended on the earlier synchronous design. Transcribed from docs/credit-service.md (PR #163), PR #166 and PR #168; Order-side consequences are flagged, not decided. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(D3): D3 design writeup (Order/Credit/async/containers/N2H), demo-script skeleton, Home links Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs(D2): status refresh for merged #143/#150/#153/#155 and the live /admin link
Updated D2 Design User and Supplier Services (markdown)
docs(D2): admin dashboard shows Users only for now (PR #158)
Part 1 §3: record PR #150's pending-sign-up decisions - who may resend a pending sign-up (same details only; 409 otherwise; expired rows takeable; 429 inside the cooldown), with the two rejected orderings and why - a resend keeps the original expiry, so a row's life is bounded by the TTL and always becomes takeable - verify discards a row whose email/username was taken meanwhile - SignupResponse gains resendInSeconds for the SPA's resend button - the OTP dialog shipped in #150 as the sign-up/OTP half of #109
docs(D2): request protection flow in User §5 Authentication, authorization, validation and optimistic locking for the endpoints that change an account, checked against the code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(D2): protected fields and examples in User §5 How the user ID, role and account status are kept out of clients' reach, written from the code, with seven examples run against the live stack. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(D2): owner setup, promotion and admin access in User §6 Owner-setup and promotion subsections written from the code, a table on whether a normal user can reach the promote API or /admin, and two corrections: the setup token does not expire, and setup calls are not audit-logged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(D2): rewrite for readability per team meeting — decisions folded in, FR/NFR tags, response types, demo curl script Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs(D2): rubric audit vs MilestoneD2 instructions — coverage table + asked-for justifications Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs: migrate D2 design doc from Lark; refresh against PR record #118–#150 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>