diff --git a/.gitignore b/.gitignore index 3494414..733330e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ node_modules/ app/dist/ app/src-tauri/target/ +# Written by build.rs (tauri-build AppManifest); gen/schemas/acl-manifests.json is the +# tracked, reviewable form of the same information. +app/src-tauri/permissions/autogenerated/ Screenshot*.png code-review.md diff --git a/CLAUDE.md b/CLAUDE.md index 256ba7f..19db544 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,6 +73,16 @@ 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 `