m-19 TASK-321.02: persona registry seeded β 14 captured fixtures#61
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hardware-capture pass for TASK-321.02. 14 personas committed under
packages/device-testing/src/personas/with per-personaprovenance.mdlinking raw Mac + Linux probe data back to capture sessions. Followsdocuments/persona-capture-playbook.md(also new in this PR β the canonical workflow doc the captures themselves were directed by).Personas
Linux strategy: 4 topologically-distinct devices fully reconciled; siblings have explicit "Linux capture deferred (shape expected to match X)" markers in their provenance. Re-plug is cheap if a downstream test surfaces a need.
Also in this PR
documents/persona-capture-playbook.mdβ agent-directive doc covering full Mac β Linux capture pipeline, raw-probe file layout, expected-* derivation strategies, synthesised rejection cases.devices/βsony-walkman-nw-a-series.md,sony-walkman-nw-hd-series.md,sony-walkman-nwz-e380.md. Family-level alongside existingdevices/ipod.md/echo-mini.md.documents/test-devices.mdupdated with capture timestamps + persona IDs.Backlog hygiene
corrupt-db,populated), firmware variant (rockbox), and 3 synthesised rejection personas.ReadinessLevelwith'unsupported'variant; the current'unknown'workaround in touch 5G + Sony personas is documented but pending normalisation.DevicePersonaschema v2 (USB descriptor hierarchy, partition LUN field, nullable serial). Blocks TASK-322.05 (FunctionFS daemon).Findings
0x1205is shared between iPod mini 1G + 2G per linux-usb.org.packages/devices-ipod/src/tables/usb-ids.tsdocuments this and intentionally maps tomini_1gwith a generic display name; SysInfo cascade resolves precise generation. Earlier provenance characterised this as a "known bug" β corrected. Codebase right; documentation now reflects it.bNumConfigurations = 2for nano 3G vs Mac ioreg1. Not a host disagreement: Apple iPods advertise two USB configurations (Mass Storage + iAP) and macOS surfaces only the active one. Folded into TASK-332's schema v2 scope.Test plan
bun run typecheck --filter @podkit/device-testingβ pass (verified pre-push)bun run test:unit --filter @podkit/device-testingβ 83 pass / 2 skip / 0 fail (verified pre-push)runtime.test.tspersonas.size > 0assertion greenOut of scope
ReadinessLevel: 'unsupported'implementation (TASK-331)π€ Generated with Claude Code