Commit aeb8283
m-19 TASK-321.02: persona registry seeded — 14 captured fixtures
Hardware-capture pass following documents/persona-capture-playbook.md.
Mac + Linux probe data committed under packages/device-testing/src/personas/
with provenance.md per persona linking raw artefacts back to their capture
sessions.
Personas (14)
- ipod-video-5g-iflash-1tb — TERAPOD, SCSI-fallback, 94 MiB MBR firmware gap
- ipod-mini-2g-pink — SALLYS IPOD, SCSI-fallback, PID 0x1205 shared with mini 1G
- ipod-nano-2g-green — PARTY IPOD, SCSI-fallback
- ipod-nano-3g-black — USB-inquiry boundary device (Linux ✓)
- ipod-nano-4g-black — HFS+/APM, USB-inquiry (Linux ✓)
- ipod-nano-7g-blue — HFS+/APM, hashAB checksum (Linux ✓)
- ipod-nano-7g-space-gray — FAT32/MBR Windows-restored, same PID as blue
- ipod-touch-5g-unsupported — iOS rejection case, no disk mode
- echo-mini — FiiO mass-storage DAP, dual-LUN (Linux ✓ both LUNs)
- sony-nw-hd5 — original Network Walkman, OpenMG v1.1 + MACLIST DRM
- sony-nw-a1000, sony-nw-a1200, sony-nw-a3000 — SonicStage-era HDD Walkmans
- sony-nwz-e384 — newest Walkman, capability_00.xml + DeviceInfo.txt captured
Linux session strategy
Four topologically-distinct devices captured end-to-end on linka (Debian 12,
kernel 6.1.0-41-amd64). Each provenance.md carries a 12-field reconciliation
table comparing Mac ioreg vs Linux sysfs USB descriptor fields. Siblings
sharing topology have explicit "Linux capture deferred (shape expected to
match X)" markers — re-plug + capture is cheap if a downstream test surfaces
a need.
Device profiles in devices/
- sony-walkman-nw-a-series.md (NW-A1000 / A1200 / A3000)
- sony-walkman-nw-hd-series.md (NW-HD5)
- sony-walkman-nwz-e380.md (NWZ-E380 / E383 / E384 / E385)
documents/persona-capture-playbook.md
Canonical workflow doc that drove the capture pass. Covers per-device
commands for Mac + Linux, raw-probe file layout, expected-* derivation
strategies, provenance template, synthesised rejection cases.
documents/test-devices.md updated
Each device section gains a "Persona captured" line linking to the fixture.
Backlog hygiene
- TASK-321.02 marked Done with full final summary. AC #4 (per-persona smoke
tests) explicitly left unchecked — fixtures committed as informational +
future-test inputs; smoke-test work blocked on TASK-331 (rejection-case
ReadinessLevel shape) and picked up organically by TASK-301..311.
- TASK-324 (Phase 5) description rewritten to acknowledge what 321.02
over-delivered and narrow remaining scope to state variants
(ipod-video-5g-corrupt-db, echo-mini-populated), firmware variant
(ipod-classic-rockbox), and synthesised rejection personas (shuffle,
non-ipod-usb-disk, malformed-sysinfo).
- TASK-331 created — extend ReadinessLevel with 'unsupported' variant; the
current 'unknown' workaround in touch 5G + Sony personas is documented
but pending normalisation.
- TASK-332 created — DevicePersona schema v2: USB descriptor hierarchy
(configurations[]/interfaces[]/endpoints[] + bNumConfigurations),
partitionLayout LUN field, nullable deviceSerial. Blocks TASK-322.05
(FunctionFS daemon).
Findings
- USB PID 0x1205 shared between mini 1G + 2G per linux-usb.org;
tables/usb-ids.ts documents this and intentionally maps to mini_1g with
generic display name. SysInfo cascade resolves precise generation.
Earlier provenance characterised this as a "known bug" — corrected.
- Linux sysfs bNumConfigurations=2 for nano 3G; Mac ioreg surfaces only
active config (1). Apple iPods advertise two USB configurations
(Mass Storage + iAP). Folded into TASK-332.
Quality gates
- bun run typecheck --filter @podkit/device-testing → pass
- bun run test:unit --filter @podkit/device-testing → 83 pass / 2 skip / 0 fail
- Registry index.ts wires all 14 personas; runtime smoke test confirms
loading.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 234c104 commit aeb8283
147 files changed
Lines changed: 19450 additions & 66 deletions
File tree
- backlog/tasks
- devices
- documents
- packages/device-testing/src
- personas
- echo-mini
- raw
- ipod-mini-2g-pink
- raw
- ipod-nano-2g-green
- raw
- ipod-nano-3g-black
- raw
- ipod-nano-4g-black
- raw
- ipod-nano-7g-blue
- raw
- ipod-nano-7g-space-gray
- raw
- ipod-touch-5g-unsupported
- raw
- ipod-video-5g-iflash-1tb
- raw
- sony-nw-a1000
- raw
- sony-nw-a1200
- raw
- sony-nw-a3000
- raw
- sony-nw-hd5
- raw
- sony-nwz-e384
- raw
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 60 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
46 | | - | |
| 47 | + | |
47 | 48 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
| 49 | + | |
53 | 50 | | |
54 | 51 | | |
55 | 52 | | |
| |||
59 | 56 | | |
60 | 57 | | |
61 | 58 | | |
62 | | - | |
63 | | - | |
64 | 59 | | |
65 | 60 | | |
66 | 61 | | |
67 | 62 | | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
77 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
Lines changed: 35 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
39 | 47 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 48 | + | |
| 49 | + | |
45 | 50 | | |
46 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
47 | 55 | | |
48 | | - | |
| 56 | + | |
49 | 57 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
| 58 | + | |
55 | 59 | | |
56 | 60 | | |
57 | 61 | | |
58 | 62 | | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
65 | 70 | | |
0 commit comments