Commit 0cf0867
fix(automation): keep the
* test(automation): reproduce #15555 — a throw between the journal and the stranded stamp loses the verdict
Pins written against the CORRECT behaviour so that running them at HEAD is the
reproduction: today resume() throws the secondary failure and reports no
run-state discriminator at all, while restoreConsumedSuspension on that same
run succeeds — a false negative on a repair instruction.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
* fix(automation): keep the strand verdict when post-journal bookkeeping throws
Once journalConsumedSuspension has written the repair snapshot, the run IS
repairable, and the status: 'stranded' stamp is the only thing that tells a
consumer so. Two statements between them could throw out of the whole arm --
recordLog's run-summary line and a store whose recordTerminal throws
synchronously -- and a throw there made the approvals door report
repairable: false about a run restoreConsumedSuspension puts back. A false
negative on a repair instruction stops an operator from fixing a run that is
fixable, so the window is now guarded: the bookkeeping may fail, loudly at
error with the run and its repair verb named, and the verdict still ships.
The guard opens AFTER the journal, so only a run that demonstrably has a
snapshot can reach the stamp; every exit above the consumption point still
carries no status, and cascade-failed ancestors are untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
* changeset(automation): the strand verdict survives a post-journal bookkeeping throw
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
* changeset(automation): name the pre-existing phantom this guard makes visible
The changeset is what reaches release notes, and the operator-facing
consequence was only in the PR body. It now says that a run that COMPLETED is
journalled and reported stranded when its completed history row throws, that
repairing such a run re-runs the flow, that the phantom and its double run were
measurable before this change rather than created by it, and that it is filed
as #15944.
Text only. engine.ts is byte-identical at blob e6fa6ff, and no pin, ablation
leg or source line moves.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpTx2tbq3pZRYAdoGt6E6Y
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>stranded verdict when post-journal bookkeeping throws — a repairable strand must not report repairable: false (#15949)1 parent cc00df2 commit 0cf0867
4 files changed
Lines changed: 478 additions & 20 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 | + | |
Lines changed: 70 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
42 | 53 | | |
43 | 54 | | |
44 | 55 | | |
45 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
46 | 71 | | |
47 | 72 | | |
48 | 73 | | |
| |||
141 | 166 | | |
142 | 167 | | |
143 | 168 | | |
144 | | - | |
145 | | - | |
| 169 | + | |
| 170 | + | |
146 | 171 | | |
147 | 172 | | |
148 | 173 | | |
| |||
308 | 333 | | |
309 | 334 | | |
310 | 335 | | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
311 | 379 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5515 | 5515 | | |
5516 | 5516 | | |
5517 | 5517 | | |
5518 | | - | |
5519 | | - | |
5520 | | - | |
5521 | | - | |
5522 | | - | |
5523 | | - | |
5524 | | - | |
5525 | | - | |
5526 | | - | |
5527 | | - | |
5528 | | - | |
5529 | | - | |
5530 | | - | |
5531 | | - | |
5532 | | - | |
5533 | | - | |
5534 | | - | |
| 5518 | + | |
| 5519 | + | |
| 5520 | + | |
| 5521 | + | |
| 5522 | + | |
| 5523 | + | |
| 5524 | + | |
| 5525 | + | |
| 5526 | + | |
| 5527 | + | |
| 5528 | + | |
| 5529 | + | |
| 5530 | + | |
| 5531 | + | |
| 5532 | + | |
| 5533 | + | |
| 5534 | + | |
| 5535 | + | |
| 5536 | + | |
| 5537 | + | |
| 5538 | + | |
| 5539 | + | |
| 5540 | + | |
| 5541 | + | |
| 5542 | + | |
| 5543 | + | |
| 5544 | + | |
| 5545 | + | |
| 5546 | + | |
| 5547 | + | |
| 5548 | + | |
| 5549 | + | |
| 5550 | + | |
| 5551 | + | |
| 5552 | + | |
| 5553 | + | |
| 5554 | + | |
| 5555 | + | |
| 5556 | + | |
| 5557 | + | |
| 5558 | + | |
| 5559 | + | |
| 5560 | + | |
| 5561 | + | |
| 5562 | + | |
| 5563 | + | |
| 5564 | + | |
| 5565 | + | |
| 5566 | + | |
| 5567 | + | |
| 5568 | + | |
| 5569 | + | |
| 5570 | + | |
| 5571 | + | |
| 5572 | + | |
| 5573 | + | |
| 5574 | + | |
| 5575 | + | |
| 5576 | + | |
| 5577 | + | |
| 5578 | + | |
| 5579 | + | |
| 5580 | + | |
| 5581 | + | |
| 5582 | + | |
| 5583 | + | |
| 5584 | + | |
| 5585 | + | |
| 5586 | + | |
| 5587 | + | |
| 5588 | + | |
| 5589 | + | |
| 5590 | + | |
| 5591 | + | |
| 5592 | + | |
| 5593 | + | |
| 5594 | + | |
| 5595 | + | |
| 5596 | + | |
| 5597 | + | |
| 5598 | + | |
| 5599 | + | |
| 5600 | + | |
| 5601 | + | |
5535 | 5602 | | |
5536 | 5603 | | |
5537 | 5604 | | |
| |||
5569 | 5636 | | |
5570 | 5637 | | |
5571 | 5638 | | |
5572 | | - | |
| 5639 | + | |
| 5640 | + | |
| 5641 | + | |
| 5642 | + | |
| 5643 | + | |
5573 | 5644 | | |
5574 | 5645 | | |
5575 | 5646 | | |
| |||
0 commit comments