Commit Graph
100 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 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 31dde45b72 docs(ops): register upload parse ux dedup task
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 09:10:55 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor 10aee3feb4 merge: docs for intent-confirm real PI acceptance
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 08:48:28 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 7f150831bb merge: feature/mineru-doc-parsing-2026-09-21
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 08:37:12 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor ca21d66b29 docs(ops): freeze mineru task head_sha
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 08:30:01 +00:00
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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
weichenandCursor 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