Skip to content

Release v7.103.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:59
1d2716d

Summary

Core .NET engineering skills for people who contribute to the Cratis framework repositories, a stricter secrets guard, and faster, more dependable local verification.

Added

  • Core .NET engineering skills for contributors to the Cratis framework repositories: performance (BenchmarkDotNet microbenchmarking, performance patterns, vectorization, profiling), diagnostics (trace and dump collection), MSBuild (build performance, Directory.Build organization, restores, output clashes, generated files, targets, binlogs), Orleans, test running and coverage, and C# refactoring and AOT compatibility. They are adapted under MIT from dotnet/skills and managedcode/dotnet-skills with per-skill attribution, ship as the new cratis/engineering/dotnet profiles, and are included by cratis/engineering/csharp. (#867)
  • yarn workspace @cratis/ai-verification run tool:screenplay installs the pinned Screenplay tool into a Git-ignored .cache/screenplay-tool/ and prints its path. verify uses it when CRATIS_SCREENPLAY_TOOL is unset, so a newer global screenplay no longer breaks local verification. (#869)
  • Fast test subsets test:hooks, test:adapters, test:corpus and test:affected; each prints its ten slowest specs. test:affected maps committed, staged, unstaged and untracked changes to subsets and runs the full suite whenever it cannot prove a narrower one. The full test is unchanged and remains the gate. (#870)
  • A contract spec runs cratis-check-pr over vendored copies of the pull-request policy callers that Cratis/Workflows publishes; an opt-in live comparison (CRATIS_CONTRACT_LIVE=1) detects drift. (#855)

Changed

  • The secrets guard now also blocks env-style dumps behind command -p, attached and clustered short options such as grep -ePATTERN .env and grep -nT x .env, whole-object jsonpath='{.}'/go-template='{{.}}' projections, redirects to /dev/stdout, /dev/stderr or file descriptors, redirects placed before a subcommand such as kubectl get 2>&1 secrets, and environment dumps redirected to a file. Piped shells and recursive searches with no named file stay documented limits in secrets.md. (#871)
  • The write guard spawns far fewer subprocesses on every tool call (about half the time per call), and the slow guard specs run their cases concurrently. (#870)
  • yarn test holds the full verification suite to a wall-time budget (1200 s by default, CRATIS_TEST_BUDGET_SECONDS to override); over budget it warns locally and fails in CI. (#870)
  • A Screenplay version mismatch now names the command that fixes it, and the publish workflow installs the tool through the same script. (#869)
  • cratis-check-pr run directly in a Cratis repository with no policy caller now exits non-zero with remediation text instead of checking against the reviewed pin. (#855)
  • Pull-request guidance now says a release that changes a hook must tell consumers to run cratis ai update. (#855)
  • Hook scripts changed in this release: run cratis ai update to receive them. (#870) (#871) (#855)