admin
d4641c221d
docs: v0.122.0 customer-claim gate — REPORT + CONTEXT
2026-07-12 18:56:29 +02:00
admin
dec6fef20d
REPORT: v0.121.0 live-validation results (9201, claude-in-chrome a–g green)
2026-07-12 12:33:39 +02:00
admin
9d05fa5c35
controller v0.121.0: backups page truth pass — remove dead Részletek card, real Tier-3 off-box state, SQLite-honest DB messaging
...
MinAgent: 0.81.0 (unchanged). Controller-only; no agent-API change, no backup-engine
behavior change. Fixes the self-contradicting /backups page (v0.120.0 live):
- Remove the dead "Részletek" card (redundant; kills never-set Tier2DriveGroups/
ResticPassword fields + restic-pw element + toggleTier/toggleResticPw/copyResticPw JS).
- Per-app "3. mentés" row shows real off-box state via pure tier3State
(unconfigured/off/escrow_pending/active) — "Hamarosan" placeholder gone.
- SQLite-honest DB messaging via pure dbSectionState (dumps/pending/embedded).
- Populate Tier1LastRun/Tier1LastStatus from ListRestorePoints; Tier-1/Tier-2 labels
via timeAgoStr (relative), confirm() dialog keeps raw timestamp.
- Terminology split: "Távoli mentés (3. mentés)" (off-box, +#offbox-section anchor)
vs "Távoli rendszermentés" (PBS whole-CT).
- Deploy page: add "Mentési beállítások →" link.
+9 internal/web tests (pure helper tables + buildAppBackupRows wiring + template
renders), 4 companion red-proofs run→fail→revert.
2026-07-12 12:26:30 +02:00
admin
92d670e8a6
controller v0.120.0: dead-app alerting (fix-3) + ring revision (fix-6) — CLOSES CAMPAIGN-3 (docs+CHANGELOG+REPORT+CONTEXT)
...
fix-3: deadapp-check job -> self-clearing WARN banner + one app_start_failed hub
event per running->down transition. fix-6: ring 1000->5000, periodic spam->TRACE
(ring-dropped), atomic SSD spill/load across restart. Live-validated on 9201+hub 0.48.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_017CDMFpFx84pfviCTVuGGhf
2026-07-12 10:31:12 +02:00
admin
a6da64da15
controller v0.119.0: storage-health coherence F8 + mapped_uid F4 — docs + CHANGELOG + REPORT + CONTEXT
...
F8: share row fuses the shipped v0.117 classifier (fuseNetHealth) so it agrees with
the stacks stub badge (one classification, two surfaces). F4: mapped_uid range check
1..65533 at the door. §3 fork = option B (controller-only). Live-validated on 9201.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_017CDMFpFx84pfviCTVuGGhf
2026-07-12 09:44:22 +02:00
admin
0f311adaa1
controller v0.118.0: backup integrity F7/F6/F5 — docs + CHANGELOG + REPORT + CONTEXT
...
F7 atomic volume dumps, F6 no single-copy (volume-only tier-2 + honest single-drive
signal), F5 stale-primary sweep. Part 4 locality fork = A (doc-only). Live-validated
on 9201: F7 money-shot byte-identical through mid-write cut, F6/F5 confirmed, restore
round-trip byte-identical.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_017CDMFpFx84pfviCTVuGGhf
2026-07-12 09:18:05 +02:00
admin
b389e73fff
docs: REPORT for v0.117.0 (deployed 9201; Q1c reboot validation green; stub branches test-level only)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 21:25:12 +02:00
admin
6e9dd1bfa1
docs: REPORT + CONTEXT for v0.116.0/v0.116.1 (deployed 9201, live-validated at info level)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 17:19:14 +02:00
admin
647116480a
docs: REPORT v0.115.0 + CONTEXT (version-aware Supports, DSM guidance, Q1c FAIL)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 15:47:21 +02:00
admin
ac6adaaa44
docs: REPORT v0.114.0 — capability gate shipped, red-proofs, live validation (supported branch)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 14:05:32 +02:00
admin
5d06ecf374
docs: CHANGELOG v0.113.0 + REPORT + CONTEXT + README NAS section + REUSE seams
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 10:31:07 +02:00
admin
3db9126121
docs: REPORT + CONTEXT for v0.112.0 (deployed + live-proven credential-less on demo)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 18:02:05 +02:00
admin
b1250ad5a0
REPORT: live tail round-trip completed (see felhom.eu REPORT)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 16:54:52 +02:00
admin
c414ba53b5
docs: REPORT + CONTEXT for v0.111.0 (deployed + live-validated on 9201)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 16:25:37 +02:00
admin
332725a024
report: v0.110.0 C2/C1 fix deployed + live-validated (crash → next run self-heals)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 07:09:26 +02:00
admin
0bd4cd02be
docs: v0.109.1 README + REPORT (SLICE 4 deployed + live-verified)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 00:24:57 +02:00
admin
994e15896f
docs: v0.108.0 README (auto-confirm) + REPORT (deployed, Scenario E live)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 23:24:38 +02:00
admin
fec2e8fd84
docs: v0.107.0 README (key-auth-first + wipe) + REPORT (deployed, one-off cleanup done)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 22:46:25 +02:00
admin
78fdec2897
report: offsite provisioning live e2e validation PASS (v0.106.1)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 22:05:23 +02:00
admin
6d89c186f7
report: record 0.106.0 deploy verification on guest 9201 (healthy, sshpass shipped, bridge no-ops when disabled)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 19:26:45 +02:00
admin
9a34887acc
harden offsite apply-bridge: pin verified host key on the install/verify sessions (no TOFU)
...
The SSHCopyIDInstaller used StrictHostKeyChecking=accept-new on the ssh-copy-id
and sftp-verify connections, so even though the bridge verifies the box host-key
fingerprint against the hub descriptor BEFORE installing, the actual install
connection was not pinned to that verified key — a MITM could substitute a
different key in the gap between the scan and the install (TOCTOU).
Now the bridge threads the scanner-verified known_hosts line into KeyInstaller,
which writes it to a temp known_hosts and connects with StrictHostKeyChecking=yes
+ UserKnownHostsFile — the install/verify sessions refuse any key but the one the
bridge already matched. Empty known_hosts now refuses to install.
Test asserts the installer receives the pinned known_hosts; red-proofed by passing
an empty line (the pre-fix TOFU shape) → test fails. Addresses the security-review
"host-key TOFU after verify" finding on internal/offsiteapply/seams.go.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 19:24:17 +02:00
admin
aa61fb3411
v0.106.0: offsite provisioning SLICE 2 — controller apply-bridge
...
On startup reconcile the hub-served offsite: descriptor into a key-only offbox
target. internal/offsiteapply.Bridge: verify-pin box host key vs host_fingerprint
(NO blind TOFU) → consume the one-time password (single-use, never logged) →
sshpass ssh-copy-id -s -f install + verify → configure offbox → EscrowState=pending
(fork-4 via Manager.ApplyOffsiteTarget) → persist a descriptor-hash marker LAST.
Idempotent + fail-safe. Seams faked in tests; both red-proofs run+reverted.
Dockerfile + sshpass. NOT yet live-applied (supervised end-to-end next runbook).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 19:14:14 +02:00
admin
fa9362f36f
docs: v0.105.0 REPORT — fork-4 custody hand-off + atomicity gate + DR inject; deployed 9201
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 15:19:51 +02:00
admin
bde43f3a74
docs: v0.104.0 REPORT — offbox discovery + no-silent-success; deployed 9201, red-proofs recorded
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 12:35:39 +02:00
admin
59eb3bea76
docs: v0.103.0 REPORT + CONTEXT — F-C2-1 config auth-integrity fix, live-validated
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-07 19:08:02 +02:00
admin
cd0ebd2042
docs: v0.102.0 REPORT + CONTEXT — async restore family, F4 UX fixed + live-validated
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-06 20:43:11 +02:00
admin
9d5a588ca3
docs: REPORT live-validation evidence + F2 verdict; CONTEXT v0.101.0
...
Scenario A/B env excerpts (restarts=0, _ENABLE_SMTP off/on), sync smoke 2xx,
F2 real-finding verdict. CONTEXT dated to v0.101.0 with open follow-ups.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-06 14:26:45 +02:00
admin
c997d79246
feat(agentapi): surface agent disk-op refusal reasons; v0.101.0 + CHANGELOG/REPORT
...
EjectDisk/Decommission switched from c.post (drops non-2xx body) to
postWithStatus + shared refusalError, so the agent's informative 403 body
("…decommission refused (role: X)") reaches the operator instead of a bare
"HTTP 403" (campaign F2 evidence gap). Generic post + other callers untouched.
Tests T-D1/T-D2/T-D3 + ok:false case; T-D1 red-proof shows the pre-fix bare
"HTTP 403". Bundles the v0.101.0 CHANGELOG entry (this + the F3 sync deadline).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-06 14:11:44 +02:00
admin
af7ea0bcc7
docs: REPORT C2 addendum — real-click UI validation completed (confirm dialog + flash + byte-identical restore)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 13:38:55 +02:00
admin
7bc6a3c013
docs: REPORT for TASK C2 (v0.100.0 shipped + live-validated — F2 closed, C-series complete)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 13:32:43 +02:00
admin
0313ecda51
docs: REPORT for TASK C1 (v0.99.0 shipped + live-validated) + CHANGELOG test-count fix
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 12:14:45 +02:00
admin
a518023a3b
docs: CLAUDE.md refresh — stable orientation (full package map, verified 9201 deploy, skills pointers; no version-pinned state)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-03 11:25:54 +02:00
admin
eda33400da
docs: REUSE.md introduced — cross-repo reuse map (canonical helpers/patterns/traps/seams; docs-only, no version bump)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-03 09:39:20 +02:00
admin
1b954e9217
docs: CHANGELOG v0.98.0 + REPORT + CONTEXT + README (Tárhely subpage split)
2026-07-02 19:37:42 +02:00
admin
c427b40b2f
docs: CHANGELOG v0.97.0 + REPORT (TASK-D1) + CONTEXT + README page-IA section
2026-07-02 19:26:07 +02:00
admin
52e97b15ca
docs: CHANGELOG v0.96.0 + REPORT (TASK-D0) + CONTEXT + README design-system section
2026-07-02 15:04:10 +02:00
admin
a390e6be29
docs: REPORT + CONTEXT for v0.95.0 (Impl-2b raw enrollment; live-validated)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 21:26:34 +02:00
admin
6ce61e862a
docs: REPORT/README/CONTEXT for v0.94.0 config-refresh (live-validated)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 22:17:53 +02:00
admin
464b14f029
docs: REPORT + README for v0.93.0 (NAS Part B off-box backup, live-validated A-D)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 15:43:03 +02:00
admin
ddeb509d1d
docs: REPORT + README for controller v0.92.0 (NAS Part A2, live-validated A-D)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 14:53:54 +02:00
admin
a72ebfb0a5
docs: REPORT for v0.91.0 F2 born-down alert (live-validated)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 22:01:39 +02:00
admin
0f7ba7b665
docs: REPORT + CONTEXT + README for v0.90.0 channel health-check (live-validated, hub v0.20.0 allowlist)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 20:43:13 +02:00
admin
f10d74f993
docs: REPORT — v0.89.0 gap closure, calcom+nextcloud send-tested live
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 13:56:51 +02:00
admin
6692a2f631
docs: REPORT — confirm inline CID image renders in Gmail (Resend preview unreliable)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 09:08:28 +02:00
admin
3776d972f7
docs: REPORT — live end-to-end validation results (v0.88.0)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 08:58:05 +02:00
admin
0e20eb19c1
v0.88.0: app-email SMTP relay (in-process shim + per-app injection)
...
In-process go-smtp shim (Shape 1): apps → shim → hub → Resend, Resend key stays
hub-side. From-header allowlist (reject 5xx pre-hub), single-shot raw-MIME forward,
status→SMTP mapping. Global + per-app toggles gate compose-time env injection from
.felhom.yml smtp_mapping. Hungarian UI on settings + app config pages.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 08:45:04 +02:00
admin
7cddb885e0
docs: v0.86.0 live floor-test results — auto-update 0.86.0→0.87.0 (auto-floor)
...
REPORT/CHANGELOG: dogfood 0.85.1→0.86.0 (Phase 1 endpoint), global floor 0.87.0,
auto-update fired (initiated_by=auto-floor, success), no-flap at floor confirmed,
hub controller_version=0.87.0. Demo left at 0.87.0 / floor 0.87.0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FSZmmSFVzGwEzhYmxbkgBK
2026-06-27 12:22:03 +02:00
admin
1310a0ebd7
v0.86.0: Phase 2 managed updates — floor-driven auto-update
...
The controller honors an operator-enforced minimum version (FLOOR) on the hub
report ACK and auto-updates to the floor when below it (managed default, no click),
reusing the Phase 1 in-guest-pull + agent-swap + rollback. Latest stays the opt-in
button; the floor is the auto-target, never latest.
- pusher.go: PushResponse += min_controller_version, latest_version (existing ACK seam)
- main.go: OnPushResponse → updater.SetFloor + MaybeAutoUpdate (rides report cycle)
- updater.go: SetFloor/GetFloor + MaybeAutoUpdate reusing performUpdate (auto-floor);
no-op at/above floor, floor>latest, dev/no-agent/backup; no flap (in-mem+persisted)
- settings UI (HU): floor display + auto restart-poll during an auto-update
- tests: below/at/floor>latest/no-flap/raised-floor; below-floor red-proof verified
- no agent change (reuses Phase 1 POST /controller/swap)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FSZmmSFVzGwEzhYmxbkgBK
2026-06-27 11:59:47 +02:00
admin
3aa9777f1c
docs: v0.85.0 self-update rework — README/CHANGELOG/REPORT (live-validated)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01TtXesNa2LGbMmE4DNL6SE7
2026-06-26 21:43:23 +02:00
admin
e0cf78bb90
docs: v0.84.0 REPORT/CONTEXT/README — catalog-driven initial-login extraction
2026-06-26 11:03:56 +02:00