iterion

Depsy — sec-audit-deps run bilans

Universal supply-chain / SCA auditor: enumerates installed deps per ecosystem, runs heuristics + CVE baseline, LLM-reviews, emits findings to the board. Read-only (no code edits). See bots/sec-audit-deps/.

Known status (CLAUDE.md): the heuristic scanner layer is still a scaffold (runs the real CVE scanners but discards their output, tracked native:3a81df64); a run self-labels with a “⚠ Coverage” banner. It is enumerate + LLM-review only until that lands.

2026-06-13 (retest) — 2 engine bugs root-caused & fixed (runs 019ec1b1→019ec1d3)

The original “hang” was THREE separate things — none was a true hang

  1. 019ec17e was confounded. It errored multiplexer: envelope line exceeds MaxEnvelopeLineBytes, then was drained by a concurrent task studio:dev restart (server drained). The envelope error did not reproduce on clean CLI retests — most likely the draining studio corrupted the host↔runner IPC, not a standalone bug. Lesson: dogfood sandboxed bots via CLI, alone, not alongside a churning studio:dev.
  2. TLS-inspection proxy hangs every streaming LLM call (FIXED 778b9860). The Layer-2 secret-egress proxy is on by default whenever a run carries secrets (LLM creds qualify — confirmed via ITERION_SANDBOX_TLS_INSPECT=off making the call complete). It MITMs egress and kept the inspected client connection alive after a close-delimited streaming response → the in-container claw client blocked forever on the LLM call. Reproduced 3× (gpt-5.5 forfait + anthropic). Fix: force Connection: close per inspected response (streams still flush).
  3. claw empty tool-result → anthropic 400 (FIXED bbdca0da + sibling 248882e). An empty tool output (a grep with no matches) serialised to a tool_result whose nested text block dropped its text field via omitempty → messages.N…tool_result.content.0.text.text: Field required. Fix: force the text field present in ContentBlock.MarshalJSON (mirrors the existing tool_use.input fix). Validated: the agent ran 25 tool steps to completion.

Validated

Remaining (bot/claw-level, not engine)

  1. enumerate_deps is slow + expensive — 8 min / 170K tokens just to enumerate deps. The agent ingests far too much despite the skill’s “don’t read lockfiles” guidance. Tighten the prompt/skill or cap tool_max_steps (currently 25).
  2. structured-output fallback retry — the final structured output (deps/ecosystems/summary) fell back to the text wrapper missing required fields → retry. A claw structured-output-with-tools robustness gap; affects any claw agent node with a schema + tools (Seki too).
  3. board emit needs the server — sandboxed board.* caps require the HTTP board transport (C082); a bare CLI run can’t post findings. Run via the studio/server.
  4. SCA scaffold unchanged — heuristic layer still discards real scanner output (native:3a81df64); treat output as enumerate + LLM-review only.

Default model (gpt-5.5-via-forfait) is unreliably slow here

Lessons for next run

2026-06-13 — iterion self-audit dogfood (run 019ec17e)

Findings / misses

  1. enumerate_deps stalls (medium — reliability, needs a clean repro). One gpt-5.5 enumeration call hung with no progress/retry. Plausible contributors: (a) resource contention — two sandbox-sec-class containers + multiple LLM calls were running in parallel (Seki had just finished, Featurly2 was live); (b) the enumeration prompt ingesting large manifests (the bot’s own skill warns against reading lockfiles — worth checking it doesn’t); (c) a transient claw / ChatGPT-forfait stall. Re-run alone (no parallel sandbox bots) to isolate.
  2. Did not reach llm_review or board emit, so the SCA path + the known scaffold gap (#native:3a81df64) remain unvalidated on iterion this pass.

Lessons for next run