Skip to content

bootloader: expose run_chain for a scoped, ordered bootloader chain - #132

Merged
wolfy-j merged 1 commit into
masterfrom
feat/bootloader-scoped-chain
Sep 22, 2026
Merged

wolfy-j merged 1 commit into
masterfrom
feat/bootloader-scoped-chain

Conversation

@wolfy-j

@wolfy-j wolfy-j commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Splits bootloader.run into discovery plus run_chain(entries, options, satisfied), so a caller can run a subset of bootloaders in declared order with prerequisites it already satisfied. Dependency checks, status handling and stop-on-error are unchanged. Keeper uses it to run only the bootloaders of modules a hub install changed (wippyai/keeper#87), without re-running boot-only chains such as dataflow's overseer epoch.

Tests: 4 new chain tests (failed before: attempt to call a non-function), suite 19/19, lint clean.

https://claude.ai/code/session_01UeA2CxtcVk8swzNXXi6KHu

…isites

The orchestrator could only run every discovered bootloader, so a caller that
brings a module online after boot (Keeper's hub install) had no way to run that
module's bootloaders through the boot path: it would either re-run every
bootloader in the application, including ones that establish per-runtime state,
or reimplement the dependency checks and status handling.

run_chain(entries, options, satisfied) executes the given entries in order with
the same dependency checks, result handling and stop-on-error as the boot chain,
and treats the satisfied ids as completed prerequisites. run is run_chain over
every discovered bootloader with nothing satisfied.

Claude-Session: https://claude.ai/code/session_01UeA2CxtcVk8swzNXXi6KHu
@wolfy-j
wolfy-j merged commit 8b4b5a0 into master Sep 22, 2026
21 checks passed
@wolfy-j
wolfy-j deleted the feat/bootloader-scoped-chain branch September 22, 2026 19:21
@wippy-releases wippy-releases Bot mentioned this pull request Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant