Watch: review fixes for action errors that vanished, feed refreshes dropped or overwritten around a change, a fresh thread screen per route, errors cleared on sign out, notification actions only while paired, cache writes off the main thread and capped at 30 threads, Ask before acting and Load earlier races, two-letter search, C# headings, and strictly encoded query values
This commit is contained in:
1 parent
99b300855e
commit
25be69fa30
14 files changed
+591
-94
No files matched your search
+18
-6
@@ -92,7 +92,9 @@ row leaves at once and comes back with the error if its call fails. Settle all,
|
||||
and the full list, is one `POST /v1/recent/settle` for every completed thread in Recent, including
|
||||
those past the first 10. Failed threads stay. The completed rows leave at once, and the header says
|
||||
so when the call fails or some threads did not settle. A finished notification has Settle too,
|
||||
beside Reply and Open. It settles in the background without opening the app.
|
||||
beside Reply and Open. It settles in the background without opening the app. A background action
|
||||
only runs while the watch is paired. After unpairing, or in demo mode, it posts a notification
|
||||
saying the watch is not paired.
|
||||
|
||||
## Snooze
|
||||
|
||||
@@ -120,10 +122,17 @@ content, a refresh keeps it on screen, and a failed refresh only adds a small di
|
||||
The error and Try again replace the placeholder only when there is nothing to show. When a screen
|
||||
goes away mid-request, the cancelled request shows no error.
|
||||
|
||||
On every refresh the app saves the last good feed as JSON in its caches folder, and it saves each
|
||||
thread's detail when the thread loads. Launch shows the saved feed at once, with a dim "Updating" by the
|
||||
count until the first refresh answers, and a thread opens on its saved detail while it loads.
|
||||
Unpairing clears both. Demo mode never touches them.
|
||||
A feed refresh asked for while another is out, as after Settle, Snooze or Allow, waits for it and
|
||||
then runs once more. A feed answer to a request sent before a change, or before signing out, is
|
||||
dropped, so a poll cannot put back a row the change removed. On the thread screen, a failed reply,
|
||||
answer, Settle or Stop says why above Reply until the next action, and a reply that did not send
|
||||
shows its text with Send again.
|
||||
|
||||
The app saves the last good feed as JSON in its caches folder, and each thread's detail when the
|
||||
thread loads, off the main thread and only when it changed. It keeps the 30 threads saved most
|
||||
recently. Launch shows the saved feed at once, with a dim "Updating" by the count until the first
|
||||
refresh answers, and a thread opens on its saved detail while it loads. Unpairing clears both. Demo
|
||||
mode never touches them.
|
||||
|
||||
## Activity, All threads and history
|
||||
|
||||
@@ -137,12 +146,15 @@ The feed's last row opens All threads: hosts from `GET /v1/projects` (offline on
|
||||
host's projects by title, then the project's threads from
|
||||
`GET /v1/projects/:hostId/:projectId/threads`, settled ones included. Each thread is one line with
|
||||
a status dot and its age, and opens the usual thread screen. Each screen loads when it appears.
|
||||
The search field at the top of All threads needs at least two letters, as the gateway does, and
|
||||
says so under the field when given one.
|
||||
|
||||
A thread screen lists the thread's subagents under its messages, above Reply, each with a status
|
||||
word. A row opens that subagent's thread. When the thread has messages before the latest 20, Load
|
||||
earlier at the top fetches the page before them (`GET /v1/threads/:hostId/:threadId/history`), and
|
||||
the next tap uses the cursor that page returned. The 10 s refresh replaces only the latest window.
|
||||
Loaded pages stay, and a message shows once by id. Message text renders as markdown: bold, italics,
|
||||
Loaded pages stay, and from the first tap the window a refresh replaces is kept too. A message shows
|
||||
once by id, as its newest copy, so one caught mid-stream gets its full text. Message text renders as markdown: bold, italics,
|
||||
inline code and links inline, headings in bold, list items as bullets, and fenced code in monospace.
|
||||
|
||||
Against a gateway older than these fields, the cards show the last message, and Load earlier and
|
||||
|
||||
Reference in new issue
Block a user