84 Commits
Author SHA1 Message Date
rogee a0c6969da0 fix(frontend): preserve timeout label success toast
Build and publish Docker images / Build and publish images (push) Successful in 2m21s
2026-09-16 09:45:52 +08:00
rogee dc5ace9003 fix: localize validation errors and polish delivery
Build and publish Docker images / Build and publish images (push) Failing after 25s
2026-09-15 16:28:02 +08:00
rogee f79c80519d feat(frontend): add compact anonymous conversation labels
Build and publish Docker images / Build and publish images (push) Successful in 2m48s
2026-09-15 13:30:49 +08:00
rogee 5a0e9ecada fix: hydrate realtime conversations before rendering
Build and publish Docker images / Build and publish images (push) Successful in 3m16s
2026-09-14 21:39:56 +08:00
rogee 665e531dc3 fix: keep pending widget conversations visible and searchable
Build and publish Docker images / Build and publish images (push) Successful in 2m25s
2026-09-14 17:30:24 +08:00
rogee ca2a3c2dee fix: localize API error messages
Build and publish Docker images / Build and publish images (push) Successful in 2m35s
2026-09-14 14:40:49 +08:00
rogee 4ad56ee9f8 Publish current project state 2026-09-14 10:47:21 +08:00
rogee 0dd188c46f feat: complete current GoChat updates 2026-09-13 00:13:55 +08:00
rogee 6e62f5094f feat(shangwutong): render inbound images inline 2026-09-12 15:26:03 +08:00
rogee c415d6d13f feat: improve inbox management and conversation list 2026-09-12 14:42:57 +08:00
rogee ca63efaa79 feat(frontend): add Shangwutong inbox presence actions 2026-09-12 10:41:55 +08:00
rogee 31f157a4f5 feat(shangwutong): sync classifications and update conversations 2026-09-11 17:08:18 +08:00
rogee 6eee55860f fix(agent): allow super admins to manage agents 2026-09-11 11:38:15 +08:00
rogee f29a94339b fix(frontend): localize agent creation errors 2026-09-11 11:28:46 +08:00
Rogeeandrogee 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
Rogeeandrogee 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
Rogeeandrogee 92ace6b041 test(HH-592): cover realtime timestamp boundaries (#153)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 11:13:53 +08:00
Rogeeandrogee b981cc6811 fix(HH-576): normalize realtime message timestamps (#148)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 10:16:22 +08:00
Rogeeandrogee 84a1e35294 HH-569: guard replayed frontend realtime messages (#144)
* fix(HH-569): guard replayed realtime messages

* fix(HH-569): gate dashboard message side effects

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 00:42:05 +08:00
Rogeeandrogee cb0b554e94 HH-555: remove advanced assignment commercial gate (#138)
* fix(HH-555): remove advanced assignment paywall

* fix(HH-555): gate assignment entries with assignment v2

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 23:19:51 +08:00
Rogeeandrogee 35727be51a HH-560: localize upstream activity messages (#137)
* fix(HH-560): localize upstream activity messages

* fix(HH-560): preserve unknown activity content

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 22:11:00 +08:00
Rogeeandrogee 1b5ea7c227 HH-551: localize activity messages (#132)
* fix(HH-551): localize activity messages

* fix(HH-551): handle null activity content

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 21:21:44 +08:00
Rogeeandrogee e41d40feb8 HH-546: flatten conversation AI actions (#128)
* fix(HH-546): flatten conversation AI actions

* fix(HH-546): wrap AI actions on narrow screens

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 21:16:19 +08:00
Rogeeandrogee e11f478c1a fix(HH-550): scope assignment upgrade prompts to cloud (#129)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 20:38:01 +08:00
Rogeeandrogee 867092fd99 HH-530: replace user-facing Chatwoot branding with GoChat (#117)
* fix(HH-530): replace user-facing Chatwoot branding

* fix(HH-530): close branding review blockers

* test(HH-530): cover update banner binding

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 18:14:02 +08:00
Rogeeandrogee 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
Rogeeandrogee 02a188dc29 HH-443: establish production CI and supply-chain evidence (#93)
* ci: enforce production release gates

* ci: close release gate review blockers

* ci: preserve verified digests during promotion

* ci: serialize and verify release cleanup

* ci: build govulncheck with Shangwutong toolchain

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 03:26:38 +08:00
Rogeeandrogee 038f185b57 H-392: surface Captain playground failures (#66)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:01:13 +08:00
Rogeeandrogee abb1bed424 H-337: add local Captain acceptance fixture (#63)
* H-337: add local Captain acceptance fixture

* fix(H-337): close acceptance fixture review gaps

* fix(H-337): reject non-string skill metadata

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-20 20:05:40 +08:00
Rogeeandrogee 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
Rogeeandrogee 6e582c767c H-296: cover stale Captain Skills list errors (#52)
* test: cover stale captain skill list errors

* test: flush stale skill request rejection

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 20:24:10 +08:00
Rogeeandrogee f50eacdc92 H-289: add Captain Skill management UI (#47)
* H-289: add Captain Skill management UI

* H-289: guard Captain Skill assistant switches

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-18 15:34:26 +08:00
Rogeeandrogee 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
Rogeeandrogee 0555b296cc fix(conversations): sync AI takeover exit in realtime (#6)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 01:28:31 +08:00
Rogeeandrogee 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 4be52e05c7 fix: 收紧客服功能访问权限 2026-08-08 20:28:18 +08:00
Rogee dcfd4b4b9d fix: 修复系统消息长链接溢出 2026-08-08 19:54:06 +08:00
Rogee 518f9c5d6b fix: 修复客服权限与收件箱配置问题 2026-08-08 19:52:18 +08:00
Rogee 5c47d1d5fe fix(shangwutong): 完善访客资料同步 2026-08-06 15:14:32 +08:00
Rogee 3bceb2d0b2 fix(conversations): 优化列表时间显示 2026-08-06 11:31:14 +08:00
Rogee 8d002d1dbe fix(conversations): 修复会话标识与解决后跳转 2026-08-06 11:19:39 +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 3d7ff5a6b1 chore: complete Shangwutong connector integration 2026-08-04 18:00:10 +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
Rogee 63df5b8b91 fix(captain): 试验场不查 FAQ 知识库 + 添加常见问题报 400
三个问题修复:

1. 添加常见问题报 400 (assistant_id 类型不匹配)
   - CreateResponseDialog.vue: route.params.assistantId 是字符串,
     传给后端 uint 字段导致 JSON 反序列化失败
   - 修复: Number(route.params.assistantId) 转为数字
   - 同时修复 POST /assistant_responses 无尾部斜杠 307 重定向问题

2. 试验场 playground 不做 RAG 检索
   - generatePlaygroundLLMResponse 只构建 system prompt + 对话历史,
     从不查 FAQ 知识库
   - 新增 retrieveFAQContext(): embed 用户问题 → pgvector 搜索 approved
     FAQ → 注入 system prompt
   - 受 feature_faq 配置开关控制

3. FAQ embedding 无法写入 (pgvector 序列化 + 维度问题)
   - pgvector stub 无 driver.Valuer, GORM Save() 报 SQLSTATE 42804
   - 新增 UpdateEmbedding() 用 ?::vector 原始 SQL 绕过
   - SimilaritySearch 排除 embedding 列 + 手动格式化向量字面量
   - embedding 列从 vector(1536) 改为 vector (跟随模型维度)
   - FAQ 创建/更新时自动索引 embedding (SetRAGService 注入)
2026-08-01 19:37:19 +08:00
Rogee bb4c4bb807 fix(captain): 护栏/回复指南编辑按钮不生效
根因:
1. guardrails/guidelines 页面直接导航时 store 无助手记录,getRecord
   返回空对象导致列表为空、编辑无数据
2. storeFactoryHelper updateRecord 用 EDIT mutation(仅更新已有记录),
   store 为空时 API 返回数据被丢弃

修复:
- storeFactoryHelper: updateRecord 改用 UPSERT,确保 API 返回记录始终写入 store
- guardrails/Index.vue & guidelines/Index.vue: onMounted 时若 store 无记录
  则 dispatch captainAssistants/show 拉取单条助手数据
2026-08-01 16:24:09 +08:00