Skip to content

feat(desk): Missions - the Inbox and Today (ADR-0024) - #37

Merged
hi-donwi merged 2 commits into
mainfrom
feat/desk-missions
Oct 17, 2026
Merged

hi-donwi merged 2 commits into
mainfrom
feat/desk-missions

Conversation

@hi-donwi

Copy link
Copy Markdown
Owner

Summary

This PR adds the first desk part of Agent-Workspace ADR-0024: Missions. It covers project management across every client, using the framework's records.

  • Server. Six read routes, all served by ws ... --json, so the desk and agents (through ws mcp) see one implementation:

    • GET desk/pm/today
    • GET desk/pm/alerts
    • GET desk/pm/tasks
    • GET desk/pm/tasks/:scope/:id
    • GET desk/pm/clients
    • GET desk/pm/clients/:client

    POST desk/pm/alerts/snooze snoozes an alert. Every argument is validated before ws runs. A client dossier includes its restricted records (contacts, commercial terms); the host reads those from disk for the desk only, and no chat or agent tool can reach that route.

  • Inbox (the first section of the menu): the computed alerts.

    • Approvals and raised hands open the assistant for that project.
    • Task alerts open the project's room.
    • Any alert can be snoozed for an hour, a day, or a week.
  • Today fills the main area:

    • signal tiles, which also act as filters;
    • "Your day", ordered people waiting first, then dates, then stalled work;
    • the work in hand and the crew working now;
    • each client's pulse.

    Escape or the breadcrumb returns to the floor.

  • Signals outside the view. The menu icon and the tab title also count late and due work, and a new overdue, due-today, or reminder alert raises a browser notification. Nothing leaves the machine; these are the owner's choices recorded in ADR-0024.

The ws stub in the browser harness now answers today, alerts, alerts snooze, and client show from JSON that each spec writes, and logs the calls it receives.

Test plan

  • pnpm test: 245 passing, including server/desk/pm.test.ts (argument building and validation, snooze, dossier with restricted text from disk, client pulse)
  • pnpm lint, pnpm exec tsc -b, pnpm build
  • PW_CHANNEL=chrome pnpm test:ui: 29 passing, including missions.spec.ts:
    • menu count and title;
    • Inbox snooze through ws alerts snooze;
    • Today order, filter, open-in-room;
    • Escape and breadcrumb.
  • Screenshots in light, dark, and phone layouts
  • Identifier scan of the diff and the commit messages: no matches

Generated with Claude Code

hi-donwi and others added 2 commits October 17, 2026 21:44
GET desk/pm/today, alerts, tasks, tasks/:scope/:id, clients, and
clients/:client run ws today, alerts, task list|show, and client show
with --json (Agent-Workspace ADR-0024), so the desk and agents share one
implementation; POST desk/pm/alerts/snooze runs ws alerts snooze. Every
argument is checked before ws runs. A client dossier carries its
restricted records for the desk only, read by the host from disk: no ws
command prints them, and no chat or agent tool reaches this route.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The menu opens with Missions: an Inbox of computed alerts, each opened
where it can be acted on or snoozed for an hour, a day, or a week, and
Today, which fills the main area with signals that filter, "your day"
(people waiting first, then dates, then stalled work), the work in hand,
the crew working now, and each client's pulse. The menu icon and the tab
title count late and due work beside raised hands, and a new overdue,
due, or reminder alert raises a browser notification; nothing leaves the
machine. Escape and the breadcrumb return to the floor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hi-donwi
hi-donwi merged commit 0d18fae into main Oct 17, 2026
2 checks passed
@hi-donwi
hi-donwi deleted the feat/desk-missions branch October 17, 2026 14:46
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