diff --git a/CLAUDE.md b/CLAUDE.md index 256ba7f..1da6f56 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,6 +73,12 @@ docker exec stdout → tokio task → emit("terminal-output-{sessionId}") → li - **`hooks/`** — All Tauri IPC calls are encapsulated in hooks (`useTerminal`, `useProjects`, `useDocker`, `useSettings`) - **`lib/tauri-commands.ts`** — Typed `invoke()` wrappers; TypeScript types in `lib/types.ts` must match Rust models - **`components/terminal/TerminalView.tsx`** — xterm.js integration with WebGL rendering, URL detection for OAuth flow +- **`viewer/`** — the terminal file viewer's window (second Vite entry `viewer.html` → + `src/viewer/main.tsx`; CodeMirror 6). `lib/filePathLinks.ts` decides what a path is; + `components/terminal/filePathLinkProvider.ts` registers it with xterm. The OSC 8 handler now + runs with `allowNonHttpProtocols` on and dispatches `file:` to the viewer, so every other scheme + must be refused *there*. `viewer.html` must never carry an inline `