Skip to content

Commit 6738c99

Browse files
committed
chore(spec): regenerate the error-code reference docs and shrink the prose-id baseline for the fourteen registrations
check:docs proved content/docs/references/api/{contract,error-code-ledger}.mdx stale against the widened ledger (the ErrorCode union grows by fourteen, the ledger page lists the fourteen rows); check:generated --fix regenerated only that one artifact. check:doc-authoring's prose-id baseline over-pinned the vocabulary module for two ids whose only carriers were the fourteen boot-refusal rows that ratcheted out; the shrink-only census re-derives it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016N6xmWt5hYm94ffVEwGH8x
1 parent b3269d5 commit 6738c99

3 files changed

Lines changed: 37 additions & 7 deletions

File tree

content/docs/references/api/contract.mdx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const result = ApiErrorSchema.parse(data);
2727

2828
| Property | Type | Required | Description |
2929
| :--- | :--- | :--- | :--- |
30-
| **code** | `Enum<'VALIDATION_ERROR' \| 'INVALID_FIELD' \| 'MISSING_REQUIRED_FIELD' \| 'INVALID_FORMAT' \| 'VALUE_TOO_LONG' \| 'VALUE_TOO_SHORT' \| 'VALUE_OUT_OF_RANGE' \| … +308 more>` || Error code (e.g. VALIDATION_ERROR; StandardErrorCode ∪ the ledger the serving side registers — ERROR_CODE_LEDGER for framework packages) |
30+
| **code** | `Enum<'VALIDATION_ERROR' \| 'INVALID_FIELD' \| 'MISSING_REQUIRED_FIELD' \| 'INVALID_FORMAT' \| 'VALUE_TOO_LONG' \| 'VALUE_TOO_SHORT' \| 'VALUE_OUT_OF_RANGE' \| … +322 more>` || Error code (e.g. VALIDATION_ERROR; StandardErrorCode ∪ the ledger the serving side registers — ERROR_CODE_LEDGER for framework packages) |
3131
| **declaredCode** | `string` | optional | The producer-declared code, verbatim, when it is not a member of the closed `code` vocabulary — the open, author-authored channel (app-specific spellings; ADR-0112) |
3232
| **message** | `string` || Readable error message |
3333
| **userMessage** | `string` | optional | Producer-marked user-facing refusal text, verbatim. Present exactly when the producer opted in at throw time; consumers render it to end users and keep their generic substitution for anything unmarked. Status-agnostic; never replaces `message`. |
@@ -141,6 +141,8 @@ const result = ApiErrorSchema.parse(data);
141141
* `DOMAIN_VERIFICATION_DISABLED`
142142
* `DOMAIN_VERIFICATION_FAILED`
143143
* `DRIVER_UNAVAILABLE`
144+
* `DUPLICATE_ARTIFACT_OBJECT_NAME`
145+
* `DUPLICATE_ARTIFACT_PACKAGE`
144146
* `DUPLICATE_REQUEST`
145147
* `DUPLICATE_SOURCE_NOT_A_BASE`
146148
* `ELIGIBILITY_UNEVALUABLE`
@@ -195,6 +197,8 @@ const result = ApiErrorSchema.parse(data);
195197
* `IMPORT_JOB_CREATE_FAILED`
196198
* `IMPORT_ROW_FAILED`
197199
* `INTERNAL`
200+
* `INVALID_ARTIFACT_PACKAGES`
201+
* `INVALID_ARTIFACT_PACKAGE_ENTRY`
198202
* `INVALID_EMAIL`
199203
* `INVALID_EXPIRY`
200204
* `INVALID_METADATA`
@@ -221,17 +225,21 @@ const result = ApiErrorSchema.parse(data);
221225
* `MARKETPLACE_PROXY_FAILED`
222226
* `MARKETPLACE_STORAGE_FAILED`
223227
* `MARKETPLACE_UNAVAILABLE`
228+
* `MEMORY_MULTI_TENANT_UNSUPPORTED`
224229
* `METADATA_BRANCH`
225230
* `METADATA_CONFLICT`
226231
* `METADATA_NOT_FOUND`
227232
* `METADATA_SCHEMA_INVALID`
233+
* `MIXED_ARTIFACT_COLLECTION_SHAPE`
234+
* `MONGODB_MULTI_TENANT_UNSUPPORTED`
228235
* `MULTI_UPDATE_HOOK_KEY_DIVERGENCE`
229236
* `NAMESPACE_CONFLICT`
230237
* `NAMESPACE_PREFIX`
231238
* `NEEDS_PASSWORD`
232239
* `NODE_FAILURE`
233240
* `NOTHING_TO_PURGE`
234241
* `NOT_ATTEMPTED`
242+
* `NOT_COMPENSABLE`
235243
* `NOT_CREATABLE`
236244
* `NOT_FOUND`
237245
* `NOT_OVERRIDABLE`
@@ -241,6 +249,7 @@ const result = ApiErrorSchema.parse(data);
241249
* `NO_IDENTITY`
242250
* `NO_MATCH`
243251
* `NO_PENDING_VERIFICATION`
252+
* `NO_SUCH_RUN`
244253
* `OAUTH_REGISTER_FAILED`
245254
* `OBJECT_API_DISABLED`
246255
* `OBJECT_API_METHOD_NOT_ALLOWED`
@@ -260,10 +269,13 @@ const result = ApiErrorSchema.parse(data);
260269
* `PAYLOAD_TOO_LARGE`
261270
* `PERMISSION_NOT_ALLOWED`
262271
* `PHONE_NOT_ENABLED`
272+
* `PLAN_CHANGED`
273+
* `PLUGIN_CONTRACT_VIOLATION`
263274
* `PLUGIN_INSTALL_FAILED`
264275
* `PLUGIN_MANIFEST_INVALID`
265276
* `PLUGIN_REGISTER_FAILED`
266277
* `PLUGIN_UI_REQUIRED_KEY_MISSING`
278+
* `PREFLIGHT_FAILED`
267279
* `PROJECT_MEMBERSHIP_REQUIRED`
268280
* `PROJECT_NOT_FOUND`
269281
* `PROJECT_PROVISIONING`
@@ -302,6 +314,7 @@ const result = ApiErrorSchema.parse(data);
302314
* `SCHEDULES_LIST_FAILED`
303315
* `SCHEDULE_DELETE_FAILED`
304316
* `SELF_REGISTRATION_CLOSED`
317+
* `SERVICE_NOT_REGISTERED`
305318
* `SETTINGS_ACTION_FAILED`
306319
* `SETTINGS_CRYPTO_UNAVAILABLE`
307320
* `SETTINGS_ENGINE_NOT_BOUND`
@@ -351,6 +364,7 @@ const result = ApiErrorSchema.parse(data);
351364
* `VALIDATION_FAILED`
352365
* `VERSION_NOT_FOUND`
353366
* `VERSION_NOT_RESTORABLE`
367+
* `WALLED_MEMBERSHIP_POLICY_UNDECLARED`
354368
* `WRITABLE_PACKAGE_REQUIRED`
355369
* `WRONG_PASSWORD`
356370

content/docs/references/api/error-code-ledger.mdx

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,14 @@ best-effort catch that logs and continues. Its throw site and constant
161161
host boot matching is not wire vocabulary.
162162
⚠️ That SECOND ground is superseded by #16404 ("Door or no door" above): a
163163
boot refusal that ships in `dist` is owed a row, so the codes left out or
164-
retired on the "not wire vocabulary" reasoning — the remaining
165-
`boot-refusal` rows of `dispatcher-error-vocabulary.ts` — are registrations
166-
owed under the ruling, not re-argued per card. What still retires a row is
167-
the FIRST ground only: no producer left anywhere in `packages/**` source.
164+
retired on the "not wire vocabulary" reasoning were registrations owed
165+
under the ruling, not re-argued per card — #16449 registered the nine
166+
measured on its tree, and #16649 the fourteen `boot-refusal` rows
167+
`dispatcher-error-vocabulary.ts` still carried, among them
168+
`MONGODB_MULTI_TENANT_UNSUPPORTED` itself, back under
169+
`@objectstack/driver-mongodb` with the #8035 removal reversed on the
170+
record. What still retires a row is the FIRST ground only: no producer
171+
left anywhere in `packages/**` source.
168172
Before deleting a row, check that no producer remains repo-wide AND
169173
that no consumer — including `objectui` and `cloud` — reads the literal;
170174
tests that merely CONSTRUCT the code are not producers, and a test pinned to
@@ -296,6 +300,8 @@ const result = ErrorCode.parse(data);
296300
* `DOMAIN_VERIFICATION_DISABLED`
297301
* `DOMAIN_VERIFICATION_FAILED`
298302
* `DRIVER_UNAVAILABLE`
303+
* `DUPLICATE_ARTIFACT_OBJECT_NAME`
304+
* `DUPLICATE_ARTIFACT_PACKAGE`
299305
* `DUPLICATE_REQUEST`
300306
* `DUPLICATE_SOURCE_NOT_A_BASE`
301307
* `ELIGIBILITY_UNEVALUABLE`
@@ -350,6 +356,8 @@ const result = ErrorCode.parse(data);
350356
* `IMPORT_JOB_CREATE_FAILED`
351357
* `IMPORT_ROW_FAILED`
352358
* `INTERNAL`
359+
* `INVALID_ARTIFACT_PACKAGES`
360+
* `INVALID_ARTIFACT_PACKAGE_ENTRY`
353361
* `INVALID_EMAIL`
354362
* `INVALID_EXPIRY`
355363
* `INVALID_METADATA`
@@ -376,17 +384,21 @@ const result = ErrorCode.parse(data);
376384
* `MARKETPLACE_PROXY_FAILED`
377385
* `MARKETPLACE_STORAGE_FAILED`
378386
* `MARKETPLACE_UNAVAILABLE`
387+
* `MEMORY_MULTI_TENANT_UNSUPPORTED`
379388
* `METADATA_BRANCH`
380389
* `METADATA_CONFLICT`
381390
* `METADATA_NOT_FOUND`
382391
* `METADATA_SCHEMA_INVALID`
392+
* `MIXED_ARTIFACT_COLLECTION_SHAPE`
393+
* `MONGODB_MULTI_TENANT_UNSUPPORTED`
383394
* `MULTI_UPDATE_HOOK_KEY_DIVERGENCE`
384395
* `NAMESPACE_CONFLICT`
385396
* `NAMESPACE_PREFIX`
386397
* `NEEDS_PASSWORD`
387398
* `NODE_FAILURE`
388399
* `NOTHING_TO_PURGE`
389400
* `NOT_ATTEMPTED`
401+
* `NOT_COMPENSABLE`
390402
* `NOT_CREATABLE`
391403
* `NOT_FOUND`
392404
* `NOT_OVERRIDABLE`
@@ -396,6 +408,7 @@ const result = ErrorCode.parse(data);
396408
* `NO_IDENTITY`
397409
* `NO_MATCH`
398410
* `NO_PENDING_VERIFICATION`
411+
* `NO_SUCH_RUN`
399412
* `OAUTH_REGISTER_FAILED`
400413
* `OBJECT_API_DISABLED`
401414
* `OBJECT_API_METHOD_NOT_ALLOWED`
@@ -415,10 +428,13 @@ const result = ErrorCode.parse(data);
415428
* `PAYLOAD_TOO_LARGE`
416429
* `PERMISSION_NOT_ALLOWED`
417430
* `PHONE_NOT_ENABLED`
431+
* `PLAN_CHANGED`
432+
* `PLUGIN_CONTRACT_VIOLATION`
418433
* `PLUGIN_INSTALL_FAILED`
419434
* `PLUGIN_MANIFEST_INVALID`
420435
* `PLUGIN_REGISTER_FAILED`
421436
* `PLUGIN_UI_REQUIRED_KEY_MISSING`
437+
* `PREFLIGHT_FAILED`
422438
* `PROJECT_MEMBERSHIP_REQUIRED`
423439
* `PROJECT_NOT_FOUND`
424440
* `PROJECT_PROVISIONING`
@@ -457,6 +473,7 @@ const result = ErrorCode.parse(data);
457473
* `SCHEDULES_LIST_FAILED`
458474
* `SCHEDULE_DELETE_FAILED`
459475
* `SELF_REGISTRATION_CLOSED`
476+
* `SERVICE_NOT_REGISTERED`
460477
* `SETTINGS_ACTION_FAILED`
461478
* `SETTINGS_CRYPTO_UNAVAILABLE`
462479
* `SETTINGS_ENGINE_NOT_BOUND`
@@ -506,6 +523,7 @@ const result = ErrorCode.parse(data);
506523
* `VALIDATION_FAILED`
507524
* `VERSION_NOT_FOUND`
508525
* `VERSION_NOT_RESTORABLE`
526+
* `WALLED_MEMBERSHIP_POLICY_UNDECLARED`
509527
* `WRITABLE_PACKAGE_REQUIRED`
510528
* `WRONG_PASSWORD`
511529

scripts/doc-authoring-prose-id.baseline.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,9 +858,7 @@
858858
},
859859
"packages/runtime/src/dispatcher-error-vocabulary.ts": {
860860
"#12772": 1,
861-
"#3724": 1,
862861
"#5085": 2,
863-
"#8035": 6,
864862
"#8885": 1,
865863
"#9106": 1,
866864
"#9223": 1,

0 commit comments

Comments
 (0)