{ "app": "termix", "from": { "termix": "ghcr.io/lukegus/termix:2.8.0" }, "to": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "started": "2026-10-28T13:13:24Z", "drill_head_before": "718be0f305031668e62b450eadc860ddbfed4cf4", "failing_compose_main_healthcheck": [ "test: [\"CMD\", \"false\"]" ], "failing_probe": true, "update": { "accepted": true, "http": "202", "phases": [ { "t": 0.0, "phase": "checking", "label": "Ellen\u0151rz\u00e9s\u2026", "updating": true, "error": null, "hold": null }, { "t": 1.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": 4.1, "phase": "safety-dump", "label": "Adatb\u00e1zis pillanatk\u00e9p\u2026", "updating": true, "error": null, "hold": null }, { "t": 5.2, "phase": "pulling", "label": "\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026", "updating": true, "error": null, "hold": null }, { "t": 30.8, "phase": "copying", "label": "Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026", "updating": true, "error": null, "hold": null }, { "t": 36.9, "phase": "verifying", "label": "M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026", "updating": true, "error": null, "hold": null }, { "t": 340.1, "phase": "undoing", "label": "Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026", "updating": true, "error": null, "hold": null }, { "t": 347.3, "phase": "undone", "label": "Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra", "updating": false, "error": null, "hold": null } ], "duration_s": 347.3, "final_phase": "undone", "update_error": null, "hold_reason": null, "state": "running" }, "to_log_while_verifying": [ "[2:15:32 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/sso [op:plugin_http_mount]", "[2:15:32 PM] [SUCCESS] [\ud83e\udde9] Activated plugin sso [op:plugin_activate]", "[2:15:32 PM] [WARN] [\ud83e\udde9] Plugin sso serves 4 route(s) without authentication: /start, /callback, /backchannel-logout, /config [op:plugin_http_public]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin step-ca: 0001_create_certs [op:plugin_migrate]", "[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin step-ca serves 1 route(s) without authentication: /callback [op:plugin_http_public]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/step-ca [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin step-ca [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tailscale [op:plugin_http_mount]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Tailscale routes mounted at /plugin-api/tailscale [op:plugin:tailscale]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tailscale [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/telemetry [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin telemetry [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin termix-identity: 0001_adopt_termix_identity_tables [op:plugin_migrate]", "[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin termix-identity serves 2 route(s) without authentication: /u/:handle, /u/:handle/:algo [op:plugin_http_public]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/termix-identity [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin termix-identity [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin tmux-monitor: 0001_adopt_tmux_session_tags [op:plugin_migrate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/tmux-monitor [op:plugin_http_mount]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Tmux Monitor routes mounted at /plugin-api/tmux-monitor [op:plugin:tmux-monitor]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin tmux-monitor [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin totp: 0001_create_enrollments [op:plugin_migrate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/totp [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin totp [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin vault: 0001_adopt_vault_tables [op:plugin_migrate]", "[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin vault serves 1 route(s) without authentication: /oidc/callback [op:plugin_http_public]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/vault [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin vault [op:plugin_activate]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin warpgate [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/web-endpoint [op:plugin_http_mount]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Web Endpoint routes mounted at /plugin-api/web-endpoint [op:plugin:web-endpoint]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin web-endpoint [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Applied 1 migration(s) for plugin webauthn: 0001_adopt_webauthn_credentials [op:plugin_migrate]", "[2:15:33 PM] [WARN] [\ud83e\udde9] Plugin webauthn serves 1 route(s) without authentication: /authenticate/options [op:plugin_http_public]", "[2:15:33 PM] [INFO] [\ud83e\udde9] Mounted /plugin-api/webauthn [op:plugin_http_mount]", "[2:15:33 PM] [SUCCESS] [\ud83e\udde9] Activated plugin webauthn [op:plugin_activate]", "[2:15:33 PM] [INFO] [\ud83d\ude80] Loaded 34 plugin(s) [op:plugin_init]", "[2:15:33 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved 2 Remote Desktop setting(s), 0 user(s) and 0 host(s) into plugin settings [op:remote_desktop_settings_migration]", "[2:15:33 PM] [INFO] [\ud83d\uddc4\ufe0f] Moved telemetry settings into plugin settings [op:telemetry_settings_migration]", "[2:15:33 PM] [SUCCESS] [\ud83d\ude80] Termix backend started successfully [op:backend_init_complete,duration:6972ms]", "[2:18:33 PM] [INFO] [\ud83e\udde9] Sent daily usage statistics [op:plugin:telemetry]" ], "observables_after": { "pinned_images": { "termix": "ghcr.io/lukegus/termix:2.8.0" }, "installed_images": { "termix": "ghcr.io/lukegus/termix:2.8.0" }, "catalog_images": { "termix": "ghcr.io/lukegus/termix:2.9.2" }, "live_compose_image_lines": [ "image: ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9" ], "docker_inspect": [ "termix ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9 running=true restarts=0" ] }, "running_images_after": { "termix": "ghcr.io/lukegus/termix:2.8.0@sha256:25e8a0eb39f45c9ac5e8e7615fd84a0380018ea012317bc665b86458d900b4b9" }, "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": "465e608822e17b14ec45beab71266ee1524ab005", "drill_tree_equal_to_before": true, "log": [ "14:13:34 [5] the box's drill mirror now at 718be0f30", "14:13:38 [1] deploy -> 202 {'ok': True, 'message': 'Telep\u00edt\u00e9s elind\u00edtva \u2013 az \u00e1llapot a k\u00e1rty\u00e1n k\u00f6vethet\u0151'}", "14:14:19 [1] deployed, controller state=running, pinned={'termix': 'ghcr.io/lukegus/termix:2.8.0'}", "14:14:19 gate: termix is gated \u2014 passed as the household (cookie set)", "14:14:19 termix: seeded user drill86061530 via /users/create", "14:14:19 termix: readback found=True (http 200, control refused as it must)", "14:14:20 drill commit 39f59c8d713e: termix TO with failing checks", "14:14:28 [5] the box's drill mirror now at 39f59c8d7", "14:14:33 [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:14:33 + 0.0s phase=checking label=Ellen\u0151rz\u00e9s\u2026 err=None hold=None", "14:14:34 + 1.0s phase=backing-up label=Biztons\u00e1gi ment\u00e9s k\u00e9sz\u00fcl a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None", "14:14:37 + 4.1s phase=safety-dump label=Adatb\u00e1zis pillanatk\u00e9p\u2026 err=None hold=None", "14:14:38 + 5.2s phase=pulling label=\u00daj verzi\u00f3 let\u00f6lt\u00e9se\u2026 err=None hold=None", "14:15:04 + 30.8s phase=copying label=Az adatok m\u00e1sol\u00e1sa a friss\u00edt\u00e9s el\u0151tt\u2026 err=None hold=None", "14:15:10 + 36.9s phase=verifying label=M\u0171k\u00f6d\u00e9s ellen\u0151rz\u00e9se\u2026 err=None hold=None", "14:20:13 + 340.1s phase=undoing label=Vissza\u00e1ll\u00edt\u00e1s az el\u0151z\u0151 v\u00e1ltozatra\u2026 err=None hold=None", "14:20:20 + 347.3s phase=undone label=Vissza\u00e1ll\u00edtva az el\u0151z\u0151 v\u00e1ltozatra err=None hold=None", "14:20:50 termix: readback found=True (http 200, control refused as it must)", "14:20:50 RESULT proven \u2014 TO started on the data and failed its check; the box undid it: FROM runs again and the seed reads back", "14:20:50 [X] stop -> 200 {'ok': True, 'message': 'Stack termix stop completed'}", "14:21:22 [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", "14:21:31 [X] after remove: deployed=False leftovers=''", "14:21:41 [5] the box's drill mirror now at 465e60882", "14:21:41 drill revert 39f59c8d713e: rc=0", "14:21:41 drill templates/termix equal to before: True" ] }