feat: sync with upstream — v1.2.0, in-app updates, Projects, modules

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)
This commit is contained in:
janvanwan
2026-08-25 09:13:55 -05:00
parent fe5d18afa7
commit 42eaed647a
88 changed files with 4280 additions and 1888 deletions
@@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=NexusOS
Comment=Launch the NexusOS assistant (memory + backend + UI)
Exec=/home/jon/nexus-core/management/nexus-app.sh
Icon=/home/jon/nexus-core/assets/n-small.png
Terminal=false
Categories=Utility;
StartupNotify=false
@@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=Promethean Terminal
Comment=Launch a terminal with the Promethean environment
Exec=/home/jon/.local/kitty.app/bin/kitty --config /home/jon/nexus-core/bin/promethean/kitty.conf --class promethean-terminal -e bash --rcfile /home/jon/nexus-core/.promethean_bashrc -i
Icon=/home/jon/nexus-core/assets/promethean-terminal.png
Terminal=false
Categories=Utility;TerminalEmulator;
StartupNotify=false
StartupWMClass=promethean-terminal
@@ -1,15 +1,6 @@
[Settings]
gtk-application-prefer-dark-theme=true
gtk-button-images=true
gtk-cursor-theme-name=DMZ-White
gtk-cursor-theme-size=24
gtk-decoration-layout=close,minimize,maximize:
gtk-enable-animations=true
gtk-font-name=Ubuntu 10
gtk-cursor-theme-size=24
gtk-cursor-theme-name=DMZ-White
gtk-icon-theme-name=NexusOS
gtk-menu-images=true
gtk-modules=colorreload-gtk-module
gtk-primary-button-warps-slider=false
gtk-theme-name=NexusOS
gtk-toolbar-style=3
gtk-xft-dpi=98304
@@ -1,12 +1,6 @@
[Settings]
gtk-application-prefer-dark-theme=true
gtk-cursor-theme-name=DMZ-White
gtk-cursor-theme-size=24
gtk-decoration-layout=close,minimize,maximize:
gtk-enable-animations=true
gtk-font-name=Ubuntu 10
gtk-cursor-theme-size=24
gtk-cursor-theme-name=DMZ-White
gtk-icon-theme-name=NexusOS
gtk-modules=colorreload-gtk-module
gtk-primary-button-warps-slider=false
gtk-theme-name=NexusOS
gtk-xft-dpi=98304
@@ -0,0 +1,19 @@
[docks/dock1]
alignment='center'
auto-pinning=true
current-workspace-only=false
dock-items=['microsoft-edge.dockitem', 'promethean-terminal.dockitem', 'nexus-core.dockitem', 'code.dockitem', 'thunar.dockitem']
hide-delay=0
hide-mode='intelligent'
icon-size=48
items-alignment='center'
lock-items=false
offset=0
pinned-only=false
pressure-reveal=false
show-dock-item=false
theme='NexusOS'
tooltips-enabled=true
unhide-delay=0
zoom-enabled=false
zoom-percent=150
@@ -1,2 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///home/jon/.local/share/applications/microsoft-edge.desktop
Launcher=file:///usr/share/applications/microsoft-edge.desktop
@@ -1,2 +0,0 @@
[PlankDockItemPreferences]
Launcher=file:///home/jon/.local/share/applications/nexus-activate.desktop
@@ -1,11 +1,11 @@
<?xml version="1.1" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-desktop" version="1.0">
<property name="backdrop" type="empty">
<property name="screen0" type="empty">
<property name="monitor0" type="empty">
<property name="image-path" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-image" type="empty"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-single-image" type="empty"/>
<property name="brightness" type="empty"/>
<property name="image-show" type="bool" value="true"/>
@@ -13,13 +13,13 @@
</property>
<property name="monitor1" type="empty">
<property name="image-path" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-image" type="empty"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-single-image" type="empty"/>
<property name="brightness" type="empty"/>
</property>
<property name="monitor2" type="empty">
<property name="image-path" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-image" type="empty"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
<property name="last-single-image" type="empty"/>
<property name="brightness" type="empty"/>
</property>
@@ -32,17 +32,17 @@
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/xfce4/backdrops/linuxmint.jpg"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
</property>
<property name="workspace2" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/xfce4/backdrops/linuxmint.jpg"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
</property>
<property name="workspace3" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/xfce4/backdrops/linuxmint.jpg"/>
<property name="last-image" type="string" value="/home/jon/nexus-core/assets/background.png"/>
</property>
</property>
<property name="monitoreDP-1" type="empty">
@@ -1,4 +1,4 @@
<?xml version="1.1" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="configver" type="int" value="2"/>
@@ -38,7 +38,14 @@
<property name="dark-mode" type="bool" value="true"/>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="empty"/>
<property name="plugin-2" type="string" value="power-manager-plugin"/>
<property name="plugin-3" type="empty">
<property name="items" type="empty"/>
</property>
<property name="plugin-4" type="empty">
<property name="items" type="empty"/>
</property>
<property name="plugin-5" type="string" value="separator">
<property name="items" type="array">
<value type="string" value="17640946043.desktop"/>
@@ -81,15 +88,11 @@
</property>
<property name="button-icon" type="string" value="/home/jon/nexus-core/assets/n-small.png"/>
<property name="recent" type="array">
<value type="string" value="microsoft-edge.desktop"/>
<value type="string" value="xfce4-taskmanager.desktop"/>
<value type="string" value="virtualbox.desktop"/>
<value type="string" value="virt-manager.desktop"/>
<value type="string" value="org.gnome.DiskUtility.desktop"/>
<value type="string" value="org.x.editor.desktop"/>
<value type="string" value="promethean-terminal.desktop"/>
<value type="string" value="claude-usage-widget.desktop"/>
<value type="string" value="kitty.desktop"/>
<value type="string" value="putty.desktop"/>
<value type="string" value="code.desktop"/>
</property>
<property name="view-mode" type="int" value="2"/>
@@ -107,6 +110,7 @@
<property name="show-notifications" type="bool" value="true"/>
<property name="known-players" type="string" value="Microsoft Edge"/>
</property>
<property name="plugin-9" type="empty"/>
<property name="plugin-10" type="string" value="notification-plugin"/>
<property name="plugin-11" type="empty"/>
<property name="plugin-12" type="string" value="clock">
@@ -118,8 +122,13 @@
<property name="digital-date-format" type="string" value="%m/%d/%Y"/>
<property name="digital-date-font" type="string" value="Sans 8"/>
</property>
<property name="plugin-13" type="string" value="genmon">
<property name="digital-time-format" type="empty"/>
<property name="digital-layout" type="empty"/>
<property name="digital-date-font" type="empty"/>
<property name="digital-time-font" type="empty"/>
</property>
<property name="plugin-14" type="empty"/>
<property name="plugin-13" type="string" value="genmon"/>
<property name="plugin-15" type="string" value="genmon"/>
<property name="plugin-16" type="string" value="genmon"/>
</property>
@@ -1,4 +1,4 @@
<?xml version="1.1" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
@@ -27,6 +27,8 @@
<property name="MonospaceFontName" type="empty"/>
<property name="IconSizes" type="empty"/>
<property name="KeyThemeName" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
<property name="MenuImages" type="bool" value="false"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
@@ -35,8 +37,6 @@
<property name="DecorationLayout" type="string" value="icon,menu:minimize,maximize,close"/>
<property name="DialogsUseHeader" type="empty"/>
<property name="TitlebarMiddleClick" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
<property name="IMPreeditStyle" type="empty"/>
<property name="IMStatusStyle" type="empty"/>
<property name="IMModule" type="empty"/>