doc clean up phase 2

This commit is contained in:
hamid
2026-07-30 12:49:46 +03:30
parent c889c46110
commit c841bded26
36 changed files with 2970 additions and 51 deletions
+28 -1
View File
@@ -1,4 +1,29 @@
# Contracts — the shared interface between `client/` and `server/`
# Contracts — MOVED to `docs/integration/`
> ## ⛔ This folder is history. Do not read it as the contract.
>
> **The live client↔server contract is [`docs/integration/`](../../docs/integration/index.md).** Start at
> its [index.md](../../docs/integration/index.md) — the whole seam on one page — then open the one
> [domain file](../../docs/integration/domains/index.md) you need.
>
> | Was here | Now |
> | --- | --- |
> | `conventions/api-conventions.md` + `conventions/money-and-types.md` | [`docs/integration/api-contract.md`](../../docs/integration/api-contract.md) |
> | `domains/*.md` (17 files, named after backend phases) | [`docs/integration/domains/`](../../docs/integration/domains/index.md) (22 files, named after the client's `services/` domains) |
> | `openapi/swagger.v1.json` (2026-07-13) | [`docs/integration/openapi/`](../../docs/integration/openapi/README.md) (refreshed 2026-07-29) |
>
> Everything here was **frozen 2026-07-13** and has been superseded. It was audited against the live
> swagger during phase 2: the route-level content held up (no route named here is missing from the live
> API), but the body-casing rule, the server's local URL scheme, the envelope's field count and the enum
> vocabularies had all drifted. What changed and why:
> [domains/index.md § What replaced what](../../docs/integration/domains/index.md#what-replaced-what).
>
> Phase 6 archives this folder. Until then it stays readable **as a record**, not as an instruction.
---
<details>
<summary>The original README, kept for the record</summary>
The two projects are independent (no shared build). This folder is their **single shared source of
truth** for everything that crosses the wire: API routes, request/response shapes, status codes, enums,
@@ -43,3 +68,5 @@ shared flows, and money/format conventions. It lets a frontend agent build again
> Keep contracts **versioned by being honest**: when a shipped shape changes, update its `domains/*` doc
> and the OpenAPI snapshot in the same change, and call it out in the handoff so the frontend re-syncs.
</details>
+17
View File
@@ -1,3 +1,20 @@
# messaging — MERGED into `docs/integration/domains/`
> ⛔ **This headerless 851-byte fragment silently amended
> [`messaging-notifications-admin.md`](messaging-notifications-admin.md) next to it** — two live files
> describing one domain, which is contradiction **C-8**.
>
> Both are superseded. Phase 2 split the merged content three ways, along the client's actual domain
> boundaries:
>
> | Content | Now |
> | --- | --- |
> | Tickets, threads, messages, `is_internal`, the staff queue | [`docs/integration/domains/tickets.md`](../../../docs/integration/domains/tickets.md) |
> | The notification feed and unread badge | [`docs/integration/domains/notifications.md`](../../../docs/integration/domains/notifications.md) |
> | Platform config, holidays, audit, support alerts | [`docs/integration/domains/admin.md`](../../../docs/integration/domains/admin.md) |
>
> Every REQ-028 amendment below is folded into `tickets.md` as current fact, not as a change log. Phase 6
> archives this folder; until then, read it as a record.
---
+13 -1
View File
@@ -1,4 +1,16 @@
# OpenAPI snapshots
# OpenAPI snapshots — MOVED to `docs/integration/openapi/`
> ⛔ **The `swagger.v1.json` in this folder is the 2026-07-13 snapshot and is stale.** The current one is
> [`docs/integration/openapi/`](../../../docs/integration/openapi/README.md) (2026-07-29, 178 paths / 186
> operations), with its provenance and regeneration steps recorded there.
>
> The claim below that the server "publishes documents `v1`, `v1.1`" is literally true and substantively
> empty: both documents are registered, but all 55 controllers are `[ApiVersion("1")]`, so the `v1.1`
> document contains **zero paths** (contradiction **C-9**, resolved in phase 2).
>
> Phase 6 archives this folder. Until then, read it as a record.
---
The server already generates OpenAPI via **NSwag** (Swagger UI at `/swagger`, documents `v1`, `v1.1`).
This folder holds the **published `swagger.json` snapshot(s)** so the frontend can generate/verify types