afterhours-shift-manager/tests/slack_bot
seahaven-openswe[bot] d84c14d031 Harden schedule bump against Slack retries
The message listener runs synchronously before the 200 ack, so a slow
delete+repost can blow Slack's 3s window and be retried with no guard.
Ignore retried deliveries (X-Slack-Retry-Num), stamp last_bump_ts before
the delete/repost so a mid-bump retry is debounced, and skip thread
replies that don't move the main timeline.

Refs: #135
2026-06-26 20:10:11 +00:00
..
conftest.py Add pytest suite and wire it into CI (#85) (#86) 2026-06-01 19:07:08 -04:00
test_app_home.py Add changelog-driven releases and App Home tab (#112) 2026-06-11 19:41:31 -04:00
test_channel_bump.py Harden schedule bump against Slack retries 2026-06-26 20:10:11 +00:00
test_handle_admin.py Add pytest suite and wire it into CI (#85) (#86) 2026-06-01 19:07:08 -04:00
test_handle_drop.py [#134] Clarify dropping a shift and differentiate night rows (#138) 2026-06-26 15:19:22 -04:00
test_handle_holiday.py Add holiday shifts with 3CX routing and late-pickup approval (#121) 2026-06-17 11:14:29 -04:00
test_handle_holiday_actions.py Add holiday shifts with 3CX routing and late-pickup approval (#121) 2026-06-17 11:14:29 -04:00
test_handle_pick.py Add pytest suite and wire it into CI (#85) (#86) 2026-06-01 19:07:08 -04:00
test_handle_register_rate.py INFRA-106: nightly-sweep security remediation (auth/race/IAM) (#125) 2026-06-18 12:05:25 -04:00
test_handle_swap.py Add swap-acceptance (verified-swap) flow (#87) 2026-06-01 19:22:55 -04:00
test_helpers.py Lock shift drops within 24h of start (#84) (#88) 2026-06-01 19:32:40 -04:00
test_late_pickup.py Add holiday shifts with 3CX routing and late-pickup approval (#121) 2026-06-17 11:14:29 -04:00
test_parse_date.py [#133] Expand /oncall date parser to accept more formats (#137) 2026-06-26 15:07:02 -04:00
test_pickup_button.py Add pytest suite and wire it into CI (#85) (#86) 2026-06-01 19:07:08 -04:00
test_swap_accept_decline.py INFRA-106: nightly-sweep security remediation (auth/race/IAM) (#125) 2026-06-18 12:05:25 -04:00