61 lines
5.0 KiB
Markdown
61 lines
5.0 KiB
Markdown
# Task: Add batch shared-child order creation
|
|
|
|
## Identity
|
|
|
|
- Task ID: 20260908-shared-child-batch-create-4e7c2a91
|
|
- Mode: Feature
|
|
- Branch: codex/20260908-shared-child-batch-create-4e7c2a91-shared-child-batch-create
|
|
- Worktree: /Users/inmanx/Documents/lwltAPI-shared-child-batch-create-4e7c2a91
|
|
- Base commit: 515b545b32fcbb30311b56c5b90a36f3d3834d95
|
|
- Owner: codex
|
|
- Status: Ready for integration
|
|
|
|
## Scope
|
|
|
|
- Add a Program-only `shared_child_order_batch_create` business route for the directive `散拼团多个新增子单`.
|
|
- Parse one inclusive departure date range plus customer, product, optional leader, passenger counts, and optional special requests.
|
|
- Resolve every matching shared mother plan in the range before the first write, then create one identical child order per resolved parent sequentially.
|
|
- Add strict execution validation, batch receipts, stop-on-first-failure behavior, database route constraints, tests, and the synchronized Chrome extension release artifact.
|
|
|
|
## Intent And Constraints
|
|
|
|
- Program processing only: do not add or modify any Skill, Agent prompt, external-Agent directive route, or Agent parsing action.
|
|
- The product is a required hard match against the visible shared-plan row; booking customer and leader are child-order fields and must not filter mother plans.
|
|
- Enumerate and validate the complete target set before the first ERP write. Zero targets, incomplete parent references, or duplicate/conflicting parent identity must fail closed.
|
|
- Execute targets in date/tid order, retain per-parent receipts, stop after the first blocked/failed/uncertain result, and never retry a write automatically.
|
|
- No live ERP write, deployment, restart, or external send is authorized by this task.
|
|
|
|
## Outcome
|
|
|
|
- Added the nineteenth machine business route, `shared_child_order_batch_create`, with the Program-only directive `散拼团多个新增子单`; the external Agent continues to expose and validate only its original eighteen routes.
|
|
- The deterministic parser now accepts the inclusive `出发日期` range and emits customer, product, optional leader, passenger counts, and optional special requests under parser version `ltjt-program-parser-v1.0.7`.
|
|
- The browser adapter performs a complete read-only, per-date shared-plan enumeration before the write boundary, hard-matches the product on concrete native parent rows, rejects empty/incomplete/conflicting/oversized target sets, and binds each target to its parent group number, numeric `tid`, and departure date.
|
|
- Batch execution reuses the verified single-child path once per resolved parent in deterministic order, records per-parent outcomes and child-order receipts, stops at the first blocked/failed/uncertain result, leaves remaining targets `not_started`, and never retries a write automatically.
|
|
- Added schema, mapping, UI label, reply profile, migration `022_shared_child_order_batch_create.sql`, fail-closed authorization compatibility, parser/browser/Agent-boundary regression coverage, and Chrome extension release `0.5.170`.
|
|
- Rebuilt `dist/ltjt-order-assistant-0.5.170.zip` from the final extension source and synchronized `dist/release-manifest.json`; the previously tracked `0.5.169` archive is replaced by the new version and remains recoverable from Git history.
|
|
- No Skill, Agent prompt, Agent directive registry, Agent parsing schema, live ERP data, deployed service, or running process was changed.
|
|
|
|
## Verification
|
|
|
|
- `node --check chrome-extension/ltjt-order-assistant/background.js` — passed.
|
|
- `node --check chrome-extension/ltjt-order-assistant/inpage.js` — passed.
|
|
- `node --check chrome-extension/ltjt-order-assistant/operation-plans.js` — passed.
|
|
- Targeted Program parser and Program-only route tests — passed, including the supplied `10-06到11-03` sample and the Agent rejection boundary.
|
|
- Targeted operation-plan, lifecycle-contract, and external-Agent tests — passed.
|
|
- `node --run check` — passed.
|
|
- `node --run test:control-plane` — passed.
|
|
- `node --run test:legacy` — passed (277 tests).
|
|
- `node --run build` — passed.
|
|
- `node --run check:repo` — passed, including exact release archive/source and SHA-256 consistency.
|
|
- `git diff --check` — passed.
|
|
|
|
## Follow-ups
|
|
|
|
- Deployment is intentionally out of scope. Before production use, apply migration 022, deploy the control plane/platform changes, install extension `0.5.170`, and explicitly grant the new route to each intended non-administrator account; the migration does not auto-grant it.
|
|
- Run a separately authorized, bounded ERP acceptance task before broad production rollout because this task performed no live ERP write.
|
|
|
|
## Promotion Candidates
|
|
|
|
- Integration should promote parser `v1.0.7`, machine route count 19, Program-only route count 3, migration 022, and extension `0.5.170` into canonical project state, architecture, business-rule, and release records.
|
|
- A later documentation-only integration may clarify references to “18 machine routes” as “18 external-Agent routes / 19 total machine routes” without adding this Program-only business to any Skill or Agent processing path.
|