- Co-Authored-By
- Claude Fable 5 <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_01SoZMfWRSGnf6FZX2Ar9rQ2
- Closes
- #253
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
INVARIANTS.md
docs/2026-08-25-forge-exit-rehearsals-2-to-6.md
docs/forge-exit-rehearsals.md
docs/security/secrets-and-log-handling.md
lib/openagents/machines/token_vault.ex
lib/openagents/runtime_config.ex
test/openagents/runtime_config_test.exs
7 files changed, +156 -11
@@ -3532,10 +3532,17 @@ documented GitHub rotation would have unread every outstanding pairing.
| 3532 | 3532 |
|
| 3533 | 3533 |
|
| 3534 | 3534 |
|
| 3535 |
|
|
| 3536 |
|
|
| 3537 |
|
|
| 3538 |
|
|
| 3535 |
|
|
| 3536 |
|
|
| 3537 |
|
|
| 3538 |
|
|
| 3539 |
|
|
| 3540 |
|
|
| 3541 |
|
|
| 3542 |
|
|
| 3543 |
|
|
| 3544 |
|
|
| 3545 |
|
|
| 3539 | 3546 |
|
| 3540 | 3547 |
|
| 3541 | 3548 |
|
@@ -3577,6 +3584,15 @@ dropping a live column mid-roll breaks the nodes still writing into it; the
| 3577 | 3584 |
|
| 3578 | 3585 |
|
| 3579 | 3586 |
|
| 3587 |
|
|
| 3588 |
|
|
| 3589 |
|
|
| 3590 |
|
|
| 3591 |
|
|
| 3592 |
|
|
| 3593 |
|
|
| 3594 |
|
|
| 3595 |
|
|
| 3580 | 3596 |
|
| 3581 | 3597 |
|
| 3582 | 3598 |
|
@@ -298,6 +298,15 @@ the old key to the keyring, activate the new one, rewrap with
| 298 | 298 |
|
| 299 | 299 |
|
| 300 | 300 |
|
| 301 |
|
|
| 302 |
|
|
| 303 |
|
|
| 304 |
|
|
| 305 |
|
|
| 306 |
|
|
| 307 |
|
|
| 308 |
|
|
| 309 |
|
|
| 301 | 310 |
|
| 302 | 311 |
|
| 303 | 312 |
|
@@ -413,10 +413,13 @@ The forge holds several key-like secrets and they rotate differently:
| 413 | 413 |
|
| 414 | 414 |
|
| 415 | 415 |
|
| 416 |
|
|
| 417 |
|
|
| 418 |
|
|
| 419 |
|
|
| 416 |
|
|
| 417 |
|
|
| 418 |
|
|
| 419 |
|
|
| 420 |
|
|
| 421 |
|
|
| 422 |
|
|
| 420 | 423 |
|
| 421 | 424 |
|
| 422 | 425 |
|
@@ -446,6 +449,17 @@ GitHub retired keyring is empty and no reputation issuer key is admitted, so
| 446 | 449 |
|
| 447 | 450 |
|
| 448 | 451 |
|
| 452 |
|
|
| 453 |
|
|
| 454 |
|
|
| 455 |
|
|
| 456 |
|
|
| 457 |
|
|
| 458 |
|
|
| 459 |
|
|
| 460 |
|
|
| 461 |
|
|
| 462 |
|
|
| 449 | 463 |
|
| 450 | 464 |
|
| 451 | 465 |
|
@@ -35,7 +35,7 @@ use distinct names and values and remains locked.
| 35 | 35 |
|
| 36 | 36 |
|
| 37 | 37 |
|
| 38 |
|
|
| 38 |
|
|
| 39 | 39 |
|
| 40 | 40 |
|
| 41 | 41 |
|
@@ -34,8 +34,11 @@ defmodule OpenAgents.Machines.TokenVault do
| 34 | 34 |
|
| 35 | 35 |
|
| 36 | 36 |
|
| 37 |
|
|
| 38 |
|
|
| 37 |
|
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 39 | 42 |
|
| 40 | 43 |
|
| 41 | 44 |
|
@@ -66,6 +66,7 @@ defmodule OpenAgents.RuntimeConfig do
| 66 | 66 |
|
| 67 | 67 |
|
| 68 | 68 |
|
| 69 |
|
|
| 69 | 70 |
|
| 70 | 71 |
|
| 71 | 72 |
|
@@ -315,6 +316,8 @@ defmodule OpenAgents.RuntimeConfig do
| 315 | 316 |
|
| 316 | 317 |
|
| 317 | 318 |
|
| 319 |
|
|
| 320 |
|
|
| 318 | 321 |
|
| 319 | 322 |
|
| 320 | 323 |
|
@@ -325,6 +328,63 @@ defmodule OpenAgents.RuntimeConfig do
| 325 | 328 |
|
| 326 | 329 |
|
| 327 | 330 |
|
| 331 |
|
|
| 332 |
|
|
| 333 |
|
|
| 334 |
|
|
| 335 |
|
|
| 336 |
|
|
| 337 |
|
|
| 338 |
|
|
| 339 |
|
|
| 340 |
|
|
| 341 |
|
|
| 342 |
|
|
| 343 |
|
|
| 344 |
|
|
| 345 |
|
|
| 346 |
|
|
| 347 |
|
|
| 348 |
|
|
| 349 |
|
|
| 350 |
|
|
| 351 |
|
|
| 352 |
|
|
| 353 |
|
|
| 354 |
|
|
| 355 |
|
|
| 356 |
|
|
| 357 |
|
|
| 358 |
|
|
| 359 |
|
|
| 360 |
|
|
| 361 |
|
|
| 362 |
|
|
| 363 |
|
|
| 364 |
|
|
| 365 |
|
|
| 366 |
|
|
| 367 |
|
|
| 368 |
|
|
| 369 |
|
|
| 370 |
|
|
| 371 |
|
|
| 372 |
|
|
| 373 |
|
|
| 374 |
|
|
| 375 |
|
|
| 376 |
|
|
| 377 |
|
|
| 378 |
|
|
| 379 |
|
|
| 380 |
|
|
| 381 |
|
|
| 382 |
|
|
| 383 |
|
|
| 384 |
|
|
| 385 |
|
|
| 386 |
|
|
| 387 |
|
|
| 328 | 388 |
|
| 329 | 389 |
|
| 330 | 390 |
|
@@ -308,6 +308,49 @@ defmodule OpenAgents.RuntimeConfigTest do
| 308 | 308 |
|
| 309 | 309 |
|
| 310 | 310 |
|
| 311 |
|
|
| 312 |
|
|
| 313 |
|
|
| 314 |
|
|
| 315 |
|
|
| 316 |
|
|
| 317 |
|
|
| 318 |
|
|
| 319 |
|
|
| 320 |
|
|
| 321 |
|
|
| 322 |
|
|
| 323 |
|
|
| 324 |
|
|
| 325 |
|
|
| 326 |
|
|
| 327 |
|
|
| 328 |
|
|
| 329 |
|
|
| 330 |
|
|
| 331 |
|
|
| 332 |
|
|
| 333 |
|
|
| 334 |
|
|
| 335 |
|
|
| 336 |
|
|
| 337 |
|
|
| 338 |
|
|
| 339 |
|
|
| 340 |
|
|
| 341 |
|
|
| 342 |
|
|
| 343 |
|
|
| 344 |
|
|
| 345 |
|
|
| 346 |
|
|
| 347 |
|
|
| 348 |
|
|
| 349 |
|
|
| 350 |
|
|
| 351 |
|
|
| 352 |
|
|
| 353 |
|
|
| 311 | 354 |
|
| 312 | 355 |
|
| 313 | 356 |
|