Releases: Attemainio/dotnet-toolkit
Release list
v1.0.1
v1.0.1
Guard hooks: advisory reads by default
Read guards (guard-cs-read, guard-cs-bash-read) no longer hard-deny a raw Read/cat/grep on a compiled .cs file — they allow it and attach an advisory note pointing to the dotnet-read skill instead. A performance run showed the MCP tools aren't reliably cheaper or more correct on every kind of question (small files, whole-repo negatives, raw text search), so forcing the expensive route every time was the wrong default. Write guards (guard-cs-edit) are unchanged and still hard-deny — only validate_patch records the development log, so an unblocked edit is unrecoverable in a way an unblocked read isn't.
- New guard-cs-bash-write hook closes a gap the edit guard couldn't see: shell-based writes to a .cs file (echo >>, sed -i, cp/mv onto an existing file) now hard-deny the same as Edit/Write.
- set_hook_guards gains a block mode, reproducing the old pre-1.0 hard-deny behavior as a forced-enforcement comparison point — useful for benchmarking, not the shipped default.
- Guard suspend/block state is now session-scoped, so two unrelated Claude Code sessions pointed at the same repo no longer share or clobber each other's guard state.
New: guard red-team audit
Added dotnet-guard-audit (skill) and dotnet-guard-redteam (agent) — a self-test that tries known and improvised bypasses (quoting tricks, symlinks, spaced paths, writing through Bash instead of Edit) against the plugin's own guards with enforcement left armed, and reports what got through unguarded.
Coding standards widened
Added a full DTO section to api-design.md (record vs. class, init accessors, polymorphic JSON, explicit mapping), plus gaps found by cross-checking two external .NET skill catalogs: Channel/ValueTask discipline, exception rethrow hygiene, DI captive-dependency checks, regex ReDoS, timing-safe comparison, PBKDF2/AES-GCM floors, sealed records, ArrayPool tracking, and more - spread across concurrency.md, best-practices.md, security.md, styling.md, performance.md, and resource-management.md.
Fixes
- dotnet-review now writes its merged findings to a markdown file in the reviewed repo instead of publishing them as a hosted Artifact.
- Removed the stale devlog/ markdown fossil from before the SQLite-backed log existed.
- Fixed .gitignore scoping so .claude/dotnet-toolkit/'s run output is ignored without also hiding install.json/config.json.
v1.0.0
First release.
- Roslyn-backed C# navigation and compiler-validated edits for Claude Code
- Measured 2.6x less context used than Read/Grep on the same 21 questions
- dist/ ships prebuilt, so installing is just a git clone