ollie/session
Levi Neely 11c67a7fb1 toolsrv: implement 9P Tauth authentication
Replace HMAC-based registration with proper 9P Tauth flow:
- First client to connect sets the secret via Tauth afid write
- Server stores secret in memory, returns session token
- Subsequent clients must provide matching secret
- Secret never in env vars or disk, only transmitted over socket

Changes:
- server9p.go: Authenticate() replaces RegisterAgent/GetAgent
- client9p.go: Dial() does Tauth handshake (write secret, read token)
- spawn.go: generates secret, no longer passes via TOOLSRV_SECRET env
- auth9p.go: simplified to just GenerateSecret()
- spec9p.go: removed /register file, token validation at connection level
- cmd/toolsrv/server.go: handleAuth/handleAuthWrite/handleAuthRead

Security model:
- Session generates secret on Spawn()
- All agents share session's secret via ProcessKeeper
- Socket permissions (local) or SSH (remote) protect transport
- Secret dies with toolsrv process, new secret on respawn

Added integration tests verifying:
- First connection sets secret
- Reconnect with same secret works
- Wrong secret rejected
- ProcessKeeper reconnect/respawn behavior
- Concurrent connections
2026-08-10 19:03:10 +02:00
..
event.go all: merge toolsrv files, fix context hierarchy, remove dead params 2026-08-08 16:13:55 +02:00
persist.go maintainability: docs, contracts, structural cleanup 2026-08-09 21:45:56 +02:00
registry.go maintainability: docs, contracts, structural cleanup 2026-08-09 21:45:56 +02:00
session.go toolsrv: implement 9P Tauth authentication 2026-08-10 19:03:10 +02:00
setup.go prompt audit: trim system prompt, kill dead code, improve maintainability 2026-08-09 14:13:52 +02:00