WeiCHEN
487dc072f5
feat(history): 实现三模历史搜索、每日智能协同摘要与时间轴侧栏 (Phase P2)
2026-09-13 02:50:20 +00:00
WeiCHEN
54f1c88791
feat(history): 实现多级历史导航、分类筛选、日历联动与消息双向引用 (Phase P1)
...
- 后端核心与 API:
- 实现 ChatCategoryStat 结构体与 ListChatCategories 统计引擎 (Postgres + In-Memory 内存降级双轨)
- 注册 GET /api/v1/chat/categories 聚合接口
- 增强 GetChatDayMessages 支持自动根据 anchor_id 逆查 day_key,实现免猜测跨日检索
- 前端锚点导航引擎:
- 实现 anchorNavigator 模块 (快路径 DOM scrollIntoView + 1.8s 发光脉冲、慢路径跨日拉取、深链 Hash 解析)
- 编写 anchorNavigator.test.ts 单元测试并 100% 通过
- 分类过滤与轻量月历:
- 实现 CategoryFilterBar 水平分类筛选栏 (8 类业务标签,暗淡/高亮模式)
- 实现 HistoryCalendar 零依赖原生悬浮月历组件 (热度点与消息数,jumpToDate 快速定位)
- 消息引用与双向追溯:
- 消息气泡悬浮“引用”入口,点击提取发言人与摘要至输入框
- 实现 QuoteChip 待发引用标签与 QuoteCard 已发引用卡片
- 引用卡片点击直连锚点定位,快慢路径自动回溯
2026-09-13 02:50:20 +00:00
WeiCHEN
fb8f57398c
feat(history): 实现超长对话历史按日归档与滑动窗口 (Phase P0)
2026-09-13 02:50:20 +00:00
WeiCHEN
645bd06519
feat(prompt+cache): implement 10-section prompt template, true KB regulation recall, behavior rules and multi-level caching (P4)
2026-09-13 02:50:20 +00:00
WeiCHEN
1635ad0007
feat(coordinator): implement determinism-first query rewrite with ellipsis completion and pronoun resolution (P3)
2026-09-13 02:50:20 +00:00
WeiCHEN
640b672e8b
feat(ctxmgr): implement chat memory vectorization, privacy dual-gate retrieval and memory composer (P2)
2026-09-13 02:50:20 +00:00
WeiCHEN
c58d33b853
feat(ctxmgr): implement sliding window, rolling summarizer and DST task state (P1)
2026-09-13 02:50:20 +00:00
WeiCHEN
be659cba11
feat(chat): wire multi-turn dialogue broken links (G1/G2/G3/G9) with session restore
2026-09-13 02:50:20 +00:00
WeiCHEN
e590dcfd7b
docs(design): add multi-turn dialogue optimization system design (report 03)
2026-09-13 02:50:20 +00:00
WeiCHEN
e5e80a6fc6
feat(core): update backend coordinator, docgov lease, squad workflow and web governance integration
2026-09-13 02:50:20 +00:00
WeiCHEN
658e9db65e
fix(web): wire ALL_MOCK_DOCUMENTS and project deliverables to fix document switching
2026-09-13 02:50:20 +00:00
WeiCHEN
04cdb8f371
feat(scripts): add launch.sh to detect-and-restart dev stack (compose, backend, web)
2026-09-13 02:50:20 +00:00
WeiCHEN
b83e3de401
fix(web): render step_failed phase as failed strip node with retry reset
2026-09-13 02:50:20 +00:00
WeiCHEN
7e243f4330
docs(test): archive long-task phase live/resume UX real-agent report
2026-09-13 02:50:20 +00:00
WeiCHEN
096dc8a5b4
fix(web): distinguish recovery action styles for long-task failures
2026-09-13 02:50:20 +00:00
WeiCHEN
8292f69790
feat(web): drive long tasks from SSE with live phases and continue/restart recovery
2026-09-13 02:50:20 +00:00
WeiCHEN
4dd799c785
feat(web): add task SSE client and live phase-event mapper
2026-09-13 02:50:20 +00:00
WeiCHEN
1df0a3f15f
test(server): task stream transient injection, classification and resume integration tests
2026-09-13 02:50:20 +00:00
WeiCHEN
912eb61a02
feat(api): task stream request-id, resume mode and workspace-aware error classification
2026-09-13 02:50:20 +00:00
WeiCHEN
c83f53a4fa
docs(spec): add long-task phase live/resume UX P2 spec and plan
2026-09-13 02:50:20 +00:00
WeiCHEN
a6864fe7b4
docs(spec): archive chat wait-error-retry UX spec and implementation plan
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
545765c409
fix(web): escape HTML in chat markdown rendering
...
Prevent self-XSS when chat bubbles render user/LLM markdown via
dangerouslySetInnerHTML by escaping raw HTML after math/code
extraction and sanitizing link href schemes.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
e344a10a0f
docs(test): strengthen chat wait-error-retry report with web E2E evidence
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
4eaad5adb8
docs(test): archive chat wait-state error-retry UX real-agent report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
d03d9396e1
fix(web): scope Task 5 App.tsx to SSE wiring only
...
- Rebased App.tsx on the last clean Task-4 parent (5aa8129 ) and re-applied
only Task-5's SSE plumbing: streamAbortRef, isStreamingActive,
buildNetworkErrorInfo, runStreamAttempt, handleErrorAction,
handleStopStreaming, and the InputArea/MessageStream wiring.
- Removed the unscoped WIP that had been folded into b2cf863 (NeuroPulse
demo data/session-privacy/docgov-lease/cardActionPolicy imports that do
not exist in git, causing b2cf863 to fail to build in isolation).
- Real-backend path now appends the pending placeholder and calls
runStreamAttempt immediately; the artificial setTimeout(600) is only
used for the mock keyword-shortcut demo branches (unchanged from 5aa8129 ),
gated by precomputed predicates so it never wraps the SSE call.
- Preserved 5aa8129's mock keyword shortcuts (生成文档/驳回/修改/通过等) verbatim.
- No silent success-template fallback re-introduced.
- P1 error actions remain filtered to retry-only; auto-retry transient
attempts stay capped at 2 with 1s/2s backoff via AbortController.
- Bloated WIP App.tsx backed up to .superpowers/sdd/App.tsx.wip-backup
for later use by whichever task owns NeuroPulse/session-privacy/docgov
lease work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
0cb664d540
feat(web): drive chat bubbles from SSE with auto-retry and stop
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
0d0ef5d5b6
feat(web): render chat wait-state and structured error actions in bubbles
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
fa6b979346
fix(web): drop out-of-scope ProjectSession.userId from Task 3
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
9d0a054307
feat(web): add chat SSE client and transient auto-retry helpers
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
7615beeaf9
fix(agent): scope Task 2 to SSE phases/errors without dialogue_llm leak
...
- untrack internal/coordinator/dialogue_llm.go (kept on disk untracked as local WIP for a future dialogue-LLM commit with its own tests; it depends on engine.go fields (dialogueBackend, ReplySource) not yet committed)
- slim internal/chat/session.go back to Task 2 scope relative to bfa6889 : keep EmitErrorInfo(stream.ClassifyError(...)) for intent+coordination errors and the dialogue_generating EmitPhase before ProcessIntent; drop sync.Mutex/mu, ChatResponse.ReplySource, preference/RecentDialogue injection block, and collectRecentDialogue helper (unrelated WIP for the dialogue-LLM feature)
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
1889279b18
feat(agent): emit dialogue phases and classified SSE errors with request id
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
c32532bce9
fix(stream): avoid dial substring false-positive in ClassifyError
...
Remove "dial" from networkHints to stop "dialogue" misclassification;
extend workspace/resumable and EmitErrorInfo test coverage.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
f9b676ac93
feat(stream): add structured ErrorInfo and error classification
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
e8b9347d8d
fix(web): redesign auth and settings UI using system design tokens and high-fidelity styles
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
weichen
eedf2d17e0
merge: feature/rbac-auth — dynamic RBAC and auth settings
2026-09-13 02:50:20 +00:00
weichen
ade4723a3a
merge: feature/web-features — intent funnel export and templates
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
aef1d79060
docs(test): archive auth and dual settings test report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
cd4d0a19e5
test(engine): add integration tests and archive test report for project template cloning
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
b4e4a64cd0
feat(web): integrate auth guards, dual settings and dev switcher
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
cd08e443eb
feat(web): implement dedicated AdminSettingsModal for role-admin
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
775bf73fb1
feat(web): implement dedicated UserSettingsModal
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
793efd31d2
feat(web): add LoginView and FirstLoginPasswordModal components
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
6f1579dde3
feat(web): add frontend auth types and api client
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
2047c85ba5
feat(api): add auth and admin management endpoints
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
6c9ad6b61d
feat(auth): add auth data models, config and store engine
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
e8ca4b02aa
docs(plan): add auth and dual settings implementation plan
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
72f54a2461
docs(spec): add auth and dual settings design specification
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
9c586f2baf
test(rbac): archive dynamic roles and doc visibility rbac test report
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
e1c1d03a85
feat(web): wire rbac permission enforcement into left rail and rights modal
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00
WeiCHEN and Cursor
d905c91338
feat(web): add doc visibility override modal and badges in deck drawer
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-13 02:50:20 +00:00