-
4037e746aa
docs: storage remount-on-replug is bench-pending, not bench-verified
main
Daniel Samson
2026-08-10 19:35:04 +01:00
-
4dfb5012c0
docs: the removal lifecycle closes — three triggers, one path (S5)
Daniel Samson
2026-08-10 06:08:56 +01:00
-
061eb7c004
volume-manager: drop the medium-event dedup — it only ever misfired (S5 review)
Daniel Samson
2026-08-10 05:56:06 +01:00
-
5dc966838a
volume-manager: rebuild a volume when its storage driver dies (S5)
Daniel Samson
2026-08-10 05:21:48 +01:00
-
700452dc4e
volume-manager: consume medium_changed — the second removal trigger (S5)
Daniel Samson
2026-08-10 04:58:54 +01:00
-
0faa0fd21b
service: on_buffered_message for pushed events (S5)
Daniel Samson
2026-08-10 04:43:27 +01:00
-
c47215821c
docs: the second engine is built — exFAT + proven harness reuse (S4)
Daniel Samson
2026-08-10 04:15:03 +01:00
-
6ddb08091d
exfat: adversarial-review fixes — overflow safety, sparse gaps, dir size, big-image bitmap (S4 step 9)
Daniel Samson
2026-08-10 04:14:54 +01:00
-
77b64229c2
exfat: the in-VM mount + mutation drill (S4 step 8)
Daniel Samson
2026-08-10 03:44:29 +01:00
-
90906bcefe
exfat: cross-engine discrimination + the exfat-test fixture (S4 step 7)
Daniel Samson
2026-08-10 03:32:55 +01:00
-
2c2745e9e5
volume-manager: recognize exFAT and route it by content (S4 step 6)
Daniel Samson
2026-08-10 03:28:08 +01:00
-
2a6d604577
tools: make-exfat-image.py — a real exFAT image builder (S4 step 5)
Daniel Samson
2026-08-10 03:22:19 +01:00
-
e81a4e6f1d
exfat: the service + build wiring (S4 step 4)
Daniel Samson
2026-08-10 03:18:00 +01:00
-
e240341bfb
exfat: the engine write path (S4 step 3)
Daniel Samson
2026-08-10 03:11:05 +01:00
-
62eb2a748a
exfat: the engine read path (S4 step 2)
Daniel Samson
2026-08-10 03:02:58 +01:00
-
56bd2e7678
exfat: the on-disk layout (S4 step 1)
Daniel Samson
2026-08-10 02:46:23 +01:00
-
0b25cd2c94
docs: multi-volume is built — storage architecture + rationale (S3)
Daniel Samson
2026-08-10 02:35:43 +01:00
-
d59279422e
test: partitioned-image tool + shared-channel multi-volume proof (S3)
Daniel Samson
2026-08-10 02:35:32 +01:00
-
bf9f8560c6
fat/harness: filesystems coexist without the shared vfs name; two-volume proof (S3)
Daniel Samson
2026-08-10 02:10:06 +01:00
-
da7dcce64e
kernel/vfs: raise the mount ceiling for N volumes; refuse (not drop) a full table (S3)
Daniel Samson
2026-08-10 01:52:47 +01:00
-
9750db14da
fat: install the FHS boot rewrites only on the system volume (S3)
Daniel Samson
2026-08-10 01:37:32 +01:00
-
b2a5a0a3c6
volume-manager: adopt every device, a filesystem per partition (S3)
Daniel Samson
2026-08-10 01:26:47 +01:00
-
7efe7b72d8
volume-manager: N-volume device+volume tables, behavior-preserving (S3)
Daniel Samson
2026-08-10 01:13:52 +01:00
-
d4b544d66b
volume-manager: partition.allVolumes — every partition, not just the first (S3)
Daniel Samson
2026-08-10 00:57:56 +01:00
-
6d4992ae02
docs: storage — the mount map is built; the path is the id (S2)
Daniel Samson
2026-08-10 00:49:32 +01:00
-
df61693065
fat: mount at the id-path from argv; migrate /volumes/usb -> id-path (S2)
Daniel Samson
2026-08-10 00:47:19 +01:00
-
f1e79d0eeb
volume-manager: the
volumes query verb — read a volume's id, path, and label (S2)
Daniel Samson
2026-08-10 00:17:22 +01:00
-
167e9c7a9e
volume-manager: load the mount map; pick binary by signature, compose the id-path (S2)
Daniel Samson
2026-08-10 00:12:33 +01:00
-
5bfdb75e12
volume-manager: the id-path deriver + volumes.csv override (S2)
Daniel Samson
2026-08-09 23:55:08 +01:00
-
3fb8a9b96f
volume-manager: content signature + the filesystems.csv map (S2)
Daniel Samson
2026-08-09 23:47:22 +01:00
-
ea8ccf65d0
volume-manager: cover the GPT non-128 entry-size offset path (S1 review)
Daniel Samson
2026-08-09 23:37:52 +01:00
-
aca3d5855a
volume-manager: S1 close-out — partition fixtures in the root aggregate; docs (S1)
Daniel Samson
2026-08-09 23:26:12 +01:00
-
5637d0e5fc
device-manager: the entries-per-reply test asserts 7 (the current shape), not 10
Daniel Samson
2026-08-09 23:26:12 +01:00
-
48ab12e262
volume-manager: the FAT volume serial + label is the identity (rung 3) (S1)
Daniel Samson
2026-08-09 23:22:04 +01:00
-
020e31bc8f
volume-manager: GPT parsing — the partition GUID is the id, the name is the label (S1)
Daniel Samson
2026-08-09 23:15:23 +01:00
-
c81120ef0f
volume-manager: partition parser takes a SectorReader; identity is a tagged Identity (S1)
Daniel Samson
2026-08-09 23:06:23 +01:00
-
4f9196c03e
docs: storage plan — fix two id-path leftovers (DANOS/label->hex)
Daniel Samson
2026-08-09 22:55:10 +01:00
-
eff95416d0
docs: storage plan — path is the id, label is queryable display metadata
Daniel Samson
2026-08-09 22:54:36 +01:00
-
addd264880
docs: storage plan — volumes named by identity; exFAT implemented in full
Daniel Samson
2026-08-09 22:42:56 +01:00
-
fca41b351e
docs: the storage-stack completion plan (S1-S5)
Daniel Samson
2026-08-09 22:34:00 +01:00
-
bf0595763e
docs: flip stale status markers across the tracks (audit found 23)
Daniel Samson
2026-08-09 22:04:17 +01:00
-
8216be991d
docs: correct the storage docs' V0-V4 status — the V5 flip missed several
Daniel Samson
2026-08-09 21:19:29 +01:00
-
68e65803eb
volume-manager: the removal comment says lazy retirement, not an eager sweep
Daniel Samson
2026-08-09 20:56:51 +01:00
-
af47d41989
volume-manager: removal supersedes a pending restart in the poll
Daniel Samson
2026-08-09 20:27:58 +01:00
-
5e89b111cf
docs: flip the storage-architecture status markers the V0-V4 track made real
Daniel Samson
2026-08-09 20:20:20 +01:00
-
e3ec9fa668
volume-manager: try every mass-storage entry, watch the one we opened
Daniel Samson
2026-08-09 20:08:30 +01:00
-
9e67a74232
volume-manager: the removal lifecycle — a pulled stick unmounts (V4)
Daniel Samson
2026-08-09 19:41:04 +01:00
-
b9058fe020
file-system: the mount-failure log has no scratch buffer (orphaned bounds fix)
Daniel Samson
2026-08-09 19:40:39 +01:00
-
7c6ed2ca09
volume-manager: harden the probe and supervision from the V3 review
Daniel Samson
2026-08-09 18:50:01 +01:00
-
a67a7015bf
docs: record the V3c resequencing — removal lifecycle first, multi-volume follows
Daniel Samson
2026-08-09 18:30:16 +01:00
-
301bdcaf5b
volume-manager: the flip — fat is spawned, confined, and handed its channel (V3b)
Daniel Samson
2026-08-09 18:28:44 +01:00
-
d56b1b81c0
volume-manager: discovery and probe — V3a
Daniel Samson
2026-08-09 18:10:43 +01:00
-
bc67771bfd
block: reclaim range slots on death, and give confinement one controller
Daniel Samson
2026-08-09 17:58:47 +01:00
-
89d4592777
block: close the range-clamp overflow — a confined caller could wrap into the neighbour
Daniel Samson
2026-08-09 17:40:45 +01:00
-
7af65697cc
block: medium presence — the medium_changed event and usb-storage as publisher (V2b)
Daniel Samson
2026-08-09 17:36:57 +01:00
-
73fbbd3922
docs: record the V2 sequencing — medium_changed emitted in V2b, tested in V4
Daniel Samson
2026-08-09 17:27:43 +01:00
-
c37402891a
test: block-range — the discrimination fixture for range confinement (V2a)
Daniel Samson
2026-08-09 17:25:43 +01:00
-
f1bdce25e0
block: per-sender range confinement — V2a mechanism
Daniel Samson
2026-08-09 17:13:26 +01:00
-
7ea54a84e5
file-system: mount-failure diagnostics go to the kernel ring, not std.log
Daniel Samson
2026-08-09 17:06:13 +01:00
-
d63a008148
file-system: extract the serving harness from fat — V1
Daniel Samson
2026-08-09 16:55:48 +01:00
-
b59f981c58
docs: decision 4 settled — a loop with an open decision is not a loop
Daniel Samson
2026-08-09 16:34:04 +01:00
-
60b41c0e82
kernel: mounts have owners — V0 of the volume-manager plan
Daniel Samson
2026-08-09 16:16:14 +01:00
-
451abba000
docs: the volume-manager plan — V0 unmount ownership through V5 close-out
Daniel Samson
2026-08-09 16:09:20 +01:00
-
9da63e81e2
docs: the boot volume — identity is what makes yanking it survivable
Daniel Samson
2026-08-09 16:01:03 +01:00
-
ada251150a
docs: volume identity, and volumes.csv as danos's fstab
Daniel Samson
2026-08-09 15:59:38 +01:00
-
728b436d0f
docs: the storage rationale lives with the architecture it justifies
Daniel Samson
2026-08-09 15:49:12 +01:00
-
092817ba2e
docs: transport generality and the media-presence event
Daniel Samson
2026-08-09 15:36:59 +01:00
-
a44b397bed
protocols: attach gets its reverse — block detach, usb-transfer dma_detach
Daniel Samson
2026-08-09 15:18:21 +01:00
-
fa54ef6915
docs: the volume lifecycle is enforced, not described
Daniel Samson
2026-08-09 15:13:34 +01:00
-
fae616fa5a
docs: the storage architecture — layers, boundaries, and who does what when media leaves
Daniel Samson
2026-08-09 15:08:45 +01:00
-
5a8a2a4d7e
docs: the storage-stack discussion — block, volumes, filesystems, against the survey
Daniel Samson
2026-08-09 14:47:35 +01:00
-
d4f8dc51b9
docs: the hot-plug matrix is complete — 124/124
Daniel Samson
2026-08-09 14:19:39 +01:00
-
36ca3f98b3
test: H4 + H5 — a moved device is a new device, and generations do not leak
Daniel Samson
2026-08-09 14:11:05 +01:00
-
c3604429d4
test: H3 — a nested hub tree yanked whole rebuilds whole (hot-plug matrix)
Daniel Samson
2026-08-09 14:09:19 +01:00
-
77e7001878
usb: a hub yanked from a root port takes its subtree with it (H2)
Daniel Samson
2026-08-09 14:08:15 +01:00
-
a6a3402d92
test: H1 — root-port unplug and replug (hot-plug matrix)
Daniel Samson
2026-08-09 14:03:02 +01:00
-
d565a6b845
docs: the hot-plug matrix plan — unplug anything, replug anywhere
Daniel Samson
2026-08-09 13:58:29 +01:00
-
4a2df587bb
establishment: unplug reaps like death, so a replug rebinds
Daniel Samson
2026-08-09 13:51:07 +01:00
-
3c9f454398
establishment: the two-controller proof, and the docs catch up
Daniel Samson
2026-08-09 12:48:33 +01:00
-
8710944a92
establishment: a reporter's death reaps its subtree, and the re-report rebuilds it
Daniel Samson
2026-08-09 12:34:13 +01:00
-
1d7850239d
establishment: block stops being a name, and enumerate learns to page
Daniel Samson
2026-08-09 12:24:25 +01:00
-
d603d40b5c
establishment: usb-transfer stops being a name
Daniel Samson
2026-08-09 11:48:31 +01:00
-
77fe4d220e
establishment: the mechanics — reply capabilities, helloExchange, lineage routing
Daniel Samson
2026-08-09 11:39:29 +01:00
-
0d5a7394ef
docs: establishment planes — the design and the two-seam plan
Daniel Samson
2026-08-09 11:26:53 +01:00
-
5930c9653c
docs: device-authority as built — spawn carries the device, the loan, confinement rebuilt on return
Daniel Samson
2026-08-09 10:17:46 +01:00
-
981ff7cd25
Merge the audit fixes: unlocked give paths, restart re-confinement, AMD-Vi store bit
Daniel Samson
2026-08-09 10:03:42 +01:00
-
-
5cca580066
kernel: AMD-Vi asked for an interrupt where it meant a store
Daniel Samson
2026-08-09 09:57:55 +01:00
-
35f43057f4
kernel: the give paths take the lock, and a give confines afresh after a death
Daniel Samson
2026-08-09 09:57:55 +01:00
-
-
72807c20e4
Merge the bounds track: the numbers we invented are gone
Daniel Samson
2026-08-08 23:24:25 +01:00
-
-
0eb2420690
device-manager: delete the delegated-set scaffolding
Daniel Samson
2026-08-08 23:01:29 +01:00
-
df9c1ed827
device-manager: hold the seeded hardware so none is left lying around
Daniel Samson
2026-08-08 22:42:42 +01:00
-
ba195fa0a2
kernel: claim refuses delegated hardware — and E2 had already closed the hole
Daniel Samson
2026-08-08 22:31:04 +01:00
-
1a1d92cba9
kernel: a grant is a loan — a dead borrower returns the device to its lender
Daniel Samson
2026-08-08 22:21:25 +01:00
-
4ca57fc37e
kernel: record who gave each device away
Daniel Samson
2026-08-08 22:12:01 +01:00
-
ca1126537d
docs: Run 3 — close the claiming hole, six steps, no open questions
Daniel Samson
2026-08-08 22:01:49 +01:00
-
337b981c07
docs: reorder the Run 2 table to the plan order and note the executed sequence
Daniel Samson
2026-08-08 21:58:53 +01:00
-
b7d97ebb5d
acpi: discovery is handed its node like every other driver
Daniel Samson
2026-08-08 21:54:45 +01:00
-
6b3a381626
ps2: one instance, every node the machine has
Daniel Samson
2026-08-08 21:33:35 +01:00
-
7d8aa51234
kernel: maximum_children_per_parent is gone
Daniel Samson
2026-08-08 21:12:20 +01:00
-
3ae541214f
iommu: assert directly that a confinement moves with its device
Daniel Samson
2026-08-08 19:57:36 +01:00