Imported from Shivansh2703/agent-radar (
AGENTS.md). Install upstream withnpx skills add Shivansh2703/agent-radar. Copyright stays with the author.
Agent Radar — project instructions
TypeScript VS Code/Cursor extension that monitors Claude Code sessions and subagents.
Live on the marketplace as Shivansh2703.agent-radar. All code lives in extension/.
Laws
- PUBLIC repo: commits, PRs, and code comments carry a single named author only — no co-author trailers, no "Generated with" or tool-attribution lines. Ever.
- Marketplace publish is owner-only. Never run
vsce publish— stage the exact command and hand it to the owner. - Test gate:
cd extension && npm testgreen before any merge. The completion-detection/liveness precedence chain is the load-bearing subtle part — never change its timeouts or ordering without cited measurements (past regressions came exactly from unmeasured timeout guesses). - Path-staged commits only (never
git add -A); one logical change per commit.
Check
cd extension && npm test — compiles with tsc then runs the suite with node --test
(no VS Code Extension Host, no display needed). ~6s, 302 tests: 299 run, 3 are the
liveFire.test.ts live-fire cases, gated behind LIVE_FIRE=1 because they need a real
running agent process to observe — the suite passes with them skipped by design, not by
omission. CI runs the same command on every push and PR (.github/workflows/ci.yml), on
macos-latest — this extension's real target is a developer's Mac (it inspects local
processes and real shells), not Linux, and public repos get macOS runners free.
Trap: two tests in liveness.test.ts (~line 284, ~line 331) symlink a real /bin/zsh
binary to stand in for a fake claude process. That only works on a host that ships zsh —
on a Linux runner both fail with spawn .../bin/claude ENOENT, which names the fake
claude path and gives no hint that the real problem is a missing shell. If CI ever moves
back to Linux, this is why those two go red first.
Red means a real regression in the classify/collector/liveness logic, most likely the
completion-detection precedence chain — re-read the rung comments in deriveSessionState
before touching timeouts or ordering; past regressions came from unmeasured timeout guesses.
Not covered: anything that only breaks inside a real VS Code window — command registration,
the dashboard webview rendering, status-bar rendering — since these tests never boot the
Extension Host. Marketplace packaging (npm run package) and publishing are separate,
manual steps this gate does not touch.
- Create and modify files with your editor tools (write/edit), never shell heredocs/redirection — those trip permission walls here.