a0cfbbc2d2
Bug 1 — in-container repo mounting: - docker-compose.yml: added /data/working-copies:/data/working-copies mount to API container so workspace dirs are visible on host filesystem - Dockerfile: create /data/working-copies dir in image Bug 2 — /home/user not writable: - workspace_manager.py: chmod 777 workspace dirs + 666 files after clone and after sync, so any container user can write - manifest_compiler.py: explicit mkdir + chown + chmod 755 for home dir in generated Dockerfile Bug 3 — terminal text shifts left on typing: - terminal.tsx: removed manual term.refresh() after fit (caused reflow) - Track lastSentCols/lastSentRows and only send resize when dimensions actually changed, preventing resize feedback loops Bug 4 — ESC key captured by terminal: - terminal.tsx: attachCustomKeyEventHandler allows ESC to propagate to browser when not in alternate buffer (vim/tmux), so modals/navigation work; ESC still sent to PTY when in vim/tmux alternate screen Quality gates: ruff clean, tsc --noEmit clean, pytest workspaces (9 passed)