hub v0.126.0: fresh connect link from the old one (R-719); day-one mails (R-723); bind-page wording (R-725); volunteer guide current (R-722); ep0 cleanup and release evidence
gates / gates (push) Successful in 29s

Red-proofs RP40-RP42.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-30 10:35:17 +02:00
parent 27641ce9e7
commit 80aeac71f6
21 changed files with 562 additions and 40 deletions
@@ -11,7 +11,7 @@ listing (`ep0-storagebox.txt`).
| 3 | The tunnel's published route (`*.sajatfelhom.hu` → `https://traefik`, **No TLS Verify** ticked) | **UNKNOWN** — the API token on the record may read DNS only; the tunnel read answered `Authentication error` (stopped there) | Cloudflare → Zero Trust → Networks → Tunnels → this tunnel → Published application routes. Without the route the dashboard answers 503; without No TLS Verify, 502 (R-505, R-510) |
| 4 | Off-site | **done** — ON, shared, 100 GB; new sub-account id 322460 (username `u629488-sub2` reused; Peti's sub-account 269130 was emptied and deleted 2026-09-25) | — |
| 5 | DR tier (ep0) | **done** — ON; ep0 holds nothing for Tester-2 yet (made when the box connects) and nothing of Peti's | — |
| 6 | The connect e-mail | **sent 07:36 UTC — TWICE** (the customer was created twice in the same second; two different links). Both valid until **2026-10-07 07:36 UTC** | If your friend installs after that: hub → Tester-2 → „Send self-bind link" (Part D makes this automatic) |
| 6 | The connect e-mail | **sent 07:36 UTC — TWICE** (the customer was created twice in the same second). A new link REPLACES the previous one (single-active), so **only the SECOND mail works; the first mail's link is dead** (it answers „expired"). The live one is valid until **2026-10-07 07:36 UTC** | Tell your friend: two identical mails came; if one link says „expired", use the other one. Or press „Send self-bind link" once more just before the install — that leaves exactly one live link (a change on Tester-2, so it is yours to make). After 2026-10-07: hub → Tester-2 → „Send self-bind link", or (after hub v0.126.0) the friend presses „Új linket kérek" on the expired page |
| 7 | E-mail language | **English** — the connect mail, the bind page, the setup-code mail and the box itself start in English | Hub → Tester-2 → Edit → „Customer e-mail language", if your friend should get Hungarian |
| 8 | Owner passphrase | yours to hand over (5 words, on the customer page) | in person or by phone |
| 9 | Customer id `Tester-2` has a capital letter | **never walked before** with a capital; no known break | — (note only) |
@@ -0,0 +1,14 @@
## 2026-09-30T08:11:43Z AFTER — every namespace (control)
ns demo-felhom archives 2 bytes 12797189880 newest 1790655403
ns demo-hp archives 2 bytes 41655240423 newest 1790280385
ns tester-1 archives 0 bytes 0 newest 0
root ns archives 0
datastore used: 19666792448
--- tester-1 namespace dir:
total 8
drwxr-xr-x 2 backup backup 4096 Sep 30 08:11 .
drwxr-xr-x 3 backup backup 4096 Sep 14 16:04 ..
--- tester-1 token kept:
1
--- GC schedule (chunks are released by the datastore GC, not by this session):
| gc-schedule | sun 04:30 |
@@ -0,0 +1,6 @@
## 2026-09-30T08:11:01Z BEFORE — every namespace (control)
ns demo-felhom archives 2 bytes 12797189880 newest 1790655403
ns demo-hp archives 2 bytes 41655240423 newest 1790280385
ns tester-1 archives 3 bytes 29076305272 newest 1790710627
root ns archives 0
datastore used: 19667234816
@@ -0,0 +1,13 @@
## 2026-09-30T08:11:32Z operator ruling 51 (2026-09-30); scope: datastore felhom-offsite, ns tester-1, these three archives ONLY
--- target ns=tester-1 ct/9201/2026-09-16T17:27:32Z (1789579652)
cmd: proxmox-backup-debug api delete /admin/datastore/felhom-offsite/snapshots --ns tester-1 --backup-type ct --backup-id 9201 --backup-time 1789579652
null
rc=0
--- target ns=tester-1 ct/9201/2026-09-16T21:59:54Z (1789595994)
cmd: proxmox-backup-debug api delete /admin/datastore/felhom-offsite/snapshots --ns tester-1 --backup-type ct --backup-id 9201 --backup-time 1789595994
null
rc=0
--- target ns=tester-1 ct/9201/2026-09-29T19:37:07Z (1790710627)
cmd: proxmox-backup-debug api delete /admin/datastore/felhom-offsite/snapshots --ns tester-1 --backup-type ct --backup-id 9201 --backup-time 1790710627
null
rc=0
@@ -0,0 +1,3 @@
ct 9201 1790710627 2026-09-29T19:37:07Z size 3490689830 owner felhom@pbs!tester-1 fingerprint de:51:7a:18:cb:39:22:30:2c:84:f5:8b:d1:91:4b:7e:81:bb:69:b8:89:0f:57:ac:d3:59:e1:1a:62:25:11:2c comment felhom local-api verify ok protected False
ct 9201 1789579652 2026-09-16T17:27:32Z size 4774114206 owner felhom@pbs!tester-1 fingerprint fe:3d:db:95:d4:df:ab:e1:7d:4a:89:fa:2b:07:53:6a:e4:d2:85:95:d1:90:27:4b:d9:c6:92:20:95:04:e5:d4 comment felhom local-api verify ok protected False
ct 9201 1789595994 2026-09-16T21:59:54Z size 20811501236 owner felhom@pbs!tester-1 fingerprint 6b:ca:5f:3f:ca:0f:e2:3f:fb:24:62:89:bf:e7:64:59:9a:41:c5:e6:e3:9f:3f:5f:e1:71:7b:a1:9d:24:67:82 comment felhom local-api verify ok protected False
@@ -0,0 +1,103 @@
[release-agent] building 0.138.0 …
[release-agent] built ok: sha256 55916026001790a79ebf97d32c032610cfde8e09d02979b9b9d8c2cbc5d88195
[release-agent] tagging v0.138.0 at e1b8269 …
[release-agent] publishing …
[publish-agent] publishing /tmp/felhom-agent-hty6yT (14278858 bytes, sha256 55916026001790a7…) → https://gitea.dooplex.hu/api/packages/admin/generic/felhom-agent/0.138.0/felhom-agent
[publish-agent] pre-delete existing artifact: HTTP 404 (404/204 expected)
[publish-agent] upload OK (HTTP 201)
[publish-agent] round-trip GET verified (sha256 matches)
AGENT_VERSION=0.138.0
AGENT_SHA256=55916026001790a79ebf97d32c032610cfde8e09d02979b9b9d8c2cbc5d88195
[publish-agent] DONE. Record in the hub operator UI (Configs → Day-0 artifacts): agent 0.138.0 / 55916026001790a79ebf97d32c032610cfde8e09d02979b9b9d8c2cbc5d88195
[release-agent] pushing v0.138.0 …
pre-push [felhom-agent]: running scripts/agent_gates.py --fast ...
agent_gates — 4 gate(s) [--fast]
--fast SKIPPED (deliberate periodic runs, never in a hook): published
==============================================================================
== gate: reuse-refs (reuse_refs_check.py /mnt/5_hdd/felhom.eu/git/felhom-agent)
==============================================================================
note [felhom-agent] line 169: localapi/debuglogs_test.go (resolved by suffix → internal/localapi/debuglogs_test.go)
note [felhom-agent] line 185: hub/internal/store/dr_recipe.go (cross-repo → felhom.eu/hub/internal/store/dr_recipe.go)
OK [felhom-agent]: 98 cited paths — exact 96, suffix 1, ambiguous 0, cross-repo 1, FAILED 0 (siblings searched: app-catalog-felhom.eu, felhom-controller, felhom.eu)
==============================================================================
== gate: instructions (instructions_gate.py /mnt/5_hdd/felhom.eu/git/felhom-agent)
==============================================================================
instructions_gate: /mnt/5_hdd/felhom.eu/git/felhom-agent
CLAUDE.md effective lines : 107 (ceiling 200)
version literals : 0
TEMPORARY blocks : 0
rule files : 5 (5 path-scoped)
workspace file : SYMLINK -> felhom.eu/documentation/runbooks/workspace-CLAUDE.md (resolves to the versioned copy)
memory index : 200 lines (ceiling 200), 25594 bytes (ceiling 25600)
memory index content : 33 version literal(s), 5 host address(es), 0 expired statement(s) [WARN only]
memory topic files : 166 indexed, 2 orphaned, 41 archived
register citations : 3 cited, 692 register items known
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:30: version literal '0.14.0' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- **[restic 0.14.0 `--verify` is size+mtime, NOT content](restic-0140-verify-and-lock-sema
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:45: version literal '1.25.0' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [ISO train v1.25.0](iso-train-v1.25.0-2026-07-23.md) — R-71 build-gate (golden≥floor), r
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:48: version literal '0.263.2' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- **[.felhom.yml flows on SYNC, not at pull](felhom-yml-flows-on-sync-not-pull.md)** — the
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:74: version literal '1.2.0' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Offsite pool-box aggregate](offsite-pool-box-aggregate-2026-07-17.md) — R-5 hub 0.64/0.
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:78: version literal '0.90.0' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Guest RAM resize + fast-tick](guest-ram-resize-fasttick-2026-07-17.md) — R-24 controlle
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:78: version literal '0.143.0' — the fleet is not uniform, so it is stale within a day. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Guest RAM resize + fast-tick](guest-ram-resize-fasttick-2026-07-17.md) — R-24 controlle
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md: ... and 27 more version literal(s) — full list from the tally counts above.
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:54: host address '192.168.0.192' — operations/nodes.md is the single home for these. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [hub.felhom.eu resolves to the LAN here](hub-resolves-to-lan-on-dooplex-network.md) — 19
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:69: host address '192.168.0.0' — operations/nodes.md is the single home for these. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Tailscale N100 location-independent](tailscale-n100-location-independent-2026-07-19.md)
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:73: host address '167.233.158.164' — operations/nodes.md is the single home for these. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Offsite PBS box RAM ceiling](offsite-pbs-box-ram-ceiling-2026-07-27.md) — **root SSH =
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:73: host address '10.77.0.1' — operations/nodes.md is the single home for these. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- [Offsite PBS box RAM ceiling](offsite-pbs-box-ram-ceiling-2026-07-27.md) — **root SSH =
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:181: host address '192.168.0.180' — operations/nodes.md is the single home for these. Not a failure: Claude writes this file between sessions, so this warning is aimed at the model that will next edit it, not at whoever is pushing.
- **CC runs ON DooPlex** (192.168.0.180) — repos `/mnt/5_hdd/felhom.eu/git/felhom-*`, buil
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory: 2 top-level topic file(s) are not referenced by MEMORY.md, so nothing will ever read them: peti-return-p1-stop-2026-07-13.md, stopped-not-fault-v0164-2026-07-24.md
instructions_gate: OK (13 warning(s))
==============================================================================
== gate: release-complete (check-release-complete.py)
==============================================================================
check-release-complete — the newest CHANGELOG version is a complete release
newest CHANGELOG version: v0.137.0
ok tag v0.137.0 -> dd81866b16, an ancestor of HEAD
ok package 0.137.0 is downloadable
check-release-complete: v0.137.0 is tagged, placed and published.
==============================================================================
== gate: observations (observations_gate.py /mnt/5_hdd/felhom.eu/git/felhom-agent)
==============================================================================
observations gate OK — REPORT.md has no observations section (nothing to check)
==============================================================================
== summary
==============================================================================
reuse-refs OK (exit 0)
instructions OK (exit 0)
release-complete OK (exit 0)
observations OK (exit 0)
all agent gates OK
pre-push [felhom-agent]: gates OK - push proceeding.
remote: . Processing 1 references
remote: Processed 1 references in total
To https://gitea.dooplex.hu/admin/felhom-agent.git
* [new tag] v0.138.0 -> v0.138.0
[release-agent] verifying by independent download …
RELEASED — and installable, verified by download, not by this script's own say-so.
version : 0.138.0
tag : v0.138.0
sha256 : 55916026001790a79ebf97d32c032610cfde8e09d02979b9b9d8c2cbc5d88195
NOT VOUCHED. Vouching is what points machines at this version and stays your deliberate act:
hub operator UI → Configs → Day-0 artifacts. Until then boxes keep installing the previous one.
@@ -0,0 +1,8 @@
## 2026-09-30T08:34:43Z signed agent_update → demo-hp-bb76ea (0.138.0, sha 55916026…)
signed: op=agent_update host=demo-hp-bb76ea guest="" key_id=felhom-op-1 nonce=f7a2c193d6132305cb29561d32f9709f expires=2026-09-30T09:34:43Z
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/753351c4-7b70-46b6-9338-40951c9512c5/scratchpad/fx/env-demo-hp-bb76ea.json
uploaded signed op to the hub jobs queue
## 2026-09-30T08:34:43Z signed agent_update → demo-felhom-8363b5 (0.138.0, sha 55916026…)
signed: op=agent_update host=demo-felhom-8363b5 guest="" key_id=felhom-op-1 nonce=cc2e7feffbe7e6b61f2d757c4fbbe724 expires=2026-09-30T09:34:43Z
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/753351c4-7b70-46b6-9338-40951c9512c5/scratchpad/fx/env-demo-felhom-8363b5.json
uploaded signed op to the hub jobs queue
@@ -0,0 +1,4 @@
## 2026-09-30T08:33:18Z raise the global floor to 0.283.0, MinAgent 0.131.0 declared (above golden 0.282.0 → declaration required, R-472)
HTTP/1.1 303 See Other
Location: /configuration?flash=floor_set
2026/09/30 10:33:19 [INFO] Global controller-version floor set to "0.283.0" (declared MinAgent "0.131.0")