Commit 8f60e9b
docs(modularization): D10 spec amendment — back-align §G D10.e cursor error codes to §C.3 canonical (#1710)
Per [D10 spec amendment] thread (Bryce msg=441c5e56 + PM msg=40e98684 +
architect 双签):
§G D10.e Deliverable summary (line 1115) had 6 SCREAMING_SNAKE codes that
did not match §C.3 body's 6 snake_case codes. The §G summary was a drafting
slip from the rushed §G decomposition amendment commit (36b5835); §C.3 body
remains the canonical source because:
1. Casing — wire format is snake_case to match the rest of the ApeRAG API
surface (existing error codes use snake_case in JSON wire format).
2. Granularity — §C.3 body splits invariant violation into 3 distinct
codes (cursor_filter_mismatch / cursor_tenant_mismatch /
cursor_index_changed) because line 567-571 maps DIFFERENT client
recovery paths to each:
- cursor_filter_mismatch → client bug, surface to user
- cursor_tenant_mismatch → security violation, distinct telemetry
- cursor_index_changed → backend ops issue, retry from null
Collapsing them into a single cursor_invariant_mismatch would lose
this distinction and force clients to over-react.
3. CURSOR_FOREIGN and CURSOR_PAGE_OUT_OF_RANGE in §G summary did not
appear in §C.3 body and had no client-recovery path defined — they
were drafting noise, not real codes.
§G D10.e summary now cites §C.3 verbatim and points readers at the §C.3
body for the client-recovery mapping (single source of truth).
Doc-only change. No implementation impact. Unblocks task #97 (D10.e
cursor errors.py).
Co-authored-by: 符炫炜 <fuxuanwei@apecloud.io>1 parent 7e4b17f commit 8f60e9b
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1112 | 1112 | | |
1113 | 1113 | | |
1114 | 1114 | | |
1115 | | - | |
| 1115 | + | |
1116 | 1116 | | |
1117 | 1117 | | |
1118 | 1118 | | |
| |||
0 commit comments