Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
d2b7a8f
docs: update README with new information
nadavis Mar 14, 2026
fee4ef7
style: fix formatting in README.md
nadavis Mar 14, 2026
28a5926
fix: resolve merge conflict in README (duplicate CLI Reference sections)
nadavis Mar 14, 2026
d3c99cf
feat: add Claude AI code review on PRs to main
nadavis Mar 15, 2026
7f018aa
fix: add env validation and diff size limit to AI review
nadavis Mar 15, 2026
7fe57ab
style: format ai-review.mjs with prettier
nadavis Mar 15, 2026
a2ea754
Merge branch 'main' into dev
nadav-node9 Mar 15, 2026
bac1a39
feat: context sniper UI, browser gating, Apache-2.0, Claude AI review
nadavis Mar 15, 2026
abe4b3a
fix: harden AI review script per security audit
nadavis Mar 16, 2026
f7ae32d
style: apply prettier formatting
nadavis Mar 16, 2026
d666294
fix: switch to GITHUB_TOKEN, add --ignore-scripts, auto-sync dev from…
nadavis Mar 16, 2026
96f9d9f
fix: pin transitive CI deps via package-lock.json
nadavis Mar 16, 2026
e4d2cdc
chore: sync dev from main [skip ci]
github-actions[bot] Mar 16, 2026
430db8d
feat: Context Sniper UI parity — native popup, browser daemon, cloud
nadavis Mar 16, 2026
748a5bc
feat: shadow mode — passive stderr warning when SaaS allows through
nadavis Mar 16, 2026
260eac1
fix: config validation, audit mode delivery, cloud race, double-brows…
nadavis Mar 16, 2026
9f62709
Merge branch 'main' into dev
nadav-node9 Mar 16, 2026
2230792
fix: invalid config fields now stripped before merge, not silently ap…
nadavis Mar 16, 2026
904c3cb
style: prettier format config-schema.ts
nadavis Mar 16, 2026
553b653
test: address code review — fix timing race, add wildcard ignored-too…
nadavis Mar 16, 2026
97890ce
test: fix double-resolve in runCheckAsync, add malformed payload + ig…
nadavis Mar 16, 2026
65302b8
test: fix malformed payload test to match fail-open design
nadavis Mar 16, 2026
4b5d643
chore: sync dev from main [skip ci]
github-actions[bot] Mar 16, 2026
52762da
fix: two policy bugs + refresh example config for v1 release
nadavis Mar 17, 2026
38dde45
chore: prettier format example config
nadavis Mar 17, 2026
aac0c3c
fix: address all PR review issues — environment merge safety, allow-r…
nadavis Mar 17, 2026
97b961d
fix: block $() substitution, global npm install, and multi-field secr…
nadavis Mar 17, 2026
bc28e8e
Merge branch 'main' into dev
nadav-node9 Mar 17, 2026
32e0dc9
chore: sync dev from main [skip ci]
github-actions[bot] Mar 17, 2026
44b477e
fix: address second code review — dangerousWords regression, semicolo…
nadavis Mar 17, 2026
e160871
Merge branch 'main' into dev
nadav-node9 Mar 17, 2026
353a745
chore: sync dev from main [skip ci]
github-actions[bot] Mar 17, 2026
4bf8d3d
feat: scope node9 undo to current directory by default
nadavis Mar 20, 2026
67e8dde
fix: address code review — image src, jq injection safe payload
nadavis Mar 20, 2026
5d58ed5
Merge remote-tracking branch 'origin/main' into dev
nadavis Mar 20, 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
9 changes: 9 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.AUTO_PR_TOKEN }}
NPM_CONFIG_PROVENANCE: 'true'
run: npx semantic-release

- name: Notify homebrew tap
run: |
VERSION=$(node -p "require('./package.json').version")
curl -s --fail -X POST \
-H "Authorization: token ${{ secrets.AUTO_PR_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/node9-ai/homebrew-node9/dispatches \
-d "$(jq -n --arg v "$VERSION" '{event_type:"new-release",client_payload:{version:$v}}')"
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ Security posture is resolved using a strict 5-tier waterfall:
## 🚀 Quick Start

```bash
# Recommended — via Homebrew (macOS / Linux)
brew tap node9-ai/node9
brew install node9

# Or via npm
npm install -g @node9/proxy

# 1. Setup protection for your favorite agent
Expand Down Expand Up @@ -316,6 +321,12 @@ A corporate policy has locked this action. You must click the "Approve" button i

---

## 🔗 Related

- [node9-python](https://github.com/node9-ai/node9-python) — Python SDK for Node9

---

## 🏢 Enterprise & Compliance

Node9 Pro provides **Governance Locking**, **SAML/SSO**, and **VPC Deployment**.
Expand Down
19 changes: 15 additions & 4 deletions src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1306,15 +1306,26 @@ program
program
.command('undo')
.description(
'Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions.'
'Revert files to a pre-AI snapshot. Shows a diff and asks for confirmation before reverting. Use --steps N to go back N actions, --all to include snapshots from other directories.'
)
.option('--steps <n>', 'Number of snapshots to go back (default: 1)', '1')
.action(async (options: { steps: string }) => {
.option('--all', 'Show snapshots from all directories, not just the current one')
.action(async (options: { steps: string; all?: boolean }) => {
const steps = Math.max(1, parseInt(options.steps, 10) || 1);
const history = getSnapshotHistory();
const allHistory = getSnapshotHistory();
const history = options.all ? allHistory : allHistory.filter((s) => s.cwd === process.cwd());

if (history.length === 0) {
console.log(chalk.yellow('\nℹ️ No undo snapshots found.\n'));
if (!options.all && allHistory.length > 0) {
console.log(
chalk.yellow(
`\nℹ️ No snapshots found for the current directory (${process.cwd()}).\n` +
` Run ${chalk.cyan('node9 undo --all')} to see snapshots from all projects.\n`
)
);
} else {
console.log(chalk.yellow('\nℹ️ No undo snapshots found.\n'));
}
return;
}

Expand Down
Loading