Lays out Velox Download Manager (IDM-class download manager for Ubuntu 26.04) as a monorepo ready for parallel lane development. No implementation code by design. - docs/: architecture, roadmap M0-M7, IDM-parity GUI spec, engine design, Firefox extension spec, risks/spikes, packaging - contracts/: wire-contract skeleton (JSON Schema + fixture templates) — the single synchronization point between lanes - docs/agents/: one brief per lane (PROTO, CORE, DAEMON, GUI, EXT, PKG/QA) with owned directories, build order and definition of done - CLAUDE.md: rules of engagement — lane ownership, layering, non-negotiables - CMake scaffolding with dev/tsan/release/ci presets Two environment findings shape the design: Firefox here is the Mozilla snap (native-messaging risk, so the extension carries a loopback-WebSocket fallback), and Wayland forbids passive clipboard monitoring (so clipboard capture is explicit-action-first). Co-Authored-By: Claude Opus 5 <[email protected]>
41 lines
1.5 KiB
JSON
41 lines
1.5 KiB
JSON
{
|
|
"name": "capture.offer — attachment on a monitored type is taken",
|
|
"description": "Golden fixture. tests/conformance replays this against the real daemon AND the TS client. If either side drifts, this goes red before the lanes ever integrate.",
|
|
"request": {
|
|
"jsonrpc": "2.0",
|
|
"id": 42,
|
|
"method": "capture.offer",
|
|
"params": {
|
|
"url": "https://releases.ubuntu.com/26.04/ubuntu-26.04-desktop-amd64.iso",
|
|
"method": "GET",
|
|
"tabUrl": "https://releases.ubuntu.com/26.04/",
|
|
"headers": {
|
|
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:154.0) Gecko/20100101 Firefox/154.0",
|
|
"Referer": "https://releases.ubuntu.com/26.04/",
|
|
"Accept": "*/*"
|
|
},
|
|
"cookies": [],
|
|
"contentType": "application/octet-stream",
|
|
"contentLength": 6228541440,
|
|
"contentDisposition": "attachment; filename=\"ubuntu-26.04-desktop-amd64.iso\"",
|
|
"filename": "ubuntu-26.04-desktop-amd64.iso",
|
|
"origin": "moz-extension://11111111-2222-3333-4444-555555555555"
|
|
}
|
|
},
|
|
"response": {
|
|
"jsonrpc": "2.0",
|
|
"id": 42,
|
|
"result": {
|
|
"action": "take",
|
|
"taskId": "$uuid",
|
|
"reason": null
|
|
}
|
|
},
|
|
"assertions": [
|
|
"response arrives within 750 ms",
|
|
"a task exists afterwards with state in [queued, connecting, downloading]",
|
|
"the task's saveDir resolves to the 'Programs' category folder for .iso",
|
|
"the Referer and User-Agent from params.headers are replayed on the daemon's own request"
|
|
]
|
|
}
|