Commit 03db5a2
committed
fix(console): read the SETTINGS_LOCKED key from
`SettingsView.onSave` rendered its lock toast from `err.payload.error.key`.
That key was a SIBLING of `code`/`message` inside `error`, a position
`ApiErrorSchema` never declared — it reached the console only because the
schema is a plain `z.object` and strips undeclared keys instead of rejecting
them, so nothing on either side of the wire ever flagged it.
objectstack#4224 moves it to `error.details.key`, the slot the contract does
declare. This is the console's half and ships FIRST: the read is now the
declared slot with the old position as fallback, so the toast keeps naming the
locked key against servers on either side of that change rather than degrading
to "Locked by environment: undefined" during the window where the two repos are
on different versions. The fallback goes once the oldest supported server
carries the fix.
It lives in `settings/api.ts` as `lockedKeyOf` rather than inline in the view,
because that module already owns what the server's error body looks like
(`jsonOrThrow` is what builds `err.payload`) and because a compat shim no test
exercises is one the next reader deletes half of. Both branches are pinned, so
removing either is a red test naming the server version it breaks.
Also stops interpolating a missing key: with neither position carrying one the
toast reads "Locked by environment" rather than appending `undefined`.
This was the only in-console reader of the four keys objectstack#4224
relocated — a repo-wide grep for `namespace` / `reason` / `fields` in that
position finds no consumer.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tv2NYMBTrzVVRWiWWuyec5error.details, tolerating both shapes (objectstack#4224)1 parent 97c72a0 commit 03db5a2
4 files changed
Lines changed: 125 additions & 2 deletions
File tree
- .changeset
- apps/console/src/pages/settings
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
131 | | - | |
132 | | - | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
133 | 137 | | |
134 | 138 | | |
135 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
31 | 60 | | |
32 | 61 | | |
33 | 62 | | |
| |||
0 commit comments