Skip to content

Commit f4bc788

Browse files
mobileskyficlaude
andcommitted
docs(examples): link the gap notes to issues #23/#24/#25
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 9c05b04 commit f4bc788

5 files changed

Lines changed: 10 additions & 9 deletions

File tree

BACKLOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ Canonical location for the paired skills is `~/GitHub/routeros-skills/` (symlink
344344

345345
**Open CLI/UX work:**
346346

347-
- [ ] [P3] **`quickchr cp <name> <src> <dst>` — file transfer on the CLI.** `ChrInstance.upload()`/`download()` exist (SCP via resolved creds), but there's **no CLI command** for them. Surfaced by the 2026-06-26 examples rework: `examples/file-transfer/` is library-only, and `examples/version-matrix/`'s CLI/Python driver can't upload the sample config (so it compares default exports only). A thin `cp`/`push`/`pull` wrapping the existing SCP plumbing (`src/lib/scp.ts`) would close both gaps and let those examples ship a real `.sh`/`.py` transfer path instead of a "no CLI" note. Direction: `quickchr cp <name>:<remote> <local>` and `quickchr cp <local> <name>:<remote>` (scp-style), or explicit `push`/`pull`.
347+
- [ ] [P3] **`quickchr cp <name> <src> <dst>` — file transfer on the CLI** ([#23](https://github.com/tikoci/quickchr/issues/23)). `ChrInstance.upload()`/`download()` exist (SCP via resolved creds), but there's **no CLI command** for them. Surfaced by the 2026-06-26 examples rework: `examples/file-transfer/` is library-only, and `examples/version-matrix/`'s CLI/Python driver can't upload the sample config (so it compares default exports only). A thin `cp`/`push`/`pull` wrapping the existing SCP plumbing (`src/lib/scp.ts`) would close both gaps and let those examples ship a real `.sh`/`.py` transfer path instead of a "no CLI" note. Direction: `quickchr cp <name>:<remote> <local>` and `quickchr cp <local> <name>:<remote>` (scp-style), or explicit `push`/`pull`. **Related:** no `quickchr install <name> <pkg>` for a *running* machine ([#24](https://github.com/tikoci/quickchr/issues/24)) — the library has `installPackage()`, the CLI only installs at first boot via `--add-package`.
348348
- [x] [P1] **`--forward <name>:<host>:<guest>[/tcp|udp]` on `quickchr add`** — Surface `extraPorts` as a repeatable CLI flag. Today forwarding a guest service (SMB/445, Dude/2210) requires constructing the full `extraPorts` array in code. External agent (2026-04-22 tikoci/donny session) had to grep `types.ts` before knowing how to expose SMB. Pairs with the well-known guest-port registry (see library section).
349349
- [ ] [P1] **User-settings framework (narrow scope)** — Framework for settings not tied to a specific machine: wizard defaults, cache size cap, default timeout scale, auth preferences (always-license-at-P1, never-license, etc.). **Out of scope:** post-provisioning machine-config mutations (that was the `set` confusion). Ship with ~5 concrete settings; grow only when a real user-facing choice appears. Don't build a general settings system first.
350350
- [ ] [P2] **`--via=auto` smart routing** — Order: **REST → SSH → QGA (if KVM) → console**. SSH second because it's well-tested on RouterOS and works when REST can't. QGA is least-tested and gated on KVM (RouterOS may require `/dev/kvm` — see QGA investigation below); arm64+KVM is untested on our hardware but believed to work. Depends on SSH transport landing first.
@@ -430,7 +430,7 @@ See `docs/networking.md` for platform internals. Priority: macOS (local) & Linux
430430
**Rootless topologies (examples):**
431431
Multi-CHR topologies with `user` + `socket` (rootless, CI-friendly). RouterOS tunneling (VXLAN, PPPoE, GRE, IPSec, VRRP over shared/bridged) documented in MANUAL.md. Examples below.
432432

433-
- [ ] [P3] **`rootless-l2` / `socket-lan` example — needs a 1-page design first.** Two CHRs linked by a named `socket::<name>` L2 segment (rootless), IP each side, ping across to prove inter-router L2. Deferred from the 2026-06-26 examples rework (the other five new examples shipped). **Do the topology sketch before coding** (per the scope-boundary principle): which CHR listens vs connects for `socket::`, IP plan, what's asserted, expected boot/wall time for 2 parallel CHRs. Then it becomes a normal `examples/rootless-l2/` (`.ts`+`.sh`+`.ps1`+README) closing the `socket::<name>` row in `examples/COVERAGE.md`.
433+
- [ ] [P3] **`rootless-l2` / `socket-lan` example — needs a 1-page design first** ([#25](https://github.com/tikoci/quickchr/issues/25)). Two CHRs linked by a named `socket::<name>` L2 segment (rootless), IP each side, ping across to prove inter-router L2. Deferred from the 2026-06-26 examples rework (the other five new examples shipped). **Do the topology sketch before coding** (per the scope-boundary principle): which CHR listens vs connects for `socket::`, IP plan, what's asserted, expected boot/wall time for 2 parallel CHRs. Then it becomes a normal `examples/rootless-l2/` (`.ts`+`.sh`+`.ps1`+README) closing the `socket::<name>` row in `examples/COVERAGE.md`.
434434

435435
---
436436

examples/COVERAGE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,5 @@ Legend: ✅ example · 📘 docs/MANUAL only · 🧪 covered by `test/` only.
7373

7474
| Surface | Status |
7575
|---|---|
76-
| `socket::<name>` multi-CHR L2 (rootless-l2 / `socket-lan`) |needs a 1-page topology design firsttracked in [`../BACKLOG.md`](../BACKLOG.md) |
76+
| `socket::<name>` multi-CHR L2 (rootless-l2 / `socket-lan`) | ⏳ design-first, tracked in [tikoci/quickchr#25](https://github.com/tikoci/quickchr/issues/25) |
7777
| `shared` / `bridged:<if>` / `tap:<if>` networks | 📘 host-setup heavy (sudo / socket_vmnet); documented, not a rootless example |

examples/dude/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ The **library** can install a package on a *running* machine
4545
(`ChrInstance.installPackage("dude")`), but the **CLI** can only install at first
4646
boot (`--add-package`) — there's no `quickchr install <name> <pkg>` for a running
4747
instance. That's why `dude.ts` and `dude.sh` take slightly different paths to the
48-
same end state. Tracked as a CLI-surface gap (`quickchr install`/`pkg add`) — see
49-
[`../../BACKLOG.md`](../../BACKLOG.md).
48+
same end state. Tracked in
49+
[tikoci/quickchr#24](https://github.com/tikoci/quickchr/issues/24).
5050

5151
## See also
5252

examples/file-transfer/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ identical to the `.sh` gap note — not worth a separate file. Expected time: ~4
3333
**No `quickchr cp` CLI.** File transfer is library-only — there's no
3434
`quickchr cp <name> <src> <dst>` command, so the CLI/Python drivers can't do a
3535
clean round-trip (they'd fall back to raw `scp`, which we won't normalize). Tracked
36-
as a CLI-surface gap in [`../../BACKLOG.md`](../../BACKLOG.md) ("`quickchr cp`").
37-
The same gap shows up in [`../version-matrix/`](../version-matrix/), whose CLI
38-
driver can't upload the sample config.
36+
in [tikoci/quickchr#23](https://github.com/tikoci/quickchr/issues/23). The same gap
37+
shows up in [`../version-matrix/`](../version-matrix/), whose CLI driver can't
38+
upload the sample config.
3939

4040
## See also
4141

examples/version-matrix/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ Expected time: ~90 s wall (HVF/KVM, parallel); minutes under TCG.
4040
- **No CLI file-transfer.** The library applies the sample config with
4141
`ChrInstance.upload()`, but the CLI/Python driver can't — there's no
4242
`quickchr cp` command. So `version-matrix.py` compares *default* exports only.
43-
Tracked as a CLI-surface gap (shared with [`../file-transfer/`](../file-transfer/)).
43+
Tracked in [tikoci/quickchr#23](https://github.com/tikoci/quickchr/issues/23)
44+
(shared with [`../file-transfer/`](../file-transfer/)).
4445
- **Old CLI package flag was wrong.** The previous Makefile/Python used
4546
`--packages a,b` (no such flag) so packages never installed via the CLI path;
4647
fixed here to repeated `--add-package`.

0 commit comments

Comments
 (0)