release-agent.sh: only a clean 404 proves a version is new (R-1098)
gates / gates (push) Successful in 31s
gates / gates (push) Successful in 31s
An unreachable registry (000) or a server error passed the existing-version check as new. Test: scripts/test_release_push_once.sh, red-proved. No agent release. Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
1 parent
383522450a
commit
dd8b2ace02
4 files changed
+72
-37
No files matched your search
@@ -1,42 +1,14 @@
|
||||
# REPORT — v0.158.1: the internal data place, partitions as places, add_internal_place (2026-10-16)
|
||||
# REPORT — release-agent.sh: only a clean 404 proves a version is new (R-1098, 2026-10-16)
|
||||
|
||||
Written in ASD-STE100 Simplified Technical English. Design read first: felhom.eu `architecture/16-storage-physical-identity.md`
|
||||
(§5–§7, §9, §13), `03-host-agent.md`. Task: storage identity build B. v0.158.0 is superseded (security review) — do not vouch it.
|
||||
Written in ASD-STE100 Simplified Technical English. Part of the apps burndown (felhom.eu
|
||||
`REPORT-burndown-apps-2026-10-16.md`). No agent release, no binary change.
|
||||
|
||||
## What changed
|
||||
|
||||
- `configs/felhom-internal-place` (bundle): the ruled size rule, the only lvcreate/mkfs of a system-disk volume; fails closed
|
||||
on any failed read. Run by the installer (1.33.0 step 5b) and by the new signed op.
|
||||
- `internal/localapi/internalplace.go`: the record → mount at `/mnt/belso` by fs-UUID like a drive, kind `internal`; never takes a
|
||||
household drive's `/mnt/belso`; eject/decommission/format refused.
|
||||
- `internal/signedjobs/internalplace.go`: `add_internal_place` (operator key, no parameters).
|
||||
- `internal/storage/partitions.go`: each part of a free disk listed (empty / filesystem / in_use, `formattable`); a data-bearing
|
||||
part's wipe id binds disk id + part number + fs-UUID (`durable_device.go`).
|
||||
- `configs/felhom-mkfs-guarded.sh`: every mount of every node outside /mnt/felhom-drives refuses (kernel mount table); an
|
||||
unlistable disk refuses; NO exemption for a sibling claiming to be Felhom's own (0.158.0 had one — removed).
|
||||
- Sudoers `FELHOM_INTERNALPLACE` (`^(plan|create) 0$`); capability manifest + injection cases.
|
||||
|
||||
## Tests and red-proofs
|
||||
|
||||
configs/test_felhom_internal_place.py (13), configs/test_felhom_mkfs_guarded.py (8 — first tests of the wrapper; the 0.158.0
|
||||
wrapper and the old one measured against them), internalplace_test.go (9), internalplace (signedjobs, 4), partitions_test.go
|
||||
(3), partition_durable_test.go (4), the sudo rule widened → caught. Every new test seen failing first. `agent_gates.py`: green.
|
||||
|
||||
## Release and delivery
|
||||
|
||||
`release-agent.sh 0.158.1`: sha256 `20264df6…84b76a1`, bundle `c23c3d35…cb1c41b`. The bundle ADDS a path, so boxes on an older
|
||||
wrapper refuse it (R16): a step bundle `0.158.1-step1` (sha `fd968ee1…5c2eb9`, the 0.156.1 bundle with only `felhom-os-apply`
|
||||
replaced) was published, then per box: agent_update 0.158.1 → step bundle → bundle 0.158.1. Done on Tester 1, demo-hp, the N100.
|
||||
**Vouched by the operator** (with golden 0.318.0).
|
||||
|
||||
## Live proof
|
||||
|
||||
A fresh one-disk install (512 GB VM, installer 1.33.0): the place made (213 GiB), mounted by the agent, registered by the
|
||||
controller; nothing of it in a whole-box copy; same-disk internal vs sys_drive: same disk, proven; partitions listed, formatted,
|
||||
used. Evidence: felhom.eu `audits/storage-identity-buildB-2026-10-15/live/`.
|
||||
- **What was wrong:** `scripts/release-agent.sh` refused a version whose tag exists or whose package answers 200. A
|
||||
registry it could not reach (`000`) or a server error (`500`) passed as „new".
|
||||
- **What changed:** only `404` proves the version is new; anything else refuses and names the code.
|
||||
- **Test:** `scripts/test_release_push_once.sh` — 5 cases, all right; with the new line removed, 2 fail (unreachable,
|
||||
server error). `agent_gates.py --fast` OK.
|
||||
|
||||
## Observations
|
||||
|
||||
1. FILED: R-1093 — an empty part asks for the typed confirmation: the probe reads the PTTYPE a partition inherits from its disk.
|
||||
2. NOT-A-FINDING: the step bundle was needed and is the documented route (R-880); the first 0.158.0 bundle jobs were refused by
|
||||
R16 as designed, nothing changed on the boxes.
|
||||
1. The release test is not run by `agent_gates.py` (the same as felhom.eu's hub build tests): it is run by hand. NOT-A-FINDING: the script changes rarely, and its header names the test to run with a change; the controller's and the hub's build tests are run the same way.
|
||||
Reference in new issue
Block a user