boardx / boardx/workspacex

AT-T018 / WX-T018 `wx_attachment_mount` 在全仓不存在——只有目录里有这一行,注册表 39 个工具里没有它

Open
#3,017 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.