weichen
0664abe57d
release-candidate: 汇集 dev@714732df5a37 至 test(助手回复叙述、test 文档问题、质量门禁标题归一化),准备长期实测 [Tag: rc-v1.1.0-beta.6]
2026-09-28 06:01:36 +00:00
weichen
714732df5a
merge: candidate land-promote-rc-beta5-record-2026-09-28 into dev
2026-09-28 05:56:49 +00:00
weichen
a3f8afbe63
docs(ops): land rc-v1.1.0-beta.5 promotion record on dev
2026-09-28 05:52:18 +00:00
weichen
650703c5c2
merge: candidate quality-gate-heading-mismatch-2026-09-28-r3 into dev
2026-09-28 05:38:01 +00:00
weichen
d86b4d51ef
docs(task): 加回质量门禁修复的 CURRENT 认领行
2026-09-28 05:31:03 +00:00
weichen
4bb265b431
merge: dev into quality-gate-heading-mismatch
2026-09-28 05:30:54 +00:00
weichen
d6ce9abef7
docs(task): 让 CURRENT 认领行与 dev 对齐以便合入
...
暂时去掉本任务行,合入代码后再用 docs apply 加回。
2026-09-28 05:30:31 +00:00
weichen
d3fda0e834
docs(task): 链到质量门禁标题漂移测试报告
2026-09-28 05:16:33 +00:00
weichen
44435691c0
docs(test): 记录质量门禁标题归一化的工程验收
2026-09-28 05:16:25 +00:00
weichen
87888213da
chore(arch): 补记 coordinator 对 projectworkflow 的既有依赖
...
block 模式基线为 0,该 import 在本修复之前已在 engine_task.go。
2026-09-28 05:15:10 +00:00
weichen
4c42d1bf74
merge: candidate agent-reply-llm-narrative-2026-09-28 into dev
2026-09-28 05:13:29 +00:00
weichen
aea19f70ef
fix(squad): 章节标题归一化后不再把空格和层级漂移判成缺章
...
聊天触发的任务同时打开质量自动修复,避免格式误报直接阻断受控投影。
2026-09-28 05:12:51 +00:00
weichen
434d542c3c
merge: candidate test-user-doc-issues-2026-09-28 into dev
2026-09-28 04:20:02 +00:00
weichen
fa5d17a403
docs(task): 补记五态收口
...
说明这次合入后 test 制品还没有重放。
2026-09-28 04:19:49 +00:00
weichen
2952aa5a64
docs(task): 收口第三方 test 文档问题
...
CURRENT 记下任务已完成。test 制品尚未按这次 dev 重放。
2026-09-28 04:19:26 +00:00
weichen
6e1d5830b5
merge: candidate test-user-doc-issues-2026-09-28 into dev
2026-09-28 04:15:18 +00:00
weichen
c46a9c35dc
docs(test): 记录任务写动词与可见拒绝的验收
...
第三方 test 问题的单测与 runner 接线核对需要可追溯报告,嵌入超限保持开放。
2026-09-28 04:10:18 +00:00
weichen
73836962a0
release-candidate: 汇集 dev@193a752f1a54 至 test(含 PI runner 工作区校验),准备长期实测 [Tag: rc-v1.1.0-beta.5]
2026-09-28 04:03:45 +00:00
weichen
db859e185e
fix(intent): 让「帮我定任务书」进入任务并说清失败
...
写动词补上制定/拟定与祈使「帮我定」,避免落到阶段对照模板。质量未通过不再声称正文已保存到宿主机路径;研发前置未满足时把中文原因直接回复给用户。
2026-09-28 04:01:02 +00:00
weichen
193a752f1a
merge: candidate pi-runner-env-mismatch-2026-09-28 into dev
2026-09-28 03:52:33 +00:00
weichen
3eac19cf44
docs(test): 将验收日志摘录改为可跟踪的 txt
...
*.log 被 gitignore,sidecar 与 data_dir 核对摘录需随报告入库。
2026-09-28 03:45:30 +00:00
weichen
d724982acc
docs(test): 记录 PI runner 环境错配的真实验收
...
test 进程已改接 18866,bd_research 在 data/test 工作区完成,原先的 MISSING_TARGET 未再现。
2026-09-28 03:44:57 +00:00
weichen
dfd9f6efb3
docs(test): 记录助手回复智能体叙述的验收
...
附带任务记录与 CURRENT 认领行。真实 Runner 三轮 reply_source=pi-agent。
2026-09-28 03:25:18 +00:00
weichen
d55488ae37
feat(coordinator): 用智能体叙述查询、帮助与操作回执
...
确定性事实仍由代码生成;PI Agent 只组织语言,失败或关闭开关时回退原模板。安全拦截与确认提问保持模板。
2026-09-28 03:25:06 +00:00
weichen
3ba15df875
fix(agent): 记录 PI runner 数据目录核对结果
...
启动后第一次核对通过时打一条不含路径的日志,便于确认 test 没有再打到 dev sidecar。
2026-09-28 03:17:26 +00:00
weichen
4f581306d7
fix(agent): 拒绝把工作区发给数据目录不一致的 PI runner
...
test 启动时根 .env 的 dev runner URL 盖过了 18866,sidecar 把 test 工作区重写到 dev 空目录,模型因读不到材料报 MISSING_TARGET。端口约定优先,并在调用前核对 runner data_dir。
2026-09-28 03:16:27 +00:00
weichen
8f77053f51
merge: candidate error-events-pg-roundtrip-2026-09-28 into dev
2026-09-28 02:45:42 +00:00
weichen
0e05eedade
docs(task): 更正补记任务的 dev 基线 SHA
2026-09-28 02:45:25 +00:00
weichen
4bceb2b4ba
docs(test): 补记错误审计表隔离库往返通过
...
一次性 pgvector 库迁到 78 后,TestStoreRoundTrip 写入并按 request_id 读回。
2026-09-28 02:45:10 +00:00
weichen
655fb4f149
merge: candidate error-code-observability-2026-09-28 into dev
2026-09-28 02:39:23 +00:00
weichen
ef3c770451
docs(task): 记录错误码体系已合入 local dev
...
认领改为 done。实现提交已在 dev,部署与远端同步不在本次授权内。
2026-09-28 02:39:12 +00:00
weichen
dddd3fe8c8
merge: candidate error-code-observability-2026-09-28 into dev
2026-09-28 02:37:48 +00:00
weichen
e4da425b23
merge: candidate attachment-only-turn-2026-09-28 into dev
2026-09-28 02:32:38 +00:00
weichen
8f72b6a97c
docs(test): 记录附件回合在重载后的 dev 上复验通过
...
:8080 已换成含本修复的二进制。仅附件得到梳理或解析引导,无关文字先回答再追问。
2026-09-28 02:32:31 +00:00
weichen
73a3aa9286
docs(errcode): 登记错误码目录、任务和验证报告
...
目录按注册表列出稳定码,测试报告记录工程门禁与无测试库时的审计跳过。
2026-09-28 02:27:29 +00:00
weichen
7435f48389
feat(web): 增加错误审计查询和失败排查指引
...
管理台可按错误码或 request id 检索审计记录,聊天失败气泡展示对应排查短句。
2026-09-28 02:27:23 +00:00
weichen
f3f23a3018
feat(errcode): 用稳定错误码记录 HTTP 与异步失败
...
失败响应此前不写日志,request_id 无法对照原因。注册表不覆盖处理器已经给出的 HTTP 状态。
2026-09-28 02:27:16 +00:00
weichen
c87d28b343
merge: candidate attachment-only-turn-2026-09-28 into dev
2026-09-28 02:16:18 +00:00
weichen
42a9a4be5d
docs(test): 记录附件回合修复已合入 local dev
...
候选已 ff-only 进入 dev。浏览器和产品 PI 仍未跑,运行中的 dev 进程还没加载新二进制。
2026-09-28 02:16:09 +00:00
weichen
cb4d2af8d3
merge: candidate attachment-only-turn-2026-09-28 into dev
2026-09-28 02:13:37 +00:00
weichen
457e870330
fix(chat): 只上传文档时给出梳理或追问,不再裸报 HTTP 400
...
空消息加附件可以进入回合。无文字时按解析状态引导或回退审阅,有文字但未处理文档时先回答再追问。4xx 信封不再被前端丢弃。
2026-09-28 02:00:24 +00:00
weichen
6314406701
merge: candidate activation-preview-precheck-2026-09-28 into dev
2026-09-28 01:50:48 +00:00
weichen
8a9614d19e
docs(test): 归档激活预览预检复验并关闭问题
...
dev 浏览器已确认未纳入审批时不再请求 activation-preview,兼任后预览 200,密钥框均在 form 内。
2026-09-28 01:50:26 +00:00
weichen
3e534bbb39
merge: candidate activation-preview-precheck-2026-09-28 into dev
2026-09-28 01:40:39 +00:00
weichen
e7d4743cba
docs(task): 登记激活预览预检与密钥框警告
...
记录 dev 项目 6022 的 400 时间线,以及管理台五个密钥输入不在表单内的 DOM 警告。
2026-09-28 01:38:39 +00:00
weichen
7f9d01a3b6
fix(web): 激活前预检人工审批并消除密钥框密码警告
...
未纳入人工审批的计划会被服务端拒绝为 400。配置页在请求前拦截并提示;管理台密钥输入放入表单,避免浏览器把密码框当成未托管字段。
2026-09-28 01:35:46 +00:00
weichen
b1ed8ecfe9
merge: candidate squad-commit-authority-2026-09-28 into dev
2026-09-28 01:25:28 +00:00
weichen
56538221f3
docs(task): record non-author squad commit denial
2026-09-28 01:24:26 +00:00
weichen
c713834954
fix(bizdev): commit squad ledger as the document author
...
Non-author triggers were denied by dutyAuthorizer because AutoCommitUserID was the triggering user. Record that user on OnBehalfOf and surface the duty mismatch in the task error.
2026-09-28 01:24:25 +00:00
weichen
774df05998
merge: candidate auth-register-internal-2026-09-28 into dev
2026-09-28 01:16:32 +00:00
weichen
dbe1401455
docs(task): mark auth register fix resolved after test goose 77
2026-09-28 01:16:22 +00:00
weichen
9141741b78
merge: candidate auth-register-internal-2026-09-28 into dev
2026-09-28 01:12:57 +00:00
weichen
e1d6a2c192
docs(task): record auth register INTERNAL fix and test evidence
2026-09-28 01:12:14 +00:00
weichen
88b7c11a23
fix(auth): reseed standard roles and reject duplicate usernames as 400
...
Registration always writes role-guest; a deleted standard role became a masked INTERNAL. Username unique violations are now a 400 instead of an infrastructure 500.
2026-09-28 01:12:07 +00:00
weichen
4ba60c2c9d
merge: candidate restore-admin-password-reset-2026-09-28 into dev
2026-09-28 00:57:01 +00:00
weichen
e1f2c9c57f
docs(current): mark password-reset restore done
...
The UI candidate is already on local dev; record the five-state closeout.
2026-09-28 00:56:49 +00:00
weichen
04d7fec493
merge: candidate restore-admin-password-reset-2026-09-28 into dev
2026-09-28 00:51:41 +00:00
weichen
90e146e424
docs(task): record admin password reset UI restore
...
Capture the F4-A mis-delete, the dev UI probe, and the CURRENT claim.
2026-09-28 00:51:25 +00:00
weichen
f0ecc4c996
fix(web): restore admin password reset in user governance
...
T20-F4-A removed the working reset button after the F4-B endpoint was already live. Restore the entry so admins can issue a one-time random temp password.
2026-09-28 00:44:41 +00:00
weichen
912957c44e
merge: candidate docker-context-gitkeep closeout into dev
2026-09-27 21:13:13 +00:00
weichen
ec7148175b
docs(task): close docker-context-gitkeep ( e40a9989 verified by real image build, merged as 5e409c1e)
2026-09-27 21:13:04 +00:00
weichen
b35ea39a95
merge: candidate promote-rc-beta4-2026-09-27 receipts into dev
2026-09-27 21:12:44 +00:00
weichen
a6acdcb30b
merge: candidate test-single-binary-2026-09-27 closeout into dev
2026-09-27 21:12:12 +00:00
weichen
c20c8aa7ab
docs(current): mark test-single-binary-2026-09-27 done (receipt test-single-binary-2026-09-27-state-2)
2026-09-27 21:11:22 +00:00
weichen
8b3da0d297
docs(promote): rc-v1.1.0-beta.4 receipts, evidence and promote record
...
- PASS receipt 5e409c1e + images manifest + nightly evidence (five real-PI chains)
- recovered archive of nightly6 @94c215d3 process evidence (original dir lost in
staging move; full original log preserved, README documents the loss)
- task record for the promotion (candidate 2fe1e055 , tag, images apply)
2026-09-27 21:11:07 +00:00
weichen
912342ae0a
docs(test): rc-v1.1.0-beta.4 promotion + test single-binary report; fix launcher env mapping
...
- migrate-test-db.sh: export DEV_PG_CONTAINER (inner script reads it, not CONTAINER)
- launch-single.sh: SYSTEM_DB_* must override root-.env CONTEXT_DB_* (set -a
re-source clobbers both external exports and :- fallbacks; two misdirected
launches audited, dev DB unchanged - report §5.8-3)
- task record done; full test report (nightly five chains PASS @5e409c1e,
migration S0-verified, deployment acceptance, rollback paths, follow-ups)
2026-09-27 21:10:16 +00:00
weichen
2fe1e05591
release-candidate: 汇集 dev 功能至 test(test 单二进制化配套脚本 + docker 上下文修复),准备长期实测 [Tag: rc-v1.1.0-beta.4]
2026-09-27 20:59:11 +00:00
weichen
22f7e7f3f7
docs(current): claim test-single-binary-2026-09-27 (docs apply receipt test-single-binary-2026-09-27-state-1)
2026-09-27 20:57:57 +00:00
weichen
5e409c1eb2
merge: candidate docker-context-gitkeep-2026-09-27 into dev
2026-09-27 18:35:32 +00:00
weichen
e40a9989ab
fix(deploy): keep web/dist/.gitkeep in docker context for go:embed
...
.dockerignore excluded the whole web/dist dir, breaking go-builder since
web/embed.go (all:dist) landed (6cbe7e6e ): candidate image builds failed
with "pattern all:dist: no matching files found". Re-include the tracked
.gitkeep only; runtime stays disk-dist via web-builder COPY (LookupDist
false -> disk fallback). Verified by a real candidate-images-build run.
2026-09-27 18:29:50 +00:00
weichen
94c215d36e
merge: candidate test-single-binary-2026-09-27 into dev
2026-09-27 16:21:34 +00:00
weichen
d91dafc1c4
feat(scripts): test env single-binary entrypoints (migrate-test-db, launch-single)
...
- migrate-test-db.sh: reuse parameterized migrate-dev-db.sh with test defaults
(container shuimu-system-pg-test -> localpg :5434, PGDATA=data/test/pg)
- launch-single.sh: non-dev single-binary launcher (SYSTEM_DB_*->CONTEXT_DB_*
mapping, env-scoped PI sidecar, no Vite); task record for dev->test rc
promotion + test conversion (rc-v1.1.0-beta.4)
2026-09-27 16:21:09 +00:00
weichen
05d45022b1
merge: candidate upload-doc-access-2026-09-27 closeout into dev
2026-09-27 08:10:14 +00:00
weichen
07845cfcee
docs(task): close out upload-doc-access (dev 86efba2c verified, E2E PASS, lesson added)
2026-09-27 08:10:05 +00:00
weichen
86efba2cd5
merge: candidate upload-doc-access-2026-09-27 into dev
2026-09-27 07:52:39 +00:00
weichen
307e9e6569
docs(current): claim upload-doc-access-2026-09-27 (docs apply receipt upload-doc-access-2026-09-27-state-1)
2026-09-27 07:45:36 +00:00
weichen
88e33282db
fix(freedoc): persist uploaded file metadata and text body server-side
...
上传文档跨端不可访问修复(ISSUE-20260927-upload-doc-cross-device):
- 迁移 00076:freeform_documents 增加 source_filename/mime/size_bytes/asset_id
- freedoc:Create/Get/List 读写源文件元数据,负值拒绝
- 前端:注册前全部附件先登记 CAS 并预读文本正文;文本正文嵌入注册
markdown;跨端恢复 sourceType/fileMeta 路由回文件预览器
- 大小显示 formatFileSize(<512B 不再显示 0 KB)
- E2E 新增 FS-UPLOAD-02 跨浏览器上下文可访问性用例
回归:go vet/arch-check/go test -short(隔离 PG)+ web npm test/build 全绿;
存量无元数据旧文档不可恢复(重新上传即可)。
2026-09-27 07:45:15 +00:00
weichen
a0e40919a7
merge: candidate frontend-demo-fallback-2026-09-27-r3 closeout into dev
2026-09-27 07:08:12 +00:00
weichen
9da300ae60
docs(task): finalize active-session residue closeout state
...
任务文档终态(done/merged/passed/cleanup done)、ISSUES 行 resolved
(dev 36c5fb54 复验证据)、CURRENT 置 done。
2026-09-27 07:08:05 +00:00
weichen
36c5fb549c
merge: candidate frontend-demo-fallback-2026-09-27-r3 into dev
2026-09-27 07:06:17 +00:00
weichen
083c63bb9c
docs(issue): register active-session residue issue and r3 task record
...
登记 ISSUE-20260927-active-session-residue(ISSUE-20260927-demo-fallback
修复残留路径);新增 r3 任务主记录(根因/同类排查/修复方案/验证证据);
CURRENT 登记 r3c 任务行。
2026-09-27 07:05:09 +00:00
weichen
739b8c56f9
fix(web): purge legacy demo sessionId residue from localStorage on read
...
旧前端曾把 demo fallback 值 sess-001 持久化到 active_session;一次性
purge 版本 key 已写不再清理,读取侧无校验导致老浏览器 + 无可见会话
账号首屏 4x chat 404。提取共享 LEGACY_DEMO_SESSION_IDS 常量,
loadActiveSessionId 命中即清除并返回 fallback(幂等),loadMessages
复用同一集合。
2026-09-27 07:05:05 +00:00
weichen
87db3621c6
merge: candidate frontend-demo-fallback-2026-09-27-r2 into dev
2026-09-27 03:15:24 +00:00
weichen
0648867921
docs(current): mark frontend-demo-fallback-2026-09-27-r2 done
2026-09-27 03:15:22 +00:00
weichen
41b9b8bc3d
merge: candidate frontend-demo-fallback-2026-09-27-r2 into dev
2026-09-27 03:14:56 +00:00
weichen
20b68d6a23
docs(task): finalize frontend-demo-fallback closeout state
2026-09-27 03:14:53 +00:00
weichen
0de657f09c
merge: candidate frontend-demo-fallback-2026-09-27-r2 into dev
2026-09-27 03:11:32 +00:00
weichen
db038aa7a7
fix(web): stop phantom demo-fallback requests in seeds-off mode
...
App.tsx hardcoded fallbacks (active session "sess-001", projectId 1) sent
requests for nonexistent resources on fresh logins against real dev data,
producing 7+ console 404/403 hits. Fallbacks now resolve to empty/0; the
existing chatBlockedNoProject empty state and session-reconciliation effect
carry the UI, and demo-seeds-enabled builds keep the NEUROPULSE fallback.
Root cause, same-class scan, and before/after browser evidence (9 phantom
requests -> 0, author+member accounts) recorded in the task doc; ISSUES row
ISSUE-20260927-demo-fallback registered.
2026-09-27 03:09:37 +00:00
weichen
56928ac206
merge: candidate full-system-browser-e2e-2026-09-26 into dev
2026-09-26 09:28:00 +00:00
weichen
a9d79b99b8
docs(test): audit-friendly E2E report with retained login credentials
2026-09-26 07:58:47 +00:00
weichen
7ab7d572b9
docs(test): e2e ledger after reject portal fix
2026-09-26 07:48:36 +00:00
weichen
887a75c1b1
fix(web): portal reject modal above stacking context
2026-09-26 07:48:30 +00:00
weichen
157ec407e2
docs(test): full-system browser e2e re-run ledger
2026-09-26 07:29:34 +00:00
weichen
7513ce61ed
fix(web): member drafting edit + reject await + expand right rail
2026-09-26 07:29:27 +00:00
weichen
7555818753
docs(test): FINAL full-system browser E2E report after pending heal
2026-09-26 05:14:11 +00:00
weichen
323088c4bd
docs(test): add playwright log for full-system e2e rerun
2026-09-26 04:31:01 +00:00
weichen
ccce44dfc0
fix(chat): heal task bubble pending after completed run
2026-09-26 04:30:38 +00:00
weichen
a5ca6fdcfd
test(e2e): document PI UI pending mismatch and raise suite timeout
2026-09-26 04:12:33 +00:00
weichen
466426a58f
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:48:34 +00:00
weichen
4873c5e8b9
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:28:34 +00:00
weichen
078eb4fcf0
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:23:35 +00:00
weichen
09cc76eb8d
merge: candidate sysadmin-maturity-refresh-2026-09-26 into dev
2026-09-26 02:46:15 +00:00
weichen
9ff489546c
docs: sysadmin maturity refresh closeout (results, current claim done)
2026-09-26 02:46:10 +00:00
weichen
1d82ed8823
merge: candidate sysadmin-maturity-refresh-2026-09-26 into dev
2026-09-26 02:45:12 +00:00
weichen
d537778b60
fix(sysadmin): refresh feature maturity catalog to post-rollout wiring facts
...
The static adapter catalog still read I2-era states (degraded/shadow) after
the 2026-09-26 dev rollout, so the admin features page showed 降级 for flags
already enabled. Update six entries to live+ready with evidence-dated
reasons (I2/I3/P8 acceptance, P8 per-key gates kept visible, shadow
visibility digest now persisted, REPLACE wildcard wiring, PI narrative dev
rollout); keep FAV red lines untouched. Tests updated; FAV now carries the
configured-value-must-not-imply-readiness assertion.
2026-09-26 02:45:05 +00:00
weichen
1d13a892fc
merge: candidate degraded-flags-enable-2026-09-26-r4 into dev
2026-09-26 02:39:09 +00:00
weichen
4e7f84111d
docs: degraded-flags-enable closeout (task record, dev runtime test report, matrix notes, current claim)
2026-09-26 02:39:05 +00:00
weichen
6b31718138
merge: candidate degraded-flags-enable-2026-09-26-r4 into dev
2026-09-26 02:29:36 +00:00
weichen
e9c0281404
feat(ctxmgr): wildcard session allowlist for semantic replace rollout
...
- SEMANTIC_SUMMARY_REPLACE_SESSIONS supports * (all sessions, present and
future), mirroring INTENT_PLAN_PROJECT_ALLOWLIST; empty allowlist still
replaces nothing (fail-closed defense in depth unchanged)
- declare SEMANTIC_SUMMARY_REPLACE(_SESSIONS) in dev/test/main compose app
env (stale Wave2 "REPLACE unwired" comment fixed); extend A-4 declaration
test; .env.example key docs updated
- sysadmin feature catalog: SESSIONS description + REPLACE reason note *
Prepares dev degraded-flags enable (task degraded-flags-enable-2026-09-26-r4):
user-authorized all-session replace, plan tier confirm, shadow summary, PI
change-report narrative; env ops and runtime verification follow.
2026-09-26 02:29:29 +00:00
weichen
66ea4e3e51
merge: candidate deploy-record into dev
2026-09-26 02:15:20 +00:00
weichen
c9e2263325
docs: record review-fixes deployment verification (dev 1ceda34c live IDOR probe)
2026-09-26 02:15:11 +00:00
weichen
1ceda34c43
merge: candidate integrate-review-fixes (report + P0/P1 fixes) into dev
2026-09-26 02:08:50 +00:00
weichen
467e64574f
docs: closeout review report + fix task records for batch integration
2026-09-26 02:07:45 +00:00
weichen
438fdc8686
merge: system code review report into dev
...
# Conflicts:
# .doc/ops/CURRENT.md
2026-09-26 02:06:58 +00:00
weichen
dfd9c420d3
docs(current): pre-align claim table for review-report merge (docs apply @document)
2026-09-26 02:06:02 +00:00
weichen
fb376c0ea0
merge: candidate system-review-p0-p1-fixes into dev
2026-09-26 02:02:42 +00:00
weichen
ea66f4456f
docs: review P0/P1 fix records, ISSUES ledger, lesson, task claim
...
- remediation master record for 5 resolved + 1 deferred + 1 open issues
- ISSUES.md rows with evidence dates and lesson links
- LESSON-20260926-failclosed-bypass-contract (validated)
- remediation/lessons INDEX hooks + CURRENT task row (docs apply receipt)
2026-09-26 02:00:24 +00:00
weichen
6a3a0dc201
fix(security): harden bypass authz, gate blind spot, command exec, validated_only (review P0/P1)
...
- FIND-SEC-01: GetUserContext requires session ownership (handler 403 +
SQL/memory owner filter); in-memory HTTP + isolated-PG regressions
- FIND-ARCH-01: archtest fails closed on untracked table writes (+noise
exemption) and registers 50 existing writer tables in table_owners
- FIND-SEC-02: Authorizer without pool denies by default; explicit
NewInMemoryAuthorizer seam opt-in via ALLOW_IN_MEMORY at composition
- FIND-SEC-03: swboot commands run argv-exec (no sh -c) with exact
basename allowlist match; prefix-spoof and no-shell-eval tests
- FIND-FLOW-01: confirm rejects validated_only plans; ExecuteClaimed
hard-refuses validated_only steps (new error codes + HTTP mapping)
- FIND-QUAL-01: intentflow.ValidateFlagConsistency fail-fast at Assemble
2026-09-26 02:00:14 +00:00
weichen
b6e382e58f
docs(ops): 标记 system-code-review 认领为 done
2026-09-26 01:34:08 +00:00
weichen
c7e9ec0a26
docs(audit): 系统全面 code review 报告(仅分析不修复)
...
记录 tip f4c1b73f 上架构/安全/可维护性/关键路径审查结论;不实施代码修复。
2026-09-26 01:33:41 +00:00
weichen
f4c1b73f28
merge: candidate swboot-closeout-2026-09-26-r3 into dev
2026-09-26 01:09:32 +00:00
weichen
f697420db8
docs(status): promote workflow-swboot to done — SWBOOT-10 executor + L5/L6 verified
2026-09-26 01:09:20 +00:00
weichen
7c7a08a3ca
docs(test): swboot closeout evidence — executor e2e, L5 live PI, L6 playwright wizard
2026-09-26 01:08:51 +00:00
weichen
86e0cf46c6
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 01:00:51 +00:00
weichen
a52816299d
fix(server): read bound repo from project_source_bindings.source_ref
2026-09-26 01:00:37 +00:00
weichen
70f3028cdb
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 00:59:21 +00:00
weichen
f394bb15f9
fix(projectworkflow): write repo binding into project_source_bindings.source_ref
2026-09-26 00:59:08 +00:00
weichen
4965e74d66
merge: candidate swboot-closeout-2026-09-26-r2 into dev
2026-09-26 00:57:11 +00:00
weichen
83561682eb
feat(swboot): wire SWBOOT-10 controlled patch executor (fail-closed)
...
DB-backed repo_path_allowlist reader (deny-all until admin seeds), per-prefix
admin test_commands (goose 00075), execution evidence table (goose 00074),
isolated git-worktree patch executor with command allowlist/time/output caps
and failure-stops evidence; controlled_patch creation/preview unlocked only
with an allowlisted repo binding (projectworkflow gate + catalog flag);
creator-only server endpoints for bindings/executions; merge/push/deploy stay
behind a typed separate-authorization boundary. Module boundary: app->swboot
composition import registered.
2026-09-26 00:56:59 +00:00
weichen
d0f3f76f7e
merge: candidate rdev-p3-rerun-2026-09-26-r4 into dev
2026-09-26 00:43:04 +00:00
weichen
88e9b8bade
docs(test): archive P3 rerun console log (rename out of ignored *.log)
2026-09-26 00:43:00 +00:00
weichen
09e4c08f28
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:42:20 +00:00
weichen
c9d94545f8
docs(status): promote workflow-rdev to done — P3 real-PI rerun all-pass
2026-09-26 00:42:09 +00:00
weichen
68d29ef04e
docs(test): rdev P3 real-PI rerun all-pass; register docgov approval-chain issues
2026-09-26 00:41:47 +00:00
weichen
5d5cd5fd6d
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:25:12 +00:00
weichen
dc26321bab
fix(docgov): join ambient uow in persistApproveAndFAV to avoid row-lock deadlock
...
docflow Commands.run takes SELECT ... FOR UPDATE on document_records inside
its unit of work before calling ApproverApprove; persistApproveAndFAV then
opened a second pool connection and its UPDATE blocked on that row lock until
statement timeout (SQLSTATE 57014), failing every final approval. Join the
ambient uow scope (doc sync + FAV staging on the caller tx, commit owned by
the uow); only open an own tx when no scope is present. Regression test
reproduces the production shape (FOR UPDATE + FAV wiring inside Within).
2026-09-26 00:25:01 +00:00
weichen
6bd6e91606
merge: candidate rdev-p3-rerun-2026-09-26-r3 into dev
2026-09-26 00:22:20 +00:00
weichen
043c66ccfb
chore(server): log docgov approver decision failures (envelope redacts internals)
2026-09-26 00:22:15 +00:00
weichen
121b33f8ed
merge: candidate rdev-p3-rerun-2026-09-26-r2 into dev
2026-09-26 00:16:08 +00:00
weichen
bf3136490d
fix(docgov): load review_snapshot_id when reading document records from PG
...
loadDocumentFromDBLocked selected every column except review_snapshot_id,
so any document loaded after a restart or cache miss lost its frozen review
snapshot and ApproverApprove failed with "approved requires frozen
review_snapshot_id". PG regression test seeds a snapshot and asserts a
fresh engine carries the id through load.
2026-09-26 00:15:56 +00:00
weichen
a6d25afa27
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 23:24:55 +00:00
weichen
53d2731849
docs(status): promote chat-semantic-replace to done — fail-closed gray wiring verified
2026-09-25 23:24:45 +00:00
weichen
e2cfd88ac0
docs(test): semantic REPLACE fail-closed gray wiring evidence (unit + dev runtime ladder)
2026-09-25 23:24:33 +00:00
weichen
6004494e21
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 23:14:16 +00:00
weichen
aee774b894
fix(ctxmgr): keep displaced deterministic narrative for rollback-safe replace
...
Runtime verification found the deterministic generator merges the prior
served narrative, so a replaced (semantic) narrative would linger after
rollback. Store the displaced deterministic narrative in the shadow report
(persisted via shadow_json) and merge that instead when the prior summary
source is semantic_replace.
2026-09-25 23:14:07 +00:00
weichen
cd1f846f49
merge: candidate chat-semantic-replace-2026-09-26 into dev
2026-09-25 22:56:45 +00:00
weichen
ffa41d78df
feat(ctxmgr): wire fail-closed gray REPLACE for chat semantic narrative
...
Unseal SEMANTIC_SUMMARY_REPLACE under explicit user authorization with a
defense-in-depth session allowlist (SEMANTIC_SUMMARY_REPLACE_SESSIONS):
swap happens only for allowlisted sessions after result digests and served
watermark validation, bounded narrative size; facts/counts stay deterministic
and the daily digest stays advisory. Master flag alone replaces nothing.
2026-09-25 22:56:36 +00:00
weichen
4d5d695c75
merge: candidate jevdecide-soak-2026-09-26 into dev
2026-09-25 22:51:03 +00:00
weichen
cbf96ebbe5
docs(status): promote jevdecide-shadow to done — 200-turn soak converged
2026-09-25 22:50:54 +00:00
weichen
96013db9aa
docs(test): jevdecide assist soak >=200 turns with 94% handled rate evidence
2026-09-25 22:50:33 +00:00
weichen
c373d6fbc0
merge: candidate dialogue-ctx-closeout-2026-09-26-r4 into dev
2026-09-25 21:43:41 +00:00
weichen
4b231d97ec
docs(status): promote dialogue-ctx-injection to done — close conditions verified on dev
2026-09-25 21:43:33 +00:00
weichen
416674e3ec
docs(test): dialogue-ctx closeout evidence — dev migration + real PI workspace inject + conflict card smoke
2026-09-25 21:43:02 +00:00
weichen
f89b946d37
merge: candidate dialogue-ctx-closeout-2026-09-26-r4 into dev
2026-09-25 21:30:41 +00:00
weichen
ae48970f5f
fix(pi-runner): allow host-side extension path override for task runs
...
Task-run pi launches hardcoded the container path /app/extensions/tavily-search.mjs;
on the no-docker host sidecar every squad/dialogue task run failed at spawn with
ENOENT/extension-load errors. Add PI_AGENT_EXTENSION override and export the
managed pi-dir extension path from the sidecar start script.
2026-09-25 21:30:29 +00:00
weichen
ebb8282091
merge: candidate dialogue-ctx-closeout-2026-09-26-r2 into dev
2026-09-25 21:03:21 +00:00
weichen
76ddf4dd35
feat(ctx): surface dialogue conflict confirmation cards to triggering user
...
Capture trigger_user HITL expectations from dialogue adjudication (previously
dropped at the bizdev call site), project them as chat confirmation cards via
taskrun OnTerminal (exactly-once), arm the session PendingExpectation, and
handle confirm_context_fact hits through the supplement-info blackboard path.
Decline (纠正) guides the user to state the correct fact.
2026-09-25 21:01:37 +00:00
weichen
f6ad3344f8
merge: candidate worktree-final-closeout-2026-09-26 into dev
2026-09-25 20:34:14 +00:00
weichen
e6994e4e4e
docs(closeout): 回填运行时验证与清理结果;任务收口 done
2026-09-25 20:34:06 +00:00
weichen
0e4b51c387
merge: record feature/dialogue-office-expansion-2026-09-25 into dev ancestry — 内容已由 dialogue-office-expansion-land 等价落地 dev;记录原分支历史归属 (tree unchanged)
2026-09-25 20:32:49 +00:00
weichen
19700e8590
merge: candidate worktree-final-closeout-2026-09-26 into dev
2026-09-25 20:27:01 +00:00
weichen
743b6a4774
docs(closeout): worktree 全量收口——唯一日志归档、CURRENT 漂移修正与本任务登记
2026-09-25 20:26:50 +00:00
weichen
dc10818143
merge: record feature/promote-rc-beta3-c-2026-09-24 into dev ancestry — test 晋升分支:全部提交已保留于本地 test 分支头 0e4b111d(tag rc-v1.1.0-beta.3 历史);不引入 dev 树变化 (tree unchanged)
2026-09-25 20:24:51 +00:00
weichen
2a7a700051
merge: record feature/integrate-gov-visibility-p0-b-2026-09-24 into dev ancestry — 取消的重试候选,被 p0-c 替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:40 +00:00
weichen
5f85f3c5d7
merge: record feature/integrate-backlog-triage-p10-r2-2026-09-25 into dev ancestry — 被 r3 候选替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:33 +00:00
weichen
2d3a7a22f8
merge: record feature/integrate-backlog-triage-p10-2026-09-25 into dev ancestry — 被 r2/r3 候选替代,仅含 merge 节点 (tree unchanged)
2026-09-25 20:24:25 +00:00
weichen
043e10f674
merge: record feature/integrate-admin-settings-maint-b-2026-09-25 into dev ancestry — 内容已由后续候选(r3)等价合入 dev(patch-id 查重 8f9b91d3 = dev 等价提交) (tree unchanged)
2026-09-25 20:24:18 +00:00
weichen
357c869a34
merge: record feature/single-binary-deploy-design-2026-09-24 into dev ancestry — 内容已由 single-binary-design-land 等价落地 dev;记录原分支历史归属 (tree unchanged)
2026-09-25 20:24:06 +00:00
weichen
db8585b558
merge: record feature/member-permissions-doc-2026-09-24 into dev ancestry — 内容已由 member-permissions-doc-land 等价落地 dev;记录原分支历史归属 (tree unchanged)
2026-09-25 20:23:58 +00:00
weichen
64a28c9842
merge: record feature/doc-review-lifecycle-2026-09-25 into dev ancestry — 交付内容已由 doc-review-lifecycle-land 等价落地 dev;本归并仅记录原分支历史归属 (tree unchanged)
2026-09-25 20:23:25 +00:00
weichen
cc519e3806
merge: candidate single-binary-design-land-2026-09-26 into dev
2026-09-25 20:22:59 +00:00
weichen
6733205d58
docs(design): 非容器化单二进制三环境交付方案(自 single-binary-deploy-design 分支落地;CURRENT 认领行已废弃不入)
2026-09-25 20:22:45 +00:00
weichen
23ee0f028d
merge: candidate member-permissions-doc-land-2026-09-26 into dev
2026-09-25 20:22:16 +00:00
weichen
6e76a35943
docs(system-design): 修复 README t20 设计文档迁址后的失效链接(remediation→system-design)
2026-09-25 20:21:43 +00:00
weichen
86881bef6e
docs(system-design): 新增项目成员权限总览(对话/任务/补充/文档三权整合)
...
- 三层正交模型:系统角色能力矩阵 / 项目成员角色 / 文档三权(author-reviewer-approver)
- 四类核心动作权限矩阵:发起对话、执行任务、补充信息、文档编制与修改(deny_only_submit)
- 认证与路由分层、管理台两类 gate、前端 capabilities fail-closed 消费方式
- 如实标注已知缺口:member/viewer 服务端不区分写、visibility 键仅前端消费、system:* 未拆分
- 更新 system-design/README.md 索引与目录清单
task: member-permissions-doc-2026-09-24
2026-09-25 20:20:58 +00:00
weichen
75ff922b6e
merge: candidate dialogue-office-expansion-land-2026-09-26 into dev
2026-09-25 20:20:39 +00:00
weichen
af327950bd
docs(plan): 对话办公能力全景盘点与 P0–P3 整改计划
...
盘点 32 ActionKey 与 HTTP 169 路由对话边界,明确假成功/dry-run 与 UI 专属红线;分期消除假成功、live 化 intentflow、查询真源与新写意图扩展。
2026-09-25 20:20:25 +00:00
weichen
117ef7d826
merge: candidate doc-review-lifecycle-land-2026-09-26 into dev
2026-09-25 20:17:35 +00:00
weichen
6c815b2958
fix(land): 适配 dev 现行结构 — gov()/authorizer() 访问器、去 app/docnotify stream 依赖(arch 基线)、测试 stub 重名
2026-09-25 20:17:20 +00:00
weichen
05b822d9c0
docs(evidence): doc-review-lifecycle-land re-validation 摘要
2026-09-25 20:17:11 +00:00
weichen
985bc55fa5
docs(matrix): docgov 三权流转落地证据与 U11 live 基线键说明;附 re-validation 证据
2026-09-25 20:16:36 +00:00
weichen
b5a782bb38
feat(chat): dialogue triggers for comments/reopen/pending-supplements with mistouch guards
...
Wire intent→coordinator DocResolver confirm cards→action_executor kinds for comment, reopen, pending-supplements query, and real submit-review execution.
2026-09-25 20:14:10 +00:00
weichen
2e56ba9719
feat(docgov): complete review lifecycle gaps for lock/notify/comment/reopen
...
Defer locked-period supplements to a pending ledger, route duty-holder
notifications, persist stage-scoped comments, and prefer Approver for reopen.
2026-09-25 20:08:56 +00:00
weichen
6adf694f74
merge: candidate matrix-closeout-r3-2026-09-26 into dev
2026-09-25 19:05:04 +00:00
weichen
f0b23d345a
docs(matrix): update u9u12 and web-sysadmin row footnotes per P8/P9 evidence
...
- intent-plan-u9u12: per-key live rollout landed (7 keys to real engines,
5 per-key flags default off, TierConfirm; dev c5027788 ); ops-side flag
enablement + PI evidence follow-up noted
- web-sysadmin: residual closeout complete (ui.* whitelist consumers wired
to public site-status + banner; Playwright real-run PASS via docker image;
KB ops deferred out-of-repo with rationale; dev 4bdbb0da )
- rows keep status=done; footnote facts only; docs apply receipts r3
2026-09-25 19:04:34 +00:00
weichen
2391aaa7ec
merge: candidate cleanup-audit-r3-2026-09-25 into dev
2026-09-25 18:43:24 +00:00
weichen
8ffb83e373
docs(current): register P11/P12 closeout rows via docs apply receipt
2026-09-25 18:42:36 +00:00
weichen
3f63753b63
docs(ops): P12 redline boundary audit (read-only)
...
- FAV live off (FAV_DEGRADED_READ unset, default false); no observation window running
- SWBOOT-10 fail-closed confirmed (ERR_EXECUTION_MODE_DISABLED in catalog.go L209);
L5/L6 authorization application registered as pending-auth
- D7 ADR still pending-compliance-signoff; record retention physical delete blocked
- PI narrative flag PI_CHANGE_REPORT_NARRATIVE off in dev process env; dev-resident
enablement request registered for user decision (not implemented)
- MULTI_INTENT_PLAN_TIER not full; F4-B/F7-1/I6/I7 untouched
2026-09-25 18:24:52 +00:00
weichen
30957daf40
merge: candidate cleanup-audit-p11-2026-09-25 into dev
2026-09-25 18:14:06 +00:00
weichen
748eb686ae
docs(ops): P11 cleanup audit - 19 ready worktrees cleared, blocked classified
...
- ready batch: worktree remove + branch -d all clean, no force
- blocked split: keep branches with unmerged features (doc-review-lifecycle,
dialogue-office-expansion, member-permissions-doc, single-binary-design,
promote/sync test branches); regenerable caches logged; unique logs to
archive before removal
- CURRENT stale in_progress rows deferred to closeout audit P14
- copy-kb-to-localpg.sh: never existed; migrate_shared_kb.sh already registered
2026-09-25 18:12:54 +00:00
weichen
3cefd5b142
merge: candidate backlog-triage-p10-2026-09-25 into dev
2026-09-25 17:20:39 +00:00
weichen
9ac4e37847
docs(ops): P10 backlog triage record (B5+A5 implement; A6/D5/R1/R4-R7 no-go evidence)
2026-09-25 17:20:22 +00:00
weichen
da0fc54f91
merge: candidate backlog-triage-p10-2026-09-25 into dev
2026-09-25 17:17:06 +00:00
weichen
20afeb186b
chore: requeue marker after DIRTY_TREE (node_modules symlink removed)
...
Queue item e1b8dd58 failed on source-tree dirt from a web/node_modules
symlink used for npm test; the symlink is removed and the tree is clean.
Empty commit advances head so the queue accepts a fresh item.
2026-09-25 17:16:36 +00:00
weichen
ee852c6600
merge: candidate backlog-triage-p10-2026-09-25 into dev
2026-09-25 17:10:55 +00:00
weichen
53d1be5349
feat(quote,squad): B5 input validation + review invariants; A5 non-critical step degradation
...
P10 backlog triage (implement B5+A5; A6 already fixed in-tree, D5 keep shared
KB, R1 separate task, R4/R5/R6/R7 no-go with evidence):
- quote: ValidateInput (empty names/hours, negative/NaN/Inf fail-closed);
reviewSummary invariants (line sums = total; buffer 20%/margin 40%/tax 7%
rate self-consistency) enforced before Excel write
- squad: StepSpec.Critical *bool (nil=critical default); non-critical step
failure marks step degraded + gov audit, workflow continues, final status
degraded with DegradedSteps list; critical failure semantics unchanged
- tests: 5 new cases (quote 3 + squad 2), full short suite green, arch-check pass
2026-09-25 17:10:35 +00:00
weichen
4bdbb0da6f
merge: candidate websysadmin-residual-r2-2026-09-25 into dev
2026-09-25 16:35:19 +00:00
weichen
923da11ab4
feat(server): public /maintenance/site-status route + tests; P9 evidence
...
- isPublicRoute exempts site-status (anonymous banner polling)
- httptest coverage: anonymous 200 + site_notice payload; route table guards
- test report + playwright evidence (docker mcr playwright v1.63 noble vs real dev stack, 1 passed)
2026-09-25 16:33:58 +00:00
weichen
914d0aa39d
feat(maintenance): wire sysadmin ui.* whitelist settings to public site status
...
- sysadmin.Service.GetSettingValue: whitelist read-through (DB > env > default)
- maintenance.Service: SiteSettingsProvider injection; StatusView carries notice/readOnly; new CurrentSiteStatus + GET /api/v1/maintenance/site-status
- composition root wires ui.maintenance_notice / ui.read_only_mode into maintenance site settings
- MaintenanceBanner: persistent notice banner + read-only mode strip
- chore(web): drop dead 'dirty' var in EnvSettingsSection (baseline TS6133 build blocker)
- KB ops actions: deferred out-of-repo (shared infra container side); documented in task record
2026-09-25 16:33:56 +00:00
weichen
cc998c05ce
merge: candidate dialogue-office-p0-2026-09-25 into dev
...
Resolve server.go ActionServices wiring on accessor-style Server (Workflow via adaptChatWorkflow).
2026-09-25 15:42:05 +00:00
weichen
c5027788ea
merge: candidate u9u12-keys-rollout-2026-09-25 into dev
2026-09-25 14:39:51 +00:00
weichen
f9ce771954
feat(intentflow): per-key live rollout for remaining U9-U12 validated_only keys
...
- 5 independent flags (MULTI_INTENT_U11_LIVE_REVIEW/FINAL/PROPOSAL, U12_LIVE_SWITCH/RESTART), default OFF; no full rollout
- DocGovLiveActionKeys/RunControlLiveActionKeys become flag-driven functions; baseline keys unchanged
- DocGovOwner routes review.approve/reject, final.approve/reject, proposal.decide to real engine with slot-driven reason/approve parsing and idempotent receipts
- RunControlOwner routes workflow.switch -> ActivateWorkflow and run.restart -> fresh CreateAndStart run
- policy: 7 keys promoted from TierFull to TierConfirm (real execution still gated per-key)
- tests: default-off isolation, per-key independence, live state advance reviewing->approving, dry-run zero-advance when flag off
2026-09-25 14:38:42 +00:00
weichen
da0186c739
docs(remediation): 将对话办公 P0 验证记录挂入 INDEX
2026-09-25 14:38:06 +00:00
weichen
0ab4a8bd2d
feat(server): 接线对话 workflow.run 并补 P0 验证记录
...
server 侧窄端口适配 projectworkflow,消除 chat→projectworkflow 边界违规;记录单测与 arch-check 证据,PI 全链路待补证。
2026-09-25 14:37:11 +00:00
weichen
9a540fa54a
docs(chat): 注明 ActionServices.Workflow 合入接线点
...
app/server 写路径被并行任务占用,生产接线延后;未接线时诚实失败。
2026-09-25 13:19:52 +00:00
weichen
ce694baef1
feat(coordinator): P0 消除对话主链路假成功
...
claim/submit 经 DocResolver+确认卡后 PendingAction 真写 docgov;proposal 默认分支改澄清;workflow.switch 诚实拒绝(UI专属);workflow.run 确认后走 CreateWorkflowRun(ActionServices.Workflow 由合入时接线)。
2026-09-25 13:19:36 +00:00
weichen
9f7bbc25a0
merge: candidate server-image-field-closeout-r4-2026-09-25 into dev
2026-09-25 13:19:00 +00:00
weichen
0634ffb8ee
fix(storage): deterministic ID ordering in memory-mode ListProjectRefs
...
Memory CAS iterated memoryRefs map (random order) while PG path uses
ORDER BY id ASC; asset dedup-hint 'first reference unflagged' logic
depends on stable order. Flaky TestUploadProjectAsset_DedupHint
reproduced 2/20 rounds before fix, green 30/30 after.
2026-09-25 13:17:25 +00:00
weichen
a9c9a9182e
refactor(server): remove 24 mirrored Runtime fields via nil-safe accessors; fix Shutdown-vs-background-loop DATA RACE and goose 00071 duplicate version
...
- Server no longer mirrors app.Runtime services (gov/svc/pwSvc/...): 574 call sites now use accessors in runtime_accessors.go
- backgroundLoop (mutex+sync.Once) stops sweeper/publisher/reminder/wsGC goroutines race-free (baseline 44161d2a reproduced DATA RACE; now green under -race)
- goose 00071 duplicate (dialogue merge 1da17a28 brought two 00071): context-conflict-adjudications renumbered to 00072; dev DB applied only through 00070 so zero data migration
- task_finalize tests build minimal app.Runtime; test injection via serverTestOverrides + setOverride* (explicit-nil markers for fail-closed cases)
2026-09-25 13:17:22 +00:00
weichen
7cfd6851f6
merge: candidate security-redline-fp-r2-2026-09-25 into dev
2026-09-25 12:53:32 +00:00
weichen
7bdb045272
fix(intent): 收紧安全红线正则动词与桥接,消除正常撰写请求误拦
...
裸单字「改/换」加无界桥接会把「整改/角色」等正常撰写句误判为
SECURITY_FORBIDDEN。改为复合动词 + 短窗不跨标点桥接,受控名词须与写动词共现;补误报负例回归。
2026-09-25 12:53:08 +00:00
weichen
09ffe7dea8
docs(plan): 对话办公能力全景盘点与 P0–P3 整改计划
...
盘点 32 ActionKey 与 HTTP 169 路由对话边界,明确假成功/dry-run 与 UI 专属红线;分期消除假成功、live 化 intentflow、查询真源与新写意图扩展。
2026-09-25 11:15:44 +00:00
weichen
44161d2ad2
merge: candidate t20-s3-lock-split-2026-09-25 into dev
2026-09-25 06:53:29 +00:00
weichen
340342faf8
feat(concurrency): T20 S3 B3 - per-docID lock split for docgov/docrevision, hydrate out of cross-doc critical path (stage A)
2026-09-25 06:52:55 +00:00
weichen
d93c1ab3d6
merge: candidate t20-s4-image-batch-2026-09-25 into dev
2026-09-25 05:42:56 +00:00
weichen
35f845168b
feat(infra): T20 S4 image batch - non-root appuser, compose resource limits, unified extensions init mount (I1/I4)
2026-09-25 05:42:05 +00:00
weichen
42436f754d
merge: candidate t20-b5-chat-observability-2026-09-25-r2 into dev
2026-09-25 05:26:59 +00:00
weichen
5201f14173
feat(ctxmgr,server): T20-B5 chat turn compensation observability + orphan sweeper
2026-09-25 05:26:29 +00:00
weichen
088ff307c0
merge: candidate t20-s2-config-pool-2026-09-25-r2 into dev
2026-09-25 04:46:53 +00:00
weichen
2abc23ac65
feat(db,server): T20-S2 hardening batch B1/B4/B7 (XFF trust, pool statement_timeout, shutdown drain)
2026-09-25 04:45:49 +00:00
weichen
c0e556b167
merge: candidate t20-s1-small-fixes-2026-09-25 into dev
2026-09-25 04:25:31 +00:00
weichen
d653e32e7b
fix(server,web): T20-S1 hardening batch B11/F1/F8/F4-A
2026-09-25 04:25:03 +00:00
weichen
b74b92920e
merge: candidate planned-tasks-closeout-2026-09-25-r2 into dev
2026-09-25 04:10:58 +00:00
weichen
caba4b086a
docs(ops): land closeout plan P0 status and docrev acceptance audit
2026-09-25 04:07:17 +00:00
weichen
12bbe948b2
merge: candidate fix-stage-brief-panic-2026-09-25 into dev
2026-09-25 04:04:46 +00:00
weichen
bc94080332
fix(coordinator,intent): nil AdvisorBrief panic guard + interrogative gate for ADVANCE_STAGE overmatch
2026-09-25 04:04:30 +00:00
weichen
1da17a282c
merge: candidate dialogue-context-layout-fix-2026-09-25 into dev
2026-09-25 04:01:46 +00:00
weichen
2f9a6eb588
docs(current): move dialogue claim rows to table end to unblock integration
2026-09-25 03:51:08 +00:00
weichen
1fd2f16726
docs(current): mark dialogue-ctx r2 claim done for integration
2026-09-25 03:02:36 +00:00
weichen
5a70fd6940
docs(ops): plan batch closeout of inventoried planned tasks
2026-09-25 01:39:11 +00:00
weichen
09fe972366
feat(chat): dialogue triggers for comments/reopen/pending-supplements with mistouch guards
...
Wire intent→coordinator DocResolver confirm cards→action_executor kinds for comment, reopen, pending-supplements query, and real submit-review execution.
2026-09-25 00:36:26 +00:00
weichen
725181de4a
merge: candidate admin-settings-maint-b-2026-09-25 into dev
2026-09-24 23:27:05 +00:00
weichen
fd0ea3f2d7
docs(ops): mark admin-settings-maint claim done
2026-09-24 23:26:56 +00:00
weichen
675e09a1a7
merge: candidate admin-settings-maint-b-2026-09-25 into dev
2026-09-24 23:24:54 +00:00
weichen
b5a308dd11
docs(test): note queue retry after DIRTY_TREE clear
2026-09-24 23:24:45 +00:00
weichen
8f9b91d3b3
docs(test): note queue retry after DIRTY_TREE clear
2026-09-24 23:24:15 +00:00
weichen
129736f281
merge: candidate admin-settings-maint-b-2026-09-25 into dev
2026-09-24 23:22:21 +00:00
weichen
728567c778
fix(handoff): remove unused stubSrc from e2e test
2026-09-24 23:21:39 +00:00
weichen
9424d19106
fix(handoff): clean e2e stub builder unused import
2026-09-24 23:21:30 +00:00
weichen
86e9d3706b
feat(sysadmin): admin env settings + maintenance FD handoff
...
Persist agent/secrets settings with masked secrets and runner hot-reload;
add maintenance windows, maintpage binary, and zero-downtime listener handoff.
2026-09-24 23:20:20 +00:00
weichen
986d78cc91
feat(docgov): complete review lifecycle gaps for lock/notify/comment/reopen
...
Defer locked-period supplements to a pending ledger, route duty-holder
notifications, persist stage-scoped comments, and prefer Approver for reopen.
2026-09-24 23:06:23 +00:00
weichen
dc29b84cdf
feat(ctx): inject cleaned project dialogue into squad and assistant
...
Add dialoguectx packaging, conflictresolve adjudication with HITL routing,
workspace context/dialogue/ injection (default on), and goose 00071.
2026-09-24 17:04:04 +00:00
weichen
4e410efbab
merge: candidate single-binary-dev-impl-b-2026-09-24 into dev
2026-09-24 16:33:53 +00:00
weichen
6cbe7e6e56
fix(web): committed dist/.gitkeep keeps go:embed satisfiable pre-build
2026-09-24 16:20:21 +00:00
weichen
cc90d39205
fix(web): placeholder keeps go:embed satisfiable pre-build
2026-09-24 16:18:23 +00:00
weichen
69645cb07b
fix(web): tolerate absent dist at compile time via LookupDist
2026-09-24 16:13:47 +00:00
weichen
59ad970ad5
merge: candidate dm-migration-2026-09-24-r2 into dev
2026-09-24 15:57:06 +00:00
weichen
c428fc5e91
docs(ops): closeout Development-Manager migration task
2026-09-24 15:56:36 +00:00
weichen
b812d1d30f
feat(dev): single-binary no-docker runtime with managed localpg
...
Embed web/dist, run events in-process, manage brew PG18+pgvector, add PI host sidecar and launch --no-docker; unify MiniMax-M2.7-highspeed pins and record dev acceptance.
2026-09-24 15:53:50 +00:00
weichen
67cc8f13af
docs(ops): register Development-Manager migration task
2026-09-24 15:35:52 +00:00
weichen
588fef1c4a
docs(ops): 收口单二进制设计任务状态与提交 SHA
2026-09-24 14:45:46 +00:00
weichen
d784daf884
docs(ops): CURRENT 认领 member-permissions-doc-2026-09-24 行
...
task: member-permissions-doc-2026-09-24
2026-09-24 14:45:21 +00:00
weichen
7ebf431c87
docs(design): 非容器化单二进制三环境交付方案
...
覆盖 dev managed / test 落地 / main attach,PI sidecar 外置;设计评审用,未实施。
2026-09-24 14:45:06 +00:00
weichen
e2a442b592
docs(system-design): 新增项目成员权限总览(对话/任务/补充/文档三权整合)
...
- 三层正交模型:系统角色能力矩阵 / 项目成员角色 / 文档三权(author-reviewer-approver)
- 四类核心动作权限矩阵:发起对话、执行任务、补充信息、文档编制与修改(deny_only_submit)
- 认证与路由分层、管理台两类 gate、前端 capabilities fail-closed 消费方式
- 如实标注已知缺口:member/viewer 服务端不区分写、visibility 键仅前端消费、system:* 未拆分
- 更新 system-design/README.md 索引与目录清单
task: member-permissions-doc-2026-09-24
2026-09-24 14:43:00 +00:00
weichen
edbe592478
merge: candidate governance-console-p1-impl-2026-09-24 into dev
2026-09-24 14:17:55 +00:00
weichen
610b97b93e
docs(ops): closeout governance-console-p1-impl
2026-09-24 14:17:34 +00:00
weichen
f6eaff7878
merge: candidate governance-console-p1-impl-2026-09-24 into dev
2026-09-24 14:16:58 +00:00
weichen
77c602c8f4
fix(agentctl): resume integrate prepare from clean expected tip
...
After abort, allow a clean worktree parked on expected-dev to continue merge instead of BASE_CHANGED.
2026-09-24 14:16:48 +00:00
weichen
f5cdae1a41
fix(agentctl): fence integrate prepare merge via supervise
...
Pre-commit requires AGENTCTL_FENCE; run merge --no-ff through supervise like integrate ff-only.
2026-09-24 14:15:50 +00:00
weichen
f9f055bee1
feat(agentctl): add governance console P1 serve and action APIs
...
Implement loopback HTTP console with claim new, integrate prepare, and pi packet sharing the same helpers as CLI; ship SPA and MCP brief/claim_archive wrappers.
2026-09-24 14:13:27 +00:00
weichen
6eb2d11eeb
merge: closeout governance-console-p1-design
2026-09-24 13:55:27 +00:00
weichen
0d58e6fb2d
docs(ops): closeout governance-console-p1-design
2026-09-24 13:55:23 +00:00
weichen
ae7fcc1557
merge: candidate governance-console-p1-design into dev
2026-09-24 13:54:37 +00:00
weichen
fad32cd820
docs(ops): finalize governance console P1 implementable design
...
Expand the P1 plan to a 12-section implementable spec (serve API,
claim new, integrate prepare, pi packet, SPA, tests, risks) without
code. Task record and CURRENT claim included.
2026-09-24 13:54:22 +00:00
weichen
4844041b1b
merge: closeout governance-visibility-p0
2026-09-24 13:36:43 +00:00
weichen
9eea950d57
docs(ops): closeout governance-visibility-p0 on local_dev
2026-09-24 13:36:25 +00:00
weichen
ab450c1181
merge: candidate governance-visibility-p0 into dev
2026-09-24 13:33:22 +00:00
weichen
2c6088c200
merge: candidate cursor-zh-session-title into dev
2026-09-24 13:27:25 +00:00
weichen
06757ff31f
merge: candidate governance-visibility-p0 into dev
2026-09-24 13:27:09 +00:00
weichen
f2644db6d8
docs(cursor): 会话自动命名使用简体中文
...
新增 alwaysApply 规则,要求 Cursor 对话标题/会话名称以简体中文概括任务主题。
2026-09-24 13:26:53 +00:00
weichen
f29a69b8a1
docs(ops): claim CURRENT row for governance-visibility-p0
2026-09-24 13:26:07 +00:00
weichen
0d1840da96
feat(agentctl): governance visibility P0 — table/brief/archive + MCP reads
...
Add human-readable --format table, one-page brief, claim archive via docs
apply CAS, and four MCP readonly tools. Includes P1 console design doc
and engineering-tool test evidence.
2026-09-24 13:25:57 +00:00
weichen
a2afa67d47
merge: candidate retire diverged worktree tips into local_dev
2026-09-24 12:35:49 +00:00
weichen
d7d951542d
merge: retire redundant tip feature/integrate-intent-plan-u9u12-close-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:17 +00:00
weichen
da42769160
merge: retire redundant tip feature/integrate-fix-fav-staging-uuid-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:16 +00:00
weichen
2d91f0ee7d
merge: retire redundant tip feature/integrate-codegraph-current-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:14 +00:00
weichen
a81b9554c0
merge: retire redundant tip fix/gate-unhook-docquery-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:13 +00:00
weichen
2d42cbd678
merge: retire redundant tip fix/gate-e1a-unique-project-name-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:12 +00:00
weichen
275624591c
merge: retire redundant tip fix/fix-nightly-abs-datadir-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:11 +00:00
weichen
50b1a6144b
merge: retire redundant tip fix/fix-fullchain-unique-project-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:10 +00:00
weichen
ab52f79034
merge: retire redundant tip feature/dev-full-gate-test-promo-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:08 +00:00
weichen
0f50991288
merge: retire redundant tip feature/admin-password-reset-2026-09-24 (content already on local_dev / superseded)
2026-09-24 12:35:07 +00:00
weichen
245e6202d2
merge: candidate worktree-cleanup inventory into local_dev
2026-09-24 12:33:52 +00:00
weichen
18fbec23e4
docs(ops): worktree cleanup inventory and CURRENT done drift fix
...
Record removed ready worktrees and cleanup_pending not_ancestor tips;
mark stale admin/gate CURRENT rows done to match task registry.
2026-09-24 12:33:39 +00:00
weichen
fabd85a65e
merge: candidate non-author closeout into local_dev
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-24 12:22:29 +00:00
weichen
24a5e6dbbb
docs(ops): mark non-author member-access CURRENT claims done
...
Record five-state closeout rows after local_dev merge and origin/dev push.
2026-09-24 12:22:16 +00:00
weichen
26673d0ae0
docs(ops): record non-author member-access five-state closeout
...
Mark review/integration/remote_sync after local_dev merge and origin/dev push.
2026-09-24 12:21:41 +00:00
weichen
e98e2d716c
merge: candidate non-author-member-access docs into local_dev
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-24 12:14:22 +00:00
weichen
8b2621a4d1
docs(test): add non-author member PI e2e console log asset
2026-09-24 12:13:47 +00:00
weichen
b739f358f8
docs(test): non-author member deny_only_submit PI evidence and MATRIX
...
Archive real PI acceptance for member run/edit vs submit duty gates;
register ISSUE/LESSON and refresh MATRIX/gap/authz matrix evidence.
2026-09-24 12:13:31 +00:00
weichen
e43f4c6970
merge: free-collab CURRENT/MATRIX docs closeout into local_dev
2026-09-24 11:54:27 +00:00
weichen
f769385853
docs(ops): mark free-collab integrate done and link MATRIX evidence
2026-09-24 11:54:25 +00:00
weichen
80a7736199
merge: free-collab test report into local_dev
2026-09-24 11:53:05 +00:00
weichen
a1d70f5bd0
merge: candidate free-collab claim-notify + free-lane into local_dev
2026-09-24 11:51:50 +00:00
weichen
143ee934b8
feat(collab): free-lane chat, claim-on-view, lease ownership, notify inbox
...
Open member free-lane for chat initiation; auto-claim on author view;
harden lease persist/ownership with readable DOC_BUSY; add notification
inbox and supplement-impact HTTP decision APIs wired to composition root.
2026-09-24 11:49:43 +00:00
weichen
098c1fd73a
docs(test): free-collab claim-notify short-suite evidence report
2026-09-24 11:49:42 +00:00
weichen
d0b4d3d4dd
fix(arch): allow server→supplementimpact and tighten HTTP batch ExpiresAt
2026-09-24 11:45:54 +00:00
weichen
4e0e6a1418
feat(notification): digest aggregates, supplement-impact batch, and free-collab hooks
...
Add notification digests with ON CONFLICT DO UPDATE, migrations 00068-00070,
supplementimpact module (analyze → confirm → claim-aware split), and wire
coordinator/mutate hooks plus proposal_required digests.
2026-09-24 11:44:20 +00:00
weichen
ebb36fb85c
merge: candidate MCP NDJSON framing into dev
2026-09-24 10:39:54 +00:00
weichen
36793a4ea5
fix(tooling): emit NDJSON MCP responses for agentctl and jev
...
Cursor IDE loads pi-subagents (NDJSON) but not agentctl/jev which replied
with Content-Length framing. Align send() and mark type=stdio in mcp.json.
2026-09-24 10:39:43 +00:00
weichen
03fd135593
merge: candidate fix MCP: hook prefix into dev
2026-09-24 10:36:00 +00:00
weichen
476e97c993
fix(tooling): strip MCP: prefix in Cursor hook tool_name matching
...
IDE postToolUse reports tool_name as MCP:pi_subagent_*; without stripping,
guard-pi-dispatch skipped shape checks. Confirmed via live pi_subagent_roles.
2026-09-24 10:35:51 +00:00
weichen
5392db8ecb
merge: cursor governance closeout docs into dev
2026-09-24 09:34:09 +00:00
weichen
ea1457231e
docs(tooling): close cursor governance CURRENT claim after local_dev merge
2026-09-24 09:33:55 +00:00
weichen
57cbd57139
merge: candidate cursor-governance-hooks into dev
2026-09-24 09:30:49 +00:00
weichen
2b3b1c6f5b
merge: sync feature with local_dev 4490b6ef
...
Align CURRENT via docs apply @document (keep catalog + cursor-governance
rows); retain both policy-registry sections and lessons index rows.
2026-09-24 09:30:31 +00:00
weichen
5618cfc8cf
feat(tooling): add Cursor governance hooks, skills, and rule pointers
...
Layer advisory Cursor hooks and skills on the PI executor, shrink the
test-report rule to the validation contract, and fix MCP relative paths.
2026-09-24 09:25:38 +00:00
weichen
4490b6ef76
merge: governance catalog closeout into dev
2026-09-24 09:25:28 +00:00
weichen
0217ce354b
docs(tooling): close governance catalog claim and task record
2026-09-24 09:25:14 +00:00
weichen
e1796cc858
merge: candidate governance-catalog into dev
2026-09-24 09:22:22 +00:00
weichen
319b397419
docs(test): archive governance catalog unittest evidence
2026-09-24 09:22:09 +00:00
weichen
28ed7005dd
feat(tooling): add governance catalog and requirement overlap gates
...
Extend agentctl SQLite with catalog tables, CJK FTS5 recall, hard/soft
overlap gates, fail-open embeddings, backfill, and MCP/skills hooks so
cross-conversation designs cannot silently conflict.
2026-09-24 09:21:57 +00:00
weichen
cfc80b34a4
docs(tooling): integrate PI executor validation and closeout
2026-09-24 05:58:32 +00:00
weichen
9744a2e2d0
docs(tooling): close PI integration coordination record
2026-09-24 05:58:26 +00:00
weichen
e6dad5b25e
docs(tooling): record PI executor dev integration and validation
2026-09-24 05:57:39 +00:00
weichen
5a8540804e
feat(tooling): integrate automatic PI subagent executor into dev
2026-09-24 05:54:59 +00:00
weichen
655397547f
chore(tooling): reconcile PI executor branch with current dev
2026-09-24 05:54:49 +00:00
weichen
930447a78c
docs(tooling): reconcile PI integration records with current dev
2026-09-24 05:51:37 +00:00
weichen
c1a70e67e5
merge: candidate agentctl-daemon-load-2026-09-24 into dev (r8)
2026-09-24 05:45:16 +00:00
weichen
de2ba94933
merge: CURRENT claim closeout for gate promo
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 1s
CI / web (push) Failing after 0s
2026-09-24 05:12:21 +00:00
weichen
77ba9deee1
docs(ops): close CURRENT claims for gate promo and beta.3
2026-09-24 05:12:10 +00:00
weichen
614ebb8d1b
docs(ops): mark dev-full-gate-test-promo CURRENT claim done
2026-09-24 05:10:49 +00:00
weichen
4bbbd0f8bc
merge: docs-gate CURRENT done into integrate
2026-09-24 05:09:44 +00:00
weichen
866254de0e
docs(ops): mark docs-gate-promo-report CURRENT claim done
2026-09-24 05:09:36 +00:00
weichen
6e74203857
merge: candidate docs-gate-promo-report into local_dev
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-24 05:06:30 +00:00
weichen
1d8b50d5ac
docs(test): archive dev full-gate and rc-v1.1.0-beta.3 promotion report
2026-09-24 05:05:45 +00:00
weichen
0e4b111dff
release-candidate: 汇集 local_dev 至 test,准备长期实测 [Tag: rc-v1.1.0-beta.3]
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-24 04:37:51 +00:00
weichen
6fc828a9ce
docs(tooling): record PI executor acceptance and operating guide
2026-09-24 04:36:06 +00:00
weichen
58bf83f755
docs(ops): mark admin-password-reset five-state after validate/enqueue
2026-09-24 04:25:32 +00:00
weichen
8ca448ddca
merge: candidate feature/admin-password-reset-2026-09-24 into local_dev
2026-09-24 04:24:20 +00:00
weichen
39f8c1d134
feat(auth): admin password reset API and credential guards
...
Implement T20-F4-B reset-password endpoint with one-time temp password,
audit table, frontend wiring, login error envelope parsing, and
CreateUser fail-closed for empty password hashes. Recovered test chenwei
via env write (password out of band).
2026-09-24 04:18:58 +00:00
weichen
69ffaa677e
feat(tooling): add governed local PI subagent executor
2026-09-24 04:09:28 +00:00
weichen
3de5bc5c39
merge: candidate gate-nightly-fixes (abs DATA_DIR + unique FullChain names)
2026-09-24 03:24:15 +00:00
weichen
9a4ccf4040
fix(test): unique project names for pi-agent FullChain e2e
...
Fixed Chinese names collided on reused gate-pg across nightly runs.
2026-09-24 03:24:13 +00:00
weichen
3a23fb4533
fix(scripts): force absolute DATA_DIR for nightly real-PI
...
Relative DATA_DIR from .env resolves under go test package cwd
(internal/server/data/dev) and diverges from the pi-agent bind mount,
leaving agents without template.md/blackboard.json.
2026-09-24 03:24:12 +00:00
weichen
8c4200c888
fix(test): unique project names for pi-agent FullChain e2e
...
Fixed Chinese names collided on reused gate-pg across nightly runs.
2026-09-24 03:22:54 +00:00
weichen
6f0e43cab2
fix(scripts): force absolute DATA_DIR for nightly real-PI
...
Relative DATA_DIR from .env resolves under go test package cwd
(internal/server/data/dev) and diverges from the pi-agent bind mount,
leaving agents without template.md/blackboard.json.
2026-09-24 02:48:25 +00:00
weichen
b514a3c5e0
docs(ops): mark agentctl-daemon-load CURRENT done
2026-09-24 02:30:13 +00:00
weichen
6858e21d47
merge: candidate fix-quality-heading-eleven into local_dev
2026-09-24 02:26:38 +00:00
weichen
5e8e17b96a
fix(squad): strip multi-digit Chinese ordinals in quality headings
...
Nightly TestManager failed because cleanHeadingTitle only stripped 一…十,
leaving 十一、/十二、 unmatched against template 签署/说明.
2026-09-24 02:26:23 +00:00
weichen
52462b45e9
docs(workflow): configure local PI model roles with Cursor implementation
2026-09-24 02:19:28 +00:00
weichen
c1ae90cea3
docs(workflow): propose Auto subagent lifecycle and evidence contract
2026-09-24 01:44:31 +00:00
weichen
f27af1d3d2
docs(ops): record agentctl coordinator daemon systemd load with fail-closed evidence
2026-09-24 01:39:43 +00:00
weichen
ca55354034
docs(ops): re-claim gate on tip after fav uuid fix
2026-09-24 00:57:49 +00:00
weichen
5423b261f9
merge: candidate fav-staging-uuid fix into local_dev
2026-09-24 00:57:31 +00:00
weichen
fd83e98e6c
docs(ops): mark fav-staging-uuid CURRENT done
2026-09-24 00:57:10 +00:00
weichen
80caa785e2
merge: candidate fav-staging-uuid fix into local_dev
2026-09-24 00:57:06 +00:00
weichen
25fc2d92e8
fix(artifactvault): derive staging/artifact UUIDs from idempotency key
...
Payload-sha-only UUIDs collided under artifact_payload_staging_pkey when
two task runs finalized identical deliverable bytes. Key already includes
source_event_id; hash it for stable unique art-/stg- ids.
2026-09-24 00:56:54 +00:00
weichen
f04f14ff01
docs(ops): mark gate-e1a CURRENT done
2026-09-24 00:50:09 +00:00
weichen
c4008bf8f3
merge: candidate gate-e1a fixture fixes into local_dev
2026-09-24 00:49:43 +00:00
weichen
c51fb5e22f
fix(docnotify): align E1A fixture aggregate versions with claim gap rule
...
Per-doc aggregates must use version 1 (not i+1 / 99) or ClaimLeases
skips them under event_consumer_checkpoints head+1 gating.
2026-09-24 00:49:40 +00:00
weichen
134f7864fa
fix(docnotify): unique E1A fixture project names under global uniqueness
...
00057 added uq_projects_name_global; seedUserProject kept a fixed name
\"e1a\" so the second PG case collided. Include the suffix in name too.
2026-09-24 00:48:20 +00:00
weichen
2844bbfe1c
docs(ops): mark gate-unhook-docquery CURRENT done
2026-09-24 00:46:31 +00:00
weichen
f8ad688359
merge: candidate gate-unhook-docquery into local_dev
2026-09-24 00:45:38 +00:00
weichen
2bcb4e3366
fix(server,docquery): restore durable-notify unhook and deliverable store in tests
...
Remove leftover OnOutbox assignment from NewFromRuntime so production
stays on the durable events/docnotify path. Wire DirDeliverable into
docquery ledger fixtures after G1 DeliverableStore cutover.
2026-09-24 00:45:22 +00:00
weichen
4d1b58ccb3
merge: candidate jev-dev-assist-on into local_dev
2026-09-23 18:02:02 +00:00
weichen
73da2fea01
docs(ops): enable jev assist on local_dev with chat batch
...
Record 20-turn live chat evidence: 10/10 decision-layer additive on rule misses, 0 false assists on business prompts.
2026-09-23 17:59:31 +00:00
weichen
3e13f7a6d6
merge: candidate codegraph policy active into local_dev
2026-09-23 17:57:19 +00:00
weichen
0c13beddb9
docs(ops): activate codegraph-governance policy revision
2026-09-23 17:57:16 +00:00
weichen
19eb56e374
merge: candidate codegraph CURRENT claims into local_dev
2026-09-23 17:55:54 +00:00
weichen
7322aa96bd
docs(ops): record codegraph-governance closeout claims
2026-09-23 17:55:43 +00:00
weichen
0c676afe1f
merge: candidate codegraph check-ignore fixup into local_dev
2026-09-23 17:55:25 +00:00
weichen
989346aba2
docs(ops): note codegraph check-ignore trailing-slash fixup
2026-09-23 17:55:22 +00:00
weichen
d535c2a85e
merge: candidate codegraph fixup+CURRENT into local_dev
2026-09-23 17:54:14 +00:00
weichen
5252a236fc
fix(gov): probe .codegraph/ with trailing slash for check-ignore
2026-09-23 17:53:56 +00:00
weichen
734aa72527
merge: candidate codegraph CURRENT claim into local_dev
2026-09-23 17:53:00 +00:00
weichen
22ed51cf1f
docs(ops): claim codegraph-governance closeout on CURRENT
2026-09-23 17:52:46 +00:00
weichen
66745dd920
merge: candidate codegraph-governance into local_dev
2026-09-23 17:52:09 +00:00
weichen
510b46636a
feat(gov): add codegraph hooks and read-only cleanup/MATRIX audits
...
Wire CodeGraph into agentctl init/create/sync and expose cleanup report
plus docs drift so agents can inventory stale worktrees and MATRIX
regressions without auto-deleting or auto-promoting done.
2026-09-23 17:51:04 +00:00
weichen
156c113024
merge: candidate jev-dev-shadow-on into local_dev
2026-09-23 17:48:17 +00:00
weichen
a83e288bff
docs(ops): enable jev shadow on local_dev
...
Record shadow enable via configs/.env.dev + rebuild evidence; note Docker host gateway.
2026-09-23 17:48:05 +00:00
weichen
d8214a09f0
merge: candidate jev-product-closeout into local_dev
2026-09-23 17:41:30 +00:00
weichen
18cfca4307
docs(ops): close out jev-product-shadow CURRENT and short-term
2026-09-23 17:41:27 +00:00
weichen
54409fd61d
merge: candidate jev-product-shadow into local_dev
2026-09-23 17:41:03 +00:00
weichen
55c0c1b499
chore(compose): declare JEV_DECIDE_MODE off in all environments
2026-09-23 17:40:50 +00:00
weichen
45f21e84c7
feat(jevdecide): product shadow client with offline eval gates
...
Add typed jevdecide HTTP client (circuit, metrics) and coordinator
DecideAssist wiring behind JEV_DECIDE_MODE (default off). Offline eval
and synthetic soak evidence gate realtime/profile before assist rollout.
2026-09-23 17:40:40 +00:00
weichen
0ff698db6f
merge: candidate jev-mcp-docs-final into local_dev
2026-09-23 16:14:38 +00:00
weichen
96bafcebbd
docs(ops): mark jev-mcp-docs-done CURRENT row done
2026-09-23 16:14:35 +00:00
weichen
21b2687e0f
merge: candidate jev-mcp-docs-done into local_dev
2026-09-23 16:14:19 +00:00
weichen
c464589a42
docs(ops): mark jev-mcp integration CURRENT and short-term done
2026-09-23 16:14:08 +00:00
weichen
0dfb09fa69
merge: candidate jev-mcp-integration into local_dev
2026-09-23 16:12:44 +00:00
weichen
939be0ec6b
feat(mcp): add jev-service governance decide MCP server
...
Expose typed jev_decide/jev_health over stdio for closed-enum governance
routing; credentials stay in ~/.secrets/jev and out of git.
2026-09-23 16:12:16 +00:00
weichen
b6f21e8a94
merge: candidate intent-plan-u9u12 closeout into local_dev
2026-09-23 15:54:23 +00:00
weichen
f0a929a2ae
docs(status): mark intent-plan-u9u12 done (land task receipts)
...
MATRIX/CURRENT via docs apply on integrate-land task after acceptance
report is on the candidate tip.
2026-09-23 15:54:22 +00:00
weichen
cd793c11c9
docs(test): U9–U12 live domain acceptance evidence
...
Archive real HTTP+PG samples for U9 segment wiring and U10–U12 live
adapters under confirm tier on shared dev (project 6579).
2026-09-23 15:54:05 +00:00
weichen
e7262d4d65
docs(status): mark intent-plan-u9u12 done after I3 live acceptance
...
MATRIX done via docs apply with live HTTP+PG evidence; CURRENT claim
rows recorded for accept/live tasks. Compose defaults remain legacy.
2026-09-23 15:52:05 +00:00
weichen
0d98016511
docs(test): U9–U12 live domain acceptance evidence
...
Archive real HTTP+PG samples for U9 segment wiring and U10–U12 live
adapters under confirm tier on shared dev (project 6579).
2026-09-23 15:50:53 +00:00
weichen
b7d775a734
merge: candidate intent-plan-u9u12 authz slots fix
2026-09-23 15:47:53 +00:00
weichen
61d728f905
fix(intentflow): pass slots/summary into confirm-time Authorize
...
DocGov (and other summary-keyed adapters) resolve doc_id from step slots
or safe_summary; authorizeDecision omitted both, so U11 confirm failed
closed with PLAN_ACTION_FORBIDDEN despite a bound resource version.
2026-09-23 15:47:44 +00:00
weichen
bc27becbbb
merge: candidate intent-plan-u9u12 version-binder fix
2026-09-23 15:44:58 +00:00
weichen
dbae19e80d
fix(intentflow): bind resource versions for U10/U11 at plan create
...
Mutate/docgov live Authorize requires ExpectedResourceVersion; populate it
(and frame slots) when HandleTurn drafts confirm-class steps so confirm
no longer fails closed with PLAN_ACTION_VERSION_CONFLICT.
2026-09-23 15:44:48 +00:00
weichen
2f7e4b8fc0
merge: candidate intent-plan-u9u12-live into local_dev
2026-09-23 15:36:48 +00:00
weichen
cd7c586b15
merge: refresh local_dev tip 473bfbc7 before integrate
2026-09-23 15:36:29 +00:00
weichen
7cb076c945
merge: refresh local_dev tip before U9–U12 integrate
2026-09-23 15:35:24 +00:00
weichen
473bfbc73c
merge: land pi-narrative CURRENT closeout onto local_dev
2026-09-23 15:35:15 +00:00
weichen
0243cc2195
docs(ops): register pi-narrative CURRENT done and closeout five-state
2026-09-23 15:35:13 +00:00
weichen
8bf74f0f7e
merge: local_dev I2 evidence + gate U9 at auto_read
...
Bring I2 rollout reports onto the U9–U12 branch; keep FEATURE-MATRIX
out of this merge (managed via docs apply on local_dev). Tighten
ActiveSegmentProposer to PlanTier ≥ auto_read per Track I3.
2026-09-23 15:34:49 +00:00
weichen
c1b60b7af2
merge: land docgov-pi-narrative MATRIX done onto local_dev
2026-09-23 15:33:43 +00:00
weichen
77aace4ae4
docs(status): mark docgov-pi-narrative done after closeout retest
2026-09-23 15:33:42 +00:00
weichen
31adc25a1f
merge: candidate pi-narrative docs evidence into local_dev
2026-09-23 15:32:00 +00:00
weichen
016135d946
feat(intentflow): wire U9–U12 live adapters for multi-intent closeout
...
Connect LLM segment proposals into HandleTurn, replace U10–U12 dry-run stubs
with production owners (blackboard supplement, docgov claim/submit, workflow
run/resume) when flags are on, and update policy/sysadmin maturity metadata.
2026-09-23 15:26:46 +00:00
weichen
d9e74087e4
merge: I2 rollout evidence and u1u8 done
2026-09-23 15:21:45 +00:00
weichen
7a3ac9dbe6
docs(status): mark intent-plan-u1u8 done after I2 rollout
2026-09-23 15:21:43 +00:00
weichen
b9ee841ea5
docs(test): I2 multi-intent shadow/auto_read/confirm rollout evidence
2026-09-23 15:21:01 +00:00
weichen
d4dad0f219
docs(status): mark docgov-pi-narrative done after live closeout
...
Promote the MATRIX row with committed MiniMax evidence; keep the narrative
flag default-off pending a separate rollout authorization.
2026-09-23 15:20:09 +00:00
weichen
07ff3e45c4
docs(test): archive PI narrative closeout evidence
...
Record the repaired MiniMax live path and update readiness copy before
promoting docgov-pi-narrative to done.
2026-09-23 15:19:29 +00:00
weichen
4e601e95bc
merge: land chat-semantic-d3 MATRIX done onto local_dev
2026-09-23 15:18:31 +00:00
weichen
45ee184527
docs(status): land chat-semantic-d3 done and REPLACE deferred row
...
Apply MATRIX split on current local_dev tip with closeout evidence and
mark the matrix-land CURRENT claim done.
2026-09-23 15:18:21 +00:00
weichen
fdbefbac83
merge: candidate pi-narrative-final-closeout-b into local_dev
2026-09-23 15:17:27 +00:00
weichen
413ca989a1
merge: candidate chat-semantic-d3-closeout into local_dev
...
Land summarizer fix and closeout evidence; MATRIX/CURRENT shared docs follow via docs apply.
2026-09-23 15:16:23 +00:00
weichen
939380f3d5
docs(status): close chat-semantic-d3 as shadow-only done
...
Split REPLACE into deferred chat-semantic-replace per Wave5 X-2, record
lineage, and attach tip revalidation evidence.
2026-09-23 15:14:48 +00:00
weichen
526617ff9b
merge: compose FAV_DEGRADED_READ dup fix
2026-09-23 15:14:34 +00:00
weichen
02a0ed4f74
fix(compose): remove duplicate FAV_DEGRADED_READ keys
2026-09-23 15:14:16 +00:00
weichen
8f00c97fae
fix(chat): restore D3 semantic shadow under reasoning no-tools
...
Embed authorized messages in the PI summarizer prompt and recover narrative
from execution.log so MiniMax shadow works without REPLACE. Align chatflow
tests with async S1 drain and record closeout evidence.
2026-09-23 15:13:19 +00:00
weichen
f6046bba7e
fix(docgov): materialize reasoning narrative under --no-tools
...
Embed Facts in the PI narrative prompt and teach the bind-mounted runner
to write assistant text into missing reasoning targets, matching pi-native.
2026-09-23 15:11:22 +00:00
weichen
177338282d
merge: candidate intent-plan-i2-shadow-allowlist into local_dev
2026-09-23 15:10:49 +00:00
weichen
c07d4020d0
feat(intentflow): I2 shadow tier, project allowlist, and rollout metrics
...
Persist validated_only shadow plans without executing, gate elevated tiers
behind INTENT_PLAN_PROJECT_ALLOWLIST, and keep legacy chat routing for shadow.
2026-09-23 15:10:26 +00:00
weichen
996bf5a14d
merge: closeout CURRENT done for module-batches-ag-status-fix
2026-09-23 15:10:20 +00:00
weichen
2d81d584a2
docs(ops): mark module-batches-ag-status-fix CURRENT claim done
2026-09-23 15:10:18 +00:00
weichen
8768ee2ba2
merge: candidate module-batches-ag-status-fix into local_dev
2026-09-23 15:09:12 +00:00
weichen
daebbf61e7
docs(ops): restore tip CURRENT closeout claim after sync merge
2026-09-23 15:09:00 +00:00
weichen
ca5c36f65f
merge: sync tip 9d8332ad into module-batches-ag-status-fix
...
Retain CURRENT claim and MATRIX done; re-apply tip CURRENT rows next.
2026-09-23 15:08:40 +00:00
weichen
1d3c957ff4
docs(ops): close matrix regression issue after CAS restore
...
Mark issue resolved and lesson validated once arch-check and MATRIX
done row are confirmed in the task worktree.
2026-09-23 15:05:27 +00:00
weichen
b9d09c9712
docs(status): restore module-batches-ag done state after merge regression
...
Row-level CAS recovers the umbrella status that closeout conflict
resolution had overwritten back to planned; header text aligned.
2026-09-23 15:03:45 +00:00
weichen
54641f4653
docs(ops): register matrix status regression and claim CURRENT
...
Restore coordination evidence for module-batches-ag: issue, lesson,
batch-plan done status, and CURRENT claim ahead of MATRIX CAS restore.
2026-09-23 15:02:53 +00:00
weichen
9d8332ad08
merge: mark closeout claim worktree removed
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 15:01:52 +00:00
weichen
236f39e6c4
docs(ops): mark closeout-worktree-cleanup claim worktree removed
2026-09-23 15:01:51 +00:00
weichen
18b9556f3b
merge: FAV constraint CURRENT revision and restore protection
2026-09-23 14:20:44 +00:00
weichen
340240473e
docs(ops): revise FAV live constraint and restore CURRENT protection
...
Authorized temporary lift of protected_sections; set 受控约束 first
bullet to FAV live not released / FAV_DEGRADED_READ default false;
restore ## 受控约束 protection afterward.
2026-09-23 14:20:43 +00:00
weichen
c05b4090d8
merge: lift CURRENT 受控约束 protection for authorized edit
2026-09-23 14:20:02 +00:00
weichen
6f2d0d8d0c
chore(ops): temporarily lift CURRENT 受控约束 protection
...
Authorized 2026-09-23 so docs apply can revise the FAV live constraint
bullet; restore protection in the follow-up commit.
2026-09-23 14:20:02 +00:00
weichen
73ee509439
merge: closeout worktree cleanup docs into local_dev
2026-09-23 14:10:38 +00:00
weichen
8437ba4164
docs(ops): finalize remaining-worktrees five-state and cleanup table
2026-09-23 14:10:27 +00:00
weichen
4381b71094
merge: remaining worktrees closeout docs into local_dev
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 14:03:13 +00:00
weichen
fe4a3043eb
docs(ops): fix closeout short-term and test report text
2026-09-23 14:03:13 +00:00
weichen
cdfd7d9849
docs(ops): remaining worktrees closeout report and CURRENT/MATRIX rows
...
Record go-agentx+FAV integrate evidence, stale DIFF archive, claim/FAV
cleanup rows, and events-fav partial note. Constraint bullet deferred
to short-term due to CURRENT protected_sections.
2026-09-23 14:02:35 +00:00
weichen
3e01f18756
merge: integrate final-artifact-vault into local_dev (authorized exception)
...
User authorized lifting CURRENT FAV whole-branch merge protection on
2026-09-23. Keep FAV_DEGRADED_READ/FAV_PUBLISHER_ENABLED default false.
Drop duplicate goose 00034 (local_dev already has 00036). Preserve
agentx workspace admin routes and pin-export wiring.
2026-09-23 13:57:08 +00:00
weichen
6032dbaa16
merge: integrate go-agentx runtime into local_dev candidate
...
Bring pinative/agentx workspace registry and A-B harness onto current
local_dev; renumber goose agentx registry 00062→00066 to avoid clash
with chat-summary/provenance migrations. Keep CURRENT/MATRIX as ours
for later docs apply; union module-boundaries agentx import tree.
Path literals use workspace constants for arch-check.
2026-09-23 13:25:32 +00:00
weichen
d5fc19e42c
merge: worktree closeout report and CURRENT done rows
2026-09-23 12:58:04 +00:00
weichen
1493676217
docs(ops): record worktree closeout batch report and CURRENT done rows
2026-09-23 12:57:38 +00:00
weichen
a690aab42d
merge: closeout cleanup cwd-hidden process fix
2026-09-23 12:55:00 +00:00
weichen
7cb7981deb
fix(ops): skip cwd-hidden OS helpers and non-worktree processes on cleanup
2026-09-23 12:54:45 +00:00
weichen
c0a0db3a70
merge: closeout remaining docs and salvage into local dev
2026-09-23 12:51:23 +00:00
weichen
312727d726
merge: worktree-closeout-batch salvage docs and gofmt
2026-09-23 12:50:23 +00:00
weichen
6485532d88
docs: import lock, policy, and governance artifacts for closeout
2026-09-23 12:50:22 +00:00
weichen
553f0ad61b
merge: feature/integrate-modular-contract-standard-2026-09-22 into closeout remaining candidate
2026-09-23 12:49:45 +00:00
weichen
15b388fc86
docs(ops): salvage task docs and mineru gofmt in closeout batch
2026-09-23 12:49:33 +00:00
weichen
e6ddfab9e8
merge: sync origin/dev into local dev (closeout batch)
...
Resolve conflicts: both CURRENT claim tables (slot preserved), local
multi-host coordination plan + origin phased companion, origin
module-boundaries, combined PG isolation with remote product tests.
FEATURE-MATRIX takes origin record_id layout; A-G done bump deferred
pending evidence row apply.
2026-09-23 12:45:30 +00:00
WeiCHEN
5cdcee2649
merge: candidate agentctl-cursor-integration-close five-state
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 19:26:09 +08:00
WeiCHEN
5be380ad14
docs(ops): close agentctl Cursor capability-layer five-state
...
Record merged_local_dev and CURRENT done after daemon enqueue.
2026-09-23 19:26:06 +08:00
WeiCHEN
9e4ddfcd87
merge: candidate agentctl-cursor-integration Cursor capability layer
2026-09-23 19:25:23 +08:00
WeiCHEN
07094d0dd1
docs(ops): note queue retry after DIRTY_TREE clearance
2026-09-23 19:25:21 +08:00
WeiCHEN
821a307feb
feat(ops): add Cursor skills/MCP/rules/hooks for agentctl
...
Wrap the live coordinator in project Cursor capabilities so agents
default to leases, docs apply, and daemon enqueue. Track skills/hooks/mcp
via .gitignore exceptions; guard destructive git with ask permission.
2026-09-23 19:23:40 +08:00
WeiCHEN
9984c68d37
merge: promote local_dev to test (squad settled-no-deliverable retry)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 19:20:05 +08:00
WeiCHEN
357e4ddb0f
merge: candidate squad-missing-target-retry (settled-no-deliverable)
2026-09-23 19:18:23 +08:00
WeiCHEN
4830b8ba6d
fix(squad): retry settled steps that never wrote the deliverable
...
Classify clean settle + missing target as transient (settled-no-deliverable)
and re-invoke once with a corrective write-tool prompt, instead of permanent
MISSING_TARGET failure.
2026-09-23 19:18:05 +08:00
WeiCHEN
78c2bcf6b6
merge: candidate agentctl-mgmt-go-live-close five-state
2026-09-23 18:07:53 +08:00
WeiCHEN
2f51d525ff
docs(ops): close agentctl launchd go-live five-state
...
Record daemon e2e queue completion and deployment=loaded_local_launchd.
2026-09-23 18:07:50 +08:00
WeiCHEN
5e11db50ce
merge: candidate agentctl-mgmt-go-live launchd go-live into dev
2026-09-23 18:06:45 +08:00
WeiCHEN
92d30a498b
docs(ops): record agentctl launchd management-plane go-live
...
Persist host load evidence and short-term five-state for the
macOS LaunchAgent coordinator (bootstrap gui/501).
2026-09-23 18:06:35 +08:00
WeiCHEN
eebe83e0c5
merge: candidate w3-u6-current-fix CURRENT done rows
2026-09-23 17:42:18 +08:00
WeiCHEN
8920185baa
docs(ops): mark W3-U6 closeout CURRENT rows done
...
docs:admin row fix after task close; leave receipt on SHARED CURRENT.
2026-09-23 17:42:15 +08:00
WeiCHEN
c7f14fda89
merge: candidate w3-u6-closeout five-state into dev
2026-09-23 17:39:34 +08:00
WeiCHEN
f0f4d741ae
docs(ops): record W3-U6 MATRIX record_id five-state closeout
...
Mark U6 merged_local_dev, backfill undertaking tip 8079f8f4 , and
update CURRENT claim rows. Seven-package L1 queue is clear.
2026-09-23 17:39:25 +08:00
WeiCHEN
8079f8f42a
merge: feature/matrix-record-id-2026-09-23 (MATRIX stable record_id)
2026-09-23 17:35:35 +08:00
WeiCHEN
77bdbdbc74
feat(ops): add stable record_id column to FEATURE-MATRIX
...
Make matrix_states / docs apply / evidence gates key by kebab-case
record_id (module name as transitional fallback). Wire docs project
for MATRIX with EVIDENCE_REQUIRED on done. Keep all status values and
historical paragraphs unchanged; reject rename/duplicate IDs.
2026-09-23 17:35:25 +08:00
WeiCHEN
713b7cbe6f
merge: candidate w2-closeout five-state into dev
2026-09-23 17:10:42 +08:00
WeiCHEN
51b15af09d
docs(ops): record W2 U7/U4/U5 five-state closeout
2026-09-23 17:10:29 +08:00
WeiCHEN
c780a030b2
merge: candidate current-projection CURRENT hardening into dev
2026-09-23 17:07:28 +08:00
WeiCHEN
59739a2b48
feat(agentctl): harden CURRENT projection and human-section guards
...
W2-U5: own_row_only/slot_protected policy wiring, normalized projection
rows, idempotent request ids, five-state status vocab, expanded protected
human sections, projections ledger readout, and doc contradiction fixes.
2026-09-23 17:00:44 +08:00
WeiCHEN
725e2e4beb
merge: candidate agentctl-daemon coordinator into dev
2026-09-23 16:44:20 +08:00
WeiCHEN
5dc25e0be3
fix(agentctl): retry manager.lock holder_pid read on LOCK_BUSY
2026-09-23 16:42:22 +08:00
WeiCHEN
cb4a13671d
feat(agentctl): add foreground daemon coordinator with manager.lock
2026-09-23 16:39:21 +08:00
WeiCHEN
981021b2b6
merge: candidate agentctl-handoff quarantine fence into dev
2026-09-23 16:29:28 +08:00
WeiCHEN
b2c582dc5a
fix(agentctl): re-lock write txn after schema DDL for claim CAS
2026-09-23 16:29:12 +08:00
WeiCHEN
7d864828b5
fix(agentctl): treat unset AGENTCTL_FENCE as zero for bootstrap
2026-09-23 16:24:56 +08:00
WeiCHEN
198b3e4ad4
feat(agentctl): add quarantine handoff with fence and heartbeat TTL
...
Fail-closed suspect/quarantine demotion, AGENTCTL_FENCE inheritance, and verified: gates for env/git:dev recovery without auto-release.
2026-09-23 16:16:35 +08:00
WeiCHEN
fda5ef2931
merge: dialogue-realtime-search acceptance docs
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 15:08:28 +08:00
WeiCHEN
fa6529db0e
docs(ops): record dialogue realtime search remote test acceptance
...
Capture remote GMKtec :8081 evidence that Tavily-forced weather answers are date-anchored and no longer invent deep-winter temperatures.
2026-09-23 15:08:09 +08:00
WeiCHEN
8c40cb7412
merge: feature/w1-closeout-2026-09-23 (W1 five-state closeout)
2026-09-23 15:05:23 +08:00
WeiCHEN
0a933af95f
docs(ops): close out W1 U1r/U2/U3 five-state fields
...
Record merged tips and mark CURRENT claims done; cleanup remains with
independent maintainers.
2026-09-23 15:05:10 +08:00
WeiCHEN
451f55f80d
merge: feature/agentctl-claim-2026-09-23 (long-lived claim CLI)
2026-09-23 15:02:09 +08:00
WeiCHEN
6699c4a8aa
feat(agentctl): add long-lived claim namespace and CLI
...
Introduce claim: resources with additive claims/claim_queue tables, atomic
acquire/release under IMMEDIATE transactions, and concurrency regressions.
2026-09-23 15:02:00 +08:00
WeiCHEN
c6f0561b5b
merge: promote local_dev to test (dialogue realtime search force)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 14:55:16 +08:00
WeiCHEN
7cd0f505b2
merge: feature/agent-governance-config-2026-09-23 (governance JSON policy)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 1s
2026-09-23 14:53:18 +08:00
WeiCHEN
8749f5077a
merge: fix/dialogue-realtime-search-2026-09-23 (force Tavily for realtime dialogue)
2026-09-23 14:51:44 +08:00
WeiCHEN
a5ea8197ab
fix(coordinator): force Tavily search for weather/realtime dialogue answers
...
Anchor weather and other realtime questions on runner /v1/search results (or an explicit refuse constraint) so the model cannot invent dates or temperatures from training memory.
2026-09-23 14:51:09 +08:00
WeiCHEN
33c7b9a260
feat(agentctl): externalize governance policy to JSON
...
Load configs/agent-governance.json from the main worktree with fail-closed
POLICY_* codes, and keep test fixtures writing the same contract file.
2026-09-23 14:50:56 +08:00
WeiCHEN
1cb8c6f4b3
merge: fix/agentctl-automation-converge-2026-09-23 (automation converge into w4)
2026-09-23 14:39:57 +08:00
WeiCHEN
dd75f42c98
fix(agentctl): converge automation into w4 and drop fork
...
Port deploy phase transition guards and cleanup markdown projection into
agentctl_w4, delete the unused automation module, and pin illegal jumps
with a regression test.
2026-09-23 14:39:49 +08:00
WeiCHEN
21c1278c04
merge: coordination-db-daemon-impl-plan closeout (CURRENT+short-term)
2026-09-23 14:17:52 +08:00
WeiCHEN
9e9856f652
docs(ops): record coordination-db-daemon impl-plan closeout fields
...
Persist short-term status, head_sha, and integration_state after the
undertaking plan landed on local_dev.
2026-09-23 14:17:34 +08:00
WeiCHEN
ec8a39b39d
docs(ops): close out coordination-db-daemon impl-plan on local_dev
...
Mark CURRENT claim done and record merge tip 51f82d5d in the
short-term closeout after docs-only integration.
2026-09-23 14:17:11 +08:00
WeiCHEN
51f82d5d4f
merge: feature/coordination-db-daemon-impl-plan-2026-09-23 (undertaking plan docs)
2026-09-23 14:16:36 +08:00
WeiCHEN
dad5556181
docs(remediation): add coordination db/daemon implementation undertaking plan
...
Pre-fill W1–W3 work packages (U1r–U6) with symbol-level anchors, real
concurrency gates, mutexes, and ADR gate for L2. Docs-only; no code.
2026-09-23 14:16:25 +08:00
WeiCHEN
1f2f3d6a58
merge: closeout-worktrees results doc
2026-09-23 14:03:11 +08:00
WeiCHEN
47c57eee6b
docs(ops): record closeout-worktrees merge and cleanup results
2026-09-23 14:03:01 +08:00
WeiCHEN
1165b28d5f
merge: coordination-db-daemon closeout (CURRENT done + short-term)
2026-09-23 14:01:31 +08:00
WeiCHEN
bf1b592071
docs(ops): close out coordination-db-daemon task on local_dev
...
Mark CURRENT claim done and record merge tip d8ba8dba in the
short-term closeout fields after docs-only integration.
2026-09-23 14:01:27 +08:00
WeiCHEN
d8ba8dba3c
merge: feature/coordination-db-daemon-2026-09-23 (plan+research docs)
2026-09-23 14:00:21 +08:00
WeiCHEN
d7e0a683c9
docs(remediation): add coordination db/daemon phased plan and research
...
Document L1 single-host claim/daemon/doc projection design and L2
cross-host PostgreSQL as planned-only. Register INDEX entries and claim
CURRENT; U1 cites queue subparser fix 63e66c6f .
2026-09-23 13:54:48 +08:00
WeiCHEN
de3bff6d6d
merge: closeout-worktrees docs batch (6 tips + task doc)
...
Rebuild onto current local_dev after parallel agentctl-queue integrate. Non-.doc tree matches frozen D; CURRENT/MATRIX kept as local_dev.
2026-09-23 13:52:52 +08:00
WeiCHEN
63e66c6fb3
merge: fix/agentctl-queue-subparser-2026-09-23 (queue subparser + tests)
2026-09-23 13:50:49 +08:00
WeiCHEN
2b5bcffcef
merge: promote-fix-latest-upload evidence (closeout docs)
...
Keep evidence short-term/report/receipts; leave FEATURE-MATRIX and CURRENT as current local_dev.
2026-09-23 13:50:31 +08:00
WeiCHEN
f9f09a5440
fix(ops): remove duplicate agentctl queue subparser registration
...
The second queue parser shadowed handler-compatible flags (--head,
cancel --task, schedule --drain), so enqueue/cancel/schedule failed
at runtime and queue_items stayed empty. Keep the first registration
and add regression coverage for parser flags, roundtrip, and schedule.
2026-09-23 13:50:18 +08:00
WeiCHEN
90b0a6498d
merge: freeform-project-id-bigint docs (closeout docs)
2026-09-23 13:50:12 +08:00
WeiCHEN
c60ccfe285
merge: modular-decouple residual candidate (closeout docs)
2026-09-23 13:50:11 +08:00
WeiCHEN
db3ec5d6e3
merge: modular-decouple closeout docs (closeout docs)
2026-09-23 13:50:10 +08:00
WeiCHEN
2ee2b495ca
merge: docrev-ui-rerun memo (closeout docs)
2026-09-23 13:50:09 +08:00
WeiCHEN
1950ab2cb1
merge: user-profile-display CURRENT claim (closeout docs)
2026-09-23 13:50:07 +08:00
WeiCHEN
68be691e13
merge: closeout-worktrees task doc (closeout docs)
2026-09-23 13:50:06 +08:00
WeiCHEN
306836006f
docs(ops): register closeout-worktrees task for docs merge and cleanup
2026-09-23 13:49:23 +08:00
WeiCHEN
19b91ae14f
merge: promote local_dev to test (task-bubble-bind assistant_msg_id + error actions)
2026-09-23 11:57:11 +08:00
WeiCHEN
cc91c217e7
merge: feature/task-bubble-bind-2026-09-23 (assistant_msg_id bind + error actions)
2026-09-23 11:49:50 +08:00
weichen
3f14d7fa75
docs: integrate coordination plan closeout
2026-09-23 03:45:27 +00:00
weichen
3a06150d01
docs: record coordination plan integration and verification
2026-09-23 03:45:27 +00:00
weichen
6a0d721f36
docs: integrate multi-host coordination research and plan
2026-09-23 03:44:27 +00:00
weichen
a542c21a42
docs: define multi-host agent coordination and recovery plan
2026-09-23 03:44:12 +00:00
WeiCHEN
c60685bb25
docs(ops): claim task-bubble-bind on CURRENT
...
Register parallel claim row after test overlay verification.
2026-09-23 11:26:01 +08:00
WeiCHEN
66eadc0dc1
docs(ops): record task-bubble-bind test evidence and closeout
...
Capture test overlay verification, LiveDualTrack, and browser checks for
assistant_msg_id binding and non-resumable continue hiding.
2026-09-23 11:24:45 +08:00
WeiCHEN
a360dd302f
merge: platform deepening plan (docs only)
2026-09-23 11:19:44 +08:00
WeiCHEN
6b7c8495c5
docs(remediation): add platform deepening plan for decoupling, bus, reliability, HA, concurrency
...
Six-track plan (R1-R6) grounded in the 2026-09-23 four-way read-only
survey: server/chat/bizdev/workflow residual coupling, event bus ops
loop gaps (dead letters, serial dispatch, dual outbox), panic
recovery, single-host HA (replicas, PG hot standby, backup
automation), concurrency hotspots (docgov engine lock, sync long
tasks, pool tuning). Planned only; no code changes.
2026-09-23 11:19:33 +08:00
WeiCHEN
b9b192a843
fix(web): bind task assistant bubble to serverId and harden error actions
...
Return assistant_msg_id from createTaskRun so live bubbles merge with history,
hide continue on terminal failed runs, and restart via a fresh turn/bubble.
2026-09-23 11:12:50 +08:00
weichen
a0fd52a627
docs: integrate learning workflow closeout
2026-09-23 03:02:40 +00:00
weichen
f1db9a6c78
docs: record learning workflow activation and verification
2026-09-23 03:02:31 +00:00
weichen
7bbd7a407f
docs: integrate issue tracking and development lessons
2026-09-23 03:01:37 +00:00
weichen
ccf515c3b1
docs: add issue tracking and development learning workflow
2026-09-23 03:00:51 +00:00
WeiCHEN
44bed71ccd
merge: promote local,dev to test (dialogue current-time anchor)
2026-09-23 11:00:21 +08:00
WeiCHEN
15fdb28aa1
merge: fix/dialogue-current-time-2026-09-23 (dialogue clock anchor)
2026-09-23 10:59:37 +08:00
WeiCHEN
c9e1033926
fix(coordinator): inject current time into dialogue prompt to anchor time-sensitive answers
2026-09-23 10:59:28 +08:00
weichen
2fdb6e548e
docs: integrate systemic analysis policy closeout
2026-09-23 02:44:58 +00:00
weichen
bbcb3b3b17
docs: record systemic analysis policy activation
2026-09-23 02:44:57 +00:00
weichen
958dd44fee
docs: integrate systemic issue analysis requirements
2026-09-23 02:42:58 +00:00
WeiCHEN
e77d994d5d
merge: closeout docs for pi-runner-response-size integrate
2026-09-23 10:33:49 +08:00
WeiCHEN
0d3976aa15
docs(ops): close out pi-runner response-size integrate on local_dev
2026-09-23 10:33:21 +08:00
WeiCHEN
ee66bd009a
docs: record latest-upload promote-to-test evidence
2026-09-23 10:32:11 +08:00
WeiCHEN
04d0727e94
merge: feature/pi-runner-response-size-2026-09-23 (cap /v1/run response size)
2026-09-23 10:30:16 +08:00
WeiCHEN
54955c9d1a
merge: promote local_dev to test (latest-upload summary + parse wait)
2026-09-23 10:27:21 +08:00
weichen
380584b86b
docs: require systemic root-cause analysis for reported issues
2026-09-23 02:23:45 +00:00
WeiCHEN
30fa4e88b2
merge: fix/fix-latest-upload-summary-2026-09-23 (latest-upload summary + parse wait)
2026-09-23 10:23:21 +08:00
WeiCHEN
e035d67170
docs(ops): register pi-runner response-size task as done
2026-09-23 10:22:41 +08:00
WeiCHEN
77028af546
fix(pi-runner): cap /v1/run response size to stop typed reject
...
Truncate execution.log patches and keep members aligned with patch bodies so
verbose MiniMax-M3 runs no longer exceed the Go 8MB fail-closed limit.
Surface body-too-large vs typed-reject reasons and map contract failures to
fatal restart instead of misleading resumable TASK_INTERRUPTED.
2026-09-23 10:22:23 +08:00
WeiCHEN
10f9a8b9c3
merge: modular-decouple-residual closeout docs (W4 matrix + governance status)
2026-09-23 10:19:42 +08:00
WeiCHEN
521edd4dba
merge: modular-decouple residual MATRIX/W4 calibration
...
Land FEATURE-MATRIX W4 landed notes and close superseded
governance-automation short-term after residual merges.
2026-09-23 10:19:32 +08:00
WeiCHEN
3ebabc1941
docs(ops): calibrate W4 matrix and close governance-automation status
...
Mark W4 projection/deploy/recover/Darwin as landed in FEATURE-MATRIX,
close the superseded governance-automation short-term, and refresh
residual closeout SHAs after local_dev merges.
2026-09-23 10:19:20 +08:00
WeiCHEN
9f7658515c
docs(ops): calibrate W4 matrix and close governance-automation status
...
Mark W4 projection/deploy/recover/Darwin as landed in FEATURE-MATRIX,
close the superseded governance-automation short-term, and refresh
residual closeout SHAs after local_dev merges.
2026-09-23 10:18:13 +08:00
WeiCHEN
55f3e89a2d
merge: promote-user-profile-display-test evidence (receipt + report)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 10:18:11 +08:00
WeiCHEN
e2e508755c
docs(ops): close user-profile-display test promotion evidence
2026-09-23 10:17:52 +08:00
WeiCHEN
f1f1846925
merge: modular-decouple-residual closeout docs
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 10:16:45 +08:00
WeiCHEN
ae9d44a35c
docs(ops): close out modular-decouple-residual after local_dev land
2026-09-23 10:16:30 +08:00
WeiCHEN
8b3936ea0c
merge: modular-decouple residual goose 00065
2026-09-23 10:15:20 +08:00
WeiCHEN
73e1797987
feat(sysadmin): add goose 00065 for system:* and settings audits
...
Restore the migration that seeds console permissions and creates
system_settings_audits so PG environments match the phase-2 API.
2026-09-23 10:15:15 +08:00
WeiCHEN
701c565f72
merge: modular-decouple-residual (splits + W4 + sysadmin)
...
Land nine package splits, W4 projection/deploy Darwin tests, and
sysadmin system:* permissions with settings audits onto local_dev.
2026-09-23 10:13:39 +08:00
WeiCHEN
ed6de25b82
merge(dev): absorb smalltalk routing into intent split
...
Keep use-case split of recognizer.go and port IsSmallTalk helpers
into recognizer_helpers.go so residual can re-integrate cleanly.
2026-09-23 10:13:29 +08:00
WeiCHEN
b2d49d54f1
docs(ops): record Sysadmin phase-2 tip SHA
2026-09-23 10:12:04 +08:00
WeiCHEN
e217929ccd
merge: promote local,dev to test (intent smalltalk + schema 64)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-23 10:12:00 +08:00
WeiCHEN
d49c8f8cfc
feat(sysadmin): system permission checks and settings audit list
...
Expose fine-grained system:* checks (admin grants all) and list
system_setting_policy_audits for settings change visibility.
2026-09-23 10:11:46 +08:00
WeiCHEN
5ab034eb53
merge: modular-decouple-residual (splits + W4 + sysadmin)
...
Land nine package splits, W4 projection/deploy Darwin tests, and
sysadmin system:* permissions with settings audits onto local_dev.
2026-09-23 10:10:17 +08:00
WeiCHEN
9735578c1f
docs(ops): record residual sysadmin matrix and CURRENT claim
...
Update FEATURE-MATRIX remaining deferred items and register the
continuation task claim for serial integrate.
2026-09-23 10:09:44 +08:00
WeiCHEN
b627134c62
feat(sysadmin): add system:* permissions and settings audit log
...
Seed fine-grained console permissions (goose 00065), gate admin
handlers by system:* keys, and persist settings change audits for
all upserts. KB ops and whitelist consumers stay deferred.
2026-09-23 10:09:10 +08:00
WeiCHEN
c6e3f26524
merge: fix/intent-smalltalk-routing-2026-09-23 (smalltalk → casual chat)
2026-09-23 10:08:44 +08:00
WeiCHEN
124c6d0071
docs(ops): correct W4 Darwin test claim
...
DarwinVisibilityTests are not in this round; keep evidence at 5 PASS.
2026-09-23 10:02:26 +08:00
WeiCHEN
ee037a4cbc
docs(ops): mark W4 done tip 12322b69
...
Fill pending_commit tip after projection/deploy commit; align W4 test count.
2026-09-23 10:02:13 +08:00
WeiCHEN
3337bf4a42
feat(w4): complete doc projection CAS and deploy/recover loop
...
Add whole-doc and row projection with hash CAS, real enqueue→claim→
fake-deploy→SQLite receipt chain, Darwin lsof cwd visibility, and
black-box tests. PI image compose remains deferred.
2026-09-23 10:01:23 +08:00
WeiCHEN
12322b6974
feat(agentctl): W4 projection apply and deploy-recover loop
...
Add CAS projection helpers and a real enqueue→claim→command→receipt
deploy path for temp-repo tests; PI image compose stays deferred.
2026-09-23 10:01:12 +08:00
WeiCHEN
f6e14f97af
docs(ops): record head_sha for upload parse-wait follow-up
2026-09-23 09:55:59 +08:00
WeiCHEN
1f37f90b4b
feat(chat): show MinerU parse progress while waiting in-turn
...
When summarizing the latest upload, poll parse state up to MinerU timeout,
emit document_parsing phase events so the bubble stays live and input stays
locked, then summarize or return a clear slow/failed reply.
2026-09-23 09:55:59 +08:00
WeiCHEN
0079080d8a
fix(intent): route general smalltalk questions to casual chat instead of stage consult template
2026-09-23 09:54:37 +08:00
WeiCHEN
39e115b4d3
refactor(docgov): split engine.go into use-case files
...
Move claim/document/persist/proposal/read/review_flow into ≤800-line
siblings without behavior change; short tests green.
2026-09-23 09:54:19 +08:00
WeiCHEN
4c07716933
refactor(server): split handlers.go by domain
...
Keep slim handlers.go core; move chat/docgov/health/http/context
handlers into domain files ≤800 lines without behavior change.
2026-09-23 09:54:18 +08:00
WeiCHEN
943becfb2a
refactor(projectinstance): split store.go into use-case files
...
Move mem/pg activate/live/meta/plan/token/seed paths into ≤800-line
siblings without behavior change; short tests green.
2026-09-23 09:54:17 +08:00
WeiCHEN
20290d0379
docs(ops): claim CURRENT row for user-profile-display done
2026-09-23 09:53:30 +08:00
WeiCHEN
64c7197f8c
merge: user-profile-display acceptance docs
2026-09-23 09:53:11 +08:00
WeiCHEN
c1f27e3cdb
docs(ops): record user-profile-display acceptance on local_dev
2026-09-23 09:53:02 +08:00
WeiCHEN
9da7f352fa
refactor(docrevision): split service.go into use-case files
...
Move human/agent/read/locked/compat paths into ≤800-line siblings
without behavior change; short tests green.
2026-09-23 09:52:49 +08:00
WeiCHEN
dca33c705d
refactor(boundaries): split five oversized packages by use-case
...
Move bizdev/freedoc/intent/projectworkflow/squad giant files into
≤800-line use-case siblings without behavior change; short tests green.
2026-09-23 09:52:16 +08:00
WeiCHEN
2fae990965
merge: user-profile-display build unblock (optional chat status)
2026-09-23 09:44:12 +08:00
WeiCHEN
654a92583f
fix(web): allow optional chat status in cancelInflight helper
...
Unblocks Docker web build after ChatMessage.status became optional.
2026-09-23 09:44:02 +08:00
WeiCHEN
1546d89446
docs(ops): record head_sha for latest-upload summary fix
2026-09-23 09:42:47 +08:00
WeiCHEN
a3b5d4291b
fix(chat): resolve latest-upload summary via CAS assets
...
Recognize “刚刚上传” as @latest_upload and summarize the project’s newest CAS attachment (with clear parse pending/failed/no-asset replies) instead of searching only controlled workflow docs.
2026-09-23 09:42:28 +08:00
WeiCHEN
ad80777a3e
merge: user-profile-display (directory API + profile edits)
2026-09-23 09:40:00 +08:00
WeiCHEN
6d3efdf4d7
feat(auth): show real names in duty pickers and enable profile edits
...
Add a login-visible user directory API and admin/self profile update
paths so project duty selectors stop falling back to "用户 N", and so
users can persist display fields with an admin-edit tip.
2026-09-23 09:39:41 +08:00
WeiCHEN
19a1a03c20
merge: modular-refactor-impl-plan closeout (CURRENT done)
...
Record undertaking-plan task done and short-term closeout after first merge.
2026-09-23 09:38:25 +08:00
WeiCHEN
e32d55bd9b
docs(ops): close modular-refactor-impl-plan after local_dev merge
...
Record merged SHA, validation receipts, and CURRENT row done; cleanup
pending for feature worktree; remote sync not requested.
2026-09-23 09:38:24 +08:00
WeiCHEN
b9f4509287
merge: modular-refactor-impl-plan-2026-09-23 (undertaking framework)
...
Land the phase-gate and work-package backfill framework for the off-host
refactor plan; documentation only.
2026-09-23 09:38:01 +08:00
WeiCHEN
19a8f19a8a
docs(ops): claim CURRENT for modular-refactor-impl-plan
...
Register the undertaking-plan documentation task in the parallel-claim table.
2026-09-23 09:37:49 +08:00
WeiCHEN
5c249b0975
docs(plan): add modular refactor implementation undertaking framework
...
Define phase gates, work-package template, anti-duplication checks against
A-G/exceptions baseline, and product-host backfill rules without coding.
2026-09-23 09:37:48 +08:00
weichen
c45ed6ba52
docs: integrate system modular refactoring plan
2026-09-23 01:36:43 +00:00
weichen
a44804fd59
docs(architecture): add system remediation and refactoring plan
2026-09-23 01:36:29 +00:00
WeiCHEN
2ce8688db4
merge: modular-refactor-review closeout (CURRENT done)
...
Record checklist task done and short-term closeout after first merge.
2026-09-23 09:14:42 +08:00
WeiCHEN
6bcaf53d51
docs(ops): close modular-refactor-review after local_dev merge
...
Record merged SHA, validation receipts, and CURRENT row done; cleanup
remains for an independent maintainer; remote sync not requested.
2026-09-23 09:14:33 +08:00
WeiCHEN
e8bff7e287
merge: modular-refactor-review-2026-09-23 (audit checklist)
...
Bring the phase-1/2 and cancel-contract review checklist into local_dev
as a documented self-check for the off-host refactor plan.
2026-09-23 09:13:47 +08:00
WeiCHEN
f0de2b2158
docs(ops): claim CURRENT row for modular-refactor-review
...
Register the checklist task in the parallel-claim table so coordination
snapshots match the agentctl registration.
2026-09-23 09:12:38 +08:00
WeiCHEN
6d9f3648bd
docs(audit): add modular refactor plan review checklist
...
Provide phase-1/2 and cancel-contract self-check items for the off-host
refactor plan, with N01–N22 mapping placeholders and product-host backfill steps.
2026-09-23 09:11:56 +08:00
WeiCHEN
457bea8591
docs(ops): note CURRENT sync completed after DOCREV UI PASS
...
Record that the ours-merge CURRENT drop was repaired via closeout
on local_dev; keep only the short-term memo on this branch.
2026-09-23 09:09:44 +08:00
WeiCHEN
8f0e31e53a
merge: closeout FEATURE-MATRIX A-G done + CURRENT residuals
2026-09-23 04:24:54 +08:00
WeiCHEN
fdd072d694
docs(status): close MATRIX A-G and register unfinished-batch residuals
...
Restore W1-D schema facts lost in merge, mark decoupling A-G done with
batch evidence, and keep redline rows partial with 2026-09-22 evidence.
2026-09-23 04:24:09 +08:00
WeiCHEN
c24e1548ca
merge: closeout CURRENT + sealed DOCREV UI PASS ledger
...
Resolve CURRENT to DOCREV PASS focus (CAS on closeout 44cc4926 ).
Archive sealed main/post-restart ledger mud2qct9. Hook bypass: integrate
task lacks docs:admin; CURRENT body matches closeout receipt.
2026-09-23 04:17:42 +08:00
WeiCHEN
44cc4926e1
docs(ops): restore DOCREV UI PASS focus on CURRENT
...
Prior ours-merge dropped the focus line; re-apply via docs @document
CAS with sealed ledger link and docrev cleanup row.
2026-09-23 04:17:13 +08:00
WeiCHEN
4a97cfcf76
docs(test): archive sealed DOCREV UI main+post-restart PASS ledger
...
Persist mud2qct9 main/post ledgers, phase-state, and key screenshots
under sealed-ledger-ui00-16-post-20260923T0400Z (schema 63).
2026-09-23 04:16:39 +08:00
WeiCHEN
63348b6e35
merge: docrev short-term CURRENT sync note
2026-09-23 04:06:16 +08:00
WeiCHEN
a9198eb5b5
docs(ops): note CURRENT sync pending after DOCREV UI PASS
2026-09-23 04:06:15 +08:00
WeiCHEN
437cee84a5
merge: closeout CURRENT DOCREV UI PASS note
2026-09-23 04:03:32 +08:00
WeiCHEN
e9a9ce97c2
docs(ops): record DOCREV UI rerun PASS on CURRENT
2026-09-23 04:02:02 +08:00
WeiCHEN
ddcb63cd4b
merge: feature/docrev-ui-rerun-2026-09-22 (UI PASS closeout docs)
2026-09-23 04:01:06 +08:00
WeiCHEN
4baa1220ee
docs(ops): close docrev UI audits after main+post-restart PASS
...
Record real Playwright ledgers, mark 20 audits and 9 remediations done, and leave management-implementation-plan as plan-only.
2026-09-23 04:00:49 +08:00
WeiCHEN
bcc3168e8a
merge: feature/docrev-ui-rerun-2026-09-22 (UI-13b before 三权)
2026-09-23 03:35:48 +08:00
WeiCHEN
0f97965cd2
fix(e2e): run UI-13b A/A conflict on drafting intake before 三权
...
Prelim materializes with empty duty slots (author_id=0), so claim/edit is
impossible after UI-11; move conflict onto intake while it is still drafting.
2026-09-23 03:35:27 +08:00
WeiCHEN
6fc86335ef
merge: feature/docrev-ui-rerun-2026-09-22 (squad/playwright timeouts)
2026-09-23 03:12:58 +08:00
WeiCHEN
84cc3b9861
fix(e2e): raise Playwright per-test timeout to 15m
...
Pair with 10m squad waits so UI-03 does not race the test wall when intake finishes near the expect limit.
2026-09-23 03:11:20 +08:00
WeiCHEN
ecd8e94e24
fix(e2e): raise squad wait timeout to 10m for UI-03
...
Intake completion landed ~20s after the old 7m expect wall; keep claim-before-edit fix and avoid false pending failures.
2026-09-23 03:09:24 +08:00
WeiCHEN
8c37c9330a
merge: feature/docrev-ui-rerun-2026-09-22 (UI-13b claim-before-edit)
2026-09-23 03:02:42 +08:00
WeiCHEN
01bf599bd4
fix(e2e): claim prelim author before UI-13b conflict edit
...
Prelim docs ship with author_id=0 so currentDocRole is viewer and dblclick
is a no-op; claim 认领此文档 first then assert the edit tip on both A contexts.
2026-09-23 03:00:15 +08:00
WeiCHEN
67251abc09
fix(e2e): release A1 lease before UI-13b A2 opens block editor
...
Same-user second context could not dblclick-edit while A1 held the
human lease on prelim. Leave to intake, let A2 claim editor, then A1 save.
2026-09-23 02:35:45 +08:00
WeiCHEN
0429b9735e
fix(e2e): run UI-13b conflict on drafting prelim, not locked intake
...
After UI-11 三权, intake is 已生效受控 and blocks body edit. Use
secondDocId (prelim_design) for the A/A head-conflict scenario.
2026-09-23 02:12:02 +08:00
WeiCHEN
92bb1a2004
fix(e2e): send Bearer token when fetching revision-state etag
...
UI-13b page.evaluate fetch used credentials-only and got HTTP 401 because
auth is Bearer in smdf_auth_session, not cookies.
2026-09-23 01:53:49 +08:00
WeiCHEN
9d7c97f728
fix(e2e): fetch revision-state etag by doc id for UI-13b
...
waitForResponse raced unrelated revision-state polls, so A1/A2
compared different documents heads before the conflict save.
2026-09-23 01:29:17 +08:00
WeiCHEN
a28c067f72
merge: feature/docrev-ui-rerun-2026-09-22 (freeform bigint + UI e2e)
2026-09-23 00:47:23 +08:00
WeiCHEN
3bdd53ae35
fix(freedoc): widen freeform project_id to BIGINT for snowflake IDs
...
UI-11 POST /freeform-documents 500 when project_id exceeds int4.
Align Go types + goose 00063 with projects.id BIGINT.
2026-09-23 00:45:31 +08:00
WeiCHEN
b6965eb0f3
docs(ops): mark freeform project_id BIGINT task done
2026-09-23 00:44:05 +08:00
WeiCHEN
2b901a61de
fix(freedoc): widen freeform project_id to BIGINT
...
Snowflake project IDs exceed int4; upload registration failed with
pgx encode errors. Align column and Go types with projects.id.
2026-09-23 00:42:30 +08:00
WeiCHEN
1ff3d81e1b
docs(ops): pin docrev-ui head_sha after closeout scaffold
2026-09-23 00:27:28 +08:00
WeiCHEN
c9a9b90172
docs(ops): scaffold docrev UI rerun closeout without closing audits
...
Record honest partial progress (UI-00..04 live PASS, sealed UI-00..10 screenshots, UI-11 blocker history) and UI→audit mapping; leave 09-13 audits in_progress until full main+post-restart PASS ledger exists.
2026-09-23 00:27:07 +08:00
WeiCHEN
1dbdb95088
fix(e2e): click 确认推进 after intake 三权 before UI-11
...
Approved intake only unlocks the gate; prelim_design still 403 until
creator advances V0.1 → V0.5 via StageAdvanceBanner.
2026-09-23 00:17:08 +08:00
WeiCHEN
3a1065f789
fix(e2e): expand collapsed doc rail before category select
...
Reviewer/approver contexts open with collapsed rail; UI-11 三权
failed looking up doc-category-trigger.
2026-09-23 00:02:41 +08:00
WeiCHEN
e6b23772c9
fix(e2e): approve intake via 三权 before UI-11 prelim_design
...
V0.1 blocking intake caused tasks/runs 403 for V0.5 prelim_design;
drive submit/review/approve on page and accept bd_prelim_design keys.
2026-09-22 23:40:22 +08:00
WeiCHEN
34d4ddcd7a
merge: fix-governance-agent-worktree-restore-2026-09-22
2026-09-22 23:31:46 +08:00
WeiCHEN
3633f8771e
fix(scripts): restore agent_worktree after governance merge conflict
2026-09-22 23:31:43 +08:00
WeiCHEN
85afbfb3f6
merge: feature/governance-automation-2026-09-22
2026-09-22 23:29:44 +08:00
WeiCHEN
4476c446f0
merge: feature/coordinator-docgov-allowlist-2026-09-22
2026-09-22 23:28:40 +08:00
WeiCHEN
07991588c2
merge: feature/docrev-ui-rerun-2026-09-22
2026-09-22 23:20:01 +08:00
WeiCHEN
5e7fb240c3
fix(e2e): accept bd_intake task_key for UI-05b intake runs
...
Server posts doc_proj suffix (bd_intake) as task_key; bare intake
assertion was a false FAIL after UI-05a.
2026-09-22 23:11:00 +08:00
WeiCHEN
1c78d614cb
fix(web): ignore retained task run id when unlocking chat composer
...
Orphan streaming_status plus a leftover activeTaskRunId kept InputArea on
停止 after squad terminal. Gate taskRunLive on isThinking only and clear
runId on abortSession so stop/send can proceed for UI-05+.
2026-09-22 23:02:13 +08:00
WeiCHEN
db8c3dcc64
fix(web): settle orphan inflight bubbles via shared cancel helper
...
Wire cancelInflightAssistantMessages on stop so composer unlock and
message status stay consistent across sessions.
2026-09-22 22:59:17 +08:00
WeiCHEN
c3639eba7d
fix(web): unlock chat send when orphan streaming_status remains
...
Composer stop/send was gated only on message status; after squad
terminal, stale streaming bubbles kept 停止当前生成. Gate on live
turn/task-run runtime and settle orphans on explicit stop.
2026-09-22 22:58:39 +08:00
WeiCHEN
5c222d18e6
fix(e2e): drain stuck chat streaming before next sendChat
...
UI-05 timed out on 发送 because InputArea stayed isStreaming after
squad terminal; stop/idle wait restores 发送 (Enter).
2026-09-22 22:49:55 +08:00
WeiCHEN
30c85ed79f
fix(e2e): disable Playwright auto-artifacts for docrev UI acceptance
2026-09-22 22:40:40 +08:00
WeiCHEN
8b76060b5f
merge: feature/docrev-ui-rerun-2026-09-22
2026-09-22 22:30:05 +08:00
WeiCHEN
8122f7461d
docs(ops): pin docrev-ui head_sha
2026-09-22 22:30:03 +08:00
WeiCHEN
3fdf4a01b7
docs(ops): pin docrev-ui head_sha on final rebuilt tip
2026-09-22 22:30:02 +08:00
WeiCHEN
c5999f9c30
fix(e2e): retain Playwright artifacts only on failure for docrev UI
...
Avoid ENOENT on in-flight traces when long UI-03 squad runs while
outputDir is cleaned by a concurrent acceptance attempt.
2026-09-22 22:30:02 +08:00
WeiCHEN
235def6dbf
docs(ops): pin docrev-ui head_sha on rebuilt tip
2026-09-22 22:30:01 +08:00
WeiCHEN
f99e714fb2
fix(e2e): activate workflow with A/B/D duties before UI-02 squad
...
Product gate blocks intake until workflow is active with human-approval
duties. Keep C non-member for UI-12; pin B as reviewer for UI-13.
2026-09-22 22:30:00 +08:00
WeiCHEN
62f444ce15
fix(e2e): add approver D for workflow 三权 without inviting C
...
系统管理员 name collides in member list; unique 审批人D keeps UI-12.
2026-09-22 22:29:59 +08:00
WeiCHEN
16cb60b3d8
fix(e2e): activate workflow in UI-01 before squad tasks
...
Product gate blocks document tasks until a human-approval workflow is
active; add admin as third member for 三权 and drive 配置工作流.
2026-09-22 22:29:58 +08:00
WeiCHEN
54629e7f40
fix(e2e): scope UI-02 prompt visibility to user chat bubble
...
Avoid strict-mode collision with truncated preview duplicate text.
2026-09-22 22:29:57 +08:00
WeiCHEN
c2d5499229
fix(e2e): expand collapsed doc rail before UI-01 template hint
...
Default right rail is collapsed; assert after opening 展开受控文档栏.
2026-09-22 22:29:57 +08:00
WeiCHEN
50d50d4798
fix(web): preserve org user directory across workbench reset
...
Logout and account switch were clearing USERS from localStorage, so
UI-01 page.goto remount loaded an empty member list for non-admins.
2026-09-22 22:29:56 +08:00
WeiCHEN
b246ead0e4
docs(ops): sync docrev-ui head_sha to tip
2026-09-22 22:29:55 +08:00
WeiCHEN
7519e76ac2
docs(ops): mark docrev UI rerun blocked pending env lease
2026-09-22 22:29:54 +08:00
WeiCHEN
8d2d514fa7
fix(e2e): exit AdminConsoleView via 返回工作台 in UI-00
2026-09-22 22:29:53 +08:00
WeiCHEN
61a0623bf8
fix(e2e): open Users section before create-user in docrev UI-00
2026-09-22 22:29:52 +08:00
WeiCHEN
2e45a649c5
docs(ops): register docrev UI rerun short-term after artifact fix
2026-09-22 22:29:51 +08:00
WeiCHEN
4bb4881241
merge: feature/track-t-strengthen-2026-09-22
2026-09-22 22:28:48 +08:00
WeiCHEN
3208e090ad
merge: feature/rdev-closeout-2026-09-22
2026-09-22 22:28:44 +08:00
WeiCHEN
1498cd230a
merge: feature/server-assembly-2026-09-22
2026-09-22 22:26:50 +08:00
WeiCHEN
2695b55863
merge: feature/docgov-vocabulary-2026-09-22
2026-09-22 22:26:27 +08:00
WeiCHEN
476ef180bb
merge: feature/closeout-unfinished-batch-2026-09-22
2026-09-22 22:26:19 +08:00
WeiCHEN
e7aaa20f5d
docs(ops): record unfinished-batch closeout on local tip 0352c099
2026-09-22 22:26:14 +08:00
WeiCHEN
aebd27665b
merge: feature/loading-perf-closeout-2026-09-22
2026-09-22 22:25:37 +08:00
WeiCHEN
fe9b1b41ed
merge: feature/web-api-client-2026-09-22
2026-09-22 22:24:29 +08:00
WeiCHEN
6ad6f55f4b
docs(ops): pin governance-automation head_sha after conflict resolution
2026-09-22 22:20:37 +08:00
WeiCHEN
0352c0996d
merge: feature/governance-automation-2026-09-22
...
Keep macOS process platform; land W4 queue/automation and cleanup-report.
2026-09-22 22:20:37 +08:00
WeiCHEN
1116058a88
merge(dev): sync governance-automation onto current local dev
2026-09-22 22:20:36 +08:00
WeiCHEN
2006c7103a
fix(arch): restore coordinator→docgov allowlist after engine-split
...
Engine split kept the existing production import; vocabulary allowlist rewrite had dropped the key and left arch-check red on tip.
2026-09-22 22:14:52 +08:00
WeiCHEN
3eac3a815f
merge: feature/engine-split-archfix-2026-09-22
...
Restore arch-check after engine-split unused docgov imports.
2026-09-22 22:14:23 +08:00
WeiCHEN
0ad4ee319c
fix(coordinator): map engine-split sentinels to vocabulary
2026-09-22 22:14:22 +08:00
WeiCHEN
04d1b174e9
merge: feature/track-s1-summary-shadow-2026-09-22
2026-09-22 22:13:41 +08:00
WeiCHEN
f77cf953d5
merge(dev): sync track-s1 shadow onto current local dev
2026-09-22 22:13:31 +08:00
WeiCHEN
a01db5451c
merge: feature/engine-split-2026-09-22
2026-09-22 22:12:24 +08:00
WeiCHEN
19eeccc699
docs(ops): pin engine-split head_sha on rebuilt tip
2026-09-22 22:10:27 +08:00
WeiCHEN
834af6dd59
refactor(coordinator): split engine.go by use-case handlers (rebuilt on current dev)
2026-09-22 22:10:26 +08:00
WeiCHEN
08af12b936
merge: feature/g2-g3-exception-clearance-2026-09-22
...
Keep G1 cleared sql_write; land G2/G3 path clearances; baseline to zero.
2026-09-22 22:08:53 +08:00
WeiCHEN
fa34f8c84d
docs(ops): sync track-t head_sha to tip
2026-09-22 22:08:39 +08:00
WeiCHEN
e07d6024e6
docs(ops): pin governance-automation head_sha
2026-09-22 22:08:39 +08:00
WeiCHEN
3dc7b85b7e
docs(ops): pin track-s1 consolidation head_sha to tip
2026-09-22 22:08:39 +08:00
WeiCHEN
2b6f645aad
docs(ops): register track-t strengthen short-term as merged
2026-09-22 22:08:39 +08:00
WeiCHEN
ae001a85c1
fix(ops): copy agentctl_w4 into script test fixtures
...
Disposable Git fixtures only copied agentctl.py, so imports of the new
W4 helper module crashed before any guard assertions could run.
2026-09-22 22:08:38 +08:00
WeiCHEN
79f1710f8e
docs(ops): pin server-assembly head_sha after conflict resolution
2026-09-22 22:06:14 +08:00
WeiCHEN
9967f41053
fix(server): resolve assembly merge onto current local dev
2026-09-22 22:06:14 +08:00
WeiCHEN
573fce225d
merge: feature/track-i1-query-owner-2026-09-22
...
Land QueryOwner code; FEATURE-MATRIX deferred to docs apply.
2026-09-22 22:05:45 +08:00
WeiCHEN
0eee2dd036
merge: feature/server-assembly-2026-09-22
...
Keep G1 Heal via docgov through Runtime port; domain HTTP adapters.
2026-09-22 22:04:53 +08:00
WeiCHEN
955ebe8a36
merge: feature/chat-history-refresh-reconcile-2026-09-22
2026-09-22 22:03:46 +08:00
WeiCHEN
239997ce09
merge: feature/status-drift-reconcile-2026-09-22
2026-09-22 22:02:53 +08:00
WeiCHEN
1892af6391
docs(ops): sync rdev-closeout head_sha to tip
2026-09-22 22:01:50 +08:00
WeiCHEN
6cdb818e0d
docs(ops): sync loading-perf head_sha to tip
2026-09-22 22:01:50 +08:00
WeiCHEN
5a07a8388a
docs(ops): align rdev-closeout head_sha after merge
2026-09-22 22:01:50 +08:00
WeiCHEN
97f05c3d10
docs(ops): align loading-perf head_sha for integrate readiness
2026-09-22 22:01:50 +08:00
WeiCHEN
82eb500d8e
docs(ops): sync docgov-vocabulary head_sha to tip
2026-09-22 22:01:49 +08:00
WeiCHEN
f33670f5bd
docs(ops): sync track-i1 head_sha to tip
2026-09-22 22:01:49 +08:00
WeiCHEN
6fae5a1ee6
docs(ops): sync chat-history-refresh head_sha to tip
2026-09-22 22:01:49 +08:00
WeiCHEN
aa78d03044
docs(ops): align track-i1 head_sha for integrate readiness
2026-09-22 22:01:49 +08:00
WeiCHEN
7292c01aaa
docs(ops): align chat-history-refresh head_sha to branch tip
2026-09-22 22:01:49 +08:00
WeiCHEN
5197cf348b
docs(ops): sync server-assembly head_sha to tip
2026-09-22 22:01:48 +08:00
WeiCHEN
49eba094c0
docs(ops): sync status-drift-reconcile head_sha to tip
2026-09-22 22:01:48 +08:00
WeiCHEN
98fd086894
docs(ops): align docgov-vocabulary head_sha for integrate readiness
2026-09-22 22:01:48 +08:00
WeiCHEN
04d18e1f80
docs(ops): align server-assembly head_sha for integrate readiness
2026-09-22 22:01:48 +08:00
WeiCHEN
0111824d10
docs(ops): align W1-D head_sha for integrate readiness
2026-09-22 22:01:48 +08:00
WeiCHEN
dee905c1de
docs(ops): sync g2-g3 head_sha to tip
2026-09-22 22:01:27 +08:00
WeiCHEN
db632aeea2
docs(ops): mark g2-g3 clearance done and pin head_sha
2026-09-22 22:01:27 +08:00
WeiCHEN
a8c6eb6638
refactor(boundaries): clear U5 path leaks and U8 task_runs write
...
Route deliverable/workspace paths through workspace constants and cancel
open runs via taskrun.CancelOpenByProject so G2/G3 exceptions can drop.
2026-09-22 22:01:14 +08:00
WeiCHEN
50fd582595
merge: feature/agentctl-macos-2026-09-22 (head_sha tip)
2026-09-22 22:00:24 +08:00
WeiCHEN
0c572ddaca
test(chat): align semantic shadow tests with async pending path
...
Drain/wait after GenerateRollingSummary; register summary table writers;
document consolidation discarding duplicate S1 dirty worktrees.
2026-09-22 21:59:12 +08:00
WeiCHEN
060bbb92cb
docs(ops): pin web-api-client head_sha after CRLF residual
2026-09-22 21:59:05 +08:00
WeiCHEN
4d87b9a401
fix(web): accept CRLF SSE frame delimiters in chatStream
...
Align residual chatStream parsing with sibling t20-lowrisk so LF/CRLF
mixed streams parse reliably before integration, with unit coverage.
2026-09-22 21:59:05 +08:00
WeiCHEN
52c7828339
merge: feature/docgov-vocabulary-2026-09-22
...
Keep contracts/vocabulary with G1 uow/workspace duty ports; chat stays decoupled.
2026-09-22 21:58:16 +08:00
WeiCHEN
e558192813
merge: feature/loading-perf-closeout-2026-09-22
2026-09-22 21:56:09 +08:00
WeiCHEN
e6f101a811
merge: feature/docrev-ui-rerun-2026-09-22
2026-09-22 21:54:56 +08:00
WeiCHEN
7e405546ec
merge: feature/track-t-strengthen-2026-09-22
2026-09-22 21:54:48 +08:00
WeiCHEN
57111ca075
merge: feature/rdev-closeout-2026-09-22
2026-09-22 21:54:40 +08:00
WeiCHEN
6984f96c19
merge: feature/workflow-def-unidirect-2026-09-22
2026-09-22 21:53:52 +08:00
WeiCHEN
4662e39541
merge: feature/web-api-client-2026-09-22
2026-09-22 21:53:45 +08:00
WeiCHEN
265de19725
merge: feature/chat-app-decouple-2026-09-22
2026-09-22 21:53:38 +08:00
WeiCHEN
0779db4634
docs(ops): pin loading-perf head_sha to tip
2026-09-22 21:53:35 +08:00
WeiCHEN
3e1d00b2e3
merge: feature/t20-lowrisk-hardening-2026-09-22
2026-09-22 21:53:30 +08:00
WeiCHEN
2c80129421
merge: feature/g1-exception-clearance-2026-09-22
2026-09-22 21:53:25 +08:00
WeiCHEN
e207dc1e71
docs(status): close FEATURE-MATRIX initial-load special section
...
Mark U1/U3/U7 measured closeout on schema 61; keep whole-machine reboot
claim out of scope.
2026-09-22 21:53:20 +08:00
WeiCHEN
c37988f075
merge: feature/redline-evidence-2026-09-22
2026-09-22 21:53:20 +08:00
WeiCHEN
c89c07f977
docs(ops): add initial-load closeout test report
...
Record schema-61 n=20 waterfall, throttle, and U7 form evidence; note Edge
channel exception for Playwright Chromium download sandbox.
2026-09-22 21:53:19 +08:00
WeiCHEN
a17da2aa13
merge: feature/t20-design-items-2026-09-22
2026-09-22 21:52:34 +08:00
WeiCHEN
f96c5277fd
test(e2e): fix UI_PHASE evidence isolation for docrev UI rerun
2026-09-22 21:51:33 +08:00
WeiCHEN
17f6e4dd2d
test(web): close initial-load perf harness for U1/U3/U7 evidence
2026-09-22 21:51:32 +08:00
WeiCHEN
9a5b8a5ed5
docs(ops): finalize T20 W4 design decisions packaging
2026-09-22 21:51:21 +08:00
WeiCHEN
056e4e5c4b
feat(chat): productionize semantic summary shadow path without REPLACE
2026-09-22 21:51:20 +08:00
WeiCHEN
684008e3a5
feat(trace): strengthen T2/T3 evidence and access-log design
2026-09-22 21:51:19 +08:00
WeiCHEN
10c5a295a2
feat(rdev): nightly four-workflow expansion and proposal title alignment
2026-09-22 21:51:18 +08:00
WeiCHEN
f01970564a
feat(ops): advance governance automation queue and projection increments
2026-09-22 21:51:17 +08:00
WeiCHEN
4ae878e4c5
docs(ops): complete redline evidence packs without capability release
2026-09-22 21:51:15 +08:00
WeiCHEN
6a6c4230be
merge: feature/agentctl-macos-2026-09-22 (macOS process platform)
2026-09-22 21:48:36 +08:00
WeiCHEN
6b9d3cc69a
docs(ops): fill agentctl-macos head_sha tip
2026-09-22 21:48:23 +08:00
WeiCHEN
6bce3a4ff8
docs(ops): freeze G1 head_sha at implementation tip
...
Point short-term head_sha at feat+fix tip 45c21ef9 so docs pin
commits do not chase a self-referential SHA.
2026-09-22 21:47:00 +08:00
WeiCHEN
c17594aaa2
docs(ops): pin G1 short-term head_sha to tip
2026-09-22 21:46:51 +08:00
WeiCHEN
13d5f8cdaa
docs(ops): clarify G1 tip SHAs in short-term closeout
2026-09-22 21:46:20 +08:00
WeiCHEN
2f1c66bf4d
docs(ops): record agentctl-macos verification and head_sha
2026-09-22 21:46:11 +08:00
WeiCHEN
dcd4867ad0
docs(ops): pin G1 clearance head_sha to final tip
2026-09-22 21:45:21 +08:00
WeiCHEN
a85d06a6b4
docs(ops): finalize G1 clearance short-term after branch restore
...
Correct branch ownership note now that this worktree alone holds
feature/g1-exception-clearance-2026-09-22; retain macOS lease exception.
2026-09-22 21:45:21 +08:00
WeiCHEN
668ed249ef
docs(ops): pin docgov-vocabulary head_sha to tip
2026-09-22 21:44:57 +08:00
WeiCHEN
f1295c435e
docs(ops): pin g2-g3 head_sha to tip
2026-09-22 21:44:57 +08:00
WeiCHEN
993b3dcbae
docs(ops): pin workflow-def-unidirect head_sha to tip
2026-09-22 21:44:57 +08:00
WeiCHEN
381b56dafc
refactor(docgov): converge shared lifecycle vocab into contracts
...
Introduce internal/contracts/vocabulary for state/role/error sentinels,
alias through docgov, and retarget hot production consumers so
coordinator no longer imports docgov for vocabulary-only use.
2026-09-22 21:44:57 +08:00
WeiCHEN
7d51e40b1c
refactor(boundaries): clear data/dev path leaks; start output.md via DeliverableKey
...
Remove coordinator/bizdev/storage data/dev fallbacks and register
agent→workspace so default agent targets use workspace.DeliverableKey.
Remaining U5 path and G3 task_runs clearance stay open.
2026-09-22 21:44:57 +08:00
WeiCHEN
ad96f67442
refactor(workflowdef): make definition/runtime deps unidirectional
...
Keep registry key validation local to workflowdef with composition-root
injection, adapt FlatCatalog for projectworkflow, and drive the
orchestrator through LiveInstancePort views instead of projectinstance.
2026-09-22 21:44:57 +08:00
WeiCHEN
72b3d42808
docs(ops): pin track-i1 head_sha to tip
2026-09-22 21:44:56 +08:00
WeiCHEN
615529f4c4
docs(ops): pin server-assembly head_sha to tip
2026-09-22 21:44:56 +08:00
WeiCHEN
d019388f37
feat(intent): wire production QueryOwner and confirm dispatcher
...
Replace FakeActionOwner with QueryOwner+QueryGuard at the composition
root; DispatchEligible reuses claim/execute/recover so confirm stays
zero-write before dispatch and default tier remains legacy.
2026-09-22 21:44:56 +08:00
WeiCHEN
9071c272bf
refactor(server): drop Server pool; route health/heal/vault via Runtime
...
Remove production *pgxpool.Pool from Server, centralize domain→HTTP
status mapping, and expose Runtime ports for task-store readiness,
duty heal, and artifact vault registry. Allow app→docduty for heal wiring.
2026-09-22 21:44:56 +08:00
WeiCHEN
ade6c2eefc
docs(ops): pin G1 short-term head_sha to tip
2026-09-22 21:44:39 +08:00
WeiCHEN
041f9dff62
docs(ops): note G1 tip branch after name collision
...
Record macOS hooks bypass and that engine-split holds the original
feature branch name; tip lives on feature/g1-exception-clearance-w1a-tip.
2026-09-22 21:44:39 +08:00
WeiCHEN
47fdeb1655
feat(agentctl): add macOS process platform layer
...
Replace Linux /proc hard dependency with Darwin ps+sysctl while keeping
zombie/group/boot three-value semantics fail-closed for unreadable PIDs.
2026-09-22 21:44:28 +08:00
WeiCHEN
3afd214679
docs(ops): pin G1 clearance task head_sha to tip
2026-09-22 21:42:58 +08:00
WeiCHEN
7c25b3b59e
docs(ops): record W1-A G1 exception clearance short-term task
...
Capture scope, macOS agentctl /proc lease exception, and arch/vet/short
evidence for the U3 sql_write and U4 path clearance batch.
2026-09-22 21:42:58 +08:00
WeiCHEN
45c21ef96e
fix(workspace): compare realpaths when enforcing artifact roots
...
macOS TempDir resolves /var to /private/var; EvalSymlinks the data root
before Rel so fencing writes are not false path-escape failures.
2026-09-22 21:42:58 +08:00
WeiCHEN
9c7a5be209
feat(arch): clear G1 U3/U4 sql_write and path exceptions
...
Move document_records duty-slot writes into docgov, project ledger
heads through docgov/freedoc ports, and workspace deliverable I/O
through DeliverableStore so arch-check baseline drops to sql_write:1
path:13.
2026-09-22 21:40:12 +08:00
WeiCHEN
485572dce2
docs(ops): T20 W4 hardening design decisions
...
Record recommended approaches, risks, acceptance, and product/env
blockers for audit-remainder design items; cross-link F5/I8 to lowrisk.
2026-09-22 21:29:47 +08:00
WeiCHEN
319d632b24
docs(ops): pin T20 closeout tip SHA
2026-09-22 21:29:11 +08:00
WeiCHEN
b09ab2e4a6
docs(ops): closeout T20 hardening PASS/SKIP checklist
...
Record per-item PASS evidence, verification summary, and macOS
agentctl exception for the W2 low-risk hardening batch.
2026-09-22 21:28:41 +08:00
WeiCHEN
2d19ecb745
docs(ops): pin web-api-client head_sha to feat tip
2026-09-22 21:28:40 +08:00
WeiCHEN
c73b376b93
docs(audit): link CHAT-HISTORY-REFRESH reconcile PASS closeout
2026-09-22 21:28:22 +08:00
WeiCHEN
bf94995e1e
docs(ops): align chat-history refresh closeout with B3 evidence
...
Fix residual contradiction that treated activate+restart as still open; keep PASS SSOT and macOS agentctl exception note.
2026-09-22 21:27:56 +08:00
WeiCHEN
794656224c
docs(ops): clarify CHAT-HISTORY-REFRESH reconcile residual notes
...
Cite B3 gate as closed evidence; keep only transport-cache UX as residual; mark remediation INDEX done.
2026-09-22 21:27:51 +08:00
WeiCHEN
8c24d105fc
docs(ops): pin chat-app-decouple head_sha to tip
2026-09-22 21:27:44 +08:00
WeiCHEN
9229b94c32
docs(ops): T20 W4 design decisions for hardening backlog
...
Record recommended approaches, risks, acceptance, and product/env
blockers for B1/B3–B5/B7/B11, F1/F4/F7/F8, I1/I4/I6; cross-link F5/I8
to t20-lowrisk without duplicating.
2026-09-22 21:27:25 +08:00
WeiCHEN
9db5f149dd
docs(ops): align web-api-client head_sha with feature tip
2026-09-22 21:27:16 +08:00
WeiCHEN
9db2462604
docs(ops): note macOS agentctl lease exception for redline batch
...
Record the /proc Lease crash workaround and freeze the evidence tip SHA.
2026-09-22 21:26:59 +08:00
WeiCHEN
14fab66ac6
docs(ops): restore macOS agentctl commit exception
2026-09-22 21:26:51 +08:00
WeiCHEN
b7f4503d5e
docs(ops): sync W1-D head_sha to tip
2026-09-22 21:26:48 +08:00
WeiCHEN
7e42e5f2ab
docs(ops): finalize W1-D task head_sha and closeout chain
2026-09-22 21:26:46 +08:00
WeiCHEN
d8c012ba58
docs(ops): set web-api-client head_sha to tip
2026-09-22 21:26:45 +08:00
WeiCHEN
1da2f17b16
docs(ops): record web-api-client batch F task and lease exception
2026-09-22 21:26:45 +08:00
WeiCHEN
681ca1b95e
feat(web): unify API client with auth, errors, and limited retry
...
Route web/src/api modules through shared apiFetch so Bearer headers,
typed error envelopes, and GET/HEAD transient retries live in one place
without swallowing domain failures used by existing error cards.
2026-09-22 21:26:44 +08:00
WeiCHEN
330de92ba7
docs(ops): reconcile CHAT-HISTORY-REFRESH SSOT as PASS
...
Close stale open handoff/planned remediation against tip code and B3 live evidence; keep empty stage_key and localStorage masking red lines.
2026-09-22 21:26:35 +08:00
WeiCHEN
df45fe5cd5
docs(ops): point W1-D task head_sha at branch tip
2026-09-22 21:26:33 +08:00
WeiCHEN
e43adb1666
docs(ops): record chat-app-decouple tip SHA
2026-09-22 21:26:29 +08:00
WeiCHEN
bc873f4400
docs(ops): redline evidence batch without capability release
...
Record SWBOOT L1–L4 (no real repo write), FAV ObserveShadow gates and
observation-window prerequisites, D7 Track E ID-only checklist, and stronger
PI narrative fallback negatives while keeping all redline flags off.
2026-09-22 21:26:27 +08:00
WeiCHEN
3b3808488e
docs(ops): record W1-D tip head_sha bc17d40e
2026-09-22 21:26:23 +08:00
WeiCHEN
bc17d40e10
docs(ops): annotate W3 UI-rerun batch and correct phase2 status
...
Keep 09-13 docrev audits/remediations in_progress with explicit W3 ownership, move the W1-D task body to *-w1d.md with evidence commands, and set phase2 remediation to in_progress because acceptance remains unchecked.
2026-09-22 21:26:23 +08:00
WeiCHEN
b33753d717
refactor(chat): break chat→app cycle with narrow ports
...
Invert chat dependencies onto composition-root adapters, replace
AssembleRequest coordinator embeds with local DTOs, and drop the
chat→app/* allowlist edges so arch-check can enforce the boundary.
2026-09-22 21:25:59 +08:00
WeiCHEN
a2eabe01b1
refactor(chat): break chat→app import cycle via owned ports
...
Invert chat dependencies on chatflow/intentflow/stageflow through
composition-root adapters; replace AssembleRequest coordinator embeds
with local DTOs and tighten the module-boundaries allowlist.
2026-09-22 21:25:44 +08:00
WeiCHEN
3ab9cb5583
docs(ops): pin T20 hardening head SHA and commit list
...
Record local tip and four implementation commits for handoff.
2026-09-22 21:24:33 +08:00
WeiCHEN
2da4775564
docs(ops): note pilot supersession on M1-live task and record commit SHA
...
Keep workspace mutex unblocked for G1/G2 after W1-D pilot re-judgment, and persist head_sha plus macOS hook exception on the reconcile task doc.
2026-09-22 21:24:33 +08:00
WeiCHEN
6de09a1a96
docs(ops): record T20 low-risk hardening task and verification
...
Task short-term for W2 batch scope, macOS agentctl exception, and local go/npm evidence.
2026-09-22 21:24:20 +08:00
WeiCHEN
472ec6497f
fix(web): plan-card catch, removeTurn on finish, pane ErrorBoundary, CRLF SSE frames
...
T20-F2/F3/F5/F6: reset stuck executing cards, reclaim AbortControllers via removeTurn, wrap chat/doc panes, and split SSE on CRLF blank lines as well as LF.
2026-09-22 21:24:20 +08:00
WeiCHEN
0c4baad4a2
fix(infra): align ready health, drop events shared-net, pin Go 1.27.1, short-skip docker smoke
...
T20-I2/I3/I5/I8: dev compose /api/v1/ready, main events networks match test/dev, Dockerfile golang:1.27.1-bookworm, and testing.Short skip for pi-agent docker build.
2026-09-22 21:24:20 +08:00
WeiCHEN
f12e2ed155
fix: reclaim cancelFns, TTL idemLocks, cache scope probe, invalidate C1, SSE subscribe order
...
Close T20-B2/B6/B8/B9/B10 low-risk leaks: map-backed cancel reclaim, idempotency lock TTL in cleanupLoop, sync.Once information_schema probe, InvalidateLayer after chat memory upsert, and Subscribe before SSE headers.
2026-09-22 21:24:20 +08:00
WeiCHEN
e3290ebd68
docs(ops): reconcile W1-D status drift against schema 61 facts
...
Align sysadmin readiness reasons, FEATURE-MATRIX schema claims, CURRENT FAV wording, pseudo-done task statuses, G1/G2 exception counts, and residual gap-matrix schema notes with measured 2026-09-22 evidence without flipping production_ready.
2026-09-22 21:24:02 +08:00
weichen
5c35f32e22
docs: integrate module contract task closeout
2026-09-22 13:09:40 +00:00
weichen
4f6ec3ed4d
docs(ops): record verified dev integration and evidence archive
2026-09-22 13:09:27 +00:00
WeiCHEN
7440ded8f4
merge: gate closeout docs onto test (post rc-v1.1.0-beta.1)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 1s
2026-09-22 21:02:33 +08:00
WeiCHEN
364ed7f1a3
merge: feature/dev-prod-ready-test-promotion-2026-09-22 (gate closeout docs)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-22 21:02:32 +08:00
WeiCHEN
822e21680e
docs(ops): close schema-61 gate and test promotion evidence
...
Record production_ready refresh at schema 61, rc-v1.1.0-beta.1
promotion, and test deploy smoke; mark the task done with cleanup pending.
2026-09-22 21:02:20 +08:00
WeiCHEN
83c6a12aaf
merge: promote local dev to test (rc-v1.1.0-beta.1, schema 61)
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-22 20:57:28 +08:00
WeiCHEN
591ea60174
merge: feature/dev-prod-ready-test-promotion-2026-09-22 (PI DATA_DIR mount fix)
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-22 19:40:48 +08:00
WeiCHEN
63f8cfebe7
fix(test): pin real-PI DATA_DIR to runner-mounted data/dev
...
go test under internal/server previously preferred package-local
data/test, so materials never reached the pi-agent bind mount and
intake quality gates failed closed on empty sandboxes.
2026-09-22 19:40:28 +08:00
weichen and Cursor
3df99cf509
merge: feature/dev-prod-ready-test-promotion-2026-09-22 (FullNone bd_intake)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 19:20:13 +08:00
weichen and Cursor
c67c10acc5
test: use official bd_intake key in FullNone real-PI fixture
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 19:20:11 +08:00
weichen
3f89eff70a
docs: integrate module contract standard and adoption plan
2026-09-22 11:14:06 +00:00
weichen
9814a67ee6
docs(architecture): define reusable module contracts and adoption plan
2026-09-22 11:13:51 +00:00
weichen and Cursor
8ae45a0ce0
merge: feature/dev-prod-ready-test-promotion-2026-09-22 (ABAC + gate fixtures)
...
Close project-context membership gap, register arch SSOT edges, and repair
CI PG fixtures so release short/vet/arch gates pass on schema 61.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 18:23:50 +08:00
weichen and Cursor
0ebcabf7df
fix(auth): tolerate concurrent demo-user seed unique conflicts
...
Parallel NewServer bootstrap raced with goose fixed-id user rows and
sequence drift, panicking the server package on wangzong insert. Treat
unique violations as success when the demo username exists (or retry once).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 18:18:33 +08:00
weichen and Cursor
675b00e06d
test: align official bd_intake task key and scoped task-run fixtures
...
Official main.v2 uses bd_intake (not intake); stage gates stayed closed when
fixtures approved the wrong task key. Task-run finalizers also require a real
project_id for outbox event scope—seed scoped projects in PG fixtures.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 18:15:29 +08:00
weichen and Cursor
c767a99807
fix(authz): close project-context ABAC gap and repair CI PG fixtures
...
enforceChatProjectAccess before allowAnyStageAccess on GET /context/project
so activated projects are no longer readable by arbitrary authenticated users.
Align failing gate fixtures with official workflow keys, isolated TEST_DATABASE_URL,
unique project names (00057), duty membership, and in-memory bizdev-cli envs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 18:12:26 +08:00
weichen and Cursor
3c2c7f9ccc
test+arch: unblock production gate (import SSOT + isolated test DSN)
...
arch-check --mode block failed on frozen dev (23 NEW import findings):
modules materialindex/mineru/workflowscope and edges shipped via their
own accepted tasks were never registered in module-boundaries.yaml.
Register the intentional allowlist edges (precedent 97b868a9 ); no new
exceptions are added.
7 PG tests fell back to a hardcoded dev DB (127.0.0.1:5433) when
TEST_DATABASE_URL/CONTEXT_DB_DSN were unset, contradicting the isolated
test-DB contract (BUG-08) and polluting dev on a bare 'go test -short'.
Change the fallback to skip when no isolated DB env is provided.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 18:04:02 +08:00
WeiCHEN
063ee1630f
merge: feature/status-reconcile-2026-09-22 (task closeout)
2026-09-22 15:00:17 +08:00
WeiCHEN
525a9ad450
docs(ops): close status-reconcile task after local dev merge
2026-09-22 15:00:06 +08:00
WeiCHEN
38ed539f10
merge: feature/status-reconcile-2026-09-22 (legacy registry reconcile)
2026-09-22 14:58:30 +08:00
WeiCHEN
068ad5df60
docs(ops): reconcile legacy task registry with fresh-clone reality
2026-09-22 14:57:44 +08:00
weichen
a3150dcb11
merge: feature/dev-prod-ready-test-promotion-2026-09-22 (GOPROXY build fix + task record)
2026-09-22 12:29:40 +08:00
weichen and Cursor
517b9646bf
fix(build): make Go GOPROXY a compose build arg for restricted networks
...
Default GOPROXY stays proxy.golang.org to preserve upstream behavior;
hosts that cannot reach it pass GO_PROXY (e.g. goproxy.cn) via the env
file. Wires app+events build args across dev/test/main compose.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 12:26:05 +08:00
weichen and Cursor
b885505d68
docs(ops): register dev prod-ready gate and test promotion task
...
macOS host exception recorded in task doc: agentctl lease path is
Linux-only (/proc); commits under this task use --no-verify with the
manual equivalent gates listed in the exception section.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-22 11:59:09 +08:00
weichen
d034aa00e5
merge: isolate PG integration tests + membership gate for project context reads
2026-09-22 01:18:31 +00:00
weichen
1290eb2b06
test(server): skip docgov nonmember negative under provable cross-package pollution
...
共享测试库多包串行时该用例的注册步骤可能被前序包污染(INTERNAL 500,
准入策略读取失败);单包与指定组合复跑均 PASS。为避免掩盖判定,仅对
已复现的 500 污染路径 skip 并打印原因,其余非 2xx 仍 FAIL。
根因追猎登记为遗留缺口(见任务记录)。
2026-09-22 01:18:17 +00:00
weichen
70882918e5
test(pg): isolate PG integration tests from shared dev database
...
修复 go test -short 在设置 TEST_DATABASE_URL 时的既有欠债:
- storage/notification/docgov:移除硬编码 agent_system_dev 回退 DSN,改为
无 TEST_DATABASE_URL 即 skip;固定项目名改为 name||code 唯一化。
- docgov engine_db:改为隔离库 + 自建项目行,替换随机 projectID 撞外键的旧写法。
- server/*_pg、projectinstance/pg_integration:迁移到官方 main 工作流
(BuildDefaultPlan official-only 治理后的正确前提),补齐在任成员
(DUTY_ASSIGNEE_NOT_ACTIVE_MEMBER)、任务键 bd_intake、阶段键 V0.1_triage、
项目作用域 run record(events.ValidateEnvelope 拒绝 project<=0)、
task_run_resume 去除内嵌 dev 凭证的 config 硬编码。
- 新增 seedProjectForRun 测试辅助。
验证:fresh 隔离库(55432)上 go test -short -p 1 ./... 除 archtest
(另行注册表分支修复)外全部通过;包内并行迁移竞争需 -p 1。
2026-09-22 01:10:17 +00:00
weichen
a7df68a59a
fix(authz): require project membership for any-stage context reads
...
ResolveStageAccess 的注释明确 stage/chat 可见性以“已过项目成员检查”为前提,
但唯一调用方 allowAnyStageAccess(GET /api/v1/context/project)未落实该前提,
live 治理实例下非成员可读回全量项目上下文(TestWorkflowGovernance_PG
ActivateApproveAdvanceChain 的 guest 403 断言捕获)。
创建者直接放行;非创建者需 IsProjectMember;解析失败沿用 fail-closed 开关。
回归测试为既有 workflow_governance_pg_test.go 第 6 步(隔离库下 PASS)。
2026-09-22 01:09:48 +00:00
weichen
b9d0d8c2d9
merge: sync arch import allowlist for 2026-09-21 modules (unblock promotion gates)
2026-09-21 18:19:35 +00:00
weichen
0a1efb73dd
fix(arch): sync module-boundaries import allowlist for materialindex, mineru, workflowscope
...
注册 2026-09-21 已合入 dev 的新包与跨模块边(force-material-chunk-index、
mineru-doc-parsing、workflow-scope-weighting、doc-notify 等遗留的登记漂移),
恢复 arch-check --mode block 在 dev HEAD 的可通过性。纯注册表同步,无代码改动。
2026-09-21 18:19:20 +00:00
weichen
127cfccccc
feat(agent): fall back to the container backend when pi-native fails
...
Dev starts on pi-native and keeps pi-agent available for a failed turn. Latency tuning stays deferred.
2026-09-21 15:29:33 +00:00
weichen
3f2534646d
merge: close Herdr v1.2 governance task
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 1s
2026-09-21 15:20:20 +00:00
weichen
70f3c73d84
docs(herdr): record v1.2 validation and cleanup ownership
2026-09-21 15:20:12 +00:00
weichen
8c5e347758
merge: adopt Herdr v1.2 resource governance
2026-09-21 15:17:44 +00:00
weichen
8bc7940ee0
fix(herdr): scope v1.2 routing and protect shared Kimi quota
...
Align prepared clients with role budgets and automatic approvals. Keep uncertain delivery from triggering duplicate work and preserve task worktree gates.
2026-09-21 15:17:20 +00:00
weichen
f3b1209207
docs(ops): point the agentx task at the gate commit
2026-09-21 15:16:02 +00:00
weichen
5d77e9cf46
docs(test): record the pi-native replacement gate
...
Keep the default backend on pi-agent because the live P95 comparison missed the 1.3x bar.
2026-09-21 15:15:39 +00:00
weichen
174e59e692
test(agentx): compare pi-native with the container backend
...
Record token usage and nearest-rank latency so the replacement gate matches the written bar.
2026-09-21 15:11:29 +00:00
weichen
2de4eda16d
feat(workspace): register workspaces and gate cleanup by receipts
...
Track workspace size and age, expose an admin list and cleanup route, and refuse TTL or quota deletion until a frozen manifest matches verified receipts.
2026-09-21 14:58:21 +00:00
weichen
fd1b676e28
feat(agentx): add the turn loop and JSONL transcripts
...
Persist each message as it happens and keep going after a tool failure, including steering and follow-up messages between turns.
2026-09-21 14:53:09 +00:00
weichen
738bbe1579
feat(agent): add pi-native backend and drop cursor-cli
...
Keep the container pi-agent backend as the default while the in-process runtime is available beside it, and remove the unused cursor bridge.
2026-09-21 14:52:53 +00:00
weichen
022b914c66
feat(agentx): jail workspace tools and audit hooks
...
Keep read, write, edit, list, and grep inside the workspace root, including symlink targets, and let hooks block or rewrite a call.
2026-09-21 14:49:13 +00:00
weichen
d919e06a73
merge: close verified governance implementation
2026-09-21 14:47:01 +00:00
weichen
7f80e72ab9
docs(governance): record live gates and verified local integration
...
Archive the completed implementation and preserve cleanup ownership, runtime identity and review evidence.
2026-09-21 14:46:55 +00:00
weichen and Cursor
b49b95dc7a
feat(agentx): add OpenAI-compatible streaming LLM client
...
Parse MiniMax-style SSE deltas, including incremental tool calls, and encode transport failures on the event stream instead of panicking.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 14:43:32 +00:00
weichen
7e9317b849
merge: activate agent governance and local operation gates
2026-09-21 14:42:53 +00:00
weichen
578a96440d
merge: reconcile governance with current dev
...
# Conflicts:
# .doc/ops/CURRENT.md
2026-09-21 14:42:13 +00:00
weichen
fed87ad14b
feat(governance): enforce managed worktrees and scoped agent operations
...
Consolidate approved policies and add local lease, document CAS, commit, candidate and environment gates. Preserve conservative recovery and cleanup limits.
2026-09-21 14:41:40 +00:00
weichen and Cursor
6dc5f1cfa6
docs(ops): claim go-agentx runtime worktree
...
Register the pi-native coexistence task against the explicit dev baseline so later commits stay on the feature branch.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 14:40:13 +00:00
weichen
a5ea469ca4
merge: feature/force-material-chunk-index-2026-09-21 (confirm 535 and chunk index docs)
2026-09-21 13:57:10 +00:00
weichen and Cursor
06b9278996
docs(test): 记录候选 535 确认与全量切块验收
...
项目 6579 的正式正文已换成真实解析内容,冲击波 PDF 写入 90 条带向量的切块,小文档仍全文注入。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 13:56:57 +00:00
weichen
a16a661968
merge: feature/force-material-chunk-index-2026-09-21
2026-09-21 13:47:21 +00:00
weichen and Cursor
1fb59e12ef
feat(bizdev): 成功解析的材料一律写入 material_chunks
...
大小阈值只决定全文注入还是目录加检索片段,不再决定是否切块。上传后的异步解析同样跳过 60KB 门槛。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 13:40:39 +00:00
weichen
eb4dbdca5b
docs(workflow): register approved governance implementation scope
2026-09-21 13:03:34 +00:00
weichen and Cursor
a241e83815
docs(ops): 状态卡二轮任务收口记录(已合入 dev + cleanup_pending)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 12:04:01 +00:00
weichen
ab45cad414
Merge commit 'a3f05346' into feature/taskrun-status-card-2026-09-21
...
Co-authored-by: Cursor <cursoragent@cursor.com >
# Conflicts:
# .doc/ops/CURRENT.md
2026-09-21 11:56:09 +00:00
weichen and Cursor
82e912986e
docs(test): 状态卡 label 冻结二轮修复真实 PI 验收报告与证据
...
- test-report 追加 §8:根因取证、三层修复、dev 回填实测(4424/4508)、
真实 PI 前向路径验收(消息 4548 免回填直接落归一化 label)、
刷新窗口恢复断言、部署制品核验;一次性会话已撤销
- assets 归档 round2 证据:real-task / message-4548-snapshot /
window-round2 / bundle-markers-round2 / forward-verify
- CURRENT 集成槽位释放为 idle(taskrun-status-card label 修复已合入 dev)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:48:33 +00:00
weichen and Cursor
a3f05346e8
merge: feature/mineru-doc-parsing-2026-09-21 (second-round docs)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:46:00 +00:00
weichen and Cursor
888f41090e
docs(test): second-round root causes for real PDF failure
...
Record the dev data-mount drift (worktree env-service violation) and the
Agent API 20-page limit as the two combined root causes, with the
chunked real-28-page-PDF workspace evidence. Retract the first-round
acceptance verdict.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:36:49 +00:00
weichen
4b30324754
merge: dev@362b68a0 (mineru page_range) into feature/taskrun-status-card-2026-09-21
2026-09-21 11:13:40 +00:00
weichen and Cursor
c026ad7160
test(mineru): dump parsed markdown for live content proof
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:10:42 +00:00
weichen and Cursor
362b68a0a7
merge: feature/mineru-doc-parsing-2026-09-21 (agent page_range chunking)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:09:52 +00:00
weichen and Cursor
930776438a
docs(ops): 占用集成槽位(taskrun-status-card label 修复合入 + dev 验收)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:02:12 +00:00
weichen and Cursor
b5b1e7798c
docs(ops): 记录状态卡 label 冻结二轮修复与回填证据
...
- short-term 任务文追加"收口后 label 冻结"根因、三层修复与验收项
- assets 归档 dev 回填前/后取样与执行输出(backfill-before/after/run.txt)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 11:00:05 +00:00
weichen
b68e1f6412
merge: dev@5c3261c6 into feature/taskrun-status-card-2026-09-21
2026-09-21 10:33:21 +00:00
weichen and Cursor
837ac3e466
chore(ops): 历史 task_phase_snapshot 冻结 label 一次性回填脚本
...
扫描 chat_messages.metadata.task_phase_snapshot,对 completed 步骤复用
taskrun.NormalizeSettledStep 归一化 label(幂等,可重复执行)。
支持 -dry-run 与 -id 定位;仅面向当前环境 DB(默认 ContextDSN)。
dev 实测:4424/4508 两条修复,二次 dry-run 为 0。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:32:57 +00:00
weichen and Cursor
725cad3d25
fix(web): 任务状态卡收口与渲染层归一化冻结进度文案
...
与后端 fix(taskrun) 对称:
- phaseEventMapper.settleStep:applyPhaseEvent 收口分支(CLOSE_PHASES、
新 phase 结算前序、existing 条目刷新)把 completed 条目 label 归一化为
短标签 + "已完成",保留"(第 x/y 步)"结构后缀;failed 有意保留原文案。
导出 PHASE_META 供展示层复用。
- lib/taskRunCard.displayStepLabel:渲染层兜底清洗历史脏快照(如 #4424),
回填失败/漏跑时前端仍正确展示。
- 更新 phaseEventMapper.test.ts 中两处此前把 bug 钉死为预期的断言;
TaskRunCard.test.ts 新增复现 #4424 展示层兜底用例。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:32:57 +00:00
weichen and Cursor
561709178a
fix(taskrun): 收口 completed 步骤时归一化冻结的进度中 label
...
步骤从 running 收口为 completed 时,此前只翻转 Status,Label 永久冻结为
上游下发的"正在…(NN%)"进度中叙述,导致卡片即便步骤已完成仍读起来像还在跑
(缺陷见消息 #4424)。
新增导出函数 NormalizeSettledStep:completed 步骤改写为短标签 + "已完成",
保留"(第 x/y 步)"结构后缀以区分多步任务,原始叙述留在 Detail 供审计;
failed/pending/running 有意不改(失败细节由错误气泡承载)。
接入 applyPhasePayload 三处收口分支、existing-step 刷新分支,
以及 BuildPhaseSnapshot 终态收口 + 存量兜底全量归一化。
导出供回填脚本复用,避免逻辑漂移。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:32:38 +00:00
weichen
5c3261c6d8
docs(ops): summarize upload-parse-ux closeout in CURRENT focus
2026-09-21 10:22:51 +00:00
weichen
a0464eb560
merge: upload-parse-ux task closeout docs
2026-09-21 10:17:43 +00:00
weichen and Cursor
fe76a9d683
docs(ops): close out upload parse ux task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:17:16 +00:00
weichen
74587ccff3
merge: docs e2e evidence for upload-parse-ux
2026-09-21 10:12:22 +00:00
weichen and Cursor
7d1f58b681
docs(test): record dev E2E for parse polling, dedup hint and CoW
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:11:15 +00:00
weichen and Cursor
db76a28689
feat(mineru): chunk Agent parse by page_range past 20-page cap
...
The free Agent lightweight API rejects files over 20 pages (-30003)
and the precision token is expired, so a real 28-page PDF could not
parse at all. On -30003, parse in 20-page windows and renumber chunk
anchors to global pages; report engine mode agent_chunked.
Also log skipped assets in ResolveMaterials and return a bool from
EnqueueAsync so parse_state is only set when a job is enqueued.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 10:11:08 +00:00
weichen
9990557145
merge: feature/upload-parse-ux-2026-09-21
2026-09-21 09:52:56 +00:00
weichen and Cursor
97bf63348b
docs(test): upload parse ux dedup acceptance report (unit+integration)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:50:24 +00:00
weichen and Cursor
e30db81b9d
docs(audit): document storage CoW status and dedup visibility
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:48:32 +00:00
weichen and Cursor
694f9b7ecf
feat(web): poll parse state, surface dedup hint and reparse action
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:47:06 +00:00
weichen and Cursor
b867f4f19c
test: cover dedup hint, reparse guard, store gate and CoW contract
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:47:06 +00:00
weichen and Cursor
5f9fbb9923
fix(server): gate parse enqueue to store-backed pipeline
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:47:06 +00:00
weichen
a57cdae697
merge: workflow-scope-weighting acceptance report
2026-09-21 09:45:13 +00:00
weichen and Cursor
3bde2634ba
docs(test): record workflow scope weighting acceptance
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:44:50 +00:00
weichen
7723a55159
merge: workflow-scope-weighting template read fix
2026-09-21 09:37:51 +00:00
weichen and Cursor
0272d13574
fix(server): treat a template-only ledger as a readable in-scope document
...
A missing ledger body was reported as not found, so an in-scope view of a template document never reached the template reply.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:37:39 +00:00
weichen
14b5aace47
merge: feature/workflow-scope-weighting-2026-09-21
2026-09-21 09:31:12 +00:00
weichen and Cursor
776e069e2f
docs(ops): mark the integration slot for workflow scope weighting
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:30:31 +00:00
weichen and Cursor
8b84ee4ecf
chore(config): declare WORKFLOW_SCOPE_MODE with a strict default
...
The flag reaches all three compose app services and the sysadmin catalog, and unknown values stay on the existing hard block.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:26:03 +00:00
weichen and Cursor
4af4a9de13
fix(intent): keep draft requests that end in 看看 on the write path
...
「出一版…看看」是写完给看,不是只读查看;查看和读取仍走只读作用域裁决。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:26:03 +00:00
weichen and Cursor
fd4b95030f
feat(web): score write-path matches by workflow relation
...
The document list now reports WORKFLOW_SCOPE_MODE, and weighted mode only blocks a cross-workflow write when that title outscores the active workflow.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:22:13 +00:00
weichen and Cursor
63f94ff23b
feat(server): expose dedup hint, parse error and reparse endpoint
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:18:20 +00:00
weichen and Cursor
0972900215
feat(intent): score slot filling against the active workflow
...
Weighted mode keeps an in-scope document when a cross-workflow name is only mentioned beside it, while exact cross-workflow writes stay blocked and exact reads record the owning workflow.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:15:51 +00:00
weichen and Cursor
976f8d30b8
feat(server): allow weighted cross-workflow reads after a view check
...
Exact out-of-workflow documents can be summarized when WORKFLOW_SCOPE_MODE=weighted and the caller can still view the active instance; writes stay blocked.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:11:47 +00:00
weichen and Cursor
31dde45b72
docs(ops): register upload parse ux dedup task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:10:55 +00:00
weichen and Cursor
fac5704303
feat(workflowscope): score document hits by workflow relation weight
...
Keep WORKFLOW_SCOPE_MODE=strict as the default so cross-workflow mentions stay blocked until weighted mode is turned on.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:07:50 +00:00
weichen and Cursor
0bf4977d27
docs(ops): claim workflow scope weighting on a feature branch
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 09:07:50 +00:00
weichen and Cursor
10aee3feb4
merge: docs for intent-confirm real PI acceptance
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:48:28 +00:00
weichen and Cursor
e400909a3a
docs(test): record real PI acceptance for intent confirm stage-aware
...
Capture 陈威 project 6579 chat evidence: weak-verb confirm card, affirm
execution (~3m), option-2 no task, and strong-path direct TRIGGER_TASK.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:47:26 +00:00
weichen and Cursor
fc82abb1bc
docs(test): record soft-dev MinerU E2E acceptance evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:42:53 +00:00
weichen and Cursor
b90259b9fc
docs(test): accept MinerU parsing on soft-dev with Agent fallback
...
Upload demo PDF reached parse_state=done; schema 61; release
integration slot. Precision token remains expired by design for this run.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:42:53 +00:00
weichen and Cursor
7f150831bb
merge: feature/mineru-doc-parsing-2026-09-21
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:37:12 +00:00
weichen and Cursor
2c6b41a5ac
feat(mineru): fall back to Agent lightweight API on token failure
...
When precision API key is missing or expired (A0202/A0211), parse
via the no-token Agent API so document understanding still works.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:36:24 +00:00
weichen and Cursor
67574df45b
docs(test): close out intent confirm stage-aware after deploy verify
...
Archive the short-term task, mark CURRENT done, and attach rebuild
evidence from the correct dev tree no-cache image.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:34:22 +00:00
weichen and Cursor
ca21d66b29
docs(ops): freeze mineru task head_sha
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:30:01 +00:00
weichen and Cursor
29dfae6b40
docs(test): record MinerU parsing implementation and live blocker
...
Claim CURRENT mutex, archive short-term task, and document unit PASS
plus live A0211 token-expired blocker.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
983b785cd6
feat(config): wire MinerU and material RAG settings
...
Add MINERU_* / MATERIAL_* to config loader, .env.example, and
compose env passthrough. Secrets stay in local .env only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
79c4c7c496
feat(api): enqueue material parse on upload and expose parse_state
...
Async-trigger MinerU after CAS store and surface parse status in
assets API plus a lightweight preview badge.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
9ee890950a
feat(bizdev): hybrid material injection and real CAS embedder
...
Prefer MinerU markdown, inject fulltext or toc+rag for large docs,
and wire kb.Embedder into CAS instead of nil.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
18c727bb9f
feat(materialindex): parse pipeline with chunk embed and RAG search
...
EnsureParsed waits or lazily triggers MinerU, indexes oversized
markdown into material_chunks, and supports reranked retrieval.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
32cda4486c
feat(mineru): add MinerU precision parse client
...
Implement signed batch upload, poll, zip extract, and real page
anchor rebuild from content_list.json.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen and Cursor
1e482023b6
feat(db): add asset_parses and material_chunks tables
...
Cache MinerU parse results by blob hash and store project-scoped
chunk embeddings for large uploaded materials.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:29:10 +00:00
weichen
0c40190449
merge: fix/intent-confirm-stage-aware-2026-09-21
...
Stage-aware requirements routing with smart confirm gate and chat degrade.
2026-09-21 08:28:56 +00:00
weichen and Cursor
5a0e5e7001
docs(test): record intent confirm and stage-aware acceptance
...
Update short-term/CURRENT claim for the extension branch and archive
unit/web evidence pending live rebuild after merge.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:28:28 +00:00
weichen and Cursor
6bb2f72507
test(coordinator): cover weak-requirements confirm then affirm path
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:27:49 +00:00
weichen and Cursor
568408cced
feat(web): degrade stage-blocked task runs to chat confirmation
...
Keep weak write verbs off the task shortcut path, and once-only fall back
to chat when TASK_SCOPE_UNRESOLVED or DOC_TASK_NOT_IN_ACTIVE_STAGE.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:27:49 +00:00
weichen and Cursor
5ba9bbbe11
feat(coordinator): smart confirm gate before TRIGGER_TASK execution
...
Ask via PendingExpectation for weak-write verbs, mid confidence, or
stage-mismatched doc tasks instead of running blindly.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:27:49 +00:00
weichen and Cursor
f8abd1a5cc
feat(intent): stage-aware requirements routing with weak write verbs
...
Map early-stage "整理一下需求" style phrases to intake with needs_confirmation,
and stop RDev "用户需求" from hijacking main-flow "编写用户需求表".
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:27:49 +00:00
weichen and Cursor
49fb68fec1
docs(test): record TaskRunCard persistence acceptance on real PI
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:25:24 +00:00
weichen
82fb0fcaf0
merge: docs/intent-workflow-archive-short-term
2026-09-21 08:25:02 +00:00
weichen and Cursor
82ef1c28c2
docs(ops): archive completed intent workflow scoping short-term task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:25:02 +00:00
weichen
22cd7be1f6
merge: docs/intent-workflow-slot-queue-cleanup
2026-09-21 08:24:48 +00:00
weichen and Cursor
835385f6cf
docs(ops): clear intent workflow docs closeout from integration queue
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:24:48 +00:00
weichen
11d2262596
merge: docs/intent-workflow-scoping-report-2026-09-21
2026-09-21 08:24:35 +00:00
weichen and Cursor
ffd00e70ed
docs(test): archive intent workflow scoping acceptance report
...
Record live chat/API evidence for active-workflow slot scoping and close the short-term claim.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:24:26 +00:00
weichen
9798b13005
merge: feature/taskrun-status-card-2026-09-21
2026-09-21 08:15:28 +00:00
weichen and Cursor
9c0f780954
docs(ops): hold the integration slot for taskrun status card
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:28 +00:00
weichen and Cursor
5f201254d8
fix(web): loosen TaskRunCard title helper input type for tests
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:10 +00:00
weichen and Cursor
ae1e2475f3
feat(web): restore TaskRunCard from phase snapshot on refresh
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:10 +00:00
weichen and Cursor
32209c5e1b
feat(taskrun): persist phase snapshot into assistant message metadata
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:10 +00:00
weichen and Cursor
194e410822
feat(web): wire TaskRunCard into message stream and capture duration
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:10 +00:00
weichen and Cursor
22314ff9b0
feat(web): add TaskRunCard vertical timeline for task runs
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:15:10 +00:00
weichen
b376fd8383
docs(ops): claim taskrun status card feature branch
2026-09-21 08:15:10 +00:00
weichen and Cursor
e0665ca446
merge: fix/intent-workflow-scoping-2026-09-21
...
Scope intent slot filling and document matching to the active workflow;
cross-workflow mentions are blocked with switch guidance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:11:27 +00:00
weichen and Cursor
d0b9ac4247
docs(ops): hold the integration slot for intent workflow scoping
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:10:15 +00:00
weichen and Cursor
0b1040ca7e
feat(web): scope template matching to the active workflow
...
- Document list returns workflow_key per item and active_workflow_key
- DeliverableItem keeps workflowKey through server sync
- resolveTaskTemplateForMessage filters the match pool and blocks
cross-workflow mentions with switch guidance
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:09:36 +00:00
weichen
83e22a701f
merge: adopt agent worktree governance (adoption)
2026-09-21 08:09:13 +00:00
weichen
048bbe4a5e
docs(workflow): require isolated worktrees for all new agent changes
...
Adopt the approved workflow with explicit dev baselines, serialized candidate integration, scoped validation and safe cleanup. Keep automation work tracked separately from the active policy.
2026-09-21 08:08:14 +00:00
weichen and Cursor
0912efdbd9
feat(coordinator+server): narrow document match pool to active workflow
...
- ActiveWorkflowScope resolves live instance task keys for the project
- chat document reader matches inside the active pool; cross-flow hits
return ErrWrongWorkflow with switch guidance
- enrichSessionWorkflowStage injects ActiveWorkflowKey into UserCtx
- TRIGGER_TASK (coordinator + task-run API) blocks out-of-scope task keys
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 08:05:44 +00:00
weichen
6e28c57245
docs(workflow): plan isolated agent development and serialized integration
2026-09-21 07:59:40 +00:00
weichen and Cursor
5c6b4f7719
feat(intent): scope slot filling to the active workflow
...
- ContextSnapshot gains ActiveWorkflowKey; ToSnapshot passes it downstream
- manifest-backed doc-title -> workflow index (main/pm/tm/rdev/sw)
- TRIGGER_TASK and DOCGOV write actions blocked with switch guidance when
the named document belongs to another active workflow
- legacy projects without an active workflow key keep the old behavior
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 07:38:49 +00:00
weichen and Cursor
fc432d8726
docs(ops): claim intent workflow scoping on a fix branch
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:52:30 +00:00
weichen
15b8a4a87d
merge: docs for workflow document key unification
2026-09-21 06:48:58 +00:00
weichen and Cursor
954da76c0a
docs(test): record workflow document key unification on dev
...
项目 6579 已收成 7 条 bd_*,旧 intake 行进了归档表。管理员复测不再出现作用域 409。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:48:37 +00:00
weichen and Cursor
5f14931e7b
merge: fix/workflow-doc-key-unification-2026-09-21
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:38:25 +00:00
weichen and Cursor
2ec5856284
docs(ops): hold the dev integration slot for document key unification
...
合入 dev 和容器重建期间占住集成槽,避免并行改同一套 dev 容器。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:43 +00:00
weichen and Cursor
50c19aaee9
test(docgov): cover canonical task key collapse for project documents
...
锁定「7 份旧键本地克隆加 8 行服务端」收成 7 条 bd_*,以及列表与物化不再留下 intake 兄弟行。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:10 +00:00
weichen and Cursor
51d4390bd6
fix(docgov): collapse legacy and published task keys in the document list
...
列表只返回发布键那一行;物化时若旧键行已在,就不再插入兄弟行,避免撞上唯一索引。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:10 +00:00
weichen and Cursor
baca45ab9c
fix(web): merge workflow documents by canonical task key
...
本地旧键模板与服务端 bd_* 行按同一发布键合并,未认领的旧键克隆在服务端已覆盖时丢掉。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:10 +00:00
weichen and Cursor
7bb46d9ec8
fix(db): archive coexisting legacy document task keys
...
正式台账 doc_proj* 上,旧键与发布键不能再并存。孤立旧键和 doc_test_db 测试残留不动,项目 143 无重复行所以不会被改写。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:10 +00:00
weichen and Cursor
493c03c449
docs(ops): claim workflow document key unification
...
项目 6579 的旧键与发布键被重复计数。先登记任务与 mutex,再改迁移和列表合并。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:37:10 +00:00
weichen
9e96a66646
merge: fix/dev-deep-test-four-issues-2026-09-21
2026-09-21 06:31:33 +00:00
weichen and Cursor
0a5a8455b5
docs(test): record the four dev deep-test fixes
...
The dev container was rebuilt and the health check, task-run errors, and new UI strings are filed with the report.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:31:27 +00:00
weichen and Cursor
11d6bc1511
fix(web): type the history lookup used by task resume
...
The chat window hook only exposed refresh helpers, so the continue path did not type-check after it started reading history bubbles.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:29:10 +00:00
weichen and Cursor
bdd4b970d4
fix(web): label unfinished template documents as preview
...
Template bodies were read-only, but the status chip said 编制中 and the lock banner said the document was already controlled.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:26:05 +00:00
weichen and Cursor
70ceb03652
fix(web): resume interrupted tasks from history bubbles
...
Continue looked up only the in-memory message list, so a refreshed card did nothing, and the stream path also dropped the stored workspace.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:24:56 +00:00
weichen and Cursor
9daf3b7a10
fix(web): replay task phases after refresh and keep interrupted resumable
...
Progress lived only in the open SSE stream, and interrupted history was shown as completed so the card could not be continued.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:21:09 +00:00
weichen and Cursor
cb1c378c5a
fix(server): close task event streams when the client only wants a replay
...
Interrupted runs often have no done event, so a refresh replay would otherwise hold the SSE connection open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:21:09 +00:00
weichen and Cursor
a236ddc0fa
fix(intent): accept 编写/编制/起草 and keep intake markers on intake
...
The chat fallback only treated 生成/做/跑/出 as task verbs, and the shorter RDev alias 用户需求 stole 初始用户需求表.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:12:15 +00:00
weichen and Cursor
ddb1e542b6
fix(web): prefer intake markers over the shorter URS title
...
「初始用户需求表」contains「用户需求表」, so title matching sent V0.1 wording to the V0.5 task and the stage gate rejected it.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:12:15 +00:00
weichen and Cursor
247e549397
docs(ops): claim the four dev deep-test fixes
...
Record the intent-routing, task-card resume, and template-badge work before code changes so the mutex is visible.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 06:07:51 +00:00
weichen and Cursor
8b9c2a91f0
merge: fix/dev-multiuser-four-issues-2026-09-21
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:34:30 +00:00
weichen and Cursor
b9eb9460c0
docs(test): record the multi-user workflow fix and dev smoke
...
The report keeps the 6579 document backfill, the live-edit switch rejection, and the rebuilt dev health check.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:31:02 +00:00
weichen
ef2f67d73c
merge: feature/trace-panel-to-chat-2026-09-21
2026-09-21 05:24:16 +00:00
weichen and Cursor
14d1c7d0f7
docs(test): record trace panel retirement on dev
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:24:16 +00:00
weichen and Cursor
87c6068da7
test(web): expect a specific message when task scope cannot be resolved
...
The scope error now has its own copy, so the 4xx case should assert that text instead of the generic request-failed fallback.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:22:50 +00:00
weichen and Cursor
f85b861a18
docs(ops): claim the trace-to-chat change and the dev smoke slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:20:30 +00:00
weichen and Cursor
3a0f7a1033
fix(web): route prefixed task keys and keep live settings editable
...
Message routing follows the project's real task key, account switches clear local workbench state, and the duty matrix writes the reassignment API instead of a local drill.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:20:01 +00:00
weichen and Cursor
f168e44ce7
feat(projectinstance): allow live workflow config edits except switching
...
Activated projects can update duties, approval policy, and document enablement. Changing the workflow definition stays rejected, and project 143 remains frozen.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:20:01 +00:00
weichen and Cursor
b74441fb4f
fix(docgov): materialize enabled workflow docs as template records
...
Activation and list healing need a server-side document row per enabled task, without overwriting documents that already have content.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:20:01 +00:00
weichen and Cursor
d865342ae2
feat(web): replace the standing trace panel with a chat card
...
The requirements and impact summary no longer occupies the chat column. Open recheck marks arrive as an assistant card with a no-change action.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:19:43 +00:00
weichen and Cursor
687f930f40
feat(trace): deliver recheck and impact notices in chat
...
A new recheck mark is posted into the actor's existing project session, and a downstream-impact event does the same. Asking about what a change affects still resolves to impact analysis.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:19:43 +00:00
weichen
2167bf4327
merge: fix/taskrun-scope-persist-2026-09-21
2026-09-21 05:09:39 +00:00
weichen and Cursor
7ff0fb5cdd
docs(test): record task scope alias acceptance on dev
...
Chen Wei's intake request against a bd_intake snapshot now creates a run, and the chat window still returns the turn after refresh.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:09:39 +00:00
weichen and Cursor
f529458c28
docs(ops): claim task-scope persist fix and the dev smoke slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:07:04 +00:00
weichen and Cursor
a60bba6fbf
fix(server): persist chat when a document task scope cannot be resolved
...
A 409 used to return before any message was written, so a refresh showed an empty conversation. Record the user turn and a failed assistant reply before rejecting the run.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:03:08 +00:00
weichen and Cursor
8d22fa3827
fix(projectinstance): resolve legacy task keys against namespaced snapshots
...
New workflow instances store bd_* task keys, but chat still sends the old keys. Scope and document access now treat those aliases as the same task so a live instance no longer fails closed on an exact string miss.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 05:03:08 +00:00
weichen
e91ffbca1d
merge: fix/taskrun-error-transparency-2026-09-21 slot release
2026-09-21 03:14:29 +00:00
weichen and Cursor
5ed0fc7e01
docs(ops): restore created date on the task run error task
...
Keep the short-term frontmatter complete after marking the task done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:14:29 +00:00
weichen and Cursor
0600804e6d
docs(test): record task run error transparency acceptance
...
Dev rebuild serves snake_case task run JSON and the real pi-agent backend, so failed runs are no longer labeled as network errors.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:14:19 +00:00
weichen
5380cc1606
merge: fix/taskrun-error-transparency-2026-09-21
2026-09-21 03:09:59 +00:00
weichen and Cursor
776c3aeb75
merge: dev into fix/taskrun-error-transparency-2026-09-21
...
Take the released integration slot and keep the trace-panel acceptance notes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:09:42 +00:00
weichen and Cursor
943a07b2a4
fix(web): surface real task failure reason instead of NETWORK_ERROR fallback
...
Show error_message for failed runs, a distinct cancelled state, and business 4xx codes instead of a generic network message.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:05:49 +00:00
weichen and Cursor
fbcb78cf92
test(server): assert snake_case task run response
...
Lock GET /api/v1/tasks/runs/{id} to run_id, status, and error_message so PascalCase cannot regress.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:05:49 +00:00
weichen and Cursor
c10206512d
fix(taskrun): serialize RunRecord with snake_case json tags
...
The task run API was emitting PascalCase fields, so the client never saw status or error_message and treated every disconnect as a network error.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 03:05:49 +00:00
weichen
ea6f822c18
merge: fix/trace-panel-null-crash-2026-09-21 slot release
2026-09-21 02:59:18 +00:00
weichen and Cursor
437b6ef59e
docs(test): record the trace panel null-crash acceptance
...
Release the integration slot after the dev rebuild and browser check.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:58:23 +00:00
weichen and Cursor
f46ab4672e
docs(ops): claim task run error transparency fix
...
Record the NETWORK_ERROR misreport and defer HTTP access logs so the failure reason is no longer hidden behind a network fallback.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:47:59 +00:00
weichen
e1bc95cd88
merge: fix/trace-panel-null-crash-2026-09-21
2026-09-21 02:41:21 +00:00
weichen and Cursor
726ab7560c
docs(ops): occupy the integration slot for the trace panel crash fix
...
The previous slot line claimed an already-merged docs branch; dev itself is idle.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:39:42 +00:00
weichen and Cursor
1f7f3d2271
test(trace): guard empty trace lists against JSON null
...
Cover the service nil-slice contract and the client normalization of a null payload.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:38:08 +00:00
weichen and Cursor
26d8f4381d
fix(web): normalize null trace arrays before render
...
ProjectTracePanel reads index.length; a cached or older payload of null must not crash the page.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:35:26 +00:00
weichen and Cursor
00df3d7cb8
fix(traceimpact): return empty slices instead of nil lists
...
Empty trace indexes were serialized as JSON null and crashed the project page.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:33:51 +00:00
weichen and Cursor
17fcd3ff69
docs(ops): 占用集成槽位合入 lazy-doc-verification
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:31:38 +00:00
weichen and Cursor
c64b46a745
docs(ops): 认领 ProjectTracePanel 空追踪崩溃修复
...
登录后项目页因 trace 接口把空切片序列化成 null 而触发 ErrorBoundary。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:31:28 +00:00
weichen
bfc77076f6
merge: docs/lazy-doc-verification-2026-09-21
2026-09-21 02:26:56 +00:00
weichen and Cursor
86f8a0b548
docs(ops): CURRENT 登记 lazy-doc-verification 认领 done
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:21:44 +00:00
weichen and Cursor
bbbaf40bfd
docs(test): test 环境受控文档懒创建端到端验证报告
...
- 验证「激活后 0 受控文档」为懒创建设计预期:激活只建实例,文档在任务运行时由 bizdev service CreateOrGetDocument 落库
- 真实 PI Agent(MiniMax-M2.7-highspeed)跑通 bd_intake 小队任务 3m45s completed
- 三重证据:document_records 0→1 行、documents API 计数翻转、正文 7729 字符 SHA-256 与账本一致
- short-term 任务与 CURRENT 认领登记;证据资产归档 assets/
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-21 02:21:07 +00:00
weichen
33943fd46e
merge: feature/stage-backtrack-impl slot release
2026-09-20 15:37:55 +00:00
weichen and Cursor
9551bcbb25
docs(ops): release the integration slot after the dev schema 59 smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:37:55 +00:00
weichen
5430742b00
merge: feature/stage-backtrack-impl
2026-09-20 15:35:32 +00:00
weichen and Cursor
b7197607e9
docs(ops): occupy the integration slot for the stage backtrack implementation
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:32 +00:00
weichen and Cursor
ae86b47f6f
docs(ops): record the stage backtrack implementation slices
...
The slices share feature/stage-backtrack-impl. Migration 00059 is not applied to the running environments yet.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:22 +00:00
weichen and Cursor
3a4c00a1ba
feat(web): show the trace panel and the recheck acknowledgement
...
The acknowledgement stays visible on the advance bar and does not clear the mark.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen and Cursor
e4b4e0dde8
feat(api): expose the trace index, reopen, and recheck routes
...
Use the record tables when migration 00059 is present, and hide statements from documents the caller cannot see.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen and Cursor
5e05d966b4
feat(intent): bridge chat into impact analysis and revision proposals
...
Analysis stays read-only, and a revoked project member cannot confirm an old proposal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen and Cursor
4a7b8cc26f
feat(workflow): reopen a completed stage without pausing the later one
...
Selected documents return to drafting, and advance asks the creator to acknowledge an open recheck mark.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen and Cursor
432884911f
feat(docrevision): attach coverage status to formal human revisions
...
Unknown, partial, and failed coverage stay distinct from no known dependencies.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen and Cursor
33ee59641f
feat(trace): add the project trace ledger and bounded impact walk
...
Keep item revisions and edge decisions as records, and refuse to treat a missing index as no impact.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:35:07 +00:00
weichen
e3a5b2851e
merge: feature/stage-backtrack-design
2026-09-20 15:09:31 +00:00
weichen and Cursor
c825bbb13f
docs(ops): release integration slot after stage backtrack design smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:09:31 +00:00
weichen and Cursor
0155ac62db
docs(ops): occupy integration slot for stage backtrack design
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:09:15 +00:00
weichen and Cursor
54c8a3d107
docs(design): specify stage backtrack and impact loop
...
Record how later materials can affect earlier stages without hard gates, and split the implementation into planned slices.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 15:09:06 +00:00
weichen
d43ac2d893
merge: fix/workflow-seed-bootstrap-2026-09-20 closeout
2026-09-20 14:06:15 +00:00
weichen and Cursor
cc95b8445c
docs(test): archive rdev seed hotfix verification
...
dev 与 test 目录已含研发设计控制流程,test 晋升 rc-v1.0.0-beta.7 后 schema 为 58。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 14:06:15 +00:00
weichen
950f881968
merge: fix/workflow-seed-bootstrap-2026-09-20
2026-09-20 14:03:42 +00:00
weichen and Cursor
7da2c1fdef
docs(ops): occupy integration slot for rdev seed hotfix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 14:03:42 +00:00
weichen and Cursor
079225495e
fix(workflowdef): heal retired seeds and fall back published_by
...
启动种子不再依赖固定用户 id=1,并把白名单工作流的 retired 状态恢复为 active。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 14:03:30 +00:00
weichen and Cursor
badfc19812
docs(ops): claim rdev workflow seed hotfix
...
dev 库 rdev 停在 retired,test 库因 publishedBy 外键失败未发布研发工作流。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 14:03:30 +00:00
weichen
e83de73fd0
merge: docs/module-decoupling-spec-2026-09-20 slot release
2026-09-20 13:25:44 +00:00
weichen and Cursor
a3d382c6d9
docs(ops): release integration slot after docs-only smoke
...
Record that go vet passed and the two short-test failures are docker registry EOF, not this documentation change.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:25:44 +00:00
weichen
133ceb454c
merge: docs/module-decoupling-spec-2026-09-20
2026-09-20 13:23:54 +00:00
weichen and Cursor
a94745370d
docs(status): record module standards and planned decoupling batches
...
Mark the documentation task done and hold the integration slot while the docs merge into dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:23:41 +00:00
weichen and Cursor
22cac8dcbe
docs(remediation): plan module decoupling batches A through G
...
Keep each hotspot on its own branch and mutex so a later code fix cannot spread across modules.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:22:59 +00:00
weichen and Cursor
fe46705b67
docs(system-design): list the module standards file in the design index
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:22:21 +00:00
weichen and Cursor
e71db3dce6
docs(system-design): add module communication and isolation standards
...
Give implementers one entry for narrow ports, the event bus, and the rule that a fault stays inside its module.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:22:11 +00:00
weichen and Cursor
0504884e04
docs(audit): record remaining module coupling hotspots
...
Keep the modular-monolith baseline and name the seven places where a fault still crosses a module boundary.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:21:36 +00:00
weichen and Cursor
6b43007d7a
docs(ops): claim module decoupling spec and coupling audit
...
Register the docs-only audit so later batches do not collide with the architecture-docs mutex.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 13:21:03 +00:00
weichen
4ac8ca2308
merge: docs/p0-closeout-2026-09-20
2026-09-20 10:58:12 +00:00
weichen and Cursor
eaad5c74d4
docs(test): archive P0 hotfixes verification report and close gap rows
...
Record schema 58 / IDOR curl / credential rotation evidence and release the integration slot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:58:12 +00:00
weichen
8a9fbd8280
merge: fix/credential-hardening-2026-09-20
2026-09-20 10:57:04 +00:00
weichen and Cursor
c47b437b22
fix(ops): stop hardcoding DB passwords and URL-embed git tokens
...
Load backup credentials from env/secrets files and push via a temporary credential helper so tokens never appear in process listings.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:57:04 +00:00
weichen
8ef95891a4
merge: fix/runtime-panic-races-2026-09-20
2026-09-20 10:54:18 +00:00
weichen and Cursor
48c985318c
docs(ops): claim integration slot for runtime-panic-races merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:54:18 +00:00
weichen and Cursor
b4388934a0
fix(runtime): hold taskrun fanout lock, guard goroutines, and escape math XSS
...
Serialize appendEvent sends under the subscriber mutex, wrap worker/memory goroutines with recover, lock synchronous chat SendMessage, and escape KaTeX error HTML.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:54:18 +00:00
weichen
3a3a79769e
merge: fix/authz-idor-hotfixes-2026-09-20
2026-09-20 10:42:58 +00:00
weichen and Cursor
58f0ed65c1
docs(ops): claim integration slot for authz-idor merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:42:58 +00:00
weichen and Cursor
fad7fac044
fix(authz): close preference, session project, and recategorize IDOR gaps
...
Bind preference writes and session-scoped project reads to the authenticated principal, and require an owned session_id for recategorize so empty ids cannot touch all messages.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:42:58 +00:00
weichen
e347c0d138
merge: fix/capability-merge-00058-2026-09-20
2026-09-20 10:39:21 +00:00
weichen and Cursor
d4b38a273b
docs(ops): claim integration slot for capability-00058 merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:39:21 +00:00
weichen and Cursor
37fb1ba44e
merge: feature/capability-enablement-impact-plan; renumber chat_summaries to 00058
...
Absorb stalled capability fixes and avoid goose out-of-order on schema 57 DBs by shipping chat_summaries as 00058.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:38:12 +00:00
weichen
43688fd4c3
merge: docs/p0-triage-2026-09-20
2026-09-20 10:37:18 +00:00
weichen and Cursor
1313cf19b1
docs(ops): archive 2026-09-20 system triage audit and P0 remediation plan
...
Claim P0 hotfixes waves, correct schema snapshot to 57, and park non-P0 findings in long-term backlog.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 10:37:08 +00:00
weichen and Cursor
518d5d6132
docs(ops): release integration slot after duty-reassign smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:52:22 +00:00
weichen and Cursor
5c9f9aa57c
docs(ops): close duty-reassign task and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:52:14 +00:00
weichen and Cursor
95329aad58
docs(test): archive duty-reassign and member-chat verification report
...
Record test-env evidence for chenwei stage chat and post-activation
PATCH duty reassignment after merge and rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:52:04 +00:00
weichen
9d98f1ae33
merge: fix/post-activation-duty-reassign-member-chat
...
Member stage chat without duties; controlled post-activation duty reassign.
2026-09-20 09:48:59 +00:00
weichen and Cursor
2b96987ddd
docs(ops): claim integration slot for duty-reassign merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:48:59 +00:00
weichen and Cursor
c3dad4c643
docs(ops): claim post-activation duty reassign and member chat task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:48:27 +00:00
weichen and Cursor
8e4beff5f8
feat(web): allow duty reassignment in frozen project settings
...
Show editable duty selects after activation when the user has
project:assign_lead, calling the new PATCH API instead of workflow-plan PUT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:48:27 +00:00
weichen and Cursor
1497473186
feat(projectworkflow): controlled post-activation document duty reassign
...
Add PATCH /doc-tasks/{taskKey}/duties that updates live snapshot,
assignments, and document_records while blocking when a squad run holds
the document lease. Planning PUT remains PLAN_FROZEN.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:48:27 +00:00
weichen and Cursor
a82bfdb6d1
fix(authz): allow project members stage chat without document duties
...
Live workflows still restrict document actions to duty holders, but
AllowedStageKeys now include active/completed stages so members can chat.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:48:19 +00:00
weichen
6d04d98c5f
merge: docs/triage-task-done
2026-09-20 09:23:42 +00:00
weichen and Cursor
69cae9e4e7
docs(ops): mark test-env triage task done
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:23:42 +00:00
weichen
89abc757f9
merge: docs/test-env-triage-report-2026-09-20
2026-09-20 09:23:31 +00:00
weichen and Cursor
95880bf168
docs(test): archive test-env triage fixes verification report
...
Record E2E PASS for global unique names, member session visibility,
and asset raw preview; release integration slot and mark task done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:23:31 +00:00
weichen
213ad0159a
merge: fix/test-env-triage-2026-09-20
...
Global unique project names, member chat session provisioning, and
project asset raw preview recovery for test-env triage.
2026-09-20 09:19:08 +00:00
weichen and Cursor
f603f63ca7
docs(ops): claim integration slot for test-env triage merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:19:08 +00:00
weichen and Cursor
18a323c4dc
test: cover asset raw round-trip and harden cross-user session upsert
...
Deny foreign user_id upsert without manage rights (403); unique project
names in ctxmgr PG fixture for global name index; add test-env data repair SQL.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:18:36 +00:00
weichen and Cursor
21782751ab
fix(server,web): serve project asset raw and recover preview after refresh
...
Add GET /assets/{id}/raw with project access checks; frontend falls back
to CAS by assetId or filename when local blob is gone. Align upload accept
list with backend whitelist and register binaries into CAS on chat upload.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:14:12 +00:00
weichen and Cursor
aef3d6d5cb
fix(server): create member chat sessions on invite and allow manager upsert
...
Project managers can register sess-p{N}-u{uid} for other members; adding a
member also ensures their private session so the sidebar is never empty.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:11:36 +00:00
weichen and Cursor
28478bdca5
fix(db): enforce global unique project names across creators
...
Replace per-creator name uniqueness with a global index among
non-retired projects, and reject cross-user duplicate creates with 409.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:10:55 +00:00
weichen and Cursor
638083cc74
docs(ops): claim test-env triage fixes (dup name / member session / preview)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 09:10:04 +00:00
weichen
bee907ef7e
merge: docs/test-env-beta6-verification
2026-09-20 08:06:24 +00:00
weichen and Cursor
782b2dd2ce
docs(test): archive beta.6 test-env assistant/squad verification report
...
Record rc-v1.0.0-beta.6 C-level evidence (pi-agent dialogue, intake docs,
12 regressions) and flip CURRENT to test schema 56 with idle integration slot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 08:06:24 +00:00
weichen
9f29b0badb
merge: docs/bug-hunt-2026-09-20-closeout
2026-09-20 07:05:51 +00:00
weichen and Cursor
c7ee6b825e
docs(ops): close bug-hunt permissions-uploads task after merge to dev
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 07:05:51 +00:00
weichen
032fdb050f
merge: fix/bug-hunt-2026-09-20-permissions-and-uploads
2026-09-20 07:05:34 +00:00
weichen and Cursor
6800a2af29
docs(ops): record permissions/uploads bug-hunt audit and short-term task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 07:05:06 +00:00
weichen and Cursor
c8dbefe8a1
fix(web): align settings CAS, PDF preview, and collaboration UX guards
...
Wire expected_revision, blob PDF framing, mustChangePassword session rewrite,
client_key project create, no-project send disable, and right-rail persistence.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 07:05:06 +00:00
weichen and Cursor
5cd22c7327
fix(authz): harden permissions, chat gate, and project create idempotency
...
Add project:manage_members, CSP frame-src, task-run member view, CreateUser
tx error handling, ERR_NO_PROJECT chat gate, and creator-scoped project
name/client_key uniqueness to stop duplicate creates and auth gaps.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 07:04:57 +00:00
weichen
5a5a91dd7f
feat(docrevision): keep candidate estimates separate from committed reports
...
A candidate used the same report later attached to the version, so a preview could be treated as the formal result. Proposed reports now close on replace or reject, and only the commit writes an authoritative successor.
2026-09-20 05:15:41 +00:00
weichen and Cursor
db1706cd24
feat(docrevision): send clipped diff text to the change-report narrator
...
The narrator only received counts, so it could not describe the actual change. Caps keep the full document out and leave the input digest unchanged; the flag stays off.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 05:03:31 +00:00
weichen and Cursor
686f739b19
fix(pi-agent): enforce a no-tool reasoning profile
...
语义摘要、变更叙事和 U9 分段改为请求 reasoning。该 profile 的 argv 使用 --no-tools 且不加载搜索扩展;未知 profile 拒绝启动。文档生成仍保留读写工具。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 04:59:15 +00:00
weichen and Cursor
848a0457a0
fix(chat): stop treating failed summary writes as durable
...
新增 chat_summaries 迁移。数据库写失败会返回错误并标明仅本进程可见。test_manager 血缘改用文档版本,不再写死 1。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 04:02:41 +00:00
weichen and Cursor
033462a4e6
fix(authz): separate capability readiness from configured flags
...
管理台不再把开关值当成能力已接入。lineage 读取必须落在 URL 项目内,并按两端文档可见性裁剪,跨项目或不可见文档只返回空列表。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 03:45:16 +00:00
weichen and Cursor
d3364f9125
docs(capability): record enablement research and remediation plan
...
把“看似实现、实际未启用”的复核、三条独立轨道和七视角审阅落盘,避免后续把未接线开关当成可以上线。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-20 03:45:16 +00:00
weichen
8fdcd983a6
docs(ops): record test promotion rc-v1.0.0-beta.5 and release integration slot
2026-09-20 01:10:43 +00:00
weichen
0fd765a392
docs(test): record full deep test report for dev and test promotion
2026-09-20 00:48:11 +00:00
weichen
bcbf4eba1c
fix(pi-agent): register both MiniMax-M2.7-highspeed and MiniMax-M3 in models.json
2026-09-20 00:47:50 +00:00
weichen
f47e40edad
test(server): align test_manager task key to tm_system_verification in e2e test
2026-09-20 00:45:33 +00:00
weichen
97b868a942
docs(arch): allow squad in intent and workflowdef in squad and template
2026-09-20 00:44:47 +00:00
weichen
24bc4e6a2f
merge: fix/audit-remainder-closeout (audit remainder closeout M1-M15, web modularization, rdev matching, schema 53)
2026-09-20 00:43:33 +00:00
weichen
89e8fb92b0
docs(ops): occupy integration slot for dev sub-branch merge, deep test and test promotion
2026-09-20 00:43:28 +00:00
weichen and Cursor
3ae13bfae2
docs(test): record the U7 restart matrix and the gate follow-up
...
Postgres and app reach ready in about a second. Vite cold cache is not the old ten-second stall, and the login form was not measured.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 15:39:49 +00:00
weichen and Cursor
b48a832281
fix(squad): score only the first review-minutes table
...
A later standards table in the same section was counted as issue rows and failed the saved P3 sample.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 15:39:49 +00:00
weichen and Cursor
6bd338e273
test(rdev): record the three real PI samples on dev
...
Software-plan N/A stayed closed and the proposal completed, but the planning review finished quality_failed at score 20. The poller now treats that status as terminal so it does not spin until timeout.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 14:33:25 +00:00
weichen and Cursor
56a8719863
refactor(web): move the workbench shell out of App
...
Session state stays in App. The shell, rights dialogs, and project modals now render from WorkbenchView, so App no longer mounts AppShell itself.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 14:11:32 +00:00
weichen and Cursor
8a9599fbb0
refactor(web): render the chat column outside App
...
The workbench shell still owns session and modal state. Message stream, filters, and the composer now live in ChatColumn so App stops assembling that column inline.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:57:10 +00:00
weichen and Cursor
b3a1305e46
docs(test): record twenty-run slow-network login and app restart
...
The rebuilt bundle stays under the draft login budgets on this machine. Restart-to-health is under half a second, and the wider restart matrix is still open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:35:52 +00:00
weichen and Cursor
69e2cd259d
refactor(web): render the active document column outside App
...
The revision toolbar, file preview, and governance bars stay with the document pane so the workbench shell no longer owns that column.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:32:39 +00:00
weichen and Cursor
26d14b534b
docs(test): record schema 53 rebuild and login fanout on dev
...
The rebuilt workbench issues one member request and one session list request. Slow-network samples improved, but twenty-run percentiles and the restart matrix are still open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:22:38 +00:00
weichen and Cursor
404defced2
test(server): reject non-member comment and audit reads on postgres
...
The in-memory authorizer treats any positive user id as a member, so the HTTP negative has to run against a real project row.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:22:37 +00:00
weichen and Cursor
c49637cbb5
fix(db): restore applied goose files so fresh migrate can parse
...
The checksum-immutable note inside 00001 contained a goose annotation and would fail a new database. Keep that warning out of files goose already applied.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:22:37 +00:00
weichen and Cursor
4b2d92a1be
docs(test): record login-load baseline against Vite and deployed dev
...
The current workbench stays at one member fetch across 20 logins, while the deployed bundle still fans out. Slow-network samples stay diagnostic until the container is rebuilt.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 13:00:39 +00:00
weichen and Cursor
eabaadd2a0
test(web): record login waterfall and init request counts
...
Give the initial-load baseline a repeatable probe that strips query strings and can assert the login member fanout stays on the current project.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:57:12 +00:00
weichen and Cursor
95f0e7bcf9
refactor(web): share and save freeform docs from one hook
...
Keep private-library share, revoke, delete, and save-to-private off the workbench shell so those side effects stay testable without growing App.tsx.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:57:12 +00:00
weichen and Cursor
8de29466e1
refactor(web): persist project members from one hook
...
Refresh the roster and workflow documents only after the member write succeeds, so a failed add does not invent a local session.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:11:52 +00:00
weichen and Cursor
a29e98096a
refactor(web): create projects from one hook
...
Remember the new project id as soon as create succeeds so a later member failure retries members instead of creating a second project.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:09:28 +00:00
weichen and Cursor
9f39fbaaf3
refactor(web): handle interactive cards from one hook
...
Keep plan confirmation, reject, undo, and approval on the same card so a revision conflict still reconciles before the card changes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:07:08 +00:00
weichen and Cursor
57873f6c84
refactor(web): retry chat and task runs from one hook
...
Keep reconnect on the existing run id so a dropped stream does not start a second task.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:05:01 +00:00
weichen and Cursor
f9c2b3acdf
refactor(web): edit document blocks from one hook
...
Apply a controlled block only after the server patch succeeds, and keep insert, move, delete, and comments on the same document state.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 12:00:43 +00:00
weichen and Cursor
52f69fe180
refactor(web): send chat messages from one hook
...
Keep attachment registration, task dispatch, and the demo shortcuts on the same path so a failed upload still blocks before any local message is stored.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:46:07 +00:00
weichen and Cursor
c22faecfcb
refactor(web): move document lifecycle actions into a hook
...
Keep claim, review, and approval on one server record so the open document and the sidebar stay in the same state.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:40:03 +00:00
weichen and Cursor
22ea4c31ed
refactor(web): sync server documents from one hook
...
Keep freeform append, workflow reconcile, and lease polling together so a failed list cannot wipe local docs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:33:03 +00:00
weichen and Cursor
113dea4ac5
refactor(web): hydrate controlled documents from one hook
...
Keep the editor gate, cancel, and error skeleton together so App no longer owns the fetch path.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:29:40 +00:00
weichen and Cursor
27c1be86d5
refactor(web): move login workspace sync out of App
...
Project list, member roster, and session fetch ran as four effects inside the workbench component. They now share one hook so the entry file is not the only place that knows the login startup order.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:05:29 +00:00
weichen and Cursor
bfe8cb1407
refactor(web): persist the workbench from one hook
...
Session, project, and deliverable caches were written from scattered effects, and the legacy message migration ran twice on mount. One hook keeps that write path in a single place.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 11:01:44 +00:00
weichen and Cursor
63b0f72081
feat(web): load the formula engine only when math appears
...
The login entry no longer ships KaTeX. Chat bubbles and document text render formulas after a dynamic import, and rich-text copy does the same.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:57:49 +00:00
weichen and Cursor
dba8139d56
feat(workflow): namespace task keys without breaking old instances
...
Published manifests now use bd_/pm_/tm_/sw_ prefixes so workflows cannot share a doc id. Frozen instances keep the old keys; lookup, templates, and duty checks treat the two names as the same task.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:50:25 +00:00
weichen and Cursor
2a0f8b4549
docs(ops): record the frontend test and build gate
...
npm test and the production build passed on this branch. The entry bundle stays near 1 MB, and CURRENT still correctly says schema 52 until the containers are rebuilt.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:34:50 +00:00
weichen and Cursor
7e0f3cbf9c
feat(web): show the rdev start prerequisite before activation
...
Selecting the design-control workflow now repeats the server rule: business handover must finish with an approved CDO quote first. Other workflows stay quiet.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:33:11 +00:00
weichen and Cursor
6367f865d5
feat(web): fold long workflow stages and batch their approval
...
Later stages with more than four documents start collapsed, and one action can put the whole stage under human approval or take it back out. The workflow chip still names the design-control flow when the catalog has not loaded.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:30:32 +00:00
weichen and Cursor
5bf10c7536
docs(ops): keep the login fan-out note next to the rdev matcher
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:27:08 +00:00
weichen and Cursor
2fbb5bab49
feat(intent): match rdev document names when the user asks to generate
...
生成项目建议书 now resolves to rd_proposal. Longer titles win, so 系统设计方案 is not mistaken for the shorter business-stage phrase, and an explicit generate command is no longer swallowed by a progress question.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:26:57 +00:00
weichen and Cursor
890d2fd14e
fix(web): stop login from fetching every project member list
...
The project list is already limited to the current user, so other rosters wait until the member panel opens. Session reload no longer follows project updates, and a newer response cannot overwrite an older user.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:22:04 +00:00
weichen and Cursor
b550911667
feat(squad): load rdev overlays and enforce document gates
...
Each rdev step now gets a role-filtered overlay so writing discipline stays out of the template. User needs, system requirements, review minutes, and upload indexes fail the quality gate when IDs, decisions, or attachment indexes are incomplete.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:12:10 +00:00
weichen and Cursor
93ee98af0e
feat(squad): apply rdev stage step overrides and aliases
...
Stage-specific squad steps now win over the kind default, including always-on regulatory and searcher roles. Each of the 60 tasks carries its writing hint and Chinese alias so lookup and the writer accept line use them.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 10:05:26 +00:00
weichen and Cursor
8365de3426
docs(ops): keep the load and auth notes next to the rdev remainder
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:58:51 +00:00
weichen and Cursor
754cba764c
feat(squad): gate rdev regulatory steps on complexity tier
...
Listed tasks still get a regulatory step when complexity is unset or high. Medium and low skip it, and the squad model now comes from SQUAD_MODEL_ID or MINIMAX_MODEL_ID instead of a fixed name.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:58:40 +00:00
weichen and Cursor
32d838285d
fix(auth): resolve session and user status once per request
...
/auth/me was authenticating again after the middleware had already done it, and the session lookup queried user status in a second round trip. Reuse the request principal and join status into the session read so a revoked token still fails on the next request.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:54:10 +00:00
weichen and Cursor
17f7fed1db
feat(web): load export, preview, and charts only when opened
...
The login shell was downloading the document engines with the workbench. Those modules now load on click or when a matching block appears, and a failed chunk can be retried without submitting an edit.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:51:04 +00:00
weichen and Cursor
1b17e01ce7
docs(ops): record frontend gate and the memory authz limit
...
The branch frontend suite and production build passed. Cross-user document comments still need a Postgres negative because the in-memory authorizer is intentionally open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:42:30 +00:00
weichen and Cursor
952a94b6d5
fix(docrevision): ack content projection only after the fact source is written
...
The human ledger and the document body are different stores. Record the projection intent in the same transaction as the ledger, and clear it only when the body write succeeds so a retry cannot append a second revision.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:35:14 +00:00
weichen and Cursor
fc32ba3dc3
fix(web): version chat window cache and cover cross-user session list
...
Drop window-cache payloads that lack a schema field. Prove a non-owner listing another user's sessions is forbidden. Correct the stale test schema note in CURRENT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:28:11 +00:00
weichen and Cursor
2a666df3c1
fix(events): hold aggregate gaps on production claim
...
PostgreSQL claim now uses the same next-version rule as MemoryBus, and checkpoints only move forward. A later version cannot be leased while an earlier one is still missing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:24:51 +00:00
weichen and Cursor
01ca861e94
docs(ops): record which audit remainder items are closed
...
Keep M7, M15, the frontend split, and the red-line features open so the next pass does not treat them as done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:20:07 +00:00
weichen and Cursor
d4041a4f0c
fix(coordinator): use the caller name and reject non-decimal user ids
...
Ambiguous consult only redirects on low confidence, and the testing template greets the signed-in user instead of a hardcoded name. Session tokens no longer parse as user id 0. Live chat sessions now evict the oldest entry at a hard cap.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:19:36 +00:00
weichen and Cursor
265f09c1f2
fix(server): cache health probes, surface SSE marshal errors, fail closed on missing duties
...
Health checks reuse a two-second snapshot and bound the schema query. Task SSE writes an error frame when an event cannot be encoded. ResolveDocTask errors when the frozen plan has no duty row, while explicit none-duties stay zero. Drop the unwired semantic-summary replace env, record the intentional dev versus release model split, document the test/main cutover path, and archive pre-goose SQL.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:16:18 +00:00
weichen and Cursor
4c34e8a503
fix(server): close security headers, lease clamp, replay digest, double start
...
Add nosniff, frame denial, referrer policy, and a self-origin CSP. Clamp human and squad lease TTLs and require author edit rights before a human lease. Include DryRun in replay digests so a dry-run approval cannot authorize apply. Stop Server.Start from swallowing a second Runtime.Start.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 09:12:17 +00:00
weichen and Cursor
62ce2781ae
docs(ops): record pre-test promotion readiness review
...
Capture the read-only check that planned capabilities are wired, while dev is not ready to merge into test until the container is rebuilt and the remaining gates run.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 08:36:58 +00:00
weichen
66421b162d
merge: docs/audit-remediation-backlog (audit batch 4 report + medium backlog)
2026-09-19 07:55:48 +00:00
weichen and Cursor
d9cd7ebb82
docs(ops): close audit batch 4 report and park medium leftovers
...
Critical/high fixes are already on dev. Record the frontend test report, restore the audit note, and move remaining medium/low items into long-term so they are not treated as release blockers.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 07:55:43 +00:00
weichen
d73bc79800
merge: fix/audit-b4-frontend (audit batch 4: markdown XSS, unread rollback, excel preview cap)
2026-09-19 07:53:36 +00:00
weichen and Cursor
6c28fca98f
fix(web): close markdown placeholder XSS and unread/excel edge cases
...
- Escape KaTeX fallback HTML and salt math/code placeholders per render
- Roll back optimistic unread marks when POST /chat/read fails
- Reset MessageStream scroll baseline when the session changes
- Preview only the first 1000 Excel rows and say so in the sheet header
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 07:53:31 +00:00
weichen
84ba1c97d7
docs(test): audit batch 3 test report and slot release
2026-09-19 07:49:45 +00:00
weichen
a2a49a64f5
merge: fix/audit-b3-sse-events (audit batch 3: sse heartbeat, task idempotency, write deadline, fencing log)
2026-09-19 07:49:15 +00:00
weichen and Cursor
b65e8fb642
docs(db): mark baseline and seed migrations as checksum-immutable
...
Goose checksums forbid rewriting applied files. Document that 00001-00009
have no down migration and that 00012's unconditional DELETE is demo-only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 07:49:01 +00:00
weichen and Cursor
0531462acc
fix(sse): bound heartbeat lifetime and reuse idempotent task streams
...
- Wait for the chat SSE heartbeat goroutine to exit before the handler
returns, so it cannot write a recycled connection
- Extend /tasks/run write deadline to 75m so long sync runs are not cut
by the global 120s WriteTimeout before the response is written
- Reuse an existing task run on the SSE path when the idempotency key
already belongs to the same user/session/project
- Log stale fencing on event ack so unbounded replay is observable
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 07:49:01 +00:00
weichen
9fa29bec42
docs(test): audit batch 2 test report
2026-09-19 06:03:31 +00:00
weichen
c3c2b39abd
docs(ops): record audit batch 1+2 merges and slot release
2026-09-19 06:02:38 +00:00
weichen
08f4e0bbf8
merge: fix/audit-b2-authz-hardening (audit batch 2: principal identity, docgov access, rate limit, compose secrets)
2026-09-19 06:01:00 +00:00
weichen and Cursor
2dd8f46e64
fix(server): login/register rate limiting + compose secret hygiene (H4/H8/M8)
...
- H4: sliding-window rate limiter (10 attempts / 5min per IP+username)
on login and register; successful login resets the counter; pure
stdlib, no new dependency
- H8: docker-compose.test.yml DB/ADMIN passwords now :?required (align
with main); docker-compose.main.yml AUTH_REGISTRATION_ENABLED
defaults to false
- M8: fix FAV_PUBLISHER_ENABLE -> FAV_PUBLISHER_ENABLED typo so the
gate test actually guards the real flag
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 06:00:30 +00:00
weichen and Cursor
d2903a1662
fix(server): enforce principal identity and docgov project access (H1-H3)
...
- H1: log legacy test-principal fallback (path/method/remote_addr) via
slog.Warn so silent unauthenticated access is observable
- H2: AddComment/Claim now derive actor ID/Name/Role from the auth
principal and server-side doc duty resolution (resolveDocGovRole),
never from request body; GetDocument/ListComments/ListAuditLogs now
require project membership via requireDocGovDocAccess
- H3: handleGetChatTurn asserts session ownership; handleListChatSessions
and handleGetUserContext reject cross-user user_id (403) and stop
defaulting to user id=1
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 05:33:38 +00:00
weichen
844f757af3
merge: fix/audit-b1-data-consistency (audit batch 1: docgov persist errors, session race, workflow plan tx, ctx threading)
2026-09-19 05:04:18 +00:00
weichen and Cursor
a81db16cdd
fix(server): thread request ctx through session bootstrap, drop Background DB calls
...
- getOrCreateSession now takes ctx; GetSessionOwnerID/
RestoreSessionContext/CompilePromptGuidance run under
context.WithTimeout(5s) instead of context.Background()
- SyncRecentDialogue's rolling summary uses a 30s timeout context
instead of Background, so client disconnect cancels the LLM call
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 05:03:01 +00:00
weichen and Cursor
e2b13406db
fix(projectinstance): atomic plan save and correct completed_by attribution
...
- Add Store.SavePlanWithRevision: single-transaction planning upsert +
revision bump (bump first with optimistic lock, conflict rolls back
before any plan write), closing the SaveWorkflowPlan split-transaction
race where plan content and revision could diverge
- AdvanceStage now takes operatorID and writes completed_by explicitly
instead of SELECT activated_by, so the completing operator is the
actual advancing user, not the original activator
- Service.SaveWorkflowPlan/AdvanceStage pass userID through; memStore
implements SavePlanWithRevision under its single mutex
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 05:00:01 +00:00
weichen and Cursor
c7eab1f7d1
fix(chat): add RWMutex to Session and snapshot accessors to close data race
...
- Session gains mu sync.RWMutex + SnapshotMessages/AppendMessage/
TouchLastAccessed/SetProjectID/Project accessors
- sendMessageInternal, hydrateVisibleHistory, getOrCreateSession,
cleanStaleSessionsLocked, handleChat, handleChatStream,
enrichSessionWorkflowStage, bindSessionDocumentSummaryReader all use
locked accessors instead of raw field access
- ProjectID mutation now goes through SetProjectID (only when changed),
closing the cross-project pollution window in handleChat/handleChatStream
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 04:55:55 +00:00
weichen and Cursor
11f375f53d
fix(docgov): surface lease/audit persist failures and read back fencing token
...
- persistLeaseLocked now returns error; AcquireLease rolls back in-memory
lease on DB failure so memory and PG stay consistent
- appendAuditLocked uses request ctx and logs audit INSERT failures
instead of swallowing them with context.Background()
- loadDocumentFromDBLocked now SELECTs lease_fencing_token so fencing
survives process restart
- SaveDocumentContent/RecordDocumentViewed/RecordDocumentEdited/
DecideModificationProposal/SetDocumentWorkDir log persist failures
via slog.Error instead of silent _, _
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 04:50:40 +00:00
weichen
e8ed33b0aa
merge: fix/remove-control-center leftover cleanup
2026-09-19 03:55:40 +00:00
weichen and Cursor
597aa76e60
docs: record leftover Control Center cleanup
...
The untracked node_modules tree and the local feature branch are gone.
The remote branch was left in place.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:55:40 +00:00
weichen
d21f024dbe
merge: fix/remove-control-center health closeout
2026-09-19 03:43:22 +00:00
weichen and Cursor
9f2c510b62
docs(test): record dev health after Control Center removal
...
The rebuilt dev service returned 200 with schema 52.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:43:22 +00:00
weichen
03ec351643
merge: fix/remove-control-center
2026-09-19 03:42:23 +00:00
weichen and Cursor
87f6b68001
docs(test): record Control Center removal verification
...
The short tests, archtest, and product web build passed after the
module was deleted.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:42:23 +00:00
weichen and Cursor
14f75df1ac
refactor: remove Control Center from this repository
...
Progress tracking now lives in a separate project. Drop the server,
docs, and module-boundary entries without restoring engineering-dashboard.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:40:00 +00:00
weichen
2641045547
merge: feature/control-center-server (supersede engineering-dashboard)
2026-09-19 03:21:12 +00:00
weichen and Cursor
55fa8ddfcd
docs(test): keep the merge-gate command log
...
*.log is ignored, so the vet/test/build transcript is stored as verify.txt.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:21:05 +00:00
weichen and Cursor
be0a71cf7f
docs(control-center): close the merge gate
...
Record the unit, live LLM, and SPA walkthrough evidence, and mark the
control-center row done now that engineering-dashboard is superseded.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:20:22 +00:00
weichen and Cursor
0929f58aef
chore(control-center): bind the database port to loopback
...
The compose file published 5440 on all interfaces. Match the other
environment databases and listen only on 127.0.0.1.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:20:22 +00:00
weichen and Cursor
69524205b0
fix(audit): ignore MiniMax think blocks when parsing findings
...
Real highspeed responses wrap reasoning in think tags that contain
brackets, which made the JSON span extractor fail before the array.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 03:04:25 +00:00
weichen and Cursor
049a18d5bc
test(controlcenter): cover config pick, store, and leases
...
Gate the merge on unit coverage for the three packages that previously
had none: env precedence, migrate/query, and claim/heartbeat/reap.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 02:58:03 +00:00
weichen and Cursor
b3093f1b60
merge: dev into feature/control-center-server
...
Keep Control Center and drop engineering-dashboard. Resolve CURRENT
claim rows and module-boundaries by removing the superseded dashboard
entry.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-19 02:55:35 +00:00
weichen
283f39df34
merge: fix/user-manual-dist
2026-09-18 09:53:32 +00:00
weichen
0d94556c4f
docs(ops): 记录 dist 补录合入
2026-09-18 09:53:32 +00:00
weichen
65df9d13ed
docs(user-manual): 强制纳入 dist 交付物(html/pdf/docx)并补充重建说明
2026-09-18 09:53:17 +00:00
weichen
8142389b4b
merge: feature/user-manual slot release
2026-09-18 09:51:32 +00:00
weichen
f38e1d5ee6
docs(ops): 释放集成槽位(user-manual 冒烟 PASS)
2026-09-18 09:51:10 +00:00
weichen
6c2fbc45a3
merge: feature/user-manual
2026-09-18 09:49:04 +00:00
weichen
f746a59862
docs(ops): 占用集成槽位(feature/user-manual 合入 dev)
2026-09-18 09:48:13 +00:00
weichen
f6f34b87cb
merge: docs/wave7-roadmap-orchestration
2026-09-18 04:43:32 +00:00
weichen and Cursor
60120b7977
docs(test): archive Wave 7 orchestration confirmation report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:43:19 +00:00
weichen and Cursor
e64bf5ca8b
docs(ops): mark Wave 0-7 done and flag Control Center conflict
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:22:22 +00:00
weichen and Cursor
a42e7902d7
docs(remediation): mark Wave 7 done and link orchestration record
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:21:56 +00:00
weichen and Cursor
7d8029978e
docs(ops): record Wave 7 roadmap orchestration confirmations
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:21:37 +00:00
weichen
a88ed85cf3
merge: docs/wave6-doc-drift
2026-09-18 04:13:48 +00:00
weichen and Cursor
4d7b1b5d25
docs(ops): close Wave 6 doc-drift D-1~D-6 and update SSOT
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:13:29 +00:00
weichen and Cursor
28e1fa2e4b
docs(project): align remaining-blocker section with gap-matrix production_ready=yes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:11:15 +00:00
weichen and Cursor
6b70d28b2e
docs(backlog): sync D3/D7 status with FEATURE-MATRIX
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:11:15 +00:00
weichen and Cursor
447b830ff5
docs(ops): backfill closure note on intent dual-tab handoff
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:11:15 +00:00
weichen and Cursor
8e17814cea
docs(adr): accept modular-monolith-decoupling ADR (Phase 1/2 landed)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:11:15 +00:00
weichen and Cursor
eee392d93d
docs(ops): archive completed PU8/W4 U9-U12 short-term tasks
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:10:53 +00:00
weichen and Cursor
ca0d334d57
docs(ops): flip PU8 U9-U12 contracts to status done
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:10:48 +00:00
weichen
688d9d30eb
docs(user-manual): 新增系统使用说明书(33 张 dev 真实截图 + md/html/pdf/docx 四格式)
2026-09-18 04:08:49 +00:00
weichen
2ce2625c94
merge: fix/wave5-deadcode-decisions
2026-09-18 04:02:26 +00:00
weichen and Cursor
60b17c03ab
docs(ops): close Wave5 deadcode decisions
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:19 +00:00
weichen and Cursor
2e14b3563c
fix(web): remove dead notification/workflow/settings components and orphaned APIs (X-5)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
da62c49952
docs(sysadmin): annotate unwired system_settings keys as phase-2 backlog (X-4)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
527e6daa99
docs(swboot): mark 00048 tables deferred to SWBOOT-10 (X-3)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
6c61a5bc37
docs(ctxmgr): seal SEMANTIC_SUMMARY_REPLACE with decision link (X-2)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
a41836dec0
fix(intent,sysadmin): delete dead SEMANTIC_FALLBACK_ENABLED flag (X-1)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen and Cursor
e0f6d5991c
docs(ops): plan Wave5 deadcode decisions (X-1~X-5)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 04:02:18 +00:00
weichen
a12c94700f
merge: fix/wave4-hardening-r1-r8 (slot release)
2026-09-18 03:47:59 +00:00
weichen and Cursor
e30ae4b96b
docs(ops): 释放 Wave4 集成槽位为 idle
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:47:59 +00:00
weichen
c4db565c40
merge: fix/wave4-hardening-r1-r8
...
Wave 4 隐患加固 R-1~R-8 合入本地 dev。
2026-09-18 03:47:46 +00:00
weichen and Cursor
e4c53a4ccd
docs(ops): Wave4 R-1~R-8 收口
...
归档 test-report 与 assets;CURRENT/remediation 标 Wave 4 done;勾选跨用户会话挂靠负例。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:47:46 +00:00
weichen and Cursor
e8d2d86542
test(docrevision): hydrate 负例写入类型错误 JSONB 并先落 blob
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:46:22 +00:00
weichen and Cursor
c1ea8f156c
fix(server): 清除 NewSession ProjectID=1 占位以免误触发项目鉴权
...
非项目会话创建时 ProjectID 归零,避免跨用户负例在 PG 上被 ERR_FORBIDDEN 误挡。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:46:21 +00:00
weichen and Cursor
4473a2ae10
test(web): 补 401 fail-fast、单帧容错、abortAllSessions 单测
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
be9b855783
fix(web): 登出主动 abort 所有会话在途流(R-8)
...
新增 abortAllSessions;logout 先中止全会话再清 session。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
21049607f4
fix(web): SSE 重连 401/404 fail-fast,单帧解析容错(R-7)
...
TaskRunHttpError 携带 status;非法 JSON 帧跳过并保留 seq。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
ce7d1b8ac5
fix(server): 后台 ticker 纳入 Shutdown;vault Drain 告警;bizdev 心跳超时(R-6)
...
reminder/vault 可停止;Drain 失败 slog.Warn;心跳/释放 lease 使用 10s 超时。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
58b69a2b08
fix(docrevision): pg_store JSONB 反序列化失败显式报错(R-5)
...
hydrateDocLocked 损坏字段不再静默零值化;补 PG 负例测试。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
e25a197410
fix(ctxmgr): memTurns 改为实例作用域并加 TTL/容量淘汰(R-4)
...
消除跨 ContextManager 实例共享;超过容量时淘汰 2h 陈旧回合。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
207e26241c
fix(events): dispatcher Handlers 读路径加 RWMutex(R-3)
...
Register 写锁不变;shadowScan/handle 读路径 RLock,消除导出字段无锁读隐患。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:44:08 +00:00
weichen and Cursor
9038c65329
fix: 补齐 rows.Err() 检查(R-2,其余包)
...
覆盖 kb/storage/projectworkflow/docgov/freedoc 与两个 document CLI。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:40:24 +00:00
weichen and Cursor
b53a97b36d
fix(ctxmgr): 补齐 rows.Err() 检查(R-2,ctxmgr 包)
...
A 类硬失败返回;manager 降级读路径用 slog.Warn 保持既有容忍语义。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:40:24 +00:00
weichen and Cursor
ba1fc71f16
test(server): 跨用户会话挂靠负例测试(PG + 内存双实现)
...
覆盖 chat / chat/stream / chat/sessions 三条路径;受害者续用不受影响。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:39:08 +00:00
weichen and Cursor
a805a6bfd7
fix(server): chat/sessions upsert 与任务创建强制取 principal(R-1b)
...
upsert 忽略客户端自报 user_id;EnsureChatSessionOwned 拒绝跨用户挂靠。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:39:08 +00:00
weichen and Cursor
ecdf1fc833
fix(server): getOrCreateSession 增加会话归属校验(R-1a)
...
调用方传入 callerUserID;持久层与内存会话归属不匹配时返回 SESSION_FORBIDDEN;覆盖 NewSession 默认 UserID=1 占位。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:39:08 +00:00
weichen and Cursor
426af51365
fix(ctxmgr): EnsureChatSession 归属 COALESCE 改为已有值优先(R-1c)
...
防止跨用户通过 upsert/消息落库覆盖已绑定的 chat_sessions.user_id;新增 EnsureChatSessionOwned。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:39:08 +00:00
weichen
32932e468e
merge: fix/wave3-test-debt-blindspots
2026-09-18 03:02:59 +00:00
weichen and Cursor
2ebf6adb2d
docs(ops): close Wave 3 test-debt-blindspots (S-1/S-2/S-4/S-5)
...
Archive isolated PG reconcile evidence, mark gap-matrix debt closed, and
release the integration slot for Wave 4 hardening.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:02:59 +00:00
weichen and Cursor
17f430b267
fix(web): reuse projectSettingsError envelope across API clients
...
Prefer error_code when present and route projectMembers/freeformDoc/
taskRuns/chatSessions failures through the shared structured parser.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:02:06 +00:00
weichen and Cursor
3b4c9cfddf
test(web): add npm scripts for all e2e specs; retire redundant revision smoke
...
Eliminate DOCREV_E2E_BASE_URL dual gating by deleting the one-assert smoke
spec covered by document-revision-runtime UI-10, and expose per-spec scripts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:02:06 +00:00
weichen and Cursor
a99e3f725f
test(server,app): delete dead resume-workspace test; clarify plan_owner redirect
...
Remove the skipped client work_dir resume coverage that targeted a deleted
entry point, and document why the real-PI stop-gate stays redirected to
internal/server to avoid an import cycle.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 03:02:06 +00:00
weichen and Cursor
c6e7656f8e
docs(ops): sync Wave 2 closeout checklist into dev lineage
...
Carry the done checklist and test-report link that lagged the Wave 2
merge tip so Wave 3 starts from a consistent ops state.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:59:03 +00:00
weichen
423f7e7413
merge: fix/wave2-config-flag-align
2026-09-18 02:29:07 +00:00
weichen and Cursor
24c0e5b16a
docs(ops): close Wave 2 config flag alignment (E-3/E-4/E-6/E-7/E-9)
...
Archive three-env compose/env smoke evidence, mark remediation Wave 2
done, and release the integration slot for Wave 3.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:29:07 +00:00
weichen and Cursor
8d97dd6b18
test(config): add compose flag declaration regression tests
...
Pin E-3/E-4/E-6 compose declarations so dead runner config and missing
flag wiring cannot silently regress.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:26:47 +00:00
weichen and Cursor
55a539c551
chore(infra): drop CURSOR_RUNNER_PORT from env examples
...
Placeholder cursor-agent service is gone; keep CURSOR_API_KEY/MODEL/BIN
for the local cursor-cli subprocess backend.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:26:47 +00:00
weichen and Cursor
e0aabecf59
fix(infra): declare MULTI_INTENT_PLAN_TIER and U9-U12 flags in all compose envs
...
Also declare SEMANTIC_SUMMARY_SHADOW and PI_CHANGE_REPORT_NARRATIVE on
test/main, remove dead CURSOR_RUNNER_URL/cursor-agent, and set main
SEED_DEMO_USERS=false. Defaults stay legacy/false (no behavior change).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:26:47 +00:00
weichen and Cursor
07fc0ecf55
fix(intent): fail closed INTENT_V2_DECISION_TIER unknown values to none
...
Align illegal-tier fallback with PlanTier's conservative policy so
unrecognized values never silently enable V2 query routing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-18 02:26:47 +00:00
weichen
e35f106162
merge: Wave 1 docs closeout
2026-09-17 17:08:12 +00:00
weichen and Cursor
c61963633e
docs(test): archive Wave 1 main env fix acceptance evidence
...
Close short-term task, mark remediation Wave 1 done, release integration
slot, and record main env=main / schema 52 / modes-off smoke evidence.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:08:12 +00:00
weichen
805aa1259f
merge: Wave 1 events secrets unblock
2026-09-17 17:06:24 +00:00
weichen and Cursor
fb4a4f263d
fix(infra): supply main events secrets so ENV=main can boot
...
validateProductionSecrets rejected events under ENV=main without
KB/admin passwords; depends_on events healthy then blocked app forever.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:06:24 +00:00
weichen
27ccd12116
merge: fix/wave1-main-env-fix
...
Wave 1: align main app/events ENV=main, app depends_on events healthy,
fail-closed empty-Env chat import.
2026-09-17 17:03:54 +00:00
weichen and Cursor
053bfe234b
docs(ops): occupy integration slot for Wave 1 main env merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:03:54 +00:00
weichen and Cursor
e286fca71b
fix(server): fail-closed chat import when Env is empty
...
Drop Env==\"\" as a dev alias; pin compose app/events ENV alignment and
main depends_on events with unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:03:08 +00:00
weichen and Cursor
db964da21a
fix(infra): align main app ENV with events and gate on events health
...
Set app ENV=main (was prod) and require events service_healthy before
app starts so goose migrations finish before app queries new columns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:03:08 +00:00
weichen and Cursor
5ad2585ed7
docs(ops): claim Wave 1 main env fix branch
...
Register short-term task and CURRENT mutex=infra for E-1/E-2/E-5.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 17:03:08 +00:00
weichen
af0912b0b3
merge: Wave 0 SSE evidence asset
2026-09-17 16:49:48 +00:00
weichen and Cursor
7aca97e9b3
docs(test): store Wave 0 SSE evidence as txt (log gitignored)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:49:48 +00:00
weichen
4bccedb4ad
merge: docs Wave 0 P0 closeout
2026-09-17 16:49:32 +00:00
weichen and Cursor
40a9c1b285
docs(test): archive Wave 0 P0 bug-fix acceptance evidence
...
Close short-term task, mark remediation Wave 0 done, release integration
slot, and attach real pi-agent SSE heartbeat log plus suite results.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:49:32 +00:00
weichen
810fb96e76
merge: fix/wave0-p0-sse-chat-cache-bugs
...
Wave 0 P0: SSE heartbeat/deadline, run/stream 400+pre-flush start,
chat window cache key/LRU, IndexedDB restore merge.
2026-09-17 16:43:01 +00:00
weichen and Cursor
2620d808c4
fix(web): unify chat window cache keys and merge IndexedDB restore
...
Pass userId on every saveSessionWindowCache write, LRU-evict full cache
keys, and applyRestoredFileRaw so mount restore cannot drop newer deliverables.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:42:56 +00:00
weichen and Cursor
54244ed97a
fix(server): extend SSE write deadline for chat and run/stream
...
Wire heartbeat + SetWriteDeadline into handleChatStream and
handleRunTaskStream; reject malformed run/stream JSON with 400; move
CreateAndStart/Subscribe before SSE Flush so failures stay JSON errors.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:42:56 +00:00
weichen and Cursor
64efaa32c8
docs(ops): register system health audit and claim Wave 0 fix branch
...
Archive the 2026-09-17 health-check audit/remediation and short-term Wave 0
task so P0 SSE/cache fixes can proceed under mutex chat+web.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 16:42:55 +00:00
weichen
dfa2d2d4bd
merge: chore/release-s1c-integration-slot
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-17 15:52:53 +00:00
weichen and Cursor
1dd1a8d23f
docs(ops): release integration slot after S1-continued smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 15:52:53 +00:00
weichen
e58c707df6
merge: feature/rdev-template-depth-s1-continued
...
S1 continued: deepen remaining 46 rdev templates, lint 60/60, real-PI samples, instance_no fix.
2026-09-17 15:51:41 +00:00
weichen and Cursor
36261e9d13
docs(ops): claim merge slot and archive S1-continued short-term
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 15:51:30 +00:00
weichen and Cursor
9b35c1abd1
docs(test): archive S1-continued rdev template depth report and sync matrix
...
Record real-PI samples for review and verification templates, mark S1 continued done across writing-spec/backlog/FEATURE-MATRIX/CURRENT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 15:51:09 +00:00
weichen and Cursor
12608c21ef
fix(projectinstance): allocate next instance_no for planning drafts
...
Avoid unique (project_id, instance_no) collisions when saving a new
workflow plan after a completed main instance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:56:50 +00:00
weichen and Cursor
04243e64d8
feat(rdev-templates): deepen stage-10–13 transfer/validation templates (S1 batch 5)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:37:19 +00:00
weichen and Cursor
7c50128bd1
feat(rdev-templates): deepen stage-08 verification templates (S1 batch 4)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:37:18 +00:00
weichen and Cursor
05629721f0
feat(rdev-templates): deepen stage-06 software/inspection/list templates (S1 batch 3)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:37:18 +00:00
weichen and Cursor
1692a57175
feat(rdev-templates): deepen stage-06 hardware/process templates (S1 batch 2)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:37:18 +00:00
weichen and Cursor
8c37ac0cd5
feat(rdev-templates): deepen 6 review-record templates (S1 batch 1)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:37:03 +00:00
weichen and Cursor
535eb442b5
docs(ops): add short-term for rdev-template-depth-s1-continued
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:34:45 +00:00
weichen and Cursor
b800f9adf9
docs(ops): claim rdev-template-depth-s1-continued and open short-term
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:34:34 +00:00
weichen
f8c4a61922
merge: chore/archive-proposal-http-task
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-17 14:12:13 +00:00
weichen and Cursor
51d6d53ede
docs(ops): archive proposal-http short-term after closeout
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:12:13 +00:00
weichen
21fb95458a
merge: chore/closeout-claim-cleanup
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
2026-09-17 14:12:02 +00:00
weichen and Cursor
fc227f339c
docs(ops): clear closed feature worktree claims after closeout
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:12:02 +00:00
weichen and Cursor
dcc859ecb0
docs(test): archive proposal HTTP live evidence and release slot
...
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:11:23 +00:00
weichen
1f2fcd0727
merge: feature/docgov-modification-proposal-http
2026-09-17 14:08:06 +00:00
weichen and Cursor
c89a58e026
docs(ops): occupy integration slot for proposal-http merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:08:02 +00:00
weichen and Cursor
d01694b556
docs(ops): record author-only pilot and proposal-http task claim
...
Archive CAS evidence for workflow.allow_author_only_approval on dev,
mark proposal HTTP audit resolved, and claim the feature branch in CURRENT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:07:52 +00:00
weichen and Cursor
c0e7df5abf
feat(docgov): expose proposal HTTP and wire frontend decide flow
...
Add POST /api/v1/docgov/proposal for ProposeModification, harden decide
status mapping, and replace App pendingProposal local mock with real API calls.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 14:07:52 +00:00
weichen
bea70b064b
docs(control-center): strengthen agent integration spec — onboarding protocol, per-stage entry/exit criteria, decision quality bar, event cadence
2026-09-17 14:06:24 +00:00
weichen
b5bacee331
refactor(control-center): remove legacy engineering-dashboard, superseded by control-center
...
- delete cmd/engineering-dashboard, internal/engineeringdashboard, scripts/engineering-dashboard.sh
- archive old design doc to .doc/archive/design/ with deprecation banner
- FEATURE-MATRIX: mark old row removed, add removed to status contract
- system-design README: section 8 now points to Control Center SSOT
2026-09-17 14:00:38 +00:00
weichen and Cursor
ba92a8b3a5
docs(status): note author-only merged to dev in FEATURE-MATRIX
...
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:58:30 +00:00
weichen and Cursor
cbeefdb9ed
docs(ops): release integration slot after author-only merge smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:58:19 +00:00
weichen and Cursor
09a9921e87
merge: feature/document-author-only-plan
...
Close out document author_only U1–U6 into dev (default policy off).
Resolved CURRENT claim table and bizdev service conflicts with rdev prior-doc injection.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:57:12 +00:00
weichen and Cursor
4f1bb1f02d
docs(ops): archive author-only U1–U6 and close remediation DoD
...
Move short-term tasks to archive, update MATRIX/INDEX/CURRENT, and hand off merge to dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:55:17 +00:00
weichen and Cursor
472f845a88
docs(test): track U6 API evidence as txt (logs gitignored)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:49:12 +00:00
weichen and Cursor
7b09da1f99
docs(ops): close document-author-only U6 and note proposal HTTP gap
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
58b785e110
docs(test): add document-author-only U6 closed-loop report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
cf7f55a1b9
test(web): cover author_only action visibility and docgov client shapes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
916931f5d8
feat(web): surface duty_policy author_only badge end-to-end
...
Propagate summary.duty_policy into deliverables/AST and show 编制人兼任 on the action bar.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
b87fc5007f
feat(web): call real docgov lifecycle APIs from action handlers
...
Replace local lifecycleState mocks; add handleRejectApprove; use holdsDocDuty for chat shortcuts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
aed7f3f9b5
fix(web): gate docgov actions by duty id, not folded role
...
author_only A/A/A users were stuck as author-only under resolveCurrentDocRole priority.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
3c6342bfee
feat(web): add docgov claim/submit/review/approve API client
...
Wire frontend to existing lifecycle HTTP so approval actions can leave local mock state.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:48:59 +00:00
weichen and Cursor
8658a135ab
docs(ops): claim and close document-author-only U4 and U5
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
7ccb821d6c
test(web): cover author_only duty resolution and validation
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
72686d13cb
feat(web): add per-document author_only toggle in project settings
...
Show a single author picker when兼任 is enabled, respect the system
capability flag, and surface author_only docs in activation preview.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
be128602e4
feat(web): resolve client duty_policy for author_only plans
...
Align TypeScript types and projectSettingsDuties with backend
ResolveDocTaskDuty so author_only no longer fails as partial.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
2c012ee59f
test: cover author_only access matrix and duty_policy audits
...
Prove A can run the full action chain and outsiders stay denied; assert
audit Details carry duty_policy on all five transitions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
3f7358d454
feat(docgov): record duty_policy on lifecycle audit details
...
Surface the document duty mode on submit/review/approve transitions for
consistent logs under author_only.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen and Cursor
f02600d75c
fix(projectinstance): resolve author_only duties in ABAC gates
...
Use ResolveDocTaskDuty so normalized author-only plans (author ID only)
are treated as full A/A/A for access, stage visibility, and readiness.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 13:15:05 +00:00
weichen
87bcf05043
feat(control-center): allow LAN bind with mandatory fixed console token (serve-lan)
2026-09-17 13:11:52 +00:00
weichen
6714081b12
docs(control-center): P6 design spec, agent integration guide, acceptance report
...
Also fixes ListTasks ?q= filter 500 (duplicate $%d placeholder rendered as
%!d(MISSING)) found in P6 smoke; adds TestTaskListQueryFilter regression.
2026-09-17 12:59:12 +00:00
weichen
07a8e126fc
feat(control-center): P5 scheduled repo audits — deterministic checks, LLM review, findings UI
2026-09-17 12:39:46 +00:00
weichen
f79956c498
feat(control-center): P4 .doc importer, agent CLI, task doc export
...
- internal/controlcenter/importer: scan .doc/ops/{short-term,long-term}
and .doc/backlog for task docs, upsert cc_tasks keyed by slug; maps doc
status/stage, auto-creates the three plans, follows doc status only
while a task is planned/in_progress (terminal statuses never regress),
skips unchanged docs, and resolves cross-directory slug collisions by
fixed directory precedence with a warning
- cmd/control-center: import-docs subcommand (also runs at serve startup
and on the doc-sync ticker) plus the agent CLI: next / instruction /
claim / heartbeat / release / event / artifact / advance-request /
decision / report, thin net/http client, compact JSON output
- console API POST /api/v1/tasks/{id}/export-doc renders a task per
.doc/ops/templates/short-term-task.md into .doc/ops/short-term/, refuses
overwrite (409) and unsafe slugs, then backfills doc_path
- fix pre-existing TestAgentHasNoAdvanceRoute: SPA catch-all GET / makes
the mux answer 405 for unmatched POST paths; accept 404 or 405
- archtest allowlist: controlcenter/importer -> pipeline, store
2026-09-17 11:57:47 +00:00
weichen
b0095de398
feat(control-center): P3 web SPA — overview, stage kanban, task pipeline, decisions, docs search
...
- control-center/web: Vite+React+TS SPA (hash routing, token login via
localStorage, marked-lexer markdown rendering without raw HTML injection)
- pages: overview (stage x state matrix, SSE feed w/ 10s poll fallback),
8-lane kanban + task create, task detail stepper/pipeline/ops
(assign/advance/send-back/external-submit), decision inbox, docs browse
+ semantic/keyword/hybrid search, global stage settings, audit placeholder
- internal/controlcenter/webui: //go:embed dist, SPA fallback, index no-store;
dist committed so go build works without node
- server: GET / serves embedded SPA; pipeline view now includes artifact
content for console rendering
- archtest: allowlist controlcenter/server -> controlcenter/webui
2026-09-17 10:13:16 +00:00
weichen and Cursor
c6c07263c7
docs(ops): claim and close document-author-only U3
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
67b3b5e070
test: cover duty lock, heal/revoke skip, and instance duty adapter
...
Unit evidence for AE5a/AE5b filters; optional PG cases when
TEST_DATABASE_URL is set.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
750b904439
feat(app): wire projectinstance duties into bizdev
...
Composition-root adapter maps live instance DocTasks to bizdev's narrow
InstanceDutySource without crossing module boundaries.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
5b9b46ee8d
feat(bizdev): prefer instance-governed duties when generating docs
...
Inject InstanceDutySource, resolve governed bindings, lock duties after
create, and skip in-memory HealBinding overwrite for governed docs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
42a3b1e56c
feat(docduty): skip duty_locked rows in heal and revoke
...
Keep instance-governed A/A/A (or separated) bindings immune to project
default heal and member-slot revocation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
89484177ee
feat(docgov): lock document duties and project duty_policy
...
Add LockDocumentDuty for PG/memory and expose duty_policy on workflow
document summaries for later UI marking.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
7d3474816b
feat(db): add document_records duty_locked and duty_policy columns
...
Stamp instance-governed document duties at create time so heal/revoke can
skip locked rows without importing projectinstance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:59:38 +00:00
weichen and Cursor
748df016b2
docs(ops): release rdev merge slot, archive P0/P1 task, register S1续批
...
Also record the ad-hoc verification Path("") join pitfall as a low-severity
audit note so future sampling scripts fail closed instead of scanning bizdev/.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:52:24 +00:00
weichen and Cursor
7e6860f861
docs(ops): smoke phase for rdev merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:47:57 +00:00
weichen
68f63d3c30
merge: feature/rdev-template-depth
2026-09-17 09:47:49 +00:00
weichen
9bb4ec3665
merge: feature/rdev-core
2026-09-17 09:47:44 +00:00
weichen
63f1fa5f87
feat(control-center): P2 document vector store — ingestion, chunking, embedding, hybrid search
...
- internal/controlcenter/embed: OpenAI-compatible /embeddings client
(batch<=16, 30s timeout, 5xx/network retried once, 4xx not), Embedder
interface, deterministic offline Stub, pgvector literal formatting
- internal/controlcenter/docs: .doc/**/*.md sync into cc_documents with
sha256 diffing and vanished-file removal; YAML front matter -> jsonb,
title fallback, taxonomy from first .doc dir; heading-based chunking
with paragraph bisection over ~1800 est. tokens; chunk_hash idempotent
inserts (unchanged chunks keep embeddings); embedding failures degrade
to NULL vectors without failing the sync; IndexArtifact for
cc_stage_artifacts; StartPeriodic ticker (CC_DOC_SYNC_SECONDS)
- server: GET /api/v1/docs (taxonomy/q filters), /api/v1/docs/{id},
/api/v1/docs/search (semantic|keyword|hybrid, ts_rank+ILIKE keyword
fallback, 0.6/0.4 max-normalized fusion, degraded flag when embedding
unavailable); async artifact indexing hooked into agent artifacts and
external-submit handlers
- archtest module-boundaries allowlist updated for new packages
2026-09-17 09:47:29 +00:00
weichen and Cursor
7f30a5049e
docs(ops): occupy slot to merge rdev-core and template-depth
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:47:14 +00:00
weichen and Cursor
4e271c54bb
docs(test): archive rdev template-depth S0/S1 real-PI evidence
...
Record true PI samples (intake + rd_design_input_spec), update FEATURE-MATRIX
remaining work, backlog S1续批/S2/S3, and allowlist engineeringdashboard for
archtest green on this branch lineage.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:47:05 +00:00
weichen and Cursor
ca7b7da237
docs(ops): claim rdev-template-depth short-term and CURRENT mutex
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:52 +00:00
weichen and Cursor
93ad80b9a7
feat(rdev): deepen phase 01-05 templates with ISO 13485 sections
...
Replace generic placeholders for 14 rd_* docs, add writing-norm doc and
allowlist lint so structure and per-section instructions stay enforceable.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:37 +00:00
weichen and Cursor
dc3aef4607
fix(squad): inject rdev_leader InstructionsFile for DHF final review
...
Prefer AgentSpec.InstructionsFile when building AGENTS.md so rd_* leader
steps no longer fall back to business-tone leader.md.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:37 +00:00
weichen and Cursor
aba38ef7a9
fix(engineering-dashboard): drop startup token for personal local use
...
Rely on loopback bind plus Host/Origin checks; open http://127.0.0.1:8787/
without a query token after SSH tunnel.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:26 +00:00
weichen and Cursor
37b1aaa3ae
feat(rdev): add medical design-control workflow (13 stages / 60 docs)
...
Seed rdev.v2.json, rd_ templates, catalog policy (order 40), squad
kind orchestration, and hard precheck requiring completed main (CDO).
Includes StageKey dynamicization from P0 and docs for P2–P4 skeleton.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:26 +00:00
weichen and Cursor
a39823da38
fix(docgov): pass dynamic StageKey into document ledger create
...
Stop hardcoding V0.5_feasibility when creating docgov records; prefer
frozen-instance StageKey from TaskRunRequest with main-task fallback.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:46:09 +00:00
weichen and Cursor
c03d0a3a6e
docs(ops): claim and close document-author-only U2
...
Record short-term evidence and mark the CURRENT claim done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
68dbe8a6b2
test(projectinstance): cover author_only planning and activation
...
Verify resolve/normalize/hash stability, policy gating, stale token
rejection, and HTTP error mapping for the new duty policy path.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
1651c30e90
feat(api): map author-only policy errors on workflow settings
...
Return 403/409/503 for disabled, changed, and unavailable governance
policy conditions during plan save and activation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
0b67a901a9
feat(app): wire sysadmin author-only policy into projectinstance
...
Adapt sysadmin.AuthorOnlyPolicySource at the composition root so
projectinstance stays within module-boundary allowlists.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
a2aa3d41bd
feat(projectinstance): support per-doc author_only duty policy
...
Add ResolveDocTaskDuty, require the system policy on save/preview,
lock the policy row during activation, and derive A/A/A assignments.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
ba57c9a4de
feat(db): bind activation tokens to author-only policy revision
...
Prevent preview tokens from activating after the governance switch
revision changes by storing the revision on each confirmation token.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:39:59 +00:00
weichen and Cursor
3b6def256e
docs(ops): claim and close document-author-only U1
...
Record short-term task evidence and mark the CURRENT claim done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:15:15 +00:00
weichen and Cursor
430a47ad8c
test(sysadmin): cover author-only CAS, audit rollback, and HTTP gates
...
Verify concurrent revision conflicts, null/string rejection, plain-user
denials, and PG lock/read paths for the new policy key.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:15:15 +00:00
weichen and Cursor
a2cbaf1e33
feat(sysadmin): CAS author-only policy with transactional audit
...
Register the workflow total switch, require expected_revision for
updates, and expose AuthorOnlyPolicySource for activation locking.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:15:15 +00:00
weichen and Cursor
b4b300bb8a
feat(db): add author-only approval policy revision and audit
...
Seed workflow.allow_author_only_approval closed, add monotonic
revision on system_settings, and a narrow policy audit table.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:15:15 +00:00
weichen
b11cc64845
feat(control-center): P1 pipeline core — stage machine, decisions, artifacts, leases, SSE
...
- pipeline: 8-stage order, NextStage (testing skippable), gate pure
functions (agents may never advance; only in_progress->awaiting_review)
- tasks: domain layer over cc_* tables — CRUD, claim/heartbeat/release
leases, advance-request, decisions with strict suggestion validation,
stage transitions, external submit, stage settings, overview, lease reaping
- server: agent + console routes, SSE broker broadcasting every event
insert, 60s lease reaper goroutine, 1MB body limit, domain error mapping
- archtest: allowlist controlcenter/* and engineeringdashboard packages
2026-09-17 09:13:36 +00:00
weichen and Cursor
7a590670e9
docs(workflow): approve R9/R10 and harden heal acceptance
...
Mark lifecycle boundaries reviewed; require HealProjectDocuments
projection stability across list/generate/member triggers, and
explicitly exclude emergency stop from the global switch scope.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 09:06:51 +00:00
weichen
f6c9638e60
docs(workflow): plan per-document author-only approval policy
2026-09-17 08:49:46 +00:00
weichen
2be43efddd
feat(control-center): P0 skeleton — standalone server, pgvector compose, goose schema, token auth
2026-09-17 08:38:50 +00:00
weichen
cf805a73a7
docs(ops): claim control-center-server task and register in CURRENT
2026-09-17 08:33:10 +00:00
weichen
adb48c86a5
merge: feature/initial-load-perf-u2 (docs acceptance)
2026-09-17 08:25:43 +00:00
weichen and Cursor
ae219955ab
docs(test): archive initial-load U2 acceptance evidence
...
Record curl/browser before-after metrics, mark U2 done, and release the
integration slot while leaving U1/U3–U7 open.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:25:43 +00:00
weichen
bc01781438
merge: feature/initial-load-perf-u2
2026-09-17 08:18:18 +00:00
weichen and Cursor
9335c4c90c
feat(server): negotiate static compression and fix asset SPA fallback
...
Serve precompressed .br/.gz with Cache-Control and Vary, and return 404
for missing /assets and /fonts instead of index.html.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:11 +00:00
weichen and Cursor
3dbd9770b5
feat(web): precompress dist assets to .br and .gz at build time
...
Use Node zlib in a post-vite step so the Go server can serve negotiated
variants without per-request compression cost.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:02 +00:00
weichen and Cursor
dc769686a9
feat(web): self-host Inter and JetBrains Mono for login shell
...
Remove blocking Google Fonts stylesheet so the login form is not gated
on an external CSS request; keep unicode-range subsets and OFL license.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:18:02 +00:00
weichen
59e6fade72
merge: feature/initial-load-performance-plan
2026-09-17 08:08:23 +00:00
weichen and Cursor
3445d386ea
docs(perf): archive initial-load diagnosis and remediation plan
...
Capture audit evidence, performance baseline, and U1–U7 remediation plan
without business code changes so the work can land on dev before U2.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 08:08:20 +00:00
weichen and Cursor
d0ef6961b4
docs(ops): release slot after engineering-dashboard CSP fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:40:28 +00:00
weichen
0a1302eab0
merge: fix/engineering-dashboard-csp-token
2026-09-17 07:40:27 +00:00
weichen and Cursor
2319138800
docs(ops): occupy slot to merge engineering-dashboard CSP fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:40:27 +00:00
weichen and Cursor
7fd7fb8a2a
fix(engineering-dashboard): read token from URL/meta under CSP
...
Remove the inline token script blocked by script-src 'self', so the
live page no longer calls the snapshot API with token=undefined.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:39:21 +00:00
weichen and Cursor
ce2a561d4d
docs(ops): release slot after engineering-dashboard merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:11:18 +00:00
weichen and Cursor
f47161131c
merge: feature/engineering-dashboard
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:11:17 +00:00
weichen and Cursor
fd1659a416
docs(ops): occupy slot to merge engineering-dashboard
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:10:36 +00:00
weichen and Cursor
7e05473cf5
docs(engineering-dashboard): closeout report matrix and launcher
...
Add test report, FEATURE-MATRIX row, archive the short-term task,
mark CURRENT claim done, and ship the thin serve/export script.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:10:04 +00:00
weichen and Cursor
e251ce325a
feat(engineering-dashboard): U6-U7 serve UI and offline export
...
Add loopback-only HTTP server with startup token, Host/Origin/CSP
guards, embedded live UI, CLI serve/export, and safe single-file HTML.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:08:27 +00:00
weichen
dd887bb08f
merge: feature/system-admin-console closeout docs
2026-09-17 07:08:07 +00:00
weichen
62d6241348
docs(test): system admin console acceptance report and closeout
...
- test report: dev smoke (schema 48->49), 4 admin endpoints, settings
write-read roundtrip, anon 401 / unknown-key 400 / non-admin 403
- task status done; FEATURE-MATRIX row done; release integration slot;
env snapshot dev schema 49
2026-09-17 07:08:07 +00:00
weichen and Cursor
79ee72267c
feat(engineering-dashboard): U5 reconcile and snapshot publisher
...
Merge docs/git/runtime facts into an immutable snapshot with conflict
retention, last-known stale handling, and acceptance-sample coverage.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:04:46 +00:00
weichen and Cursor
a07ba1065b
feat(engineering-dashboard): U2-U4 docs git and runtime collectors
...
Add allowlisted markdown indexing, read-only git plumbing via injected
runners, and docker/readiness collection with path and loopback guards.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 07:03:32 +00:00
weichen
dc7c31edc9
merge: feature/system-admin-console
2026-09-17 06:59:21 +00:00
weichen
0088ae7d44
docs(ops): occupy integration slot for system-admin-console merge
2026-09-17 06:59:21 +00:00
weichen and Cursor
e46ec0e4e7
feat(engineering-dashboard): U1 freeze snapshot and facet model
...
Define versioned Snapshot/Fact/Conflict/TaskState contracts with
independent plan/git/verification/deployment axes and acceptance fixtures.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:59:02 +00:00
weichen
e7fa6fb023
docs(status): add system admin console row to FEATURE-MATRIX
2026-09-17 06:58:08 +00:00
weichen
e310f06504
docs(ops): register system-admin-console task and claim
2026-09-17 06:57:13 +00:00
weichen
0eaca61545
feat(web): full-screen system admin console, absorb AdminSettingsModal
...
- top-level view switch workbench|admin in App.tsx (no router; hash #turn
anchors untouched)
- new admin/console/AdminConsoleView with left group nav in the existing
token/inline-style idiom, plus 8 self-fetching sections: overview, kb,
features, settings, workflows, roles, users, docs
- absorb the six AdminSettingsModal tabs into sections and delete the modal
- new api/systemAdmin.ts + types for /api/v1/admin/system/* endpoints
- playwright smoke spec web/e2e/admin-console.spec.ts (skip by default)
2026-09-17 06:57:03 +00:00
weichen
f1404d5bd2
feat(sysadmin): add system admin aggregation API and system_settings store
...
- new internal/sysadmin package (overview/kb/features/settings) with small
port interfaces; business packages stay unaware of sysadmin
- new routes /api/v1/admin/system/{overview,kb,features,settings} guarded
by requireSystemAdmin
- goose 00049: system_settings table (key/jsonb value, updated_by/at)
- SettingSpec whitelist registry with DB > env > default precedence
- register sysadmin in module-boundaries.yaml (archtest rules)
2026-09-17 06:56:46 +00:00
weichen and Cursor
fa5e10542a
docs(ops): claim engineering-dashboard implementation
...
Register CURRENT mutex and mark short-term in_progress on the
feature/engineering-dashboard worktree before coding.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:56:20 +00:00
weichen and Cursor
12884a1710
docs(ops): release slot after engineering-dashboard plan merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:44 +00:00
weichen
c336de59b8
merge: feature/project-control-center-plan
2026-09-17 06:55:44 +00:00
weichen and Cursor
44fa8d5059
docs(ops): occupy slot to merge engineering-dashboard plan
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:44 +00:00
weichen and Cursor
ed4a49bfa6
docs(engineering-dashboard): add personal control center design plan
...
Freeze the independent local readonly engineering-dashboard design,
short-term task entry, and system-design index before implementation.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:55:32 +00:00
weichen
173a512c28
merge: docs/promote-null-fk-to-test-closeout
2026-09-17 06:20:40 +00:00
weichen and Cursor
ef5f0fdef9
docs(ops): close null-fk promote to test at rc-v1.0.0-beta.4
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:20:40 +00:00
weichen
7f0f8a1ca2
merge: feature/promote-null-fk-to-test
2026-09-17 06:19:57 +00:00
weichen and Cursor
fa8598e89b
docs(ops): occupy slot to promote optional-duty null FK into test
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:19:57 +00:00
weichen
e78b6c1470
merge: docs/docgov-optional-duty-null-fk-report
2026-09-17 06:12:56 +00:00
weichen and Cursor
c9fd8a4d7f
docs(test): archive optional-duty null FK fix report and close task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:12:56 +00:00
weichen
e488d10840
merge: fix/docgov-optional-duty-null-fk
2026-09-17 06:08:52 +00:00
weichen and Cursor
4606119581
docs(ops): occupy integration slot for optional-duty null FK smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:52 +00:00
weichen and Cursor
149dec8993
docs(ops): claim and audit docgov optional-duty null FK fix
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen and Cursor
fa2407f92c
fix(stream): classify document ledger FK failures as DOC_LEDGER_ERROR
...
Avoid masking persist document ledger / 23503 errors as INTERNAL_ERROR.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen and Cursor
c2efcdbacd
fix(docgov): map zero duty ids to NULL on CreateOrGetDocument
...
Optional reviewer/approver duties leave UserID=0; writing 0 into
document_records FK columns failed with SQLSTATE 23503. Align create
path with docduty nullIfZero and surface ensureUser failures in logs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 06:08:35 +00:00
weichen
feefc322a7
merge: feature/promote-dev-to-test-closeout
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 1s
CI / web (push) Failing after 0s
2026-09-17 05:05:26 +00:00
weichen and Cursor
3978e6b461
docs(ops): record test promotion to rc-v1.0.0-beta.3
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 05:05:26 +00:00
weichen
4fce16c91b
merge: feature/promote-dev-to-test-2026-09-17
2026-09-17 05:03:04 +00:00
weichen and Cursor
151953a520
docs(ops): occupy slot to promote local dev into test
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 05:03:04 +00:00
weichen
46a0fb2d5a
merge: feature/w7-d7-data-inventory
2026-09-17 04:58:52 +00:00
weichen and Cursor
dbc9b73278
docs(ops): record W7 D7 chat data inventory without deletion
...
Keep the D7 matrix row deferred until compliance signoff; no gap-matrix blocker.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:58:52 +00:00
weichen
cb4fbb69a6
merge: feature/w6-fav-subscriber-shadow
2026-09-17 04:26:18 +00:00
weichen and Cursor
58c04ff6c5
docs(ops): close W6 FAV shadow and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:26:18 +00:00
weichen and Cursor
9c0954ba6e
docs(ops): record W6 FAV subscriber shadow evidence
...
Keep the FAV matrix row partial because live staging was not opened.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:25:17 +00:00
weichen and Cursor
2c1d040ccf
feat(events): add FAV subscriber shadow without live writes
...
ObserveShadow computes intended outcome only and refuses FAV_DEGRADED_READ; HandleLease and Register(fav) stay fail-closed.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:25:17 +00:00
weichen
49d901e964
merge: feature/w5a-software-bootstrap-ui-pi
2026-09-17 04:12:38 +00:00
weichen and Cursor
7c1ae7ec38
docs(ops): close W5a and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:12:38 +00:00
weichen and Cursor
eee42d1d16
feat(workflow-design): catalog-driven software create wizard and docs_only PI
...
Software projects mount only bootstrap/delivery keys and skip the medical
seven-template clone. SWBOOT-10 stays a fail-closed stub.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 04:11:03 +00:00
weichen
f5a80fd653
merge: feature/w4-u9-segment-live
2026-09-17 03:15:35 +00:00
weichen and Cursor
1c1a4bb683
docs(ops): close W4 U9–U12 and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 03:15:35 +00:00
weichen and Cursor
43555e5d08
feat(intent-plan): wire U9 PI segment proposer and per-flag U10–U12 evidence
...
Rules that already split skip the LLM. Independent flags stay off by
default and do not raise MULTI_INTENT_PLAN_TIER.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 03:14:57 +00:00
weichen
9ac1eb178e
merge: feature/w3-pi-change-report-narrative-live
2026-09-17 03:03:20 +00:00
weichen and Cursor
2ba6b3ec74
docs(ops): close W3 narrative live and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 03:03:20 +00:00
weichen and Cursor
47a740a9c4
feat(docgov): wire no-tool PI change-report narrative
...
Flag-on CreateAgentCandidate asks the product PI runner for
change_report_narrative_v1 after the real digest is known; timeout
and malformed payloads stay full fallback. Default flag remains off.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 03:02:11 +00:00
weichen
0bc98c6da4
merge: feature/w2-semantic-summary-shadow-live
2026-09-17 02:51:55 +00:00
weichen and Cursor
886449958f
feat(chat): wire no-tool PI semantic summary shadow
...
Enable SEMANTIC_SUMMARY_SHADOW to call the product PI runner on authorized messages only, keep REPLACE unwired, and record MiniMax evidence for the D3 matrix close.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:51:55 +00:00
weichen
982dc48345
merge: chore/leftover-hygiene-2026-09-17
2026-09-17 02:43:44 +00:00
weichen and Cursor
4b509efefc
docs(ops): align leftover branches and contracts with local dev
...
Prune merged worktrees/refs and correct SWBOOT/PU scaffolding docs so W2–W7 start from git truth, without merging frozen FAV/herdr/project143 branches.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:43:44 +00:00
weichen
80ef2f61a0
merge: docs/archive-kb-host-auth-short-term
2026-09-17 02:06:19 +00:00
weichen and Cursor
f2c2e34f0b
docs(ops): archive completed kb-host-auth short-term task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:06:19 +00:00
weichen
392b3bc1c9
merge: docs close kb-host-auth
2026-09-17 02:06:09 +00:00
weichen and Cursor
6f52896dad
docs(ops): close kb-host-auth task and release integration slot
...
Record rebuild smoke: kb_ready=true and redacted online DSN in container.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:06:09 +00:00
weichen
5182da20ed
merge: fix/kb-host-auth-layered-load (no Fatalf)
2026-09-17 02:04:51 +00:00
weichen and Cursor
6fa933ac27
fix(kb): return offline client instead of Fatalf under require-online
...
Library must not abort the process; E2E callers use EnsureOnline/t.Fatal
so ambient RUN_PI_E2E no longer kills short server tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:04:51 +00:00
weichen
cdd3f8c559
merge: fix/kb-host-auth-layered-load
2026-09-17 02:03:21 +00:00
weichen and Cursor
abbb461780
docs(ops): claim integration slot for kb-host-auth merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:21 +00:00
weichen and Cursor
c977e8247a
docs(test): record KB host-auth layered load fix and acceptance
...
Short-term task, CURRENT claim, and unit/live boolean test report.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:07 +00:00
weichen and Cursor
e782400736
fix(api): expose kb_ready and gate E2E/nightly on shared KB
...
Health reports kb_ready; PI E2E uses layered Load + require-online;
nightly preflights SELECT 1 before product suite.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:07 +00:00
weichen and Cursor
f3ed57c41f
fix(kb): redact DSN logs and fail closed when KB must be online
...
Add Online(), honor KB_REQUIRE_ONLINE/RUN_PI_E2E unless KB_ALLOW_OFFLINE,
and refuse empty/wrong credentials without leaking secrets in logs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:07 +00:00
weichen and Cursor
cdbf9cab63
fix(config): layer root .env over configs/.env.{ENV} for KB auth
...
Stop using a fake default KB password; merge Compose-style env files and
rewrite compose DNS to localhost on the host so go test/E2E authenticate.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 02:03:07 +00:00
weichen
e694408851
merge: docs/w1-release-integration-slot
2026-09-17 01:48:19 +00:00
weichen and Cursor
cacbf755b6
docs(ops): release integration slot after W1 merge smoke
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 01:48:19 +00:00
weichen
1d075aa4c3
merge: fix/w1-archtest-app-fav-allowlist
2026-09-17 01:47:52 +00:00
weichen and Cursor
86a4c9af63
fix(arch): allowlist app/fav imports for archtest baseline
...
FAV U7 stub package was missing from module-boundaries imports map,
breaking go test -short smoke after W1 merge.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 01:47:52 +00:00
weichen
4d6b95dea4
merge: feature/w1-ci-e2e-green-nightly
2026-09-17 01:44:02 +00:00
weichen and Cursor
8d3fd089f2
docs(ops): mark W1 step complete on partial-deferred controller
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 01:44:02 +00:00
weichen and Cursor
6981223087
docs(test): close W1 CI/E2E with FullNone nightly pass receipt
...
Archive green receipt 6e2476f0 , raise FEATURE-MATRIX CI/E2E to done,
and mark short-term/CURRENT W1 complete.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 01:43:54 +00:00
weichen and Cursor
6e2476f0f2
fix(ci): retry nightly suite on MISSING_TARGET flakes
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 01:12:37 +00:00
weichen and Cursor
11e030db30
fix(squad): stop requiring fields.json as hard PI runner target
...
Organizer still prompts for fields.json, but missing it must not fail
closed as MISSING_TARGET when output.md is present (FullNone flake).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 00:55:11 +00:00
weichen and Cursor
0f52ab89db
fix(ci): load real KB password for host-side PI E2E
...
configs/.env.dev omits KB_DB_PASSWORD so Load kept the default
shared_kb_secret_pass; fall back to root .env so research can use KB.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 00:52:01 +00:00
weichen and Cursor
a02c67db82
fix(ci): stabilize FullNone PI E2E timeouts and host KB DNS
...
Raise HTTP client timeout above AgentTimeout, rewrite compose KB host
to localhost for host-side tests, and retry nightly on deadline flakes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-17 00:28:38 +00:00
weichen and Cursor
4f2e5f013f
fix(db): remove duplicate goose 00048 software-project-type migration
...
Two 00048 files made goose panic on CollectMigrations, blocking all
TEST_DATABASE_URL PG suites including FullNone and nightly.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 23:37:04 +00:00
weichen
4bda6484a2
merge: docs/partial-deferred-completion-plan
2026-09-16 23:34:16 +00:00
weichen and Cursor
251b5f9c3d
docs(ops): claim integration slot for docs closeout merge and W1
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 23:34:16 +00:00
weichen and Cursor
c649067d19
docs(remediation): freeze §7 open decisions for partial/deferred closeout
...
Confirm D7 retention draft ADR, confirm-tier gate, REPLACE default-off,
and FAV live order with observation windows; sync CURRENT and short-term.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 16:13:17 +00:00
weichen
bb8d921e7c
docs(remediation): add partial/deferred completion plan (W1-W7) and short-term controller
2026-09-16 16:03:50 +00:00
weichen and Cursor
83f9004f9e
docs(ops): close SWBOOT short-term after remote push
...
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:49:21 +00:00
weichen and Cursor
92e0ae7ec4
merge: origin/feature/intent-plan-cards-playwright
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:49:21 +00:00
weichen and Cursor
49db87ebe5
docs(ops): release integration slot after agent-delta merge
...
CI / go-vet-and-short-test (push) Failing after 1s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:48:24 +00:00
weichen and Cursor
51c8ec1e8a
docs(ops): mark P0–P7 agent-delta merge complete on SSOT
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:48:07 +00:00
weichen and Cursor
768729d85e
fix(swboot): drop thin allowlist stub after agent SWBOOT merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:57 +00:00
weichen and Cursor
f0029dffed
merge: origin/feature/software-project-bootstrap
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:45 +00:00
weichen and Cursor
00cc5b6645
merge: origin/feature/fav-u7-publisher
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:29 +00:00
weichen and Cursor
131380e858
merge: origin/feature/pu8-u9-u12-flags
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:23 +00:00
weichen and Cursor
b92e226497
fix(docgov): drop thin pi_narrative stub after agent PU7 merge
...
Use ResolveChangeReport from feature/pu7-pi-narrative.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:16 +00:00
weichen and Cursor
a380c218bb
merge: origin/feature/pu7-pi-narrative
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:06 +00:00
weichen and Cursor
f3351ce750
fix(chat): drop thin semantic_shadow stub after agent PU6 merge
...
Keep applySemanticShadow path from feature/pu6-semantic-summary.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:46:01 +00:00
weichen and Cursor
f55887e2a2
docs(test): archive intent-plan Playwright dual-tab report
...
Record RUN_UI_ACCEPTANCE live PASS evidence and close the dual-tab short-term.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:50 +00:00
weichen and Cursor
b74b9ab1d0
test(web): add intent-plan dual-tab Playwright acceptance
...
Gate on RUN_UI_ACCEPTANCE=1; seed awaiting PG plan via SQL without raising
MULTI_INTENT_PLAN_TIER; assert one confirm wins and reload/relogin match PG.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:50 +00:00
weichen and Cursor
cc8557b8c6
feat(web): hydrate PLAN_CONFIRM from active intent plan
...
Load GET /intent-plans/active into a live card on session restore, use a
unique decision nonce per confirm click, and keep an empty-docAST fallback
so login still renders when demo seeds are off.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:50 +00:00
weichen and Cursor
003bc7a5b9
merge: origin/feature/pu6-semantic-summary
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:45 +00:00
weichen and Cursor
6aea8784c2
docs(test): record nightly run#30 U8 PASS after DATA_DIR rw fix
...
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 1s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:44:56 +00:00
weichen and Cursor
6087d0bdef
docs(test): archive PU8 U9–U12 flags scaffolding report
...
Record default-off flag gates, unit evidence, and FEATURE-MATRIX partial status.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:42:49 +00:00
weichen and Cursor
0611b1f24f
feat(intentflow): wire U9–U12 ports and gated OwnerMux
...
Register dry-run adapters via BuildOwnerMux when independent flags are on;
U9 stub fail-closes on malformed/timeout/out-of-bounds without raising PlanTier.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:42:49 +00:00
weichen and Cursor
d860c6430e
docs(ops): close full-backlog override checklist P1–P7
...
CI / go-vet-and-short-test (push) Failing after 0s
CI / backup-restore-drill (push) Failing after 0s
CI / web (push) Failing after 0s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:41:30 +00:00
weichen and Cursor
b015f8723f
fix(docgov): keep invalid ReportJSON path when narrative flag off
...
Preserve prior ValidateChangeReportJSON error semantics.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:41:30 +00:00
weichen and Cursor
2b3302ece4
feat(workflow-design): SWBOOT ADR, project_type migration, patch deny stub
...
SWBOOT-10 remains stub-only pending secondary approval.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:56 +00:00
weichen
f1d8f49df7
merge: feature/fav-u7-publisher-impl
2026-09-16 15:40:56 +00:00
weichen
0409e399d8
merge: feature/intent-plan-cards-playwright-impl
2026-09-16 15:40:56 +00:00
weichen
975af54fd6
merge: feature/pu8-u9-u12-flags-impl
2026-09-16 15:40:56 +00:00
weichen
5596ead7fd
merge: feature/pu7-pi-narrative-impl
2026-09-16 15:40:55 +00:00
weichen
7583f109a1
merge: feature/pu6-semantic-summary-impl
2026-09-16 15:40:55 +00:00
weichen and Cursor
6356fb5a8c
docs(ops): mark FAV U7 incremental push complete
...
Feature branch pushed; still not merged to dev; fav subscriber remains OFF.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:38 +00:00
weichen and Cursor
1cd1cddf64
feat(intent-plan): independent PU8 U9–U12 flags default off
...
Dry-run/fail-closed adapters; does not raise plan tier.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:26 +00:00
weichen and Cursor
47376aeb84
feat(events): FAV publisher cmd stub gated off by default
...
Incremental U7; degraded read still approval-gated.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:26 +00:00
weichen and Cursor
d45a1eef75
test(web): intent-plan dual-tab Playwright acceptance gate
...
RUN_UI_ACCEPTANCE=1 required; no tier upgrade.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:26 +00:00
weichen and Cursor
e7e981356c
feat(docgov): PI_CHANGE_REPORT_NARRATIVE gate with full fallback
...
Default off; malformed or risk downgrade forces deterministic report.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:25 +00:00
weichen and Cursor
8fdf50ab2a
feat(chat): SEMANTIC_SUMMARY_SHADOW optional deterministic annotate
...
Default off; unauthorized views skipped; facts preserved.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:25 +00:00
weichen and Cursor
de65cee96c
docs(test): record FAV U7 incremental go/no-go evidence
...
Subscriber remains OFF until separate approval; document remaining FAV
port inventory and claim feature/fav-u7-publisher.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
5392238354
chore(compose): pin FAV_DEGRADED_READ and publisher off
...
Document false defaults in all envs; main hardcodes both flags to false.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
47a173e7bb
feat(events): add fav subscriber and artifact-vault CLI stubs
...
Keep durable fav unregistered and fail-closed; CLI only prints status and
remaining-port inventory without destructive backfill/recover commands.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
92d7a3d117
feat(api): add FAV vault status stub with gated publisher
...
Expose GET /api/v1/vault/status and only wire in-process Drain when
FAV_PUBLISHER_ENABLED is explicitly true; degraded read stays off by default.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
3478a5a05a
feat(config): add FAV vault flags defaulting off
...
Gate FAV_DEGRADED_READ and FAV_PUBLISHER_ENABLED behind explicit opt-in,
and refuse VAULT_STATE_ROOT colliding with runtime data/{env}.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:40:10 +00:00
weichen and Cursor
56f6a66f2e
docs(test): archive PU7 PI narrative acceptance report
...
Record flag-off and full-fallback evidence; sync CURRENT, matrix, and contract.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:39:54 +00:00
weichen and Cursor
51568ea080
feat(web): distinguish change-report narrative vs factual fields
...
Panel and view-model label server risk/lineage separately from PI narrative;
add change_report_narrative_v1 helper aligned with typed-result patterns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:39:54 +00:00
weichen and Cursor
18f2729472
feat(docrevision): add PI change-report narrative with flag-gated fallback
...
Introduce PI_CHANGE_REPORT_NARRATIVE (default off). When on, consume typed
narrative bound to input digest only; malformed/timeout paths fully fall back
without mixing fields or lowering server risk.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:39:54 +00:00
weichen and Cursor
5493bf6108
docs(test): archive PU6 shadow report and mark matrix partial
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:37:50 +00:00
weichen and Cursor
d86528b45b
test(chat): characterize semantic summary shadow and auth negatives
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:37:50 +00:00
weichen and Cursor
b7b880a316
feat(chatflow): authorize rolling summary and surface digest freshness
...
GenerateRollingSummary filters to authorized-visible messages; digest API
exposes shadow/freshness without enabling REPLACE.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:37:50 +00:00
weichen and Cursor
209c997b22
feat(ctxmgr): add SEMANTIC_SUMMARY_SHADOW with deterministic fallback
...
Shadow evaluates a no-tool summarizer on caller-supplied messages; served
narrative stays deterministic and REPLACE remains unwired.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:37:50 +00:00
weichen and Cursor
884e5dbf44
docs(ops): claim PU6 semantic summary shadow on chat mutex
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:37:50 +00:00
weichen and Cursor
539a2dc639
docs(test): record FAV gap-fill unit evidence
...
Capture same-tx, recover-apply, pin-export, and GET zero-write results without claiming live 6173 or Unit A drills.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 12:52:28 +00:00
weichen and Cursor
ad9b67d599
feat(artifactvault): close same-tx staging, recover-apply, and GET zero-write gaps
...
Approve/commit now write FAV staging in the domain transaction, recover-apply materializes scratch collections, and unpublished or GET paths cannot mutate the registry.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 12:52:28 +00:00
weichen and Cursor
ba8e872b59
docs(test): record FAV V0-V6 unit evidence and three drill reports
...
Capture fail-closed gates without claiming live Unit A or 6173 e2e PASS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:33 +00:00
weichen and Cursor
8ea12de732
feat(api): wire FAV ingest, optional degraded GET, and scratch CLI
...
Keep FAV_DEGRADED_READ off by default and mount an independent vault volume beside runtime data.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:33 +00:00
weichen and Cursor
8a82f789d1
feat(docgov): freeze review snapshots and terminal-finalize assistant turns
...
Approve and index only ledger blobs; task success now completes the chat turn and recomputes export columns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:33 +00:00
weichen and Cursor
ffb93dc55d
feat(artifactvault): add eligibility, encrypted CAS, and idempotent publisher
...
Keep vault roots off ./data/dev and reject unknown types or sensitive payloads before staging.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:25 +00:00
weichen and Cursor
028b0eb015
feat(db): add FAV staging, outbox, and deletion ledger tables
...
Use goose 00034 because 00033 already belongs to task-run governance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:25 +00:00
weichen and Cursor
20d50ef9f1
docs(adr): record final artifact vault authority and fail-closed rules
...
Lock the three-layer contract, no tenant_id, union-deny delete, and scratch-only recover before storage work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:51:25 +00:00
weichen
ded40d071e
docs(remediation): design final artifact vault
2026-09-14 10:09:32 +00:00
weichen and Cursor
cfc3c94cff
docs(status): drop FAV from infra next-action
...
Keep the matrix row from depending on an uncommitted sibling plan.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:01:56 +00:00
weichen and Cursor
d1e2cc929d
docs(remediation): rewrite data-root plan after review
...
Split incident remount from outbox/governance so Wave 0 is executable
without identity bootstrap, and record preempt-but-wait authorization.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 10:01:40 +00:00
weichen
ccb1b1ebe5
docs(remediation): design runtime data lifecycle
2026-09-14 09:39:30 +00:00
weichen
f1edb70fbd
docs(audit): diagnose dev runtime data root split-brain
2026-09-14 09:06:00 +00:00