Watch: show subagent requests on the parent's card, and settle threads by swipe, Settle all and the thread screen

This commit is contained in:
gib committed 2026-11-01 20:26:38 -05:00
1 parent a4754b65b0
commit cf8995e63f
16 files changed
+347 -31

No files matched your search

+16 -3
View File
@@ -38,7 +38,8 @@ register their token with the gateway as `production`, Debug builds as `sandbox`
## Demo mode
`DemoGateway` serves fixture data shaped like the docs/api.md examples, and it reacts to writes:
Allow moves a thread to working, a reply restarts a finished thread. The SwiftUI previews use it,
Allow moves a thread to working, a reply restarts a finished thread, and Settle hides a thread from
the feed. One card carries a subagent's request, so its Allow goes to the subagent's thread. The SwiftUI previews use it,
the pairing screen has a "Try the demo" button, and launch arguments open a screen directly:
```sh
@@ -50,8 +51,9 @@ xcrun simctl launch <udid> org.gbrown.wristcode.watchkitapp -demo -host laptop
xcrun simctl launch <udid> org.gbrown.wristcode.watchkitapp -demo -screen notifications # notifications
```
`screenshots/` holds the screens captured this way. The complication, the multi-select question and
the status screens are rendered by `SnapshotTests` instead, which only run when given a directory:
`screenshots/` holds the screens captured this way. The complication, the multi-select question, the
status screens, the subagent card and thread, Recent with Settle all, and a finished thread with
Settle are rendered by `SnapshotTests` instead, which only run when given a directory:
```sh
TEST_RUNNER_WC_SCREENSHOT_DIR=$PWD/screenshots xcodebuild -scheme WristCode \
@@ -61,6 +63,17 @@ TEST_RUNNER_WC_SCREENSHOT_DIR=$PWD/screenshots xcodebuild -scheme WristCode \
In demo mode the complication shows the demo counts too.
## Subagents and settling
A thread an agent started for another thread has no card of its own. When it waits on you, the
gateway puts its request on the parent's card and names it in `via`. The card says "Subagent
<title> wants to run:" or "asks:", and the parent's thread screen shows the request first, labeled
"From subagent". Every answer goes to the subagent's thread.
Settle clears a finished or failed thread from the feed, as in T3. Swipe a Recent row left, tap
Settle all on the Recent header (completed threads only, failed ones stay), or tap Settle under
Reply on the thread screen. A row leaves at once and comes back with the error if its call fails.
## Status and settings
The gear at the top left of the feed opens the status overview (`GET /v1/status`). It leads with