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
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
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
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
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
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
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
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
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
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
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
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
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
b5ce947e77
docs(ops): mark SWBOOT-00..09 feature slice done after push
...
Record remote branch tip and release workflow-design mutex; still not
merged to dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:34 +00:00
weichen and Cursor
01a783b8d5
test(swboot): SWBOOT-09 L1 suite and acceptance report
...
Update catalog size expectations to five workflows and archive the
unit-test report; sync FEATURE-MATRIX and task docs without merging to
dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:45:08 +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
f6034fad37
feat(api): SWBOOT-05..08 wizard hooks and SWBOOT-10 allowlist stub
...
Add project-types/compliance catalogs, creation-preview, software create
fields, and fail-closed repo allowlist stub without real patch/merge.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:43:13 +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
909384c335
feat(workflow): SWBOOT-02..04 software manifests and catalog allowlist
...
Add software_bootstrap/delivery v2 manifests, expand selectable keys to
five, keep medical doc-count gates, and filter catalog by product_domain.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:39:01 +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
d661af71d5
feat(db): SWBOOT-01 additive project type and compliance schema
...
Add project domain/governance fields, catalog tables, source bindings,
and repo allowlist stub table without backfilling legacy classification.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:36:13 +00:00
weichen and Cursor
a30931349a
docs(adr): SWBOOT-00 software_bootstrap/delivery keys and domain boundary
...
Freeze selectable workflow keys, domain/compliance separation, solo policy,
and SWBOOT-10 fail-closed stub contract without touching medical three.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:36:08 +00:00
weichen
776b2b5cae
merge: fix/nightly-datadir-rw
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-16 15:34:50 +00:00
weichen and Cursor
81f6378233
fix(ci): treat DATA_DIR read-only mkdir as infra_fail
...
Host agent-data mount must be writable for nightly workspace create.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:34:49 +00:00
weichen
ebe177eec8
merge: feature/iam-route-inventory-p2
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-16 15:34:19 +00:00
weichen and Cursor
025ffe0ab3
feat(authz): full route inventory, session interrupt test, 410/R13 freeze
...
Close FEATURE-MATRIX IAM partial with v3 inventory and policy docs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:33:18 +00:00
weichen
89ce3cc143
merge: fix/nightly-datadir-dev-align
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-16 15:30:39 +00:00
weichen and Cursor
a27f2cc7fb
fix(ci): align nightly DATA_DIR with dev PI on :18865
...
Host-agent-data/test mismatched shuimu-pi-agent-dev workspace mounts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:30:38 +00:00
weichen
247ddcd306
merge: docs/override-nogo-full-backlog
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-16 15:30:01 +00:00
weichen and Cursor
05ae1b3ffd
docs(ops): override Wave3 no-go; authorize full backlog P0–P7
...
User scope-3 authorization; capabilities remain flag-off by default.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:30:01 +00:00
weichen
90ad756ce2
merge: docs/gitea-nightly-run21-status
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-16 15:18:49 +00:00
weichen and Cursor
950ce66ed8
docs(ops): record Gitea nightly run#21 product_fail after infra green
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:18:49 +00:00
weichen
a47cb84313
merge: fix/gitea-nightly-docker-datadir
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-16 15:17:16 +00:00
weichen and Cursor
91d21ea632
docs(ops): mark nightly docker-datadir task done
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:17:16 +00:00
weichen and Cursor
7df43f419e
fix(ci): mount DATA_DIR and docker for Gitea nightly host jobs
...
Avoid all-SKIP false PASS and exit-127 without receipt when image build lacks docker.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:17:16 +00:00
weichen
212f0974d8
merge: fix/gitea-nightly-host-tools
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-16 15:12:22 +00:00
weichen and Cursor
db85c7cab9
docs(ops): mark gitea nightly host-tools task done
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:12:21 +00:00
weichen and Cursor
b2bcea3cd8
ci(nightly): archive receipts without upload-artifact@v4
...
Gitea act_runner rejects artifact v4; host runner now has curl/node via brew+host net.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:12:03 +00:00
weichen
d48b36046d
merge: docs/gitea-nightly-runner-label-note
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-16 15:02:39 +00:00
weichen and Cursor
d07244c980
docs(ops): note Gitea runner .runner label patch for nightly:host
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 15:02:39 +00:00
weichen
fb73d404f4
merge: chore/nightly-gitea-host-runner
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-16 14:59:38 +00:00
weichen and Cursor
74d87b9e5d
ci(nightly): use local Gitea host runner label for real PI
...
Point Nightly Real PI at runs-on: nightly (host network) so the local
act_runner can reach host PI :18865 and isolated PG :5434.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:59:38 +00:00
weichen
f1f24dca5b
merge: docs/phase3-remediation-dod
2026-09-16 14:47:49 +00:00
weichen and Cursor
29da12d036
docs(remediation): check remaining Wave DoD after Phase 3 closeout
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:47:49 +00:00
weichen
e843c3c7dc
merge: fix/wave-leftovers-n7-playwright-dod
2026-09-16 14:47:44 +00:00
weichen and Cursor
f54abcab82
fix(ci): Phase 3 leftovers — nightly quality_failed retry and gated docs
...
Retry U8 product quality flakes once in nightly; formalize Playwright
dual-tab as long-term gated; closeout handoff and DoD notes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:47:32 +00:00
weichen
84363b9180
merge: feature/wave3-pu6-pu8-go-no-go
2026-09-16 14:46:05 +00:00
weichen and Cursor
d1a019b9d7
docs(ops): archive Wave 3 go/no-go short-term
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:46:05 +00:00
weichen and Cursor
6264965267
docs(ops): Wave 3 PU6–PU8 go/no-go — all deferred with contracts
...
Record no-go decisions and independent long-term task contracts; do not
implement or raise MULTI_INTENT tier.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:46:05 +00:00
weichen
5d7ac1a8f9
merge: feature/wave2c-same-image-digest
...
Wave 2C: same-image digest pin for test/main promotion.
2026-09-16 14:44:45 +00:00
weichen and Cursor
f0acbb10ad
docs(ops): archive Wave 2C short-term and release integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:44:45 +00:00
weichen and Cursor
da15eb91b6
feat(infra): Wave 2C same-image digest pin for test/main promote
...
Build/apply candidate images once, require digests on promote, and keep
pinned env-service from rebuilding divergent images.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:44:26 +00:00
weichen
7c808bdcfc
merge: docs/wave2b-n7-receipt
2026-09-16 14:34:19 +00:00
weichen and Cursor
dcab3aec83
docs(test): archive Wave 2B N7 product_fail promotion receipt
...
Record classified nightly outcome for 67d7335 with image digests and
gate rejection evidence; does not claim product suite green.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:34:19 +00:00
weichen
49ca6cd6dc
merge: docs/wave2b-slot-release
2026-09-16 14:32:10 +00:00
weichen and Cursor
4187bcfc9e
docs(ops): release Wave 2B integration slot and archive short-term
...
Smoke passed on merge; record N7 product-fail classification evidence
from the in-flight nightly suite without claiming same-image promotion.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:32:10 +00:00
weichen
2498bd2a13
merge: feature/wave2b-nightly-promotion-receipt
...
Wave 2B PU5B: nightly real-PI entry, promotion receipts, promote/release gates.
2026-09-16 14:05:59 +00:00
weichen and Cursor
c75842f945
docs(ops): mark Wave 2B short-term done ahead of merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:05:59 +00:00
weichen and Cursor
67d73359fd
docs(test): Wave 2B nightly promotion-receipt report and matrix sync
...
Record gate fixtures and infra negative evidence; mark Artifact row
partial for same-commit/digest traceability without same-image claim.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:02:24 +00:00
weichen and Cursor
fda159c995
feat(ci): nightly real-PI workflow and promote/release receipt gates
...
Add schedule/dispatch nightly entry that classifies infra vs product
failures, and require a valid receipt (or waiver) before promote/release.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:02:24 +00:00
weichen and Cursor
a84778f21b
feat(ci): add immutable promotion receipt write/check with waiver
...
Nightly and promote gates need auditable pass/product_fail/infra_fail
receipts under test-reports assets, plus timed owner waivers.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 14:02:24 +00:00
weichen
8278022237
merge: docs/wave2-slot-release
2026-09-16 10:57:11 +00:00
weichen and Cursor
879f6fadef
docs(ops): release integration slot after Wave 2 merge
...
Smoke: go vet, go test -short (clean env), env-service rebuild, health/ready ok.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:57:11 +00:00
weichen
c360a928de
merge: feature/wave2-real-pi-evidence
2026-09-16 10:55:54 +00:00
weichen and Cursor
7461138412
docs(ops): claim integration slot for Wave 2 merge
...
Also mark PU4 DoD complete after U8/full-none real-PI evidence archive.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:55:51 +00:00
weichen and Cursor
422f98012e
docs(ops): mark Wave 2 short-term done in archive
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:42:43 +00:00
weichen and Cursor
574758a71f
docs(test): archive Wave 2 U8 and full/none real-PI evidence
...
Close FEATURE-MATRIX evidence gaps for multi-intent U8 and workflow
full/none; release the integration slot after live PASS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:42:20 +00:00
weichen and Cursor
f1e87fb2e7
test(server): add Wave 2 real-PI evidence for U8 and full/none
...
Replace the U8 stop-gate with a PG+PI confirm/generate harness and add a
mixed-duty governance long chain covering cross-user approve and none
non-blocking advance.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:42:20 +00:00
weichen and Cursor
aac42936bc
fix(intentflow): keep plan step receipts durable under PG events
...
Normalize empty TEXT[] binds, isolate step-changed aggregates from plan
revision uniqueness, propagate AdvanceEligible errors, and emit
taskrun.completed to the registered notify consumer so finalize no longer
rolls back live receipts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 10:42:20 +00:00
weichen
ad42f83e5b
merge: docs/wave1-pu3-slot-release
2026-09-16 09:42:34 +00:00
weichen and Cursor
3a3b31996a
docs(ops): release integration slot after PU3 merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:42:34 +00:00
weichen
c5d10aebcc
merge: fix/iam-store-fail-closed
...
Wave 1 PU3: IAM NewStores fail-closed unless explicit dev/test opt-in.
2026-09-16 09:42:27 +00:00
weichen and Cursor
a5bc317492
docs(ops): mark PU3 done and claim merge slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:42:27 +00:00
weichen and Cursor
299530bf42
docs(test): archive Wave 1 PU3 IAM fail-closed evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:42:07 +00:00
weichen and Cursor
7fdbee6c0c
test(server): adapt fixtures to IAM dual-gate fail-closed
...
Boot memory IAM only via explicit test env opt-in; strict auth cases
disable AllowInMemory after startup.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:42:07 +00:00
weichen and Cursor
514db3a086
feat(auth): fail-closed IAM store unless dev/test opt-in
...
Refuse MemoryStore fallback for main/empty/unknown env or missing
ALLOW_IN_MEMORY so production cannot silently use in-memory authority.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:42:07 +00:00
weichen
16d1ba1d54
merge: docs/wave1-pu5a-slot-release
2026-09-16 09:34:05 +00:00
weichen
0353841a4a
merge: fix/race-tempdir-cleanup
...
Wave 1 PU5A: drain taskrun workers before TempDir cleanup under -race.
2026-09-16 09:34:05 +00:00
weichen and Cursor
24e716e661
docs(ops): release integration slot after PU5A merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:34:05 +00:00
weichen and Cursor
3400f0a7ac
docs(ops): mark PU5A done and claim merge slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:34:05 +00:00
weichen and Cursor
a453b290a7
docs(test): archive PU5A TempDir race cleanup evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:33:41 +00:00
weichen and Cursor
73ae4b8f5b
fix(server): drain taskrun workers before TempDir cleanup
...
Register newTestServer cleanup and Shutdown WaitIdle so race detector
no longer hits RemoveAll on a live DataDir.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:33:41 +00:00
weichen and Cursor
ea2b9f121e
feat(taskrun): add WaitRunDone and WaitIdle for async workers
...
Allow tests and shutdown to drain in-memory workers before TempDir cleanup.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 09:33:41 +00:00
weichen
9d929f0175
merge: docs/wave0-matrix-merge-closeout
2026-09-16 08:33:27 +00:00
weichen and Cursor
99504b628e
docs(ops): release integration slot after Wave 0 matrix merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 08:33:27 +00:00
weichen
a88a7e3b0a
merge: feature/feature-matrix-production-readiness-plan
...
Wave 0 FEATURE-MATRIX calibration and IAM readonly verification docs.
2026-09-16 08:32:43 +00:00
weichen and Cursor
8afd37da65
docs(ops): claim integration slot for Wave 0 FEATURE-MATRIX merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 08:32:43 +00:00
weichen and Cursor
2fe58ca9d7
docs(remediation): mark Wave 0 DoD items complete
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 08:32:29 +00:00
weichen and Cursor
c4a7479572
docs(status): Wave 0 calibrate FEATURE-MATRIX and verify IAM deploy facts
...
Align capability maturity with frozen boundaries, record IAM readonly PASS
without flipping production_ready, and leave Wave 1+ for fail-closed code.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 08:32:29 +00:00
weichen
1ff55033f4
merge: docs/matrix-deep-test-detailed-report
2026-09-16 05:37:16 +00:00
weichen and Cursor
68455faa94
docs(test): expand matrix deep-test report with I/O analysis verdicts
...
Rewrite the promote report so each Wave case records input, system
output, analysis, and evaluation against FEATURE-MATRIX evidence.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:37:16 +00:00
weichen
794b1f43b7
merge: docs/matrix-deep-test-closeout
2026-09-16 05:25:31 +00:00
weichen and Cursor
9363121071
docs(test): archive matrix deep-test promote report and release slot
...
Record Wave 1–4 evidence, fix FEATURE-MATRIX schema-47 note, harden
promote-to-test against origin rebase, and mark infra task done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:25:31 +00:00
weichen
50f800a409
merge: feature/matrix-deep-test-promote-test
...
Matrix deep-test evidence and CURRENT slot claim prior to test promote.
2026-09-16 05:18:52 +00:00
weichen and Cursor
0743fb90ec
docs(ops): advance integration slot to merging for test promote
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:18:52 +00:00
weichen and Cursor
895d5f002a
test(ops): capture matrix deep-test Wave 1–3 evidence artifacts
...
Automated short/module/governance-PG outputs plus live :8080 smoke and
PI typed-result sample for promote gate.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:18:52 +00:00
weichen and Cursor
4f997a9438
docs(ops): register matrix deep-test claim on CURRENT
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:14:00 +00:00
weichen and Cursor
ef84d1d8f7
docs(ops): claim infra slot for matrix deep test and test promote
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 05:13:38 +00:00
weichen
4298701b2a
merge: docs/archive-production-ready-gates
2026-09-16 04:16:03 +00:00
weichen and Cursor
28d1512e6e
docs(ops): archive completed production-ready gates short-term task
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:16:03 +00:00
weichen
4d048cc4a3
merge: docs/production-ready-flip
...
Flip SSOT production_ready=yes after release gates and main schema align.
2026-09-16 04:15:55 +00:00
weichen and Cursor
1027026e7a
docs(ops): flip production_ready=yes after B1–B4 gates and schema 47
...
Align FEATURE-MATRIX, gap-matrix, and CURRENT; main rebuilt to schema 47
with dev/test. Release blockers closed; backlog items remain partial/planned.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:15:55 +00:00
weichen
8dae227f8c
merge: feature/pi-three-workflow-e2e
...
Release gates B2–B4 evidence, PI E2E harness fixes, and settings conflict recovery.
2026-09-16 04:14:07 +00:00
weichen and Cursor
05a84e6677
fix(web): include nested error field in VERSION_CONFLICT unwrap typing
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:13:35 +00:00
weichen and Cursor
23a5f6f589
docs(ops): claim integration slot for production-ready gate merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:12:09 +00:00
weichen and Cursor
1f35593dcd
docs(test): archive B2–B4 release-gate evidence and check gap boxes
...
PI three-workflow E2E, chat refresh+restart, and frontend conflict/
termination-preview reports; mark corresponding gap-matrix gates done.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:11:54 +00:00
weichen and Cursor
736857a292
fix(web): unwrap nested VERSION_CONFLICT business codes for settings recovery
...
HTTP envelope wraps PLAN_FROZEN/ERR_CONCURRENT_SWITCH; reload settings on
conflict so operators refresh instead of blind retry.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:11:54 +00:00
weichen and Cursor
64ac437a90
fix(test): upsert project members before SavePlan in chat-refresh live
...
Duty assignees must be active members or activation path returns 400.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:11:54 +00:00
weichen and Cursor
3b80582123
fix(pi-agent): stabilize real PI three-workflow E2E harness
...
Use shared DATA_DIR permissions (umask/chmod) and drop obsolete sync
notify asserts so governance PG PI chains can complete on MiniMax runner.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 04:11:54 +00:00
weichen
3b56816f4e
merge: fix/ci-governance-pg-members
2026-09-16 03:20:32 +00:00
weichen and Cursor
56c85bba11
fix(ci): green governance PG on isolated TEST_DATABASE_URL
...
Add duty holders as project members, drop sync notification assert
after outbox cutover, and add an explicit CI governance PG step.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:20:32 +00:00
weichen
eaffe3eb31
merge: docs/demo-seed-merge-closeout
2026-09-16 03:17:37 +00:00
weichen and Cursor
c8052c8882
docs(ops): close DEMO-DB-SEED after schema 47 migrate and smoke
...
Record npm/go gates, empty project 6357 docs=0, and release the
integration slot; gap-matrix DEMO-DB-SEED → PASS.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:17:37 +00:00
weichen
511012cede
merge: fix/demo-chat-sessions-retire-00047
2026-09-16 03:14:59 +00:00
weichen and Cursor
c741d26eeb
fix(db): add goose 00047 to retire demo project chat sessions
...
Dev already applied 00046 (projects only) before session retirement
was folded into that file; 00047 closes the gap idempotently.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:14:59 +00:00
weichen
0917f39f80
merge: fix/demo-data-pollution-web
...
Gate demo seeds, retire goose demo projects/sessions, reject stub in
main/prod, and respect SEED_DEMO_USERS=false.
2026-09-16 03:13:51 +00:00
weichen and Cursor
765a418df1
docs(ops): claim integration slot for demo-data-pollution merge
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:13:51 +00:00
weichen and Cursor
66c56324ad
docs(ops): backlink 2026-09-15 audit and record review P0/P1 evidence
...
Cherry-picked SEED_DEMO_USERS separately; document npm test gate,
session retire in 00046, and P2 follow-ups.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:13:25 +00:00
weichen
53bb71adae
fix(auth): respect SEED_DEMO_USERS=false to prevent re-seeding demo users
2026-09-16 03:12:31 +00:00
weichen and Cursor
fbda195b7f
fix(db): retire demo chat sessions with projects in 00046
...
Extend unapplied migration to mark 6001–6010 sessions demo_retired
and filter them (and retired projects) out of ListChatSessions.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:12:25 +00:00
weichen and Cursor
a44df9280c
fix(web): rewrite demoSeedIds tests for node:test npm gate
...
Vitest-style suite was caught by tsx --test and broke npm test.
Align with storage.test.ts and narrow vitest include to chat suites.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 03:11:36 +00:00
weichen and Cursor
1e19f5c52f
docs(test): archive demo seed pollution remediation evidence
...
Record systemic audit, wave plan status, gap-matrix blockers, and unit/
bundle scan results for the demo-data pollution fix.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:50:34 +00:00
weichen and Cursor
8a8197a4f2
fix(taskrun): reject stub backend in main/prod
...
Require ResolveBackendInEnv to deny stub (and empty stub fallback) when
env is main/prod so production cannot request simulated agent output.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:50:34 +00:00
weichen and Cursor
bdc6415944
fix(db): retire goose-seeded demo projects from lists
...
Mark projects 6001–6010 as demo_retired and exclude them from default
project list queries so demo seeds no longer pollute real workspaces.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:50:34 +00:00
weichen and Cursor
855363fd60
fix(web): gate demo seeds and reclaim mock deliverables
...
Stop shipping hard-coded demo docs/projects into production builds,
drop local mock items on authoritative empty server lists, and purge
stale demo seed residue from localStorage on boot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:50:34 +00:00
weichen
2005a4ca0c
merge: chore/release-multi-intent-u8-slot
2026-09-16 02:26:03 +00:00
weichen and Cursor
8b228e2101
chore(ops): release the U8 integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:26:03 +00:00
weichen
50cf271b53
merge: feature/multi-intent-u8-task-generate
2026-09-16 02:24:39 +00:00
weichen and Cursor
bf55278740
docs(test): record U8 task generate adapter report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:24:23 +00:00
weichen and Cursor
2e99ee3661
feat(intentflow): route confirmed generate steps through a task adapter
...
Persist ComboNeedsConfirm plans at confirm tier without executing writes, then run task.run via OwnerMux and a stable idempotency key.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 02:24:23 +00:00
weichen
aec374c5dc
merge: chore/release-multi-intent-u7-slot
2026-09-16 01:42:42 +00:00
weichen and Cursor
ad3d10b72d
chore(ops): release the U7 integration slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:42:42 +00:00
weichen
276ceb42b3
merge: feature/multi-intent-u7-auto-read
2026-09-16 01:40:07 +00:00
weichen and Cursor
fb19b63baf
docs(test): record U7 auto_read query execution report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:40:07 +00:00
weichen and Cursor
702cf6f949
feat(intentflow): execute auto_read query plans from HandleTurn
...
Default legacy stays a no-op; QueryGuard refuses generate keys until U8.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:40:07 +00:00
weichen
5c4caa375e
merge: chore/release-multi-intent-u6-slot
2026-09-16 01:11:28 +00:00
weichen and Cursor
c7677b09f6
chore(ops): release the U6 integration slot
...
Restore the U5 SSOT rows dropped during the U6 docs commit.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:11:28 +00:00
weichen
b94873ab18
merge: feature/multi-intent-u6-web-cards
2026-09-16 01:09:05 +00:00
weichen and Cursor
ba713c266b
docs(test): record U6 plan card web report
...
Keep Playwright dual-tab behind RUN_UI_ACCEPTANCE.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:09:05 +00:00
weichen and Cursor
29bb63f766
feat(web): render PLAN_CONFIRM from PlanView without local AST writes
...
Plan actions post to the decision API and reconcile on 409 instead of mutating documents.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:09:05 +00:00
weichen
4044b68c9e
merge: chore/release-multi-intent-u5-slot
2026-09-16 01:02:19 +00:00
weichen and Cursor
0dd7a412c2
chore(ops): release the U5 integration slot
...
Drop accidental pycache from the docs commit and ignore Python bytecode.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:02:19 +00:00
weichen
741089eca3
merge: feature/multi-intent-u5-decision-api
2026-09-16 01:01:39 +00:00
weichen and Cursor
e16fb7eff2
docs(test): record U5 decision API and authorization report
...
Close the U5 checklist with HTTP scope negatives and same-nonce receipts.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:01:39 +00:00
weichen and Cursor
3d444fa5e4
feat(api): mount authenticated intent plan decision routes
...
Principal comes from the session and query scope; body identifiers are ignored and admins cannot skip membership.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:01:39 +00:00
weichen and Cursor
08aa56b16c
feat(intentflow): re-authorize steps before confirm and execute
...
Confirmation stays a command receipt; FakeActionOwner now fail-closes on revoke and resource version drift.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 01:01:39 +00:00
weichen
f35d265721
merge: chore/release-multi-intent-u4-slot
2026-09-16 00:52:59 +00:00
weichen and Cursor
131c86a919
chore(ops): release the U4 integration slot
...
U4 smoke (go vet + go test -short) passed; no shared-env rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:52:59 +00:00
weichen
839368198a
merge: feature/multi-intent-u4-outbox-projection
2026-09-16 00:50:32 +00:00
weichen and Cursor
46ee9fe647
chore(ops): occupy the U4 integration slot
...
Remove accidental promote-dev and pycache files from the U4 docs commit and hold the merge slot.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:50:26 +00:00
weichen and Cursor
2755d916f4
docs(test): record U4 outbox projection report
...
Close the U4 checklist with golden payload and only-forward projection evidence.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
c36d891b05
feat(intentflow): emit plan facts onto Track E outbox
...
Append awaiting/step/completed envelopes in the command UoW and project them without changing dispatcher leases.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
cf063f5727
feat(db): add intent plan projection shadow tables
...
Store idempotent event outcomes and an only-forward shadow without replacing plan SSOT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:46:09 +00:00
weichen and Cursor
1afd39c9e8
docs(ops): claim U4 intent plan outbox projection
...
Register the events mutex before appending intent.plan facts onto Track E.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-16 00:40:57 +00:00
weichen
0f656638eb
merge: chore/release-multi-intent-u3-slot
2026-09-15 23:47:19 +00:00
weichen and Cursor
223b2841d7
chore(ops): release the U3 integration slot
...
Smoke already passed on the feature branch; shared env stays on schema 43 until a planned rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:47:19 +00:00
weichen
26f1632a21
merge: feature/multi-intent-u3-intentflow-pg
2026-09-15 23:46:55 +00:00
weichen and Cursor
4cfe6ff59d
chore(ops): occupy the U3 integration slot
...
Hold the shared merge slot for the no-ff merge of the intentflow PG owner.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:46:55 +00:00
weichen and Cursor
b6956003d5
docs(test): record U3 intentflow PG CAS lease report
...
Close the U3 checklist with CAS/lease/fencing evidence while leaving chat routing on legacy.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:46:34 +00:00
weichen and Cursor
1385002350
feat(app): assemble intentflow plan owner
...
Wire the composition root without letting chat or coordinator call CreatePlan yet.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:46 +00:00
weichen and Cursor
da0b3d812b
feat(intentflow): persist plans with CAS lease and fencing
...
Own plan/step/decision writes behind UoW so two workers cannot both execute the same step.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:46 +00:00
weichen and Cursor
7dfd6d6f33
feat(db): add intent plan tables in goose 00044
...
Persist plans, steps, and append-only decisions with typed CAS, lease, and nonce columns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:43:37 +00:00
weichen and Cursor
a75aa45129
docs(ops): claim U3 intentflow PG CAS lease
...
Register the intent-plan mutex and freeze U3 scope before schema or repository work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:33:15 +00:00
weichen
53c0722925
merge: chore/release-multi-intent-u2-slot
2026-09-15 23:18:37 +00:00
weichen and Cursor
86f25b26c4
chore(ops): release the U2 integration slot
...
Smoke already passed on the feature branch; U2 has no schema or container change.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:18:37 +00:00
weichen
53d4077f06
merge: feature/multi-intent-u2-segmenter
2026-09-15 23:18:10 +00:00
weichen and Cursor
91edeccb26
chore(ops): occupy the U2 integration slot
...
Hold the shared merge slot for the no-ff merge of the rule-segmenter shadow proposal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:18:10 +00:00
weichen and Cursor
c2e79c8a1d
docs(test): record U2 rule segmenter shadow proposal report
...
Close the U2 checklist with golden/hard-negative evidence while keeping production routing unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:17:45 +00:00
weichen and Cursor
932ba87daf
feat(intent): add rule segmenter and shadow PlanProposal
...
Generate 2–4 step L1 proposals with stable digests while leaving TopIntent and the legacy IntentPlan router unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:14:29 +00:00
weichen and Cursor
9005766b62
test(intent): lock legacy multi-intent plan routing
...
Keep write combos and internal-chain summaries on the current TopIntent path so U2 shadow proposals cannot silently change production.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:07:46 +00:00
weichen and Cursor
475134802b
docs(ops): claim U2 multi-intent rule segmenter
...
Register the independent U2 short-term on the intent mutex so shadow proposals can land without touching production routing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 23:06:29 +00:00
weichen
8ac3d3fbc6
merge: chore/release-multi-intent-u1-slot
2026-09-15 16:28:07 +00:00
weichen and Cursor
3171e4f0e5
chore(ops): release the U1 integration slot
...
Smoke already passed on the feature branch; U1 has no schema or container rebuild.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:28:07 +00:00
weichen
29d9c65603
merge: feature/multi-intent-u1-contracts
2026-09-15 16:27:29 +00:00
weichen and Cursor
42c8ae2ccd
chore(ops): occupy the integration slot for U1 merge
...
Serialize the local --no-ff merge of multi-intent U1 contracts onto dev.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:27:29 +00:00
weichen and Cursor
3d326ad81e
docs(status): record U1 multi-intent contract freeze
...
Archive the arch/parity/short evidence and mark the U1 claim done so U2 can take the intent mutex next.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:27:03 +00:00
weichen and Cursor
9364da4974
feat(intentflow): freeze plan lifecycle contracts and batch policy
...
Add the app/intentflow skeleton so HITL state, error codes, REST shapes, and BatchActionPolicy live outside intent and default to the legacy tier.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:22:52 +00:00
weichen and Cursor
aefb1e45a6
feat(events): register intent.plan contracts and table owners
...
Freeze the three fact events, intentflow allowlist, and plan table ownership so later units cannot invent producers or write paths outside app/intentflow.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:20:19 +00:00
weichen and Cursor
bdccb4dbfe
docs(ops): claim U1 multi-intent HITL contract freeze
...
Register the independent U1 short-term, checklist, and CURRENT mutex so architecture-docs and events stay serial while contracts land.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:19:12 +00:00
weichen
987423794f
merge: feature/test-env-smoke-notes
2026-09-15 16:04:59 +00:00
weichen and Cursor
8919ca9842
docs(ops): record the test promotion smoke and release the slot
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-15 16:04:59 +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