da20722e76
gates / gates (push) Successful in 27s
INTERIM CHECKPOINT — evidence off the machine at the end of the phase that produced it (R-320), not at the end of the session. Phases 2-5 follow in a later commit. Phase 0, all three mechanisms proven with their controls: - the fleet floor to 0.261.0 with its declared MinAgent — both demo boxes in 13 s, the hub logging `managed floor SERVED ... from declared (golden 0.258.0)`. - a PRIVATE DRILL CATALOG (admin/app-catalog-drill), so that broken, dummy, cross-repo and engine-major edges can be measured without the live catalog ever carrying one. Positive control quoted, and two negative controls: the live catalog's main and both real boxes' caches unchanged. - a throwaway image store on the scratch guest, which is what makes an UNATTENDED HOLD measurable at all: an edge that PASSES the within-a-major test and still fails. CompareImageRefs was proven to order host:port/ references by RUNNING it (4 positive cases + 1 negative control), not by reading it. Phase 1: real within-a-major upstream edges walked on guest 9202 through the product's own guarded Update, each app seeded and read back through its OWN front door (R-156), with a per-edge verdict record in 09's shape. `inconclusive` is never collapsed into `failed`. TWO INSTRUMENT FIXES, both in this repo's own evidence code: - 00-api-recipe.md said the app page is /app/<n>; it is /apps/<n>, and every call it described 404s. Corrected, with the session-expiry note that cost the same time. - unattended-caller.py's follow() read update_phase/updating off the API ENVELOPE, so both were always None and EVERY followed update ran to its 900 s timeout and was then recorded `timeout` and never-press-again. Fixed before B1 relied on it. R-623. No controller, agent or hub code was written. The live catalog carries no broken reference. Gates: repo_gates.py --fast — all 15 OK, exit 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
68 lines
4.8 KiB
Plaintext
68 lines
4.8 KiB
Plaintext
probe-port sweep — all 53 templates, catalog f5f6a152b513, 2026-09-21
|
|
compares each .felhom.yml http probe port against the compose's traefik loadbalancer port
|
|
NOTE: a difference is a CANDIDATE, not a defect — adventurelog differs and is healthy,
|
|
because the probe targets the backend container while the traefik ports belong to the
|
|
frontend. Only a live measurement decides.
|
|
|
|
actualbudget probe=['5006'] traefik=['5006'] services~ 3 ok
|
|
adventurelog probe=['8000'] traefik=['80', '3000'] services~ 7 DIFFERS
|
|
audiobookshelf probe=['80'] traefik=['80'] services~ 4 ok
|
|
bentopdf probe=['8080'] traefik=['8080'] services~ 2 ok
|
|
bookstack probe=['80'] traefik=['80'] services~ 6 ok
|
|
calcom probe=['3000'] traefik=['3000'] services~ 5 ok
|
|
calibre-web probe=['8083'] traefik=['8083'] services~ 3 ok
|
|
claper probe=['4000'] traefik=['4000'] services~ 6 ok
|
|
code-server probe=['8443'] traefik=['8443'] services~ 3 ok
|
|
crafty-controller probe=['8443'] traefik=['8443'] services~ 7 ok
|
|
docmost probe=['3000'] traefik=['3000'] services~ 8 ok
|
|
emby probe=['8096'] traefik=['8096'] services~ 3 ok
|
|
ghost probe=['2368'] traefik=['2368'] services~ 3 ok
|
|
gitea probe=['3000'] traefik=['3000'] services~ 3 ok
|
|
glance probe=['8080'] traefik=['8080'] services~ 3 ok
|
|
gokapi probe=['53842'] traefik=['53842'] services~ 4 ok
|
|
grafana probe=['3000'] traefik=['3000'] services~ 3 ok
|
|
gramps-web probe=['5000'] traefik=['5000'] services~10 ok
|
|
home-assistant probe=['8123'] traefik=['8123'] services~ 3 ok
|
|
homebox probe=['7745'] traefik=['7745'] services~ 3 ok
|
|
homepage probe=['3000'] traefik=['3000'] services~ 3 ok
|
|
immich probe=['2283'] traefik=['2283'] services~ 9 ok
|
|
jellyfin probe=['8096'] traefik=['8096'] services~ 4 ok
|
|
kimai probe=['8001'] traefik=['8001'] services~ 6 ok
|
|
komga probe=['25600'] traefik=['25600'] services~ 3 ok
|
|
mealie probe=['9000'] traefik=['9000'] services~ 3 ok
|
|
n8n probe=['5678'] traefik=['5678'] services~ 3 ok
|
|
navidrome probe=['4533'] traefik=['4533'] services~ 3 ok
|
|
nextcloud probe=['80'] traefik=['80'] services~ 8 ok
|
|
onlyoffice probe=['80'] traefik=['80'] services~ 4 ok
|
|
opengist probe=['6157'] traefik=['6157'] services~ 3 ok
|
|
outline probe=['3000'] traefik=['3000'] services~ 8 ok
|
|
paperless-ngx probe=['8000'] traefik=['8000'] services~ 8 ok
|
|
papra probe=['1221'] traefik=['1221'] services~ 3 ok
|
|
plant-it probe=['8080'] traefik=['8080'] services~ 4 ok
|
|
plex probe=['32400'] traefik=['32400'] services~ 4 ok
|
|
privatebin probe=['8080'] traefik=['8080'] services~ 3 ok
|
|
radarr probe=['7878'] traefik=['7878'] services~ 3 ok
|
|
rallly probe=['3000'] traefik=['3000'] services~ 5 ok
|
|
recipe-importer probe=['8000'] traefik=['8000'] services~ 3 ok
|
|
romm probe=['8080'] traefik=['8080'] services~ 8 ok
|
|
seerr probe=['5055'] traefik=['5055'] services~ 3 ok
|
|
sonarr probe=['8989'] traefik=['8989'] services~ 3 ok
|
|
sparkyfitness probe=['80'] traefik=['80'] services~ 8 ok
|
|
tandoor probe=['8080'] traefik=['80'] services~ 7 DIFFERS
|
|
termix probe=['8080'] traefik=['8080'] services~ 3 ok
|
|
uptime-kuma probe=['3001'] traefik=['3001'] services~ 3 ok
|
|
vaultwarden probe=['80'] traefik=['80'] services~ 3 ok
|
|
vikunja probe=['3456'] traefik=['3456'] services~ 4 ok
|
|
wanderer probe=['3000'] traefik=['3000', '8090'] services~ 9 ok
|
|
wger probe=['80'] traefik=['8000'] services~ 4 DIFFERS
|
|
wishlist probe=['3000'] traefik=['3000'] services~ 4 ok
|
|
zipline probe=['3000'] traefik=['3000'] services~ 7 ok
|
|
|
|
DIFFERS: ['adventurelog', 'tandoor', 'wger']
|
|
|
|
LIVE MEASUREMENT on guest 9202, 2026-09-21:
|
|
tandoor : container listens on 80 ONLY (ss -ltn), docker healthcheck=healthy,
|
|
front door /accounts/login/ = 200, controller state = 'unhealthy' -> DEFECT
|
|
adventurelog : controller state = 'running' -> NOT a defect
|
|
wger : NOT DEPLOYED TONIGHT — suspected, explicitly unmeasured
|