feat: expand EasyCode software factory workflows

This commit is contained in:
王鹏
2026-07-15 12:48:50 +08:00
parent fcfa4374d7
commit 79dea897bc
1108 changed files with 163774 additions and 21593 deletions

View File

@@ -0,0 +1,56 @@
# Plugin Local H2 Delivery Rehearsal Implementation Plan
> **For agentic workers:** Implement task-by-task with tests first. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Execute all six delivery rehearsal scenarios against an ephemeral local H2 target and persist integrity-verifiable evidence without enabling external MySQL.
**Architecture:** A control-plane coordinator persists Attempt and Receipt state through conditional MyBatis updates. `PluginDeliveryLocalH2Sandbox` creates one isolated MySQL-mode H2 database per Attempt and reuses the trusted SQL, permission, and menu JDBC Executors. The execution service runs ordered scenarios synchronously and verifies evidence on read.
**Tech Stack:** Java 8, Spring Boot 2.5, MyBatis, H2 MySQL mode, JUnit 4, Vue 2, Element UI.
### Task 1: Attempt And Receipt Ledger
- [x] Add `LOCAL_H2` Attempt and Scenario Receipt models.
- [x] Add control tables, unique identities, Run/Scenario foreign keys, and status indexes to all three schema scripts.
- [x] Add conditional start, finish, fail, and abort Mapper updates.
- [x] Bind every Attempt to the immutable parent Run fingerprints.
### Task 2: Local H2 Session
- [x] Package H2 at runtime without importing H2 APIs into production source.
- [x] Create a unique in-memory database and destroy it on Session close.
- [x] Seed only the parent menu, role, target Receipt, permission ownership, and menu ownership contracts required by the baseline.
- [x] Resolve all baseline content from installed trusted Plugin releases.
- [x] Reuse the production SQL, permission, and menu Executors.
### Task 3: Six Scenarios
- [x] Execute approval request/approval with separation evidence.
- [x] Execute request expiry and approval revocation.
- [x] Execute SQL, permission, and menu mixed apply.
- [x] Create a target Receipt failure and retry the exact same idempotency identity.
- [x] Execute menu, permission, and SQL compensation in reverse order.
- [x] Require all target state and Receipt assertions before a Scenario succeeds.
### Task 4: Recovery And Evidence
- [x] Persist canonical evidence and SHA-256 per terminal Receipt.
- [x] Verify ordered Scenario identity, evidence fingerprints, counts, and Attempt state on detail reads.
- [x] Permit replay links only from failed or aborted Attempts.
- [x] Permit manual abort only from pending or running Attempts.
- [x] Keep raw evidence JSON and all local connection details out of REST responses.
### Task 5: API And Workspace
- [x] Add start, list, detail, and abort endpoints under `generator:delivery:verify`.
- [x] Add Attempt history, progress, replay, abort, and evidence actions to the delivery report.
- [x] Render evidence in a responsive expandable table.
- [x] Keep external target selection absent.
### Task 6: Regression
- [x] Run 182 focused Plugin tests with no failures.
- [x] Run 825 generator tests: 807 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 three existing warning classes.
- [x] Confirm both development endpoints still return HTTP 200.