aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/assistant/test_fileops.py
AgeCommit message (Collapse)AuthorFilesLines
7 daysfix(assistant): review of the Do row and fileopsDanilo M.1-0/+41
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>
7 daysfeat(assistant): fileops, the Do row's local operationsDanilo M.1-0/+141
One CLI for converting, extracting, merging and compressing staged files, answering with one JSON line. Results are written under a temporary name and renamed to the first free one, so a failure or a stop leaves nothing half written, and a stop kills the tool's whole process group. This ffmpeg has no libx264 and no AAC encoder, so MP4 is H.264 through VAAPI with MP3 audio, and audio extraction copies AAC, MP3 and Opus tracks as they are. The test builds its inputs and checks every result's type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>