From bb9442a07cebe70c3492cca31f31a8270bb83134 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 16 Oct 2026 16:52:45 +0200 Subject: fix(assistant): review of the Do row and fileops The canvas: a To .md ended any other way than its own Stop (the footer Stop, a question, a drop, a daemon restart, an older daemon refusing the command) left the card at Working forever. The footer Stop goes through stopOp(), asking and dropping end the operation first, a disconnect ends it, and an error while nothing else runs is taken as its outcome. Each fileops run gets its own Process, so a stopped run's late answer is never read as the next one's. To .md takes one PDF, as one file is written. Compress... no longer flips back when file(1) refines a kind, long errors are elided, and a desktop with no documents folder gets Documents/Assistant rather than ~/Assistant. fileops: an animated GIF to PNG or JPEG left one file per frame under names the rename never found; the first frame is taken. JPEG flattens transparency onto white. Zipping a folder holding the output folder read its own growing archive without end; only regular files outside it are added, which also skips FIFOs and dangling links. qpdf warnings no longer fail a merge. A folder's free name keeps its dots, a lone .gz or .xz is decompressed rather than refused, and a dotfile's archive is not hidden. Tools die with fileops even when it is killed outright, a killed run's leftovers are swept on the next run, a stop between fork and bookkeeping cannot miss the child, and a late stop cannot add a second answer. Error lines lose bsdtar's doubled prefix and its delayed-exit noise. Co-Authored-By: Claude Opus 5.5 --- docs/superpowers/specs/2026-10-16-file-ops-design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs/superpowers/specs') diff --git a/docs/superpowers/specs/2026-10-16-file-ops-design.md b/docs/superpowers/specs/2026-10-16-file-ops-design.md index 15f12ad..5676d54 100644 --- a/docs/superpowers/specs/2026-10-16-file-ops-design.md +++ b/docs/superpowers/specs/2026-10-16-file-ops-design.md @@ -19,7 +19,7 @@ is overwritten. | kind | label | op | does | | --- | --- | --- | --- | -| pdf | To .md | (daemon `write`) | the model rewrites it as Markdown into `name.md` | +| pdf, 1 only | To .md | (daemon `write`) | the model rewrites it as Markdown into `name.md`; one PDF, one file | | pdf | To images | `pdf-images` | `pdftoppm -r 150 -png` into a folder `name (pages)` | | pdf, 2+ | Merge | `pdf-merge` | `qpdf --empty --pages ... -- merged.pdf`, in staging order | | video | Extract audio | `audio` | the track copied as it is when it is AAC (`.m4a`), MP3 or Opus (`ffprobe` tells), anything else encoded to `.mp3` at `-q:a 2` | @@ -34,7 +34,7 @@ is overwritten. Matching follows the presets: an operation is offered when every staged file is of one of its kinds. Merge needs two or more files, all PDF. -Compress fits any mix. Several staged files of one kind run the operation +Compress fits any mix. To .md is offered for exactly one PDF. Several staged files of one kind run the operation on each (four images, To PNG, four PNGs), except Merge and Compress, which make one result. -- cgit v1.2.3