feat(models): CROW_DISABLE_MODEL_ORCHESTRATION — a host that never starts, stops or evicts a model - #387
Merged
Conversation
added 11 commits
September 24, 2026 14:17
…ESTRATION; extract bootResidency
… under CROW_DISABLE_MODEL_ORCHESTRATION
…TION (409 + translated notice)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
raven, the second Strix Halo box, is about to join the fleet as a paired Crow instance. Its production model engine (halogen,
flash-next.service) is owned by systemd and by pi-lab's windows, never by Crow.Today a gateway is kept from orchestrating a model only by per-row gates. On raven, any synced provider row whose base_url is raven's own LAN address would count as local there. So this PR adds a host-level switch.
What
When
CROW_DISABLE_MODEL_ORCHESTRATION=1is set (only1/true, trimmed, any case;0, empty or unset leave behaviour unchanged):maybeAcquireLocalProviderandresolveWarmableProviderNamereturnnull;acquireProviderthrowsOrchestrationDisabledErrorbefore any probe or start;ensureResident,retryDeferredResidentsandcheckIdleRevertare no-ops;bootResidency(), extracted frominitOrchestrator, logs one DISABLED line and arms no idle-revert timer.bundleUp,bundleStopandstartNativeAndAwaitReadythrow too (defence in depth).inference,requires.gpu,requires.gpu_arch,providers[]or an STT/TTS seed (13 bundles today) gets 409MODEL_ORCHESTRATION_DISABLEDon install, start, stop, uninstall or shared-storage apply, including starts a peer forwards.MODEL_ORCHESTRATION_DISABLED, the runtime strip shows a translated notice (en/es), and/api/models/runtimecarriesorchestrationDisabled.acquireProvidercall skips the new error quietly. The version is bumped to 0.1.1 and the registry regenerated.configuration.md,architecture/models.md, and a newraven:namespace inport-allocation.md(gatewayraven:3009, loopback-only behind Serveraven:8444).No behaviour change on existing hosts
The env var is unset on crow, r4, grackle and black-swan. Every added check returns immediately when it is off. The
bootResidencyextraction was reviewed as behaviour-identical: same order, same_deferredResidentsset, the timer armed on both paths.scripts/run-suite.mjsdeletes the env var so the suite always runs with the switch off.Process
docs/superpowers/specs/2026-09-24-raven-instance-no-orchestration-design.mddocs/superpowers/plans/2026-09-24-raven-instance-no-orchestration.md. It took 3 rounds of adversarial review. Round 1 found the ungated model-bundle routes and a vacuous warm test; round 2 found ollama/localai missing from the predicate and a vacuousensureResidenttest.check-port-allocationandbuild-registry --checkare green.Follow-ups (not in this PR)