magrathean-uk/clean-development
v0.6.1MIT
Storage routing (4TB external or internal fallback), the 5 GB rule, session-end cleanup and the no-dot-folder policy for G's Mac. Hooks are installed in user settings, not by this plugin.
Changelog
0.6.1 (30 Oct 2026)
First published release of the 0.6 machine-scoped rewrite, replacing public v0.5.0.
- Make standalone source validation independent of adjacent monorepo tools; retain their regression coverage when present. Add macOS CI for minimum Node 20.12.0 and Node 24/26; retain required Linux Node checks and CodeQL.
- Protect active fallback builds in every selector; reopen deferred-ended owners with versioned phase/generation metadata, fence stale snapshots/tagged events and canonicalise checkout identity. Refuse collisions/invalid ownership rather than replace another owner.
- Unify supported lifecycle cleanup/lease locking; remove age-based lock takeover, add explicit dead-owner recovery and fail-closed configuration/path admission. Reject redirected layout/trash directories; retain sources on rename failure.
- Parse storage policy as data in fork-free POSIX shell and Node; align path/numeric validation and preserve approved lab/model overrides.
- Add renewable explicit path leases and verified no-clobber single-file publication with durable receipts and retained source/recovery copies. These are not process supervision or an OS quota.
- Bound cooperative hook/Git/measurement work, retain deferred cleanup, and distinguish hook completion from queued/completed deletion. Batch deletion jobs per anchor to avoid per-entry Node process storms.
- Add immutable runtime publication, digest/permission receipts, policy-preserving configuration installation, strict flags, truthful preview and conflict-aware rollback/recovery. Retain previous releases and recovery data.
- Revalidate activation target topology, bytes and permissions at backup/activation; journal write intent only after conflict checks so rollback cannot claim pre-existing user edits. Make offline profile fixtures independent of TMPDIR aliases.
- Report bounded Git/rename deferrals with their repo paths and leave incomplete repository sweeps due instead of postponing them for a week. Keep the 200 ms Git bound; test both successful cleanup and explicit, fail-closed timeout deferral.
- Pin project development to Node 26.12.1 via
.node-version; retain the tested minimum-runtime and project-schema compatibility contracts. No third-party npm/model dependency is introduced. - Preserve Codex disablement/unknown state in offline and host trust refresh plus config rebuild; refuse positional preference changes without explicit review. Hook merges retain recovery bytes and unrelated handlers.
- Fix wider-tooling reprovision rollback so never-moved originals survive; retain failed replacement snapshots, journal outcomes and do not trim failed reprovision recovery data. Claude-tooling preview now performs no deployment.
- Expand diagnostics/support claims and regression coverage. OpenCode remains environment-only; its source client alias filters inherited session identity without claiming a reused server is repaired.
0.6.0 (20 Oct 2026)
Rewrite for one machine (G's Mac), replacing the 0.2-0.5 multi-host package (last public state: tag v0.5.0).
- Storage policy moves to
~/dev/machine/storage.conf; env.zsh rewritten (fork-free session pin, stamp-based precedence, no exits, TMPDIR per session only). - Mode detected by volume name plus a real write probe at session start and pinned per session; internal fallback is normal.
- New hooks: SessionStart (pin, context, time-boxed reap), Stop (async, throttled housekeeping), SessionEnd (immediate session cleanup) for Claude Code and Codex; same hooks for claude-1..5.
- Automatic cleanup per G's rules (Q30), 30 GB LRU cap on dependency caches, 14-day external build prune, repo build/dependency dirs via
.clean-development.jsonv2 (buildDirs,depDirs, git-ignored only). - No-dot-folder report for
~and~/dev(allowlist includes.aws,.insightface,.opencode);doctorandstatusalso list unmanaged top-level entries of each cache root. - Every hook call appends one JSON line (
ts,harness,event,session_id,mode) to~/dev/machine/state/clean-development/events.jsonl(rotated at 512 KB). - Xcode DerivedData is never wiped by the last-session-out cleanup; it ages out after 14 days.
DEV_STORAGE_VOLUME_TEST=presentis accepted as an alias ofmounted.- Codex hook trust hashes computed (
codex-trust --apply), so changed hooks run without a review click. - Removed: command shims and
clean-development agent|session|setup|pruneconsent flows (run [--session X] -- CMDstays as a no-policy shim that just execs CMD, for stale per-repo docs), per-host integrations (Cursor, Devin, Grok, Kimi, Hermes, Pi, OpenCode, Gemini), npm publishing.pnpm_config_store_dirreplacesnpm_config_store_dir(ignored by pnpm 12).