 Rogeeandrogee
|
26eae1a0d7
|
fix(HH-603): harden legacy database logging (#163)
Co-authored-by: Rogee <rogee@ipao.vip>
|
2026-08-24 13:49:07 +08:00 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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 |
|
 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
|
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 |
|
 Rogeeandrogee
|
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 |
|
 Rogeeandrogee
|
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
|
4611c0201f
|
test: improve backend unit coverage
|
2026-08-04 12:26:25 +08:00 |
|
Rogee
|
cd82d079e3
|
fix(ws): 发送 WebSocket 协议级 Ping 控制帧防止 60s 后连接断开
writePump 只发 ActionCable 文本 JSON ping,从不发 websocket.PingMessage,
导致 readPump 的 PongHandler 永远不触发,ReadDeadline(60s) 到期后连接
被强制关闭。前端每 60 秒弹出"离线""重连"通知。
修复:在 ticker 中先发 PingMessage 控制帧(浏览器自动回 Pong 重置
ReadDeadline),再发 ActionCable 文本 ping(保活 ConnectionMonitor)。
同时包含此前会话中的其他变更:
- 移除安全设置(SAML)页面及路由
- 新增超级管理员控制台前端页面
- platform agent_bots 路由使用 Platform* handler
- 超级管理员入口改为 SPA 内路由跳转
|
2026-07-30 16:55:44 +08:00 |
|
rogee
|
0dabb8cfa5
|
docs: 整理文档目录结构 — 清理过时文档、归集功能子目录、统一命名规范
清理:
- 删除 34 份过时文档(gap reports/QA临时报告/验收报告/阶段性文档)
- 删除 docs/.hermes/skills 第三方 skills 副本(16 文件)
- 删除 skills-lock.json
目录归集:
- 根目录仅保留 README.md 索引
- product/ — 产品与架构设计(PRD + ARCHITECTURE + P2设计文档 + AI/企业路线图)
- tracking/ — Chatwoot parity 开发跟踪
- requirements/ — M01-M12 模块需求
- plans/ — 历史实现计划
- parity/ — 路由 parity 与前端契约
- qa/ — QA 报告与测试计划
- ops/ — 运维部署
命名规范:
- 全小写 kebab-case,禁止全大写文件名
- product/tracking/ops 用 NN- 序号前缀
- requirements 用 MNN- 两位零填充模块号
- plans/qa 用 YYYY-MM-DD- 日期前缀
- requirements M1-M9 零填充为 M01-M09(修复字典序)
同步更新:
- backend/cmd/route_parity/main.go 路径默认值
- backend/scripts/parity_frontend_smoke.sh 报告路径
- 所有 docs 内部交叉引用
- .gitignore 排除编译产物 (backend/gochat, backend/route_parity)
- 新增迁移 000052/000053
- 前端 WS 相关修改
|
2026-07-09 14:53:27 +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 |
|