Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## 0.3.0

Run `canaryhook init --force` on an existing install to add the `PostToolUse` hook.

### Added

- A `PostToolUse` hook checks each tool's output for canary strings, so a sweep like `grep -r AKIA .` that reads a decoy without naming it is recorded and the agent is told the value is fake.
- The hook trips on tampering: deleting or rewriting `.canaryhook/`, running `canaryhook clean`, removing the hook from the settings, or setting `disableAllHooks`. These are denied and recorded as `tamper`.
- Shell globs that expand to a decoy, like `cat .env*` or `grep key *.bak`, trip the read path.

### Fixed

- The hook and every command except `init` find the project from a subdirectory. Before, an agent working in `src/` was not guarded at all, and `verify` run there reported no trips.
- `verify` fails where canaryhook was never initialized, instead of reporting a clean record. A CI checkout has no record, so the old CI step could never fail; the README now shows `init` before the agent step.
- Unknown flags and arguments are rejected instead of ignored, so `clean --keep-alert` no longer deletes the alerts it meant to keep.

### Changed

- `status` reports the `PostToolUse` hook and counts it towards healthy.

## 0.2.0

### Added
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "canaryhook",
"version": "0.2.0",
"version": "0.3.0",
"description": "Honeyfiles and canary tokens for AI coding agents. Plants decoy credentials your agents should never touch, then trips on any read or exfiltration.",
"type": "module",
"bin": {
Expand Down
2 changes: 1 addition & 1 deletion src/version.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const VERSION = "0.2.0";
export const VERSION = "0.3.0";
Loading