63 lines
4.7 KiB
Markdown
63 lines
4.7 KiB
Markdown
# tmp_request.md — pending user requests (do not lose)
|
|
|
|
> Living checklist created 2026-08-23. Update status lines as items land; delete file when all are implemented.
|
|
|
|
## R1 — SMB client: unmount-by-pick [IMPLEMENTED in working tree — needs install refresh]
|
|
Same interactive UX as NFS client: option 4 lists active SMB mounts to pick (with confirm), typed fallback when none.
|
|
NOTE: user transcript shows old typed-prompt behavior because `/usr/local/bin` copy is STALE — none of today's share/menu work has been installed yet.
|
|
|
|
## R2 — BUG: unmount is SILENT when target is persistent-but-not-active [OPEN — Detective routed]
|
|
Symptom: `Choose: 4` → type `/media/he/12T-smb` → returns to menu with ZERO output (no `[+] Unmounted`, no error), even under sudo. Option 3 lists these under "Persistent (automount):" only ⇒ they are NOT currently mounted; plain umount fails invisibly.
|
|
Wanted: surface the real state — e.g. "not mounted (it is a persisted automount) — use option 5 to remove the persistence"; never exit silently. Check NFS client for the same pattern.
|
|
|
|
## R3 — Docker vbox create: categorized capability picker [OPEN — Designer routed]
|
|
After `VM name:`, replace/augment flat create flow with a CATEGORY list because the option space is large. User wants at least:
|
|
- Nvidia/GPU integration (device passthrough)
|
|
- Ability to select/mount host devices connected to the machine
|
|
- Open to more ideas (designer to propose: mounts, cpu/mem, ports, presets)
|
|
|
|
## R4 — CONVENTION: [y/N] prompts — Enter defaults to YES [IMPLEMENTED in working tree (T7)]
|
|
confirm() honors default arg (y omitted-default); explicit-'n' destructive sites keep deny-on-Enter; EOF deny fail-closed; case-insensitive Y/n; latent compose `"Y"` bug fixed. Awaiting commit/install.
|
|
|
|
## R5 — `pos ai gemini ask`: terse CLI answers + markdown rendering [BUILT — Reviewer pass pending]
|
|
- ✓ Default terse system prompt (--system overrides wholesale; --full drops it)
|
|
- ✓ Markdown→terminal rendering (glow opportunistic + zero-dep awk fallback); RAW bytes when piped
|
|
- ✓ `--last`: attaches pos dispatcher log OR captured output (see R7); stderr announces which source + age; >60min staleness warning; no-log → pipe recipe error
|
|
- ✓ Troubleshooting clause in default prompt (pasted error → diagnose + fix first)
|
|
- ✓ Session "default" always on for ask/chat without --session; bridges untouched
|
|
- ✓ Answer separation on tty (leading blank line; piped output byte-identical)
|
|
- ✓ Machine context clause (hostnamectl → os-release+uname fallback) appended to default prompt only
|
|
- ✓ `capture` subcommand: runs any command, tees output to last_cmd_output for --last
|
|
- ✓ `--last` fallback chain: pos logs (priority) → last_cmd_output (fallback)
|
|
- ✓ Optional shell hook (`lib/pos-ai-hook.sh`) for auto-capture via .bashrc
|
|
- Model default remains gemini-2.5-flash when nothing set (flag > config > hard default)
|
|
- PENDING: one consolidated adversarial review over the whole R5 chain before acceptance
|
|
|
|
## R6 — `pos ai openrouter` [BUILT — needs Reviewer pass]
|
|
New tool cloned from gemini, adapted for OpenRouter REST API (OpenAI-compatible format).
|
|
- Same subcommands: ask, chat, sessions (+ capture via R7)
|
|
- Same features: --last, --system, --full, default session, tty rendering, machine context
|
|
- API: Bearer auth, OpenAI message format, `choices[0].message.content` response
|
|
- Config: `pos config ai-openrouter` → `ai-openrouter.env` (OPENROUTER_API_KEY, OPENROUTER_MODEL)
|
|
- Default model: `openrouter/auto` (picks best model automatically)
|
|
- Sessions separate from gemini (`~/.local/share/linux_post_install/ai-openrouter/`)
|
|
- PENDING: Reviewer pass before acceptance
|
|
|
|
## R7 — `--last` captures ANY command output [BUILT — needs Reviewer pass]
|
|
- ✓ `capture` subcommand on both gemini + openrouter: runs cmd, tees to `last_cmd_output`, shows on terminal
|
|
- ✓ `--last` fallback: pos logs first → `last_cmd_output` second
|
|
- ✓ `lib/pos-ai-hook.sh`: optional shell hook for .bashrc auto-capture (exec > >(tee ...), 1MB cap)
|
|
- PENDING: Reviewer pass before acceptance
|
|
|
|
## R6+R7 — PAUSED: Phase-2-menu follow-ups (T7/T8) awaiting consolidated Reviewer pass
|
|
T7 (unmount fixes + confirm convention) done; T8 (vbox categorized create, 107 assertions green) done; Reviewer pass + commit/push deferred until user resumes.
|
|
|
|
## Housekeeping reminders
|
|
- Working tree holds UNCOMMITTED + UNINSTALLED work. To use anything new, refresh installed copies:
|
|
```
|
|
sudo install -m 755 bin/pos-share-* bin/pos-docker-vbox bin/pos-ai-openrouter /usr/local/bin/
|
|
sudo install -m 644 lib/menu-lib.sh lib/share-lib.sh /usr/local/bin/
|
|
```
|
|
- `pos config ai-openrouter` needed to set OPENROUTER_API_KEY before first use
|
|
- `lib/pos-ai-hook.sh` is optional — add `source /usr/local/bin/pos-ai-hook.sh` to .bashrc for auto-capture
|