Host-side API server experiment#28
Conversation
9197ac7 to
038e446
Compare
ReviewThe fix commit addressed several findings from the prior review: request body size limits added (M4), bearer token removed from stdout (M3), credential scrubbing added for HTTP error responses (partial H3), FindingsCritical
High
Medium
Low
Previous runReviewFindingsCritical
High
Medium
Low
Previous run (2)ReviewOutcome: comment · 4 high · 5 medium · 3 low · 5 info This PR adds a well-structured experiment testing host-side API servers callable from inside OpenShell sandboxes. The experiment design is solid, the shell orchestration is clean ( HighH1 · Argument injection via unvalidated request fields —
|
- Scrub credentials from error messages in provisioner (H3) - Add timing-safe comparison comments in both servers (M1) - Bind servers to 127.0.0.1 instead of 0.0.0.0 (M2) - Remove bearer token from stdout in run.sh (M3) - Add request body size limits in both servers (M4) - Add comment about unbounded operations dict (L1) - Fix stale host.docker.internal references in design docs (L3) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
|
Addressed in 4fbee55:
|
Add design spec exploring how sandboxed agents can call host-side API servers through the L7 network proxy, and implementation plan for integrating the experiment with fullsend run. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
Add builder (Go) and provisioner (Python) API servers with uniform process contract: --port, --token, /healthz, /tools.json, SIGTERM handling. Both use openshell sandbox download/upload for host-sandbox file transfer with per-request sandbox identification. Add fullsend run integration: 6 harness configs (3 discovery methods x 2 network policies), skills for baked-instructions/openapi/tooluse discovery, OpenShell provider for bearer token auth via credential placeholders, L7 policies with host.openshell.internal hostname matching, and run.sh wrapper managing server lifecycle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
- Scrub credentials from error messages in provisioner (H3) - Add timing-safe comparison comments in both servers (M1) - Bind servers to 127.0.0.1 instead of 0.0.0.0 (M2) - Remove bearer token from stdout in run.sh (M3) - Add request body size limits in both servers (M4) - Add comment about unbounded operations dict (L1) - Fix stale host.docker.internal references in design docs (L3) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
4fbee55 to
0df51be
Compare
Add JSONL transcripts, replay HTML, and agent output for all 6 harness runs. Add findings.md covering architecture validated (canonical hostname, server contract, provider auth, file transfer, network policies, orchestrator lifecycle), bugs found, token usage analysis, and recommendations for the host-side API server pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
- Scrub credentials from error messages in provisioner (H3) - Add timing-safe comparison comments in both servers (M1) - Bind servers to 127.0.0.1 instead of 0.0.0.0 (M2) - Remove bearer token from stdout in run.sh (M3) - Add request body size limits in both servers (M4) - Add comment about unbounded operations dict (L1) - Fix stale host.docker.internal references in design docs (L3) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
0df51be to
96424d0
Compare
- Scrub credentials from error messages in provisioner (H3) - Add timing-safe comparison comments in both servers (M1) - Bind servers to 127.0.0.1 instead of 0.0.0.0 (M2) - Remove bearer token from stdout in run.sh (M3) - Add request body size limits in both servers (M4) - Add comment about unbounded operations dict (L1) - Fix stale host.docker.internal references in design docs (L3) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Marta Anon <manon@redhat.com>
96424d0 to
a838eeb
Compare
Summary
Closes #25
--port,--token,/healthz,/tools.json,SIGTERM),openshell sandbox download/uploadfor file transfer, andfullsend runintegration with 6 harness configs (3 discovery methods × 2 network policies)host.openshell.internalhostname, provider-based bearer token auth, L7 policy structure, orchestrator lifecycle, bugs found, token usage analysis, and recommendation for/tools.jsonas the standard API discovery formatTest plan
baked-instructions-full/restricted,openapi-discovery-full/restricted,tooluse-discovery-full/restricted)🤖 Generated with Claude Code