← Commit history

Notifications section: real per-type toast screenshots (basic, sticky buttons, progress, input) with the exact calls and the response-tracking recipe

John Lauer ·305333ea21 ·3mo ago ·parent b0686d9
5 files changed +46−2
README.md+46−2
@@ -132,9 +132,53 @@ On top of that, the **remote cloud-AI path is approval-gated.** Verbs that run c  ## Notifications -![Adom Desktop toast](docs/toast.png)+AD speaks to you through native Windows toasts via `notify_user`, under Adom Desktop's own identity (the Adom logo, and Action Center history like any first-class app). A cloud AI or a bridge, even one on a different machine addressed with `target`, fires them to reach you wherever you are. Every image below is the real toast, captured live from the exact call shown. -AD speaks to you through native Windows toasts via `notify_user`: plain alerts, sticky reminders, progress bars, and interactive toasts with buttons whose click round-trips back to the caller. The shell-approval toast carries *Approve 1 hr / 24 hr / Bypass Permissions* so you can grant from the toast without opening the window. A bridge, even one on a different machine, can `notify_user` with a `target` to reach you wherever you are.+**Basic alert.** Awareness: a build finished, a file is ready. Auto-dismisses in about 7 seconds. Add `"durationLong":true` to hold it around 25 seconds; `"level":"error"` and up do that automatically, and `"emergency"` also flashes the taskbar.++![Basic alert toast](docs/toast-basic.png)++```bash+adom-desktop notify_user '{"title":"Export done","body":"gerbers.zip is ready in C:/exports."}'+```++**Sticky choice with buttons that round-trip.** Stays on screen until the user clicks (no auto-dismiss). Give it an `id` you choose, then read the click back.++![Sticky toast with buttons](docs/toast-buttons.png)++```bash+adom-desktop notify_user '{"id":"deploy-42","title":"Ship v2 to production?","body":"The build is green and staged.","scenario":"reminder","buttons":[{"label":"Ship it"},{"label":"Hold"}]}'+```++**Progress bar.** For a long job (a gerber export, a render). Re-fire with the SAME `id` as the job advances toward `1.0`. `body` is optional here.++![Progress bar toast](docs/toast-progress.png)++```bash+adom-desktop notify_user '{"id":"job-1","title":"Exporting gerbers","progress":{"title":"myboard.kicad_pcb","value":0.6,"status":"Plotting copper layers...","valueOverride":"6 / 10 layers"}}'+```++**Reply input.** The text field renders, but Windows does not return typed text over protocol activation, so it is display-only today. For a real choice, use buttons.++![Reply input toast](docs/toast-input.png)++```bash+adom-desktop notify_user '{"title":"Quick note","body":"Leave a note for the next run.","scenario":"reminder","inputs":[{"id":"reply","type":"text","placeholder":"Type a reply..."}],"buttons":[{"label":"Send"}]}'+```++**Shell-approval.** Fired by AD itself when a gated command needs a human: *Approve 1 hr / 24 hr / Bypass Permissions*, granted straight from the toast without opening the window.++![Shell approval toast](docs/approve-bar.png)++**How the AI tracks the response, or expires the notify.** A toast is fire-and-forget, but a clicked button is recorded durably, so the AI learns the outcome even on a headless box:++```bash+adom-desktop notify_response '{"id":"deploy-42"}'   # pending:true until clicked, then action:"Ship it"+adom-desktop notify_events '{"sinceSeq":0}'          # drain EVERY click since a cursor, no per-id polling+adom-desktop notify_dismiss '{"id":"deploy-42"}'     # retract a sticky toast once you have handled it+```++Clicking the toast body or any button brings the Adom Desktop window to the foreground. Full reference lives in the `adom-desktop-notify` skill.  ## Verbs 
docs/toast-basic.pngadded
⋯ 1 unchanged line ⋯
docs/toast-buttons.pngadded
⋯ 1 unchanged line ⋯
docs/toast-input.pngadded
⋯ 1 unchanged line ⋯
docs/toast-progress.pngadded
⋯ 1 unchanged line ⋯