fix/duty-week-rollover #1

Merged
kamash merged 2 commits from fix/duty-week-rollover into main 2026-08-19 15:20:49 +00:00

2 Commits

Author SHA1 Message Date
Kamil 'Kamaś' Bruchal e17aefb9e3 fix: assign duty weeks on their fetch-time tab across year rollover
Around New Year the empty-rota guard keeps the old year's cached rows
while resolveRange has already moved to the new year's tab, so an
auto-assignment could write an old-tab row index onto the new tab.
Stamp each DutyWeek with the tab it was fetched from and prefer it when
building the assignment range (clock fallback for pre-upgrade caches).

Also: widen the default fetch range to A1:G200 so a full year of rows
plus roster can't be silently truncated, add -race/golangci-lint/
govulncheck gates to CI (container pinned to 1.26.4-alpine), and add
.env.example documenting every configuration variable.
2026-08-19 16:49:11 +02:00
Kamil 'Kamaś' Bruchal 488f0b9a9b feat: ignore unknown commands instead of replying
The bot now answers only its predefined commands and stays silent on
anything else, logging ignored commands at debug level.

Tests no longer assert exact reply/reminder wording (which broke on
copy tweaks like 37a81a2) — they check behavior instead: message
counts, the names/handles substituted in, and that /sync persists its
fetch and doesn't leak internal errors.
2026-08-19 14:44:26 +02:00