74 lines
4.0 KiB
Markdown
74 lines
4.0 KiB
Markdown
# PR-17 Studio Runtime Adapter and Assets Workspace Consumption
|
|
|
|
Domain Owner: `docs/packer`
|
|
Cross-Domain Impact: `docs/studio`
|
|
|
|
## Briefing
|
|
|
|
Once the active query and command surface is runtime-backed, Studio should consume that path as a frontend without recreating packer semantics.
|
|
|
|
This PR hardens the Studio adapters and the `Assets` workspace consumption path for the service-only wave while preserving the modular split between `prometeu-packer-api`, `prometeu-packer-v1`, `prometeu-studio`, and `prometeu-app`.
|
|
|
|
## Objective
|
|
|
|
Deliver the Studio-side adapter and `Assets` workspace integration for the active runtime-backed service surface.
|
|
|
|
## Dependencies
|
|
|
|
- [`./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)
|
|
- [`./PR-15-snapshot-backed-asset-query-services.md`](./PR-15-snapshot-backed-asset-query-services.md)
|
|
- [`./PR-16-write-lane-command-completion-and-used-write-services.md`](./PR-16-write-lane-command-completion-and-used-write-services.md)
|
|
- cross-domain reference: [`../../studio/specs/2. Studio UI Foundations Specification.md`](../../studio/specs/2.%20Studio%20UI%20Foundations%20Specification.md)
|
|
- cross-domain reference: [`../../studio/specs/4. Assets Workspace Specification.md`](../../studio/specs/4.%20Assets%20Workspace%20Specification.md)
|
|
|
|
## Scope
|
|
|
|
- adapt Studio to consume runtime-backed packer queries and commands
|
|
- preserve `request/response` as the primary integration model
|
|
- consume packer lifecycle events through the host bridge from `PackerEventSink` into the container-owned typed event bus path
|
|
- keep the `Assets` workspace aligned with the active service-only wave
|
|
- remove adapter branches that only exist for inactive `doctor`, `build/pack`, or reconcile usage
|
|
- keep `prometeu-studio` bound only to `prometeu-packer-api`
|
|
- let `prometeu-app` remain responsible for installing the concrete `Container` implementation, applying the `p.packer.Packer` entrypoint from `prometeu-packer-v1`, and bridging `PackerEventSink` into the host bus
|
|
|
|
## Non-Goals
|
|
|
|
- no doctor UI
|
|
- no pack/build UI
|
|
- no reconcile-state UI beyond what the current service wave actually exposes
|
|
|
|
## Execution Method
|
|
|
|
1. Update the Studio adapter layer to consume the runtime-backed service path.
|
|
2. Preserve translational mapping only.
|
|
3. Validate that `prometeu-studio` does not depend on `prometeu-packer-v1` classes directly.
|
|
4. Validate command submission plus event-driven lifecycle visibility through the host `PackerEventSink` bridge and shared bus path.
|
|
4. Remove adapter branches that only keep deferred capabilities artificially wired.
|
|
5. Keep the `Assets` workspace focused on the currently active service surface.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Studio remains a consumer of packer runtime semantics
|
|
- `Assets` workspace list/details/actions run through the active runtime-backed service path
|
|
- command submission plus event observation are coherent end to end
|
|
- no inactive doctor/build/reconcile surfaces are reintroduced
|
|
- Studio adapters no longer preserve dead branches for deferred capability families
|
|
- `prometeu-studio` depends only on `prometeu-packer-api`
|
|
- `prometeu-app` is the layer that binds the concrete `Container` implementation and the `p.packer.Packer` entrypoint from `prometeu-packer-v1`
|
|
- Studio consumes packer lifecycle visibility through a host-provided `PackerEventSink` bridge rather than by exposing host bus types inside packer contracts
|
|
|
|
## Validation
|
|
|
|
- Studio adapter tests
|
|
- `Assets` workspace smoke tests
|
|
- end-to-end tests for list/details/write flows used by Studio
|
|
|
|
## Affected Artifacts
|
|
|
|
- `prometeu-studio/src/main/java/p/studio/**`
|
|
- `prometeu-studio/src/test/java/p/studio/**`
|
|
- `prometeu-app/src/main/java/p/studio/**`
|
|
- `prometeu-packer/prometeu-packer-api/src/main/java/p/packer/**` integration-facing contracts
|
|
- `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/**` embedded runtime implementation surfaces
|
|
- `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/events/**` embedded runtime event surfaces
|