close-out 2026-10-29 evening release (D65 = A): 04/09/03/05/08 [DESIGN]; R-1349, R-1350 closed (proven live); R-1351 filed; R-1346 measured (the save's own DB step); R-1344 planned events; CONTEXT, STATUS, report, evidence
gates / gates (push) Successful in 1m51s
gates / gates (push) Successful in 1m51s
This commit is contained in:
1 parent
8cc555be6c
commit
e7d9c46370
61 files changed
+1838
-11
No files matched your search
+16
@@ -16,6 +16,22 @@
|
||||
> and holds nothing of its own; this file does hold its own content, namely the standing rulings below.
|
||||
|
||||
|
||||
> **2026-10-29 (evening, attended) — RELEASED: hub v0.177.0, agent v0.170.0 (VOUCHED 18:57:48 CET), controller v0.349.0
|
||||
> (global floor 19:24 CET, MinAgent 0.158.1). Operator ruling D65 = A (15:50; `09` §3 decision 284, `04` §6.1):**
|
||||
> `reboot_guest <vmid>` joins the AGENT's closed list, no signature (a reboot destroys nothing, `03`). **Built:** (1) the
|
||||
> agent's `opreboot.go` — `pct reboot` of that guest only; refused for a stopped/locked/parked/unprovisioned guest, a held
|
||||
> heavy-operation gate (held until the guest is up), `jobBlocker`, a fresh controller busy file (one new read-only sudo
|
||||
> vector, fail closed but „no file"), a second reboot within the hour (persisted), the restart brake (a reboot counts);
|
||||
> the watchdogs leave the guest alone meanwhile; the result names both times. (2) the controller's `internal/busymark`
|
||||
> (`<data>/ctl/busy`, 15 s) and the dashboard line „A Felhom ügyfélszolgálata HH:MM-kor újraindította a dobozt." for a
|
||||
> day (`GET /guest/operator-reboot`). (3) the hub's button, the 30-minute expiry of an unpicked reboot, the slow-request
|
||||
> line (> 5 s, path only, `/api/v1/wait` exempt) and the vouch save's per-leg timing. (4) R-1350: the hold clear records
|
||||
> the stop as wanted. **Proven live on Tester 1:** refused during an off-site run; 67 s / 79 s; refused inside the hour;
|
||||
> R-1350 no alarm in 6.5 min; on the release builds 66 s / 78 s with every app back and the household line. **R-1346
|
||||
> measured:** the vouch save's time is the hub's own „fleet check + save" (38.1 of 38.3 s; registry 135 ms; page 6 ms in
|
||||
> the cluster); ingress-nginx's default 60-s read timeout makes the 504. **R-1344 is still alarm only** — read the health
|
||||
> log after 2026-10-30 07:00 UTC (planned events noted in the row). New row R-1351 (FileBrowser boot race, P4).
|
||||
|
||||
> **2026-10-29 (afternoon, attended) — RELEASED: hub v0.176.1, agent v0.169.0 (VOUCHED), controller v0.348.0 (global
|
||||
> floor). Operator ruling D64 = B (`09` §3 decision 283, `04` §6.1):** „the hub's „Clear hold" works for every hold reason
|
||||
> with no operator signature; the operator accepted that a compromised hub could clear a data-protecting hold. R-379
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# REPORT — release run 2026-10-29 (evening, attended): „Reboot guest" from the hub (D65 = A), R-1350, R-1346
|
||||
|
||||
The brief was dated Friday 2026-10-30; it started Thursday 15:54 CET. Part 2 (the stuck-controller decision, R-1344)
|
||||
needs the health log to 2026-10-30 07:00 UTC, so it is NOT in this run — it is the next session's first step.
|
||||
|
||||
## Five lines
|
||||
|
||||
1. **The reboot button works, and its guards refused when they should: yes.** On Tester 1, one press rebooted the guest
|
||||
(up after 67 s, the controller answered after 79 s); a press during an off-site run was refused („the controller is
|
||||
busy"); a second press inside the hour was refused. On the release builds: 66 s / 78 s, every app back, and the
|
||||
household's dashboard said „A Felhom ügyfélszolgálata 20:05-kor újraindította a dobozt."
|
||||
2. **The stuck-controller decision: not taken yet (alarm only).** The night log ends 2026-10-30 07:00 UTC. The logger
|
||||
runs (1 730 lines at 18:26 UTC, not read tonight); today's planned restarts and reboots are listed in R-1344 so
|
||||
tomorrow's reading leaves them out.
|
||||
3. **R-1350 fixed: yes.** After the operator's hold clear the app stayed stopped and no „app is not running" alarm came
|
||||
in 6.5 minutes (before: 30 s); the dead-app scan read „0 currently down".
|
||||
4. **Where the vouch page's time goes: the hub's own database step of the save** — 38.1 s of 38.3 s in „fleet check +
|
||||
save"; the registry took 135 ms, the page loads in 6 ms (in the cluster) / 65–255 ms (public name). ingress-nginx's
|
||||
default 60-s read timeout turns a save over 60 s into the 504. Not fixed tonight (it needs one more hub release).
|
||||
5. **Released:** hub 0.177.0, agent 0.170.0 (vouched), controller 0.349.0 (the global floor since 19:24 CET).
|
||||
|
||||
## Versions, digests, CI by commit
|
||||
|
||||
| Repo | Commit | CI job | What |
|
||||
|---|---|---|---|
|
||||
| agent | `ca15a31` | 2520, 2524 green | `reboot_guest`, its guards, the busy-file read, `GET /guest/operator-reboot` — **0.170.0 built from here** (`da8d12a0…`, bundle `03f2ff64…`, tag `v0.170.0`) |
|
||||
| agent | `6578a8b` | 2525 green | v0.170.0 heading; `pinned.day0_agent` = 0.170.0 |
|
||||
| controller | `b69e90b` | 2521 green | busymark, the household line, R-1350 — rc.1 `sha256:3bd08409…` |
|
||||
| controller | `94049a7` | 2526 green | v0.349.0 heading — **0.349.0 built from here** (`sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877`) |
|
||||
| felhom.eu (hub) | `636022dc` | 2522 green | the button, the 30-min reboot expiry, the slow-request line, the vouch timing — **hub 0.177.0** (`sha256:727eeec76bf728c00f9a7e645ad26fddff31addc5bca9f8465098e264eb90ef9`) |
|
||||
| felhom.eu | `8cc555be` | 2523 green | manifest → 0.177.0 (Deployment/hub only) |
|
||||
|
||||
The close-out commits' CI is read at the end of the session.
|
||||
|
||||
## Rows
|
||||
|
||||
- **Before:** 229. **After:** 228. **Opened (1):** R-1351 (FileBrowser boot race, P4). **Closed (2):** R-1349 (guest
|
||||
reboot from the hub), R-1350 (alarm after a hold clear). **Updated:** R-1346 (the numbers), R-1344 (planned events).
|
||||
|
||||
## Observations
|
||||
|
||||
- **FILED: R-1351** — at the release-build reboot two FileBrowser start paths ran `compose up` in the same second; one
|
||||
logged two `[ERROR]` lines („container name already in use"); FileBrowser then ran healthy. Not seen on the first
|
||||
reboot an hour earlier.
|
||||
- **FILED: R-1346** (numbers added) — beyond the vouch: `/apps` 25–30 s, `/customers/tester-1` 7–9 s, `/system` 5.8 s in
|
||||
the access log of the last days.
|
||||
- **NOT-A-FINDING: the off-site run's „not deployed — offsite push is unit-only" warnings on Tester 1** — existing,
|
||||
documented behaviour for apps with no recovery unit; unrelated to this run.
|
||||
- **NOT-A-FINDING: the agent mutation „no swap guard" survived** — the reboot checked the swap twice (its own check and
|
||||
`jobBlocker`'s). The duplicate was removed and `jobBlocker`'s check was proven by its own mutant.
|
||||
- **NOT-A-FINDING: two controller mutants and one hub-side check first „failed" by not compiling** — re-made so they
|
||||
compile; each then failed its test for the right reason.
|
||||
|
||||
## Teardown
|
||||
|
||||
Machine: Tester 1 — the throwaway Gokapi removed through the product (no container, no app.yaml, no volume); the
|
||||
controller on 0.349.0 by the floor. 9202 runs rc.1 (not linked to the hub; stays until the next test). Host: nothing
|
||||
provisioned. Hub: no test customer or host; the per-box floors cleared after the 30-minute watch (clean: three boxes
|
||||
healthy on 0.349.0, 0 error/held/refused lines).
|
||||
|
||||
## Docs
|
||||
|
||||
`04` §6.1 [DESIGN] D65; `09` §3 decision 284; `03` [DESIGN] the reboot path; `05` [DESIGN] the button, the expiry, the
|
||||
slow-request line; `08` [DESIGN] R-1350. The system poster: no fact changed (no machine, path, backup tier or time).
|
||||
|
||||
Evidence: `documentation/audits/release-2026-10-29c/`.
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
**Ready for Tester 2? Yes — tell the friend go (hand-over list: `documentation/pilot/TESTER2-handover.md`).**
|
||||
|
||||
**Updated 2026-10-29 (afternoon release).** On your yes: hub 0.176.1, agent 0.169.0 (your vouch) and controller 0.348.0 as the floor for every box. From the hub's host page you can now restart a box's controller (it works when the controller is stopped; 3 presses in 15 minutes, then 30 minutes refused) and clear any held app (D64 = B) — both proven on Tester 1 on the release builds. Register 226 → 229 (7 opened, 4 closed); a stuck-but-running controller only alarms you until CC reads tonight's measurement.
|
||||
**Updated 2026-10-29 (evening release).** On your yes: hub 0.177.0, agent 0.170.0 (your vouch) and controller 0.349.0 for every box; „Reboot guest" on the hub works and refuses during backups, updates and twice in an hour, and no alarm follows your hold clear any more — proven on Tester 1. The slow vouch is the hub's own database step (38 of 38.3 s); the stuck-controller decision waits for tomorrow's night log.
|
||||
|
||||
## What works
|
||||
- **The Plex attack (10-17 → 10-23) did not reach Felhom's secrets** (R-1241).
|
||||
@@ -32,7 +32,6 @@ Newest first. CC's pick is in the „Pick" column. Each row also has its full te
|
||||
|
||||
| # | Row | Question | Pick (why) | The other option costs | If you do nothing | Blocked |
|
||||
|---|---|---|---|---|---|---|
|
||||
| D65 | R-1349 | Add „Reboot guest" to the hub's host page, beside „Restart controller"? | **Not now** (restart controller covers a stuck controller; a reboot stops every app of the household for a minute and needs its own guards) | yes: a brief with its guards, about one session to build and prove | nothing changes; a stuck Docker or network still needs a person at the host | — |
|
||||
| D38 | R-1235 | Put the newest golden (637 MB) into the nightly release copy on ep0 too? | **Yes** (a new install after a DooPlex loss needs it; it fits under the 3 GB cap) | leave it out: after a loss, no new install until a golden is rebuilt and vouched | the same | — |
|
||||
| D37 | R-1236 | Raise Gitea's memory limit from 1 GiB to 2 GiB? It was killed for memory 4 times in 17 days, once during today's release. | **Yes** (DooPlex has the RAM; a DooPlex change, so yours) | keep 1 GiB: a restart in release hours fails box updates and CI for a minute | the same | — |
|
||||
| D9 | R-1062 | Split the N100's USB drive in two, for multi-drive tests? | **No — keep one drive** (the lived-in box keeps its nightly whole-box backup) | Split: the box loses its local whole-box backup, or you buy a second drive first | it stays one drive; multi-drive tests stay on Tester 1 | — |
|
||||
|
||||
@@ -214,6 +214,19 @@ by verb**:
|
||||
`unresponsive_since` in the stanza, the hub's operator-only `controller_unresponsive`. Not counted during a swap, a
|
||||
parked or locked guest, or a vzdump. **It does not restart for it** until the R-1344 measurement (every probe, both
|
||||
test boxes, through the 2026-10-29/30 night chain) shows a busy night never reads unhealthy that long.
|
||||
- **`[DESIGN]` 2026-10-29 — the operator's „Reboot guest" (D65 = A, agent `ca15a31`, released v0.170.0; `04` §6.1,
|
||||
`09` §3 decision 284).** The agent's list gains `reboot_guest <vmid>`: the existing guest-reboot path (`pct reboot`
|
||||
of THAT guest — never the host), for a stuck Docker or a stuck network inside the box. Guards, each refusing with the
|
||||
reason: provisioned, running, not locked, not parked; the host-wide heavy-operation gate free (held from the checks
|
||||
until the guest is up); `jobBlocker` (agent backup job, controller swap, drive/NAS job, escrow ceremony, vzdump); the
|
||||
controller's busy file not fresh (the controller rewrites `data/ctl/busy` every 15 s during a backup, restore,
|
||||
off-site run, night catch-up, app update or app export/import; older than 90 s = a controller that stopped writing,
|
||||
not a busy one; any read failure but „no file" refuses); at most one per hour per guest (`<guests>/<vmid>/
|
||||
operator-reboot.json`, persisted); the restart brake (a reboot counts as a restart). The guest-power watchdog and the
|
||||
supervisor leave the guest alone while it reboots. The result names both times from the press („rebooted; the guest was
|
||||
up after N s, the controller answered after M s"). The record is written BEFORE the reboot; `GET /guest/operator-reboot`
|
||||
(self-scoped) hands it to the controller that starts after it, and the household's dashboard says „A Felhom
|
||||
ügyfélszolgálata HH:MM-kor újraindította a dobozt." for a day.
|
||||
|
||||
**[RULING 2026-09-16, operator] The brake catches a FAST crash loop and is blind to a SLOW one — a
|
||||
second, slower counter is owed (R-539).** MEASURED the same day on the drill box: the controller was
|
||||
|
||||
@@ -193,7 +193,21 @@ report held now. **The AGENT has its own closed list on the host report's reply
|
||||
(`store.ValidateHostOperatorAction` / agent `localapi.OperatorActionNames`; never a shared verb, `TestHostOperatorActions_ClosedList`):
|
||||
the supervisor's restart with its guards, the 3-in-15-minutes brake counting operator restarts too (then 30 minutes
|
||||
refused), the result in the next report (requested at once), a vmid that is not a guest of that host refused at the hub.
|
||||
Neither verb deletes data, starts a countdown or shortens one. A guest reboot from the hub is NOT on either list.
|
||||
Neither verb deletes data, starts a countdown or shortens one. ~~A guest reboot from the hub is NOT on either list.~~
|
||||
(Superseded the same day by D65 below.)
|
||||
|
||||
**`[DESIGN]` 2026-10-29 — D65 = A: `reboot_guest <vmid>` joins the AGENT's list (operator ruling 15:50; `09` §3
|
||||
decision 284).** No signature: a reboot destroys nothing (`03`). The agent's list is now `restart_controller` and
|
||||
`reboot_guest`; the controller's list does not change and the two never share a verb (`TestHostOperatorActions_ClosedList`,
|
||||
agent `TestOpActions_AgentClosedList`). The act is `pct reboot` of that guest over the existing exact sudo vector — never
|
||||
the host. The agent refuses (reason in the result, nothing called) a guest it did not provision, a stopped, locked or
|
||||
parked guest, a held heavy-operation gate, any agent job (`jobBlocker`: backup, controller swap, drive/NAS job, escrow
|
||||
ceremony, vzdump), a fresh controller busy file (backup, restore, off-site run, night catch-up, app update, app
|
||||
export/import — read over ONE new read-only grant, `pct exec <vmid> -- cat <the controller-data volume>/data/ctl/busy`;
|
||||
any read failure but „no file" refuses), a second reboot within an hour (persisted), and the restart brake (a reboot
|
||||
counts as a restart). It holds the heavy-operation gate until the guest is up. The hub expires an unpicked reboot after
|
||||
30 minutes (a restart keeps the day). The closed list's rule stands: nothing on either list deletes data, starts a
|
||||
countdown or shortens one.
|
||||
|
||||
### 6.2 Who may press the operator's buttons: session, Basic, or a scoped token [hub v0.152.0, `09` §3 decision 251]
|
||||
|
||||
|
||||
@@ -824,4 +824,12 @@ agent does not report — found live, fixed in 0.176.1); it stores an AGENT row
|
||||
and shows the result under Operator Actions. „Clear hold" sits on each Held apps row; its confirm step names the app,
|
||||
the reason and since when, and for a restore or put-back hold warns that the app may start on half-restored data; the hub
|
||||
refuses an app the box does not report held now. Both are `hosts:write`, CSRF like every form (a token press needs none
|
||||
and is recorded as `access token "<name>"`), and neither is reachable without the confirm fold-out in the browser.
|
||||
and is recorded as `access token "<name>"`), and neither is reachable without the confirm fold-out in the browser.
|
||||
|
||||
**`[DESIGN]` 2026-10-29 — „Reboot guest" beside it (hub v0.177.0; D65 = A, `04` §6.1).** One per guest of a customer
|
||||
host, behind its own confirm step (the whole guest reboots, every app stops for about a minute, when it is refused); it
|
||||
stores an AGENT row `reboot_guest <vmid>` and pokes the box like the restart. **A reboot row the agent did not pick up in
|
||||
30 minutes expires** (`HostOperatorActionRebootTTL`; a restart keeps the 24 h) — a box that was off must not reboot by
|
||||
itself when it comes back. The agent's result closes the row with one `operator_action` event. **R-1346:** the access-log
|
||||
middleware also writes `[WARN] slow request: <method> <path> <status> <ms>` for a request over 5 s (path only;
|
||||
`/api/v1/wait` exempt), and the artifact vouch save logs each leg's time.
|
||||
@@ -127,6 +127,11 @@ live 2026-08-23 — one event across 22 scans.
|
||||
|
||||
- **Operator/hub event + dashboard banner.** `app_start_failed` is **not** in
|
||||
`settings.DefaultEnabledEvents`, so by default it does **not** e-mail the customer.
|
||||
- **`[DESIGN]` 2026-10-29 — no alarm after the operator's hold clear (R-1350).** The clear starts nothing, so a held app
|
||||
stays stopped; the clear now records that stop as WANTED (desired state „stopped") for an app that is not up — once the
|
||||
hold is found, before it is lifted — so the scan's tri-state reads „the household asked" and stays quiet. The
|
||||
household's Start records „running" and ends it. Measured before the fix on Tester 1: `app_start_failed` 30 s after a
|
||||
clear from the hub (controller, R-1350).
|
||||
- **F-OBS heartbeat**, every 20 scans (~10 min), at `[INFO]`:
|
||||
`[deadapp] check alive: N scans since boot, M deployed app(s) evaluated, K currently down`.
|
||||
This line exists because an absent alarm and a stopped detector look identical in a log.
|
||||
|
||||
@@ -1206,6 +1206,17 @@ Wanderer's Meilisearch went 256 → 384 MB and was measured again (it sizes itse
|
||||
`-tags faultinject` test build — never in the release image (`TestD63_TheReleaseBuildHasNoFaultSwitch`). *Operator,
|
||||
2026-10-29 08:17.* `07` §6.3.
|
||||
|
||||
### 2026-10-29 (15:50, operator) — D65 = A: the hub may reboot a guest
|
||||
|
||||
284. **D65 = A — `reboot_guest` joins the AGENT's closed operator-action list, with no signature.** The operator reboots
|
||||
one guest from the hub's host page (`pct reboot` of THAT guest, the existing guest-reboot path — never the host),
|
||||
for a stuck Docker or a stuck network inside the box that „Restart controller" cannot reach. A reboot destroys
|
||||
nothing (`03`, „healing … non-destructive by construction"). Guards on the agent: no backup of any tier, restore,
|
||||
update, controller swap or other heavy job (the controller's busy file included); not a locked, stopped or parked
|
||||
guest; at most one per hour per guest; the restart brake counts it. A press the agent did not pick up in 30 minutes
|
||||
expires. The household's dashboard says for a day that Felhom support restarted the box. `04` §6.1, `03`.
|
||||
*Operator, 2026-10-29 15:50.*
|
||||
|
||||
### 2026-10-29 (12:10, operator) — D64 = B: the hub may clear any hold
|
||||
|
||||
283. **D64 = B — the hub's „Clear hold" works for every hold reason, with no operator signature.** The operator accepted
|
||||
|
||||
@@ -0,0 +1,385 @@
|
||||
repo_gates (felhom.eu) — 24 gate(s) [--fast]
|
||||
--fast SKIPPED (deliberate periodic runs, never in a hook): iso-bootstrap
|
||||
|
||||
==============================================================================
|
||||
== gate: site (site_gates.py)
|
||||
==============================================================================
|
||||
/mnt/5_hdd/felhom.eu/git/felhom.eu/scripts/site_gates.py:769: DeprecationWarning: 'maxsplit' is passed as positional argument
|
||||
_first = re.split(r"[\s>+~]", _sel, 1)[0]
|
||||
shell sidebar: 11 en page(s), all identical to en/apps.html
|
||||
shell sidebar: 15 hu page(s), all identical to 404.html
|
||||
download pages agree: felhom-installer-1.30.0-pve9.2-1.iso, sha 590d7b9b3ccb…
|
||||
twins: 11 pairs checked both ways (hreflang, globe, canonical), 0 of them unlisted
|
||||
apps pages agree: 0 cards, 64 logos
|
||||
no-HU matcher controls OK (positive 'Jelentkezz be'/'Kapcsolat' convict, negative 'Angola…' does not)
|
||||
gyik.html: JSON-LD equals the 42 visible questions and answers
|
||||
en/faq.html: JSON-LD equals the 42 visible questions and answers
|
||||
dashboard pictures: 24 references, each in its page's language
|
||||
picture viewer: 390 openers, every one a link to an existing file
|
||||
app logos: 65 catalog apps, each with its <slug>-logo file
|
||||
shell leak: 759 site rules vs 119 shell rules, 9 shared selector(s), 0 leaking declarations (media-aware)
|
||||
anchors: 416 in-site #fragment(s), every one resolves
|
||||
sitemap: 24 URL(s), every public page once, every twin pair cross-named
|
||||
unlisted: 0 page(s) — noindex, robots Disallow, not in the sitemap, linked from no other page
|
||||
site gates OK — BOM, emoji=0, nav/footer per language, analytics, no CDN, no legacy tokens, no <style>, cache-busted assets, twins + hreflang + globe, lang, same apps, no Hungarian in English, FAQ JSON-LD, clean tail, dashboard pictures per language, one picture viewer, no shell CSS leak, live anchors, complete sitemap
|
||||
|
||||
==============================================================================
|
||||
== gate: hostinstall (hostinstall_gates.py)
|
||||
==============================================================================
|
||||
ok: SCRIPT_VERSION=1.36.1
|
||||
ok: header has no version literal
|
||||
ok: hub carries no host-install version literal (488 .go/.html files scanned, 6 shapes checked)
|
||||
ok: age is in the installed package set
|
||||
ok: felhom-pbs-apply is fetched from the agent repo
|
||||
ok: felhom-pbs-apply installed 0755 to /usr/local/sbin
|
||||
ok: uninstall removes felhom-pbs-apply
|
||||
ok: rendered agent.json defaults wg_tunnel.enabled=true
|
||||
ok: byo assert no longer forbids wg_tunnel
|
||||
ok: PVE_STORAGES default contains felhom-pbs
|
||||
ok: no raw/branch/ ref in the installer — every run-time fetch is pinned
|
||||
ok: fetch_raw pins the agent configs to the vouched agent version
|
||||
ok: manifest: /scripts/ syncs from an installer tag
|
||||
ok: manifest: the website still tracks main (a copy edit must not need a release)
|
||||
ok: manifest: all four git-syncs read the same repo (http://gitea.gitea-system.svc.cluster.local:3000/admin/felhom.eu.git)
|
||||
ok: every arm that resolves the backup target also grants on it (2 resolution(s), 2 grant(s))
|
||||
ok: the offsite tier arms no client-side prune (keep_last=0; retention is ep0's prune jobs)
|
||||
|
||||
hostinstall gates: ALL PASS
|
||||
|
||||
==============================================================================
|
||||
== gate: hostinstall-harness (hostinstall_harness_gate.py)
|
||||
==============================================================================
|
||||
hostinstall-harness: === 55 passed, 0 failed, 1 skipped ===
|
||||
hostinstall-harness OK
|
||||
|
||||
==============================================================================
|
||||
== gate: hub-confirm (hub_confirm_gate.py)
|
||||
==============================================================================
|
||||
hub confirm gate OK — no native confirm()/prompt() in hub templates (17 scanned, any depth)
|
||||
|
||||
==============================================================================
|
||||
== gate: manifest-bearer (manifest_bearer_gate.py)
|
||||
==============================================================================
|
||||
manifest bearer gate OK - no bearer-shaped literals in manifests/
|
||||
|
||||
==============================================================================
|
||||
== gate: reuse-refs (reuse_refs_check.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
note [felhom.eu] line 54: web/routes.go (resolved by suffix → hub/internal/web/routes.go)
|
||||
note [felhom.eu] line 54: api/routes.go (resolved by suffix → hub/internal/api/routes.go)
|
||||
note [felhom.eu] line 82: store/r879_box_seal_test.go (resolved by suffix → hub/internal/store/r879_box_seal_test.go)
|
||||
note [felhom.eu] line 82: api/r879_box_seal_test.go (resolved by suffix → hub/internal/api/r879_box_seal_test.go)
|
||||
note [felhom.eu] line 92: api/handler.go (resolved by suffix → hub/internal/api/handler.go)
|
||||
OK [felhom.eu]: 93 cited paths — exact 88, suffix 5, ambiguous 0, cross-repo 0, FAILED 0 (siblings searched: app-catalog-felhom.eu, cc-secrets, felhom-agent, felhom-controller, felhom.eu-media, felhom.eu-sizing-push, felhom.eu-wt-sizing)
|
||||
|
||||
==============================================================================
|
||||
== gate: instructions (instructions_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
instructions_gate: /mnt/5_hdd/felhom.eu/git/felhom.eu
|
||||
CLAUDE.md effective lines : 181 (ceiling 200)
|
||||
version literals : 0
|
||||
TEMPORARY blocks : 0
|
||||
rule files : 6 (4 path-scoped)
|
||||
workspace file : SYMLINK -> felhom.eu/documentation/runbooks/workspace-CLAUDE.md (resolves to the versioned copy)
|
||||
memory index : 200 lines (ceiling 200), 25595 bytes (ceiling 25600)
|
||||
memory index content : 25 version literal(s), 3 host address(es), 0 expired statement(s) [WARN only]
|
||||
memory topic files : 200 indexed, 4 orphaned, 41 archived
|
||||
register citations : 20 cited, 1312 register items known
|
||||
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:31: 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:98: version literal '0.90.1' — 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.
|
||||
- [Agent 0.90.1 is wrapper-only](agent-0901-is-wrapper-only.md) — do NOT publish the binar
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:100: version literal '0.144.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.
|
||||
- [SMB „Megosztás" R-7 slice 1](smb-sharing-r7-slice1-2026-07-18.md) — ctrl 0.144.0 + felh
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:100: version literal '1.0.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.
|
||||
- [SMB „Megosztás" R-7 slice 1](smb-sharing-r7-slice1-2026-07-18.md) — ctrl 0.144.0 + felh
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:104: version literal '0.66.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.
|
||||
- [Customer self-bind (R-27 slice 1)](customer-selfbind-shipped-2026-07-18.md) — hub v0.66
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:105: version literal '0.61.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.
|
||||
- [Customer RESET shipped](customer-reset-shipped-2026-07-17.md) — hub 0.61.0 + tenantsync
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md: ... and 19 more version literal(s) — full list from the tally counts above.
|
||||
WARNING: /mnt/5_hdd/felhom.eu/git/.claude-memory/MEMORY.md:60: 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:76: 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:185: 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: 4 top-level topic file(s) are not referenced by MEMORY.md, so nothing will ever read them: f10-demo-hp-offsite-resolved-2026-07-23.md, launcher-v0163-2026-07-24.md, peti-return-p1-stop-2026-07-13.md, stopped-not-fault-v0164-2026-07-24.md
|
||||
|
||||
instructions_gate: OK (11 warning(s))
|
||||
|
||||
==============================================================================
|
||||
== gate: golden-currency (golden_currency_gate.py)
|
||||
==============================================================================
|
||||
newest released controller : 0.349.0 (## v0.349.0 (2026-10-29) — the household line after an operator reboot and the busy file f)
|
||||
newest golden baked : 0.344.0 (documentation/tests/golden-0.344.0-2026-10-26 [sha 767a90fe07ed…])
|
||||
golden age : 3 day(s) (baked 2026-10-26; the limit is 7 — `09` §3 decision 250)
|
||||
|
||||
GOLDEN CURRENCY GATE ADVISORY — the golden (0.344.0) is behind the newest release (v0.349.0, 7 release(s): 0.345.0, 0.345.1, 0.346.0, 0.346.1, 0.347.0, 0.348.0, 0.349.0) but only 3 day(s) old. Releases ride the floor; the golden is weekly (decision 250). A new box installs 0.344.0 and updates itself to the floor.
|
||||
golden currency gate OK — the golden is at most 7 days old (NOTE: the BAKE, not the vouch)
|
||||
|
||||
==============================================================================
|
||||
== gate: wire-contract (wire_contract_gate.py)
|
||||
==============================================================================
|
||||
wire-contract gate — 268 tag(s) checked across 7 declared wire(s); 98 skipped (generic / opaque / allowlisted)
|
||||
agent -> hub (POST /host-report) name-reachability only (a tag found ANYWHERE in hub passes)
|
||||
└ guest_disk_trim FIELD-BY-FIELD both ways against hub internal/sysfacts.DiskTrim (10 path(s))
|
||||
└ line_test FIELD-BY-FIELD both ways against hub internal/sysfacts.LineTest (7 path(s))
|
||||
└ operator_action_results FIELD-BY-FIELD both ways against hub internal/api.hostOperatorActionResult (3 path(s))
|
||||
controller -> hub (POST /report) name-reachability only (a tag found ANYWHERE in hub passes)
|
||||
hub -> controller (report ACK, `escrow` object) FIELD-BY-FIELD against controller internal/report.EscrowStatus (6 path(s))
|
||||
hub -> agent (GET /hosts/<id>/escrow/retained) FIELD-BY-FIELD against agent internal/hub.RetainedEscrowResponse (9 path(s))
|
||||
hub -> controller (report ACK, `operator_actions` entry) FIELD-BY-FIELD against controller internal/report.OperatorAction (3 path(s))
|
||||
hub -> agent (host-report reply, `operator_actions` entry) FIELD-BY-FIELD against agent internal/hub.OperatorAction (3 path(s))
|
||||
controller -> hub (POST /preferences) name-reachability only (a tag found ANYWHERE in hub passes)
|
||||
wire-contract gate OK — every emitted field is at least decodable by its receiver
|
||||
(BLIND SPOTS: generic tag names skipped; name-reachability is not use; only the
|
||||
declared ROOTS are covered — hub desired-state and the agent local API are not.)
|
||||
|
||||
==============================================================================
|
||||
== gate: hub-copy (hub_copy_gate.py)
|
||||
==============================================================================
|
||||
hub-copy gate OK — 154 hub file(s) scanned for 2 retired name(s); 6 customer surface(s) scanned for 8 retrieval pattern(s) (4 hu + 4 en), 1 registered claim(s), none unregistered
|
||||
drift: controller gate imports the shared list (customer_copy_vocab.py) — single source
|
||||
(BLIND SPOT: this checks the WORDS in the 6 declared customer surfaces. It cannot
|
||||
tell whether a true-looking sentence is wired to a predicate that is actually true —
|
||||
that is what render tests are for. And it does not read the operator's screens.)
|
||||
|
||||
==============================================================================
|
||||
== gate: guide-quote (guide_quote_gate.py)
|
||||
==============================================================================
|
||||
guide-quote: 4 quoted messages checked against the controller's English bundle
|
||||
guide-quote gate OK: every quoted message is what the screen says.
|
||||
|
||||
==============================================================================
|
||||
== gate: host-swap-rule (host_swap_rule_gate.py)
|
||||
==============================================================================
|
||||
host-swap-rule: compared the hub's and the controller's host_swap_rule_cases.json, and looked for the test that runs each
|
||||
host-swap-rule gate OK: one rule, byte-identical tables, both run by a test.
|
||||
|
||||
==============================================================================
|
||||
== gate: due-checks (due_checks_gate.py)
|
||||
==============================================================================
|
||||
due-checks gate OK — 6 dated check(s) pending, none due yet.
|
||||
today (UTC): 2026-10-29
|
||||
nearest: R-1228 due 2026-10-30 (in 1 day(s)) — D35 (yes, after the release week): start moving the website + installe
|
||||
(fires on the next PUSH after a date passes, not on the date itself — by design)
|
||||
|
||||
==============================================================================
|
||||
== gate: one-register (one_register_gate.py)
|
||||
==============================================================================
|
||||
one-register gate — ROADMAP rows: 0 done, 28 ideas, 0 open-with-a-register-row, 0 WITHOUT
|
||||
one-register gate OK — every open ROADMAP row has a register counterpart.
|
||||
|
||||
==============================================================================
|
||||
== gate: closed-register (closed_register_gate.py)
|
||||
==============================================================================
|
||||
closed-register gate — 1001 closed rows with a readable state cell, 228 open rows, 0 convicted, 0 warnings
|
||||
closed-register gate OK — no open work filed as closed, no id in both registers.
|
||||
|
||||
==============================================================================
|
||||
== gate: observations (observations_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
observations gate OK — REPORT.md has no observations section (nothing to check)
|
||||
|
||||
==============================================================================
|
||||
== gate: register-shape (register_shape_gate.py)
|
||||
==============================================================================
|
||||
register-shape: /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/backlog/OPEN-ITEMS.md
|
||||
register-shape: 228 register row(s), 228 distinct R- id(s)
|
||||
register-shape: OK — every row ends with a state cell, every id is unique, no blank line splits the table, and every row has its columns, a known category, a P1–P4 severity and a defined state
|
||||
|
||||
==============================================================================
|
||||
== gate: stands (check_stands.py)
|
||||
==============================================================================
|
||||
check_stands — 55 claim(s) in documentation/architecture/where-felhom-stands.yaml
|
||||
statuses: built=12, missing=4, partial=15, walked=24
|
||||
register citations resolved in CLOSED-ITEMS.md: 43
|
||||
|
||||
check_stands: OK — every claim cites a source, every citation resolves, and every 'walked' cites a walk.
|
||||
|
||||
==============================================================================
|
||||
== gate: script-tests (script_tests_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
OK scripts/test_build_sizing_web.py 0.1s rc=0
|
||||
OK scripts/test_dockerfile_arg_order.py 0.0s rc=0
|
||||
OK scripts/test_due_checks_gate.py 0.7s rc=0
|
||||
OK scripts/test_felhom_restore_beside.py 0.5s rc=0
|
||||
OK scripts/test_gate_decoys.py 81.5s rc=0
|
||||
OK scripts/test_golden_currency_gate.py 1.1s rc=0
|
||||
OK scripts/test_guide_quote_gate.py 0.4s rc=0
|
||||
OK scripts/test_host_swap_rule_gate.py 0.2s rc=0
|
||||
OK scripts/test_hostinstall.py 0.6s rc=0
|
||||
OK scripts/test_hu_grep.py 0.0s rc=0
|
||||
OK scripts/test_hub_copy_drift.py 0.0s rc=0
|
||||
OK scripts/test_image_runtime.py 0.1s rc=0
|
||||
OK scripts/test_instructions_gate.py 1.5s rc=0
|
||||
OK scripts/test_iso_bootstrap_gate.py 0.8s rc=0
|
||||
OK scripts/test_no_latest_push.py 0.1s rc=0
|
||||
OK scripts/test_push_scope.py 0.0s rc=0
|
||||
OK scripts/test_read_credential.py 0.1s rc=0
|
||||
OK scripts/test_repo_gates.py 2.6s rc=0
|
||||
OK scripts/test_repo_gates_docstring.py 0.0s rc=0
|
||||
OK scripts/test_repo_gates_scope.py 0.3s rc=0
|
||||
OK scripts/test_reuse_refs_check.py 0.1s rc=0
|
||||
OK scripts/test_script_tests_gate.py 1.1s rc=0
|
||||
OK scripts/test_security_scan_gate.py 6.0s rc=0
|
||||
OK scripts/test_security_watch.py 15.2s rc=0
|
||||
OK scripts/test_status_view_gate.py 1.7s rc=0
|
||||
OK scripts/test_tenantsync_prune.py 0.7s rc=0
|
||||
OK scripts/test_tenantsync_selfcheck.py 1.1s rc=0
|
||||
OK scripts/bench/test_plugcut.py 0.1s rc=0
|
||||
OK scripts/bench/test_plugswitch.py 0.1s rc=0
|
||||
OK scripts/dooplex-offsite/test_dooplex_offsite.py 42.6s rc=0
|
||||
OK scripts/ep0-copy-gc/test_ep0_copy_gc.py 1.2s rc=0
|
||||
OK scripts/facebook/test_fb_probe.py 0.1s rc=0
|
||||
OK scripts/hub-db-backup/test_hub_db_backup.py 5.7s rc=0
|
||||
OK scripts/iso/test/test_bound_banner_clears.py 0.0s rc=0
|
||||
OK scripts/iso/test/test_console_glyphs.py 0.0s rc=0
|
||||
OK scripts/iso/test/test_rootpw_guard.py 0.1s rc=0
|
||||
OK scripts/release-copy/test_release_copy.py 0.2s rc=0
|
||||
script-tests: OK — 37 suite(s) ran, every one exited 0
|
||||
|
||||
==============================================================================
|
||||
== gate: decoy-coverage (decoy_coverage_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu /mnt/5_hdd/felhom.eu/git/felhom-controller /mnt/5_hdd/felhom.eu/git/felhom-agent /mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu)
|
||||
==============================================================================
|
||||
decoy-coverage gate — 79 registered gate(s): 79 with a decoy, 0 registered exempt, 0 UNACCOUNTED
|
||||
COVERED app-catalog-felhom.eu catalog-since the date bumped in a comment/README while .felhom.yml's fiel
|
||||
COVERED app-catalog-felhom.eu copy-i18n Hungarian edited in a COMMENT/README/display_name (label, no
|
||||
COVERED app-catalog-felhom.eu data-key a data_key: true only in a COMMENT or inside the i18n: block
|
||||
COVERED app-catalog-felhom.eu db-credentials the password variable only in a COMMENT; the same reference
|
||||
COVERED app-catalog-felhom.eu download-binds the download target `/downloads` only in a COMMENT, `class:
|
||||
COVERED app-catalog-felhom.eu engine-major the major moved in a comment/env var/README/app image, not o
|
||||
COVERED app-catalog-felhom.eu family-gate family_gate written only in a COMMENT (not gated, no min_con
|
||||
COVERED app-catalog-felhom.eu gate-decoys this suite, run as a gate of the full run (R-1115): every ca
|
||||
COVERED app-catalog-felhom.eu guide-version ADVISORY, exit 0 always: checked_version written only in a C
|
||||
COVERED app-catalog-felhom.eu image-pins the pin's LABEL without the pin: a registry PORT (`:5000`) r
|
||||
COVERED app-catalog-felhom.eu image-resolvable END TO END through the gate's own `docker manifest inspect`
|
||||
COVERED app-catalog-felhom.eu image-volumes the data path mounted only in a COMMENT, on ANOTHER service
|
||||
COVERED app-catalog-felhom.eu login-kind login_kind written only in a COMMENT, only inside the Englis
|
||||
COVERED app-catalog-felhom.eu mem-limit-sum the right figure only in a COMMENT (the compose header's 'me
|
||||
COVERED app-catalog-felhom.eu onboarding a NEW template with no record; a record missing an id, or ca
|
||||
COVERED app-catalog-felhom.eu privileges a dangerous key only in a COMMENT, `privileged: false`, `no-
|
||||
COVERED app-catalog-felhom.eu probe-matches-compose the probe TARGET resolves by exact name, explicit `container
|
||||
COVERED app-catalog-felhom.eu probe-measured the measurement written in the TAGLINE or another comment bl
|
||||
COVERED app-catalog-felhom.eu redis-persistence `--appendonly yes` only in a COMMENT, or only in a steps/ fi
|
||||
COVERED app-catalog-felhom.eu security-scan R-986: the shared gate's own decoys (felhom.eu scripts/test_
|
||||
COVERED app-catalog-felhom.eu test-record a ladder whose newest step is not the compose's images (a mo
|
||||
COVERED app-catalog-felhom.eu test-record-move an image move with NO entry, with the entry only in a COMMEN
|
||||
COVERED app-catalog-felhom.eu unclean-boot-images the new image only in a compose COMMENT, on ANOTHER service
|
||||
COVERED app-catalog-felhom.eu upstream R-1303: the upstream line only in a COMMENT, under ANOTHER k
|
||||
COVERED app-catalog-felhom.eu volume-persistence the classifier and the self-test via the injected-prober sui
|
||||
COVERED felhom-agent gate-decoys this suite, run as a gate of agent_gates.py's full run, whic
|
||||
COVERED felhom-agent gofmt R-1160: an unformatted .go file planted under internal/ of a
|
||||
COVERED felhom-agent instructions a component version literal in THIS repo's CLAUDE.md effecti
|
||||
COVERED felhom-agent observations R-419 in THIS repo's REPORT.md: an Observations note SAYING
|
||||
COVERED felhom-agent published against a FAKE Gitea: a tag whose package 404s, a tag whose
|
||||
COVERED felhom-agent release-complete the newest `## vX.Y.Z` with no tag anywhere, a tag parked on
|
||||
COVERED felhom-agent reuse-refs a cited .go and a cited .md path that do not exist, planted
|
||||
COVERED felhom-agent security-scan R-986: the shared gate's own decoys (felhom.eu scripts/test_
|
||||
COVERED felhom-controller app-row-dedup hand-rolled row markup in partials/, AND a commented-out par
|
||||
COVERED felhom-controller debug-routes a live dispatcher case commented out - the button survives,
|
||||
COVERED felhom-controller docker-v R-426: an unallowlisted `-v /etc:/x` in a NEW .go file two d
|
||||
COVERED felhom-controller emoji an emoji in templates/partials/ (scope was os.listdir)
|
||||
COVERED felhom-controller gate-decoys this suite, run as a gate of controller_gates.py's full run
|
||||
COVERED felhom-controller go-parity a Go-side key REWORDED, a key citing text no base literal ha
|
||||
COVERED felhom-controller gofmt R-454: a planted unformatted .go file in internal/ is convic
|
||||
COVERED felhom-controller golden-notice R-410 in the other direction: an empty dir must not count as
|
||||
COVERED felhom-controller i18n an undefined marker key, a pleading English value, a shrinki
|
||||
COVERED felhom-controller instructions R-426: a component version literal in THIS repo's CLAUDE.md
|
||||
COVERED felhom-controller minagent-header the word MinAgent in prose / a code span, not the header lin
|
||||
COVERED felhom-controller mojibake CONTROL: already walked; proves the planted file is really r
|
||||
COVERED felhom-controller native-confirm a native confirm() in templates/partials/
|
||||
COVERED felhom-controller observations R-426: R-419 in THIS repo's REPORT.md - an Observations note
|
||||
COVERED felhom-controller offbox-rename R-425: NAS branding in a NEW backups*.html, and in a bundle
|
||||
COVERED felhom-controller retrieval-promise an unregistered retrieval promise, in partials/; R-325: the
|
||||
COVERED felhom-controller reuse-refs R-426: a cited .go and a cited .md path that do not exist, p
|
||||
COVERED felhom-controller secret-markup a secret templated into markup, in partials/
|
||||
COVERED felhom-controller security-scan R-986: the shared gate's own decoys (felhom.eu scripts/test_
|
||||
COVERED felhom-controller template-id a JS reference to a missing id, in partials/
|
||||
COVERED felhom-controller upstream R-1303: a scratch controller tree - a NEW *Image const with
|
||||
COVERED felhom.eu closed-register a verdict cell reading open, a row with no state cell at all
|
||||
COVERED felhom.eu decoy-coverage a gate registered in a runner with no decoy and no exemption
|
||||
COVERED felhom.eu due-checks R-426: a dated check whose id survives only in prose (orphan
|
||||
COVERED felhom.eu golden-currency R-410: an empty directory with a perfect name, checked by wh
|
||||
COVERED felhom.eu guide-quote R-596: SEVEN cases in scripts/test_guide_quote_gate.py, run
|
||||
COVERED felhom.eu host-swap-rule R-1216: FOUR cases in scripts/test_host_swap_rule_gate.py, r
|
||||
COVERED felhom.eu hostinstall R-426: R-185's regression with only its dry-run echo left, t
|
||||
COVERED felhom.eu hostinstall-harness R-1146: the vault-after-set order of step 4b put back (R-114
|
||||
COVERED felhom.eu hub-confirm a native confirm() in templates/partials/ (scope was os.list
|
||||
COVERED felhom.eu hub-copy R-558: an English retrieval promise in the NEW bundle (the s
|
||||
COVERED felhom.eu hub-gofmt R-1160: an unformatted .go file in a SCRATCH module dir is c
|
||||
COVERED felhom.eu instructions R-426: a version literal in a CLAUDE.md's effective text; th
|
||||
COVERED felhom.eu iso-bootstrap R-502: SIX decoys + the genuine article in scripts/test_iso_
|
||||
COVERED felhom.eu manifest-bearer a bearer literal in manifests/overlays/ (scope was os.listdi
|
||||
COVERED felhom.eu observations R-419: prose SAYING it carries no marker, plus both genuine
|
||||
COVERED felhom.eu one-register R-426: an open roadmap row whose state NAMES another row's C
|
||||
COVERED felhom.eu poster-facts a throwaway repo where the FACTS file is committed after the
|
||||
COVERED felhom.eu register-shape R-627: a row whose state cell was EATEN (no trailing pipe),
|
||||
COVERED felhom.eu reuse-refs a cited .go path, and (R-422) a cited .md path, that does no
|
||||
COVERED felhom.eu script-tests R-885: FIVE cases in scripts/test_script_tests_gate.py, run
|
||||
COVERED felhom.eu security-scan R-986: EIGHT cases in scripts/test_security_scan_gate.py, ru
|
||||
COVERED felhom.eu site R-423: a NEW page under website/ that PAGES does not list (t
|
||||
COVERED felhom.eu stands R-819: a stand citing a register id that exists in NEITHER r
|
||||
COVERED felhom.eu status-view R-1174: scripts/test_status_view_gate.py, run from here (tem
|
||||
COVERED felhom.eu wire-contract R-555: an emitted tag whose name the receiver carries ONLY i
|
||||
|
||||
decoy-coverage gate OK — every registered gate has a decoy or a named exemption (R-426)
|
||||
|
||||
==============================================================================
|
||||
== gate: poster-facts (poster_facts_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
poster-facts gate - advisory, never fails a push
|
||||
poster is current: the drawing is as new as its facts (poster +0 s relative to facts)
|
||||
|
||||
==============================================================================
|
||||
== gate: hub-gofmt (hub_gofmt_gate.py)
|
||||
==============================================================================
|
||||
gofmt gate OK — every Go file under cmd, internal is gofmt-clean
|
||||
|
||||
==============================================================================
|
||||
== gate: security-scan (security_scan_gate.py /mnt/5_hdd/felhom.eu/git/felhom.eu)
|
||||
==============================================================================
|
||||
security-scan (R-986, WARN-FIRST — it lists, it never refuses): /mnt/5_hdd/felhom.eu/git/felhom.eu
|
||||
govulncheck hub: 0 called vulnerabilities (1 imported or required only, not listed)
|
||||
gitleaks 8.24.3 on -n 1 HEAD (the newest commit; nothing unpushed): 0 hit(s)
|
||||
security-scan: 0 new hit(s), 0 accepted — warn-first, the push goes on
|
||||
|
||||
==============================================================================
|
||||
== gate: status-view (status_view_gate.py)
|
||||
==============================================================================
|
||||
status-view: /mnt/5_hdd/felhom.eu/git/felhom.eu/STATUS.md
|
||||
status-view: 50 lines / 5661 characters outside „decide” (limits 50 / 6000); decide table 4 row(s)
|
||||
status-view: 50 R-id(s) cited, checked against 228 open register rows; 2 P1 row(s); 43 operator-owned row(s)
|
||||
status-view: OK — one screen, one „Updated” paragraph, English, every cited row open, no finished decision, the P1 and every operator-owned row on the page
|
||||
|
||||
==============================================================================
|
||||
== summary
|
||||
==============================================================================
|
||||
site OK (exit 0)
|
||||
hostinstall OK (exit 0)
|
||||
hostinstall-harness OK (exit 0)
|
||||
hub-confirm OK (exit 0)
|
||||
manifest-bearer OK (exit 0)
|
||||
reuse-refs OK (exit 0)
|
||||
instructions OK (exit 0)
|
||||
golden-currency OK (exit 0)
|
||||
wire-contract OK (exit 0)
|
||||
hub-copy OK (exit 0)
|
||||
guide-quote OK (exit 0)
|
||||
host-swap-rule OK (exit 0)
|
||||
due-checks OK (exit 0)
|
||||
one-register OK (exit 0)
|
||||
closed-register OK (exit 0)
|
||||
observations OK (exit 0)
|
||||
register-shape OK (exit 0)
|
||||
stands OK (exit 0)
|
||||
script-tests OK (exit 0)
|
||||
decoy-coverage OK (exit 0)
|
||||
poster-facts OK (exit 0)
|
||||
hub-gofmt OK (exit 0)
|
||||
security-scan OK (exit 0)
|
||||
status-view OK (exit 0)
|
||||
|
||||
all felhom.eu gates OK
|
||||
@@ -0,0 +1,3 @@
|
||||
20:11:19 controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up 4 minutes (healthy)
|
||||
20:11:21 dashboard line: A Felhom ügyfélszolgálata 20:05-kor újraindította a dobozt.
|
||||
20:11:21 ASCII control: 'jraind' in page = True; 'Vez' (the page title) in page = True
|
||||
@@ -0,0 +1,2 @@
|
||||
2026/10/29 20:05:44 [INFO] host operator action #16 reboot_guest 9201 requested for host tester-1-d70be4 by access token "cc-hosts" from 10.42.0.1 — the agent acts on its next report (poked now)
|
||||
2026/10/29 20:07:09 [INFO] host operator action #16 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): done — rebooted; the guest was up after 66 s, the controller answered after 78 s
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-29T19:05:44Z
|
||||
@@ -0,0 +1,4 @@
|
||||
felhom-agent 0.170.0
|
||||
gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up 44 minutes (healthy)
|
||||
up 59 minutes
|
||||
gitea.dooplex.hu/admin/felhom-hub:0.177.0
|
||||
@@ -0,0 +1,9 @@
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up 4 minutes (healthy)
|
||||
containers: 10 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T19:05:40Z: 0
|
||||
ERROR lines since: 2
|
||||
2026/10/29 19:07:02 [ERROR] [stacks] Command failed: docker compose up -d (in /opt/docker/stacks/filebrowser) — exit code 1 (took 0.2s)
|
||||
2026/10/29 19:07:02 [ERROR] [stacks] stderr (last part): ...emon: Conflict. The container name "/527127d9f0e7_filebrowser" is already in use by container "7e7d0ebeddd4d4d3ab4cc58fb31dc33bb0aa977d5b79275f1ef0e205fdc3b35e"
|
||||
login page: 200
|
||||
file manager: 200
|
||||
@@ -0,0 +1,15 @@
|
||||
2026/10/29 18:57:48 [INFO] Artifact manifest set: agent=0.170.0 golden=0.344.0 min_agent="0.158.1" wrapper_sha=false bundle_sha="03f2ff6442fc3ca600b1f25f26767ce4da466a770a258f3e362cf95f6e76b543"
|
||||
2026/10/29 18:57:48 [INFO] artifact vouch timing (R-1346): registry probes 65ms, sha lookups 27ms, bundle sha 43ms, fleet check + save 38117ms, total 38255ms
|
||||
2026/10/29 18:57:48 [WARN] slow request: POST /configuration/artifacts 303 38255ms (over 5s)
|
||||
2026/10/29 19:03:36 [INFO] operator action #11 offsite_backup_now requested for tester-1 (host tester-1-d70be4) by access token "cc-hosts" from 10.42.0.1 — the box acts on its next report
|
||||
2026/10/29 19:03:39 [DEBUG] operator actions listed for tester-1: 1
|
||||
2026/10/29 19:03:55 [INFO] host operator action #12 reboot_guest 9201 requested for host tester-1-d70be4 by access token "cc-hosts" from 10.42.0.1 — the agent acts on its next report (poked now)
|
||||
2026/10/29 19:04:03 [INFO] host operator action #12 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): refused — refused: the controller is busy — a backup, a restore or an off-site run is running
|
||||
2026/10/29 19:04:41 [INFO] operator action #11 offsite_backup_now for tester-1 (pressed by access token "cc-hosts" from 10.42.0.1): done — the off-site backup finished
|
||||
2026/10/29 19:05:08 [INFO] host operator action #13 reboot_guest 9201 requested for host tester-1-d70be4 by access token "cc-hosts" from 10.42.0.1 — the agent acts on its next report (poked now)
|
||||
2026/10/29 19:06:34 [INFO] host operator action #13 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): done — rebooted; the guest was up after 67 s, the controller answered after 79 s
|
||||
2026/10/29 19:08:06 [INFO] host operator action #14 reboot_guest 9201 requested for host tester-1-d70be4 by access token "cc-hosts" from 10.42.0.1 — the agent acts on its next report (poked now)
|
||||
2026/10/29 19:08:15 [INFO] host operator action #14 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): refused — refused: guest 9201 was rebooted from the hub at 18:05 UTC — at most one reboot per hour (next from 19:05 UTC)
|
||||
2026/10/29 19:10:41 [INFO] operator action #15 clear_hold gokapi requested for tester-1 (host tester-1-d70be4) by access token "cc-hosts" from 10.42.0.1 — the box acts on its next report
|
||||
2026/10/29 19:10:44 [DEBUG] operator actions listed for tester-1: 1
|
||||
2026/10/29 19:11:00 [INFO] operator action #15 clear_hold gokapi for tester-1 (pressed by access token "cc-hosts" from 10.42.0.1): done — the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, starts it
|
||||
@@ -0,0 +1,5 @@
|
||||
2026/10/29 18:06:27 [INFO] [web] the operator rebooted this box from the hub at 2026-10-29T18:05:11Z — the dashboard says so for a day
|
||||
Oct 29 19:04:00 felhom felhom-agent[1103818]: time=2026-10-29T19:04:00.261+01:00 level=WARN msg="audit: operator action" id=12 action=reboot_guest arg=9201 by="the operator via the hub" outcome=refused message="refused: the controller is busy — a backup, a restore or an off-site run is running"
|
||||
Oct 29 19:05:12 felhom felhom-agent[1103818]: time=2026-10-29T19:05:12.785+01:00 level=WARN msg="operator reboot: REBOOTING the guest on the operator's press" vmid=9201 action_id=13
|
||||
Oct 29 19:06:31 felhom felhom-agent[1103818]: time=2026-10-29T19:06:31.381+01:00 level=WARN msg="audit: operator action" id=13 action=reboot_guest arg=9201 by="the operator via the hub" outcome=done message="rebooted; the guest was up after 67 s, the controller answered after 79 s"
|
||||
{"at":"2026-10-29T18:05:11.822804148Z","action_id":13,"guest_up_after_s":67,"controller_after_s":79}
|
||||
@@ -0,0 +1,2 @@
|
||||
2026/10/29 19:06:34 [INFO] host operator action #13 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): done — rebooted; the guest was up after 67 s, the controller answered after 79 s
|
||||
result seen at 18:06:36
|
||||
@@ -0,0 +1 @@
|
||||
2026/10/29 19:08:15 [INFO] host operator action #14 reboot_guest 9201 on tester-1-d70be4 (pressed by access token "cc-hosts" from 10.42.0.1): refused — refused: guest 9201 was rebooted from the hub at 18:05 UTC — at most one reboot per hour (next from 19:05 UTC)
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-29T18:05:08Z
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-29T18:03:36Z
|
||||
@@ -0,0 +1,115 @@
|
||||
Oct 29 18:55:05 felhom felhom-agent[1103818]: time=2026-10-29T18:55:05.758+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:55:06 felhom sudo[1254811]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:55:25 felhom felhom-agent[1103818]: time=2026-10-29T18:55:25.723+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:55:45 felhom felhom-agent[1103818]: time=2026-10-29T18:55:45.730+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:56:05 felhom felhom-agent[1103818]: time=2026-10-29T18:56:05.765+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:56:06 felhom sudo[1256154]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:56:25 felhom felhom-agent[1103818]: time=2026-10-29T18:56:25.724+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:56:45 felhom felhom-agent[1103818]: time=2026-10-29T18:56:45.748+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:57:05 felhom felhom-agent[1103818]: time=2026-10-29T18:57:05.785+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:57:06 felhom sudo[1257510]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:57:15 felhom sudo[1258065]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:57:25 felhom felhom-agent[1103818]: time=2026-10-29T18:57:25.731+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:57:45 felhom felhom-agent[1103818]: time=2026-10-29T18:57:45.740+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:57:52 felhom sudo[1259039]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:58:05 felhom felhom-agent[1103818]: time=2026-10-29T18:58:05.801+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:58:06 felhom sudo[1259392]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:58:25 felhom felhom-agent[1103818]: time=2026-10-29T18:58:25.727+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:58:45 felhom felhom-agent[1103818]: time=2026-10-29T18:58:45.808+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:59:05 felhom felhom-agent[1103818]: time=2026-10-29T18:59:05.792+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:59:06 felhom sudo[1260742]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 18:59:25 felhom felhom-agent[1103818]: time=2026-10-29T18:59:25.737+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 18:59:45 felhom felhom-agent[1103818]: time=2026-10-29T18:59:45.729+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:00:05 felhom felhom-agent[1103818]: time=2026-10-29T19:00:05.831+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:00:06 felhom sudo[1263252]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:00:25 felhom felhom-agent[1103818]: time=2026-10-29T19:00:25.749+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:00:45 felhom felhom-agent[1103818]: time=2026-10-29T19:00:45.773+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:01:05 felhom felhom-agent[1103818]: time=2026-10-29T19:01:05.823+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:01:06 felhom sudo[1264659]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:01:25 felhom felhom-agent[1103818]: time=2026-10-29T19:01:25.729+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:01:45 felhom felhom-agent[1103818]: time=2026-10-29T19:01:45.752+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:02:05 felhom felhom-agent[1103818]: time=2026-10-29T19:02:05.786+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:02:06 felhom sudo[1266046]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:02:25 felhom felhom-agent[1103818]: time=2026-10-29T19:02:25.741+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:02:45 felhom felhom-agent[1103818]: time=2026-10-29T19:02:45.768+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:03:05 felhom felhom-agent[1103818]: time=2026-10-29T19:03:05.811+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:03:06 felhom sudo[1267488]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:03:25 felhom felhom-agent[1103818]: time=2026-10-29T19:03:25.732+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:03:45 felhom felhom-agent[1103818]: time=2026-10-29T19:03:45.844+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:03:58 felhom sudo[1270180]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:04:00 felhom felhom-agent[1103818]: time=2026-10-29T19:04:00.261+01:00 level=WARN msg="audit: operator action" id=12 action=reboot_guest arg=9201 by="the operator via the hub" outcome=refused message="refused: the controller is busy — a backup, a restore or an off-site run is running"
|
||||
Oct 29 19:04:03 felhom sudo[1270909]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:04:05 felhom felhom-agent[1103818]: time=2026-10-29T19:04:05.758+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:04:06 felhom sudo[1271264]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:04:25 felhom felhom-agent[1103818]: time=2026-10-29T19:04:25.759+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:04:45 felhom felhom-agent[1103818]: time=2026-10-29T19:04:45.798+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:05:05 felhom felhom-agent[1103818]: time=2026-10-29T19:05:05.787+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:05:06 felhom sudo[1274352]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:05:11 felhom sudo[1274648]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:05:12 felhom felhom-agent[1103818]: time=2026-10-29T19:05:12.785+01:00 level=WARN msg="operator reboot: REBOOTING the guest on the operator's press" vmid=9201 action_id=13
|
||||
Oct 29 19:05:12 felhom felhom-agent[1103818]: time=2026-10-29T19:05:12.785+01:00 level=WARN msg="guest-reboot: rebooting guest to activate pending mountpoint binds" vmid=9201
|
||||
Oct 29 19:05:12 felhom sudo[1274674]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/pct reboot 9201
|
||||
Oct 29 19:05:13 felhom pct[1274762]: requesting reboot of CT 9201: UPID:felhom:0013738A:004C67BD:6AE38AD9:vzreboot:9201:root@pam:
|
||||
Oct 29 19:05:13 felhom pct[1274676]: <root@pam> starting task UPID:felhom:0013738A:004C67BD:6AE38AD9:vzreboot:9201:root@pam:
|
||||
Oct 29 19:05:25 felhom felhom-agent[1103818]: time=2026-10-29T19:05:25.823+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:05:45 felhom felhom-agent[1103818]: time=2026-10-29T19:05:45.862+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:06:05 felhom felhom-agent[1103818]: time=2026-10-29T19:06:05.881+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:06:06 felhom sudo[1275692]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:06:20 felhom pct[1274676]: <root@pam> end task UPID:felhom:0013738A:004C67BD:6AE38AD9:vzreboot:9201:root@pam: OK
|
||||
Oct 29 19:06:20 felhom felhom-agent[1103818]: time=2026-10-29T19:06:20.054+01:00 level=INFO msg="guest-reboot: guest back up" vmid=9201
|
||||
Oct 29 19:06:25 felhom felhom-agent[1103818]: time=2026-10-29T19:06:25.957+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:06:31 felhom felhom-agent[1103818]: time=2026-10-29T19:06:31.381+01:00 level=WARN msg="audit: operator action" id=13 action=reboot_guest arg=9201 by="the operator via the hub" outcome=done message="rebooted; the guest was up after 67 s, the controller answered after 79 s"
|
||||
Oct 29 19:06:34 felhom sudo[1279438]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:06:45 felhom felhom-agent[1103818]: time=2026-10-29T19:06:45.785+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:07:06 felhom felhom-agent[1103818]: time=2026-10-29T19:07:06.193+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:07:06 felhom sudo[1280719]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:07:25 felhom felhom-agent[1103818]: time=2026-10-29T19:07:25.741+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:07:45 felhom felhom-agent[1103818]: time=2026-10-29T19:07:45.748+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:08:05 felhom felhom-agent[1103818]: time=2026-10-29T19:08:05.725+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:08:06 felhom sudo[1282260]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:08:11 felhom sudo[1282666]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:08:11 felhom felhom-agent[1103818]: time=2026-10-29T19:08:11.702+01:00 level=WARN msg="audit: operator action" id=14 action=reboot_guest arg=9201 by="the operator via the hub" outcome=refused message="refused: guest 9201 was rebooted from the hub at 18:05 UTC — at most one reboot per hour (next from 19:05 UTC)"
|
||||
Oct 29 19:08:14 felhom sudo[1282963]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:08:25 felhom felhom-agent[1103818]: time=2026-10-29T19:08:25.747+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:08:45 felhom felhom-agent[1103818]: time=2026-10-29T19:08:45.752+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:09:05 felhom felhom-agent[1103818]: time=2026-10-29T19:09:05.751+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:09:06 felhom sudo[1284207]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:09:25 felhom felhom-agent[1103818]: time=2026-10-29T19:09:25.719+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:09:45 felhom felhom-agent[1103818]: time=2026-10-29T19:09:45.769+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:10:05 felhom felhom-agent[1103818]: time=2026-10-29T19:10:05.782+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:10:06 felhom sudo[1287002]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:10:25 felhom felhom-agent[1103818]: time=2026-10-29T19:10:25.758+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:10:45 felhom felhom-agent[1103818]: time=2026-10-29T19:10:45.770+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:11:05 felhom felhom-agent[1103818]: time=2026-10-29T19:11:05.824+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:11:06 felhom sudo[1288842]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:11:25 felhom felhom-agent[1103818]: time=2026-10-29T19:11:25.752+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:11:45 felhom felhom-agent[1103818]: time=2026-10-29T19:11:45.777+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:12:05 felhom felhom-agent[1103818]: time=2026-10-29T19:12:05.740+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:12:06 felhom sudo[1290712]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:12:12 felhom sudo[1291155]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:12:25 felhom felhom-agent[1103818]: time=2026-10-29T19:12:25.747+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:12:45 felhom felhom-agent[1103818]: time=2026-10-29T19:12:45.743+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:13:05 felhom felhom-agent[1103818]: time=2026-10-29T19:13:05.805+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:13:06 felhom sudo[1292320]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:13:25 felhom felhom-agent[1103818]: time=2026-10-29T19:13:25.723+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:13:45 felhom felhom-agent[1103818]: time=2026-10-29T19:13:45.743+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:14:05 felhom felhom-agent[1103818]: time=2026-10-29T19:14:05.787+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:14:06 felhom sudo[1293685]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:14:25 felhom felhom-agent[1103818]: time=2026-10-29T19:14:25.751+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:14:45 felhom felhom-agent[1103818]: time=2026-10-29T19:14:45.751+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:15:05 felhom felhom-agent[1103818]: time=2026-10-29T19:15:05.774+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:15:06 felhom sudo[1295056]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:15:25 felhom felhom-agent[1103818]: time=2026-10-29T19:15:25.757+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:15:45 felhom felhom-agent[1103818]: time=2026-10-29T19:15:45.755+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:16:05 felhom felhom-agent[1103818]: time=2026-10-29T19:16:05.768+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:16:06 felhom sudo[1296407]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:16:25 felhom felhom-agent[1103818]: time=2026-10-29T19:16:25.765+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:16:45 felhom felhom-agent[1103818]: time=2026-10-29T19:16:45.794+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:17:05 felhom felhom-agent[1103818]: time=2026-10-29T19:17:05.788+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:17:06 felhom sudo[1298120]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:17:25 felhom felhom-agent[1103818]: time=2026-10-29T19:17:25.718+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:17:45 felhom felhom-agent[1103818]: time=2026-10-29T19:17:45.748+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:18:05 felhom felhom-agent[1103818]: time=2026-10-29T19:18:05.756+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:18:06 felhom sudo[1299839]: felhom-agent : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nft list set inet felhom_oob operator_ips
|
||||
Oct 29 19:18:25 felhom felhom-agent[1103818]: time=2026-10-29T19:18:25.736+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
Oct 29 19:18:45 felhom felhom-agent[1103818]: time=2026-10-29T19:18:45.771+01:00 level=INFO msg="reconcile: enrolled drive bound under shared parent (live, no reboot)" vmid=9201 where=/mnt/adatlemez guest_path=/mnt/felhom-drives/adatlemez durable_id=uuid:863c67fd-3e21-4d9f-9a74-3c5fa406f2a2
|
||||
@@ -0,0 +1,47 @@
|
||||
2026/10/29 18:06:27 [INFO] [scheduler] Registered periodic job: hold-report (every 1m0s)
|
||||
2026/10/29 18:06:27 [INFO] [scheduler] Registered periodic job: deadapp-check (every 30s)
|
||||
2026/10/29 18:06:27 [INFO] [report] hub wait channel active (hold ≤240s)
|
||||
2026/10/29 18:06:27 [INFO] [web] the operator rebooted this box from the hub at 2026-10-29T18:05:11Z — the dashboard says so for a day
|
||||
2026/10/29 18:06:32 [INFO] Event pushed: controller_started (info) [hu-only] — Controller elindult (0.349.0-rc.1)
|
||||
2026/10/29 18:06:57 [INFO] [deadapp] boot grace 1m30s: the host's last boot was clean (R-856)
|
||||
2026/10/29 18:07:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:07:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:08:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:08:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:09:11 [INFO] Event pushed: app_deploy_started (info) [hu-only] — Alkalmazás telepítése elindult: Gokapi
|
||||
2026/10/29 18:09:17 [INFO] Event pushed: app_deployed (info) [hu-only] — Alkalmazás telepítve: Gokapi
|
||||
2026/10/29 18:09:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:09:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:09:57 [WARN] [deadapp] gokapi: crash_loop — 8 in 10m0s; STOPPING it (decision 28)
|
||||
2026/10/29 18:09:57 [WARN] [settings] restore hold SET for gokapi — the app stays stopped until it is cleared
|
||||
2026/10/29 18:09:57 [INFO] Event pushed: app_stopped_unhealthy (warning) [hu-only] — A(z) gokapi alkalmazást ismét leállítottuk, mert újra és újra összeomlott (vagy elfogyott a memóriája). A Felhom ügyfélszolgálatát értesítettük.
|
||||
2026/10/29 18:10:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:10:27 [INFO] [holdreport] gokapi held (unhealthy_stop since 2026-10-29T18:09:57Z) — reported to the hub
|
||||
2026/10/29 18:10:27 [INFO] [scheduler] Job hold-report completed (took 3ms)
|
||||
2026/10/29 18:10:27 [INFO] Event pushed: app_held (info) [hu-only] — App gokapi is held: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try
|
||||
2026/10/29 18:10:44 [INFO] [opaction] operator action #15 received: clear_hold
|
||||
2026/10/29 18:10:44 [INFO] [stacks] desired state for gokapi recorded as "stopped" (was "running")
|
||||
2026/10/29 18:10:44 [INFO] [hold] gokapi: the stop is recorded as wanted (desired state: stopped) — no dead-app alarm; the household's Start ends it (R-1350)
|
||||
2026/10/29 18:10:44 [INFO] [settings] restore hold CLEARED for gokapi
|
||||
2026/10/29 18:10:44 [WARN] [hold] gokapi: hold CLEARED by the operator via the hub, action #15 — it was unhealthy_stop (set 2026-10-29T18:09:57Z); the app is not started by this
|
||||
2026/10/29 18:10:44 [INFO] [opaction] operator action #15 clear_hold: done — the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, s
|
||||
2026/10/29 18:11:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:11:27 [INFO] [holdreport] gokapi hold cleared — reported to the hub
|
||||
2026/10/29 18:11:27 [INFO] [scheduler] Job hold-report completed (took 1ms)
|
||||
2026/10/29 18:11:27 [INFO] Event pushed: app_hold_cleared (info) [hu-only] — App gokapi is no longer held
|
||||
2026/10/29 18:12:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:12:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:13:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:13:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:14:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:14:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:15:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:15:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:16:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:16:27 [INFO] [scheduler] Job hold-report completed (took 2ms)
|
||||
2026/10/29 18:17:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:17:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
2026/10/29 18:17:27 [INFO] [deadapp] check alive: 20 scans since boot, 4 deployed app(s) evaluated, 0 currently down
|
||||
2026/10/29 18:18:25 [INFO] Event pushed: app_removed (info) [hu-only] — Alkalmazás eltávolítva: gokapi
|
||||
2026/10/29 18:18:27 [INFO] [scheduler] Running job: hold-report
|
||||
2026/10/29 18:18:27 [INFO] [scheduler] Job hold-report completed (took 0s)
|
||||
@@ -0,0 +1,7 @@
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up About a minute (healthy)
|
||||
containers: 10 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T18:05:00Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
@@ -0,0 +1,7 @@
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up 5 minutes (healthy)
|
||||
containers: 10 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T17:59:00Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
@@ -0,0 +1,24 @@
|
||||
19:10:34 === phase clear at 2026-10-29T18:10:34Z
|
||||
19:10:37 controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up 4 minutes (healthy)
|
||||
19:10:41 [before] api: state=stopped hold='Az alkalmazást ismét leállítottuk, mert újra és újra összeomlott (vagy elfogyott a memóriája). A Felhom ügyfélszolgálatát értesítettük. Az Indítás gombbal újra megpróbálhatod.' | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
['gokapi']
|
||||
19:10:41 press: HTTP/1.1 303 See Other | Location: /hosts/tester-1-d70be4#operator-actions
|
||||
19:11:02 hub result: 2026/10/29 19:11:00 [INFO] operator action #15 clear_hold gokapi for tester-1 (pressed by access token "cc-hosts" from 10.42.0.1): done — the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, starts it
|
||||
19:11:05 box log: 2026/10/29 18:10:44 [INFO] [opaction] operator action #15 received: clear_hold
|
||||
2026/10/29 18:10:44 [INFO] [settings] restore hold CLEARED for gokapi
|
||||
2026/10/29 18:10:44 [WARN] [hold] gokapi: hold CLEARED by the operator via the hub, action #15 — it was unhealthy_stop (set 2026-10-29T18:09:57Z); the app is not started by this
|
||||
2026/10/29 18:10:44 [INFO] [opaction] operator action #15 clear_hold: done — the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, starts it
|
||||
|
||||
19:11:08 [after clear] api: state=stopped hold=None | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
[]
|
||||
19:11:49 next settings save: 2026/10/29 18:11:27 [INFO] [settings] Settings saved
|
||||
19:11:52 [after the next save] api: state=stopped hold=None | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
[]
|
||||
19:13:02 hub page: No app is held on this box. | clear_hold gokapi | the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T18:09:57Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, starts it | clear_hold gokapi | the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29
|
||||
19:13:03 hub held-apps log: 1 'no longer held' line(s)
|
||||
19:13:07 R-1350 record: 2026/10/29 18:10:44 [INFO] [stacks] desired state for gokapi recorded as "stopped" (was "running")
|
||||
2026/10/29 18:10:44 [INFO] [hold] gokapi: the stop is recorded as wanted (desired state: stopped) — no dead-app alarm; the household's Start ends it (R-1350)
|
||||
|
||||
19:13:10 api after: {"state": "stopped", "hold_reason": null} desired=desired_state: stopped
|
||||
19:17:14 app_start_failed since the clear (R-1350; want none): []
|
||||
19:17:17 positive control — the dead-app scan ran meanwhile:
|
||||
@@ -0,0 +1,17 @@
|
||||
19:09:08 === phase hold at 2026-10-29T18:09:08Z
|
||||
19:09:11 controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up 2 minutes (healthy)
|
||||
19:09:11 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['GOKAPI_PASSWORD']
|
||||
19:09:11 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||||
19:09:31 [1] deployed, controller state=running, pinned={'gokapi': 'f0rc3/gokapi:v1.9.6'}
|
||||
19:09:38 compose: 16: image: f0rc3/gokapi:v1.9.6
|
||||
22: entrypoint:
|
||||
19:09:39 Restart → 200 {'ok': True, 'data': {'state': 'restarting'}, 'message': 'Stack gokapi restart requested — state now: restarting'}
|
||||
19:10:03 [held] api: state=stopped hold='Az alkalmazást ismét leállítottuk, mert újra és újra összeomlott (vagy elfogyott a memóriája). A Felhom ügyfélszolgálatát értesítettük. Az Indítás gombbal újra megpróbálhatod.' | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
['gokapi']
|
||||
19:10:06 box log: 2026/10/29 18:09:57 [WARN] [deadapp] gokapi: crash_loop — 8 in 10m0s; STOPPING it (decision 28)
|
||||
2026/10/29 18:09:57 [INFO] [stacks] Stack gokapi stopped successfully (took 0.1s)
|
||||
2026/10/29 18:09:57 [WARN] [settings] restore hold SET for gokapi — the app stays stopped until it is cleared
|
||||
2026/10/29 18:09:57 [WARN] [backup] gokapi is STOPPED by the box: crash_loop (trip 2 within 24h0m0s) — Start gives it one more try (decision 28)
|
||||
2026/10/29 18:09:57 [INFO] Event pushed: app_stopped_unhealthy (warning) [hu-only] — A(z) gokapi alkalmazást ismét leállítottuk, mert újra és újra összeomlott (vagy elfogyott a memóriája). A Felhom ügyfélszolgálatát értesítettük.
|
||||
|
||||
19:10:16 hub page: No app is held on this box. | clear_hold gokapi | the hold on gokapi is cleared (it was: stopped by the box for a crash loop (2026-10-29T13:56:21Z) — the household's Start gives it one more try). The app is NOT started by this — the household's Start, or a restore, starts it | clear_hold gokapi | the hold on gokapi is cleared (it was: held after an off-site restore failed its database replay (2026-10-29T13:17:07Z) — clear the hold to start it). The app is NOT started by this — the household's Start, or a restore, starts it | clear_hold gokapi | the hold on gokapi is cle
|
||||
@@ -0,0 +1,4 @@
|
||||
19:08:57 === phase notice at 2026-10-29T18:08:57Z
|
||||
19:09:00 controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up 2 minutes (healthy)
|
||||
19:09:01 dashboard line: A Felhom ügyfélszolgálata 19:05-kor újraindította a dobozt.
|
||||
19:09:01 ASCII control: 'jraind' in page = True; 'Vez' (the page title) in page = True
|
||||
@@ -0,0 +1,9 @@
|
||||
19:17:44 === phase teardown at 2026-10-29T18:17:44Z
|
||||
19:17:47 controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up 11 minutes (healthy)
|
||||
19:17:53 [before remove] api: state=stopped hold=None | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
[]
|
||||
19:17:53 [X] stop -> 200 {'ok': True, 'message': 'Stack gokapi stop completed'}
|
||||
19:18:25 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gokapi', 'volumes_removed': ['gokapi_gokapi_config', 'gokapi_gokapi_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': []
|
||||
19:18:34 [X] after remove: deployed=False leftovers=''
|
||||
19:18:37 [after remove] api: state=not_deployed hold=None | file holds: OCI runtime exec failed: exec failed: unable to start container process: exec: "python3": executable file not found in $PATH
|
||||
[]
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
0
|
||||
2026/10/29 18:17:27 [INFO] [deadapp] check alive: 20 scans since boot, 4 deployed app(s) evaluated, 0 currently down
|
||||
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env python3
|
||||
"""r1350_live.py <phase> — R-1350 + D65 live proof on Tester 1 (controller 0.349.0-rc.1, agent 0.170.0, hub 0.177.0), 2026-10-29 evening.
|
||||
notice the household dashboard after the operator reboot: the line („...ujrainditotta a dobozt").
|
||||
hold a throwaway Gokapi; its compose made to exit at once (entrypoint `sh -c 'exit 1'`) and the household's Restart
|
||||
→ Docker's restarts → the box's crash-loop stop and its unhealthy_stop hold. Then the hub's held-apps list.
|
||||
clear the hub's „Clear hold" (the button's endpoint, CC_HOSTS token) → the result; the hold gone on the box (memory
|
||||
through the stack API, the file) and on the hub; then wait for the controller's NEXT settings save and look
|
||||
again (R-1343's order).
|
||||
teardown the entrypoint line removed, the app removed through the product."""
|
||||
import json, os, re, subprocess, sys, time
|
||||
|
||||
sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts")
|
||||
SCR = "/tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad"
|
||||
os.environ.setdefault("SC", f"{SCR}/rt-tester1")
|
||||
os.environ.setdefault("TARGET", "tester-1")
|
||||
import box_walk as w
|
||||
|
||||
EV = f"{SCR}/d65/live/ev"
|
||||
APP, SUB = "gokapi", "gokapi"
|
||||
COMPOSE = f"/opt/docker/stacks/{APP}/docker-compose.yml"
|
||||
SETTINGS = "/opt/docker/felhom-controller/data/settings.json"
|
||||
HOST = "tester-1-d70be4"
|
||||
|
||||
|
||||
def now():
|
||||
return time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
|
||||
|
||||
|
||||
def hold_in_file():
|
||||
return w.guest(f"docker exec felhom-controller python3 -c \"import json;print(sorted((json.load(open('{SETTINGS}')).get('restore_holds') or {{}}).keys()))\" 2>/dev/null || "
|
||||
f"python3 -c \"import json;print(sorted((json.load(open('/var/lib/docker/volumes/felhom-controller-data/_data/data/settings.json')).get('restore_holds') or {{}}).keys()))\"").strip()
|
||||
|
||||
|
||||
def look(tag):
|
||||
st = w.stack(APP)
|
||||
w.say(f" [{tag}] api: state={st.get('state')} hold={st.get('hold_reason')!r} | file holds: {hold_in_file()}")
|
||||
return st
|
||||
|
||||
|
||||
def hub_page(pat):
|
||||
r = subprocess.run(["sec", "run", "CC_HOSTS", "--", "bash", f"{SCR}/d63/hubget.sh", "CC_HOSTS", f"/hosts/{HOST}", pat],
|
||||
capture_output=True, text=True, timeout=60)
|
||||
return r.stdout.strip()
|
||||
|
||||
|
||||
w.login()
|
||||
phase = sys.argv[1]
|
||||
t0 = now()
|
||||
w.say(f"=== phase {phase} at {t0}")
|
||||
w.say("controller: " + w.guest("docker ps --filter name=^/felhom-controller$ --format '{{.Image}} {{.Status}}'").strip())
|
||||
|
||||
if phase == "notice":
|
||||
body = w.page("/dashboard")
|
||||
m = re.search(r'data-operator-reboot>([^<]*)<', body or "")
|
||||
w.say(" dashboard line: " + (m.group(1) if m else "NONE"))
|
||||
w.say(" ASCII control: 'jraind' in page = %s; 'Vez' (the page title) in page = %s" % ("jraind" in (body or ""), "Vez" in (body or "")))
|
||||
|
||||
elif phase == "hold":
|
||||
assert w.deploy(APP, SUB), "deploy failed"
|
||||
# the template's own entrypoint ends `exec /app/run.sh`: make it `exit 1` (the first try added a second entrypoint key)
|
||||
w.guest(f"sed -i '/^ entrypoint: \\[\"sh\", \"-c\", \"exit 1\"\\]$/d; s#^ exec /app/run.sh$# exit 1#' {COMPOSE}")
|
||||
w.say(" compose: " + w.guest(f"grep -nE 'image:|entrypoint:' {COMPOSE}").strip())
|
||||
c, d = w.ctl("POST", f"/api/stacks/{APP}/restart")
|
||||
w.say(f" Restart → {c} {str(d)[:120]}")
|
||||
for _ in range(80):
|
||||
time.sleep(10)
|
||||
st = w.stack(APP)
|
||||
if st.get("hold_reason"):
|
||||
break
|
||||
look("held")
|
||||
w.say(" box log: " + w.guest(f"docker logs --since {t0} felhom-controller 2>&1 | grep -iE 'gokapi.*(crash|hold|stop)|unhealthy' | tail -6"))
|
||||
for _ in range(12):
|
||||
time.sleep(10)
|
||||
page = hub_page("gokapi|Clear hold|No app is held")
|
||||
if "gokapi" in page:
|
||||
break
|
||||
w.say(" hub page: " + page.replace("\n", " | ")[:600])
|
||||
|
||||
elif phase == "clear":
|
||||
look("before")
|
||||
r = subprocess.run(["sec", "run", "CC_HOSTS", "--", "bash", f"{SCR}/p1/press.sh", "CC_HOSTS", HOST, "clear_hold", APP],
|
||||
capture_output=True, text=True, timeout=60)
|
||||
w.say(" press: " + r.stdout.strip().replace("\n", " | "))
|
||||
res = ""
|
||||
for _ in range(60):
|
||||
time.sleep(5)
|
||||
res = subprocess.run(["sudo", "kubectl", "-n", "felhom-system", "logs", "deploy/hub", "--since", "10m"], capture_output=True, text=True).stdout
|
||||
m = [l for l in res.splitlines() if "operator action #" in l and "clear_hold gokapi" in l and "(pressed by" in l and ("done" in l or "refused" in l or "failed" in l)]
|
||||
if m:
|
||||
w.say(" hub result: " + m[-1][:400])
|
||||
break
|
||||
w.say(" box log: " + w.guest(f"docker logs --since {t0} felhom-controller 2>&1 | grep -iE 'hold CLEARED|clear_hold|operator action' | tail -6"))
|
||||
look("after clear")
|
||||
t1 = now()
|
||||
for _ in range(80):
|
||||
time.sleep(15)
|
||||
if "Settings saved" in w.guest(f"docker logs --since {t1} felhom-controller 2>&1 | grep -E 'Settings saved' | tail -1"):
|
||||
break
|
||||
w.say(" next settings save: " + w.guest(f"docker logs --since {t1} felhom-controller 2>&1 | grep -E 'Settings saved' | head -1").strip())
|
||||
look("after the next save")
|
||||
time.sleep(70)
|
||||
w.say(" hub page: " + hub_page("gokapi|No app is held").replace("\n", " | ")[:400])
|
||||
w.say(" hub held-apps log: " + subprocess.run(["sudo", "kubectl", "-n", "felhom-system", "logs", "deploy/hub", "--since", "15m"],
|
||||
capture_output=True, text=True).stdout.count("tester-1/gokapi no longer held").__str__() + " 'no longer held' line(s)")
|
||||
w.say(" R-1350 record: " + w.guest(f"docker logs --since {t0} felhom-controller 2>&1 | grep -E 'recorded as wanted|desired state for gokapi' | tail -3"))
|
||||
w.say(" api after: " + json.dumps({k: w.stack(APP).get(k) for k in ("state", "hold_reason")}) + " desired=" + w.guest(f"grep -m1 desired_state /opt/docker/stacks/{APP}/app.yaml").strip())
|
||||
time.sleep(240)
|
||||
w.say(" app_start_failed since the clear (R-1350; want none): [" + w.guest(f"docker logs --since {t1} felhom-controller 2>&1 | grep -iE 'app_start_failed|nem fut: Gokapi|gokapi.*(not running|dead)' | tail -4").strip() + "]")
|
||||
w.say(" positive control — the dead-app scan ran meanwhile: " + w.guest(f"docker logs --since {t0} felhom-controller 2>&1 | grep -E 'deadapp\] check alive' | tail -1").strip())
|
||||
|
||||
elif phase == "teardown":
|
||||
w.guest(f"sed -i 's#^ exit 1$# exec /app/run.sh#' {COMPOSE}")
|
||||
look("before remove")
|
||||
w.remove(APP)
|
||||
look("after remove")
|
||||
|
||||
open(os.path.join(EV, f"p3-{phase}.log"), "a").write("\n".join(w.LOG) + "\n")
|
||||
@@ -0,0 +1,62 @@
|
||||
2026-10-20T09:32:16Z POST /configuration/artifacts 303 43537ms remote=10.42.0.200 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-20T09:46:04Z GET /apps 200 10515ms remote=10.42.0.1 xff=- cred=token auth=token
|
||||
2026-10-20T12:11:01Z POST /configs/Tester4/edit 303 75400ms remote=10.42.0.200 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-21T09:13:02Z POST /api/v1/host-enroll 201 11075ms remote=10.42.0.200 xff=192.168.0.159 cred=passphrase auth=-
|
||||
2026-10-21T12:03:50Z POST /api/v1/host-enroll 201 7973ms remote=10.42.0.200 xff=192.168.0.133 cred=passphrase auth=-
|
||||
2026-10-21T18:33:27Z POST /api/v1/host-enroll 201 11191ms remote=10.42.0.200 xff=192.168.0.128 cred=passphrase auth=-
|
||||
2026-10-22T07:56:23Z POST /configuration/artifacts 303 37822ms remote=10.42.0.200 xff=<public-ip> cred=session-cookie auth=session
|
||||
2026-10-22T09:41:17Z GET /apps 200 26162ms remote=10.42.0.200 xff=<public-ip> cred=session-cookie auth=session
|
||||
2026-10-22T12:55:56Z POST /configs/Tester-2/reset 303 9013ms remote=10.42.0.200 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-22T19:13:00Z POST /api/v1/host-enroll 201 8382ms remote=10.42.0.200 xff=192.168.0.128 cred=passphrase auth=-
|
||||
2026-10-23T07:58:04Z POST /configuration/artifacts 303 42136ms remote=10.42.0.200 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T09:03:00Z GET /apps 200 16536ms remote=10.42.0.1 xff=- cred=token auth=token
|
||||
2026-10-23T15:43:08Z GET /customers/demo-felhom 200 17970ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T15:43:09Z GET /customers/demo-hp 200 33387ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T15:59:35Z GET /customers/demo-hp 200 5317ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T16:21:36Z GET /customers/demo-hp 200 6618ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T16:34:14Z GET /customers/demo-hp 200 30839ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T16:57:39Z GET /customers/demo-hp 200 10595ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T17:17:34Z GET /customers/demo-hp 200 20203ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T17:28:17Z GET /customers/demo-hp 200 72876ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T17:29:17Z GET /customers/demo-hp 200 12882ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T17:30:31Z GET /customers/demo-hp 200 47569ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T18:02:27Z POST /api/v1/host-report 200 7798ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-23T18:02:24Z GET /customers/demo-hp 200 60175ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-23T19:10:34Z GET /customers/demo-hp 200 5073ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-24T00:02:54Z POST /api/v1/host-report 200 6025ms remote=10.42.0.213 xff=192.168.0.154 cred=bearer auth=host
|
||||
2026-10-24T05:33:00Z GET /customers/demo-hp 200 21436ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-24T06:02:27Z POST /api/v1/host-report 200 8684ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-24T06:32:27Z POST /api/v1/host-report 200 5699ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-24T07:44:29Z POST /configuration/artifacts 303 28888ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-24T12:43:13Z POST /api/v1/host-enroll 201 11177ms remote=10.42.0.213 xff=192.168.0.138 cred=passphrase auth=-
|
||||
2026-10-25T00:32:43Z POST /api/v1/host-report 200 6303ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-25T07:00:51Z POST /api/v1/host-report 200 6442ms remote=10.42.0.213 xff=192.168.0.154 cred=bearer auth=host
|
||||
2026-10-25T07:02:43Z POST /api/v1/host-report 200 6306ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-25T13:32:43Z POST /api/v1/host-report 200 5223ms remote=10.42.0.213 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-25T16:51:48Z POST /api/v1/host-enroll 201 8096ms remote=10.42.0.213 xff=192.168.0.151 cred=passphrase auth=-
|
||||
2026-10-25T17:38:09Z POST /configuration/artifacts 303 39987ms remote=10.42.0.213 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-25T19:24:57Z POST /api/v1/host-enroll 201 8201ms remote=10.42.0.213 xff=192.168.0.150 cred=passphrase auth=-
|
||||
2026-10-26T09:04:22Z POST /configuration/artifacts 303 33643ms remote=10.42.0.213 xff=<public-ip> cred=session-cookie auth=session
|
||||
2026-10-26T09:25:31Z POST /configuration/artifacts 303 52286ms remote=10.42.0.213 xff=<public-ip> cred=session-cookie auth=session
|
||||
2026-10-26T09:30:41Z POST /api/v1/host-enroll 201 11416ms remote=10.42.0.213 xff=<public-ip> cred=passphrase auth=-
|
||||
2026-10-26T11:40:34Z POST /api/v1/host-report 200 6146ms remote=10.42.0.213 xff=<public-ip> cred=bearer auth=host
|
||||
2026-10-26T11:51:49Z POST /api/v1/host-enroll 201 7871ms remote=10.42.0.213 xff=<public-ip> cred=passphrase auth=-
|
||||
2026-10-26T19:03:23Z POST /api/v1/host-report 200 6178ms remote=10.42.0.248 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-26T19:03:51Z GET /system 200 5775ms remote=10.42.0.248 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-26T20:00:22Z POST /api/v1/host-enroll 201 8343ms remote=10.42.0.248 xff=192.168.0.127 cred=passphrase auth=-
|
||||
2026-10-27T07:46:39Z GET /apps 200 25055ms remote=10.42.0.1 xff=- cred=token auth=token
|
||||
2026-10-27T13:01:41Z POST /api/v1/host-report 200 5775ms remote=10.42.0.248 xff=192.168.0.154 cred=bearer auth=host
|
||||
2026-10-27T13:03:40Z POST /api/v1/host-report 200 5178ms remote=10.42.0.248 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-27T14:07:05Z GET /apps/romm 200 28984ms remote=10.42.0.1 xff=- cred=token auth=token
|
||||
2026-10-27T15:43:01Z POST /configuration/artifacts 303 36396ms remote=10.42.0.248 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-27T19:03:15Z GET /customers/tester-1 200 8853ms remote=10.42.0.248 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-27T19:42:14Z GET /customers/tester-1 200 7418ms remote=10.42.0.248 xff=192.168.0.110 cred=session-cookie auth=session
|
||||
2026-10-28T07:20:13Z GET /apps 200 30182ms remote=10.42.0.1 xff=- cred=token auth=token
|
||||
2026-10-28T19:03:40Z POST /api/v1/host-report 200 7081ms remote=10.42.0.248 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-29T01:03:39Z POST /api/v1/host-report 200 9871ms remote=10.42.0.248 xff=192.168.0.104 cred=bearer auth=host
|
||||
2026-10-29T07:04:01Z POST /api/v1/host-report 200 5959ms remote=10.42.0.248 xff=<public-ip> cred=bearer auth=host
|
||||
2026-10-29T09:21:19Z POST /configuration/artifacts 303 36965ms remote=10.42.0.248 xff=192.168.0.145 cred=session-cookie auth=session
|
||||
2026-10-29T10:49:16Z GET /customers/tester-1 200 7823ms remote=10.42.0.248 xff=192.168.0.145 cred=session-cookie auth=session
|
||||
2026-10-29T13:03:19Z POST /configuration/artifacts 303 170022ms remote=10.42.0.248 xff=192.168.0.145 cred=session-cookie auth=session
|
||||
2026-10-29T13:04:59Z POST /configuration/artifacts 303 170431ms remote=10.42.0.248 xff=192.168.0.145 cred=session-cookie auth=session
|
||||
2026-10-29T17:57:10Z POST /configuration/artifacts 303 38255ms remote=10.42.0.248 xff=192.168.0.145 cred=session-cookie auth=session
|
||||
@@ -0,0 +1,3 @@
|
||||
2026/10/29 18:57:48 [INFO] Artifact manifest set: agent=0.170.0 golden=0.344.0 min_agent="0.158.1" wrapper_sha=false bundle_sha="03f2ff6442fc3ca600b1f25f26767ce4da466a770a258f3e362cf95f6e76b543"
|
||||
2026/10/29 18:57:48 [INFO] artifact vouch timing (R-1346): registry probes 65ms, sha lookups 27ms, bundle sha 43ms, fleet check + save 38117ms, total 38255ms
|
||||
2026/10/29 18:57:48 [WARN] slow request: POST /configuration/artifacts 303 38255ms (over 5s)
|
||||
@@ -0,0 +1,6 @@
|
||||
https://hub.felhom.eu/configuration HTTP 200 connect=0.070382s first-byte=0.255381s total=0.256241s
|
||||
http://10.43.52.34:8080/configuration HTTP 200 connect=0.000170s first-byte=0.005898s total=0.006482s
|
||||
https://hub.felhom.eu/configuration HTTP 200 connect=0.039124s first-byte=0.064392s total=0.065339s
|
||||
http://10.43.52.34:8080/configuration HTTP 200 connect=0.000161s first-byte=0.005181s total=0.005674s
|
||||
https://hub.felhom.eu/configuration HTTP 200 connect=0.040821s first-byte=0.074190s total=0.075098s
|
||||
http://10.43.52.34:8080/configuration HTTP 200 connect=0.000187s first-byte=0.006366s total=0.007287s
|
||||
@@ -0,0 +1,12 @@
|
||||
== run 1 (cluster service, from DooPlex)
|
||||
tag probe 206 first-byte=0.152212s total=0.152308s
|
||||
agent pkg probe 206 first-byte=0.110439s total=0.110529s
|
||||
golden pkg probe 206 first-byte=0.083325s total=0.083379s
|
||||
agent files 200 first-byte=0.118920s total=0.119001s
|
||||
golden files 200 first-byte=0.130826s total=0.130879s
|
||||
== run 2 (cluster service, from DooPlex)
|
||||
tag probe 206 first-byte=0.100119s total=0.100181s
|
||||
agent pkg probe 206 first-byte=0.085066s total=0.085126s
|
||||
golden pkg probe 206 first-byte=0.141633s total=0.141761s
|
||||
agent files 200 first-byte=0.147944s total=0.148015s
|
||||
golden files 200 first-byte=0.106803s total=0.106853s
|
||||
@@ -0,0 +1,2 @@
|
||||
agent pkg (no range) HTTP/1.1 200 OK .229643272s size=16350287
|
||||
golden pkg (no range) HTTP/1.1 200 OK .225228807s size=637293448
|
||||
@@ -0,0 +1,10 @@
|
||||
== admin/felhom-agent/raw/tag/v0.169.0/configs/felhom-mkfs-guarded.sh
|
||||
real 0m 0.03s
|
||||
== api/packages/admin/generic/felhom-agent/0.169.0/felhom-agent
|
||||
real 0m 0.01s
|
||||
== api/packages/admin/generic/felhom-golden/0.344.0/golden.tar.zst
|
||||
real 0m 0.01s
|
||||
== api/v1/packages/admin/generic/felhom-agent/0.169.0/files
|
||||
real 0m 0.01s
|
||||
== api/v1/packages/admin/generic/felhom-golden/0.344.0/files
|
||||
real 0m 0.01s
|
||||
@@ -0,0 +1,21 @@
|
||||
RED no reboot call | --- FAIL: TestOpReboot_RebootsAndReportsTheTimes (0.00s) / opreboot_test.go:91: reboots = 0, want 1
|
||||
RED no provisioned guard | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/not_provisioned (0.00s)
|
||||
RED no status guard | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/stopped (0.00s)
|
||||
RED no parked guard | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/parked (0.00s)
|
||||
GREEN(!) no swap guard |
|
||||
RED no lock guard | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/locked (0.00s)
|
||||
RED no jobBlocker | --- FAIL: TestOpReboot_GuardsRefuse (0.01s) / --- FAIL: TestOpReboot_GuardsRefuse/vzdump (0.00s)
|
||||
RED no heavy gate | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/heavy_gate (0.00s)
|
||||
RED no controller busy | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/controller_busy (0.00s)
|
||||
RED busy read error fail-open | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/busy_file_unreadable (0.00s)
|
||||
RED no brake in force | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/brake_in_force (0.00s)
|
||||
RED no freshness | --- FAIL: TestOpReboot_StaleBusyFileDoesNotBlock (0.00s) / opreboot_test.go:175: result {ID:1 Outcome:refused Message:refused: the controller is busy — a backup is running}, reboots 0
|
||||
RED no hourly limit | --- FAIL: TestOpReboot_AtMostOncePerHour (0.00s) / opreboot_test.go:188: second press inside the hour: {ID:2 Outcome:done Message:rebooted; the guest was up after 0 s, the controller answered after 0 s}
|
||||
RED reboot not counted by brake | --- FAIL: TestOpReboot_TheBrakeCountsAReboot (0.01s) / opreboot_test.go:222: the 4th restart (2 restarts + 1 reboot) in 15 minutes: {ID:4 Outcome:done Message:restarted; the controller answered after 0 s (Docker's health
|
||||
RED guest-power ignores flag | --- FAIL: TestOpReboot_TheWatchdogsLeaveARebootingGuestAlone (0.00s) / opreboot_test.go:264: during the reboot: guest-power started 1, the supervisor restarted 0 — both must leave it to pct reboot
|
||||
RED supervisor ignores flag | --- FAIL: TestOpReboot_TheWatchdogsLeaveARebootingGuestAlone (0.00s) / opreboot_test.go:264: during the reboot: guest-power started 0, the supervisor restarted 1 — both must leave it to pct reboot
|
||||
RED notice never expires | --- FAIL: TestOpReboot_TheNoticeExpiresAfterADay (0.00s) / opreboot_test.go:302: after 25 h the line must be gone, got "2026-09-15T10:00:00Z"
|
||||
RED closed list grows | --- FAIL: TestOpActions_AgentClosedList (0.00s) / opactions_test.go:75: the agent's operator actions = [reboot_guest reboot_host restart_controller], want exactly [reboot_guest restart_controller] — a new verb needs the
|
||||
SOME MUTANT SURVIVED
|
||||
RED jobBlocker ignores swap | --- FAIL: TestOpReboot_GuardsRefuse (0.00s) / --- FAIL: TestOpReboot_GuardsRefuse/swap (0.00s)
|
||||
ALL MUTANTS KILLED
|
||||
@@ -0,0 +1,20 @@
|
||||
RED R-1350 no keepStopped call | --- FAIL: TestR1350_TheClearRecordsTheStopIsWanted (0.00s) / r1350_test.go:53: the stop was not recorded as wanted: []
|
||||
RED R-1350 hook after the lift | --- FAIL: TestR1350_TheClearRecordsTheStopIsWanted (0.00s) / r1350_test.go:56: the wish was recorded after the hold was lifted — a scan in between mails app_start_failed
|
||||
RED R-1350 no up check |
|
||||
RED R-1350 main not wired | --- FAIL: TestR1350_MainWiresTheRecord (0.00s) / r1350_test.go:78: main.go's hold clear does not record the wanted stop (R-1350)
|
||||
RED busymark no write |
|
||||
RED busymark no remove | --- FAIL: TestBusyFileFollowsTheWork (0.00s) / busymark_test.go:53: idle again: the busy file is still there (<nil>) — the agent would refuse a reboot for 90 s more
|
||||
RED busymark path moved | --- FAIL: TestBusyMarkPathIsTheOneTheAgentReads (0.00s) / busymark_wiring_test.go:25: the busy file is /opt/docker/felhom-controller/data/ctl/busy.txt, the agent reads /opt/docker/felhom-controller/data/ctl/busy — an ope
|
||||
RED busymark update probe dropped | --- FAIL: TestBusyMarkIsWiredAtStartup (0.00s) / busymark_wiring_test.go:45: main.go does not contain "busyMark.AddProbe(\"an app update is running\", stackMgr.AnyUpdating)"
|
||||
ALL MUTANTS KILLED
|
||||
RED R-1350 no up check (compiling) | --- FAIL: TestR1350_RecordStopWantedIfDown (0.00s) / desiredstate_test.go:357: immich (running): recorded=true err=<nil>
|
||||
RED busymark no write (compiling) | --- FAIL: TestBusyFileFollowsTheWork (0.00s) / busymark_test.go:34: busy: no file: open /tmp/TestBusyFileFollowsTheWork3370400605/001/ctl/busy: no such file or directory
|
||||
ALL MUTANTS KILLED
|
||||
RED notice not on the dashboard | --- FAIL: TestOperatorRebootNotice_OnTheDashboardForADay (0.06s) / operator_reboot_notice_test.go:31: the dashboard lacks "A Felhom ügyfélszolgálata 14:10-kor újraindította a dobozt."
|
||||
RED notice never expires | --- FAIL: TestOperatorRebootNotice_OnTheDashboardForADay (0.07s) / operator_reboot_notice_test.go:35: a day later the line must be gone
|
||||
RED ask keeps nothing | --- FAIL: TestWatchOperatorReboot_RetriesAndKeepsTheTime (0.00s) / operator_reboot_notice_test.go:66: calls=3 at=0001-01-01 00:00:00 +0000 UTC, want 3 and 2026-10-30 09:41:00 +0000 UTC
|
||||
RED ask gives up on first error |
|
||||
RED main does not ask | --- FAIL: TestBusyMarkIsWiredAtStartup (0.00s) / busymark_wiring_test.go:46: main.go does not contain "go webServer.WatchOperatorReboot(ctx)"
|
||||
ALL MUTANTS KILLED
|
||||
RED ask gives up on first error (compiling) | --- FAIL: TestWatchOperatorReboot_RetriesAndKeepsTheTime (0.00s) / operator_reboot_notice_test.go:66: calls=1 at=0001-01-01 00:00:00 +0000 UTC, want 3 and 2026-10-30 09:41:00 +0000 UTC
|
||||
ALL MUTANTS KILLED
|
||||
@@ -0,0 +1,20 @@
|
||||
--- FAIL: TestHostOperatorActions_ClosedList (0.00s)
|
||||
opactions_test.go:118: host operator actions = [restart_controller], want exactly [reboot_guest restart_controller] — a new verb needs the operator's word
|
||||
--- FAIL: TestHostOperatorActions_RefusedBeforeStoring (0.04s)
|
||||
opactions_test.go:153: reboot_guest 9201 refused: unknown host action "reboot_guest"
|
||||
--- FAIL: TestHostOperatorActions_ARebootExpiresAfter30Minutes (0.05s)
|
||||
opactions_test.go:175: the old reboot = <nil>, want expired, naming 30 minutes
|
||||
FAIL
|
||||
FAIL gitea.dooplex.hu/admin/felhom-hub/internal/store 0.142s
|
||||
--- FAIL: TestHostPage_RebootGuestRendersAndPosts (0.06s)
|
||||
host_opactions_test.go:135: host page lacks "data-reboot-guest=\"9201\""
|
||||
host_opactions_test.go:135: host page lacks "name=\"action\" value=\"reboot_guest\""
|
||||
host_opactions_test.go:135: host page lacks "Reboot guest 9201 on h1 (c1)?"
|
||||
host_opactions_test.go:135: host page lacks "every app of the household stops for about a minute"
|
||||
host_opactions_test.go:139: reboot: 400 Refused: unknown action "reboot_guest"
|
||||
FAIL
|
||||
FAIL gitea.dooplex.hu/admin/felhom-hub/internal/web 0.202s
|
||||
--- FAIL: TestAccessLog_ASlowRequestIsNamed (0.00s)
|
||||
accesslog_test.go:271: slow lines = [], want exactly the 170 s save
|
||||
FAIL
|
||||
FAIL gitea.dooplex.hu/admin/felhom-hub/internal/accesslog 0.005s
|
||||
@@ -0,0 +1,7 @@
|
||||
RED reboot TTL dropped | --- FAIL: TestHostOperatorActions_ARebootExpiresAfter30Minutes (0.03s) / opactions_test.go:172: pending = [{ID:1 Action:reboot_guest Arg:9201} {ID:2 Action:restart_controller Arg:9201}], want only the restart #2
|
||||
RED button gone | --- FAIL: TestHostPage_RebootGuestRendersAndPosts (0.05s) / host_opactions_test.go:135: host page lacks "data-reboot-guest=\"9201\""
|
||||
RED slow line dropped | --- FAIL: TestAccessLog_ASlowRequestIsNamed (0.00s) / accesslog_test.go:271: slow lines = [], want exactly the 170 s save
|
||||
RED wait not exempt | --- FAIL: TestAccessLog_ASlowRequestIsNamed (0.00s) / accesslog_test.go:271: slow lines = ["[WARN] slow request: POST /configuration/artifacts 303 170000ms (over 5s)" "[WARN] slow request: GET /api/v1/wait 303 240000ms (
|
||||
RED query logged | --- FAIL: TestAccessLog_ASlowRequestIsNamed (0.00s) / accesslog_test.go:274: line "[WARN] slow request: POST /configuration/artifacts?agent_version=0.169.0 303 170000ms (over 5s)", want prefix "[WARN] slow request: POST
|
||||
RED timing line dropped | --- FAIL: TestVouchSaveLogsItsTiming (0.05s) / agent_only_vouch_test.go:99: no timing line:
|
||||
ALL MUTANTS KILLED
|
||||
@@ -0,0 +1,3 @@
|
||||
# gitea.dooplex.hu/admin/felhom-controller/internal/stacks [gitea.dooplex.hu/admin/felhom-controller/internal/stacks.test]
|
||||
internal/stacks/desiredstate_test.go:350:19: m.RecordStopWantedIfDown undefined (type *Manager has no field or method RecordStopWantedIfDown)
|
||||
internal/stacks/desiredstate_test.go:356:19: m.RecordStopWantedIfDown undefined (type *Manager has no field or method RecordStopWantedIfDown)
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
== root@192.168.0.154
|
||||
Oct 29 17:11:57 felhom felhom-agent[697615]: time=2026-10-29T17:11:57.601+01:00 level=WARN msg="osupdate: config bundle INSTALLED" op=agent_config_update agent_version=0.170.0 bundle="{\"agent_version\": \"0.170.0\", \"authority\"
|
||||
Oct 29 17:11:58 felhom felhom-agent[697615]: time=2026-10-29T17:11:58.668+01:00 level=WARN msg="osupdate: capability probe after the config bundle" ok=76 total=76 degraded=""
|
||||
Oct 29 17:11:58 felhom felhom-agent[697615]: time=2026-10-29T17:11:58.668+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=b986bc711f8af648 op=agent_config_update
|
||||
Oct 29 17:12:01 felhom felhom-agent[697615]: time=2026-10-29T17:12:01.587+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=960aeccd6d463807 op=agent_update
|
||||
1
|
||||
== hp
|
||||
Oct 29 17:11:07 demo-hp felhom-agent[1569654]: time=2026-10-29T17:11:07.500+01:00 level=WARN msg="osupdate: config bundle INSTALLED" op=agent_config_update agent_version=0.170.0 bundle="{\"agent_version\": \"0.170.0\", \"authority
|
||||
Oct 29 17:11:08 demo-hp felhom-agent[1569654]: time=2026-10-29T17:11:08.607+01:00 level=WARN msg="osupdate: capability probe after the config bundle" ok=76 total=76 degraded=""
|
||||
Oct 29 17:11:08 demo-hp felhom-agent[1569654]: time=2026-10-29T17:11:08.607+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=82faf24ef365fd64 op=agent_config_update
|
||||
Oct 29 17:11:09 demo-hp felhom-agent[1569654]: time=2026-10-29T17:11:09.255+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=5f1d748ab2562407 op=agent_update
|
||||
Oct 29 17:12:13 demo-hp felhom-agent[2454149]: time=2026-10-29T17:12:13.481+01:00 level=WARN msg="selfupdate: update committed" version=0.170.0 wrapper=""
|
||||
1
|
||||
== felhom-pve
|
||||
Oct 29 17:04:09 demo-felhom felhom-agent[540969]: time=2026-10-29T17:04:09.079+01:00 level=WARN msg="osupdate: config bundle INSTALLED" op=agent_config_update agent_version=0.170.0 bundle="{\"agent_version\": \"0.170.0\", \"author
|
||||
Oct 29 17:04:09 demo-felhom felhom-agent[540969]: time=2026-10-29T17:04:09.801+01:00 level=WARN msg="osupdate: capability probe after the config bundle" ok=76 total=76 degraded=""
|
||||
Oct 29 17:04:09 demo-felhom felhom-agent[540969]: time=2026-10-29T17:04:09.801+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=36996091a795fbf3 op=agent_config_update
|
||||
Oct 29 17:04:10 demo-felhom felhom-agent[540969]: time=2026-10-29T17:04:10.231+01:00 level=WARN msg="signedjobs: signed op COMPLETED" job=b681a134d9f5c46f op=agent_update
|
||||
Oct 29 17:05:14 demo-felhom felhom-agent[832543]: time=2026-10-29T17:05:14.340+01:00 level=WARN msg="selfupdate: update committed" version=0.170.0 wrapper=""
|
||||
1
|
||||
@@ -0,0 +1,18 @@
|
||||
signed: op=agent_config_update host=tester-1-d70be4 guest="" key_id=felhom-op-1 nonce=30d32e60f345a555b85f74c20687c962 expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-tester-1-d70be4-config.json
|
||||
signed: op=agent_update host=tester-1-d70be4 guest="" key_id=felhom-op-1 nonce=30e9c9197d876cef48f836b7540ae1bc expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-tester-1-d70be4-agent.json
|
||||
signed: op=agent_config_update host=demto-hp-bb76ea guest="" key_id=felhom-op-1 nonce=fe517b16d2c7b37ad38effb8e3e88d8d expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-demo-hp-bb76ea-config.json
|
||||
signed: op=agent_update host=deester-1-d70be4 config 0.170.0: HTTP 201 {"job_id":"b986bc711f8af648","status":"ok"}mo-hp-bb76ea guest="" key_id=felhom-op-1 nonce=de75a8f3b24c87f0a5570cf7af26cf5d expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-demo-hp-bb76ea-agent.json
|
||||
signed: op=agent_config_update host=demo-felhom
|
||||
tester-1-d70be4 agent 0.170.0: HTTP 201 {"job_id":"960aeccd6d463807","status":"ok"}
|
||||
dem-8363b5 guest="" key_id=felhom-op-1 nonce=fb3ee4b9aa2bd4505b19880bc2342819 expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-demo-felhom-8363b5-config.json
|
||||
signed: op=agent_update host=demo-felhoo-hp-bb76ea config 0.170.0: HTTP 201 {"job_id":"82faf24ef365fd64","status":"ok"}
|
||||
demo-hp-bb76ea agent 0.170.0: HTTP 201 {"job_id":"5f1d748ab2562407","status":"ok"}
|
||||
demo-felhom-8363b5 config 0.170.0: HTTP 201 {"job_id":"36996091a795fbf3","status":"ok"}
|
||||
demo-felhom-8363b5 agent 0.170.0: HTTP 201 {"job_id":"b681a134d9f5c46f","status":"ok"}
|
||||
m-8363b5 guest="" key_id=felhom-op-1 nonce=a637e47d3298201af3482bf6a30c4ee9 expires=2026-10-29T16:29:08Z
|
||||
wrote envelope to /tmp/claude-1000/-mnt-5-hdd-felhom-eu-git/0b76c4d7-9b39-4e4e-869d-d0d2c6006331/scratchpad/jobs/env-demo-felhom-8363b5-agent.json
|
||||
@@ -0,0 +1,27 @@
|
||||
[release-agent] building 0.170.0 …
|
||||
[release-agent] built ok: sha256 da8d12a05ef607c338b9ba307e7a81b18253a3188721bbd8421ba36658a22404
|
||||
[release-agent] config bundle built: sha256 03f2ff6442fc3ca600b1f25f26767ce4da466a770a258f3e362cf95f6e76b543
|
||||
[release-agent] tagging v0.170.0 at ca15a31 …
|
||||
[release-agent] publishing …
|
||||
[publish-agent] publishing /tmp/felhom-agent-PcmFnk (16379051 bytes, sha256 da8d12a05ef607c3…) → https://gitea.dooplex.hu/api/packages/admin/generic/felhom-agent/0.170.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)
|
||||
[publish-agent] DONE. Record in the hub operator UI (Configs → Day-0 artifacts): agent 0.170.0 / da8d12a05ef607c338b9ba307e7a81b18253a3188721bbd8421ba36658a22404
|
||||
[release-agent] config bundle published (HTTP 201)
|
||||
[release-agent] pushing v0.170.0 …
|
||||
To https://gitea.dooplex.huAGENT_VERSION=0.170.0
|
||||
AGENT_SHA256=da8d12a05ef607c338b9ba307e7a81b18253a3188721bbd8421ba36658a22404
|
||||
|
||||
RELEASED — and installable, verified by download, not by this script's own say-so.
|
||||
|
||||
version : 0.170.0
|
||||
tag : v0.170.0
|
||||
sha256 : da8d12a05ef607c338b9ba307e7a81b18253a3188721bbd8421ba36658a22404
|
||||
bundle : 03f2ff6442fc3ca600b1f25f26767ce4da466a770a258f3e362cf95f6e76b543 (felhom-config-bundle.json — vouch it with the agent)
|
||||
|
||||
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.
|
||||
/admin/felhom-agent.git
|
||||
* [new tag] v0.170.0 -> v0.170.0
|
||||
[release-agent] verifying by independent download …
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ felhom-controller image builder ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Version: 0.349.0
|
||||
[0;32m[INFO][0m Commit: 94049a7
|
||||
[0;32m[INFO][0m Repo: /mnt/5_hdd/felhom.eu/git/felhom-controller
|
||||
[0;32m[INFO][0m Source: /mnt/5_hdd/felhom.eu/git/felhom-controller/controller
|
||||
[0;32m[INFO][0m Build dir: /mnt/5_hdd/felhom.eu/build/felhom-controller/workspace
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-controller:0.349.0
|
||||
|
||||
[0;36m[STEP][0m 0/4 — Checking the registry: is 0.349.0 already published?
|
||||
[0;32m[INFO][0m 0.349.0 is not present in the registry — proceeding.
|
||||
[0;32m[INFO][0m Source tree is clean and at origin/main.
|
||||
[0;36m[STEP][0m 1/4 — Preparing build workspace...
|
||||
[0;32m[INFO][0m Source copied: 1127 Go files
|
||||
[0;36m[STEP][0m 2/4 — Syncing app assets...
|
||||
[0;32m[INFO][0m Synced 263 assets (52 SVG + 16 PNG logos, 195 screenshots)
|
||||
[0;36m[STEP][0m 3/4 — Preparing Go modules...
|
||||
[0;32m[INFO][0m Running go mod tidy...
|
||||
[0;36m[STEP][0m 4/4 — Building Docker image...
|
||||
[0;32m[INFO][0m Building for current platform + pushing...
|
||||
#0 building with "default" instance using docker driver
|
||||
|
||||
#1 [internal] load build definition from Dockerfile
|
||||
#1 transferring dockerfile: 7.32kB done
|
||||
#1 DONE 0.0s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#2 ...
|
||||
|
||||
#3 [auth] library/golang:pull token for registry-1.docker.io
|
||||
#3 DONE 0.0s
|
||||
|
||||
#4 [auth] library/debian:pull token for registry-1.docker.io
|
||||
#4 DONE 0.0s
|
||||
|
||||
#5 [internal] load metadata for docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f
|
||||
#5 DONE 1.0s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#2 DONE 1.0s
|
||||
|
||||
#6 [internal] load .dockerignore
|
||||
#6 transferring context: 2B done
|
||||
#6 DONE 0.0s
|
||||
|
||||
#7 [restic 1/3] FROM docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f
|
||||
#7 resolve docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f 0.0s done
|
||||
#7 DONE 0.0s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 resolve docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4 0.0s done
|
||||
#8 DONE 0.0s
|
||||
|
||||
#9 [internal] load build context
|
||||
#9 transferring context: 16.62MB 0.2s done
|
||||
#9 DONE 0.2s
|
||||
|
||||
#10 [builder 2/7] WORKDIR /build
|
||||
#10 CACHED
|
||||
|
||||
#11 [builder 3/7] COPY go.mod ./
|
||||
#11 CACHED
|
||||
|
||||
#12 [builder 4/7] RUN go mod download || true
|
||||
#12 CACHED
|
||||
|
||||
#13 [builder 5/7] COPY . .
|
||||
#13 CACHED
|
||||
|
||||
#14 [builder 6/7] RUN go mod tidy
|
||||
#14 CACHED
|
||||
|
||||
#15 [builder 7/7] RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X main.Version=0.349.0 -X main.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ) -X main.GitCommit=94049a7" -o /build/felhom-controller ./cmd/controller/
|
||||
#15 DONE 22.9s
|
||||
|
||||
#16 [stage-2 2/7] RUN apt-get update && apt-get upgrade -y --no-install-recommends && apt-get install -y --no-install-recommends ca-certificates curl gnupg git util-linux rsync openssh-client && rm -rf /var/lib/apt/lists/*
|
||||
#16 CACHED
|
||||
|
||||
#17 [restic 2/3] COPY third_party/restic/restic-release-key.asc /tmp/restic-release-key.asc
|
||||
#17 CACHED
|
||||
|
||||
#18 [restic 3/3] RUN set -eu; apt-get update && apt-get install -y --no-install-recommends ca-certificates curl gnupg gpgv bzip2; case "amd64" in amd64) want="f415415624dcc452f2a02b8c33641791a8c6d6d3b65bbb3543fcf9a25151585c" ;; arm64) want="a5f64aaab53d51e311fa3829124c5b703f2d14cf187d8640b6be3b2b49376465" ;; *) echo "no pinned restic checksum for architecture 'amd64'" >&2; exit 1 ;; esac; f="restic_0.19.1_linux_amd64.bz2"; url="https://github.com/restic/restic/releases/download/v0.19.1"; cd /tmp; curl -fsSL -o "$f" "$url/$f"; curl -fsSL -o SHA256SUMS "$url/SHA256SUMS"; curl -fsSL -o SHA256SUMS.asc "$url/SHA256SUMS.asc"; gpg --dearmor < /tmp/restic-release-key.asc > /tmp/restic-release-key.gpg; gpgv --keyring /tmp/restic-release-key.gpg SHA256SUMS.asc SHA256SUMS; grep " ${f}\$" SHA256SUMS | sha256sum -c -; echo "${want} ${f}" | sha256sum -c -; bunzip2 -c "$f" > /usr/local/bin/restic; chmod 0755 /usr/local/bin/restic; /usr/local/bin/restic version | grep -q "^restic 0.19.1 "
|
||||
#18 CACHED
|
||||
|
||||
#19 [stage-2 3/7] COPY --from=restic /usr/local/bin/restic /usr/local/bin/restic
|
||||
#19 CACHED
|
||||
|
||||
#20 [stage-2 4/7] RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg && . /etc/os-release && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list && apt-get update && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin && rm -rf /var/lib/apt/lists/*
|
||||
#20 CACHED
|
||||
|
||||
#21 [stage-2 5/7] RUN mkdir -p /opt/docker/felhom-controller/data
|
||||
#21 CACHED
|
||||
|
||||
#22 [stage-2 6/7] COPY --from=builder /build/felhom-controller /usr/local/bin/felhom-controller
|
||||
#22 DONE 0.1s
|
||||
|
||||
#23 [stage-2 7/7] COPY assets/ /usr/share/felhom/assets/
|
||||
#23 DONE 0.2s
|
||||
|
||||
#24 exporting to image
|
||||
#24 exporting layers
|
||||
#24 exporting layers 2.6s done
|
||||
#24 exporting manifest sha256:5feb7770e952a656376921d81a28da008283a1e7bfa779ee86b77553dfcf6b81
|
||||
#24 exporting manifest sha256:5feb7770e952a656376921d81a28da008283a1e7bfa779ee86b77553dfcf6b81 0.2s done
|
||||
#24 exporting config sha256:3ef3c22d7694d8d583d166699de3ce0121297ed904ca0370cd89e87023048378
|
||||
#24 exporting config sha256:3ef3c22d7694d8d583d166699de3ce0121297ed904ca0370cd89e87023048378 0.2s done
|
||||
#24 exporting attestation manifest sha256:9a222a7e3be41e361f98ecac8106c15dd6351db9198b76c9f3a2d3f69e5ad104
|
||||
#24 exporting attestation manifest sha256:9a222a7e3be41e361f98ecac8106c15dd6351db9198b76c9f3a2d3f69e5ad104 0.2s done
|
||||
#24 exporting manifest list sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877
|
||||
#24 exporting manifest list sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877 0.2s done
|
||||
#24 naming to gitea.dooplex.hu/admin/felhom-controller:0.349.0
|
||||
#24 naming to gitea.dooplex.hu/admin/felhom-controller:0.349.0 0.0s done
|
||||
#24 unpacking to gitea.dooplex.hu/admin/felhom-controller:0.349.0
|
||||
#24 unpacking to gitea.dooplex.hu/admin/felhom-controller:0.349.0 0.8s done
|
||||
#24 naming to gitea.dooplex.hu/admin/felhom-controller:latest 0.0s done
|
||||
#24 unpacking to gitea.dooplex.hu/admin/felhom-controller:latest 0.1s done
|
||||
#24 DONE 4.6s
|
||||
[0;32m[INFO][0m Pushing...
|
||||
The push refers to repository [gitea.dooplex.hu/admin/felhom-controller]
|
||||
44136fa355b3: Waiting
|
||||
c3f83389ce1b: Waiting
|
||||
031445521e15: Waiting
|
||||
ecc510c1e359: Waiting
|
||||
027c5de97d62: Waiting
|
||||
ecc510c1e359: Layer already exists
|
||||
44136fa355b3: Already exists
|
||||
e81c1fce9826: Layer already exists
|
||||
1e42c4d84de5: Waiting
|
||||
c3f83389ce1b: Layer already exists
|
||||
63a1406b1961: Layer already exists
|
||||
d747c9b6922d: Layer already exists
|
||||
031445521e15: Pushed
|
||||
1e42c4d84de5: Pushed
|
||||
027c5de97d62: Pushed
|
||||
0.349.0: digest: sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877 size: 856
|
||||
The push refers to repository [gitea.dooplex.hu/admin/felhom-controller]
|
||||
44136fa355b3: Waiting
|
||||
c3f83389ce1b: Waiting
|
||||
031445521e15: Waiting
|
||||
ecc510c1e359: Waiting
|
||||
e81c1fce9826: Layer already exists
|
||||
63a1406b1961: Layer already exists
|
||||
d747c9b6922d: Layer already exists
|
||||
1e42c4d84de5: Layer already exists
|
||||
44136fa355b3: Already exists
|
||||
c3f83389ce1b: Layer already exists
|
||||
ecc510c1e359: Layer already exists
|
||||
027c5de97d62: Layer already exists
|
||||
031445521e15: Already exists
|
||||
latest: digest: sha256:c5341883cd58410ea631fc0c76262d0902a731a24c1096df551e7d35df1ea877 size: 856
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ Build complete ✓ ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-controller:0.349.0
|
||||
[0;32m[INFO][0m Size: 486M
|
||||
|
||||
+240
@@ -0,0 +1,240 @@
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ felhom-controller image builder ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Version: 0.349.0-rc.1
|
||||
[0;32m[INFO][0m Commit: b69e90b
|
||||
[0;32m[INFO][0m Repo: /mnt/5_hdd/felhom.eu/git/felhom-controller
|
||||
[0;32m[INFO][0m Source: /mnt/5_hdd/felhom.eu/git/felhom-controller/controller
|
||||
[0;32m[INFO][0m Build dir: /mnt/5_hdd/felhom.eu/build/felhom-controller/workspace
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1
|
||||
|
||||
[0;36m[STEP][0m 0/4 — Checking the registry: is 0.349.0-rc.1 already published?
|
||||
[0;32m[INFO][0m 0.349.0-rc.1 is not present in the registry — proceeding.
|
||||
[0;32m[INFO][0m Source tree is clean and at origin/main.
|
||||
[0;36m[STEP][0m 1/4 — Preparing build workspace...
|
||||
[0;32m[INFO][0m Source copied: 1127 Go files
|
||||
[0;36m[STEP][0m 2/4 — Syncing app assets...
|
||||
[0;32m[INFO][0m Synced 263 assets (52 SVG + 16 PNG logos, 195 screenshots)
|
||||
[0;36m[STEP][0m 3/4 — Preparing Go modules...
|
||||
[0;32m[INFO][0m Running go mod tidy...
|
||||
[0;36m[STEP][0m 4/4 — Building Docker image...
|
||||
[0;32m[INFO][0m Building for current platform + pushing...
|
||||
#0 building with "default" instance using docker driver
|
||||
|
||||
#1 [internal] load build definition from Dockerfile
|
||||
#1 transferring dockerfile: 7.32kB done
|
||||
#1 DONE 0.0s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#2 ...
|
||||
|
||||
#3 [auth] library/golang:pull token for registry-1.docker.io
|
||||
#3 DONE 0.0s
|
||||
|
||||
#4 [auth] library/debian:pull token for registry-1.docker.io
|
||||
#4 DONE 0.0s
|
||||
|
||||
#5 [internal] load metadata for docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f
|
||||
#5 DONE 0.9s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#2 DONE 1.6s
|
||||
|
||||
#6 [internal] load .dockerignore
|
||||
#6 transferring context: 2B done
|
||||
#6 DONE 0.0s
|
||||
|
||||
#7 [restic 1/3] FROM docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f
|
||||
#7 resolve docker.io/library/debian:13.7-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f 0.0s done
|
||||
#7 DONE 0.0s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 resolve docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4 0.0s done
|
||||
#8 DONE 0.0s
|
||||
|
||||
#9 [internal] load build context
|
||||
#9 transferring context: 70.38MB 0.8s done
|
||||
#9 DONE 0.8s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 DONE 0.1s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 sha256:e436409a7823d65d1789487c782441b0727711d5da06a4a0dd7ad682afcd468c 126B / 126B 0.2s done
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 0B / 102.45MB 0.3s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 0B / 67.82MB 0.2s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 0B / 25.64MB 0.2s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 0B / 49.39MB 0.2s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 11.53MB / 102.45MB 0.6s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 17.83MB / 102.45MB 0.8s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 26.21MB / 102.45MB 0.9s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 36.70MB / 102.45MB 1.1s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 3.15MB / 25.64MB 0.9s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 46.14MB / 102.45MB 1.2s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 5.24MB / 67.82MB 1.1s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 5.24MB / 25.64MB 1.1s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 3.15MB / 49.39MB 0.9s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 54.53MB / 102.45MB 1.4s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 8.39MB / 25.64MB 1.2s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 6.29MB / 49.39MB 1.1s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 63.96MB / 102.45MB 1.5s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 9.44MB / 67.82MB 1.4s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 10.49MB / 25.64MB 1.4s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 10.49MB / 49.39MB 1.2s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 73.40MB / 102.45MB 1.7s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 12.58MB / 25.64MB 1.5s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 13.63MB / 49.39MB 1.4s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 81.79MB / 102.45MB 1.8s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 14.68MB / 67.82MB 1.7s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 15.73MB / 25.64MB 1.7s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 16.78MB / 49.39MB 1.5s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 90.03MB / 102.45MB 2.0s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 17.83MB / 25.64MB 1.8s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 20.97MB / 49.39MB 1.7s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 97.52MB / 102.45MB 2.1s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 19.92MB / 67.82MB 2.0s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 20.97MB / 25.64MB 2.0s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 25.17MB / 49.39MB 1.8s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 24.12MB / 25.64MB 2.1s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 29.36MB / 49.39MB 2.0s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 26.21MB / 67.82MB 2.3s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 25.64MB / 25.64MB 2.3s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 34.60MB / 49.39MB 2.1s
|
||||
#8 sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 102.45MB / 102.45MB 2.5s done
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 33.55MB / 67.82MB 2.6s
|
||||
#8 sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 25.64MB / 25.64MB 2.3s done
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 45.09MB / 49.39MB 2.4s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 37.75MB / 67.82MB 2.7s
|
||||
#8 sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 49.39MB / 49.39MB 2.6s done
|
||||
#8 extracting sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 48.23MB / 67.82MB 3.0s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 53.48MB / 67.82MB 3.2s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 59.77MB / 67.82MB 3.3s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 67.82MB / 67.82MB 3.5s
|
||||
#8 sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 67.82MB / 67.82MB 3.6s done
|
||||
#8 extracting sha256:8d0037029946d2c6dabce18eceda79c533c5797ed1ee86f94084cb8cddaeea91 1.8s done
|
||||
#8 DONE 4.8s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 extracting sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4
|
||||
#8 extracting sha256:63040bd9752a74c5b1082903de92d441d30121f994018576b4a2f4cf8bb3bca4 0.9s done
|
||||
#8 DONE 5.7s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 extracting sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309
|
||||
#8 extracting sha256:7046f4e749f0e32d9fc67f654ad5e33cc555534f82a9971e45a00dbdb899e309 3.1s done
|
||||
#8 DONE 8.8s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 extracting sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b
|
||||
#8 extracting sha256:f218a6f1819c3da32b6186c7b269e01900311ded961ad0c3aeac465886ec2f2b 3.4s done
|
||||
#8 DONE 12.2s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 extracting sha256:82e0bb27ae78502103ed383ed33346f88a83943fb7bd93977850d5890ee8fb3b
|
||||
#8 extracting sha256:82e0bb27ae78502103ed383ed33346f88a83943fb7bd93977850d5890ee8fb3b 6.0s done
|
||||
#8 DONE 18.2s
|
||||
|
||||
#8 [builder 1/7] FROM docker.io/library/golang:1.27.3-trixie@sha256:fbb7ae40b62ff8afe31662df570d39b4f5052ac32b90dae8e60d7657a20a74f4
|
||||
#8 extracting sha256:e436409a7823d65d1789487c782441b0727711d5da06a4a0dd7ad682afcd468c 0.0s done
|
||||
#8 extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s done
|
||||
#8 DONE 18.2s
|
||||
|
||||
#10 [builder 2/7] WORKDIR /build
|
||||
#10 DONE 3.0s
|
||||
|
||||
#11 [builder 3/7] COPY go.mod ./
|
||||
#11 DONE 0.0s
|
||||
|
||||
#12 [builder 4/7] RUN go mod download || true
|
||||
#12 DONE 11.1s
|
||||
|
||||
#13 [builder 5/7] COPY . .
|
||||
#13 DONE 6.3s
|
||||
|
||||
#14 [builder 6/7] RUN go mod tidy
|
||||
#14 1.676 go: downloading gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
|
||||
#14 1.710 go: downloading modernc.org/fileutil v1.3.40
|
||||
#14 1.710 go: downloading github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e
|
||||
#14 1.728 go: downloading golang.org/x/term v0.47.0
|
||||
#14 1.931 go: downloading modernc.org/goabi0 v0.2.0
|
||||
#14 1.931 go: downloading golang.org/x/tools v0.38.0
|
||||
#14 1.931 go: downloading modernc.org/cc/v4 v4.27.1
|
||||
#14 1.931 go: downloading modernc.org/ccgo/v4 v4.30.1
|
||||
#14 2.268 go: downloading modernc.org/sortutil v1.2.1
|
||||
#14 2.268 go: downloading modernc.org/strutil v1.2.1
|
||||
#14 2.268 go: downloading modernc.org/token v1.1.0
|
||||
#14 2.268 go: downloading modernc.org/opt v0.1.4
|
||||
#14 2.456 go: downloading golang.org/x/mod v0.29.0
|
||||
#14 2.456 go: downloading modernc.org/gc/v2 v2.6.5
|
||||
#14 2.456 go: downloading modernc.org/gc/v3 v3.1.1
|
||||
#14 2.646 go: downloading github.com/hashicorp/golang-lru/v2 v2.0.7
|
||||
#14 3.088 go: downloading golang.org/x/sync v0.17.0
|
||||
#14 DONE 4.7s
|
||||
|
||||
#15 [builder 7/7] RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X main.Version=0.349.0-rc.1 -X main.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ) -X main.GitCommit=b69e90b" -o /build/felhom-controller ./cmd/controller/
|
||||
#15 DONE 22.0s
|
||||
|
||||
#16 [stage-2 2/7] RUN apt-get update && apt-get upgrade -y --no-install-recommends && apt-get install -y --no-install-recommends ca-certificates curl gnupg git util-linux rsync openssh-client && rm -rf /var/lib/apt/lists/*
|
||||
#16 CACHED
|
||||
|
||||
#17 [restic 2/3] COPY third_party/restic/restic-release-key.asc /tmp/restic-release-key.asc
|
||||
#17 CACHED
|
||||
|
||||
#18 [restic 3/3] RUN set -eu; apt-get update && apt-get install -y --no-install-recommends ca-certificates curl gnupg gpgv bzip2; case "amd64" in amd64) want="f415415624dcc452f2a02b8c33641791a8c6d6d3b65bbb3543fcf9a25151585c" ;; arm64) want="a5f64aaab53d51e311fa3829124c5b703f2d14cf187d8640b6be3b2b49376465" ;; *) echo "no pinned restic checksum for architecture 'amd64'" >&2; exit 1 ;; esac; f="restic_0.19.1_linux_amd64.bz2"; url="https://github.com/restic/restic/releases/download/v0.19.1"; cd /tmp; curl -fsSL -o "$f" "$url/$f"; curl -fsSL -o SHA256SUMS "$url/SHA256SUMS"; curl -fsSL -o SHA256SUMS.asc "$url/SHA256SUMS.asc"; gpg --dearmor < /tmp/restic-release-key.asc > /tmp/restic-release-key.gpg; gpgv --keyring /tmp/restic-release-key.gpg SHA256SUMS.asc SHA256SUMS; grep " ${f}\$" SHA256SUMS | sha256sum -c -; echo "${want} ${f}" | sha256sum -c -; bunzip2 -c "$f" > /usr/local/bin/restic; chmod 0755 /usr/local/bin/restic; /usr/local/bin/restic version | grep -q "^restic 0.19.1 "
|
||||
#18 CACHED
|
||||
|
||||
#19 [stage-2 3/7] COPY --from=restic /usr/local/bin/restic /usr/local/bin/restic
|
||||
#19 CACHED
|
||||
|
||||
#20 [stage-2 4/7] RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg && . /etc/os-release && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian ${VERSION_CODENAME} stable" > /etc/apt/sources.list.d/docker.list && apt-get update && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin && rm -rf /var/lib/apt/lists/*
|
||||
#20 CACHED
|
||||
|
||||
#21 [stage-2 5/7] RUN mkdir -p /opt/docker/felhom-controller/data
|
||||
#21 CACHED
|
||||
|
||||
#22 [stage-2 6/7] COPY --from=builder /build/felhom-controller /usr/local/bin/felhom-controller
|
||||
#22 DONE 0.1s
|
||||
|
||||
#23 [stage-2 7/7] COPY assets/ /usr/share/felhom/assets/
|
||||
#23 DONE 0.1s
|
||||
|
||||
#24 exporting to image
|
||||
#24 exporting layers
|
||||
#24 exporting layers 2.1s done
|
||||
#24 exporting manifest sha256:7921572d531cfbe2864aa9c8db67095dbdc47103c8f22bd8d0b49df25fb33e42 0.0s done
|
||||
#24 exporting config sha256:712055a9013436ab0ea134f747e6bde6ca4f800df74f0c6e073baee2408ce041 0.0s done
|
||||
#24 exporting attestation manifest sha256:0fce6cfc8a9842082c0dd0b88770993a91ff6647d8eb9d24c68c87e2a3ddd64b 0.0s done
|
||||
#24 exporting manifest list sha256:3bd08409a4a020266b63d932d050d110c797ea7f43adef12efa53acb54c2d807 0.0s done
|
||||
#24 naming to gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 done
|
||||
#24 unpacking to gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1
|
||||
#24 unpacking to gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 0.4s done
|
||||
#24 DONE 2.6s
|
||||
[0;32m[INFO][0m Pushing...
|
||||
The push refers to repository [gitea.dooplex.hu/admin/felhom-controller]
|
||||
c3f83389ce1b: Waiting
|
||||
44136fa355b3: Waiting
|
||||
ecc510c1e359: Waiting
|
||||
bb3e85509c98: Waiting
|
||||
c3f83389ce1b: Layer already exists
|
||||
44136fa355b3: Already exists
|
||||
ecc510c1e359: Waiting
|
||||
bb3e85509c98: Waiting
|
||||
e81c1fce9826: Waiting
|
||||
63a1406b1961: Waiting
|
||||
ecc510c1e359: Layer already exists
|
||||
bb3e85509c98: Pushed
|
||||
e81c1fce9826: Layer already exists
|
||||
63a1406b1961: Layer already exists
|
||||
d747c9b6922d: Layer already exists
|
||||
6549351899d5: Pushed
|
||||
176243f09afc: Pushed
|
||||
0.349.0-rc.1: digest: sha256:3bd08409a4a020266b63d932d050d110c797ea7f43adef12efa53acb54c2d807 size: 856
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ Build complete ✓ ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1
|
||||
[0;32m[INFO][0m Size: 486M
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
== tester-1
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/tester-1?flash=floor_set
|
||||
== demo-hp
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-hp?flash=floor_set
|
||||
== demo-felhom
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-felhom?flash=floor_set
|
||||
@@ -0,0 +1,9 @@
|
||||
== tester-1
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/tester-1?flash=floor_set
|
||||
== demo-hp
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-hp?flash=floor_set
|
||||
== demo-felhom
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /customers/demo-felhom?flash=floor_set
|
||||
@@ -0,0 +1 @@
|
||||
2026-10-29T18:21:19Z
|
||||
+1
@@ -0,0 +1 @@
|
||||
2026-10-29T18:24:23Z
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
2026/10/29 19:24:23 [INFO] Global controller-version floor set to "0.349.0" (declared MinAgent "0.158.1")
|
||||
2026/10/29 19:24:23 [INFO] access token "cc-releases-2": POST /configuration/global-floor → 303
|
||||
@@ -0,0 +1,2 @@
|
||||
HTTP/1.1 303 See Other
|
||||
Location: /configuration?flash=floor_set
|
||||
@@ -0,0 +1,34 @@
|
||||
control NEGATIVE (a stub answering 200 over plain http): convicted, as it must (200 -)
|
||||
== tester-1 (enkicsifelhom.hu): 6 public name(s)
|
||||
OK control POSITIVE http://felhom.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://files.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paperless.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paperless.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://paste.enkicsifelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkicsifelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkicsifelhom.hu/r1033-check?q=1
|
||||
== demo-hp (enkisfelhom.hu): 15 public name(s)
|
||||
OK http://arcade.enkisfelhom.hu/r1033-check?q=1 -> 301 https://arcade.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://books.enkisfelhom.hu/r1033-check?q=1 -> 301 https://books.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://docs.enkisfelhom.hu/r1033-check?q=1 -> 301 https://docs.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://felhom.enkisfelhom.hu/r1033-check?q=1 -> 301 https://felhom.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://files.enkisfelhom.hu/r1033-check?q=1 -> 301 https://files.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://gist.enkisfelhom.hu/r1033-check?q=1 -> 301 https://gist.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://ha.enkisfelhom.hu/r1033-check?q=1 -> 301 https://ha.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1 -> 301 https://no-such-name-r1033.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://papir.enkisfelhom.hu/r1033-check?q=1 -> 301 https://papir.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://paste.enkisfelhom.hu/r1033-check?q=1 -> 301 https://paste.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://pdf.enkisfelhom.hu/r1033-check?q=1 -> 301 https://pdf.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://plex.enkisfelhom.hu/r1033-check?q=1 -> 301 https://plex.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://time.enkisfelhom.hu/r1033-check?q=1 -> 301 https://time.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://travel.enkisfelhom.hu/r1033-check?q=1 -> 301 https://travel.enkisfelhom.hu/r1033-check?q=1
|
||||
OK http://wiki.enkisfelhom.hu/r1033-check?q=1 -> 301 https://wiki.enkisfelhom.hu/r1033-check?q=1
|
||||
== demo-felhom (demo-felhom.eu): 8 public name(s)
|
||||
OK http://felhom.demo-felhom.eu/r1033-check?q=1 -> 301 https://felhom.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://files.demo-felhom.eu/r1033-check?q=1 -> 301 https://files.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://gist.demo-felhom.eu/r1033-check?q=1 -> 301 https://gist.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1 -> 301 https://no-such-name-r1033.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://prowlarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://prowlarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://radarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://radarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://sonarr.demo-felhom.eu/r1033-check?q=1 -> 301 https://sonarr.demo-felhom.eu/r1033-check?q=1
|
||||
OK http://torrent.demo-felhom.eu/r1033-check?q=1 -> 301 https://torrent.demo-felhom.eu/r1033-check?q=1
|
||||
== every public name redirects http -> https
|
||||
@@ -0,0 +1,2 @@
|
||||
18:21:28 root@192.168.0.154=0.349.0-rc.1|Up 15 minutes (healthy) hp=0.348.0|Up 5 hours (healthy) felhom-pve=0.349.0|Up Less than a second (health: starting)
|
||||
18:22:02 root@192.168.0.154=0.349.0|Up 28 seconds (healthy) hp=0.349.0|Up 30 seconds (healthy) felhom-pve=0.349.0|Up 33 seconds (healthy)
|
||||
@@ -0,0 +1,27 @@
|
||||
=== root@192.168.0.154 (enkicsifelhom.hu)
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up About a minute (healthy)
|
||||
containers: 10 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T18:21:30Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
srw------- 1 root root 0 Oct 29 18:21 hold.sock
|
||||
=== hp (enkisfelhom.hu)
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up About a minute (healthy)
|
||||
containers: 26 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T18:21:30Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
srw------- 1 root root 0 Oct 29 18:21 hold.sock
|
||||
=== felhom-pve (demo-felhom.eu)
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0 Up About a minute (healthy)
|
||||
containers: 9 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T18:21:30Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
srw------- 1 root root 0 Oct 29 18:21 hold.sock
|
||||
@@ -0,0 +1,7 @@
|
||||
controller: gitea.dooplex.hu/admin/felhom-controller:0.349.0-rc.1 Up About a minute (healthy)
|
||||
containers: 6 total
|
||||
not running/unhealthy: none
|
||||
refusals since 2026-10-29T16:12:00Z: 0
|
||||
ERROR lines since: 0
|
||||
login page: 200
|
||||
file manager: 200
|
||||
@@ -0,0 +1,11 @@
|
||||
18:24:57 boxes: 0.349.0|Up 3 minutes ok 0.349.0|Up 3 minutes ok 0.349.0|Up 3 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:28:01 boxes: 0.349.0|Up 6 minutes ok 0.349.0|Up 6 minutes ok 0.349.0|Up 6 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:31:05 boxes: 0.349.0|Up 9 minutes ok 0.349.0|Up 9 minutes ok 0.349.0|Up 9 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:34:10 boxes: 0.349.0|Up 12 minutes ok 0.349.0|Up 12 minutes ok 0.349.0|Up 12 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:37:14 boxes: 0.349.0|Up 15 minutes ok 0.349.0|Up 15 minutes ok 0.349.0|Up 15 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:40:19 boxes: 0.349.0|Up 18 minutes ok 0.349.0|Up 18 minutes ok 0.349.0|Up 18 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:43:23 boxes: 0.349.0|Up 21 minutes ok 0.349.0|Up 21 minutes ok 0.349.0|Up 21 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:46:28 boxes: 0.349.0|Up 24 minutes ok 0.349.0|Up 24 minutes ok 0.349.0|Up 24 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:49:33 boxes: 0.349.0|Up 27 minutes ok 0.349.0|Up 28 minutes ok 0.349.0|Up 28 minutes ok hub error/held/refused lines (3m): 0
|
||||
18:52:37 boxes: 0.349.0|Up 31 minutes ok 0.349.0|Up 31 minutes ok 0.349.0|Up 31 minutes ok hub error/held/refused lines (3m): 0
|
||||
watch done 18:55:37
|
||||
@@ -0,0 +1,171 @@
|
||||
[0;36m[STEP][0m 0/3 — Checking the registry: is 0.177.0 already published?
|
||||
[0;32m[INFO][0m 0.177.0 is not present in the registry — proceeding.
|
||||
[0;36m[STEP][0m 1/3 — Pulling latest code (the tree must be clean and at origin/main)...
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ felhom-hub build ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Version: 0.177.0 (build-hub.sh v1.25.0)
|
||||
[0;32m[INFO][0m Commit: 636022dc
|
||||
[0;32m[INFO][0m Source: /mnt/5_hdd/felhom.eu/git/felhom.eu/hub
|
||||
[0;32m[INFO][0m Build: /mnt/5_hdd/felhom.eu/build/felhom-hub/workspace
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-hub:0.177.0
|
||||
|
||||
[0;36m[STEP][0m 2/3 — Syncing source to workspace...
|
||||
[0;32m[INFO][0m Source synced to /mnt/5_hdd/felhom.eu/build/felhom-hub/workspace
|
||||
[0;32m[INFO][0m App assets synced (263 files)
|
||||
[0;32m[INFO][0m Package structure verified ✓
|
||||
[0;32m[INFO][0m Running go mod tidy...
|
||||
[0;36m[STEP][0m 3/3 — Building Docker image...
|
||||
[0;32m[INFO][0m Building for current platform + pushing...
|
||||
#0 building with "default" instance using docker driver
|
||||
|
||||
#1 [internal] load build definition from Dockerfile
|
||||
#1 transferring dockerfile: 1.46kB 0.0s done
|
||||
#1 DONE 0.0s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#2 ...
|
||||
|
||||
#3 [auth] library/golang:pull token for registry-1.docker.io
|
||||
#3 DONE 0.0s
|
||||
|
||||
#4 [auth] library/alpine:pull token for registry-1.docker.io
|
||||
#4 DONE 0.0s
|
||||
|
||||
#5 [internal] load metadata for docker.io/library/alpine:3.24.2@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6
|
||||
#5 DONE 0.9s
|
||||
|
||||
#2 [internal] load metadata for docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#2 DONE 1.5s
|
||||
|
||||
#6 [internal] load .dockerignore
|
||||
#6 transferring context: 2B done
|
||||
#6 DONE 0.0s
|
||||
|
||||
#7 [builder 1/6] FROM docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#7 resolve docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c 0.0s done
|
||||
#7 DONE 0.0s
|
||||
|
||||
#8 [stage-1 1/5] FROM docker.io/library/alpine:3.24.2@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6
|
||||
#8 resolve docker.io/library/alpine:3.24.2@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 0.0s done
|
||||
#8 DONE 0.0s
|
||||
|
||||
#9 [internal] load build context
|
||||
#9 transferring context: 22.66MB 0.3s done
|
||||
#9 DONE 0.4s
|
||||
|
||||
#7 [builder 1/6] FROM docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#7 DONE 0.1s
|
||||
|
||||
#7 [builder 1/6] FROM docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#7 extracting sha256:7b229517ed222597277036d94892173207d01a731ab3a88eeb1de2e963a2c788 0.1s done
|
||||
#7 sha256:c8e3100880d834be60a9562375f4c5018b2cb26d64591bd0060aa3a80b935f43 126B / 126B 0.1s done
|
||||
#7 sha256:c012d78a862fe59ae6789c91f982ea68a882c9c44bbde97013914458dcdd9c4c 0B / 244.47kB 0.2s
|
||||
#7 sha256:c012d78a862fe59ae6789c91f982ea68a882c9c44bbde97013914458dcdd9c4c 244.47kB / 244.47kB 0.3s done
|
||||
#7 extracting sha256:c012d78a862fe59ae6789c91f982ea68a882c9c44bbde97013914458dcdd9c4c 0.1s done
|
||||
#7 DONE 0.5s
|
||||
|
||||
#7 [builder 1/6] FROM docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#7 extracting sha256:82e0bb27ae78502103ed383ed33346f88a83943fb7bd93977850d5890ee8fb3b
|
||||
#7 extracting sha256:82e0bb27ae78502103ed383ed33346f88a83943fb7bd93977850d5890ee8fb3b 5.5s done
|
||||
#7 DONE 6.0s
|
||||
|
||||
#7 [builder 1/6] FROM docker.io/library/golang:1.27.3-alpine3.24@sha256:b8c9b82affbbb82a020bbcf998dad2ba9516944ac7e883524642a481a9505e9c
|
||||
#7 extracting sha256:c8e3100880d834be60a9562375f4c5018b2cb26d64591bd0060aa3a80b935f43 0.0s done
|
||||
#7 extracting sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0.0s done
|
||||
#7 DONE 6.1s
|
||||
|
||||
#10 [builder 2/6] WORKDIR /app
|
||||
#10 DONE 1.2s
|
||||
|
||||
#11 [builder 3/6] COPY go.mod go.sum* ./
|
||||
#11 DONE 0.2s
|
||||
|
||||
#12 [builder 4/6] RUN go mod download || true
|
||||
#12 DONE 10.2s
|
||||
|
||||
#13 [builder 5/6] COPY . .
|
||||
#13 DONE 0.9s
|
||||
|
||||
#14 [builder 6/6] RUN go mod tidy && CGO_ENABLED=0 go build -ldflags "-s -w -X main.Version=0.177.0 -X main.BuildTime=2026-10-29T15:40:29Z" -o /felhom-hub ./cmd/hub/
|
||||
#14 0.813 go: downloading gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
|
||||
#14 0.845 go: downloading modernc.org/fileutil v1.3.40
|
||||
#14 0.845 go: downloading github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e
|
||||
#14 0.867 go: downloading golang.org/x/term v0.47.0
|
||||
#14 1.017 go: downloading modernc.org/ccgo/v4 v4.30.1
|
||||
#14 1.017 go: downloading modernc.org/goabi0 v0.2.0
|
||||
#14 1.019 go: downloading modernc.org/cc/v4 v4.27.1
|
||||
#14 1.019 go: downloading golang.org/x/tools v0.38.0
|
||||
#14 1.546 go: downloading modernc.org/strutil v1.2.1
|
||||
#14 1.546 go: downloading golang.org/x/mod v0.29.0
|
||||
#14 1.546 go: downloading modernc.org/opt v0.1.4
|
||||
#14 1.546 go: downloading modernc.org/gc/v2 v2.6.5
|
||||
#14 1.546 go: downloading modernc.org/gc/v3 v3.1.1
|
||||
#14 1.652 go: downloading modernc.org/token v1.1.0
|
||||
#14 1.776 go: downloading github.com/hashicorp/golang-lru/v2 v2.0.7
|
||||
#14 2.031 go: downloading golang.org/x/sync v0.17.0
|
||||
#14 2.375 go: downloading modernc.org/sortutil v1.2.1
|
||||
#14 DONE 25.2s
|
||||
|
||||
#15 [stage-1 2/5] RUN apk add --no-cache ca-certificates tzdata
|
||||
#15 CACHED
|
||||
|
||||
#16 [stage-1 3/5] COPY --from=builder /felhom-hub /usr/local/bin/felhom-hub
|
||||
#16 DONE 0.1s
|
||||
|
||||
#17 [stage-1 4/5] RUN mkdir -p /data /etc/felhom-hub
|
||||
#17 DONE 0.5s
|
||||
|
||||
#18 [stage-1 5/5] COPY assets/ /usr/share/felhom/assets-seed/
|
||||
#18 DONE 0.2s
|
||||
|
||||
#19 exporting to image
|
||||
#19 exporting layers
|
||||
#19 exporting layers 2.1s done
|
||||
#19 exporting manifest sha256:1cef4b671d228fb513e1add42aff89c2fc5293860dafd5da8a0a6ca98378653f
|
||||
#19 exporting manifest sha256:1cef4b671d228fb513e1add42aff89c2fc5293860dafd5da8a0a6ca98378653f 0.2s done
|
||||
#19 exporting config sha256:b9f5cf919c107056ac7e38d993bda0228544a01afc64ea53df7a1641bdbe612b
|
||||
#19 exporting config sha256:b9f5cf919c107056ac7e38d993bda0228544a01afc64ea53df7a1641bdbe612b 0.2s done
|
||||
#19 exporting attestation manifest sha256:4c91821577d3f90ec6137f8c84ca49ebff61163aa9f65d6930dc92b15ef00364
|
||||
#19 exporting attestation manifest sha256:4c91821577d3f90ec6137f8c84ca49ebff61163aa9f65d6930dc92b15ef00364 0.2s done
|
||||
#19 exporting manifest list sha256:727eeec76bf728c00f9a7e645ad26fddff31addc5bca9f8465098e264eb90ef9
|
||||
#19 exporting manifest list sha256:727eeec76bf728c00f9a7e645ad26fddff31addc5bca9f8465098e264eb90ef9 0.2s done
|
||||
#19 naming to gitea.dooplex.hu/admin/felhom-hub:0.177.0
|
||||
#19 naming to gitea.dooplex.hu/admin/felhom-hub:0.177.0 0.0s done
|
||||
#19 unpacking to gitea.dooplex.hu/admin/felhom-hub:0.177.0
|
||||
#19 unpacking to gitea.dooplex.hu/admin/felhom-hub:0.177.0 0.8s done
|
||||
#19 DONE 3.9s
|
||||
[0;32m[INFO][0m Pushing...
|
||||
The push refers to repository [gitea.dooplex.hu/admin/felhom-hub]
|
||||
93c1eb832da7: Waiting
|
||||
44136fa355b3: Waiting
|
||||
e2de96513ba9: Waiting
|
||||
a7b714fcaa8a: Waiting
|
||||
e2de96513ba9: Layer already exists
|
||||
a7b714fcaa8a: Pushed
|
||||
93c1eb832da7: Layer already exists
|
||||
44136fa355b3: Already exists
|
||||
08ed9914c642: Pushed
|
||||
2cdd01c9b0e8: Pushed
|
||||
525e3ecc2922: Pushed
|
||||
0.177.0: digest: sha256:727eeec76bf728c00f9a7e645ad26fddff31addc5bca9f8465098e264eb90ef9 size: 856
|
||||
|
||||
[0;32m[INFO][0m ╔══════════════════════════════════════╗
|
||||
[0;32m[INFO][0m ║ Build complete ✓ ║
|
||||
[0;32m[INFO][0m ╚══════════════════════════════════════╝
|
||||
[0;32m[INFO][0m Image: gitea.dooplex.hu/admin/felhom-hub:0.177.0
|
||||
[0;32m[INFO][0m Size: 73M
|
||||
|
||||
[0;32m[INFO][0m Image pushed to registry.
|
||||
|
||||
[0;32m[INFO][0m Deploy to k3s — GitOps ONLY. The manifest in git is the source of truth:
|
||||
[0;32m[INFO][0m 1. bump the image tag in /mnt/5_hdd/felhom.eu/git/felhom.eu/manifests/hub.yaml to 0.177.0, commit, push
|
||||
[0;32m[INFO][0m 2. hard-refresh + sync the ArgoCD app (auto-sync is OFF — the sync is deliberate):
|
||||
[0;32m[INFO][0m sudo kubectl -n argocd annotate application felhom argocd.argoproj.io/refresh=hard --overwrite
|
||||
[0;32m[INFO][0m sudo kubectl -n argocd patch application felhom --type merge \
|
||||
[0;32m[INFO][0m -p '"{"operation":"initiatedBy":{"username":"cc"}}"' -p '"{"operation":"sync":{"syncStrategy":{"apply":{}}}}"'
|
||||
[0;32m[INFO][0m
|
||||
[0;32m[INFO][0m NEVER `kubectl set image` or `kubectl apply` by hand — ArgoCD reverts it on the next
|
||||
[0;32m[INFO][0m sync, so the change looks applied, works for a while, and then silently disappears.
|
||||
|
||||
@@ -26,6 +26,13 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-10-29 (evening release) — R-1349 and R-1350 closed (full text of the rows: `git show 8cc555be:documentation/backlog/OPEN-ITEMS.md`)
|
||||
|
||||
| Row | What | Closed | Evidence |
|
||||
|---|---|---|---|
|
||||
| **R-1349** | **The hub can restart a box's controller (agent, 2026-10-29) but cannot restart the whole guest — a guest whose Docker or network is stuck still needs a person at the Proxmox host.** (P4) | CLOSED 2026-10-29 — D65 = A (operator 15:50): `reboot_guest` in the agent's closed list, released in agent **0.170.0** (`da8d12a0…`, vouched 18:57 CET) with hub **0.177.0** (the button) and controller **0.349.0** (the busy file, the household line; global floor 19:24 CET). Proven live on Tester 1: refused during an off-site run (the controller's busy file), done in 67 s / 79 s, a second press inside the hour refused; on the release builds one press 20:05 CET: 'rebooted; the guest was up after 66 s, the controller answered after 78 s', every app back, the dashboard line 'A Felhom ügyfélszolgálata 20:05-kor újraindította a dobozt.' | `audits/release-2026-10-29c/``p1-reboot/`, `final/` |
|
||||
| **R-1350** | **When the operator clears a crash-loop hold from the hub, the box sends `app_start_failed` („Telepített alkalmazás nem fut") for that app 30 s later — about an app the operator just chose to leave stopped until the household's Start.** (P4) | CLOSED 2026-10-29 — released in controller **0.349.0** (`sha256:c5341883…`, from `94049a7`), the global floor since 19:24 CET. The operator's clear records the stop as wanted (desired state 'stopped') before the hold is lifted; test red first. Proven live on Tester 1 (rc.1): a crash-loop hold cleared from the hub, no `app_start_failed` in 6.5 minutes (before: 30 s), the dead-app scan meanwhile '0 currently down'. | `audits/release-2026-10-29c/``p3-r1350/` |
|
||||
|
||||
## 2026-10-29 (afternoon release) — R-1343, R-1342, R-1340 and R-1341 closed (full text of the rows: `git show e4d91043:documentation/backlog/OPEN-ITEMS.md`)
|
||||
|
||||
| Row | What | Closed | Evidence |
|
||||
|
||||
@@ -272,7 +272,7 @@ stopping line that lies.
|
||||
| **R-1309** | Security & access | P4 | **What no automated source shows: a fix announced only by mail, forum or a blog we do not read; a security fix nobody calls one (cloudflared 2026.10.2's „bump distroless image"); closed-source apps (Plex, Emby).** The watch (R-1303) shows these only as BEHIND (weekly). The vendor mails the operator receives stay a source. `audits/security-watch-2026-10-26/SPIKE.md` | OPEN — filed 2026-10-26 (a stated limit) | — | none until a vendor offers a feed; add a vendor's feed to `security_watch.FEEDS` when one exists | CC |
|
||||
| **R-1312** | Backup & restore | P3 | **The hub customer page's off-site switch did not reach the box: on Tester 1 (2026-10-27, operator-attended, ~14:00–14:12 UTC) the box's saved off-site target stayed `enabled` and its `controller.yaml` `offsite.enabled: true` (unchanged since 2026-10-04) while the hub showed off-site OFF.** So what the switch stops on the box side is not known: the controller reads `cfg.Offsite.Enabled` only at start (`cmd/controller/main.go:890`), and nothing rewrote the file. Either the switch is hub-side only by design (then the page must say so), or a box keeps pushing off-site while the operator believes it is off. Found by the R-1218 live attempt (R-1218 closed 2026-10-27 with its live proof waived by the operator). | OPEN | — | Read the hub handler behind the switch and what it changes (config, tenancy, storage access); then one attended run: switch off, watch the box's next off-site push (does it run, does it fail at the storage) | CC |
|
||||
|
||||
## Box system & updates — 14 rows (P3 9, P4 5)
|
||||
## Box system & updates — 15 rows (P3 9, P4 6)
|
||||
|
||||
| ID | Category | Sev | What | State | Blocked on | Next action | Owner |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
@@ -290,9 +290,10 @@ stopping line that lies.
|
||||
| **R-1013** | Box system & updates | P4 | **After a power cut the agent's start-up stale-lock pass logs an ERROR „pct unlock failed … no lock found" when Proxmox's own start-all removed the lock in the same second.** The outcome is the goal (no lock), so the line is a false alarm in the log. Seen on demo-hp 2026-10-14 12:07:44–45 UTC (`audits/power-cut-fixes-2026-10-14/E/after-boot.txt`; Proxmox: „removed left over backup lock from '9201'!"). Small, but the agent's release for this session is spent (v0.156.1). | **OPEN** — filed 2026-10-14 | — | CC: treat „no lock found" from `pct unlock` as already clear (INFO), with a test; ride the next agent release | CC |
|
||||
| **R-1061** | Box system & updates | P4 | **A per-customer floor reached Tester 1 only at its next 15-minute report, not in seconds.** Set 2026-10-15 12:55:51 UTC for tester-1, demo-hp and demo-felhom together (hub 0.153.0, CC's token): demo-hp and demo-felhom ran 0.314.0 within 13 s (the hub's wake); Tester 1 moved at 13:09:35, its regular report (`audits/gate-restore-2026-10-15/release/03-boxes-move.txt`). It had restarted at 12:54:29 onto rc.1 and logged „hub wait channel active". Why the wake did not reach it is not read (the wake line is DEBUG). No harm: the floor arrived. | **OPEN** — filed 2026-10-15 | — | Read Tester 1's DEBUG ring at the next floor change; compare with the hub's bump log | CC |
|
||||
| **R-1285** | Box system & updates | P4 | **D43's removal of our SSH drop-in from a BYO host happens one bundle LATE: the bundle run that delivers agent 0.165.0 is planned by the box's OLD (0.164.0) wrapper, which writes the drop-in as before („same"), and only then replaces itself.** Measured 2026-10-25 on the BYO test host (VM 9371 on demo-hp, `Tester4-f967d4`; attended release run): 0.164.0 day-0 → signed `agent_update` + `agent_config_update` 0.165.0 → the planted drop-in still there; a second `agent_config_update` (same bundle) → `BUNDLE REMOVED … (ours, on a BYO host — D43)`, nothing written, `sshd -T` the owner's own `permitrootlogin yes` (`audits/release-2026-10-26/byo/byo-proof.txt`). No box is affected today (the fleet's only BYO host is this test host); a fresh BYO install on ≥ 0.165.0 runs the new wrapper from the start. | **VERIFY** — 2026-10-27: agent v0.167.0 RELEASED; in the NORMAL signed delivery the pass now runs right after the commit on all three boxes („running the bundle policy pass after the self-update commit (R-1285)” → `BUNDLE POLICY DONE install_mode=appliance removed=0`; `audits/release-2026-10-27/agent-0167-tester1-demofelhom.txt`). Not live: a BYO box coming FROM 0.164.0 (none in the fleet). **Earlier:** **VERIFY** — 2026-10-26: agent `b1bc63d` (unreleased) — the new agent runs the bundle-policy pass once right after its self-update commits (`selfupdate.SetOnCommitted`); test in the real order (commit, then one pass), red-proved. **Not live:** only a box coming FROM 0.164.0 discriminates (0.165.0's wrapper already applies D43), which needs a signed downgrade chain on a BYO box — the live proof rides the next agent release. **Earlier:** **OPEN** — 2026-10-26 (agent 0.166.0 released, attended run): the policy pass is wired, but in the normal delivery it does NOT run: the box gets `agent_update` and `agent_config_update` in ONE pass, and the bundle job runs in the OLD process (demo-hp: pid 1966780, agent 0.165.0, bundle 09:03:07–09:03:09 CET; the restart into 0.166.0 at 09:03:10) — no `bundle policy pass` line on any of the three boxes. So a BYO host coming from 0.164.0 still loses our drop-in one release late. The night proof (`audits/night-2026-10-25/rig/r1285-live.txt`) ran a bundle under an agent that was ALREADY 0.166.0-code, so it did not cover this order. No BYO host is in the fleet today. Fix options: the agent runs the pass once at start-up after `update committed`; or the release procedure sends the bundle job only after the commit. **Earlier state:** **VERIFY** — fixed on main 2026-10-25 night (agent `abcc1e6`), waits for the agent release + the vouch: the agent runs the wrapper's `bundle-policy` pass after every install (red-proved, `redproof-r1285.txt`). **Live on the rig in ONE signed run** (BYO host, staged as upgraded from 0.164.0: the new agent by hand, the old 0.164.0 wrapper on disk, our drop-in planted; one `agent_config_update` of a test bundle): the old wrapper installed the bundle and replaced itself, then „BUNDLE POLICY REMOVED … (ours, on a BYO host)", `sshd -T` the owner's own `permitrootlogin yes` (`rig/r1285-live.txt`); the test package deleted from the registry after. **Earlier state:** OPEN | — | either the wrapper plans again after it replaced itself (one agent change + a test that a 0.164.0→0.165.0 bundle on a BYO record removes our copy in ONE run, red first), or the release procedure sends a BYO box's config bundle twice; until then a BYO box upgraded from ≤ 0.164.0 keeps our drop-in until its next bundle | CC |
|
||||
| **R-1351** | Box system & updates | P4 | **At a guest boot two start paths run `docker compose up` on FileBrowser in the same second, and one fails with „Conflict. The container name \"/<id>_filebrowser\" is already in use" — two `[ERROR]` lines and a `[WARN] first-boot base-stack bring-up` for an app that then runs healthy.** Seen 2026-10-29 19:07:02 UTC on Tester 1 (controller 0.349.0) after the operator reboot from the hub: `[infra] filebrowser compose exists — starting without regenerating` and `[web] FileBrowser mounts synced (recreated)` at the same second; the recreate won (Docker's temporary rename `<id>_filebrowser`), FileBrowser „Up (healthy)", files.<domain> 200. The first reboot an hour earlier showed no such line — a race, not every boot. Any guest boot can hit it (a power cut, the household's „A Felhom újraindítása"). The effect is a false ERROR in the box log (and in a box walk); nothing stays broken. | OPEN | `audits/release-2026-10-29c/final/walk-after.txt` | serialise the two FileBrowser start paths at boot (one waits for the other, or the bring-up skips a stack another path is recreating); test red first | CC |
|
||||
|
||||
|
||||
## Monitoring & notifications — 25 rows (P2 2, P3 15, P4 8)
|
||||
## Monitoring & notifications — 24 rows (P2 2, P3 15, P4 7)
|
||||
|
||||
| ID | Category | Sev | What | State | Blocked on | Next action | Owner |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
@@ -319,10 +320,9 @@ stopping line that lies.
|
||||
| **R-1296** | Monitoring & notifications | P4 | **When ep0's tenancy script refuses, the hub log shows only its one-line error — PBS's own reason (the 403 `missing Datastore.Audit|Datastore.Backup on …`) stays in the script's stderr, which the hub drops on a refusal.** Found 2026-10-26 diagnosing R-1295: the cause was visible only by reading ep0's proxy journal over root SSH. `hub/internal/tenantsync/client.go` `parseResponse` returns the JSON error and ignores stderr; the script keeps secrets off stderr by design (its header), so the tail is safe to log. | OPEN | — | append the last ~3 stderr lines to the refusal error (bounded, never stdout); a test that a secret on stdout never appears | CC |
|
||||
| **R-1328** | Monitoring & notifications | P2 | **DooPlex's own workloads were not in the security watch at all** — about ten public apps there carry a bad Brotli/Node (HTTP2Shell), on the host that runs the hub, Gitea, the registry and the backups. | **VERIFY** — BUILT 2026-10-27 night (commit only): `scripts/dooplex_inventory.py` lists every `image:` of homelab-manifests (89 images, `documentation/security-watch/dooplex-workloads.txt`; NOT Helm-chart images — said in the file); the watch reads them as the group „dooplex" (operator mails only, own block, „Next: the homelab session"); an image in the private registry is NOT CHECKED with the reason. Tests W12, red-proved. The homelab session's list: `documentation/audits/http2shell-2026-10-27/HOMELAB-LIST.md`. Felhom changes nothing on DooPlex. | — | the first CI night shows the DooPlex block; the homelab session works its list. 2026-10-28: `minio/minio:latest` answers HTTP 401 on Docker Hub (the image is no longer published there) — for the homelab session: the pin cannot be checked anonymously any more | CC |
|
||||
| **R-528** | Monitoring & notifications | P2 | **[P2-MEDIUM] Docker does not report an OOM kill inside a Felhom LXC guest: `OOMKilled` stays false and no `oom` event fires, so the v0.243.0 OOM line is not proven live.** MEASURED 2026-09-15 on scratch 9202 (Docker 29.8.0): Paperless capped at 128M restarted 11 times with `OOMKilled=false` and zero `docker events --filter event=oom`; a memory hog inside the running container was killed (rc 137) with the same silence (`E2-oom-signal-measure-9202.txt`). BIGNIGHT VM 333 did read `oomkilled=true`, so the shape differs by case. **Fix shape:** the agent reads the guest container cgroups' `memory.events oom_kill` counters (host-side, reliable), or the controller alarms on a restart-count trend **RE-MEASURED 2026-09-16 on the DRILL box (fresh install, nested VM 334, Docker in an LXC guest, controller 0.243.0), so the finding is not a property of one machine:** the Paperless webserver was capped at 128 M with `docker update --memory`; it restarted 9-10 times, and all three signals stayed silent - `OOMKilled=false` on every inspect, `docker events --filter event=oom` EMPTY for the whole window, the container's cgroup not visible from inside the guest, and `dmesg` unreadable there. Identical to scratch 9202. So the v0.243.0 OOM line cannot fire on ANY Felhom box as shipped, on either host. Evidence: `audits/evidence-drill-0243-2026-09-16/phase2-m1-oom.txt`. | WATCHING — **released 2026-10-29:** agent 0.168.0 (vouched 10:21:56 CET) + controller 0.347.0 (the global floor). Proven on the release on Tester 1: a hog in a 128 MB Gokapi — host counter 1, one `app_oom` „seen by docker,cgroup", one operator mail (`audits/d63-2026-10-29/run-p4-oom.log`; the repeated WARN is R-1341). Closes at the dated check 2026-11-12 if it holds. | — | 2026-11-12: read the hub for any failed `oom_check` or an `app_oom` with no restart reason since 2026-10-12; none → close | CC |
|
||||
| **R-1344** | Monitoring & notifications | P3 | **A controller that RUNS but does not answer is not restarted by anything — only a stopped one is (R-523).** Operator brief 2026-10-29, Part 2: the agent may restart it only after a measurement shows a busy night (backups, updates) never looks „not answering". Built 2026-10-29 as ALARM ONLY (agent `637c92c`: 6 consecutive sweeps of Docker's health check „unhealthy" — on top of Docker's own 3 failed probes, ~4.5 min in all — set `unresponsive_since`; the hub mails `controller_unresponsive`, operator-only). The measurement: Docker's own probe record (`curl -f localhost:8080/api/health`, every 30 s, timeout 5 s) logged every 30 s on Tester 1 and demo-hp from 2026-10-29 11:14 UTC to 2026-10-30 07:00 UTC — through tonight's real night chain (a day run cannot hold the whole-guest vzdump). **Read so far (2026-10-29 11:12–13:50 UTC, 631 probes):** Tester 1 314 probes, median 57 ms, max 163 ms; demo-hp 317 probes, median 61 ms, max 79 ms; no failed probe, no 5-s timeout. One record read „unhealthy": Tester 1 at 12:01 UTC, the controller stopped by hand for the restart proof (its probes passed). Four operator restarts and one controller update in the window never read „unhealthy". The night chain is not in it yet — so the decision waits for the night: alarm only until then. | OPEN — measuring | — | read the measurement (worst probe times, any 5-s timeout, any „unhealthy"); if none fired: switch the alarm to a restart (same guards and brake, `controller_unresponsive_restart`) | CC |
|
||||
| **R-1350** | Monitoring & notifications | P4 | **When the operator clears a crash-loop hold from the hub, the box sends `app_start_failed` („Telepített alkalmazás nem fut") for that app 30 s later — about an app the operator just chose to leave stopped until the household's Start.** Seen live 2026-10-29 on Tester 1 (controller 0.348.0): clear at 13:57:51 UTC, `app_hold_cleared` and `app_start_failed` both at 13:58:21; the hub's cooldown swallowed the mail only because the crash loop had sent one 3 minutes before. The text is true (the app is installed and not running); the timing is noise. The 12:44 clear (rc.1) showed none in 18 minutes. | OPEN | `audits/release-2026-10-29b/final/clear-hub.txt` | decide whether a box-stopped app whose hold the operator cleared counts as stopped on purpose until the next Start; test red first | CC |
|
||||
| **R-1344** | Monitoring & notifications | P3 | **A controller that RUNS but does not answer is not restarted by anything — only a stopped one is (R-523).** Operator brief 2026-10-29, Part 2: the agent may restart it only after a measurement shows a busy night (backups, updates) never looks „not answering". Built 2026-10-29 as ALARM ONLY (agent `637c92c`: 6 consecutive sweeps of Docker's health check „unhealthy" — on top of Docker's own 3 failed probes, ~4.5 min in all — set `unresponsive_since`; the hub mails `controller_unresponsive`, operator-only). The measurement: Docker's own probe record (`curl -f localhost:8080/api/health`, every 30 s, timeout 5 s) logged every 30 s on Tester 1 and demo-hp from 2026-10-29 11:14 UTC to 2026-10-30 07:00 UTC — through tonight's real night chain (a day run cannot hold the whole-guest vzdump). **Read so far (2026-10-29 11:12–13:50 UTC, 631 probes):** Tester 1 314 probes, median 57 ms, max 163 ms; demo-hp 317 probes, median 61 ms, max 79 ms; no failed probe, no 5-s timeout. One record read „unhealthy": Tester 1 at 12:01 UTC, the controller stopped by hand for the restart proof (its probes passed). Four operator restarts and one controller update in the window never read „unhealthy". The night chain is not in it yet — so the decision waits for the night: alarm only until then. **Planned events in the log window (2026-10-29 evening, leave them out of the reading):** Tester 1 — 18:00 UTC rc swap, 18:05 and 19:05 UTC operator reboots (D65 proofs), 18:21 UTC floor update; demo-hp — 18:21 UTC floor update; 9202 is not logged. | OPEN — measuring | — | read the measurement (worst probe times, any 5-s timeout, any „unhealthy"); if none fired: switch the alarm to a restart (same guards and brake, `controller_unresponsive_restart`) | CC |
|
||||
|
||||
## Hub & operator — 15 rows (P3 4, P4 11)
|
||||
## Hub & operator — 14 rows (P3 4, P4 10)
|
||||
|
||||
| ID | Category | Sev | What | State | Blocked on | Next action | Owner |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
@@ -339,8 +339,7 @@ stopping line that lies.
|
||||
| **R-1164** | Hub & operator | P4 | **Move the website to Hetzner (maybe the JARRs.eu prod server) — an operator idea, no decision asked yet.** If it is done, the website's git-syncs must read the public `https://gitea.dooplex.hu/admin/felhom.eu.git` again: since 2026-10-19 (R-1163) all four read Gitea in-cluster, which works only inside the DooPlex cluster (`01-topology-and-trust.md` §7, `manifests/webpage.yaml`). | OPEN | the operator's idea becoming a decision | When decided: switch the four `--repo` values together (gate 6 keeps them identical); keep `--max-failures=-1` | operator |
|
||||
| **R-1293** | Hub & operator | P4 | **Once a year the hub's 02:00 database copy never reaches ep0, and the 20:00 copy is pushed twice instead.** Measured 2026-10-26 during R-1183's read (`audits/night-2026-10-25/r1183-measurement-2026-10-26.txt`): on 2026-10-25 (the clocks go back) 02:00–03:00 happens twice. The hub's `nextDailyRun` uses `time.Date`, which picks the SECOND 02:00 (CET, 01:00Z — measured with Go). DooPlex's `felhom-hub-db-backup.timer` fired at the FIRST 02:30 (CEST, 00:31Z) and pushed `hub-20261024T180000Z.db`, 391 min old — under the 7 h limit, so no refusal and no alarm; the 08:30 push took the 08:00 copy. Effect: for one morning a year ep0's newest hub copy is 12 h old, not 6 h; nothing is lost on the hub. The spring night (2027-03-28, 02:00–03:00 does not exist) is not measured. | OPEN | — | pick one: the push refuses (and says so) a newest snapshot older than the slot it serves, or the hub and the timer agree on one 02:00; then read the 2027-03-28 night (DUE-CHECKS) | CC |
|
||||
| **R-1345** | Hub & operator | P4 | **An access token's scopes cannot be changed after it is made — widening or narrowing one means a new token (and a new secret).** The operator, 2026-10-29: to give CC `hosts:read` + `hosts:write` for the live proofs he had to make `CC_HOSTS` (now in `sec`) beside `cc-releases-2`. Wanted: edit a token's scopes in the session (an audit line per change), so a scope can also be taken away after a session without retiring the secret. | OPEN | — | design + build the scope edit (session only), red-first test that an unticked scope is refused at once | CC |
|
||||
| **R-1346** | Hub & operator | P3 | **Hub pages load slowly for the operator, and the artifacts page's vouch has twice ended in a 504 from an nginx in front of the hub — while the save went through.** Operator, 2026-10-29 (the 0.169.0 vouch: 504 in the browser; the hub logged „Artifact manifest set: agent=0.169.0" at 14:06:09 CET). Measured the same afternoon INSIDE the cluster (hub ClusterIP, 5 tries each): the dashboard 0.01–0.69 s, Hosts 0.02–0.30 s, a host page 0.11–0.39 s, Configuration 0.002–0.26 s; the registry calls behind the artifacts page ~0.1 s each (11 agent + 7 golden versions, 8 in parallel, cached) — so neither the hub's own work nor the registry explains a minute. Suspect the road (browser → proxy/tunnel → DooPlex) or one handler not yet timed (the artifacts page and its POST are session-only, so no token can time them). The hub logs no request durations. Evidence: `audits/release-2026-10-29b/perf/`. | OPEN | — | (1) a slow-request line in the hub (method, path, status, duration ≥ 2 s); (2) time the public path from outside the LAN; (3) then fix where the time goes | CC |
|
||||
| **R-1349** | Hub & operator | P4 | **The hub can restart a box's controller (agent, 2026-10-29) but cannot restart the whole guest — a guest whose Docker or network is stuck still needs a person at the Proxmox host.** Operator brief 2026-10-29: „a row for a guest reboot from the hub, if it should come later". Not built: the agent's closed list holds `restart_controller` only (`04` §6.1). A `reboot_guest` verb would stop every app of the household for a minute, so it needs the operator's word on the guards (no backup or restore running, the same brake, a typed confirm) before any code. | OPEN — needs a decision | — | operator: yes/no to a `reboot_guest` verb; if yes, a brief with its guards | operator |
|
||||
| **R-1346** | Hub & operator | P3 | **Hub pages load slowly for the operator, and the artifacts page's vouch has twice ended in a 504 from an nginx in front of the hub — while the save went through.** Operator, 2026-10-29 (the 0.169.0 vouch: 504 in the browser; the hub logged „Artifact manifest set: agent=0.169.0" at 14:06:09 CET). Measured the same afternoon INSIDE the cluster (hub ClusterIP, 5 tries each): the dashboard 0.01–0.69 s, Hosts 0.02–0.30 s, a host page 0.11–0.39 s, Configuration 0.002–0.26 s; the registry calls behind the artifacts page ~0.1 s each (11 agent + 7 golden versions, 8 in parallel, cached) — so neither the hub's own work nor the registry explains a minute. Suspect the road (browser → proxy/tunnel → DooPlex) or one handler not yet timed (the artifacts page and its POST are session-only, so no token can time them). The hub logs no request durations. Evidence: `audits/release-2026-10-29b/perf/`. **2026-10-29 evening (hub 0.177.0) — WHERE THE TIME GOES: the save itself, in the hub's own database step.** The hub's access log holds seven vouch saves (POST `/configuration/artifacts`) since 2026-10-25 of 33–170 s; the two 170-s saves (13:03:19Z, 13:04:59Z) overlapped the hub's 13:00Z database snapshot slot. ingress-nginx's default 60-s read timeout turns any save over 60 s into the browser's 504 while the hub finishes it; the hub's own `WriteTimeout` is 60 s too. Not the road: the page loads in 6 ms in the cluster and 65–255 ms through the public name; not the registry: each of the save's calls (tag, 2 package probes, 2 sha lists, bundle sha) 0.08–0.25 s from DooPlex and 0.01–0.03 s from inside the hub pod. 0.177.0's per-leg line on the operator's 0.170.0 vouch (18:57:48 CET): registry probes 65 ms, sha lookups 27 ms, bundle sha 43 ms, **fleet check + save 38 117 ms**, total 38 255 ms. That step is `NewestReportedControllerVersion` (a `DISTINCT` scan of `reports`, 21 563 rows, no index on the column — 0.08 s on a tmpfs copy of the snapshot, so not the scan alone) and `SetArtifactManifest` (7 separate `hub_settings` writes, each its own transaction, each waiting for the write lock under `busy_timeout` 5 s). The slow-request line also named `/apps` 25–30 s, `/customers/tester-1` 7–9 s and `/system` 5.8 s in the last days (access log). Evidence: `audits/release-2026-10-29c/r1346/`. | OPEN — measured | — | (1) time `NewestReportedControllerVersion` and each `setSetting` separately inside the save (one more line); (2) if the writes wait: one transaction for the manifest, and find who holds the write lock that long; (3) the same for `/apps` and the customer page | CC |
|
||||
|
||||
## Business & legal — 14 rows (P2 4, P3 2, P4 8)
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@ Moved here byte for byte on 2026-10-14 (night session), newest first, so that `S
|
||||
|
||||
**Updated 2026-10-13 (night): demo-hp, demo-felhom and Tester 1 run agent 0.155.0; demo-felhom runs controller 0.310.0, the other two 0.309.0 until the floor is raised. The open-items list is at 127. Reports: `REPORT-poweroff.md`, `REPORT-plugmeter.md`, `REPORT-usenet-2026-10-12.md`, `REPORT-newapps-2026-10-12.md`, `REPORT-disk-evening-2026-10-12.md`, `REPORT-answers-2026-10-12.md`, `REPORT-m3-2026-10-11.md`, `REPORT-redesign-2026-10-10.md`, `REPORT-testers-2026-10-10.md`, `REPORT-register-shrink-2026-10-10.md`, `REPORT-new-apps-2026-10-10.md`, `REPORT-release-2026-10-10.md`, `REPORT-break-the-circle-2026-10-09.md`, `REPORT-dooplex-survival-2026-10-09.md`, `REPORT-day4-2026-10-09.md`.**
|
||||
|
||||
## Moved from STATUS on 2026-10-29 (evening release)
|
||||
|
||||
**Updated 2026-10-29 (afternoon release).** On your yes: hub 0.176.1, agent 0.169.0 (your vouch) and controller 0.348.0 as the floor for every box. From the hub's host page you can now restart a box's controller (it works when the controller is stopped; 3 presses in 15 minutes, then 30 minutes refused) and clear any held app (D64 = B) — both proven on Tester 1 on the release builds. Register 226 → 229 (7 opened, 4 closed); a stuck-but-running controller only alarms you until CC reads tonight's measurement.
|
||||
|
||||
## Moved from STATUS on 2026-10-29 (afternoon release)
|
||||
|
||||
**Updated 2026-10-29 (attended release).** On your yes: hub 0.175.0, agent 0.168.0 (your vouch), controller 0.347.0 as the floor for every box, and the catalog (Plex night updates; Wanderer's memory figure). D62 is in (restore copies stay 30 days; „Törlés most" deletes one) and D63 held: both untested branches were proven live, nothing reverted. Register 226 → 226 (4 opened, 4 closed); the 10:39 Tester 1 error mail was my test's false alarm.
|
||||
|
||||
Reference in new issue
Block a user