fix(launch): reliable Windows launcher; feat(ui): compact sidebar, Vite toggle, chat Think toggle

Ported from the private repo via bin/publish.sh, plus a manual catch-up
on files that had drifted out of sync before today:

- launch_nexus.ps1: health-check based restart decisions instead of a
  bare port-listen check (a wedged leftover process squatting a port
  used to look "already running" and block the real service from
  starting), a script-path quoting fix for Start-Process, hidden
  console via a wscript.exe wrapper (bin/launch_nexus_hidden.vbs), and
  a taskbar/window icon for the native app window.
- Sidebar: slim icon+text nav rows instead of bulky bordered buttons,
  tighter spacing throughout.
- Settings: full-width layout, a Vite dev-server Start/Stop toggle
  (synapse/frontend_manager.py + /frontend/* endpoints), and the
  Linux-only Icon Branding section now gated on the new /status
  `platform` field instead of always rendering.
- Chatbot: a Think toggle next to the model picker, so extended
  thinking can be flipped without leaving the chat page.
- management/ncp.py: faster start/stop polling (0.25s steps instead of
  1s), Vite no longer blocks `ncp start` on Linux and is skipped
  outright on Windows.

Note: the private repo also has a Mail (IMAP/SMTP) feature; it's
intentionally not included here, so the Mail-only pieces of main.py,
App.jsx, and requirements-windows.txt were left out of this port.
This commit is contained in:
Jon Wingender
2026-07-28 11:23:35 -05:00
parent 63c93346ae
commit cc20ceac64
11 changed files with 490 additions and 109 deletions
+37
View File
@@ -153,6 +153,43 @@ Promethean/ Python venv (gitignored, built by the installer)
| Frontend API base URL | `interface/web/src/config.js` |
| Python deps | `requirements-base.txt` + amd/nvidia GPU overlay; `requirements-windows.txt` = standalone CPU runtime |
## Roadmap
Rough plan, not promises. Ordered by how soon and how much it touches.
### Soon
- **Inference knobs in Settings** — expose temperature, context length, and
`num_gpu` in the UI. The backend already passes options to Ollama; there's no
UI for them yet, and small-VRAM boxes need `num_gpu=0` today via env only.
- **Chat controls** — stop generation, regenerate last reply, edit-and-resend.
History editing exists; live regeneration doesn't.
- **Per-playbook model** — playbooks set the persona but not the model; let a
playbook pin its own chat model (Settings already splits chat vs. memory model).
### Eventually
- **Document ingest / RAG** — the embedding stack (nomic-embed-text,
`message_vectors`, cosine recall) already retrieves past conversations. Extend
it to uploaded files and notes so chats can cite your own documents.
- **Vision chat** — attach images to a message and route to a multimodal Ollama
model. The stream path is text-only today.
- **Real vector index** — recall does a brute-force cosine scan over JSON blobs
in SQLite. Fine at current scale; swap in a proper index (e.g. sqlite-vec)
before the DB grows.
### Far future
- **macOS support** — POSIX process control already works; needs a `sync.py`
platform fork, ROCm-free requirements, and an installer. Waiting on a Mac.
- **Voice I/O** — local speech-to-text in, text-to-speech out.
- **Fine-tuning loop** — conversations already export as ShareGPT; close the
loop into a local fine-tune. The ML stack was stripped from the runtime venv
but the requirements files restore it.
- **Tool-using playbooks** — function calling so a playbook can take actions,
not just shape the prompt.
- **Machine learning & gameplay** — the original goal: an agent that learns to
play games alongside me (it started as "teach it to play Lego Star Wars").
Screen capture in, controller/input out, trained by playing. The whole reason
this project exists.
---
<div align="center"><sub>NexusOS · local AI, self-hosted on <a href="https://git.enderofwings.com/enderofwings/NexusOS">GitNexus</a></sub></div>