Commit 2ece852
jgstern-agent
fix(io_boundary): reclassify Python stdio from ipc_send to logging (WI-tolif)
The 2026-04-23 self-audit found that 70 of hypergumbo's 77 ipc_send
chains were just sys.stderr writes — cli.py progress output,
warnings, error messages. Same false-positive class that drove Go's
log / log/slog / fmt to be moved out of ipc_send into the dedicated
logging boundary back when alertmanager was producing 134 such FPs
(see test_go_catalog_slog_logging).
Move sys.stdout and sys.stderr from python.yaml#ipc_send to a new
python.yaml#logging block. sys.stdin stays in ipc_recv — it CAN
receive untrusted piped input from the parent process, which is a
real IPC threat-model concern, not a cosmetic one.
No taint-flow regression: AUTO_SINK_ZONE_MAP intentionally does not
include 'logging' (matching how Go's log writes are treated), so
moving stdio there means hypergumbo no longer auto-derives stdio as
a taint sink. Project-local catalogs that want stdout/stderr treated
as a disclosure sink can still declare their own taint_sinks entries
via verify-claims --taint-sinks (WI-votan flag).
Cross-language analogs (c.yaml, javascript.yaml, rust.yaml,
scala.yaml, elixir.yaml, haskell.yaml) tracked as scope-expansion
WI-dutah for a follow-up PR.
Signed-off-by: jgstern-agent <josh-agent@iterabloom.com>1 parent b93678e commit 2ece852
4 files changed
Lines changed: 35 additions & 4 deletions
File tree
- .ci
- packages/hypergumbo-core
- src/hypergumbo_core/io_primitives
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
| |||
Lines changed: 10 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | 160 | | |
164 | 161 | | |
165 | 162 | | |
166 | 163 | | |
167 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
168 | 175 | | |
169 | 176 | | |
170 | 177 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
83 | 103 | | |
84 | 104 | | |
85 | 105 | | |
| |||
0 commit comments