Skip to content

sanad: coder panel P0 — guards + runner base - #1

Merged
osodev-1 merged 8 commits into
mainfrom
coder-panel-p0
Aug 12, 2026
Merged

sanad: coder panel P0 — guards + runner base#1
osodev-1 merged 8 commits into
mainfrom
coder-panel-p0

Conversation

@osodev-1

Copy link
Copy Markdown
Owner

What

P0 of the coder agent panel (spec, plan): the platform guards and generalized runner base that every later phase builds on.

  • WireRunner base extracted from ArchitectRunner (byte-compatible — architect routes and tests untouched); parametrized handshake capabilities + on_request hook (base = reject, deny-by-default)
  • Turn budgets: wall-clock + step budgets with a single-trip guard; journaled turn_budget_exceeded then cancel; architect stays unlimited
  • IdleStopper probes: a running wire turn holds the machine (fixes the latent architect idle-kill bug); crashing probes fail safe
  • CoderRunner: one per conversation, sanad --wire --session <id>, budgets mandatory, per-conversation registry wired into the idle probe
  • /internal/coder routes (P0 subset): create/open/send/turn/follow/cancel/stop; NDJSON turn streaming; flag-gated by CODER_ENABLED (404 fail-closed); ticket redemption + fixed_user parity with the architect; malformed-cid guard
  • Web allowlist (ships dark): SANAD_CODER_PANEL_EMAILS, fail-closed, separate from the terminal gate

Security posture (P0)

Most-restrictive by construction: capabilities false/false, every inbound approval/question request rejected with -32601 (golden-tested at runner and HTTP level), no respond endpoint exists. The approvals bridge is P1, gated behind the trust-store hardening.

Tests

  • terminal-server: 163 passed (19 new: budgets, probes, settings, registry, routes incl. deny-by-default round-trips)
  • sanad-web: 42 files / 244 passed (3 new allowlist tests)
  • Whole-branch review clean; per-task spec+quality reviews on every commit

@osodev-1
osodev-1 merged commit 37b5e3a into main Aug 12, 2026
1 of 3 checks passed
@osodev-1
osodev-1 deleted the coder-panel-p0 branch August 12, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants