diff --git a/PROGRESS.md b/PROGRESS.md index 98ce552..96e3f9b 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -10,13 +10,13 @@ | | | |---|---| -| **Latest version** | v0.21.0 (REF.1 — plug-in BPMN publishes event, pbc-production auto-creates WorkOrder) | -| **Latest commit** | `3027c1f feat(workflow): REF.1 — plug-in BPMN publishes WorkOrderRequestedEvent → pbc-production auto-creates WorkOrder` | +| **Latest version** | v0.22.0 (P5.4 — pbc-warehousing StockTransfer; 9 of 10 core PBCs) | +| **Latest commit** | `ba50780 feat(pbc-warehousing): P5.4 — StockTransfer aggregate with atomic TRANSFER_OUT/IN ledger pair` | | **Repo** | https://github.com/reporkey/vibe-erp | -| **Modules** | 19 | -| **Unit tests** | 278, all green | +| **Modules** | 20 | +| **Unit tests** | 288, all green | +| **Real PBCs implemented** | 9 of 10 (`pbc-identity`, `pbc-catalog`, `pbc-partners`, `pbc-inventory`, `pbc-warehousing`, `pbc-orders-sales`, `pbc-orders-purchase`, `pbc-finance`, `pbc-production`) | | **End-to-end smoke runs** | An SO confirmed with 2 lines auto-spawns 2 draft work orders via `SalesOrderConfirmedSubscriber`; completing one credits the finished-good stock via `PRODUCTION_RECEIPT`, cancelling the other flips its status, and a manual WO can still be created with no source SO. All in one run: 6 outbox rows DISPATCHED across `orders_sales.SalesOrder` and `production.WorkOrder` topics; pbc-finance still writes its AR row for the underlying SO; the `inventory__stock_movement` ledger carries the production receipt tagged `WO:`. First PBC that REACTS to another PBC's events by creating new business state (not just derived reporting state). | -| **Real PBCs implemented** | 8 of 10 (`pbc-identity`, `pbc-catalog`, `pbc-partners`, `pbc-inventory`, `pbc-orders-sales`, `pbc-orders-purchase`, `pbc-finance`, `pbc-production`) | | **Plug-ins serving HTTP** | 1 (reference printing-shop, 7 endpoints + own DB schema + own metadata + own i18n bundles) | | **Production-ready?** | **No.** Foundation is solid; many capabilities still deferred. | @@ -81,7 +81,7 @@ That target breaks down into roughly 30 work units across 8 phases. About **22 a | P5.1 | `pbc-catalog` — items, units of measure | ✅ DONE — `69f3daa` | | P5.2 | `pbc-partners` — customers, suppliers, contacts, addresses | ✅ DONE — `3e40cae` | | P5.3 | `pbc-inventory` — locations + stock balances (movements deferred) | ✅ DONE — `f63a73d` | -| P5.4 | `pbc-warehousing` — receipts, picks, transfers, counts | 🔜 Pending | +| P5.4 | `pbc-warehousing` — receipts, picks, transfers, counts | ✅ Partial — `ba50780` — StockTransfer aggregate live (create/confirm/cancel), confirm writes atomic TRANSFER_OUT + TRANSFER_IN ledger pair via InventoryApi; transactional rollback verified; receipts (own-aggregate version), picks, counts still pending | | P5.5 | `pbc-orders-sales` — sales orders + lines (deliveries deferred) | ✅ DONE — `a8eb2a6` | | P5.6 | `pbc-orders-purchase` — POs + receive flow (RFQs deferred) | ✅ DONE — `2861656` | | P5.7 | `pbc-production` — work orders, routings, operations | ✅ Partial — v2 state machine (DRAFT → IN_PROGRESS → COMPLETED), `WorkOrderInput` BOM child entity with per-unit consumption auto-issuing `MATERIAL_ISSUE` at complete time, scrap verb writing negative `ADJUSTMENT`. Auto-spawn from SO confirm still works with empty BOM. Routings / operations / scheduling still pending. |