gsxdsm
88c7502eae
test(engine): prove the recovered-lease rebound AND its audit on a renamed board ( #2539 )
...
Test-only. Sixth E2E family. Closes the `mesh-lease-manager` ledger
entry.
## Two things to prove, and only one is where the card lands
The conversion note records the defect precisely:
> They were previously two independent `=== "todo"` comparisons that
could disagree, which is how **the audit came to claim a card landed in
`todo` when the workflow has no such column**.
1. the card rebounds to the renamed workflow's own rebound column
2. the unreachable-owner **audit** reports the column the card actually
reached
**(2) is the half that rotted silently, and it is the worse one.** The
audit is what an operator reads to find out where a recovered card went.
Confidently wrong is worse than absent — and on a renamed board it named
a column the workflow does not even declare.
## One thing deliberately NOT renamed
`decisionPath` keeps its legacy `lease-recovered-to-todo` wording. The
code explains why: it is a stable discriminator that existing queries
and dashboards match on, and renaming it would break them in order to
describe the same decision. The column actually used travels in
`newColumn`.
I've pinned that split with an explicit assertion so a future vocabulary
"cleanup" cannot quietly rename a field that **is not a column at all**.
Stating it here so it reads as a decision rather than an oversight.
## Mutation-verified
Forcing the legacy literal fails **exactly the three renamed cases**,
leaving the default-vocabulary floor and the fresh-lease negative green.
## Negative half
A lease renewed just now is not recoverable — "rebound anything with a
checkout" would tear live work off its owner.
## Fixture guard
The stale-lease seed writes lease bookkeeping through the admin client
and then **asserts the seed took effect**. A silently-dropped write
would make the recovery look correctly declined — the same trap that
produced a vacuous paused-park test earlier in this program, so it is
now guarded by default.
## Verification
- six live-E2E suites green together: **58/58**
- engine `tsc --noEmit` clean
- `pnpm test:gate` green (414 + 10 + 71)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-29 20:30:19 -07:00
..
2026-07-29 20:30:19 -07:00
2026-05-23 02:29:38 -07:00
2026-07-14 22:16:16 -07:00
2026-07-28 17:35:07 -07:00
2026-07-13 19:07:58 -07:00
2026-05-20 15:54:44 -07:00
2026-05-29 20:05:14 -07:00
2026-07-26 10:15:18 -07:00
2026-06-29 04:12:13 -07:00
2026-05-21 12:04:58 -07:00
2026-05-19 17:19:02 -07:00
2026-07-24 22:32:49 -07:00
2026-07-20 10:13:57 -07:00
2026-07-29 09:04:51 -07:00
2026-07-06 19:03:07 -07:00
2026-06-13 04:54:59 -07:00
2026-06-04 22:53:02 -07:00
2026-07-20 16:08:00 -07:00
2026-07-26 09:26:13 -07:00
2026-07-22 13:36:23 -07:00
2026-07-12 10:04:29 -07:00
2026-07-16 00:01:17 -07:00
2026-07-21 23:09:30 -07:00
2026-07-28 11:36:13 -07:00
2026-07-10 07:46:52 -07:00
2026-07-22 13:43:55 -07:00
2026-05-13 23:41:35 -07:00
2026-07-24 22:32:49 -07:00
2026-07-26 16:16:27 -07:00
2026-07-26 10:15:18 -07:00
2026-07-26 16:16:27 -07:00
2026-07-28 18:52:46 -07:00
2026-06-30 12:56:03 -07:00
2026-07-03 22:04:45 -07:00
2026-07-16 17:05:29 -07:00
2026-07-26 23:47:49 -07:00
2026-07-29 10:01:14 -07:00
2026-06-07 20:43:44 -07:00
2026-07-19 12:08:10 -07:00
2026-05-21 12:49:50 -07:00
2026-07-14 22:16:16 -07:00
2026-06-22 03:04:21 -07:00
2026-05-20 08:23:40 -07:00
2026-05-23 00:03:12 -07:00
2026-07-16 13:48:00 -07:00
2026-06-15 12:34:44 -07:00
2026-06-26 16:14:44 -07:00
2026-06-15 02:30:41 -07:00
2026-06-04 16:16:50 -07:00
2026-07-26 09:26:13 -07:00
2026-07-26 08:20:37 -07:00
2026-07-21 17:14:30 -07:00
2026-06-01 08:23:02 -07:00
2026-07-22 08:53:31 -07:00
2026-07-21 17:08:44 -07:00
2026-05-19 22:50:39 -07:00
2026-05-14 19:26:58 -07:00
2026-07-26 22:38:58 -07:00
2026-07-14 22:16:16 -07:00
2026-06-26 00:57:32 -07:00
2026-07-29 19:03:10 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 12:54:16 -07:00
2026-07-22 13:36:23 -07:00
2026-07-26 12:01:19 -07:00
2026-05-29 07:11:00 -07:00
2026-07-14 17:02:47 -07:00
2026-07-29 10:54:35 -07:00
2026-07-13 19:07:58 -07:00
2026-05-14 04:32:42 -07:00
2026-05-14 04:32:43 -07:00
2026-07-27 21:39:21 -07:00
2026-07-18 01:23:31 -07:00
2026-07-28 18:52:39 -07:00
2026-07-24 23:57:49 -07:00
2026-07-02 13:07:16 -07:00
2026-07-23 10:31:22 -07:00
2026-07-23 10:31:22 -07:00
2026-06-26 11:56:12 -07:00
2026-07-22 15:25:20 -07:00
2026-07-14 08:18:52 -07:00
2026-07-26 09:50:43 -07:00
2026-06-26 00:57:32 -07:00
2026-07-15 22:43:24 -07:00
2026-07-02 11:38:32 -07:00
2026-07-15 10:06:32 -07:00
2026-07-27 13:30:13 -07:00
2026-07-21 17:08:17 -07:00
2026-06-25 20:12:20 -07:00
2026-07-27 14:28:53 -07:00
2026-05-28 15:04:41 -07:00
2026-07-16 15:42:22 -07:00
2026-05-26 21:57:31 -07:00
2026-07-26 10:15:18 -07:00
2026-07-18 14:42:59 -07:00
2026-07-16 00:01:17 -07:00
2026-07-15 14:44:35 -07:00
2026-07-19 16:00:28 -07:00
2026-07-15 14:44:35 -07:00
2026-07-13 19:07:58 -07:00
2026-05-23 09:59:50 -07:00
2026-07-16 00:01:17 -07:00
2026-07-11 22:16:48 -07:00
2026-05-21 16:30:31 -07:00
2026-07-26 10:15:18 -07:00
2026-07-26 10:15:18 -07:00
2026-07-27 14:28:53 -07:00
2026-07-29 10:54:35 -07:00
2026-07-23 16:12:44 -07:00
2026-07-19 22:43:13 -07:00
2026-07-19 22:43:13 -07:00
2026-06-13 16:16:52 -07:00
2026-06-19 23:50:37 +00:00
2026-07-21 17:14:30 -07:00
2026-05-16 17:31:09 -07:00
2026-07-26 10:15:18 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-09 19:58:06 -07:00
2026-07-16 21:42:44 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 20:27:35 -07:00
2026-07-26 08:26:20 -07:00
2026-07-22 13:36:23 -07:00
2026-07-26 23:47:49 -07:00
2026-07-25 20:46:07 -07:00
2026-07-27 21:39:21 -07:00
2026-07-04 21:28:16 -07:00
2026-07-26 02:28:04 -07:00
2026-07-21 23:32:18 -07:00
2026-06-04 12:44:43 -07:00
2026-07-26 12:01:19 -07:00
2026-06-04 07:34:02 -07:00
2026-06-07 21:19:10 -07:00
2026-07-14 12:41:10 -07:00
2026-07-26 22:38:58 -07:00
2026-07-17 17:28:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-16 21:07:06 -07:00
2026-07-13 19:07:58 -07:00
2026-07-23 21:43:58 -07:00
2026-07-28 18:52:39 -07:00
2026-07-28 18:52:39 -07:00
2026-07-28 18:52:39 -07:00
2026-07-28 18:52:39 -07:00
2026-06-11 21:00:23 -07:00
2026-07-22 14:42:04 -07:00
2026-07-21 17:14:30 -07:00
2026-07-26 12:01:19 -07:00
2026-07-21 17:08:44 -07:00
2026-07-21 17:08:44 -07:00
2026-07-27 17:37:20 -07:00
2026-07-29 10:15:54 -07:00
2026-07-24 23:57:49 -07:00
2026-07-21 17:06:26 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-10 22:25:21 -07:00
2026-07-15 20:53:05 -07:00
2026-07-21 17:08:44 -07:00
2026-07-01 16:38:27 -07:00
2026-07-22 08:53:31 -07:00
2026-05-17 02:08:01 -07:00
2026-05-21 00:17:33 -07:00
2026-07-16 16:34:09 -07:00
2026-07-26 08:26:20 -07:00
2026-07-26 23:42:46 -07:00
2026-07-26 15:36:33 -07:00
2026-07-15 19:43:08 -07:00
2026-07-26 16:16:27 -07:00
2026-07-29 10:44:12 -07:00
2026-05-19 14:22:11 -07:00
2026-07-16 00:01:17 -07:00
2026-07-16 00:01:17 -07:00
2026-07-27 20:15:46 -07:00
2026-07-16 15:42:22 -07:00
2026-07-16 15:42:22 -07:00
2026-07-29 09:04:51 -07:00
2026-07-26 08:20:37 -07:00
2026-07-19 15:38:31 -07:00
2026-07-26 09:50:43 -07:00
2026-05-23 14:26:57 -07:00
2026-05-30 21:53:00 -07:00
2026-05-14 05:55:16 -07:00
2026-06-04 14:01:55 -07:00
2026-07-29 09:54:39 -07:00
2026-07-25 23:44:56 -07:00
2026-05-31 23:24:53 -07:00
2026-07-26 09:50:43 -07:00
2026-07-27 19:49:05 -07:00
2026-07-28 18:52:59 -07:00
2026-07-05 11:31:48 -07:00
2026-07-16 01:52:10 -07:00
2026-05-28 21:23:48 -07:00
2026-07-14 08:17:36 -07:00
2026-07-25 14:59:53 -07:00
2026-07-25 14:59:53 -07:00
2026-07-15 20:14:25 -07:00
2026-05-18 00:53:23 -07:00
2026-07-29 19:02:55 -07:00
2026-07-17 17:28:36 -07:00
2026-07-29 19:03:10 -07:00
2026-07-15 08:44:11 -07:00
2026-07-26 09:50:43 -07:00
2026-07-27 15:05:05 -07:00
2026-07-27 13:30:13 -07:00
2026-06-29 10:32:51 -07:00
2026-07-01 00:51:01 -07:00
2026-07-27 13:30:13 -07:00
2026-06-04 07:34:02 -07:00
2026-07-26 23:42:46 -07:00
2026-07-26 10:15:18 -07:00
2026-06-25 22:33:08 -07:00
2026-07-26 12:29:54 -07:00
2026-06-11 08:43:27 -07:00
2026-07-15 15:34:43 -07:00
2026-07-22 15:07:59 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-07-01 00:51:01 -07:00
2026-06-30 00:09:36 -07:00
2026-07-21 17:06:26 -07:00
2026-07-19 22:07:55 -07:00
2026-07-19 22:07:55 -07:00
2026-07-07 10:25:11 -07:00
2026-06-21 23:02:46 -07:00
2026-07-19 17:05:05 -07:00
2026-07-16 13:48:00 -07:00
2026-06-25 08:34:44 -07:00
2026-07-14 22:16:16 -07:00
2026-05-18 01:50:22 -07:00
2026-07-26 12:01:19 -07:00
2026-06-04 13:04:15 -07:00
2026-06-12 12:49:34 -07:00
2026-07-19 23:47:53 -07:00
2026-07-26 10:15:18 -07:00
2026-05-18 11:01:32 -07:00
2026-05-23 15:13:17 -07:00
2026-05-16 20:54:33 -07:00
2026-05-18 15:51:01 -07:00
2026-05-15 22:18:09 -07:00
2026-07-13 19:07:58 -07:00