fix(homepage): the frank-tts card is a real probe now
The endpoint deployed on 2026-10-18, so the admin card must carry its state rather than a placeholder: wip becomes false (the registry schema wants the key on every service; false is what the live cards use) and the description drops the "Hidden until deployed" line. showLink stays false and the card stays admin-only: an HTTP API has no page to open, and homepage-status.py counts ANY HTTP response as up, so the card is honest with no link and no /health path in the probe. The voice seam that pinned wip == down is re-keyed to the deployed contract and now also refuses a link or a user-category placement.
This commit is contained in:
1 parent
d2ce6693da
commit
5768680542
2 files changed
+14
-6
No files matched your search
@@ -541,12 +541,12 @@
|
|||||||
"name": "frank-tts",
|
"name": "frank-tts",
|
||||||
"category": "admin",
|
"category": "admin",
|
||||||
"section": "AI",
|
"section": "AI",
|
||||||
"description": "The fleet's cloned-voice speech endpoint: POST /v1/audio/speech with voice=<name>, audio back in that voice. Public on 7772; the engine behind it (frank-tts-engine) is unpublished on purpose. Hidden until deployed.",
|
"description": "The fleet's cloned-voice speech endpoint: POST /v1/audio/speech with voice=<name>, audio back in that voice. Published on 7772; the engine behind it (frank-tts-engine) is unpublished on purpose. It is also the harness speech role.",
|
||||||
"url": "",
|
"url": "",
|
||||||
"docs": "",
|
"docs": "",
|
||||||
"probe": "127.0.0.1:7772",
|
"probe": "127.0.0.1:7772",
|
||||||
"method": "http",
|
"method": "http",
|
||||||
"wip": "down",
|
"wip": false,
|
||||||
"showLink": false,
|
"showLink": false,
|
||||||
"art": "/img/apps/mono-ft.svg"
|
"art": "/img/apps/mono-ft.svg"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -943,10 +943,14 @@ DRV
|
|||||||
|| { echo "editing app.py must rebuild the façade image"; false; }
|
|| { echo "editing app.py must rebuild the façade image"; false; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "the voice stack's homepage state: one card for the pair, and it is hidden while undeployed" {
|
@test "the voice stack's homepage state: one probed card for the pair, and no link" {
|
||||||
# The engine is not on the homepage and must not be: it publishes no port, so
|
# The engine is not on the homepage and must not be: it publishes no port, so
|
||||||
# there is no address the checker could dial, and a card that can never be
|
# there is no address the checker could dial, and a card that can never be
|
||||||
# green is worse than no card. The façade carries the pair's signal.
|
# green is worse than no card. The façade carries the pair's signal — and
|
||||||
|
# since the 2026-10-18 deploy that signal is a real probe (`wip: false`), not
|
||||||
|
# a placeholder. It stays `showLink: false` and admin-only: an HTTP API has no
|
||||||
|
# page to open, and the checker counts ANY HTTP response as up, so the card is
|
||||||
|
# honest without a link and without a `/health` path in the probe.
|
||||||
python3 - "$REPO_ROOT" <<'PY'
|
python3 - "$REPO_ROOT" <<'PY'
|
||||||
import json, os, sys
|
import json, os, sys
|
||||||
root = sys.argv[1]
|
root = sys.argv[1]
|
||||||
@@ -955,8 +959,12 @@ assert "frank-tts-engine" not in cards, \
|
|||||||
"the engine publishes no port: a card for it could never be probed green"
|
"the engine publishes no port: a card for it could never be probed green"
|
||||||
fts = cards["frank-tts"]
|
fts = cards["frank-tts"]
|
||||||
assert fts["probe"] == "127.0.0.1:7772", fts["probe"]
|
assert fts["probe"] == "127.0.0.1:7772", fts["probe"]
|
||||||
assert fts["wip"] == "down" and fts["showLink"] is False, \
|
assert fts["wip"] is False, \
|
||||||
"nothing listens on 7772 until the deploy, so a visible card reads as down forever"
|
"the endpoint is deployed; a wip card would hide its real state: " + repr(fts.get("wip"))
|
||||||
|
assert fts["showLink"] is False and fts["url"] == "", \
|
||||||
|
"an API endpoint has no UI to link to — it is a status card, not a tile"
|
||||||
|
assert fts["category"] == "admin", \
|
||||||
|
"consumers dial this; it is not an app the user homepage should advertise"
|
||||||
assert os.path.exists(f"{root}/shared/homepage{fts['art']}"), f"missing art {fts['art']}"
|
assert os.path.exists(f"{root}/shared/homepage{fts['art']}"), f"missing art {fts['art']}"
|
||||||
PY
|
PY
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user