Commit 0bbfe59
feat: BI-1 serve socket + Julia oracle + project-root + sandbox + parser fix
BI-1 (per docs/ECHIDNA-INTEGRATION.adoc §BI-1):
- New `burrower serve --socket <path>` Unix-socket endpoint exposing
swarm/attempt/ledger/ping over line-delimited JSON.
- Sync std::os::unix UnixListener with thread-per-connection (no tokio
dep added — corpus loads + ledger ops are independent per request).
- Verified via socat: ping/unknown-cmd/malformed-json all roundtrip.
- SocketGuard cleans the socket on normal Drop; defensive bind-side
unlink handles SIGTERM-killed stale sockets (known Drop limitation).
Oracle (safe-learning c — adversarial test generation):
- New oracle module dispatches `tools/julia-oracle.jl` as a subprocess
with an A2ML descriptor argument; parses the verdict line.
- OracleVerdict::Disagree and FuzzCounter block the proof attempt
("lemma statement is suspect"); other verdicts are advisory.
- record_to_ledger appends an Oracle-authored learning entry with
pattern_kind in {oracle-counter-example, oracle-fuzz-counter,
oracle-agree, oracle-fuzz-clean, oracle-inapplicable, oracle-
subprocess-error}.
- 5 unit tests over verdict parsing.
- Wired into burrower-cli `attempt` via --oracle / --oracle-descriptor /
--oracle-project / --oracle-julia. End-to-end verified: a deliberately
wrong tropical-determinant lemma is blocked BEFORE specialists run.
Project-root + sandbox plumbing:
- ProverConfig gains project_root: Option<PathBuf> + sandbox: String.
- run_probe forwards `--project-root` and `--sandbox` to echidna when
set. burrower-cli `attempt` exposes both as flags.
- This is what makes the EI-1 + safe-learning-b chain functional from
the burrower side.
Critical bugfix (discovered during the headline dogfood):
- run_probe's success/failure marker was stdout-only. Echidna's
OutputFormatter writes its verdict to STDERR, so every attempt was
misclassified as "inconclusive output" and demoted to a
generic-failure anti-pattern. Fixed: parser now scans both streams
AND falls back on the exit code. Without this, the swarm's failure
diagnostics were useless.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent afcd0b8 commit 0bbfe59
5 files changed
Lines changed: 684 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
101 | 123 | | |
102 | 124 | | |
103 | 125 | | |
104 | 126 | | |
105 | 127 | | |
106 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
107 | 139 | | |
108 | 140 | | |
109 | 141 | | |
| |||
225 | 257 | | |
226 | 258 | | |
227 | 259 | | |
| 260 | + | |
228 | 261 | | |
229 | 262 | | |
230 | 263 | | |
231 | 264 | | |
232 | 265 | | |
233 | 266 | | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
234 | 273 | | |
235 | 274 | | |
236 | 275 | | |
237 | 276 | | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
238 | 311 | | |
239 | 312 | | |
240 | 313 | | |
241 | 314 | | |
| 315 | + | |
| 316 | + | |
242 | 317 | | |
243 | 318 | | |
244 | 319 | | |
| |||
293 | 368 | | |
294 | 369 | | |
295 | 370 | | |
296 | | - | |
297 | | - | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
298 | 381 | | |
299 | 382 | | |
| 383 | + | |
300 | 384 | | |
301 | 385 | | |
302 | 386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
68 | 79 | | |
69 | 80 | | |
70 | 81 | | |
| |||
73 | 84 | | |
74 | 85 | | |
75 | 86 | | |
| 87 | + | |
| 88 | + | |
76 | 89 | | |
77 | 90 | | |
78 | 91 | | |
| |||
207 | 220 | | |
208 | 221 | | |
209 | 222 | | |
210 | | - | |
211 | | - | |
| 223 | + | |
| 224 | + | |
212 | 225 | | |
213 | 226 | | |
214 | 227 | | |
215 | 228 | | |
216 | | - | |
217 | | - | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
218 | 241 | | |
219 | 242 | | |
220 | 243 | | |
221 | 244 | | |
222 | 245 | | |
223 | 246 | | |
224 | 247 | | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
236 | 274 | | |
237 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
238 | 279 | | |
239 | 280 | | |
| 281 | + | |
240 | 282 | | |
241 | 283 | | |
242 | 284 | | |
243 | 285 | | |
244 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
245 | 290 | | |
246 | 291 | | |
247 | 292 | | |
248 | 293 | | |
249 | 294 | | |
250 | 295 | | |
251 | | - | |
| 296 | + | |
252 | 297 | | |
253 | | - | |
254 | | - | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
255 | 302 | | |
256 | 303 | | |
257 | 304 | | |
| |||
433 | 480 | | |
434 | 481 | | |
435 | 482 | | |
| 483 | + | |
| 484 | + | |
436 | 485 | | |
437 | 486 | | |
438 | 487 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
35 | 37 | | |
36 | 38 | | |
37 | 39 | | |
| |||
0 commit comments