Skip to content

Commit 205dcb3

Browse files
committed
docs: the batch-2 changeset covers trigger-api, plugin-approvals and the new guard
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MaSQn77TT5fUgHK9CesaDK
1 parent cf335cb commit 205dcb3

1 file changed

Lines changed: 32 additions & 14 deletions

File tree

.changeset/adr-0112-batch-2-lowercase-sweep.md

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
"@objectstack/runtime": minor
55
"@objectstack/cloud-connection": minor
66
"@objectstack/plugin-auth": minor
7+
"@objectstack/plugin-approvals": minor
78
"@objectstack/plugin-webhooks": minor
89
"@objectstack/service-messaging": minor
910
"@objectstack/service-automation": minor
1011
"@objectstack/metadata-protocol": minor
1112
"@objectstack/metadata-core": minor
13+
"@objectstack/trigger-api": minor
1214
"@objectstack/hono": minor
1315
---
1416

@@ -23,26 +25,42 @@ conditions collapse onto the standard catalog rather than keeping a synonym:
2325
`unauthorized`/`unauthenticated``UNAUTHENTICATED`, `forbidden`
2426
`PERMISSION_DENIED`, `not_found``RESOURCE_NOT_FOUND`, `internal`
2527
`INTERNAL_ERROR`, `unavailable``SERVICE_UNAVAILABLE`, `not_supported`
26-
`NOT_IMPLEMENTED`, `bad_request``INVALID_REQUEST`. Domain conditions get
27-
codes registered in `ERROR_CODE_LEDGER` (`MARKETPLACE_STORAGE_FAILED`,
28+
`NOT_IMPLEMENTED`, `bad_request``INVALID_REQUEST`. Domain conditions get codes
29+
registered in `ERROR_CODE_LEDGER` (`MARKETPLACE_STORAGE_FAILED`,
2830
`PLUGIN_MANIFEST_INVALID`, `ITEM_LOCKED`, `DELIVERY_NOT_ELIGIBLE`, …). Swept:
2931
`cloud-connection`, `plugin-auth`, `hono`, `metadata-protocol`, `rest`,
30-
`service-messaging`, `service-automation`.
32+
`service-messaging`, `service-automation`, `trigger-api`.
3133

32-
**Three routes stop putting a code in the message slot.** The webhook redeliver
33-
route and two `rest` routes answered `{ success: false, error: '<code>',
34-
message }` — the code occupying `error`, the declared object envelope nowhere.
35-
They now emit `error: { code, message }`. Clients reading `body.error` as a
36-
string on these routes must read `body.error.code`.
34+
Branch on `error.code` values rather than pattern-matching their case: the
35+
console's fix for the same rename (objectui#2977) reads codes case-insensitively
36+
for exactly this reason, and that is the pattern to copy in your own consumers if
37+
you support servers on both sides of the change.
38+
39+
**Four routes stop putting a code in the message slot.** The webhook redeliver
40+
route, the API-trigger webhook, and two `rest` routes answered
41+
`{ success: false, error: '<code>', message }` — the code occupying `error`, the
42+
declared object envelope nowhere. They now emit `error: { code, message }`, and
43+
three API-trigger branches gained a message they never had. Clients reading
44+
`body.error` as a string on those routes must read `body.error.code`.
3745

3846
**`ConnectorErrorCategory` / `ConnectorRetryStrategy`** (ADR-0112 D9a):
3947
`@objectstack/spec` exported two mutually incompatible `ErrorCategory` types and
4048
two `RetryStrategy` types. The connector-side pair is renamed; importers of the
4149
`integration` subpath update the name. Side effect: the api-side `ErrorCategory`
42-
and `RetryStrategy` now appear in the generated API reference at all — the
43-
name collision had been silently dropping them.
50+
and `RetryStrategy` now appear in the generated API reference at all — the name
51+
collision had been silently dropping them.
52+
53+
**`OAUTH_REGISTER_FAILED` replaces an unbounded code source.** The OAuth client
54+
registration route put better-auth's arbitrary `body.error` string straight into
55+
`error.code`. The code is now ours and the upstream discriminator moved to
56+
`details.upstreamError`.
57+
58+
**Not swept, deliberately.** `sys_metadata_audit.code` keeps its lowercase values
59+
(ADR-0112 D6b): it is persisted audit history, and the same column holds
60+
non-error outcomes (`ok`, `lock_override`). Diagnostics records that ship inside a
61+
200 keep theirs (D6c), as do field-level codes (D6, #3977) and the CLI's
62+
`--json` output contract.
4463

45-
**Not swept, deliberately.** `sys_metadata_audit.code` keeps its lowercase
46-
values (ADR-0112 D6b): it is persisted audit history, and the same column holds
47-
non-error outcomes (`ok`, `lock_override`). Field-level codes stay as they are
48-
(D6, #3977).
64+
A `check:error-code-casing` CI guard now fails on a new lowercase literal in a
65+
code position, since the ledger's casing rule can only police codes that someone
66+
registers.

0 commit comments

Comments
 (0)