fix(honcho): stop raw memory/tool-result content in runtime logs #371

Closed
opened 2026-05-18 08:53:25 +02:00 by codex · 2 comments
Collaborator

Summary

Honcho API emitted raw memory/tool-result content into container logs during the 2026-05-18 Gemma/Ollama soak. Runtime mitigation applied during soak: HONCHO_LOG_LEVEL=WARNING via RS2000 runtime override, but this needs a durable privacy hardening fix or upstream/config contract.

Evidence

  • Time window: 2026-05-18 08:36-08:37 CEST.
  • Iskra reported a yellow memory-query symptom: recall path did not complete within 30s.
  • RS2000 Honcho containers stayed healthy and Traefik did not show a corresponding long public 5xx path.
  • Honcho API logs in that window included tool/memory output content. Raw content is intentionally not quoted here.
  • Runtime env also had mixed old legacy LLM model variables; that was corrected separately by runtime override during the incident response.

Desired outcome

  • Honcho/OpenClaw memory and tool calls must not log raw prompts, messages, memory snippets, or tool-result payloads at normal runtime log levels.
  • Logs may include metadata only: timestamp, route/tool name, status, code class, latency, count, error class, and request id.
  • Provider errors must not include user/memory content.
  • Soak evidence must remain metadata-only.

Temporary mitigation already applied

  • RS2000 runtime override sets HONCHO_LOG_LEVEL=WARNING.
  • honcho-api and honcho-deriver were recreated with the override.
  • Follow-up verification showed no raw memory-pattern log lines in the immediate post-fix window.

Acceptance criteria

  • Add durable config/code/runbook guard so future Honcho deploys do not regress to raw memory/tool-result logging.
  • Add a smoke or log-scrub check that fails if common raw memory/tool-result markers appear in Honcho container logs during synthetic memory tests.
  • Document rollback and runtime override behavior.

References: #142, Honcho/Gemma switch soak 2026-05-18.

## Summary Honcho API emitted raw memory/tool-result content into container logs during the 2026-05-18 Gemma/Ollama soak. Runtime mitigation applied during soak: `HONCHO_LOG_LEVEL=WARNING` via RS2000 runtime override, but this needs a durable privacy hardening fix or upstream/config contract. ## Evidence - Time window: 2026-05-18 08:36-08:37 CEST. - Iskra reported a yellow memory-query symptom: recall path did not complete within 30s. - RS2000 Honcho containers stayed healthy and Traefik did not show a corresponding long public 5xx path. - Honcho API logs in that window included tool/memory output content. Raw content is intentionally not quoted here. - Runtime env also had mixed old legacy LLM model variables; that was corrected separately by runtime override during the incident response. ## Desired outcome - Honcho/OpenClaw memory and tool calls must not log raw prompts, messages, memory snippets, or tool-result payloads at normal runtime log levels. - Logs may include metadata only: timestamp, route/tool name, status, code class, latency, count, error class, and request id. - Provider errors must not include user/memory content. - Soak evidence must remain metadata-only. ## Temporary mitigation already applied - RS2000 runtime override sets `HONCHO_LOG_LEVEL=WARNING`. - `honcho-api` and `honcho-deriver` were recreated with the override. - Follow-up verification showed no raw memory-pattern log lines in the immediate post-fix window. ## Acceptance criteria - Add durable config/code/runbook guard so future Honcho deploys do not regress to raw memory/tool-result logging. - Add a smoke or log-scrub check that fails if common raw memory/tool-result markers appear in Honcho container logs during synthetic memory tests. - Document rollback and runtime override behavior. References: #142, Honcho/Gemma switch soak 2026-05-18.
Collaborator

🔭 Dziadek: cross-repo coordination

To issue (security — wyciek surowych danych w logach Honcho) jest pierwszym ogniwem łańcucha:

Repo Issue Co Status
platform #371 (to issue) Wyciek danych w logach Honcho class/security-sensitive
platform #359 Infisical secret access owner-attention, BLOCKED
platform #357 Design migracji BGE-M3 embeddingów owner-attention
iskra-openclaw #293 Wizja: Honcho → Gemma + BGE-M3 open

Ten security fix powinien pójść pierwszy — przed jakimkolwiek deployem Honcho. Tymczasowy mitigation już jest (HONCHO_LOG_LEVEL=WARNING), ale to nie jest trwałe.

## 🔭 Dziadek: cross-repo coordination To issue (security — wyciek surowych danych w logach Honcho) jest pierwszym ogniwem łańcucha: | Repo | Issue | Co | Status | |---|---|---|---| | **platform** | **#371 (to issue)** | **Wyciek danych w logach Honcho** | `class/security-sensitive` | | platform | [#359](https://git.pdurlej.com/pdurlej/platform/issues/359) | Infisical secret access | `owner-attention`, BLOCKED | | platform | [#357](https://git.pdurlej.com/pdurlej/platform/issues/357) | Design migracji BGE-M3 embeddingów | `owner-attention` | | iskra-openclaw | [#293](https://git.pdurlej.com/pdurlej/iskra-openclaw/issues/293) | Wizja: Honcho → Gemma + BGE-M3 | open | Ten security fix powinien pójść **pierwszy** — przed jakimkolwiek deployem Honcho. Tymczasowy mitigation już jest (`HONCHO_LOG_LEVEL=WARNING`), ale to nie jest trwałe.
Author
Collaborator

Codex Fork B - Honcho log privacy PR opened

Role: executor
PR: #375 fix(honcho): scrub private runtime log payloads

What changed

  • Added platform-side Honcho stdout/stderr sanitizer wrapper before Docker logs.
  • Mounted wrapper into honcho-api and honcho-deriver entrypoints.
  • Kept HONCHO_LOG_LEVEL=WARNING as default mitigation, not as the only privacy boundary.
  • Added synthetic marker checker and tests.
  • Updated runbook and closeout plan with verification/rollback.

Validation

  • py_compile for both scripts: pass.
  • pytest tests/test_honcho_log_privacy.py -q: 4 passed.
  • Pure-worktree compose contract parse: pass.
  • Synthetic sanitizer/checker pipeline: pass.

No production apply/recreate was run in this fork. After merge, next step is sequential Honcho smoke and log privacy checker against runtime logs, metadata-only.

## Codex Fork B - Honcho log privacy PR opened **Role:** executor **PR:** #375 `fix(honcho): scrub private runtime log payloads` ### What changed - Added platform-side Honcho stdout/stderr sanitizer wrapper before Docker logs. - Mounted wrapper into `honcho-api` and `honcho-deriver` entrypoints. - Kept `HONCHO_LOG_LEVEL=WARNING` as default mitigation, not as the only privacy boundary. - Added synthetic marker checker and tests. - Updated runbook and closeout plan with verification/rollback. ### Validation - `py_compile` for both scripts: pass. - `pytest tests/test_honcho_log_privacy.py -q`: 4 passed. - Pure-worktree compose contract parse: pass. - Synthetic sanitizer/checker pipeline: pass. No production apply/recreate was run in this fork. After merge, next step is sequential Honcho smoke and log privacy checker against runtime logs, metadata-only.
Sign in to join this conversation.
No labels
W6d-automerge-calibration
agent/claude-code
agent/codex
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
automerge-candidate
class/security-sensitive
cutover-gate
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
iterating
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
large-impact
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
meta
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
needs-operator-decision
needs-triage
not-ready
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
operator-emotional
owner-attention
phase/02
phase/03
priority:p0
priority:p1
priority:p2
priority:p3
proposed
ready-for-agent
ready-for-operator
recovery
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
risk/exposure
risk/process
risk/product
risk/runtime
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tier/full
tier/lite
tier/stacked
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/platform#371
No description provided.