{ "app": "termix", "from": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "to": { "termix": "ghcr.io/lukegus/termix:26.10.5" }, "started": "2026-10-28T13:54:56Z", "drill_head_before": "7011ef31674f7efa8c524cb3a0cfc32827e57d9c", "failing_compose_main_healthcheck": [ "test: [\"CMD\", \"false\"]" ], "failing_probe": true, "update": { "accepted": true, "http": "202", "phases": [ { "t": 0.0, "phase": "backing-up", "label": "Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026", "updating": true, "error": null, "hold": null }, { "t": 13.3, "phase": "pulling", "label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026", "updating": true, "error": null, "hold": null }, { "t": 45.1, "phase": "copying", "label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026", "updating": true, "error": null, "hold": null }, { "t": 58.4, "phase": "starting", "label": "Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026", "updating": true, "error": null, "hold": null }, { "t": 59.4, "phase": "verifying", "label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026", "updating": true, "error": null, "hold": null }, { "t": 361.7, "phase": "undoing", "label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026", "updating": true, "error": null, "hold": null }, { "t": 389.4, "phase": "undone", "label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra", "updating": false, "error": null, "hold": null } ], "duration_s": 389.4, "final_phase": "undone", "update_error": null, "hold_reason": null, "state": "running" }, "to_log_while_verifying": [ "[2:58:05 PM] [SUCCESS] [\ud83e\udde9] Activated plugin ai [op:plugin_activate]", "[2:58:05 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/ldap [op:plugin_http_mount]", "[2:58:05 PM] [SUCCESS] [\ud83e\udde9] Activated plugin ldap [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin opkssh serves 5 route(s) without authentication: /chooser/:requestId, /chooser/:requestId/*, /callback, /callback/:requestId, /callback/:requestId/* [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/opkssh [op:plugin_http_mount]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin opkssh [op:plugin_activate]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin proxmox: 0002_mysql_indexes [op:plugin_migrate]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/proxmox [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Proxmox routes mounted at /plugin-api/proxmox [op:plugin:proxmox]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin proxmox [op:plugin_activate]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/secret-sources [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Secret sources routes mounted at /plugin-api/secret-sources [op:plugin:secret-sources]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin secret-sources [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin session-sharing serves 2 route(s) without authentication: /resolve/:linkToken, /guest/:token [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/session-sharing [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Session sharing mounted at /plugin-api/session-sharing [op:plugin:session-sharing]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin session-sharing [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/step-ca [op:plugin_http_mount]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin step-ca [op:plugin_activate]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tailscale [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tailscale [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/termix-identity [op:plugin_http_mount]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin termix-identity [op:plugin_activate]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tmux-monitor [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/vault [op:plugin_http_mount]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin vault [op:plugin_activate]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin warpgate [op:plugin_activate]", "[2:58:06 PM] [WARN] [\ud83e\udde9] Plugin web-endpoint serves 1 route(s) without authentication: /p/:token/* [op:plugin_http_public]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]", "[2:58:06 PM] [INFO] [\ud83e\udde9] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]", "[2:58:06 PM] [SUCCESS] [\ud83e\udde9] Activated plugin web-endpoint [op:plugin_activate]", "[2:58:06 PM] [INFO] [\ud83d\ude80] Loaded 40 plugin(s) [op:plugin_init]", "[2:58:06 PM] [SUCCESS] [\ud83d\ude80] Termix backend started successfully [op:backend_init_complete,duration:18712ms]", "[3:01:05 PM] [INFO] [\ud83e\udde9] Sent daily usage statistics [op:plugin:telemetry]" ], "observables_after": { "pinned_images": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "installed_images": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "catalog_images": { "termix": "ghcr.io/lukegus/termix:26.10.5" }, "live_compose_image_lines": [ "image: ghcr.io/lukegus/termix:2.9.2" ], "docker_inspect": [ "termix ghcr.io/lukegus/termix:2.9.2 running=true restarts=0" ] }, "running_images_after": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "seed_after_undo": true, "verdict": "proven", "why": "TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back", "drill_head_after": "4834d9dceb7ef88702562cae12d05e96938b0d30", "drill_tree_equal_to_before": true, "log": [ "14:55:05 [5] the box's drill mirror now at 7011ef316", "14:55:10 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}", "14:56:20 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.9.2'}", "14:56:20 gate: termix is gated \u2014 passed as the household (cookie set)", "14:56:21 termix: seeded user drill5eec15db via /users/create", "14:56:21 termix: readback found=True (http 200, control refused as it must)", "14:56:22 drill commit 9e086d4dad4f: termix TO with failing checks", "14:56:31 [5] the box's drill mirror now at 9e086d4da", "14:56:36 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Friss\u00edt\u00e9s elindult \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}", "14:56:36 + 0.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None", "14:56:50 + 13.3s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None", "14:57:21 + 45.1s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None", "14:57:35 + 58.4s phase=starting label=Ind\u00edt\u00e1s az \u00faj verzi\u00f3val\u2026 err=None hold=None", "14:57:36 + 59.4s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None", "15:02:38 + 361.7s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None", "15:03:06 + 389.4s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None", "15:03:34 termix: readback found=True (http 200, control refused as it must)", "15:03:34 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back", "15:03:34 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}", "15:04:06 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'termix', 'volumes_removed': ['termix_termix_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalm", "15:04:15 [X] after remove: deployed=False leftovers=''", "15:04:24 [5] the box's drill mirror now at 4834d9dce", "15:04:24 drill revert 9e086d4dad4f: rc=0", "15:04:24 drill templates/termix equal to before: True" ] }