3.3 KiB
3.3 KiB
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:
416d7e8869 - 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
mainsource at base commit416d7e8869bb5ea789f7a0c265d87e4c63a294e5. - Treat “unrelated attachment” as both an unsupported file type/count/metadata case and a nominal
.xls/.xlsxwhose 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/.xlsxselection and displays the task service's rejection message when an Excel workbook fails roster normalization. The task remainsawaiting_attachmentso 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
InputAttachmentErrorcases; 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 remainingawaiting_attachment. - Current AgentBus delivery logic does not immediately return that workbook-rejection message:
processInboundTaskignoresresult.input_attachment, and durable finalization excludesawaiting_attachment. In the non-durable path,awaiting_attachmentis 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, andLianSyn-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_modulesand neither the bundled runtime nor workspace providestsx; 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.