68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
|
|
# Plugin Transition Preflight And Delivery Acceptance Implementation Plan
|
||
|
|
|
||
|
|
> **For agentic workers:** Implement task-by-task with tests first. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||
|
|
|
||
|
|
**Goal:** Make Transition routing and approval requirements server-authoritative before execution, and expose one non-secret deployment acceptance report for the mixed SQL/permission/menu delivery chain.
|
||
|
|
|
||
|
|
**Architecture:** `PluginTransitionExecutionService` reuses its immutable state machine and routing resolver to return an exact preflight. `PluginDeliveryAcceptanceService` combines installed releases, configured routes, environment binding, approval policy, and the read-only target probe into explicit checks. The Vue workflow consumes these contracts and no longer infers approval from Registry-wide flags.
|
||
|
|
|
||
|
|
**Tech Stack:** Java 8, Spring Boot 2.5, MyBatis, JUnit 4, Vue 2, Element UI.
|
||
|
|
|
||
|
|
### Task 1: Preflight Contract
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `PluginTransitionExecutionPreflight.java`
|
||
|
|
- Create: `PluginTransitionRoutePreview.java`
|
||
|
|
- Modify: `PluginTransitionExecutionService.java`
|
||
|
|
|
||
|
|
- [x] Reuse the exact requested/effective mode state machine.
|
||
|
|
- [x] Return immutable Transition, route, environment, and ordered step identity.
|
||
|
|
- [x] Distinguish READY, APPROVAL_REQUIRED, and NO_ACTION.
|
||
|
|
- [x] Return only exact, complete, unexpired, separation-valid approval evidence.
|
||
|
|
- [x] Repeat every trusted check during actual execution.
|
||
|
|
|
||
|
|
### Task 2: API And Permission Boundary
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Modify: `FeaturePluginController.java`
|
||
|
|
- Modify: Plugin API module
|
||
|
|
- Test: controller permission contract
|
||
|
|
|
||
|
|
- [x] Add the Transition preflight endpoint.
|
||
|
|
- [x] Permit execute or approve actors to inspect preflight.
|
||
|
|
- [x] Keep execute and approval mutation permissions unchanged.
|
||
|
|
|
||
|
|
### Task 3: Deployment Acceptance
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Create: `PluginDeliveryAcceptanceCheck.java`
|
||
|
|
- Create: `PluginDeliveryAcceptanceService.java`
|
||
|
|
- Modify: `PluginDeliveryVerificationStatus.java`
|
||
|
|
- Test: `PluginDeliveryAcceptanceServiceTest.java`
|
||
|
|
|
||
|
|
- [x] Check baseline Plugins, Registry mode, mixed routes, environment, approval, target configuration, and target ledgers.
|
||
|
|
- [x] Require every check to pass before reporting READY.
|
||
|
|
- [x] Keep all connection details and raw failures out of the response.
|
||
|
|
- [x] Delegate the delivery verification endpoint to the acceptance service.
|
||
|
|
|
||
|
|
### Task 4: Preflight-Driven UI
|
||
|
|
|
||
|
|
**Files:**
|
||
|
|
- Modify: Plugin Registry and delivery verification views
|
||
|
|
- Modify: `pluginRegistryView.test.mjs`
|
||
|
|
|
||
|
|
- [x] Preflight every execute, retry, and compensate command.
|
||
|
|
- [x] Build execution identity only from the server response.
|
||
|
|
- [x] Show ordered step routes and exact approval state in the approval workspace.
|
||
|
|
- [x] Warn explicitly when a real route is configured without approval enforcement.
|
||
|
|
- [x] Render seven deployment acceptance checks.
|
||
|
|
|
||
|
|
### Task 5: Documentation And Regression
|
||
|
|
|
||
|
|
- [x] Add design and implementation records and update the AI Software Factory roadmap.
|
||
|
|
- [x] Run 169 focused Plugin tests.
|
||
|
|
- [x] Run 812 generator tests: 794 pass and the exact 18 known baseline failures remain.
|
||
|
|
- [x] Run 38 admin tests and four frontend contract tests.
|
||
|
|
- [x] Run the production frontend build with only the existing warnings.
|
||
|
|
- [x] Confirm both development endpoints still respond with HTTP 200.
|