merge: integrate list attachment behavior check
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Task: Check list import unrelated attachment behavior
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260831-check-list-import-attachments-c4a91f2b
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260831-check-list-import-attachments-c4a91f2b-check-list-import-attachments-c4a91f2b
|
||||
- Worktree: /Users/inmanx/Documents/lwltAPI-worktrees/20260831-check-list-import-attachments-c4a91f2b
|
||||
- Base commit: 416d7e8869bb5ea789f7a0c265d87e4c63a294e5
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Read the active passenger-list import registry, Skill contracts, attachment normalizer, task-state transitions, AgentBus reply flow, platform attachment UI, and focused tests.
|
||||
- Determine whether an unrelated attachment produces a user-visible prompt in the manual platform and AgentBus/WeChat paths.
|
||||
- Do not change product behavior, access a live runtime, deploy, restart, or read secrets.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- This is a read-only behavior inspection against current committed `main` source at base commit `416d7e8869bb5ea789f7a0c265d87e4c63a294e5`.
|
||||
- Treat “unrelated attachment” as both an unsupported file type/count/metadata case and a nominal `.xls`/`.xlsx` whose workbook content does not match the roster template.
|
||||
- Report channel differences explicitly; do not infer live deployment state from repository source.
|
||||
|
||||
## Outcome
|
||||
|
||||
- The manual platform visibly rejects a non-`.xls`/`.xlsx` selection and displays the task service's rejection message when an Excel workbook fails roster normalization. The task remains `awaiting_attachment` so a corrected workbook can be sent.
|
||||
- AgentBus/WeChat immediately returns a failed result for multiple attachments, unsupported extensions, missing attachment metadata, and other pre-ingestion `InputAttachmentError` cases; the original roster task is not advanced.
|
||||
- A valid-extension Excel workbook with unrelated/invalid roster content is normalized and rejected correctly, and the task message/event is updated to `名单附件校验未通过【<code>】,请按模板修正后重新发送。` while remaining `awaiting_attachment`.
|
||||
- Current AgentBus delivery logic does not immediately return that workbook-rejection message: `processInboundTask` ignores `result.input_attachment`, and durable finalization excludes `awaiting_attachment`. In the non-durable path, `awaiting_attachment` is also non-final, so the specific rejection is not emitted as the immediate result. This is a channel reply gap, not a validation gap.
|
||||
|
||||
## Verification
|
||||
|
||||
- Static inspection: `agent设计规范/business-adaptation-registry.md`, `agent设计规范/skills/lwlt-lifecycle/`, `control-plane/src/input-attachment.ts`, `control-plane/src/passenger-roster-workbook.ts`, `control-plane/src/task-service.ts`, `control-plane/src/agentbus.ts`, and `LianSyn-platform/app.js`.
|
||||
- Passed: bundled Node.js `--test LianSyn-platform/app-roster-attachment.test.mjs` (4/4).
|
||||
- Attempted focused TypeScript tests, but the isolated worktree has no `node_modules` and neither the bundled runtime nor workspace provides `tsx`; test loading failed before any test executed. No business test failed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- If requested, add an AgentBus/WeChat immediate result for rejected roster workbooks while preserving the original task in `awaiting_attachment`, plus durable and legacy listener coverage.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None recorded.
|
||||
Reference in New Issue
Block a user