Commit Graph
1617 Commits
Author SHA1 Message Date
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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 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 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 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 a5ea469ca4 merge: feature/force-material-chunk-index-2026-09-21 (confirm 535 and chunk index docs) 2026-09-21 13:57:10 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 930776438a docs(ops): 占用集成槽位(taskrun-status-card label 修复合入 + dev 验收)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:02:12 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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