Documented changes
96 typed entries
Verified contributors
Credits being verified. Attribution coverage is in progress.
Attribution coverage
attribution in progress; history inventory partial.
Install
Scope
Guard v3.50.0a1 is a preview release published 2026-10-17. Upstream documents: Guard 3.50.0a1 is an opt-in prerelease cut from 7962220. Stable installations remain on the stable channel. 16 commits • 16 merged pull requests • 1 contributor since Guard 3.49.0. Its comparison base is alpha/v3.47.0a8. It includes 70 verified contribution deliveries with public evidence links. Attribution for this release is being verified.
Changes
Added
1- guard: Decide a policy document in the runtime instead of beside it (#5042) Evidence for this change
Improved
3- guard: Let the resident route Composio meta-tools (#5034) Evidence for this change
- guard: Let the resident own every canonical digest (#5033) Evidence for this change
- guard: Describe MCP actions in the native runtime (#5030) Evidence for this change
Fixed
21- guard: Read a word spelled with ANSI-C escapes (#5041) Evidence for this change
- guard: Read a braced parameter expansion as the value it is (#5036) Evidence for this change
- command: Close three heredoc scanner evasions in the shell structure scan (#3806) Evidence for this change
- guard: Read Windows machine policy from the registry natively (#5039) Evidence for this change
- Windows builds of the native runtime now read
HKLM\Software\Policies\HOL\Guard(PolicyJson) from the 64-bit registry view. Before this change, every Windows machine was treated as having managed policy the runtime… Evidence for this change - The behavior now matches the Python loader: Evidence for this change
- a missing key or value means no managed policy; Evidence for this change
- guard: Keep Windows launch approvals reusable with a long PATH (#5040) Evidence for this change
- Windows launch proofs bind the DLLs in each user-writable
PATHdirectory. Those DLLs used to share a single 16-file budget with the application and working directories. A developerPATHwith a Perl, Ruby or Java… Evidence for this change PATHDLLs now get their own budget of 128 files and 64 MiB. The application and working directories keep their 16-file and 64 MiB caps. Evidence for this change- Only DLLs the loader can reach count toward that budget: Evidence for this change
- guard: Let the native runtime name the action a tool call enforces (#5027) Evidence for this change
- guard: Answer a queued hint from the caller's shell, not the daemon's (#5032) Evidence for this change
- guard: Tell the pre-tool lane where the command runs (#5023) Evidence for this change
- guard: Read a project's own dotfile as the document it is (#5025) Evidence for this change
- guard: Read a piped rg as the filter it is, not a walk of the tree (#5028) Evidence for this change
- guard: Run read-only workspace scripts in the Windows AppContainer (#5004) Evidence for this change
- Hook.
windows_script_reasonadmits one exactpython .pyornode .{js,mjs,cjs}invocation. It applies only when the script is a file inside the working directory andscript_content::read_only… Evidence for this change - Argv.
contained_argvaccepts these script shapes on Windows so the sink can plan them. Evidence for this change - Runtime.
contained-readonly-windowsgains anode-eval-readonly-v1profile. It resolves node.exe from PATH, dropsPYTHON*variables, and passes--preserve-symlinks --preserve-symlinks-main, because the LPAC… Evidence for this change - guard: Answer a file test for a name and a path a read screen holds back (#5026) Evidence for this change
Other changes
71- Documented change: Guard 3.50.0a1 is an opt-in prerelease cut from
7962220. Stable installations remain on the stable channel. 16 commits • 16 merged pull requests • 1 contributor since Guard 3.49.0. Evidence for this change - Merged pull request #5006: ci(nightly): give the Windows native job room and skip host-bound vectors there (#5006) Evidence for this change
- Merged pull request #3806: fix(command): close three heredoc scanner evasions in the shell structure scan (#3806) Evidence for this change
- Merged pull request #4996: fix(mcp): drop omarchy-mcp contribution pointing pipx at an unrelated package (#4996) Evidence for this change
- Merged pull request #3018: feat(extension): add command.hashdup extension for HashDup CLI (#3018) Evidence for this change
- Merged pull request #5017: feat(guard): decide relayed package calls in the native runtime (#5017) Evidence for this change
- Direct commit f7b610b2d75f: fix(mcp): drop omarchy-mcp contribution pointing pipx at an unrelated package Evidence for this change
- Merged pull request #5022: feat(guard): add extensions list and mcp list inventory commands (#5022) Evidence for this change
- Merged pull request #5014: test: stop two suites from failing on how the shard was composed (#5014) Evidence for this change
- Direct commit 6c5d3cad7d9e: test: refresh codex-migrate portable fixture against current main inventory Evidence for this change
- Merged pull request #5013: fix(guard): let a name pattern bound what a deeper find prints (#5013) Evidence for this change
- Merged pull request #5039: fix(guard): read Windows machine policy from the registry natively (#5039) Evidence for this change
- Merged pull request #5028: fix(guard): read a piped rg as the filter it is, not a walk of the tree (#5028) Evidence for this change
- Merged pull request #4981: feat(guard): show harness version coverage in the dashboard (#4981) Evidence for this change
- Merged pull request #5009: fix(guard): read a file named in a neighbouring repository without review (#5009) Evidence for this change
- Direct commit 4b9cbb155eb6: maintainer: merge main; normalize non-contribution paths to main; refresh generated artifacts Evidence for this change
- Merged pull request #4983: fix(guard): list a name that is not there beside a glob (#4983) Evidence for this change
- Merged pull request #5034: refactor(guard): let the resident route Composio meta-tools (#5034) Evidence for this change
- Merged pull request #5020: fix(guard): copy a local repository without an approval (#5020) Evidence for this change
- Direct commit a1ba2dba4fcf: Merge origin/main into fix/git-push-once-approval Evidence for this change
- Merged pull request #4993: fix(release): raise x86_64 wheel download budgets so 3.47 can publish (#4993) Evidence for this change
- Merged pull request #5027: fix(guard): let the native runtime name the action a tool call enforces (#5027) Evidence for this change
- Merged pull request #5024: chore(release): 3.49.0 (#5024) Evidence for this change
- Merged pull request #5036: fix(guard): read a braced parameter expansion as the value it is (#5036) Evidence for this change
- Merged pull request #5042: feat(guard): decide a policy document in the runtime instead of beside it (#5042) Evidence for this change
- Merged pull request #5019: fix(guard): keep the output of a toolchain package read under a hidden home directory (#5019) Evidence for this change
- Merged pull request #4994: chore(release): 3.48.0 (#4994) Evidence for this change
- Merged pull request #4992: fix(guard): screen hidden home reads for credentials, not for being hidden (#4992) Evidence for this change
- Merged pull request #4763: chore(release): 3.47.0 (#4763) Evidence for this change
- Merged pull request #5018: test(runtime): make Windows native tests independent of the host (#5018) Evidence for this change
- Merged pull request #5015: fix(guard): let a literal pattern bound an fd search below a dot-directory (#5015) Evidence for this change
- Direct commit 93702a5e165d: maintainer: merge main; normalize non-contribution paths to main Evidence for this change
- Merged pull request #5000: fix(guard): end the extension policy conflict dead-end (#5000) Evidence for this change
- Merged pull request #5008: test(guard): create the lockfile the benign gate's read probe names (#5008) Evidence for this change
- Direct commit fcfab44aa5c0: fix: register kindling extension trust Evidence for this change
- Merged pull request #5005: fix(guard): let a sibling search answer for the files it actually reads (#5005) Evidence for this change
- Merged pull request #5026: fix(guard): answer a file test for a name and a path a read screen holds back (#5026) Evidence for this change
- Merged pull request #5011: fix(guard): search a neighbouring repository with grep, not only with rg (#5011) Evidence for this change
- Merged pull request #5032: fix(guard): answer a queued hint from the caller's shell, not the daemon's (#5032) Evidence for this change
- Merged pull request #4997: test(gauntlet): run structured-tool cases on the lanes that have those tools (#4997) Evidence for this change
- Direct commit a64ce8d3c909: Merge branch 'main' into mcp-ccm-contribution Evidence for this change
- Merged pull request #3650: Add mcp.ccm — CCM code-graph MCP server (external, opt-in) (#3650) Evidence for this change
- Merged pull request #4998: test(gauntlet): record which lane a qualification run actually drove (#4998) Evidence for this change
- Merged pull request #5012: fix(guard): prove a recursive search for what it actually reads (#5012) Evidence for this change
- Merged pull request #4970: fix(guard): keep the Oh My Pi memory write under review and release only its receipt (#4970) Evidence for this change
- Merged pull request #5021: fix(daemon): retry the Windows daemon-state replace while a reader holds the file (#5021) Evidence for this change
- Merged pull request #4995: fix(guard): sandbox script smoke tests that reuse a fresh mktemp directory (#4995) Evidence for this change
- Merged pull request #4320: feat(mcp): add PC-Control MCP server contribution (#4320) Evidence for this change
- Merged pull request #4975: fix(guard): let a one-time approval of a plain git push to a self-hosted origin run its retry (#4975) Evidence for this change
- Merged pull request #5003: fix(guard): list a home dot-directory through the host's own listing tools (#5003) Evidence for this change
- Direct commit 4615bbcb3a7b: Merge remote-tracking branch 'origin/main' into mm-3277 Evidence for this change
- Direct commit 2c60827c9f84: fix(guard): evaluate bun and yarn installs from their --cwd directory Evidence for this change
- Merged pull request #2879: Add Codex Migrate command protection extension (#2879) Evidence for this change
- Direct commit 85609f51ab64: maintainer: merge main; normalize non-contribution paths to main Evidence for this change
- Merged pull request #4956: fix(guard): stop reading bun and yarn option values as packages (#4956) Evidence for this change
- Direct commit 21acb6fd28e0: Merge branch 'main' into add-pc-control-mcp Evidence for this change
- Merged pull request #5040: fix(guard): keep Windows launch approvals reusable with a long PATH (#5040) Evidence for this change
- Merged pull request #4999: fix(guard): bind one-time ssh push approvals on hosts with XQuartz (#4999) Evidence for this change
- Merged pull request #5002: feat(dashboard): search, filter, sort and group custom extension scripts and commands (#5002) Evidence for this change
- Merged pull request #5016: feat(guard): report fleet posture (Guard version, OS, AI-tool protection, inventory, policy ack) to Guard Cloud Evidence for this change
- Merged pull request #5025: fix(guard): read a project's own dotfile as the document it is (#5025) Evidence for this change
- Merged pull request #5001: test(gauntlet): put a toolchain's package and a home workflow in a full task's way (#5001) Evidence for this change
- Merged pull request #5010: test(guard): bind the ambient digest home the hook context holds itself (#5010) Evidence for this change
- Merged pull request #5023: fix(guard): tell the pre-tool lane where the command runs (#5023) Evidence for this change
- Merged pull request #5030: refactor(guard): describe MCP actions in the native runtime (#5030) Evidence for this change
- Merged pull request #5033: refactor(guard): let the resident own every canonical digest (#5033) Evidence for this change
- Merged pull request #5041: fix(guard): read a word spelled with ANSI-C escapes (#5041) Evidence for this change
- Merged pull request #3073: feat: Add DeArmour command extension (#3073) Evidence for this change
- Merged pull request #5004: fix(guard): run read-only workspace scripts in the Windows AppContainer (#5004) Evidence for this change
- Merged pull request #3277: feat(extensions): add kindling command source (#3277) Evidence for this change
- Merged pull request #5007: fix(guard): read a migration named for the table it defines (#5007) Evidence for this change
Upgrade and compatibility
None documented.
Compare with the previous release
Predecessor on the same channel: alpha/v3.47.0a12
Verified contributors
Credits derive from public pull-request authorship, verified commit authorship, or verified co-authorship — never from thanks text or release metadata. Each distinct contributor is listed once; the evidence ledger paginates every published credit record.
Contributors
Evidence ledger70 credits
Source for gitar-bot
Source for jsegeren
Source for juan52878911
Source for kantorcodes
Source for kantorcodes
Source for mahdyarmonfared
Source for mustafakorkunc
Source for senoldogann
Source for VortexJer
Source for Vyeche
Source for Vyeche
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast
Source for zerocodefast