Files
felhom.eu/STATUS.md
T
admin c102832892
gates / gates (push) Successful in 8s
docs: R-86 closed and proven live; ep0 recorded as protected; R-185/186/187 filed
- OPEN-ITEMS: R-86 CLOSED with the trap in its own wording recorded (the literal
  reading is never true on a daily tier); R-87 re-ranked UP because R-86 built
  most of what it waited for; R-185 (the agent cannot list demo-felhom's host
  backup tier — a missing storage ACL, pre-existing), R-186 (a released binary's
  sha is not reproducible from its tag), R-187 (R-115's publish leg had never
  actually run) filed. R-184 was the highest ID in use.
- ROADMAP: R-86 collapsed, keeping the reasoning and correcting the shape the row
  itself proposed — which would have been the never-fires version.
- 07-backup-architecture: new contract section — restore-testing is per ARCHIVE
  GENERATION, with the trap and what did not change (S-1).
- 00-capability-map: the unattended restore-proof row upgraded to PROVEN-LIVE on
  the 635 s due-triggered offsite run, with the restart and teardown evidence.
- CONTEXT: S-17 (the rule, the trap, the config key, the hub's derivation) and
  S-18 (ep0 is Tier 2 — extends D-d's protected list to three machines).
  Numbered 17/18 because S-14 and S-15 were already duplicated in the file.
- STATUS: rewritten for the operator, trimmed back to one screen.
2026-08-03 15:28:32 +02:00

5.6 KiB

STATUS — what works, what's broken, what's next

Updated 2026-08-03.

A view, not a source. documentation/backlog/OPEN-ITEMS.md is the authority on open work; this page restates part of it in plain words, and nothing may exist only here. Not CONTEXT.md, which is technical state written for Claude Code — keep the two separate. Maintenance: update at the end of every session in which something shipped, broke, or was decided. One screen; cut items rather than extend it.

What works right now

A blank machine boots the Felhom disc, installs itself unattended, and is claimed by the customer, who sets their own password. They install apps from a catalogue of fifty-three, share files over the home network, and open apps from a launcher or a shared link. Backups run on their own to three places — the machine's drive, a second drive, and an encrypted off-site copy — and a customer can restore files and app data from the drive alone. Apps come back after a power cut: hard-reset the demo box six times, everything returned every time, and an app switched off deliberately stayed off. Proven end to end on real hardware.

What's broken

  • The off-site copy can be erased by the machine that made it. The credential that writes it can also delete it. A daily snapshot is armed as a stopgap, and we have never restored from that copy. (R-95, R-87)
  • Nothing else open that affects a customer. The three faults that were on this list yesterday — the reserve watching the wrong step, the last app whose data was never saved, and the alert that told you about one app and swallowed the rest — are all fixed and proven on a real machine.

What shipped recently

  • Each backup is now proved, instead of the clock being obeyed. The machine used to re-test a backup every twenty-four hours on a timer that restarted whenever the software was updated, so the test happened at an arbitrary time and a fresh backup could sit unproven while an old one was re-checked. Now a copy is tested once, about a day after it is made, and not again until there is a newer one — so the daily copy is proved daily and the weekly off-site copy weekly, each on its own. The alert that says "this copy has not been proved lately" learned each copy's own rhythm in the same change; without that it would have started complaining every night about a system that is working. (R-86)
  • A failed backup now tells you about every app, once. When several apps fail in one night you get one email listing all of them, what kind of backup failed for each, why, and how much space is left — instead of an email about one app and silence about the rest. Measured before the fix: nine failures, two emails. Separately, every failure is now written down the moment it happens, whether or not it is emailed, and a message the machine decides not to send now leaves a record saying so. A machine choosing not to tell you and nothing happening no longer look identical. A run that finds nothing wrong stays silent, and a backup you trigger yourself always reports. (R-182)
  • Publishing became something you do, not something that happens. The installer that runs as root on a new machine, and the agent, both moved onto labelled versions with a way back; a check now refuses a release nobody can download. (R-110, R-115)
  • The reserve now guards the step that fills the disk, and its promise is true. It decides once per app, before writing anything, and no longer waves an app through at 96% full. (R-181)

What we're working on

  • Now: nothing outstanding.
  • Next: proving the off-site app-data copy can actually be restored — the one tier nothing tests unattended. Most of the machinery it needed arrived with the restore-test change below. (R-87)
  • After: the off-site copy that the machine making it can still erase. (R-95)

Waiting on you

  • A job, not a decision: the hub password needs changing. A diagnostic command printed it into a session log; nothing suggests anyone else saw it. (R-132)
  • One small question, not urgent. The automatic check cannot see which version you have told machines to install, only which ones exist. Closing that needs either a password given to the build server or a check inside the hub itself. (R-184)
  • Nothing else. The question about whether the off-site endpoint counts as protected is settled — it does, and the machine list now says so instead of asking.

Changed since last update

  • 2026-08-03 — Backups are now proved one at a time, each about a day after it is made, instead of on a timer; the "not proved lately" alert learned each copy's own rhythm so it does not complain about a healthy weekly copy. You settled that the off-site endpoint is protected, and the machine list records it. One thing found while testing: on the small demo machine the agent cannot see its own local backups at all — a permission that was never granted — so that copy has never been test-restored there. Written down, not yet fixed. (R-86, R-185)
  • 2026-08-03 — A failed backup now reports every app in one email, and nothing is dropped without a record. You rescaled the off-site endpoint to twice the memory, which closed one item and unblocked another; the documents describing the old machine were corrected, and the audit records of what it used to be were annotated rather than rewritten.
  • 2026-08-03 — Publishing became deliberate for both the installer and the agent, with a way back and a check that a release can actually be downloaded.