Skip to main content
v0.5.0-rc.2 adds the trellis uninstall command (#221) and patches Windows compatibility (#218) and Copilot custom-agent frontmatter (PR #210). No new migrations.

Enhancements

trellis uninstall command (#221)

Removes all files generated by trellis along with the .trellis/ directory. The deletion list is sourced from .trellis/.template-hashes.json; files not listed in the manifest are not touched.
Pre-checks: Output is split into two columns:
  • Will be deleted — opaque files (.py / .md / .ts) plus structured-config files that scrub down to nothing, plus the .trellis/ directory itself.
  • Will be modified — structured-config files where trellis-owned entries are stripped but user-added fields are preserved.
Four scrubbers cover 11 structured config files: Command matching rule: only the last whitespace token of a command string (the script path) is used for comparison. Substring occurrences elsewhere (e.g. inside an echo) do not match. Execution order: scrubber → unlinkcleanupEmptyDirs (prunes emptied subdirectories) → managed-root sweep (prunes empty .claude/ / .cursor/ / etc. top-level dirs) → rm -rf .trellis/. Directories that still contain user files are preserved. Manifest-listed paths are removed unconditionally; no hash check is performed. User-modified trellis files are deleted as well. 23 new tests (15 scrubber unit + 8 integration); 830 tests pass overall.

Bug Fixes

Windows python3python at write time (#218, PR #220)

Windows has no python3 executable. replacePythonCommandLiterals() runs at init/update write time on process.platform === "win32":
  • Write-time only — template source files keep python3; replacement happens at file generation time.
  • Shebang preserved — lines beginning with #! are not replaced.
  • Idempotentpython does not contain python3; running multiple times produces the same result.
  • Coverageconfigurators/{claude,codex,copilot,opencode,pi}.ts, configurators/shared.ts (writeSkills / writeAgents / writeSharedHooks / resolvePlaceholders / buildPullBasedPrelude), configurators/workflow.ts, templates/extract.ts, configurators/index.ts (collectPlatformTemplates), commands/update.ts (collectTemplateFiles). init and update produce byte-for-byte identical output on Windows.
9 new platform-mocked unit tests in test/configurators/shared.test.ts cover win32/linux/darwin behavior, shebang preservation, multiline content, idempotency, and the documented python3x substring boundary.

Copilot custom agent tools frontmatter (PR #210)

injectPullBasedPreludeMarkdown() now uses a regex frontmatter splitter (splitMarkdownFrontmatter) instead of line-based scanning, handling CRLF endings cleanly. mapLegacyToolToCopilot() translates Claude-style tool tokens (Read, Write, Edit, Glob, …) into Copilot’s lowercase shape (read, edit, …) so custom agents authored against the Claude convention render correctly under Copilot. Regression coverage added in test/regression.test.ts.

Upgrade

Projects on 0.5 (beta or earlier rc) run trellis update. Projects upgrading from 0.4.x run trellis update --migrate because the 0.5 migration chain begins at 0.5.0-beta.0. rc.2 adds no new migration entries.