This sub-issue tracks the v0.8 update to docs/LIFE_RUNTIME_STANDARD.md — the
authoritative runtime protocol — replacing the v0.7 8-step load sequence with
the cleaner 5-stage assembly pipeline and adding the Provider Registry concept.
This is the final sub-issue in the v0.8 epic; it depends on Binding (#N4) and
Tier (#N5) being merged first because the pipeline reads both.
Scope
- Update:
docs/LIFE_RUNTIME_STANDARD.md — replace 8-step load sequence with 5-stage assembly pipeline; add Provider Registry, LifeCapabilityProvider interface, sandbox levels, OS bootstrap, hosted-vs-offline rules
- Update:
examples/minimal-life-package/README.md — show how the package would launch under v0.8 runtime
- New tests: lightweight sanity tests for Provider Registry layout (no real provider implementation in this PR)
CHANGELOG.md v0.8 Draft entry
5-stage assembly pipeline (replaces v0.7 8-step)
- Verify — sha256 + JSON Schema + signature + expiry +
lifecycle_state + withdrawal ping + audit chain
- Resolve — read
binding.capabilities + tier; consult Provider Registry; tier-driven graceful degradation (low tier auto-fallback, high tier strict-or-refuse)
- Assemble — instantiate providers, inject
hard_constraints, inject disclosure label, emit capability_bound audit event
- Run — start surface; filter inputs/outputs by
forbidden_uses[]; prefix outputs with disclosure label
- Guard — withdrawal watcher (≥24h ping); memorial watcher; expiry watcher; audit emitter
Provider Registry & interface
~/.dlrs/providers/<provider_name>/ directory layout
- Provider classes:
- built-in — shipped with runtime; trusted; OS process
- user-installed — installed via lifectl / OS package manager; trusted; OS process
.life-bundled — disallowed in v0.8 (per Topic 4 D2)
- Interface signature (normative):
LifeCapabilityProvider { capability, name, version, engine_compatibility_id, supports(binding), load(asset_paths, binding) → instance, teardown(instance) }
Decisions referenced
- D1 = C: graded sandbox (built-in / user OS-process; bundled MUST be sandboxed or refused)
- D2 = B (v0.8) + C (v1.0+): no bundled provider code in v0.8; trusted issuer whitelist in v1.0+
- D3 = Hybrid: pure-cloud
.life acceptable; offline recommended not mandatory; both first-class; default per-user
- D4 = C: three-field surface (
supported[] + preferred + minimum_required)
- D5 = C: bootstrap via OS package manager;
.life carries no installer code
(See docs/LIFE_ASSET_ARCHITECTURE.md topic 4 for full rationale.)
Acceptance criteria
Parent epic: see top of #N1.
This sub-issue tracks the v0.8 update to
docs/LIFE_RUNTIME_STANDARD.md— theauthoritative runtime protocol — replacing the v0.7 8-step load sequence with
the cleaner 5-stage assembly pipeline and adding the Provider Registry concept.
This is the final sub-issue in the v0.8 epic; it depends on Binding (#N4) and
Tier (#N5) being merged first because the pipeline reads both.
Scope
docs/LIFE_RUNTIME_STANDARD.md— replace 8-step load sequence with 5-stage assembly pipeline; add Provider Registry,LifeCapabilityProviderinterface, sandbox levels, OS bootstrap, hosted-vs-offline rulesexamples/minimal-life-package/README.md— show how the package would launch under v0.8 runtimeCHANGELOG.mdv0.8 Draft entry5-stage assembly pipeline (replaces v0.7 8-step)
lifecycle_state+ withdrawal ping + audit chainbinding.capabilities+tier; consult Provider Registry; tier-driven graceful degradation (low tier auto-fallback, high tier strict-or-refuse)hard_constraints, inject disclosure label, emitcapability_boundaudit eventforbidden_uses[]; prefix outputs with disclosure labelProvider Registry & interface
~/.dlrs/providers/<provider_name>/directory layout.life-bundled — disallowed in v0.8 (per Topic 4 D2)LifeCapabilityProvider { capability, name, version, engine_compatibility_id, supports(binding), load(asset_paths, binding) → instance, teardown(instance) }Decisions referenced
.lifeacceptable; offline recommended not mandatory; both first-class; default per-usersupported[]+preferred+minimum_required).lifecarries no installer code(See
docs/LIFE_ASSET_ARCHITECTURE.mdtopic 4 for full rationale.)Acceptance criteria
docs/LIFE_RUNTIME_STANDARD.mdreflects 5-stage pipeline (8-step section removed or marked superseded)examples/minimal-life-package/README.mdupdated to reflect v0.8 launch flowCHANGELOG.mdv0.8 Draft entryParent epic: see top of #N1.