galaxyproject / galaxyproject/loom
Orbit exec-guard denies `curl … | python3` JSON-consume pattern, forcing a brittle temp-file two-step
- Dominant language
- TypeScript
- Stars
- 14
- Forks
- 12
- Avg merge
- 6d 5h
- Merged PRs (30d)
- 17
Description
_Context: from a controlled experiment in which eight frontier models (opus, sonnet, gpt, gpt2, gemini-2.5-pro, gemini-3.5-flash, deepseek, haiku) each drove an Orbit session to reanalyze the same RNA-seq dataset (Santana 2023 *C. auris*) on 2026-06-02–04. Evidence quotes are from the per-run `activity.jsonl` logs._
## Problem
The exec-guard blocks piping remote content into an interpreter, which is the natural pattern for consuming Galaxy API JSON (`curl /api/... | python3 -c ...`). The brain's two-step workaround (write to a temp file, then parse) introduced its own failure.
## Evidence
- **opus**: `guard.decision ... decision: deny ... reason: "pipe remote content to an interpreter"` fired twice on `curl ... | python3 -c ...` against the Galaxy API. The temp-file fallback then hit the `json.JSONDecodeError` that caused the 29.6-min poll stall (see #N1 / opus 16:35:28–17:05:01).
## Impact
Medium. The guard is correct in spirit (don't pipe untrusted remote code), but the connected Galaxy server is trusted, so the blanket deny pushes the brain onto a more error-prone path.
## Proposed direction
Allowlist the authenticated Galaxy API host for the pipe-to-interpreter pattern, or provide a dedicated "fetch Galaxy API JSON" tool so the brain never needs raw `curl | python3`.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.