-
Notifications
You must be signed in to change notification settings - Fork 1
Comparing changes
Open a pull request
base repository: peg/snare
base: v0.1.1
head repository: peg/snare
compare: v0.1.3
- 19 commits
- 21 files changed
- 4 contributors
Commits on Mar 16, 2026
-
ci: add go vet + staticcheck, branch protection, dependabot (#3)
* ci: add go vet + staticcheck, branch protection, dependabot * fix: remove unused listTokens and alertPayload (staticcheck U1000) --------- Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 19f6dc2 - Browse repository at this point
Copy the full SHA 19f6dc2View commit details -
Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0c11f14 - Browse repository at this point
Copy the full SHA 0c11f14View commit details
Commits on Mar 17, 2026
-
fix: omit SessionToken from awsproc credential_process JSON output (#7)
* fix: omit SessionToken from awsproc credential_process JSON output * ci: retrigger --------- Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 337463b - Browse repository at this point
Copy the full SHA 337463bView commit details -
fix: revoke tokens on disarm/teardown even when no local webhook conf…
…igured (#8) Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 78e00b4 - Browse repository at this point
Copy the full SHA 78e00b4View commit details -
chore(deps): bump actions/setup-go from 5 to 6 (#5)
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 5 to 6. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v5...v6) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 9964ce4 - Browse repository at this point
Copy the full SHA 9964ce4View commit details -
chore(deps): bump actions/checkout from 4 to 6 (#4)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for d311c44 - Browse repository at this point
Copy the full SHA d311c44View commit details -
feat: add huggingface, docker, and azure canary types (#11)
* feat: implement snare scan command - Add `snare scan` command to check canary integrity on disk - Reports OK (✓), MODIFIED (⚠), MISSING (✗) per active canary - Detects ORPHANED (?) canaries: snare.sh/c/ URLs in known paths with no manifest record - Exits non-zero if any issues found (modified, missing, or orphaned) - Output style matches `snare status` — clean, aligned, emoji indicators - Add `snare scan` to usage string and command dispatch in Run() - Export ScanManifest, ScanForOrphans, ScanResult, OrphanResult for testing - Add scan_test.go with 14 tests covering all status categories + CLI integration - bait.go already referenced `snare scan` correctly in error message * feat: add huggingface, docker, azure canary types --------- Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7223204 - Browse repository at this point
Copy the full SHA 7223204View commit details -
feat: implement snare scan command (#10)
- Add `snare scan` command to check canary integrity on disk - Reports OK (✓), MODIFIED (⚠), MISSING (✗) per active canary - Detects ORPHANED (?) canaries: snare.sh/c/ URLs in known paths with no manifest record - Exits non-zero if any issues found (modified, missing, or orphaned) - Output style matches `snare status` — clean, aligned, emoji indicators - Add `snare scan` to usage string and command dispatch in Run() - Export ScanManifest, ScanForOrphans, ScanResult, OrphanResult for testing - Add scan_test.go with 14 tests covering all status categories + CLI integration - bait.go already referenced `snare scan` correctly in error message Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a00ca7f - Browse repository at this point
Copy the full SHA a00ca7fView commit details -
docs: add Homebrew install instructions (#9)
Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7244b72 - Browse repository at this point
Copy the full SHA 7244b72View commit details -
feat: make precision mode the default for snare arm (#12)
Previously, snare arm planted ALL canaries by default and --precision opted into the smaller high-signal set (awsproc, ssh, k8s). This flips the default: precision mode (awsproc, ssh, k8s only) is now the default behavior of snare arm. An --all flag opts into all canaries including dotenv-based ones. Rationale: Snare is built for developers running AI agents. Dotenv canaries fire whenever any agent loads ~/.env, causing false positives for the primary user base. Precision canaries (awsproc, ssh, k8s) fire only on active credential use — zero false positives from your own tooling. Changes: - snare arm with no flags → precision mode (awsproc, ssh, k8s only) - snare arm --all → all canaries - Remove --precision flag (now the default; --all is the opt-in) - Update usage string, help text, and README - Update tests: replace TestPrecisionMode/TestPrecisionModeOutput with TestDefaultPrecisionMode, TestDefaultArmOutput, TestAllFlagOutput Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7d82bff - Browse repository at this point
Copy the full SHA 7d82bffView commit details -
chore: bump CHANGELOG for v0.2.0 (#13)
* chore: bump CHANGELOG for v0.2.0 * fix: giveaway-free token generation + rename v0.2.0 to v0.1.2 --------- Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 26f5dec - Browse repository at this point
Copy the full SHA 26f5decView commit details
Commits on Mar 18, 2026
-
feat: v0.1.2 — three-tier canaries, --select mode, git/terraform type…
…s, events --summary (#16) * chore: bump CHANGELOG for v0.2.0 * fix: giveaway-free token generation + rename v0.2.0 to v0.1.2 * fix: azure in precision mode, npm reliability correction, precision mode text - Add TypeAzure to precision defaults — HIGH reliability, fires only on active Azure SDK token refresh, no false positives from own tooling - npm: correct reliability from Medium to High everywhere (README, cli text) npm fires on any scoped registry install — same class as k8s/ssh/awsproc - Update precision mode display text to include azure - Update README precision mode description * fix: remove azure from precision mode service-principal-credentials.json is not in the standard Azure SDK credential chain — it requires an agent to explicitly hunt and parse the file, making it medium reliability. Back to 3 precision canaries: awsproc, ssh, k8s. * feat: add --select mode to snare arm Interactive TUI checklist for picking canaries. Precision types pre-checked by default. Arrow keys / j/k to navigate, Space to toggle, Enter to confirm, q/Ctrl-C to abort. Shortcuts: a select all n select none p reset to precision defaults Requires an interactive terminal; fails clearly if stdin is not a TTY. No new dependencies — raw mode via syscall.TCGETS/TCSETS. * feat(canaries): add git credential.helper canary (TypeGit) * feat(canaries): enhance terraform network_mirror canary with fake namespace and safe mode * fix(canaries): demote TypeGit from precision to high credential.helper only fires after HTTP 401 from the fake host. The fake hostname has no DNS record, so git errors at DNS resolution before ever issuing the auth challenge — meaning the helper never runs for the most common agent behavior (clone/pull). High reliability: still valuable when an agent explicitly runs 'git credential fill' with discovered URLs (active credential hunting). Not precision: doesn't fire automatically via SDK/OS auth flow. * refactor: introduce three reliability tiers (precision/high/medium) precision: awsproc, ssh, k8s — fire via SDK/OS hooks, no DNS needed high: aws, gcp, npm, git, pypi — fire on active credential use medium: azure, openai, anthropic, mcp, github, stripe, hf, docker, terraform, generic Moves azure and git out of high, updates allSelectEntries order and tier labels to match. pypi gets side-effect warning in --select display. * feat(cli): add snare events --summary for ASN/UA distribution view * fix(readme): correct precision mode — remove azure, update false positive claim, add --select * chore: v0.1.2 release prep - CHANGELOG: rewrite 0.1.2 entry with actual PR contents - bait.go: fix TypeGit comment — HIGH not PRECISION, explain DNS limitation * docs(readme): comprehensive v0.1.2 refresh - Canary table: add git and terraform, fix azure to Medium, sort by tier - Add three-tier system description (Precision/High/Medium) replacing old two-tier - Commands: add snare arm --select, snare events --summary, snare scan - Counts: 13 types → 18 types, 10+ → 18 throughout - awsproc: replace 'no other canary tool' with specific CloudTrail comparison - Comparison table: update type counts * docs(arch): update precision mode reference (--precision removed, now default) --------- Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 71f1a62 - Browse repository at this point
Copy the full SHA 71f1a62View commit details -
fix: split terminal raw mode into platform-specific files (#17)
syscall.TCGETS/TCSETS are Linux-only — darwin build failed in CI. Split into terminal_linux.go, terminal_darwin.go, terminal_other.go. darwin uses TIOCGETA/TIOCSETA ioctl constants instead. Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f7effd2 - Browse repository at this point
Copy the full SHA f7effd2View commit details -
fix: do not fire webhook for unregistered tokens (#23) (#24)
Co-authored-by: clap [bot] <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6b85f57 - Browse repository at this point
Copy the full SHA 6b85f57View commit details -
fix: add 15s timeout to all outbound HTTP clients (#19) (#25)
Co-authored-by: clap [bot] <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1dc8f53 - Browse repository at this point
Copy the full SHA 1dc8f53View commit details -
fix: write .bak files before modifying existing config files (#18) (#26)
Co-authored-by: clap [bot] <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 2a8aea3 - Browse repository at this point
Copy the full SHA 2a8aea3View commit details -
fix: replace dashboard ?token= query param with HttpOnly session cook…
…ie (#22) (#27) * fix: replace dashboard ?token= query param with HttpOnly session cookie (#22) Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix: make session cookie Secure flag conditional on TLSDomain Secure=true breaks plain HTTP self-hosted instances (localhost, internal servers without TLS). Only set Secure when TLSDomain is configured. --------- Co-authored-by: clap [bot] <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 615dbeb - Browse repository at this point
Copy the full SHA 615dbebView commit details -
ci: sign release checksums with Sigstore/cosign (#21) (#28)
* ci: sign release checksums with Sigstore/cosign (#21) Co-Authored-By: Claude Opus 4.6 <[email protected]> * docs: add release verification instructions (#21) Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: clap [bot] <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 53c7e13 - Browse repository at this point
Copy the full SHA 53c7e13View commit details -
Co-authored-by: clap [bot] <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3e0282d - Browse repository at this point
Copy the full SHA 3e0282dView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.1.1...v0.1.3