Repository navigation
feat(files): a panel with the files each bot made - #27
Merged
Merged
Conversation
files.list finds them in the crew's work folder and the bot's folder (only what changed after the bot was created), plus every file its Write/Edit calls touched, which tool items now record in a new file field. files.read gives a file's bytes to the app and refuses any path outside those places. Spec 8.4 and 11.2.
A Files button in the bot header opens a panel with what the bot made, newest first, with a preview for images, PDFs, markdown and text, and Open / Show in folder through two new shell commands that never run programs. The button counts files that appeared since the owner last looked. Spec 15.1, 15.2.
httpsphl
enabled auto-merge
September 29, 2026 13:07
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A bot that made a file (a PDF report, in the case that prompted this) left the owner hunting for it in the folder on their computer. Nothing in the app showed what it had created.
Change
Daemon (spec 8.4)
files.list {botId}: files in the crew's work folder and the bot's folder that changed after the bot was created (so the owner's own files in a chosen folder do not show up), plus every file the bot'sWrite/Editcalls touched, even outside those folders. Bounded walk (depth, entries), no links, no hidden/generated folders, newest first, at most 200.files.read {botId, path}: bytes for a preview, only for paths the list could show; anything else, relative paths and..climbs arenot_found. Over 20 MiB is refused.ToolItem.filerecords the full path of aWrite/Edit/NotebookEditcall, which the clipped 4 KBinputcould not always give.App (spec 15.1, 15.2)
open_fileonly accepts document, image, sound and video extensions, so it can never run a program or script.Tested
cargo fmt,clippy -D warnings,cargo test --workspaceandpnpm check(113 tests) pass. New tests: the store query, the folder walk, an end-to-endfiles.list/files.readincluding refused paths, the extension allowlist, and the panel (list, preview, open/reveal, empty, new-file count). Checked by eye in the dev preview.Manual steps with the real app
pnpm tauri dev, ask a bot to make a PDF with a script and a markdown file withWrite: both should appear in the panel (Files button), the markdown with a preview.<iframe src="blob:...">, and the CSP now allowsframe-src blob:); if it does not render, "Open" still works and the preview needs another route (spec 19).Stacked on nothing: independent of the status fix in #26.