QiuSW
|
3d063b9785
|
docs(tasks): revise T-103 evidence states
|
2026-08-04 11:35:18 +08:00 |
|
QiuSW
|
932ca8c7f3
|
docs(tasks): record T-103 sanitizer milestone
|
2026-08-04 11:25:40 +08:00 |
|
QiuSW
|
17e295e99d
|
docs(tasks): authorize T-103 sanitizer CLI
|
2026-08-04 11:03:39 +08:00 |
|
QiuSW
|
d80e4393b4
|
docs(tasks): record T-110 architecture validation
|
2026-08-04 11:00:20 +08:00 |
|
QiuSW
|
82f57c7233
|
docs(architecture): approve controlled trial SKU entry
|
2026-08-04 10:59:40 +08:00 |
|
QiuSW
|
d81fc722dc
|
docs(tasks): define controlled SKU entry boundary
|
2026-08-04 10:49:05 +08:00 |
|
QiuSW
|
abeefbbea8
|
docs(architecture): record T-103 purchase-entry no-go
|
2026-08-04 10:42:28 +08:00 |
|
QiuSW
|
b66417d80b
|
docs(tasks): reject unsafe T-103 evidence set
|
2026-08-04 10:36:53 +08:00 |
|
QiuSW
|
5b56161fd7
|
docs(tasks): record T-103 evidence scaffold audit
|
2026-08-04 10:10:11 +08:00 |
|
QiuSW
|
a92b8f6be0
|
feat(client): add T-103 manual SKU evidence capture
|
2026-08-04 10:08:49 +08:00 |
|
QiuSW
|
ec8257ba8b
|
docs(tasks): start T-103 SKU panel spike
|
2026-08-04 09:58:13 +08:00 |
|
QiuSW
|
27999c8c85
|
docs(tasks): define T-103 SKU panel spike
|
2026-08-04 09:57:07 +08:00 |
|
QiuSW
|
1dc83086a0
|
docs(tasks): complete T-102 product link validation
|
2026-08-04 09:51:00 +08:00 |
|
QiuSW
|
ad55e77bda
|
docs(tasks): record T-102 successful capture
|
2026-08-04 09:46:52 +08:00 |
|
QiuSW
|
652eca7953
|
docs(tasks): record T-102 foreground wait fix
|
2026-08-04 09:41:03 +08:00 |
|
QiuSW
|
cb646b4974
|
fix(client): wait for PDD foreground after intent
|
2026-08-04 09:40:05 +08:00 |
|
QiuSW
|
9452debf66
|
docs(tasks): record T-102 foreground evidence
|
2026-08-04 09:34:53 +08:00 |
|
QiuSW
|
4adeb1b37f
|
docs(tasks): record T-102 foreground mismatch
|
2026-08-04 09:32:54 +08:00 |
|
QiuSW
|
2ea28c2626
|
docs(tasks): record T-102 offline implementation
|
2026-08-04 09:27:23 +08:00 |
|
QiuSW
|
7040bb61d8
|
feat(client): add guarded product link capture
|
2026-08-04 09:26:37 +08:00 |
|
QiuSW
|
e7a4be1b9b
|
docs(tasks): start T-102 product link spike
|
2026-08-04 09:10:00 +08:00 |
|
QiuSW
|
4281b06711
|
docs(tasks): define T-102 product link spike
|
2026-08-04 09:07:44 +08:00 |
|
QiuSW
|
393f26de53
|
docs(tasks): complete T-101 device validation
|
2026-08-04 09:03:26 +08:00 |
|
QiuSW
|
71c66a074a
|
docs(tasks): record T-101 wifi evidence
|
2026-08-04 08:55:31 +08:00 |
|
QiuSW
|
7905fa0b70
|
fix(client): accept whitespace in screenshot base64
|
2026-08-04 08:51:00 +08:00 |
|
QiuSW
|
c4cf19fd55
|
docs(tasks): record T-101 wifi connectivity
|
2026-08-04 08:36:26 +08:00 |
|
QiuSW
|
de8187eb5b
|
feat(client): add T-101 device baseline
|
2026-08-03 19:28:39 +08:00 |
|
QiuSW
|
f3294633c2
|
docs(tasks): allow T-101 adb dependency update
|
2026-08-03 19:07:01 +08:00 |
|
QiuSW
|
0fbf66836b
|
docs(tasks): start T-101 device connectivity spike
|
2026-08-03 18:56:39 +08:00 |
|
QiuSW
|
4f4a95a55e
|
build: establish unified project entry
|
2026-08-03 18:55:32 +08:00 |
|
QiuSW
|
637c341b95
|
docs(tasks): define T-101 device connectivity spike
|
2026-08-03 18:40:19 +08:00 |
|
QiuSW
|
87591e84f9
|
feat(admin): establish core data model
|
2026-08-03 18:37:48 +08:00 |
|
QiuSW
|
8be6d206dd
|
docs(tasks): define T-003 unified entry
|
2026-08-03 18:35:12 +08:00 |
|
QiuSW
|
bcec012c8b
|
feat(client): initialize procurement tool skeleton
|
2026-08-03 18:32:00 +08:00 |
|
QiuSW
|
2ab5baa776
|
docs(tasks): expand T-002 shared document paths
|
2026-08-03 18:16:48 +08:00 |
|
QiuSW
|
cf293d2382
|
docs(tasks): define T-004 core data model
|
2026-08-03 18:16:08 +08:00 |
|
QiuSW
|
c72371ce90
|
feat(admin): initialize procurement service skeleton
|
2026-08-03 18:13:30 +08:00 |
|
QiuSW
|
b7559a9451
|
docs(tasks): define parallel T-001 and T-002
|
2026-08-03 17:57:53 +08:00 |
|
QiuSW
|
a63bdb8c37
|
docs(plan): prioritize MVP critical path
|
2026-08-03 17:47:22 +08:00 |
|
QiuSW
|
4948afc393
|
docs(tasks): define T-009 MVP critical path plan
|
2026-08-03 17:41:58 +08:00 |
|
QiuSW
|
31b08d736a
|
docs(tasks): close T-008 after MCP acceptance
|
2026-08-03 17:29:33 +08:00 |
|
 QiuSWandClaude Opus 5
|
3c458bcf5b
|
fix(tasks): make status git-authoritative, not Vikunja
修掉一处会让并行保护失效的设计缺口:AGENTS.md 声明「状态」权威在 Vikunja,
但离线门禁的检查 1 读的是 frontmatter 的 status,两者之间没有任何同步。
有人在看板上拖了卡片,frontmatter 不变,门禁就用过期数据放行了。
status 的权威定为 git frontmatter,理由与 write_paths 相同:它是判定
「两个活跃任务不得写同一路径」的输入,而门禁必须离线可跑;status 变更
决定谁能碰哪些文件,本来就该产生 commit。
- AGENTS.md:把 status 从 Vikunja 权威列表移入 git 原生表,并说明 bucket
与 done 仅为人类视图,不一致时以 git 为准
- agent-context.json:tracker.git_native_fields 增加 status
- validate_agent_context.py:强制 git_native_fields 必须含 status,
已用反例验证缺失时报错
- vikunja_export.py:新增只读漂移检测,导出时比对 frontmatter status 与
Vikunja done,不一致则提示;只提示不修正,不反向写回
- docs/tasks/README.md、T-008 方案第 1/2 节:同步口径
顺带解决了窄 token 时期的 bucket 401 遗留问题——status 权威在 git,
agent 不再依赖 bucket 移动来表达状态。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:17:35 +08:00 |
|
 QiuSWandClaude Opus 5
|
ed489bd13e
|
docs(tasks): switch to full-scope token and document agent MCP setup
窄权限 token 实测无法移动 kanban bucket(POST /projects/{p}/views/{v}/
buckets/{b}/tasks 返回 401,bucket 操作需要 project 级权限),导致
TODO / DOING / BLOCKED 的状态流转 agent 无法驱动。权衡后改用全量 token,
代价已在 T-008 方案第 5 节写明:任何配置此 MCP 的 agent 都持有该实例的
完整读写权,且 apiurl 走 http 公网 DDNS,token 明文过网。
AGENTS.md 增加各家 agent 的 MCP 配置片段(Claude Code 的 .mcp.json 与
Codex CLI 的 ~/.codex/config.toml),统一指向 scripts/vikunja-mcp.sh,
并明确任何配置文件内不得内联凭据——token 只存在于 vikunja.env。
看板卡片已归位:Doing #15,Done #12/#13/#14。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:14:00 +08:00 |
|
 QiuSWandClaude Opus 5
|
9198134d0b
|
chore(tasks): close T-005/T-006 after prototype sign-off
人工确认 6 个原型(web 登录 / 建单 / 工作台 / 详情,desk 执行 / 设备参数)
通过,两个任务的 needs_human_review 满足,转 DONE 并回填 vikunja_task_id。
两者内容已冻结,不迁入导出区块——转换只增加往返风险而无收益,门禁对无
区块的文件豁免检查 4。
这消解了 T-008 门禁上线时报出的存量违规(四处 write_paths 重叠),
validate_agent_context.py 现在 exit=0,未放宽任何检查。
同时修 vikunja_export.py 的一处不一致:文件有 vikunja_task_id 但无导出
区块时应跳过并说明,而不是硬失败;此前 --check 全量模式会因此报错。
半截标记(只有 BEGIN 或只有 END)仍然报错,已回归验证。
T-008 状态口径统一为 DOING:needs_human_review 的硬规则优先于草稿里的
BLOCKED 表述,工作可继续推进,只是未获人工确认前不得标 DONE。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:07:13 +08:00 |
|
 QiuSWandClaude Opus 5
|
421c865ad2
|
feat(tasks): adopt Vikunja as task authority with one-way export
把任务的协调状态迁到自建 Vikunja 的 cmbuyer 项目,git 保留单向投影,
并把「活跃任务写路径不得重叠」从自然语言规则变成机器门禁。
- scripts/vikunja_export.py:单向导出(只发 GET),stdlib-only 的
HTML→Markdown,只覆盖标记区块内,幂等,含 --selftest
- scripts/vikunja-mcp.sh:MCP 启动包装从家目录迁入仓库,版本写死 1.1.1
- scripts/validate_agent_context.py:新增四项离线检查——DOING 任务写路径
互斥、通配不得圈走共享文档、导出区块 sha256、连接键一致性
- docs/agent-context.json:新增 shared_documents 与 tracker,schema_version 2
- vikunja.env 比照 gitea.env 加入 gitignore,提交 vikunja.env.example
write_paths、## 边界与安全边界条目的权威留在 git,不迁往 Vikunja:
安全边界能否收紧靠 git diff 逐条复核,权威搬到远端会切断审计链。
门禁上线即报出存量违规:T-005 与 T-006 同为 DOING,在 06-tasks.md、
08-interaction-checklist.md、routes.md、current-state.md 四处重叠。
按 T-008 规定不得绕过,须由两者所有者收窄写路径或人工确认后转 DONE。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-03 17:00:41 +08:00 |
|
QiuSW
|
b9e29ed970
|
docs(project): align product names and source directories
|
2026-08-03 16:27:05 +08:00 |
|
QiuSW
|
fe0c867948
|
docs(tasks): define project naming and directory contract
|
2026-08-03 16:18:10 +08:00 |
|
QiuSW
|
a7465d2745
|
feat(prototype): rename web app to procurement service
|
2026-08-03 16:05:05 +08:00 |
|
QiuSW
|
79a2767870
|
feat(prototype): show record details inline
|
2026-08-03 15:55:11 +08:00 |
|
QiuSW
|
0b757f8ad1
|
docs(tasks): plan inline desktop record detail
|
2026-08-03 15:47:37 +08:00 |
|