Skip to content

Roadmap: Post-compression Finder toolkit, automation, and release quality #1

Open

Description

@raiseCatError

Latest implementation checkpoint (2026-10-17)

Three independently reviewed and macOS-CI-verified PRs have been merged into main:

  • #17 — transactional, source-identity-checked batch renames; streaming Copy As SHA-256; selection-relative paths; regression tests; current-feature README. Merge 4a1d6125.
  • #18 — per-input batch errors, partially completed state, persisted failures, Activity details, successful-output tracking for verified Undo. Merge 9f4adb4b.
  • #19 — metadata/checksum work moved off UI actor, streaming metadata hashes, partial/cancelled PDF split outputs retained and tested. Merge 9f41a2f7.

All three PR heads passed their respective macOS Swift 6 unit/toolkit/IPC tests and ad-hoc signed app/extension builds. These are implementation milestones, not proof that the entire roadmap is finished.

Open gates

Review these before closing issues; do not equate merged code with physical Finder sign-off.


Goal

Track the remaining work to turn Tuck into a fast, safe, native macOS Finder power-user utility without growing into a replacement for Finder, Raycast, or Hazel.

This is a planning issue, not a claim that any feature is already implemented. Review the local working tree and agent handoff reports before starting each issue: GitHub main may lag behind local, uncommitted development.

Product principles

  • Select items in Finder → choose a relevant Tuck action → receive an output alongside the source, highlighted in Finder.
  • Do not destructively modify original files by default. Require a preview/confirmation for renames, moves, deletes, or any potentially irreversible edit.
  • Keep menus contextual, compact, keyboard accessible, and fast; expensive work runs asynchronously outside Finder.
  • Maximize file fidelity under an exact user-selected size cap, never add "quality modes" to compression.
  • Reuse Swift 6, AppKit/SwiftUI, authenticated Finder extension ↔ helper IPC, shared output-naming conventions, and existing compression test infrastructure.
  • Respect external storage: verify mounted build/scratch paths; avoid silent fallback of large disposable artifacts to the internal SSD. Preserve source worktrees and unrelated files.
  • Do not push, merge, release, or add AI attribution as part of implementation without explicit approval.

Workstreams

  • Finish/verify Phase 2: PDF/image utilities, mixed PDF merging, OCR, metadata cleanup, Copy As, advanced rename and contextual menus.
  • Phase 3: queued operations, progress/cancel/retry, action history, and safe undo.
  • Phase 4: custom actions and Shortcuts, keyboard access, reusable recipes and optional folder watchers.
  • Quality + release: visual comparisons, archive tools, duplicates, favorite destinations, Finder scalability, accessibility, packaging, and documentation.

Definition of done for a linked issue

  • Isolated scope, regression tests and precise failure reporting.
  • Original-file hashes unchanged for read/copy/transform operations; correct collision-safe output publishing.
  • Swift 6 build and existing compression/IPС test suite pass.
  • Physical Finder verification when feasible; otherwise an explicit manual GUI checklist.
  • No unrelated modifications; commit verified work locally and link implementation PR/commit when published.

Linked implementation issues

Release gate and active toolkit

Phase 3 — Reliable background work

Power-user enhancements

Phase 4 — Automation

Performance, native polish, and release

Suggested dependency order

#3 → #2 audit → #13 → #4 → #5 → #14 → #15 for a robust daily driver. The P2/P3 enhancements are optional; #6–#10 can be selected based on actual needs. Then #11 and finally #12.

Status caution: All checkboxes start unchecked. Verify the current local implementation and any ongoing agent work before marking a feature done or creating additional duplicate issues.

Activity

  1. raiseCatError commented on Oct 16, 2026

    @raiseCatError
    OwnerAuthor

    Pre-release code hygiene audit merged in PR #20 (commit 1174c25). Reviewed IPC, job manager/Undo, JPEG/PNG/PDF/image/ZIP, tool process supervision, Finder dispatch, scratch mounts and build scripts. Fixed concrete data/cancellation issues including silent 16-file truncation, dead JPEG candidate files, wrong ZIP extensions, unsafe process waits, collisions during image extraction, silent animated frame loss and late queued-job cancellations. Final macOS CI green: https://github.com/raiseCatError/Tuck/actions/runs/38960663919. UI unchanged. Engineering hygiene pass completed; full physical Finder QA, optional codec integration and roadmap enhancements remain outstanding. No release/tag.

  2. raiseCatError commented on Oct 16, 2026

    @raiseCatError
    OwnerAuthor

    2026-10-17 integration checkpoint

    The following feature integrations have been reviewed, Mac-CI-verified and merged into main: #24 (comparison, duplicate finder, ZIP inspector, destinations), #25 (PDF ordering, full rename controls, consented custom actions), #28 (saved typed image recipes), #29 (opt-in watched folders), #30 (ZIP extraction selector safety), #31 (VoiceOver labels), and #32 (updated README, Finder QA and release gate). Feature implementation is substantially covered.

    Remaining in code review: PR #33 caches comparison thumbnails, adds private-path-safe Finder latency telemetry and verifies IPC selection-size boundaries (1, 16, 17, 100, 256, 257, 1,000 and Unicode). Do not treat it as merged or green until exact-head Mac CI passes.

    Outstanding quality/release gates (not code-complete claims): real Finder context menus, custom Shortcuts permissions, external-volume/race failures, VoiceOver navigation and Mac-specific acceptance checks (#3/#14); measurements of real Finder menu latency and memory on the target machine (#13); Developer ID/notarization/fresh-Mac validation for public release (#15). Restrictions remain explicit (256-path/64 KB signed IPC, conservative ZIP selector/size policy, recipes currently image-focused, watchers only while Tuck.app runs). Avoid closing issues solely on the basis of compilation.

    See docs/finder-qa.md and docs/release-readiness.md. No tag or release created.

  3. raiseCatError commented on Oct 16, 2026

    @raiseCatError
    OwnerAuthor

    Latest integrated pre-QA head (2026-10-17): main is now 5a7f56db677b30249f3f0992dfd665d51530e011. PR #33 squash-merged after exact-head macOS CI passed all thirteen listed Swift test suites, including watched folder tests, IPC boundaries, ZIP inspection, safe Undo, duplicate finder, file transfer and custom actions; the production Tuck app + Finder extension built/signed successfully. Zero open PRs. README and physical QA/release checklists updated in PR #32. This is the integrated code candidate for the user's later physical Finder evaluation, not a notarized public release. No tag/release created.

  4. raiseCatError commented on Oct 16, 2026

    @raiseCatError
    OwnerAuthor

    Consolidated integration handoff: main is now 7f0e70668d4c7290366170f7e38739f89b3aaa4e after reviewed, exact-head-CI-green PR #34. Feature work for comparisons, ZIP browsing/selective extraction, duplicates, saved copy/move destinations, PDF reorder/advanced rename, custom actions, image recipes, watched folders and accessibility controls is integrated. ZIP extraction now validates local/central header agreement and a private bounded regular-file archive snapshot before invoking unzip, with traversal and selector safety regressions. CI: all 13 test suites + macOS ad-hoc signed app/extension build passed. No open PRs. Open issues are not automatically accepted/closed: physical Finder QA (#3), IPC/performance/quality (13–14) and distribution (#15) still require their own sign-offs. No public release or tag yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions