Skip to content

Correct the Notifications docs and the job-agent Slack claim - #983

Merged
selfcontained merged 1 commit into
mainfrom
docs/audit-notifications-job-slack
Aug 20, 2026
Merged

Correct the Notifications docs and the job-agent Slack claim#983
selfcontained merged 1 commit into
mainfrom
docs/audit-notifications-job-slack

Conversation

@selfcontained

Copy link
Copy Markdown
Owner

Nightly docs audit. Deep-dive slice: the docs-pane Notifications section.

Verified clean

Checked as sets in both directions, no change needed: the three notify events vs EVENT_OPTIONS and NOTIFY_EVENT_TYPES; the five sound-cue preview buttons (four CUE_INTENTS plus the mobile tap); every <h3> block the settings pane renders vs the documented sections; the ~3s ack timeout (webNotifyAckTimeoutMs = 3_000); the 15s focus heartbeat, 30s TTL and explicit clear-on-blur; every dispatch_notify parameter, the 5/min per-agent rate limit, and its tool-set membership (AGENT_TOOLS + JOB_TOOLS, not REVIEW_AGENT_TOOLS).

Fixed

  • Job agents don't reach Slack. Four surfaces claimed a job agent's done/waiting_user/blocked event reaches Slack "exactly like any other agent's". createNotificationRuntime skips slackNotifier.onAgentEvent for any agent named job-… that has a job run (covered by notification-runtime.test.ts), while shouldWebNotify has no such filter — so those events raise browser notifications only. Corrected in docs-sections/automations.tsx, docs-sections/notifications.tsx, docs/17-jobs.md, docs/03-api-spec.md and plugins/dispatch/skills/jobs/SKILL.md.
  • Broken link. docs/17-jobs.md pointed at docs/16-notifications.md, which doesn't exist.
  • Missing Save step. The Slack section described pasting a webhook and sending a test but never mentioned Save. The webhook and the Slack event list only persist on Save; the browser toggles above them save as soon as they're flipped.
  • blocked wording. Docs said "agent hit an error it can't resolve", contradicting the Status Events section and the injected launch guidance ("not for errors the agent plans to fix next"). Aligned the docs and the settings-pane copy it mirrored (EVENT_OPTIONS, CUE_INTENTS) with the canonical wording — this was the decision carried over from the last run.
  • Dropped "independent" from the intro; browser and Slack are chained by the ack fallback.

Added

A focus-suppression ambient tip. Someone who doesn't know Dispatch stays quiet about the agent they're watching reads that silence as a broken notification, so it's worth saying once.

Validation

pnpm run format:write, pnpm run check (clean), and the tips + notification-settings unit suites (31 passing). No Playwright — copy-only edits to docs sections, tips.ts, and two description strings.

Deferred to the next run

Next focus is the docs-pane Repo Tools section against repo-tools.ts and the repo-tools skill. Backlog additions: the job notify column and per-job Slack routing remain write-path-less; browser notifications for job agents are the only channel a job run has.

🤖 Generated with Claude Code

Nightly docs audit, deep-diving the docs-pane Notifications section.

Verified clean: the three notify events as a set in both directions
against EVENT_OPTIONS and NOTIFY_EVENT_TYPES, the five sound-cue preview
buttons (four CUE_INTENTS plus the mobile tap), every <h3> block the
settings pane renders, the ~3s ack timeout, the 15s focus heartbeat and
30s TTL, and every dispatch_notify parameter, limit and tool-set claim.

Fixed:

- Four surfaces claimed a job agent's status events reach Slack like any
  other agent's. createNotificationRuntime skips the Slack send for any
  agent named `job-...` that has a job run, so those events raise browser
  notifications only. Corrected in docs-sections/automations.tsx,
  docs-sections/notifications.tsx, docs/17-jobs.md, docs/03-api-spec.md
  and plugins/dispatch/skills/jobs/SKILL.md.
- docs/17-jobs.md linked to docs/16-notifications.md, which doesn't exist.
- The Slack section never mentioned Save. The webhook and the Slack event
  list only persist on Save, while the browser toggles above them save as
  soon as they're flipped.
- `blocked` was described as "hit an error it can't resolve", which
  contradicts the Status Events section and the injected launch guidance.
  Aligned the docs and the settings-pane copy (EVENT_OPTIONS, CUE_INTENTS)
  with the canonical wording.
- Dropped "independent" from the intro; browser and Slack are chained.

Added a focus-suppression ambient tip, since a user who doesn't know
about it reads the silence as a broken notification.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@selfcontained
selfcontained merged commit 0e0e5fe into main Aug 20, 2026
1 check passed
@selfcontained
selfcontained deleted the docs/audit-notifications-job-slack branch August 20, 2026 04:12
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