3.1 KiB
TODO — "OS": KI-natives Web-Betriebssystem
Phase 0 — Scaffolding
- package.json, vite, tsconfig, tailwind, postcss, .env.example
- index.html, main.tsx, index.css
- npm install
Phase 1 — Kernel
- design/tokens.ts (Design-System)
- kernel/db.ts (IndexedDB via idb)
- kernel/fs.ts (virtuelles Dateisystem)
- kernel/store.ts (zustand: boot, windows, apps, theme, fs cache, notifications)
- kernel/ai.ts (Anthropic Messages API + App-Generierung + Self-Healing)
- kernel/sdk.ts (os.* SDK für Apps)
- kernel/appRuntime.tsx (Babel-Transform + sicheres Rendern)
- kernel/registry.ts (Builtin + generierte Apps)
Phase 2 — System-UI
- components: Button, Input, Panel, Icon
- system-ui/Boot.tsx (Boot-Sequenz)
- system-ui/Lockscreen.tsx
- system-ui/Window.tsx (drag/resize/snap/min/max, z-index)
- system-ui/WindowManager.tsx
- system-ui/Dock.tsx
- system-ui/MenuBar.tsx (Uhr, Statusicons)
- system-ui/Spotlight.tsx (Cmd+Space, KI-Befehlsleiste)
- system-ui/Notifications.tsx
- system-ui/ContextMenu.tsx
- system-ui/Desktop.tsx (Wallpaper, Icons)
- App.tsx (orchestriert boot→lock→desktop)
Phase 3 — Vorinstallierte Apps
- apps/Files.tsx
- apps/Terminal.tsx (ls, cat, mkdir, ai )
- apps/Settings.tsx (Theme, Wallpaper, Light/Dark, App-Verwaltung)
- apps/Assistant.tsx (Chat + Spotlight)
- apps/AppBuilder.tsx (zeigt KI-Generierung)
Phase 4 — Verifikation
- npm run build (typecheck) grün
- npm run dev startet, Boot→Desktop sichtbar
- Fenster-Manager funktioniert
- App-Generierung end-to-end (mit API-Key)
Review
Status: alle Phasen abgeschlossen und verifiziert.
Gebaut: Vollständiges KI-natives Web-OS ("Fluid OS"). Boot→Lockscreen→Desktop, echter Fenster-Manager (Drag/Resize/Snap/Min/Max/Z-Stacking), Spotlight (⌘Space), 5 Builtin-Apps, KI-App-Generierung (JSON → Babel-Transform → Sandbox), Self-Healing, IndexedDB-Persistenz, Light/Dark + Wallpaper, Kontextmenüs, Notifications, IPC-Bus.
Verifikation (headless Chrome, puppeteer-core)
- Boot → Lockscreen → Desktop: ✅
- MenuBar (Uhr/Status), Dock (5 Apps), 5 Desktop-Icons: ✅
- Fenster öffnen (Terminal) + Chrome rendert: ✅
- Spotlight via ⌘Space: ✅
- Generierte-App-Runtime: Babel-Transform + Sandbox + State + os.window.setTitle: ✅
- Error-Boundary + Self-Heal-UI bei Crash: ✅
- Forbidden-API-Guard (fetch etc. blockiert): ✅
- Keine unerwarteten Konsolenfehler: ✅
tsc --noEmit+npm run build: grün
Gefundener & behobener Bug
appRuntime baute die generierte App-Funktion bei jedem Render neu → neue
Komponenten-Identität → Remount-Schleife ("Maximum update depth exceeded"), State-Verlust
bei allen zustandsbehafteten generierten Apps. Fix: App per useMemo([os]) einmal
pro Fenster bauen. Siehe tasks/lessons.md.
Nicht verifizierbar ohne API-Key
Der echte Anthropic-Call (App-Generierung end-to-end) braucht VITE_ANTHROPIC_API_KEY.
Der konsumierende Runtime ist mit synthetischem KI-Output vollständig getestet; der
Netzwerkpfad ist implementiert und endet sauber an der API-Grenze.