Skip to content

Commit e88336a

Browse files
bfoss765claude
andcommitted
docs(ffi): code 29 is live under #4361; retire every stale code-38 frontier reference
The registry called 29 lapsed, but #4361's head declares ErrorAssetLockInsufficientFunds = 29 — the typed asset-lock shortfall carried the allocation forward when #4316 closed. Row 29 now records the live owner and lineage. The remaining instructions that still pointed PR #3968 (and any new allocation) at the obsolete 38 frontier now point at the frontier note, and the 2026-08-04 verification checklist is date-stamped as the historical snapshot it is. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 56759f3 commit e88336a

1 file changed

Lines changed: 22 additions & 16 deletions

File tree

packages/rs-platform-wallet-ffi/ERROR_CODE_REGISTRY.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,14 @@ These are shipped ABI. Do not renumber.
112112
| 99 | `ErrorUnknown` | Sentinel — unmapped/flattened errors |
113113

114114
**Next allocatable integer: 42** — 27–41 are all claimed (27, 31, 34–41
115-
merged; 28–30, 32 and 33 reserved). **28–30, 32 and 33 are RESERVED, not
116-
free**: 28 and 30 were vacated when the reservation trio moved to 34–36; 29,
117-
32 and 33 lapsed when their in-repo owners (#4316, #4310, #4311) closed
118-
without merging. All five are deliberately left unclaimed rather than
119-
back-filled, so no number is reused within a single review cycle. Rule 1's
120-
"do not reuse a gap unless this file marks it free" applies — this file does
121-
**not** mark any of them free, so the frontier is the only allocation source
122-
and a new code takes 42.
115+
merged; 29 proposed by active #4361; 28, 30, 32 and 33 reserved). **28, 30,
116+
32 and 33 are RESERVED, not free**: 28 and 30 were vacated when the
117+
reservation trio moved to 34–36; 32 and 33 lapsed when their in-repo owners
118+
(#4310, #4311) closed without merging. All four are deliberately left
119+
unclaimed rather than back-filled, so no number is reused within a single
120+
review cycle. Rule 1's "do not reuse a gap unless this file marks it free"
121+
applies — this file does **not** mark any of them free, so the frontier is
122+
the only allocation source and a new code takes 42.
123123

124124
## Proposed allocations (open PRs)
125125

@@ -131,23 +131,26 @@ fork-era PRs that originally held these allocations (#4184, #4185, #4204,
131131
plus #4247 and #4256) were closed and recreated in-repository per repo
132132
policy. Of the successors: #4308 **merged** (the trio, 34–36 — now in the
133133
merged table); three others — #4316, #4310 and #4311**closed without
134-
merging** (29, 32, 33 lapse to RESERVED); and #4313 (the shielded-invite
134+
merging** (32 and 33 lapse to RESERVED; 29 is carried live by #4361, which
135+
holds the typed shortfall today); and #4313 (the shielded-invite
135136
claim) lost 37 to merged #4348 and takes the frontier when it revives.
136137
Fork-era numbers remain in the collision history, which is immutable record.
137138

138139
| Code | Name | Owning PR | Status |
139140
| ---: | --- | --- | --- |
140141
| 28 | *(reserved — vacated)* || Vacated by #4185/#4256 on 2026-08-02; RESERVED, not reissuable — the next-free frontier is the only allocation source |
141-
| 29 | *(reserved — lapsed)* | | Owner #4316 (successor of fork-era #4184) closed 2026-08-11 without merging; RESERVED, not reissuable |
142+
| 29 | `ErrorAssetLockInsufficientFunds` | #4361 | In review — **keeps 29**. Lineage: fork-era #4184#4316 (closed unmerged) → carried live by #4361's typed asset-lock shortfall (`ErrorAssetLockInsufficientFunds = 29` at its head) |
142143
| 30 | *(reserved — vacated)* || Vacated by #4185/#4256 on 2026-08-02; RESERVED, not reissuable — the next-free frontier is the only allocation source |
143144
| 32 | *(reserved — lapsed)* || Owner #4310 (successor of fork-era #4247) closed without merging; RESERVED, not reissuable |
144145
| 33 | *(reserved — lapsed)* || Owner #4311 (successor of fork-era #4256) closed without merging; RESERVED, not reissuable |
145146
| 37→(frontier) | `ErrorShieldedInviteAlreadyClaimed` | #4313 | On hold — its claim of 37 (a 32 → 37 move; successor of fork-era #4204) was **taken by merged #4348** (`ErrorDocumentNotForSale = 37`, ABI since 2026-08-09). It holds **no number** while on hold: on revival it renumbers its Rust discriminant and Swift/Kotlin mappings to whatever this file's frontier is at that moment, recording the claim here first. 42 stays the public frontier until then |
146147

147148
**Code 31 left this table on 2026-08-04.** `ErrorSigningKeyUnavailable` sat here
148149
as #4183's proposal until #4183 merged (`189a3abb1c`); it is now in the merged
149-
table above and rule 3 applies to it in full. Nothing else in this table has
150-
merged, and the frontier is unchanged at 38.
150+
table above and rule 3 applies to it in full. It has since had company: the
151+
reservation trio (34–36, #4308) and the 37–41 block (#4348, #4360) also
152+
merged out of proposal, and the frontier now sits at 42 — see the merged
153+
table and the frontier note above.
151154

152155
PRs that touch `rs-platform-wallet-ffi` but claim **no** new code, verified
153156
2026-08-04 against each PR's file list and the `error.rs` at its head (a
@@ -230,8 +233,9 @@ which merged 27 into `v4.2-dev` on 2026-08-02. See the collision history below.
230233
PR `#3968` is the serious one: rule 3 forbids renumbering a code that has
231234
shipped, and `ErrorTransactionBroadcastRejected = 26` is merged ABI. Moving it
232235
to 28 would silently reinterpret every 26 an already-compiled host returns.
233-
PR #3968 must keep 26 where it is and take fresh integers **from the frontier
234-
(38+)** for its two persister codes. Its 27 is now doubly wrong: 27 is merged
236+
PR #3968 must keep 26 where it is and take fresh integers **from the
237+
frontier (42+ as of 2026-08-11 — check the frontier note above)** for its two
238+
persister codes. Its 27 is now doubly wrong: 27 is merged
235239
ABI (`ErrorShutdownIncomplete`), so rule 3 protects it too. Note that 28 is
236240
reserved, not free — it is not available to #3968 either.
237241

@@ -388,7 +392,7 @@ The detail behind those rows:
388392
simply the merged base's, and there is no second claim to reconcile.
389393

390394
PR `#3968` needs a rebase onto current `v4.2-dev` **and** fresh integers from
391-
the frontier (**38+**). It must leave 26 alone; 27 is no longer available to it
395+
the frontier (**42+**, per the frontier note above). It must leave 26 alone; 27 is no longer available to it
392396
either (merged ABI now), and neither are the reserved 28 and 30.
393397

394398
### 26 — RESOLVED: #4196 restacked onto #4185 and is on 34 / 35 / 36
@@ -555,7 +559,9 @@ ABI. Each of those four SHAs is the **merge commit on `v4.2-dev`**, confirmed by
555559
The 2026-08-04 pass re-read the discriminants directly, in-tree and at the
556560
*current* head of every open PR that touches `error.rs`, `DashSdkError.kt` or
557561
`PlatformWalletResult.swift`, and separately re-checked each PR's file list. It
558-
confirmed:
562+
confirmed — a **2026-08-04 verification snapshot, retained as record** (the
563+
merged table and frontier note above are the current state; 34–41 have merged
564+
since and the frontier is 42):
559565

560566
* in-tree at `97904ed2fc`, `error.rs` runs 0–27 contiguously and then **31**,
561567
with 28, 29, 30 and everything from 32 up absent. So 31 is the only number

0 commit comments

Comments
 (0)