Files
Linux_post_install/tmp_request.md
T
Your Name 06a05f0567
gates / consistency-and-conventions (push) Successful in 1m24s
ai continue ...
2026-09-04 11:09:21 -04:00

4.7 KiB

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-openrouterai-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