Repository navigation
test(KEN-3997): wait for the Slack hold resume acknowledgement - #4982
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
The synchronization change lacks a deterministic must-fail control proving the former race is detected.
1 open finding
What changed in this PR
Improves Slack hold tests by waiting for confirmed resume state before asserting notices.
Changes:
- Extends poll waiting with successful, unheld-state acknowledgement.
- Uses the stronger wait after removing hold settings.
| File | Description |
|---|---|
skills/slack/tests/hold.test.sh |
Prevents premature resume assertions. |
🧠 Review effort: Balanced
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
The corrected resume wait passed 20 consecutive timing rounds on commit 39355ad. The loop reported 1220 passed and 0 failed in 638.713 seconds. Every round ran the TOML, local, private and named variants, plus caller-empty and the no-read control. Every real variant passed both original resume assertions and the later no-repeat assertion. This local Linux loop forces the same poll ordering that makes the macOS rows fail. A barrier pauses the real relay's refused poll before the status write. The test removes or empties the setting, then releases that earlier poll. The old wait accepted its newer failed/held status and failed both original assertions. The corrected wait rejects that status and waits for the later successful/unheld poll. This proof measures the ordering, not a native macOS run or filesystem behavior. The ordinary hold suite also passed all 262 existing rows and controls in 200 seconds. No suite or job bound changed. The cause and before-fix evidence are in the prior cause comment on this item. Copilot requested this barrier in the shipped fixture. The overseer accepted that correction and the small continuation on ask 1791907066-135607-10529. The accepted timing proof carries forward. Post-merge box 2 stays open for live macOS load across the next Skill Tests runs. |
A refused poll can read an invalid setting before removal and write its status afterward. Pause that real poll in each live-settings relay copy so the existing resume assertions must wait for successful release. Keep every existing row, control and bound. A disposable timestamp-only mutation of this fixture failed both resume assertions for all four settings variants: 53 passed, 8 failed. The corrected whole hold suite passed 262 rows in 222 seconds. Evidence: tmp/waiter.ttdLWh/old-wait.log and tmp/waiter.aBbd2w/hold.log.
|
Dispositions at 39355ad review:5506355939 Fixed in a9c29f9: the normal live-setting fixture now forces the refused status write after removal. The old wait fails both existing resume assertions for every real settings variant. The corrected suite passes all 262 rows. The control and timing evidence are on KEN-3997. |
Merge close-out
Validation and review
Post-merge handoff
|

Summary
Done when
skills/slack/tests/hold.test.showns the resume wait and the deterministic fixture. The accepted timing loop passed 20 consecutive rounds. The cause and logs are attached to KEN-3997.Validation
Merge decision
Head: a9c29f9
merge-route: queue cause=queue-occupiedCloses KEN-3997