Skip to content

Make standup days a default, and set people's days per standup - #110

Merged
akumar-99 merged 3 commits into
mainfrom
feat/standup-days-default
Oct 22, 2026
Merged

akumar-99 merged 3 commits into
mainfrom
feat/standup-days-default

Conversation

@akumar-99

Copy link
Copy Markdown
Contributor

What and why

Spec: specs/007-standup-days-default.md

A standup's days were a hard limit: someone who works Wednesday to Sunday couldn't be prompted at the weekend unless the whole standup ran seven days. And a person's days were one week shared by every standup they're on. Now the standup's days are the default, anyone can be given any days, and a person's days belong to one standup.

Changes

  • Scheduler: on a day outside the standup's days, a run opens only for the people who work it (their own days, or a working day). Nobody else is prompted, listed as away or counted. run now still treats the day as a standup day. The weekly digest still posts after the standup's last default day.
  • Per-standup days: ScheduleService.setWorkingDays takes a standup and judges that standup's policy and managers only. Replies, the DM to the person, the managers' digest and the schedule_change webhook name the one standup. Today's run is re-evaluated in that standup's own timezone.
  • Chat: days @person … in a space changes that standup. In a DM, someone on several standups is asked which, with days #id … for each.
  • API and MCP: PATCH /me/schedule, PATCH /people/:userName/schedule and set_working_days take optional standupId. The schedule view adds standups (per-standup days). Without standupId every standup changes, as before, documented as deprecated, as is the top-level workingDays. Someone else's schedule lists only the standups the caller manages. The Team list says "Varies by standup".
  • Web: the People table lets any day be ticked, marks the default days, shows Default or Custom with Reset to default, and shows Saved or the error per row. The Edit schedule drawer and My schedule card show one block per standup.
  • Docs: schedules, web app, commands, user guide, API, MCP, roles and configuration.
  • No migration: participants.working_days was already per standup.

Checks

  • bun run typecheck && bun run test:coverage pass (100% lines and functions)
  • bun run web:typecheck && bun run web:test pass
  • Each acceptance criterion has a test (tests/standup-days.test.ts, tests/api-schedule.test.ts, tests/mcp.test.ts, web/src/lib/roster.test.tsx, web/src/pages/schedule.test.tsx)
  • Figma "AsyncUp v2 — Product Design" matches what was built (Specs › 007)
  • Docs (docs/guide/) updated for anything people will notice, and bun run docs:build passes
  • Website (site/) updated if a feature it describes changed, and bun run site:build passes (no change needed)
  • Layout checked from 390px to 1440px

@akumar-99
akumar-99 merged commit 357fa6e into main Oct 22, 2026
6 checks passed
@akumar-99
akumar-99 deleted the feat/standup-days-default branch October 22, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant