Skip to content

Release/v1.1.0 - #16

Merged
smurftyy merged 15 commits into
mainfrom
release/v1.1.0
Jul 9, 2026
Merged

Release/v1.1.0#16
smurftyy merged 15 commits into
mainfrom
release/v1.1.0

Conversation

@smurftyy

@smurftyy smurftyy commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary

Adds compression-before-trash for the deletion pipeline, plus two new commands: analyze and explain.

Closes #9

Compression (#9)

Compresses artifacts into an archive, verifies the archive is valid, then sends the archive to send2trash — not the raw directory. Original is never deleted until the archive is confirmed intact.

  • Default format: gzip (stdlib tarfile, no new required dependency)
  • Optional zstd via devklean[zstd] extra (zstandard package); falls back to gzip with a warning if requested but not installed
  • Opt-in via config/flag, not silent-by-default
  • restore messaging updated to reflect that compressed items need extraction after retrieval from OS trash

This replaces the compression logic merged in #12 on dev. That implementation deleted the original before the trash/compression step was confirmed — a data-loss risk if compression failed partway through. This PR compresses → verifies → trashes, in that order, so the original is untouched on any failure. Old zip/zstd-based code path fully removed, not left alongside the new one.

analyze and explain

New static signature registry for known build/dependency artifacts (node_modules, .next, dist, coverage, venvs, etc.) — each entry carries ecosystem, regeneration command, risk, and a fixed confidence score. No LLM/API calls anywhere in this — every verdict is deterministic and reproducible, which matters for a tool that's recommending deletions.

  • devklean explain <path> — looks up a path against the registry, prints why it's safe to delete and how to regenerate it. Unrecognized paths get no verdict at all, not a guess.
  • devklean analyze — scans candidates (reusing clean's existing detection), reports reclaimable size, and flags simple structural issues (e.g. conflicting lockfiles present in the same project). Staleness is derived from the parent project's source/commit activity, not artifact-directory mtime, since installs touch that and atime is often unreliable.

Unrecognized/ambiguous paths are explicitly out of scope for a verdict in this pass — only known signatures get classified.

Tests

Notes

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@smurftyy
smurftyy merged commit 489b92f into main Jul 9, 2026
34 checks passed
@smurftyy
smurftyy deleted the release/v1.1.0 branch July 9, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feat: Compress artifacts before trash to minimize disk footprint

2 participants