feat: Workspace-Umbau Schritt 3 — Backend-Kanaele + code/desktop-Services

Verdrahtet die neuen Kanaele "dunkel" (noch ohne UI):
- rvs/server.js: ALLOWED_TYPES um code_file/code_file_edit, check_desktop/
  desktop_status und vnc_open/close/data/input erweitert (Base64-in-JSON-Relay
  wie audio_pcm, kein Binaer-Handling noetig).
- brainApi.ts: Project.kind ('code'|'chat') + desktop_url; ChatScreen publiziert
  die Kinds in den projectFocus-Spiegel.
- services/codeFile.ts: Live-Spiegel der Code-Dateien (content + Deltas) mit
  Ruckkanal code_file_edit fuer eigene Edits.
- services/desktop.ts: Desktop-Status + VNC-RFB-Tunnel (vnc_open/close/input/
  data) durch RVS, Session = Projekt-ID.

tsc clean, rvs/server.js syntaktisch OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 23:40:17 +02:00
co-authored by Claude Opus 4.8
parent 80b534cbab
commit 20c527c8ed
5 changed files with 120 additions and 1 deletions
+6 -1
View File
@@ -526,8 +526,13 @@ const ChatScreen: React.FC = () => {
brainApi.listProjects(true)
.then(list => {
const map: Record<string, string> = {};
for (const p of list) map[p.id] = p.name;
const kinds: Record<string, 'code' | 'chat'> = {};
for (const p of list) {
map[p.id] = p.name;
kinds[p.id] = p.kind === 'code' ? 'code' : 'chat';
}
setProjectNameById(prev => ({ ...prev, ...map }));
projectFocus.setKinds(kinds);
})
.catch(() => {});
};