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
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
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
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
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
97ca3bc472
H-137: fix computed article distance mapping ( #22 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 22:40:48 +08:00
Rogee and rogee
6a3cb49781
H-105: ground Captain replies with inbox knowledge ( #18 )
...
* H-105: ground Captain replies with inbox knowledge
* H-105: harden Captain grounding
* H-126: exclude deleted article embeddings
---------
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 19:41:45 +08:00
Rogee and rogee
0540ae3791
H-55: make Captain bindings atomic ( #9 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 16:24:39 +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
5c47d1d5fe
fix(shangwutong): 完善访客资料同步
2026-08-06 15:14:32 +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
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
31238476b1
fix(captain): 修复 playground 500 — GetConfig nil pointer panic + 清理重复 buildSystemPrompt
...
根因:captain_assistants.config 中 temperature 字段为字符串 "0.5",
json.Unmarshal 到 float64 字段失败,GetConfig() 返回 nil,
调用方吞掉错误后 BuildAssistantPrompt 解引用 nil cfg 导致 panic。
修复:
- GetConfig() unmarshal 失败时返回空 &cfg{} 而非 nil,防止 nil dereference
- 删除 captain_assistant_service.go 中重复的 buildSystemPrompt 函数,
统一使用 SystemPromptBuilder.BuildAssistantPrompt
- generatePlaygroundLLMResponse / GenerateResponse 增加
ErrProviderNotConfigured 检查,返回 fallback 消息而非 500
2026-08-01 17:21:01 +08:00
Rogee
851ca7e372
refactor: 移除 SAML/LDAP/MFA 登录方式,仅保留本地账号密码和 OIDC
...
后端移除:
- SAML: auth/saml.go, handler/saml_handler.go, account_saml_settings_handler.go,
model/account_saml_settings.go, model/saml_idp_config.go, repo/*.go
- LDAP: auth/ldap.go, handler/ldap_handler.go, model/account_ldap_settings.go,
repo/account_ldap_settings_repo.go
- MFA: auth/mfa.go, handler/mfa_handler.go
- auth_service: 移除 mfaService 依赖、MFARequired 字段、LoginWithMFA 方法
- auth_handler: 移除 LoginMFA handler、MFA 分支逻辑
- bootstrap: 移除 SAML/LDAP/MFA service 初始化和 handler 注册
- sso_middleware: 精简为仅支持 OIDC provider
- router: 移除 SAML/LDAP/MFA 路由注册
- config: 移除 SAMLConfig/LDAPConfig struct 和 defaults
前端移除:
- v3/login: 移除 MFA 验证流程和 SAML 登录入口
- v3/api/auth: 移除 MFA 响应处理
- v3/routes: 移除 SSO login 路由
- dashboard: 移除 MFA 设置页面、SAML 安全设置页面
- i18n: 移除 mfa.json
- featureFlags: 移除 SAML feature flag
.env.example / .env: 移除 SAML/LDAP 配置段
2026-07-29 19:03:04 +08:00
rogee
c3806b701a
feat(parity): align Chatwoot 4.15.1 contracts
2026-07-14 12:11:52 +08:00
rogee
19cee9af11
fix(copilot): align runtime configuration contracts
2026-07-13 14:57:28 +08:00
rogee
8b9eedc0e2
feat(copilot): finish configuration center
2026-07-13 14:57:28 +08:00
rogee
f923791d39
update
2026-07-12 12:20:23 +08:00
rogee
7f2d5579ff
fix: stabilize development config and account settings
2026-07-11 17:15:38 +08:00
rogee
c72e359e48
Phase 3.1: Help Center semantic search with pgvector
...
- ArticleEmbeddingRepo (new): Upsert, GetByArticleID, DeleteByArticleID,
SearchByEmbedding using pgvector cosine distance (vector_embedding column)
- ArticleEmbedding model: add VectorEmbedding pgvector.Vector field
alongside existing JSONB Embedding (backward compatible)
- ArticleService: add SemanticSearch() — generates query embedding via LLM,
searches articles by cosine similarity; add GenerateEmbedding() — creates
and stores article embedding from title+description+content
- ArticleHandler: add SemanticSearch endpoint
GET /portals/:portal_id/articles/semantic_search?query=...
- bootstrap.go: inject articleEmbeddingRepo + llmProvider into ArticleService
- router.go: register /articles/semantic_search route
- migration 000049: add vector(1536) column to article_embeddings table,
create ivfflat index, migrate existing JSONB data to vector format
Verified: go build + go vet + go test all pass
2026-07-08 15:38:08 +08:00
rogee
fe0881c02b
Update TestAccountDefaultValues assertion to match zh_CN default locale
...
Account.Locale gorm default was changed from 'en' to 'zh_CN' in the
locale cleanup commit (a1ae852 ), but the default-values test still
asserted 'en', causing TestAccountDefaultValues to fail. Align the
assertion with the new default.
2026-07-08 10:13:58 +08:00
rogee
a1ae852eb2
Fix widget i18n missing locale files and clean up unused locales
...
- widget/i18n/index.js: only import en.json and zh_CN.json (the only
locale files present); remove 40+ imports for missing locale JSONs
that caused Vite compile failure and global white screen
- dashboard/i18n/index.js: remove unused locale imports for consistency
- Remove 62 unused locale JSON files from widget/i18n/locale/
- Minor: update index.html, test helpers, e2e test, languages spec
2026-07-08 09:57:00 +08:00
rogee
aeddedf2a3
Reorganize repo: backend/, deploy/, docs/ layout + AGENTS.md
...
Restructure the monorepo into clear top-level directories:
- backend/: Go module root (cmd, internal, pkg, configs, migrations,
docs/swagger, scripts, tests, go.mod, Makefile, .air.toml)
- deploy/: Docker (Dockerfile, docker-compose*), quickstart, fluentd
- docs/: project documentation + reports/ (moved from repo root)
- AGENTS.md: new AI coding-agent guide at repo root
Update all references to the new layout:
- Dockerfile: COPY backend/go.mod, COPY backend/ (context = repo root)
- docker-compose files: context ../.., dockerfile deploy/docker/Dockerfile,
env_file ../../.env, volume mounts ../../backend:/app
- deploy/quickstart/compose.yaml: dockerfile deploy/docker/Dockerfile
- CI: working-directory: backend for go commands, file deploy/docker/Dockerfile,
coverage path backend/coverage.out, health_check backend/scripts/
- backend/Makefile: docker target uses -f ../deploy/docker/Dockerfile ../
- README: architecture tree, quickstart, config paths updated
Move root stray scripts (rename_models.*, run_m11_tests.sh, verify_build.sh,
gorm_bool_main.go) to backend/scripts/legacy/. All moves via git mv to
preserve history. Build, vet, SQLite tests, and docker compose config verified.
2026-07-07 14:44:12 +08:00