From 398281c8b55c97bc9eaeedcf8ddcfeb90827da4f Mon Sep 17 00:00:00 2001 From: Josh Knapp Date: Tue, 22 Sep 2026 21:35:50 -0700 Subject: [PATCH] =?UTF-8?q?docs(viewer):=20fix=20round=201=20=E2=80=94=20f?= =?UTF-8?q?allback=20trap,=20tracked=20checklist,=20residual-risk=20framin?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md: document the viewer.html fallback trap (missing/broken Vite entry silently serves index.html into the viewer window) and point at the Rust test that pins it. - Give the manual verification checklist a durable, tracked home: append it as a markdown task list to the terminal-file-viewer design spec, including the file-path hover key-hint wording check and the CRLF/BOM round-trip save check. - default.json: state the app-command residual risk and the pending AppManifest lockdown directly in the capability file's own description, not only in CLAUDE.md, since this file is the reviewed threat model of record. Co-Authored-By: Claude Opus 5.5 (1M context) --- CLAUDE.md | 6 ++- app/src-tauri/capabilities/default.json | 2 +- app/src-tauri/gen/schemas/capabilities.json | 2 +- .../2026-09-22-terminal-file-viewer-design.md | 49 +++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 1da6f56..9cdd877 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -78,7 +78,11 @@ docker exec stdout → tokio task → emit("terminal-output-{sessionId}") → li `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 `