diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-16 16:52:45 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-16 16:52:45 +0200 |
| commit | bb9442a07cebe70c3492cca31f31a8270bb83134 (patch) | |
| tree | 2dff25cd4c3715b5b54d4c65ee6619e896f170aa /docs/superpowers/specs/2026-10-16-file-ops-design.md | |
| parent | 193cd8c2e1cc7e16b1389b95036bf7f4f99f97e0 (diff) | |
| download | quickshell-bb9442a07cebe70c3492cca31f31a8270bb83134.tar.gz quickshell-bb9442a07cebe70c3492cca31f31a8270bb83134.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/specs/2026-10-16-file-ops-design.md')
| -rw-r--r-- | docs/superpowers/specs/2026-10-16-file-ops-design.md | 4 |
1 files changed, 2 insertions, 2 deletions
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. |
