Context
Post-MVP residual workstream under Epic #11730. Epic #11720's D0 #11721 decides the production container topology + which model-provider shape is MVP. If D0 selects a hosted / remote model provider for the MVP, a local-model runtime profile (Ollama / MLX running in-container) becomes an optional post-MVP add-on rather than MVP scope.
Gating Condition
Pursued only if D0 #11721 de-scopes a local-model container from the MVP topology. If D0 keeps a local-model container in the MVP, this workstream is void — absorbed by #11720 (Sub B #11723 / Sub C #11724) — and this ticket closes as absorbed.
Scope
- An optional container profile running a local model runtime (Ollama or MLX), as an alternative to a hosted provider.
- Per-container resource limits + the provider-isolation boundary for the local-model container.
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
| Optional local-model compose profile |
ADR 0014; #11721 D0; ai/deploy/docker-compose.yml profile comments |
Add or finalize a local-model opt-in container profile for self-hosted model runtime while keeping external provider endpoint as the cloud MVP default. |
If the runtime image/env cannot be made portable, document the profile as operator-provided and keep it disabled by default. |
DeploymentCookbook.md, cloud deployment config/docs, compose comments. |
Compose syntax validation and static config assertions; no default service starts. |
| Provider isolation boundary |
ADR 0014 rejected-option "co-locate model runtime with Orchestrator"; #11734 scope |
Local-model runtime is a separate resource-bounded service; orchestrator consumes it via provider endpoint env, never by bundling runtime into the control-plane container. |
If using hosted provider, no local-model container runs. |
ADR/config docs. |
Static compose/service-env check proves service separation and resource bounds. |
| Operator opt-in contract |
#11734 AC; #11720 cloud profile defaults |
Profile stays inactive unless --profile local-model or equivalent operator opt-in is used; cloud defaults remain external-provider compatible. |
Missing image/model config fails at operator-run time, not default cloud startup. |
Cookbook/profile section. |
Test or script verifies default compose config excludes the optional service. |
Acceptance Criteria
Out of Scope
- The MVP model-provider topology decision — D0 #11721.
- MVP container topology + resource limits — Sub B #11723.
Related
- Parent: #11730 (Post-MVP Residual Workstreams)
- Gating input: #11721 (D0 — decides whether a local-model container is MVP or post-MVP)
- Origin Discussion: #11718
Origin Session ID
8e1dc8ca-b5a5-4479-b3cf-31918eb4a5b2
Context
Post-MVP residual workstream under Epic #11730. Epic #11720's D0 #11721 decides the production container topology + which model-provider shape is MVP. If D0 selects a hosted / remote model provider for the MVP, a local-model runtime profile (Ollama / MLX running in-container) becomes an optional post-MVP add-on rather than MVP scope.
Gating Condition
Pursued only if D0 #11721 de-scopes a local-model container from the MVP topology. If D0 keeps a local-model container in the MVP, this workstream is void — absorbed by #11720 (Sub B #11723 / Sub C #11724) — and this ticket closes as absorbed.
Scope
Contract Ledger
ai/deploy/docker-compose.ymlprofile commentslocal-modelopt-in container profile for self-hosted model runtime while keeping external provider endpoint as the cloud MVP default.DeploymentCookbook.md, cloud deployment config/docs, compose comments.orchestratorconsumes it via provider endpoint env, never by bundling runtime into the control-plane container.--profile local-modelor equivalent operator opt-in is used; cloud defaults remain external-provider compatible.Acceptance Criteria
Out of Scope
Related
Origin Session ID
8e1dc8ca-b5a5-4479-b3cf-31918eb4a5b2