Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
ca45715
Add browser spy plan
jimpudar May 22, 2026
33bde8d
Add spy fixtures and schema foundation
jimpudar May 23, 2026
1895f9a
Add Bedrock spy spool shim
jimpudar May 23, 2026
9b36333
Add Bedrock spy adapter
jimpudar May 23, 2026
0377b69
Add spy SQLite persistence
jimpudar May 23, 2026
df9aa92
Add spy web service API
jimpudar May 23, 2026
89b0c36
Add browser spy UI
jimpudar May 23, 2026
8ddef72
Wire browser spy launcher
jimpudar May 23, 2026
b88cadb
Raise firewall disk defaults
jimpudar May 23, 2026
25c6a08
Remove legacy terminal spy
jimpudar May 23, 2026
01f0e3b
Document browser spy
jimpudar May 23, 2026
22c245f
Document V1 spy review gaps
jimpudar May 23, 2026
321826c
Add spy API payload validation
jimpudar May 23, 2026
c6a68bf
Complete request composition summary
jimpudar May 23, 2026
2902954
Complete spy health settings surface
jimpudar May 23, 2026
0fe53cd
Complete V1 timeline filtering
jimpudar May 23, 2026
95a41aa
Complete V1 smoke validation
jimpudar May 23, 2026
8b017ec
Document spy QA findings
jimpudar May 23, 2026
20383fb
Fix spy layout scroll containers
jimpudar May 23, 2026
2633ea5
Fix spy timeline overlap
jimpudar May 23, 2026
6e9d992
Fix spy inspector navigation
jimpudar May 23, 2026
9ba8874
Fix spy stream event rendering
jimpudar May 23, 2026
0f4708d
Fix spy selected-call pinning
jimpudar May 23, 2026
d39b6bf
Fix spy range URL state
jimpudar May 23, 2026
8ae95cf
Fix spy rolling relative ranges
jimpudar May 23, 2026
8769af2
Fix spy inspector reset
jimpudar May 24, 2026
6e37857
Fix spy health empty state
jimpudar May 24, 2026
2e7155b
Close stale spy scroll P0
jimpudar May 24, 2026
7aeb9aa
Clean up spy QA bug plan
jimpudar May 24, 2026
1560a79
Fix spy filtered empty state copy
jimpudar May 24, 2026
fc32840
Fix spy search metadata scope
jimpudar May 24, 2026
98cc560
Fix spy diff baseline scope
jimpudar May 24, 2026
ca66513
Fix spy timeline cache usage
jimpudar May 24, 2026
49341bc
Fix Bedrock reasoning classification
jimpudar May 24, 2026
4a4a880
Fix spy clear dialog focus
jimpudar May 24, 2026
afe1f4f
Fix spy request composition layout
jimpudar May 24, 2026
a0e7ea7
Fix spy block filter scope
jimpudar May 24, 2026
6593ca8
Fix spy custom range state
jimpudar May 24, 2026
3cb427c
Fix spy custom datetime width
jimpudar May 24, 2026
2be9463
Fix spy network metadata display
jimpudar May 24, 2026
e171789
Fix spy model id summary
jimpudar May 24, 2026
9b16f01
Fix spy inspector header overlap
jimpudar May 24, 2026
9fc1617
Fix spy timeline ARIA state
jimpudar May 24, 2026
7adeab0
Fix spy timeline row accessibility
jimpudar May 24, 2026
14956df
Fix passive SSE offline status
jimpudar May 24, 2026
fb41825
Fix spy call count grammar
jimpudar May 24, 2026
9b8aac5
Fix spy timeline usage chips
jimpudar May 24, 2026
59ba9ec
Refine spy usage metric pill
jimpudar May 24, 2026
b18d8ee
Fix spy summary metric truncation
jimpudar May 24, 2026
80081d1
Archive V1 spy bug notes
jimpudar May 24, 2026
c2de851
Rename PLAN.md to SPY_PLAN.md
jimpudar May 24, 2026
d062ea1
fix nix build
jimpudar May 24, 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
10 changes: 10 additions & 0 deletions .env.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,13 @@ ROOTCELL_SUBNET_POOL_END=192.168.254.0
# FIREWALL_IP=192.168.109.10
# AGENT_IP=192.168.109.11
# NETWORK_PREFIX=24

# Browser spy is opt-in. When enabled, run `./rootcell provision` so the
# firewall service and generated /etc/agent-vm/spy.env are updated.
ROOTCELL_SPY_ENABLED=false
# ROOTCELL_SPY_RETENTION_DAYS=7
# ROOTCELL_SPY_MAX_BYTES=6442450944
# ROOTCELL_SPY_SPOOL_MAX_BYTES=1073741824
# ROOTCELL_SPY_STORE_RAW=false
# ROOTCELL_SPY_BIND=127.0.0.1
# ROOTCELL_SPY_PORT=6174
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ rootcell gives a coding agent disposable NixOS VMs where it can use root without
touching your host filesystem. All outbound traffic passes through a separate
firewall VM with DNS, HTTPS, and SSH allowlists. HTTPS is routed through a
transparent decrypting proxy, so rootcell can enforce host policy and
`./rootcell spy` can show formatted Bedrock Runtime traffic when you need to see
what the agent is sending.
`./rootcell spy` can open a local browser view of captured Bedrock Runtime
traffic when you need to see what the agent is sending.

rootcell is provider-backed: the same agent/firewall model can run locally on
macOS with Lima or remotely in AWS EC2.
Expand Down Expand Up @@ -222,9 +222,7 @@ state root.
./rootcell list # list rootcell VMs and their current state
./rootcell stop --instance dev # stop the dev instance VMs
./rootcell remove --instance dev # stop dev and delete its provider VM state
./rootcell spy # tail formatted Bedrock Runtime traffic
./rootcell spy --raw # include sanitized raw JSON bodies too
./rootcell spy --tui # browse Bedrock Runtime traffic interactively
./rootcell spy # open the browser spy through a local SSH tunnel
./rootcell -i aws-dev --init-env aws-ec2 # initialize a provider-specific instance .env
./rootcell -i local --init-env macos-lima # initialize an explicit local Lima .env

Expand All @@ -234,6 +232,9 @@ state root.
./rootcell --instance dev allow # reload only the dev instance allowlists
```

Detailed browser spy operator and developer notes live in
[src/spy/README.md](src/spy/README.md).

## Allowing Network Access

Network policy is per instance. On first run, `./rootcell` copies each tracked
Expand Down Expand Up @@ -379,8 +380,8 @@ secrets.env.defaults seed provider-qualified secret mappings for per-instanc
instances/
per-instance state, allowlists, CA, SSH keys, and generated files
proxy/ allowlists and mitmproxy/dnsmasq firewall code
agent_spy.py Bedrock Runtime formatter for `./rootcell spy`
agent_spy_tui.py Textual browser for `./rootcell spy --tui`
agent_spy.py Bedrock Runtime spool shim for the browser spy
src/spy/ browser spy service, Bedrock adapter, React UI, and docs
pi/agent/ global pi instructions, skills, and extensions
```

Expand Down Expand Up @@ -524,12 +525,10 @@ the checked-in defaults.

## Troubleshooting

See formatted Bedrock Runtime requests and responses:
Open the browser spy for captured Bedrock Runtime requests and responses:

```bash
./rootcell spy
./rootcell spy --raw
./rootcell spy --tui
```

Check that firewall services are listening:
Expand Down
Loading