Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ee15660
Preserve review history across rebases (#275)
wesm Feb 17, 2026
ef80d77
Add SHA validation and update review guidelines for remap
wesm Feb 17, 2026
81f30b5
Validate repo_path in handleRemap before git resolution
wesm Feb 17, 2026
09756f6
Fix uninstall-hook skipping post-rewrite cleanup, update guidelines
wesm Feb 17, 2026
2f21e6f
address review findings
wesm Feb 17, 2026
9aad02e
Fix lint issues after rebase onto main
wesm Feb 17, 2026
b4b7bcc
Fix silent remap failures and color-tainted patch-id generation
wesm Feb 17, 2026
9435217
Distinguish DB errors from not-found in handleRemap, add 404 test
wesm Feb 17, 2026
5a01467
Limit remap input size and fix legacy hook removal
wesm Feb 18, 2026
85ef742
Hide remap command from help output
wesm Feb 18, 2026
6235bc4
Silence pre-commit hook on success
wesm Feb 18, 2026
bec9b62
Add test for remap MaxBytesReader (413) path
wesm Feb 18, 2026
5eb57a0
Refuse to append shell snippets to non-shell hooks
wesm Feb 18, 2026
feb6438
Recognize zsh, ksh, dash shebangs in hook shell detection
wesm Feb 18, 2026
7ccb550
Fix isShellHook doc comment, add shebang variant tests
wesm Feb 18, 2026
4affddf
Close pipe on patchID.Start failure to prevent hang
wesm Feb 18, 2026
c1d9d12
Fail on re-read error during hook upgrade, update guidelines
wesm Feb 18, 2026
0fc4cbb
Fix Windows CI: escape repo path in oversized body test
wesm Feb 18, 2026
55ba17c
Test hookReadFile error path in installOrUpgradeHook
wesm Feb 18, 2026
ee18635
Abort post-rewrite hook upgrade on re-read failure
wesm Feb 18, 2026
c5372d3
Refuse to upgrade non-shell hooks that mention roborev
wesm Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ if ! command -v golangci-lint >/dev/null 2>&1; then
exit 1
fi

golangci-lint run ./...
output=$(golangci-lint run ./... 2>&1) || { echo "$output" >&2; exit 1; }
12 changes: 12 additions & 0 deletions .roborev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,23 @@ security findings:
embedded in prompts (all locally generated; a compromised local agent
already has full shell access)
- "Secret exposure" from hook stderr logged or forwarded to the model
- "Untrusted remap data" or "history tampering" from the remap endpoint (the
client is the user's own post-rewrite hook, data comes from the user's own
git repo, and the daemon is localhost-only)
- .githooks/ tracked as a supply-chain risk (source templates only; installed
hooks are frozen copies in .git/hooks/, unaffected by branch switches)
- "Argument injection" on internal helpers (e.g., git.GetPatchID,
git.GetCommitInfo) that receive SHAs already validated or resolved at the
call site — validation belongs at trust boundaries, not every internal call
- Race conditions in metadata handoff between CLI and daemon (correctness
concern, not exploitable by external attacker)

- "Markerless" hook blocks or interpreter mismatch — hook install/upgrade uses
marker-based detection, every generated hook includes a marker comment, and
append logic refuses to add shell snippets to non-shell hooks
- Symlink-following in hook read/write under .git/hooks/ (controlled by the
local user; a compromised local filesystem is out of scope)

## Config loading and filesystem fallback

Config loading (loadGuidelines, loadCIRepoConfig) reads .roborev.toml from
Expand Down
Loading
Loading