Commit Graph
152 Commits
Author SHA1 Message Date
Rogeeandrogee 1287b7702a fix(HH-600): isolate notification Redis lifecycle (#157)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 12:24:34 +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 57f8a64fd8 fix(HH-591): bound notification shutdown XACK (#154)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 11:36:24 +08:00
Rogeeandrogee 2c6bee2b37 fix(HH-581): keep widget websocket on visitor auth (#152)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 10:54:38 +08:00
Rogeeandrogee 34c45ff2c4 HH-463: wait for redisstream XAck during shutdown (#149)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 10:30:50 +08:00
Rogeeandrogee 02e60b8db5 test(HH-589): cover favicon static route (#150)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 10:26:45 +08:00
Rogeeandrogee 83e2a8ead6 test(HH-572): cover PostgreSQL longest-waiting null order (#146)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 10:09:55 +08:00
Rogeeandrogee 4204ae6a3a HH-581: restore WebChannel status and reply visibility (#145)
* fix(realtime): normalize web channel status events (HH-581)

* fix(realtime): resolve legacy widget tokens safely (HH-581)

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 08:06:56 +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 391fe98ad6 HH-565: complete assignment parity regressions (#142)
* fix(HH-565): complete assignment parity regressions

* fix(HH-565): scope capacity exclusions per agent

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-24 00:16:03 +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 17244bcc9d HH-554: connect auto-assignment runtime policy (#135)
* fix(HH-554): connect auto-assignment runtime policy

* fix(HH-554): bound and coalesce assignment jobs

* fix(HH-554): drain assignment backlog safely

* fix(HH-554): hold assignment claim through retries

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 22:28:43 +08:00
Rogeeandrogee eb1b5c8066 test(HH-557): cover CORS YAML config loading (#134)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 21:12:35 +08:00
Rogeeandrogee 14b25959ab HH-553: remove deprecated CORS env references (#130)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 20:46:40 +08:00
Rogeeandrogee 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
Rogeeandrogee eb83d241fe HH-547: allow cross-origin widget requests (#126)
* HH-547: allow cross-origin widget requests

* fix(HH-547): align production preflight with wildcard CORS

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 20:11:04 +08:00
Rogeeandrogee 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
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 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 2c5e6e595f fix(shangwutong): initialize contact attributes on inbox creation 2026-08-23 17:32:35 +08:00
rogee 25ef9ae494 fix(deploy): reuse shared redis and serve dashboard at root 2026-08-23 17:32:02 +08:00
Rogeeandrogee 3aac701495 fix(HH-528): persist auto resolve message (#116)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 16:54:20 +08:00
Rogeeandrogee 5a61aac1f2 HH-529: allow blob avatar previews in CSP (#115)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 16:52:20 +08:00
Rogeeandrogee dac8c5e068 HH-502: cover non-widget message sender events (#113)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 07:40:38 +08:00
Rogeeandrogee 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
Rogeeandrogee f91dc6ca1a test(HH-460): observe restore file order (#108)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:35:31 +08:00
Rogeeandrogee 43253b51c9 HH-460: cover migration and backup restore regressions (#104)
* test(HH-460): cover migration and restore regressions

* test(HH-460): verify real restore evidence

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:20:27 +08:00
Rogeeandrogee 2b75390529 HH-452: cover upload security boundaries (#106)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:19:43 +08:00
Rogeeandrogee 6444c40531 test: preserve quality and websocket evidence (#107)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:19:09 +08:00
Rogeeandrogee fb83285617 HH-445: deploy production observability and runbooks (#96)
* HH-445: deploy production observability and runbooks

* fix(ops): share production database DSN

* fix(HH-445): enforce database TLS gate

* fix(HH-445): preserve production serve command

* fix(prod): require external database dependencies

* fix(prod): unify database host rejection gates

* test(prod): enforce exact database TLS runbook contract

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 19:39:57 +08:00
Rogeeandrogee 61376a57fd HH-446: restore auditable quality gates from current main (#102)
* HH-446: restore auditable quality gates

* test(HH-446): restore help center smoke contract

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 15:45:58 +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 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
Rogeeandrogee 6d6d80dd86 HH-441: harden durable storage and recovery (#92)
* HH-441: harden durable storage and recovery

* HH-441: clear recovery review blockers

* HH-441: enforce offsite backup failure domain

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 02:16:02 +08:00
Rogeeandrogee 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
Rogeeandrogee 7a9fec33c5 HH-439: harden production artifact pipeline (#86)
* HH-439: harden production artifact pipeline

* fix(HH-439): address production compose review

* fix(HH-439): preserve previous JWT secrets in production

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 20:20:00 +08:00
Rogeeandrogee 7e3872170f HH-448: enforce PostgreSQL E2E gate (#87)
* HH-448 enforce PostgreSQL E2E gate

* HH-448 fail CI when concurrency test is missing

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 20:00:41 +08:00
Rogeeandrogee 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
Rogeeandrogee 04c1654086 HH-427: add runtime config browser smoke (#81)
* HH-427: add runtime config browser smoke

* HH-427: enforce browser smoke in CI

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 16:02:54 +08:00
Rogeeandrogee 26d494c6d6 test(autoassignment): report cleanup errors (HH-423) (#79)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 14:41:25 +08:00
Rogeeandrogee a0f668b2d8 H-419: run auto-assignment concurrency on PostgreSQL (#77)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 14:18:32 +08:00
Rogeeandrogee 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
Rogeeandrogee 646449ebee test(autoassignment): stabilize concurrency diagnostics (#75)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:57:19 +08:00
Rogeeandrogee dddbe25899 H-412: cover legacy widget attachment parity (#73)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:50:08 +08:00
Rogeeandrogee 1afe9dddeb H-413: cover mismatched ContactInbox history (#74)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:49:11 +08:00
Rogeeandrogee 5135793bd2 test(autoassignment): cover concurrent CAS loser (#71)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:25:39 +08:00
Rogeeandrogee 40ab664b08 H-388: tighten contact inbox conversation scope (#68)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:19:12 +08:00
Rogeeandrogee a0a6c338f5 H-386: unify legacy widget message serialization (#69)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:18:13 +08:00