Release 2.1.286 (2026-11-06)¶
Chores¶
- uv lock --upgrade
Documentation¶
- note the freeze gate in the vrg-commit entry (#3934)
-
re-point the paad-policy §10 link to its renamed anchor (#3936) paad-policy §10 is now titled "paad from the fork", so its anchor is #10-paad-from-the-fork.
-
human replies protocol guide and the build/tmp convention (#3948)
Features¶
- shared library for authenticated human replies (#3937)
- vrg-ruling request, read and respond (#3938)
- relay drafted replies through a reserved ref (#3945)
- feat(rulings): relay drafted replies through a reserved ref
Add lib/rulings/draft_ref.py and vrg-ruling draft: the agent builds the human's reply from a reply items file, screens it as plain text, refuses unless every push URL of origin is the issue's repo and the request still awaits a reply, then pushes a single-file commit built with git plumbing to refs/vergil/ruling-draft/
Ref vergil-project/vergil-tooling#3925
- feat(rulings): add --json to vrg-ruling read
On a valid reply, read --json prints {request, reply, body} with integer comment IDs; every other outcome leaves stdout empty. Output without --json is unchanged. Scope addition requested by epic vergil-project/.github#881.
- fix(rulings): suppress the semgrep SHA-1 rule on the git blob ID check
A git blob ID is SHA-1 by definition, so fetch_draft must hash with SHA-1 to check a blob's content against its ID. The check is integrity, not security.
- fix(rulings): put the semgrep suppression directly above the SHA-1 call
Semgrep honours nosemgrep only on the flagged line or the line just before it; the reason line now comes first.
- vrg-ruling-reply: post the human's reply as the human (#3946)