forked from enderofwings/NexusOS
Brings the public tree back in line with the development repo after several weeks of drift caused by a stale publish include list. New: - In-app update path: GET /update/check compares the checkout against origin/main and POST /update/apply runs `ncp upgrade` detached (pull, rebuild, restart). The sidebar shows the version, checks on click, and offers an "update available" pill. - Projects: a project workspace groups chats and RAG documents, with per-project instructions and document retrieval scoped to the active project. Replaces the standalone Documents page. - modules/: auto-discovered feature plugins (mail, network) with their frontend counterparts and tests. - Memory curation runs in-process (synapse/memory/curator.py) on the chat model when a conversation goes idle. The separate memory service on :8001 is gone, along with the launcher lines that started it. Also: the KDE theme, panel and Promethean terminal assets, the full test suite, and VERSION 1.2.0. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
11 lines
535 B
JavaScript
11 lines
535 B
JavaScript
// Auto-discovers feature modules under modules/ — any folder with a
|
|
// module.jsx exporting MANIFEST ({key,label,icon,order}) + Component is
|
|
// picked up automatically. Add a new module folder and it appears in the
|
|
// Modules hover menu with no edits here.
|
|
const discovered = import.meta.glob("./*/module.jsx", { eager: true });
|
|
|
|
export const MODULES = Object.values(discovered)
|
|
.filter(m => m.MANIFEST && m.Component)
|
|
.map(m => ({ ...m.MANIFEST, Component: m.Component }))
|
|
.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
|