Commit 4bb09e8
feat(service-automation): an operator can put back a suspension a failed resume consumed (#13951)
* wip: #13909 slice 2 operator exit verb
* fix(automation): restore the dropped forgetSuspendedRun call
* feat(service-automation): an operator can put back a suspension a failed resume consumed (#13909)
* fix(service-automation): publish the restore vocabulary at the barrel and true up the sys_automation_run declaration
Contract-review rework (ruling recorded on PR 13951; behaviour unchanged):
- index.ts: export type SuspensionRestoreResult / SuspensionRestoreRefusal in
the engine.js type block. The verb was already barrel-reachable, so the
eight refusal values were published de facto while the union was unnameable
de jure — no exhaustive switch, no annotated result, no typed handler
parameter. ConsumedSuspension deliberately stays unexported (it appears in
no barrel-reachable signature).
- consumed-suspension-restore.test.ts: barrel-import pin. The existing suite
imports from './engine.js', which is why the gap had no witness. The pin
annotates a real result with the BARREL type and writes the exhaustive
switch (never-typed default), so removing the export breaks tsc; the
runtime half pins the verb on the class the barrel itself exports.
- sys-automation-run.object.ts: the declaration asserted invariants this PR
falsified. One-class corrections only — the node_type description and the
trigger-attribution comment now carve out the consumed-suspension class of
terminal row (the same correction shape this PR already applied in
plugin-approvals' backfill), and variables_json's description names the
presence-discriminator the store's deserializer keys off.
- engine.ts: the NO_CONSUMED_SUSPENSION docblock no longer claims "exists and
is terminal" — the arm also answers on a non-terminal logged status, and
the reason string was already honest about that.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016ZC5rNQj3WEet5HAmmAkMs
* fix(service-automation): keep tracker ids out of the declaration's runtime strings
check:doc-authoring is right: the two descriptions the rework corrected
carried '#13909' inside runtime string prose, which reaches operators who
cannot resolve a tracker id. The carve-out text stays; the ids move to
adjacent comments (the reader who can resolve them reads the source).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016ZC5rNQj3WEet5HAmmAkMs
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 4bf15db commit 4bb09e8
7 files changed
Lines changed: 1395 additions & 10 deletions
File tree
- .changeset
- packages
- plugins/plugin-approvals/src
- services/service-automation/src
| 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 | + | |
Lines changed: 6 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
172 | | - | |
173 | | - | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
174 | 177 | | |
175 | 178 | | |
176 | 179 | | |
| |||
0 commit comments