Commit Graph
351 Commits
Author SHA1 Message Date
weichen 2e56ba9719 feat(docgov): complete review lifecycle gaps for lock/notify/comment/reopen
Defer locked-period supplements to a pending ledger, route duty-holder
notifications, persist stage-scoped comments, and prefer Approver for reopen.
2026-09-25 20:08:56 +00:00
weichen 914d0aa39d feat(maintenance): wire sysadmin ui.* whitelist settings to public site status
- sysadmin.Service.GetSettingValue: whitelist read-through (DB > env > default)
- maintenance.Service: SiteSettingsProvider injection; StatusView carries notice/readOnly; new CurrentSiteStatus + GET /api/v1/maintenance/site-status
- composition root wires ui.maintenance_notice / ui.read_only_mode into maintenance site settings
- MaintenanceBanner: persistent notice banner + read-only mode strip
- chore(web): drop dead 'dirty' var in EnvSettingsSection (baseline TS6133 build blocker)
- KB ops actions: deferred out-of-repo (shared infra container side); documented in task record
2026-09-25 16:33:56 +00:00
weichen d653e32e7b fix(server,web): T20-S1 hardening batch B11/F1/F8/F4-A 2026-09-25 04:25:03 +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 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 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 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 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 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 30fa4e88b2 merge: fix/fix-latest-upload-summary-2026-09-23 (latest-upload summary + parse wait) 2026-09-23 10:23:21 +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 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 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 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 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 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 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 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 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 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 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 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 4662e39541 merge: feature/web-api-client-2026-09-22 2026-09-22 21:53:45 +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 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 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 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 b68e1f6412 merge: dev@5c3261c6 into feature/taskrun-status-card-2026-09-21 2026-09-21 10:33:21 +00:00