Rogee and rogee
49559d6ce1
HH-606: cover soft-deleted inbox assistants ( #162 )
...
* test(HH-606): cover soft-deleted inbox assistants
* test(HH-606): bind soft-deleted inbox to persisted assistant
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-24 14:00:17 +08:00
Rogee and rogee
26eae1a0d7
fix(HH-603): harden legacy database logging ( #163 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-24 13:49:07 +08:00
Rogee and rogee
a7e96afef4
HH-598: hide unavailable AI takeover ( #155 )
...
* fix(HH-598): hide unavailable AI takeover
* fix: isolate inbox assistant availability
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-24 12:49:46 +08:00
Rogee and rogee
e8c010406d
fix(security): redact database query parameters (HH-596) ( #159 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-24 12:22:16 +08:00
Rogee and rogee
88ac30d0b8
test(HH-558): complete WebChannel sender display regression matrix ( #141 )
...
* chore(agent): baseline — uncommitted work from the local directory
* test(HH-558): cover widget sender display matrix
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-24 00:16:38 +08:00
Rogee and rogee
f36606a4f2
HH-564: harden durable realtime publish boundaries ( #139 )
...
* fix(HH-564): harden durable realtime enqueue
* fix(HH-564): wire production SSE stream
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 23:38:00 +08:00
Rogee and rogee
60a6ac4785
fix: restore web widget realtime replies (HH-556) ( #136 )
...
* fix: restore web widget realtime replies (HH-556)
* fix: make realtime delivery durable (HH-556)
* fix: make realtime message outbox atomic (HH-556)
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 22:35:10 +08:00
Rogee and rogee
8d5d019bb5
HH-548: allow Super Admin sessions to load platform lists ( #125 )
...
* fix(HH-548): authorize super admin platform lists
* fix(HH-548): limit dual auth to platform lists
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 20:21:05 +08:00
Rogee and rogee
a2e4f9a1e8
HH-540: scope iframe policy to Widget page ( #123 )
...
* fix(HH-540): scope iframe policy to widget page
* fix(HH-540): reject non-string allowed domains
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 18:37:08 +08:00
Rogee and rogee
f719a18ba8
HH-533: align ActionCable heartbeat protocol ( #121 )
...
* fix(ws): align ActionCable heartbeat protocol (HH-533)
* test(ws): cover ActionCable heartbeat cadence (HH-533)
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 17:46:44 +08:00
Rogee and rogee
3aac701495
fix(HH-528): persist auto resolve message ( #116 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 16:54:20 +08:00
Rogee and rogee
ef8931099c
HH-469: close WebSocket fanout contract gaps ( #109 )
...
* HH-469: close websocket fanout contract gaps
* fix: unify message sender contracts
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-23 00:22:01 +08:00
Rogee and rogee
f719529d66
fix(security): harden auth and secret handling (HH-444) ( #101 )
...
* fix(security): harden auth and credential handling (HH-444)
* fix(security): address HH-444 review blockers
* fix(security): close remaining HH-444 review blockers
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-22 15:45:06 +08:00
Rogee and rogee
798ea43c2f
HH-442: isolate runtime processes and harden shutdown ( #90 )
...
* HH-442: isolate runtime processes and harden shutdown
* HH-442: harden worker shutdown races
* HH-442: gate dependency shutdown on active handlers
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-22 02:38:15 +08:00
Rogee and rogee
77c91662d2
HH-438: close upload and remote URL attack surfaces ( #89 )
...
* HH-438: close upload and remote URL attack surfaces
* HH-438: use valid PNG in direct upload test
* HH-438: align PostgreSQL upload staging schema
* HH-438: run upload migrations before PostgreSQL E2E
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 20:36:52 +08:00
Rogee and rogee
cf263d10b4
HH-437: harden production auth and tenant authorization ( #84 )
...
* HH-437 harden auth and account authorization
* HH-437 reject revoked platform access
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 19:13:10 +08:00
Rogee and rogee
e8fa7c9c2c
H-418: cover widget direct upload file flow ( #76 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 14:17:03 +08:00
Rogee and rogee
dddbe25899
H-412: cover legacy widget attachment parity ( #73 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:50:08 +08:00
Rogee and rogee
a0a6c338f5
H-386: unify legacy widget message serialization ( #69 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:18:13 +08:00
Rogee and rogee
181e9051ec
H-354: cover Captain provider timeout ( #67 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:10:04 +08:00
Rogee and rogee
d948222ac6
H-337: restore Captain inbox takeover and KB citations ( #65 )
...
* fix(captain): restore inbox takeover and KB citations
* fix(captain): harden grounded citations and smoke seed
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-20 22:33:38 +08:00
Rogee and rogee
b31b1b9562
H-337: restore Web widget reply visibility ( #64 )
...
* H-337: restore widget reply delivery
* H-337: harden widget conversation ownership
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-20 22:22:27 +08:00
Rogee and rogee
60ad320e8d
[H-337] Fix Captain provider runtime and knowledge flow ( #61 )
...
* fix(H-337): configure Captain provider runtime
* fix(captain): make knowledge rebuild atomic
* fix(captain): scope retrieval provider failures
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-20 14:46:01 +08:00
Rogee and rogee
3d9817c9f5
H-337: fix Web Channel availability and realtime delivery ( #60 )
...
* H-337: fix Web Channel availability and realtime delivery
* fix(widget): preserve realtime sender and activity contracts
* fix(widget): keep realtime sender payloads consistent
* fix(widget): make public message persistence atomic
* fix(inbox): keep availability projection out of schema
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-20 14:30:05 +08:00
Rogee and rogee
6c78820a1f
H-338: close H-335 release blockers ( #59 )
...
* H-16: align takeover with channel AI workflow (#2 )
* feat(conversations): complete manual AI takeover
* fix(conversations): align AI takeover flow with channel AI
* fix(conversations): close takeover review gaps
---------
Co-authored-by: Rogee <rogee@ipao.vip >
* feat(shangwutong): sync customer names back to channel (#3 )
Co-authored-by: Rogee <rogee@ipao.vip >
* fix(shangwutong): close contact sync review gaps (#4 )
Co-authored-by: Rogee <rogee@ipao.vip >
* H-28: harden Shangwutong CID sync (#5 )
* fix(shangwutong): close contact sync review gaps
* fix(shangwutong): harden CID sync boundaries
---------
Co-authored-by: Rogee <rogee@ipao.vip >
* fix(conversations): sync AI takeover exit in realtime (#6 )
Co-authored-by: Rogee <rogee@ipao.vip >
* test(shangwutong): cover CID rename reliability (#7 )
Co-authored-by: Rogee <rogee@ipao.vip >
* H-43: fix WEB Captain takeover E2E flow (#8 )
* test(shangwutong): cover CID rename reliability
* H-43: fix WEB Captain takeover flow
* H-48: preserve compatible provider model
* H-49: make Captain takeover atomic
* H-50: prevent duplicate widget initialization
---------
Co-authored-by: Rogee <rogee@ipao.vip >
* H-55: make Captain bindings atomic (#9 )
Co-authored-by: Rogee <rogee@ipao.vip >
* H-60: harden Captain migration rollback and concurrency
* chore(agent): baseline — uncommitted work from the local directory
* H-335: add safe Captain skills and user deactivation
* H-338: close auth and Captain review blockers
* H-338: close assignment and session races
* H-338: close assignment and websocket invalidation gaps
* H-338: enforce assignment write invariants
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-20 10:21:19 +08:00
Rogee and rogee
35360d3a92
H-326: speed up profile handler race tests ( #56 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 18:05:24 +08:00
Rogee and rogee
aaad337ef3
H-292: prove Captain Skill updates reach CAS ( #54 )
...
* H-292: prove Captain Skill updates reach CAS
* H-292: prove handler conflict comes from CAS
* H-292: reuse profile test password digest
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 17:55:19 +08:00
Rogee and rogee
2b182f9956
H-300: wire Captain Skills into Web runtime ( #48 )
...
* H-300: wire Captain Skills into Web runtime
* H-300: enforce effective model and conservative skill budget
* H-300: fix CI gosec step
* ci: extend golangci-lint timeout
* fix lint findings across backend
* fix(push): resolve delivery protocol blockers
* test(repository): close SQLite test databases
* test(repository): reuse SQLite schema per package
* H-307: restore backend Go cache in CI
* H-307: prefetch modules before cold lint
* H-307: resolve govulncheck security gate
* H-307: build lint with patched Go toolchain
* H-307: clear remaining security scan findings
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 07:08:14 +08:00
Rogee and rogee
0f2b8d7857
H-289: add Captain Skill management API ( #46 )
...
* H-289: add Captain Skill management API
* H-289: guard Captain Skill updates with CAS
* H-289: version all Captain Skill updates
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-18 14:29:10 +08:00
Rogee and rogee
fad2631b23
test(H-271): remove race-suite lifecycle blockers ( #45 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-18 10:20:11 +08:00
Rogee and rogee
f604466d4a
H-162: make message routes display-ID only ( #35 )
...
* H-162: make message routes display-ID only
* H-162: cover frontend display-ID message flow
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-16 10:18:16 +08:00
Rogee and rogee
18ecee3e46
H-116: close visitor payload trust boundaries ( #19 )
...
* H-116: close visitor payload trust boundaries
* H-129: unblock SQLite backend tests
* H-129: remove stale last-seen response assertions
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 01:15:04 +08:00
Rogee and rogee
0cd2574154
H-139: align update last seen response tests ( #23 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 23:11:07 +08:00
Rogee and rogee
a5ceb0af93
H-47: unblock connector sandbox setup ( #11 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 18:25:19 +08:00
Rogee and rogee
74eb006985
H-43: fix WEB Captain takeover E2E flow ( #8 )
...
* test(shangwutong): cover CID rename reliability
* H-43: fix WEB Captain takeover flow
* H-48: preserve compatible provider model
* H-49: make Captain takeover atomic
* H-50: prevent duplicate widget initialization
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 14:49:04 +08:00
Rogee and rogee
fff3dce1bd
test(shangwutong): cover CID rename reliability ( #7 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 09:31:25 +08:00
Rogee and rogee
d0995798f4
H-28: harden Shangwutong CID sync ( #5 )
...
* fix(shangwutong): close contact sync review gaps
* fix(shangwutong): harden CID sync boundaries
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 01:26:56 +08:00
Rogee and rogee
0e9bf8dc14
fix(shangwutong): close contact sync review gaps ( #4 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 01:21:07 +08:00
Rogee and rogee
406e7a07fe
feat(shangwutong): sync customer names back to channel ( #3 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-12 22:58:46 +08:00
Rogee and rogee
83a8ab315a
H-16: align takeover with channel AI workflow ( #2 )
...
* feat(conversations): complete manual AI takeover
* fix(conversations): align AI takeover flow with channel AI
* fix(conversations): close takeover review gaps
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-12 22:57:06 +08:00
rogee
4bf6ba6b20
feat(conversations): complete manual AI takeover
2026-08-12 21:16:49 +08:00
Rogee
518f9c5d6b
fix: 修复客服权限与收件箱配置问题
2026-08-08 19:52:18 +08:00
Rogee
dc2a6577bf
fix(shangwutong): 来源信息改为系统消息
2026-08-06 17:55:54 +08:00
Rogee
d2aeea5f44
fix(shangwutong): 展示会话来源信息
2026-08-06 16:54:57 +08:00
Rogee
b78f963472
chore: 提交剩余开发改动
...
包含商务通消息映射、会话时间与未读状态、前端消息展示、数据库修复迁移、测试覆盖备份及 Captain 设计文档。
2026-08-06 10:10:25 +08:00
Rogee
8f2cc12628
fix(conversations): 修复状态切换与历史会话路由
...
- 处理历史主键与 display_id 冲突,确保消息和状态操作命中同一会话
- 允许已软删除收件箱中的历史会话切换状态
- 解决会话后自动打开列表中的相邻会话
2026-08-06 10:08:05 +08:00
Rogee
4611c0201f
test: improve backend unit coverage
2026-08-04 12:26:25 +08:00
rogee
897b4e018f
feat(channels): add Shangwutong connector
2026-08-03 10:13:40 +08:00
Rogee
3a62f01942
fix(ui): 自定义工具表单 overflow-y-scroll→auto + 认证方式NONE翻译改为'无' + Captain文档爬虫/同步后端
2026-08-01 21:25:55 +08:00
Rogee
1446cfe701
feat(channels): 社交渠道 OAuth 改进 + 集成应用重命名 + AI 流程文档
...
- Facebook/Instagram/TikTok 渠道 OAuth 授权流程改进
- 新增 oauth/credentialstore 包
- 集成应用 OpenAI 重命名为 OpenAI 兼容 (migration 061)
- 消息生命周期与 AI 流程架构文档
- inbox 管理界面 i18n 更新
2026-08-01 19:38:27 +08:00