Freeze local image capability and add machine compatibility gating - #33
Open
xueyang-dev wants to merge 4 commits into
Open
Freeze local image capability and add machine compatibility gating#33xueyang-dev wants to merge 4 commits into
xueyang-dev wants to merge 4 commits into
Conversation
xueyang-dev
marked this pull request as ready for review
July 28, 2026 16:28
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.
Summary
runtime_ready,model_compatible,model_installed,workflow_ready, andgeneration_readyas separate backend factsunknownor incompatible machines and recheck compatibility before Runtime/model install or repair, Runtime start, generation preflight, and post-generation publicationWhy
The Phase 2C generation pipeline had a validated fixed Runtime/model/workflow identity, but machine suitability was not yet a first-class backend gate. Runtime installation alone also must not imply that the fixed image capability can run. This change makes machine compatibility explicit, versioned, fail-closed, and independently revalidated at every operation boundary.
Final boundary audit
The final audit found and fixed four P1 boundary gaps without changing capability behavior:
/system_statsresponse must reportdevices[0].type == "mps"; missing, ambiguous, or CPU primary-device state is a Runtime identity failuregeneration_readywith the current machine conclusion, so a stale prior joint-health result cannot overrideunknownorincompatible; stop, force-stop, and owned uninstall remain availableAccepted P2 limits are recorded in the freeze document: catalog-only volatile facts may be up to 300 seconds old, disk evidence uses OS-visible free bytes rather than APFS purgeable/quota predictions, and recovery still requires intact fixed manifests plus ownership evidence. None weakens a mutation or publication gate.
Current support matrix
The sole enabled row is macOS 14+ on Apple Silicon arm64 with verified Metal/MPS, at least 16 GiB memory, the required action-specific disk reserve, real lifecycle evidence, and matching fixed identities. It reports
compatible_limitedbecause support remains experimental. Windows, Linux, non-arm64 macOS, and known insufficient hardware are incompatible; missing facts reportunknownand fail closed. There is no CPU fallback or substitute model.A real detector run on the development host reported macOS 26.5.2 / arm64, Metal/MPS available, 16 GiB memory, more than the 10 GiB full-install reserve, and all three manifest identities verified. Result:
compatible_limitedwith onlyexperimental_support. This check did not install or execute a Runtime or model and did not produce an image.Validation
npm run test:api— 674 passed, 3 skipped (real model/Runtime opt-in tests intentionally not enabled)npm --prefix apps/web run build— TypeScript noEmit and Vite production build passednpm --prefix apps/web run test:state— passednpm run test:e2e— 15 passedgit diff --check origin/main...HEAD— passedFrozen boundary
This PR does not change the production model, Workflow Pack, prompt profile, sampling parameters, artifact/provenance schema, or
pending_reviewteacher boundary. SSD-1B and style-adapter work remain evaluation evidence only. It adds no model selection, extension nodes, arbitrary workflows, cloud fallback, image editing, new platform implementation, generated images, model weights, caches, or Runtime artifacts.Final boundary audit completed; Ready for Review authorized.
Do not merge without explicit merge authorization.