mirror of
https://github.com/lights0123/n-link.git
synced 2026-08-08 10:43:29 +00:00
docs(plan): amend Plan A verification for unavailable oracle
n-link-cli ls / returns Busy then hangs (known CX II firmware issue, owned by the user, out of scope here). Transfer-dependent gates are downgraded to non-blocking; enumerate remains a full verification of the IPC path since it reads USB descriptors only and does no libnspire transfer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
8db940edc8
commit
94c62e810b
|
|
@ -22,6 +22,40 @@
|
||||||
|
|
||||||
**Oracle binary:** `/home/jjureta/Projects/n-link/nlink-cli/target/release/n-link-cli`
|
**Oracle binary:** `/home/jjureta/Projects/n-link/nlink-cli/target/release/n-link-cli`
|
||||||
|
|
||||||
|
### AMENDMENT 2026-07-19: oracle unavailable
|
||||||
|
|
||||||
|
Verified on this machine: `n-link-cli ls /` returns `Busy` and then hangs
|
||||||
|
indefinitely (exit 124 at 45s, no output). Ruled out as causes: device-node
|
||||||
|
permissions (ACL grants the user rw), the udev rule (present), and device
|
||||||
|
disconnection (continuously enumerated).
|
||||||
|
|
||||||
|
This is the known TI-Nspire CX II firmware issue described in
|
||||||
|
`nlink-cli/README.md`. **The user has taken ownership of it and it is out of
|
||||||
|
scope for Plan A.**
|
||||||
|
|
||||||
|
Consequence for verification: any gate requiring a libnspire *data transfer*
|
||||||
|
cannot pass and is downgraded to non-blocking. Specifically:
|
||||||
|
|
||||||
|
| Gate | Status |
|
||||||
|
|---|---|
|
||||||
|
| Task 1 Step 5 (oracle baseline) | **Skipped** — cannot produce a listing |
|
||||||
|
| Task 7 Step 3, `open_device` / `list_dir` | **Non-blocking** — expected to hang or return `Busy` |
|
||||||
|
| Task 7 Step 4 (download + sha256 cross-check) | **Skipped entirely** |
|
||||||
|
|
||||||
|
What Plan A must still prove, unchanged and fully achievable:
|
||||||
|
|
||||||
|
1. A Tauri 2 window opens on webkit2gtk-4.1 — the actual goal of this port.
|
||||||
|
2. The backend compiles and all 13 commands register.
|
||||||
|
3. `enumerate` returns the CX II with correct camelCase keys. This reads only
|
||||||
|
USB descriptors via `rusb` and performs **no** libnspire transfer, so it is
|
||||||
|
unaffected by the `Busy` issue — and it exercises serde serialization, IPC,
|
||||||
|
and event wiring, which is the bulk of what this plan ports.
|
||||||
|
4. Hotplug `addDevice` / `removeDevice` events fire.
|
||||||
|
5. Headless `--help` works; deb and AppImage build, install, and render.
|
||||||
|
|
||||||
|
A transfer-path failure at Task 7 is therefore **expected** and must not be
|
||||||
|
treated as a port regression or a reason to halt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Task 1: Install system dependencies and confirm the toolchain
|
### Task 1: Install system dependencies and confirm the toolchain
|
||||||
|
|
@ -1429,8 +1463,8 @@ Ubuntu 26.04 — the failure mode that motivated this port."
|
||||||
- [ ] A Tauri 2 window opens on Ubuntu 26.04 with webkit2gtk-4.1
|
- [ ] A Tauri 2 window opens on Ubuntu 26.04 with webkit2gtk-4.1
|
||||||
- [ ] All 13 commands are registered and callable from the webview
|
- [ ] All 13 commands are registered and callable from the webview
|
||||||
- [ ] `enumerate` detects the CX II with correct camelCase payload keys
|
- [ ] `enumerate` detects the CX II with correct camelCase payload keys
|
||||||
- [ ] `list_dir /` output matches `n-link-cli ls /`
|
- [ ] ~~`list_dir /` output matches `n-link-cli ls /`~~ — **dropped**, see amendment
|
||||||
- [ ] A downloaded file's sha256 matches the same file fetched by `n-link-cli`
|
- [ ] ~~Downloaded file sha256 matches `n-link-cli`~~ — **dropped**, see amendment
|
||||||
- [ ] Hotplug add/remove events fire
|
- [ ] Hotplug add/remove events fire
|
||||||
- [ ] Headless CLI mode still works
|
- [ ] Headless CLI mode still works
|
||||||
- [ ] `.deb` and `.AppImage` build; the release binary renders without a blank screen
|
- [ ] `.deb` and `.AppImage` build; the release binary renders without a blank screen
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue