Skip to content

Project purge: group rebuildable artifacts by owning project with activity-age and protections #35

Closed

Description

@sarthakagrawal927

Released acceptance - 5 October 2026

Released in 0.1.4 build113, tag v0.1.4-113, exact source 94fe203bd663f9d058e72ad3f9ab2c5af9130483. Implementation PR55, label refinement PR57, protected signed release, public download.

28 typed project markers, owning-root grouping and newest workspace metadata are shipped. No preselection; recent/incomplete/unverifiable Git/keypair/nested/tracked-artifact cases fail closed. Explicit recovery evidence is required, with fresh final Git/metadata revalidation. Native controlled-project review and recovery Cancel were inspected.

Validation: full CI256 Swift tests, optimized build, Python packaging checks and shared candidate pass. Protected exact-tag candidate, signing/notarization, public feed/download bytes and installed Sparkle update are verified separately in the release receipt. Native evidence is retained under .fleet-local/storage-accounting/, with three-width full-shell fixtures explicitly synthetic and live installed/isolated captures explicitly identified. Full VoiceOver, enlarged text, exhaustive OS/hardware coverage and live App Health counts are not claimed.

Required acceptance is complete. Earlier prepared-source and control-pipe limitations below are historical snapshots, superseded by this release evidence where stated.


Problem

DeveloperInsights finds reclaimable artifacts (node_modules, buildOutputs, pythonEnvironments…) as a flat list. It does not group them by owning project, does not compute whole-workspace last-activity, and does not stage a whole-project reclaimable set. OSS reference: Mole mo purge protections + npkill last_mod + kondo project signatures.

Proposal

A Projects view that treats the project as the cleanup unit (PRODUCT.md: "the strongest cleanup unit is the whole abandoned footprint"):

  • Group DeveloperInsights findings under their owning project root
  • Whole-workspace last-activity: newest mtime anywhere in the checkout (npkill last_mod), not the artifact's own timestamp
  • Age buckets + sortable reclaimable size per project
  • Pre-select nothing with activity < 7 days or unverifiable state
  • Protections (tested module): skip dirs containing deployment keypairs, nested git repos (purge artifacts, never the worktree), git-tracked files inside artifact dirs
  • Project-type signature coverage beyond current set (kondo: 20+ types — gradle, maven, pub, zig, unity, unreal, terraform…)
  • Everything still routes through review → preflight → Trash; nothing auto-selected

Tasks

  • Project root detection + grouping model in DiskCore
  • Workspace last-activity computation (bounded walk or scan-tree reuse)
  • Protection rules module with fixtures: keypairs, nested repos, git-tracked artifacts
  • Projects workspace view: group by root, age, reclaimable size, batch staging
  • Expand project-type signatures
  • Tests + native screenshot
  • DESIGN.md + PROJECT_STATUS.md updates

Prepared source and remaining acceptance — 2 October 2026

Prepared isolated source (uncommitted/unpublished) at base 44dbb36a596d102499ca8aafadc507340c10a270: 28 typed project signatures; workspace activity and protected artifact grouping, explicit recovery-plan acknowledgement, batch staging and fresh final Git/metadata revalidation.

Final combined feature/protection SwiftPM checks passed with no failures. Native SwiftUI/AppKit component fixtures at 880/1200/1440 were independently inspected; scoped P1 visual findings are resolved. Full native acceptance remains partial: the native control pipe failed, whole-shell captures were unusable GPU artifacts, and real-window interaction/VoiceOver/hardware behavior was not verified. Combined tests/native-acceptance checklist items remain open. No real home inventory, provider call, cleanup/Trash, commit, push or release was performed.

DESIGN.md and PROJECT_STATUS.md have prepared owner-local updates; both are ignored and have not been silently force-added. Source implementation checkmarks below mean prepared local code, not shipped or full native acceptance.

Activity

  1. sarthakagrawal927 commented on Oct 2, 2026

    @sarthakagrawal927
    MemberAuthor

    Prepared isolated source (uncommitted/unpublished) at base 44dbb36a596d102499ca8aafadc507340c10a270: 28 typed project signatures; workspace activity and protected artifact grouping, explicit recovery-plan acknowledgement, batch staging and fresh final Git/metadata revalidation.

    Final combined feature/protection SwiftPM checks passed with no failures. Native SwiftUI/AppKit component fixtures at 880/1200/1440 were independently inspected; scoped P1 visual findings are resolved. Full native acceptance remains partial: the native control pipe failed, whole-shell captures were unusable GPU artifacts, and real-window interaction/VoiceOver/hardware behavior was not verified. Combined tests/native-acceptance checklist items remain open. No real home inventory, provider call, cleanup/Trash, commit, push or release was performed.

    DESIGN.md and PROJECT_STATUS.md have prepared owner-local updates; both are ignored and have not been silently force-added. Source implementation checkmarks below mean prepared local code, not shipped or full native acceptance.

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions