|
88 | 88 | * - a stroke whose pacing the relay job cannot hold — its `timeout-minutes` |
89 | 89 | * less the allowance an ordinary stroke has — is REFUSED with zero writes |
90 | 90 | * (exit 2, `strokeBudgetRefusal`), exactly as the packer refuses it at the |
91 | | - * seat (`dispatch.mjs`, its batch-gap section): run anyway, the job would |
92 | | - * be cancelled mid-stroke with no summary. ⛔ Never a shorter gap instead; |
| 91 | + * seat (`dispatch.mjs`, its batch-gap section): run anyway, it could |
| 92 | + * outlive the job, which the platform cancels mid-stroke with no summary. |
| 93 | + * ⛔ Never a shorter gap instead; |
93 | 94 | * - an announcement the pace log cannot record is REFUSED (exit 10), the way |
94 | 95 | * `paceWrite` refuses an unrecordable write: unpaced is the state the |
95 | 96 | * throttle exists to prevent. |
@@ -1181,7 +1182,8 @@ export async function selfTest() { |
1181 | 1182 | t("…and the pacing the runner pays is exactly the pacing the seat budgets for (strokePacing — the packer's refusal and the run-poller's wait)", five.gaps.reduce((a, b) => a + b, 0), strokePacing(base(cards(DEFAULT_BATCH_THRESHOLD))).pacingMs); |
1182 | 1183 | const announced = five.paceLines.findIndex((l) => l.includes(`batch of ${DEFAULT_BATCH_THRESHOLD} ${BATCH_KIND} item(s) announced`)); |
1183 | 1184 | const firstLanded = five.logs.findIndex((l) => l.startsWith(' ✓ action 1 ')); |
1184 | | - t('ONE announcement, recorded by write-pace itself under this kind, before the first write — and the transcript says it before the first landing', [five.paceLines.filter((l) => l.includes('announced for token key')).length, announced >= 0, five.logs.findIndex((l) => l.includes('rule ⑤ —')) < firstLanded, firstLanded > 0], [1, true, true, true]); |
| 1185 | + const said = five.logs.findIndex((l) => l.includes('rule ⑤ —')); |
| 1186 | + t('ONE announcement, recorded by write-pace itself under this kind, before the first write — and the transcript says it before the first landing', [five.paceLines.filter((l) => l.includes('announced for token key')).length, announced >= 0, said >= 0 && said < firstLanded, firstLanded > 0], [1, true, true, true]); |
1185 | 1187 | t('…the summary names the pacing in one line, and the token reached neither the summary nor the pace log', [five.summary.includes(`- pacing: rule ⑤ — ${DEFAULT_BATCH_THRESHOLD} content-creating action(s)`), five.summary.includes(TOKEN), readReal(five.file, 'utf8').includes(TOKEN)], [true, false, false]); |
1186 | 1188 |
|
1187 | 1189 | const four = await clocked(cards(DEFAULT_BATCH_THRESHOLD - 1)); |
|
0 commit comments