Commit 757f3c9
committed
Make the cloud gate actually gate, and stop exporting credentials
An external improvement review found the cloud lane's central promise was inert,
and it was right.
overlay.sh installs .claude/verify.sh and wires the Stop hook, but verify-gate.sh
refuses to run a repo's verify.sh without a machine-local trust entry, and a
fresh cloud sandbox has none. The gate was installed, wired, and silently
skipping on every Stop — in the one lane that exists for cloud work. My own
overlay test missed it because it asserted the files landed rather than what the
hook decided. That distinction is the lesson.
The sandbox setup line now runs `vstack trust` after bootstrapping. Local
protection is unchanged: an untrusted repo cloned to your laptop still runs
nothing until you type it yourself. This line lives in a file you committed, in a
disposable sandbox, for a repo you deliberately dispatched work to.
The second finding was mine. install.sh sourced secrets.env into .zshenv with
`set -a`, and adding the bash lane extended that to .bashrc and .profile —
widening a credential exposure while fixing something else. One token reached
every child process of every shell. Nothing needed it; every wrapper in bin/
already loads secrets.env itself.
Removing it from the installer only helps new machines, so install.sh now removes
the line it previously wrote, matched exactly and backed up first. It leaves any
other spelling alone: doctor found one on this machine that predates vstack, and
deleting a line from a file you own because it resembles ours would be the same
class of mistake as the destructive bugs earlier in this audit. doctor fails if
vstack's form returns, and notes yours without failing.
Both covered end to end. The cloud case asserts the decision — skip before
arming, block after — and scopes TMPDIR per run, because verify-gate.sh caps
repeated blocks per session id and a test reusing one reads that cap as the gate
having broken.
verify.sh 25/25, falsifiability 26/26, matrix 19/19, doctor and drift green.1 parent a8ffca5 commit 757f3c9
4 files changed
Lines changed: 134 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
270 | 270 | | |
271 | 271 | | |
272 | 272 | | |
273 | | - | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
274 | 295 | | |
275 | 296 | | |
276 | 297 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
353 | | - | |
354 | | - | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
355 | 369 | | |
356 | 370 | | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
357 | 383 | | |
358 | 384 | | |
359 | 385 | | |
| |||
373 | 399 | | |
374 | 400 | | |
375 | 401 | | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | 402 | | |
380 | 403 | | |
381 | 404 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
127 | 139 | | |
128 | | - | |
| 140 | + | |
129 | 141 | | |
130 | 142 | | |
131 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
188 | | - | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
189 | 193 | | |
190 | 194 | | |
191 | 195 | | |
| |||
558 | 562 | | |
559 | 563 | | |
560 | 564 | | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
561 | 631 | | |
562 | 632 | | |
563 | 633 | | |
| |||
0 commit comments