AT-T018 / WX-T018 `wx_attachment_mount` 在全仓不存在——只有目录里有这一行,注册表 39 个工具里没有它
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
> 来自 #3005(AT 验收 B4+B5,DOC 组)。实测 SHA `94f6dda037ca94da73d1b0a6359763a54db832a3`。
## 结论
`WX-T018 wx_attachment_mount`(「把用户附件装入工作区」,P0,W02)**没有实现**。按 #3005 的定级纪律「缺实现 ⇒ BLOCKED,不是 FAIL」,AT-T018 记 **BLOCKED**。
## 证据(实测,非推断)
### ① 全仓只有目录里提到它
```
grep -rn "wx_attachment_mount" --include=*.ts --include=*.py --include=*.json . \
--exclude-dir=node_modules --exclude-dir=.git
→ docs/design/standard-capabilities/capability-catalog.json:810: "canonical_name": "wx_attachment_mount",
```
**一条命中,就是目录自己那行。** 没有 contracts schema、没有 python 工具模块、没有 api 控制器、没有测试。
### ② 生成的工具身份快照里没有它
从 `apps/deep-agent-service/src/deep_agent_service/generated/*.json` 抽出全部注册工具名(39 个):
```
browser_click, browser_fill_form, browser_navigate, browser_snapshot, browser_take_screenshot,
delete, edit_file, execute, fetch_url, glob, grep, ls, read_file, spawn_async_task,
sql_db_list_tables, sql_db_query, sql_db_query_checker, sql_db_schema, web_search, write_file,
wx_artifact_download, wx_artifact_publish, wx_audio_transcribe, wx_canvas_read, wx_canvas_update,
wx_document_parse, wx_image_generate, wx_knowledge_read, wx_knowledge_search, wx_memory_delete,
wx_memory_search, wx_memory_write, wx_project_list, wx_project_read, wx_run_cancel, wx_run_status,
wx_schedule_cancel, wx_schedule_create, wx_schedule_list, wx_skill_create_draft
```
`wx_attachment_mount` 不在其中。(顺带:`confirm_task_intent` / `fill_run_params` / `choose_execution_option` 三个 HITL 工具也不在这张表里,但那是 B 组的范围,不在本 issue 内,只作备查。)
## 影响
- **AT-T018 直接 BLOCKED**:正向(中文附件挂载后字节 hash 一致)与反证(伪造他人附件 ID、重复装载不复制成多个输入)都无从执行。
- **牵连 WX-T019 与 WX-T037**:目录里 `wx_document_parse` 的 `dependencies` 是 `["WX-T018","WX-E003"]`,`wx_audio_transcribe` 是 `["WX-T018","WX-E006"]`。这两个工具**实现是存在的**,说明它们今天各自用别的方式拿到输入(document_parse 走 `/internal/agent-runs/:id/document/parse` 的 `workspacePath`),也就是说**目录声明的依赖链与真实实现不一致**——要么补 T018,要么把目录里这两条依赖改成实际用的那条路径。两者都需要裁决,不该由验收方自行选。
## 建议下一步(未自行动手)
1. 先确认 T018 是**待实现**还是**已被别的机制取代**。如果是后者,目录 `capability-catalog.json` 需要一次修订(删除该条或标注被取代),否则 46 项 Tools 矩阵的分母就是错的,后续每一轮验收都会重新在这里绊一次。
2. 若确认待实现:按 `remaining_delta` 的原话「将已授权附件物化到 E003 只读路径,复用撤销和来源身份」补齐,并同时补 §11 要求的反证(伪造他人 attachmentId ⇒ 拒绝且无副作用)。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with docs/design/standard-capabilities/capability-catalog.json and the generated JSON snapshots under apps/deep-agent-service/src/deep_agent_service/generated/, then inspect the existing wx_document_parse endpoint at /internal/agent-runs/:id/document/parse and its workspacePath flow. First determine whether WX-T018 is missing or superseded. Done means either implementing and testing the authorized, read-only attachment path with rejection and no side effects for another user's attachment, or correcting the catalog dependencies and status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100