← Commit history

2.8.1 (doc only, module bytes unchanged): read the control port at request time, and answer 503 with a hint rather than 404 so 'wired but backend absent' is distinguishable from 'never wired'

John Lauer ·368efffad0 ·1mo ago ·parent 84d622e
2 files changed +14−1
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-ui-design",-  "version": "2.8.0",+  "version": "2.8.1",   "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/newbie-panel/SKILL.md+13
@@ -107,6 +107,19 @@ the desktop-bridge-served one, where a direct fetch to the control port would be or unreachable. The dynamic control port also stays server-side rather than being baked into a page. +**READ THE CONTROL PORT AT REQUEST TIME. IT IS DYNAMIC PER ah LAUNCH.** Read+`~/.adom/hydrogen-control-url`; do not hardcode 47084 or any port you once observed. A pinned+port works until his next ah restart and then fails silently, which is the worst failure shape+available: it was working, nothing you changed broke it, and nothing says so.++**WHEN THE CONTROL API IS UNREACHABLE, ANSWER 503 WITH A HINT, NEVER 404.** project-manager's+routes return 503 naming the missing file when there is no ah on the host (its container, or+any non-ah machine). The reason is diagnostic, and it comes from a real ambiguity my own probe+hit: **a 404 is indistinguishable from "the route was never wired".** I read a 404 from its+dashboard and told it the route was registered on a wrong path; it was in fact never wired at+all. A 503 with a hint separates "wired but the backend is absent here" from "not wired",+which are different bugs with different owners.+ **PASS THE RESPONSE THROUGH UNCHANGED.** Do not reshape the JSON on the way back. The module reads `delivered_to` itself (it is an ARRAY) and separates *delivered* from *opened but not confirmed*; an app that "helpfully" normalises the payload collapses three states into two,