weichen
3d6dcc3ae5
feat(web): 用小队子页面展示思考与工具过程
...
气泡只聚合过程摘要并链到 hash 子页面;成员编制来自只读 squad 端点,思考与工具默认折叠。
2026-09-28 10:30:53 +00:00
weichen
dddd3fe8c8
merge: candidate error-code-observability-2026-09-28 into dev
2026-09-28 02:37:48 +00:00
weichen
7435f48389
feat(web): 增加错误审计查询和失败排查指引
...
管理台可按错误码或 request id 检索审计记录,聊天失败气泡展示对应排查短句。
2026-09-28 02:27:23 +00:00
weichen
457e870330
fix(chat): 只上传文档时给出梳理或追问,不再裸报 HTTP 400
...
空消息加附件可以进入回合。无文字时按解析状态引导或回退审阅,有文字但未处理文档时先回答再追问。4xx 信封不再被前端丢弃。
2026-09-28 02:00:24 +00:00
weichen
7f9d01a3b6
fix(web): 激活前预检人工审批并消除密钥框密码警告
...
未纳入人工审批的计划会被服务端拒绝为 400。配置页在请求前拦截并提示;管理台密钥输入放入表单,避免浏览器把密码框当成未托管字段。
2026-09-28 01:35:46 +00:00
weichen
f0ecc4c996
fix(web): restore admin password reset in user governance
...
T20-F4-A removed the working reset button after the F4-B endpoint was already live. Restore the entry so admins can issue a one-time random temp password.
2026-09-28 00:44:41 +00:00
weichen
88e33282db
fix(freedoc): persist uploaded file metadata and text body server-side
...
上传文档跨端不可访问修复(ISSUE-20260927-upload-doc-cross-device):
- 迁移 00076:freeform_documents 增加 source_filename/mime/size_bytes/asset_id
- freedoc:Create/Get/List 读写源文件元数据,负值拒绝
- 前端:注册前全部附件先登记 CAS 并预读文本正文;文本正文嵌入注册
markdown;跨端恢复 sourceType/fileMeta 路由回文件预览器
- 大小显示 formatFileSize(<512B 不再显示 0 KB)
- E2E 新增 FS-UPLOAD-02 跨浏览器上下文可访问性用例
回归:go vet/arch-check/go test -short(隔离 PG)+ web npm test/build 全绿;
存量无元数据旧文档不可恢复(重新上传即可)。
2026-09-27 07:45:15 +00:00
weichen
739b8c56f9
fix(web): purge legacy demo sessionId residue from localStorage on read
...
旧前端曾把 demo fallback 值 sess-001 持久化到 active_session;一次性
purge 版本 key 已写不再清理,读取侧无校验导致老浏览器 + 无可见会话
账号首屏 4x chat 404。提取共享 LEGACY_DEMO_SESSION_IDS 常量,
loadActiveSessionId 命中即清除并返回 fallback(幂等),loadMessages
复用同一集合。
2026-09-27 07:05:05 +00:00
weichen
db038aa7a7
fix(web): stop phantom demo-fallback requests in seeds-off mode
...
App.tsx hardcoded fallbacks (active session "sess-001", projectId 1) sent
requests for nonexistent resources on fresh logins against real dev data,
producing 7+ console 404/403 hits. Fallbacks now resolve to empty/0; the
existing chatBlockedNoProject empty state and session-reconciliation effect
carry the UI, and demo-seeds-enabled builds keep the NEUROPULSE fallback.
Root cause, same-class scan, and before/after browser evidence (9 phantom
requests -> 0, author+member accounts) recorded in the task doc; ISSUES row
ISSUE-20260927-demo-fallback registered.
2026-09-27 03:09:37 +00:00
weichen
887a75c1b1
fix(web): portal reject modal above stacking context
2026-09-26 07:48:30 +00:00
weichen
7513ce61ed
fix(web): member drafting edit + reject await + expand right rail
2026-09-26 07:29:27 +00:00
weichen
7555818753
docs(test): FINAL full-system browser E2E report after pending heal
2026-09-26 05:14:11 +00:00
weichen
ccce44dfc0
fix(chat): heal task bubble pending after completed run
2026-09-26 04:30:38 +00:00
weichen
a5ca6fdcfd
test(e2e): document PI UI pending mismatch and raise suite timeout
2026-09-26 04:12:33 +00:00
weichen
466426a58f
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:48:34 +00:00
weichen
4873c5e8b9
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:28:34 +00:00
weichen
078eb4fcf0
test(e2e): full-system browser multi-user acceptance
2026-09-26 03:23:35 +00:00
weichen
7c7a08a3ca
docs(test): swboot closeout evidence — executor e2e, L5 live PI, L6 playwright wizard
2026-09-26 01:08:51 +00:00
weichen
2e56ba9719
feat(docgov): complete review lifecycle gaps for lock/notify/comment/reopen
...
Defer locked-period supplements to a pending ledger, route duty-holder
notifications, persist stage-scoped comments, and prefer Approver for reopen.
2026-09-25 20:08:56 +00:00
weichen
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