feat: download, zip/unzip, PDF export, and ten quality-of-life fixes
Files
- Download to the phone (Android's save dialog) or Share — a file, a folder
as .zip, or a multi-selection. Streamed to disk with progress and Cancel.
- Long-press selects; a selection zips, downloads, shares or deletes. A ⋮
on every row carries the per-file actions.
- Compress to .zip and Extract, always into a new folder (the server never
overwrites). Tapping a .zip lists its contents first.
- Export as PDF, made on the phone: markdown (tables, Arabic RTL, repo
images inlined, mermaid rendered to SVG in a headless WebView because the
print WebView runs without JavaScript), code as a numbered highlighted
listing, images, a folder's markdown as one document with contents, and a
whole chat. Saved to the phone, shared, or put into the repo beside the
source under a name that never overwrites.
Quality of life
1. Retry / Edit & resend under a failed run.
2. Per-chat drafts that survive leaving the chat.
3. Quick-prompt chips; save your own, long-press to remove.
4. Screen stays on while a watched run is live (toggle in Settings).
5. Image preview with pinch and double-tap zoom.
6. Copy path, and "Ask Claude about this": a new chat, path pre-typed.
7. Files reopens the folder last used in each project.
8. Sort by name, date or size; size and age on every row.
9. Git lists changed files per repo; each opens its own diff with a +/−
count and Discard for unstaged changes; untracked files show as new.
10. Text size in Settings, app-wide and in the code editor (re_editor
ignores the app text scale, so it is applied there explicitly).
Fixes
- File and Git actions never read the server's answer. A 200 carrying
ok:false — a rejected push, a pull that cannot fast-forward — showed
"Pushed"/"Pulled", and a refused delete said nothing.
- Uploads over 48 MB are refused before sending, with the reason.
- R8 keep rules for printing's android.print bridge; verified in the
release mapping that PdfConvert and its callbacks keep their names.
- Version 1.4.0+14; Settings no longer claims 1.0.0.
Tests: test/pdf_export_test.dart (8) — span-balanced listing rows, escaping,
language detection, download names, and markdown image paths that cannot
climb out of the project.
Co-Authored-By:
Claude Opus 5 (1M context) <noreply@anthropic.com>
Showing
lib/core/prefs.dart
0 → 100644
test/pdf_export_test.dart
0 → 100644
Please register or sign in to comment