8d44416610
gates / gates (push) Successful in 49s
Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
43 lines
3.1 KiB
Markdown
43 lines
3.1 KiB
Markdown
# REPORT — v0.318.0: the internal data place, partitions, an honest whole-box backup offer, sys_drive never offered (2026-10-16)
|
||
|
||
Written in ASD-STE100 Simplified Technical English. Design read first: felhom.eu `architecture/16-storage-physical-identity.md`
|
||
(§4–§6, §9, §13), `07-backup-architecture.md` §6, `09-update-architecture.md` (MinAgent). Task: storage identity build B
|
||
(operator rulings D3–D5; sizes ruled 2026-10-16). Agent counterpart: felhom-agent v0.158.1.
|
||
|
||
## 1. Baselines
|
||
|
||
controller `123d2d5` (v0.317.0) → `a43d042` + `36da408` = v0.318.0. MinAgent **0.157.0** (no new agent endpoint; the internal
|
||
place and the partitions appear only when agent ≥ 0.158.1 reports them).
|
||
|
||
## 2. What changed
|
||
|
||
- `web/internal_place.go`: an agent row of kind `internal` → GuestAttach on one tick, register on the next (kind internal,
|
||
default when the household has none, label in the box's language); `refuseInternalLifecycle` on eject/decommission/wipe.
|
||
- `web/backup_target_offer.go` (R-1084): `offerRelationFor` — proven different → the promise; unproven → `backup.target.offer_unproven`;
|
||
same disk → no offer; older agent → today's offer. The internal place is never offered.
|
||
- `web/attach_sources.go` (R-1082): `withoutSystemVolume` hides the system data volume by device.
|
||
- `web/agent_disk_handlers.go`, `storage_handlers.go`, templates: partitions in the wizards; a disk with a registered part offers
|
||
only its free parts (format only `formattable`, use only filesystem parts); `deviceBacksRegistered` refuses the whole disk (409).
|
||
- Locales: `storage.belso_tarhely`, `storage.belso_tarhely_magyarazat`, `storage_wizard.resz_n`, `err.web.belso_tarhely_eletciklus`,
|
||
`err.web.meghajto_hasznalatban_formazas`, `backup.target.offer_unproven`.
|
||
|
||
## 3. Tests and red-proofs
|
||
|
||
internal_place_test.go (5), stacks d4 (a media app's HDD_PATH lands on the internal place; the folder is never created so no
|
||
compose can run), r1084_offer_identity_test.go (6), r1082_sysdrive_hidden_test.go (3), partitions_test.go (5). Each was seen
|
||
failing by a compiling mutation (a non-compiling mutation was once read as „not caught" and redone). Four i18n parity
|
||
fixtures refreshed (diff = only the new lines). `go test ./...` and `controller_gates.py --fast`: green.
|
||
|
||
## 4. Live proof
|
||
|
||
Method: endpoint level (the dashboard requests) on a fresh one-disk scratch VM (512 GB, installer 1.33.0, golden 0.318.0):
|
||
the internal place registered as the default drive by itself; Jellyfin deployed with DOMAIN + SUBDOMAIN only → 202, healthy,
|
||
`/media` on the place; partitions: part 1 formatted, part 2 used, the whole disk refused (409); the backup offer on a VM
|
||
without the disk-failure promise; the attach list without `/mnt/sys_drive`. Tester 1, demo-hp and the N100 run 0.318.0 by the
|
||
floor. Evidence: felhom.eu `audits/storage-identity-buildB-2026-10-15/live/`.
|
||
|
||
## 11. Observations
|
||
|
||
1. FILED: R-1094 — the whole-disk refusal sentence says „Csak a szabad részét formázhatod", untrue while another part is mounted.
|
||
2. FILED: R-1093 — an empty part asks for the typed confirmation (the agent's probe reads the parent's partition table).
|