← Commit history

1.20.0: Send timeout is 120s (create alone can take 60s); on create-timeout follow _hints and deliver by tid, never retry blind

John Lauer ·40ed6cdb96 ·1mo ago ·parent 92cb3e7
2 files changed +16−6
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-ui-design",-  "version": "1.19.0",+  "version": "1.20.0",   "type": "skill",   "description": "The Adom UI Design System plus a bundle of focused UI skills (tooltips, floating-windows, toasts, responsive-ui, app-shell, ai-driven-apps, clickable-paths, dark-default, input-feedback, settings-layout). One install drops the whole set of skill files onto your container, plus shared icon assets (the settings cog) so every Adom app draws the same glyph.",   "dependencies": {},
skills/say-strip/SKILL.md+15−5
@@ -186,11 +186,21 @@ hint pointing at the composite. The composite stages `name` and `tags` the same way (they attach when the sid appears) and reports delivery in its response (`delivered_to`), so there is no id round-trip at all. -**Timeout: 45 seconds, not 5 or 10.** `/ai-threads/run-prompt` with `new: true` honestly-takes 10 to 30 seconds on a busy workbench, because it is opening a tab and waiting for the-editor to materialise it. A short client timeout turns a working send into a spurious "could-not reach the AI panel", which was the second half of the same bug. The copy-fallback-already covers a genuine failure, so give the call room to succeed first.+**Timeout: 120 seconds.** (Raised from 45 on 2026-08-24 after measurement: the tab CREATE+alone can take 60s on a loaded workbench, and the old 30s server cap was abandoning opens+that then landed late and stacked orphan tabs.) A short client timeout turns a working send+into a spurious "could not reach the AI panel", which was half of the original bug. The+copy-fallback covers genuine failure, so give the call room to succeed first.++**On a create timeout, DO NOT RETRY BLIND** — a blind retry duplicates the thread. Every+`/ai-threads` response now carries `_hints` that teach the recovery: poll for your staged+`name`/`tags` (the tab often lands late and they attach to it), then deliver by `tid`.+**Surface the `_hints` text directly in your failure toast** rather than inventing your own+wording; it is written to tell the user what actually happened.++**Verify delivery by `delivered_to`, never by the thread's name.** Staged names can lag or+miss entirely when the composite ADOPTS an existing idle empty tab rather than opening a+fresh one (fresh opens attach fine). The name is cosmetic; `delivered_to` is the proof.  See `hydrogen-ai-threads-api` (0.3.22+) for the endpoint's own documentation.