69 lines
3.0 KiB
Markdown
69 lines
3.0 KiB
Markdown
# PR-14 Project Runtime Core, Snapshot Model, and Lifecycle
|
|
|
|
Domain Owner: `docs/packer`
|
|
|
|
## Briefing
|
|
|
|
With cleanup and bootstrap in place, the packer can now introduce the actual project runtime.
|
|
|
|
This PR adds the runtime boundary, snapshot state model, bootstrap/load behavior, and disposal lifecycle that later query and command services will use.
|
|
|
|
## Objective
|
|
|
|
Deliver the project-scoped runtime core and one coherent in-memory snapshot model for the active service wave.
|
|
|
|
## Dependencies
|
|
|
|
- [`./PR-12-cleanup-and-unused-surface-removal-before-runtime-service-wave.md`](./PR-12-cleanup-and-unused-surface-removal-before-runtime-service-wave.md)
|
|
- [`./PR-13-embedded-bootstrap-container-owned-event-bus-and-packer-composition-root.md`](./PR-13-embedded-bootstrap-container-owned-event-bus-and-packer-composition-root.md)
|
|
- [`../specs/2. Workspace, Registry, and Asset Identity Specification.md`](../specs/2.%20Workspace,%20Registry,%20and%20Asset%20Identity%20Specification.md)
|
|
- [`../specs/5. Diagnostics, Operations, and Studio Integration Specification.md`](../specs/5.%20Diagnostics,%20Operations,%20and%20Studio%20Integration%20Specification.md)
|
|
|
|
## Scope
|
|
|
|
- add the project runtime abstraction
|
|
- define snapshot content and generation ownership only for the active service wave
|
|
- define runtime bootstrap/load and disposal behavior
|
|
- isolate filesystem repositories behind the runtime boundary
|
|
- keep snapshot scope limited to the data needed by the active Studio-facing service path
|
|
- keep the runtime implementation inside `prometeu-packer-v1` while preserving the external contract in `prometeu-packer-api`
|
|
|
|
## Non-Goals
|
|
|
|
- no Studio adapter work yet
|
|
- no doctor/build/reconcile functionality
|
|
- no full query migration yet
|
|
- no write lane yet
|
|
- no speculative snapshot fields for capabilities that are not part of the active wave
|
|
|
|
## Execution Method
|
|
|
|
1. Introduce project runtime state/container types.
|
|
2. Load registry plus asset declarations into the runtime snapshot.
|
|
3. Define runtime generation, refresh, and disposal rules.
|
|
4. Keep the runtime state minimal and aligned with the currently used service surface.
|
|
5. Make later query/command work depend on this runtime boundary rather than direct filesystem scans.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- one coherent runtime exists per active project
|
|
- runtime bootstrap/load is explicit and testable
|
|
- runtime disposal is explicit
|
|
- filesystem repositories are isolated behind the runtime boundary
|
|
- runtime state is limited to what the active Studio service wave actually consumes
|
|
|
|
## Validation
|
|
|
|
- runtime bootstrap tests
|
|
- snapshot generation tests
|
|
- lifecycle tests for bootstrap, refresh, and disposal
|
|
|
|
## Affected Artifacts
|
|
|
|
- `prometeu-packer/prometeu-packer-api/src/main/java/p/packer/**`
|
|
- `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/**`
|
|
- `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/**`
|
|
- `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/events/**`
|
|
- `prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/**`
|
|
- `prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/testing/**`
|