|
| 1 | +--- |
| 2 | +'@objectstack/spec': patch |
| 3 | +--- |
| 4 | + |
| 5 | +`ApproverType` qualifies `manager` in its `.describe()` instead of offering it as a bare allowed value |
| 6 | + |
| 7 | +`ApproverType` carried **no** `.describe()` at all, so the generated reference |
| 8 | +page rendered `## ApproverType` with nothing but an `### Allowed Values` list: |
| 9 | +`manager` — the one rung an author cannot operate on a stock install — read |
| 10 | +exactly like the nine members that work. `{ type: 'manager' }` resolves |
| 11 | +`sys_user.manager_id`, and that column still has no product write surface |
| 12 | +(re-measured on this tree: the identity write guard's managed-update whitelist |
| 13 | +for `sys_user` is `{name, image, locale}`; the column carries `readonly: true`; |
| 14 | +no `packages/plugins/plugin-auth` source writes it). An author who chose it got |
| 15 | +a chain that passed `validate` and `lint` and then stalled on its first |
| 16 | +submission. |
| 17 | + |
| 18 | +The new describe says what is true about `manager` and **points** at the remedy |
| 19 | +rather than restating it: `MANAGER_ONLY_REMEDY` / `MANAGER_ONLY_ROUTES` in |
| 20 | +`packages/lint/src/validate-approval-approvers.ts` remain the single |
| 21 | +authoritative copy of the population routes, and that file's `DEPENDENCY` |
| 22 | +docblock now names this new string among the lines that go stale if the column |
| 23 | +ever gains a write surface. A pointer cannot drift into disagreement with what |
| 24 | +it points at, which is why no third copy of the 667-character remedy was added. |
| 25 | + |
| 26 | +⛔ No member is added, removed or renamed, and no behaviour changes: the enum's |
| 27 | +accept set is byte-identical and `check:api-surface` is green on the rebuilt |
| 28 | +`dist/*.d.ts`. |
| 29 | + |
| 30 | +**Why this ships, and why `patch`.** `@objectstack/spec`'s published `files[]` |
| 31 | +carries `dist`, `json-schema` and `src/**/*.zod.ts`, and the new string is |
| 32 | +measured in all three on the built tree — `dist/automation/index.js` and |
| 33 | +`.mjs` (2 files, against a lit control of an existing describe from the same |
| 34 | +module, also 2), four `json-schema/` documents (`ApproverType.json`, |
| 35 | +`ApprovalNodeApprover.json`, `ApprovalNodeConfig.json`, `objectstack.json`) and |
| 36 | +the shipped `approval.zod.ts` source. Prose only, no surface widening ⇒ |
| 37 | +`patch`. |
| 38 | + |
| 39 | +The `packages/lint` half is a docblock comment and is deliberately **not** |
| 40 | +graded: that package publishes `dist` only, and the new sentence is absent from |
| 41 | +it (0 files) while a runtime string from the same source file is present in 4 |
| 42 | +and a pre-existing comment from the same docblock is absent in 0 — so comments |
| 43 | +are stripped by construction and nothing published moves there. |
0 commit comments