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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user