Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: peg/snare
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.1.1
Choose a base ref
...
head repository: peg/snare
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.1.3
Choose a head ref
  • 19 commits
  • 21 files changed
  • 4 contributors

Commits on Mar 16, 2026

  1. 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]>
    peg and clap [bot] authored Mar 16, 2026
    Configuration menu
    Copy the full SHA
    19f6dc2 View commit details
    Browse the repository at this point in the history
  2. docs: readme cleanup (#6)

    Co-authored-by: clap [bot] <[email protected]>
    peg and clap [bot] authored Mar 16, 2026
    Configuration menu
    Copy the full SHA
    0c11f14 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2026

  1. 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]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    337463b View commit details
    Browse the repository at this point in the history
  2. fix: revoke tokens on disarm/teardown even when no local webhook conf…

    …igured (#8)
    
    Co-authored-by: clap [bot] <[email protected]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    78e00b4 View commit details
    Browse the repository at this point in the history
  3. 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>
    dependabot[bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    9964ce4 View commit details
    Browse the repository at this point in the history
  4. 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>
    dependabot[bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    d311c44 View commit details
    Browse the repository at this point in the history
  5. 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]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    7223204 View commit details
    Browse the repository at this point in the history
  6. 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]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    a00ca7f View commit details
    Browse the repository at this point in the history
  7. docs: add Homebrew install instructions (#9)

    Co-authored-by: clap [bot] <[email protected]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    7244b72 View commit details
    Browse the repository at this point in the history
  8. 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]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    7d82bff View commit details
    Browse the repository at this point in the history
  9. 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]>
    peg and clap [bot] authored Mar 17, 2026
    Configuration menu
    Copy the full SHA
    26f5dec View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2026

  1. 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]>
    peg and clap [bot] authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    71f1a62 View commit details
    Browse the repository at this point in the history
  2. 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]>
    peg and clap [bot] authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    f7effd2 View commit details
    Browse the repository at this point in the history
  3. 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]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    6b85f57 View commit details
    Browse the repository at this point in the history
  4. 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]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    1dc8f53 View commit details
    Browse the repository at this point in the history
  5. 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]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    2a8aea3 View commit details
    Browse the repository at this point in the history
  6. 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]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    615dbeb View commit details
    Browse the repository at this point in the history
  7. 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]>
    3 people authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    53c7e13 View commit details
    Browse the repository at this point in the history
  8. chore: v0.1.3 changelog (#29)

    Co-authored-by: clap [bot] <[email protected]>
    peg and clap [bot] authored Mar 18, 2026
    Configuration menu
    Copy the full SHA
    3e0282d View commit details
    Browse the repository at this point in the history
Loading