Commit Graph
100 Commits
Author SHA1 Message Date
Rogeeandrogee 56a2f2e6a5 ci: disable GitHub Actions workflow (#118)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 17:23:54 +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 eaf6edef66 HH-503: harden production Docker mock assertions (#112)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 07:40:23 +08:00
Rogeeandrogee a5d244d293 HH-500: add reproducible production dist bundle (#111)
* HH-500: add reproducible production dist bundle

* HH-500: make production bundle builds reproducible

* HH-500: lock complete runtime APK closure

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-23 00:22:20 +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 4004645574 HH-459: disable worker HTTP healthcheck in quickstart (#105)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:20:44 +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 c86744d326 docs: update production config references (HH-465) (#103)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 21:20:11 +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 e1557e7f21 test(HH-468): reject tampered promoted attestations (#98)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 04:35:33 +08:00
Rogeeandrogee fccfa85c3a ci(HH-464): pin browser harness Chrome (#97)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 04:30:06 +08:00
Rogeeandrogee b6b1597e90 HH-462: harden release attestation semantics (#94)
* HH-462: bind release attestations to source and digest

* HH-462: exercise release attestation production paths

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 04:07:32 +08:00
Rogeeandrogee 0e23ccc465 ci(HH-451): harden production Compose smoke (#95)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-22 03:58:11 +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 46d63245a1 HH-424: clean up Vite build warnings (#80)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 15:06:05 +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 e665abbfb8 H-417: include frontend TypeScript in format checks (#78)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 14:37:23 +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 b971b09ac7 H-409: restore frontend ESLint and Prettier baseline (#72)
* H-409: restore frontend lint baseline

* ci(H-409): check representative frontend lint

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 14:11:08 +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
Rogeeandrogee 517a6090b3 test(H-359): assert direct upload completes after retry (#70)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:13:58 +08:00
Rogeeandrogee 181e9051ec H-354: cover Captain provider timeout (#67)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-21 13:10:04 +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 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
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 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 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
Rogeeandrogee 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
Rogeeandrogee 55b56ee172 H-337: restore minimal GitHub Actions CI (#62)
* ci(H-337): restore minimal GitHub Actions checks

* ci(H-337): preserve workflow check identity

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-20 14:17:41 +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 1d8145f3b5 H-332: remove committed runtime artifacts (#58)
* H-332: remove committed runtime artifacts

* H-332: remove nested Playwright artifact

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 21:11:46 +08:00
Rogeeandrogee 8a8750c9f4 H-328: codify frontend delivery checks (#57)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 20:30:32 +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 644267f24a H-303: count cached Skill payloads against budget (#53)
* H-303: count cached skill payloads against budget

* H-303: exercise cached budget through skill runtime

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 18:23:09 +08:00
Rogeeandrogee 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
Rogeeandrogee 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
Rogeeandrogee c61b533ce2 H-313: move pnpm overrides to workspace root (#49)
* H-313: move pnpm overrides to workspace root

* H-313: align vite-node override with lockfile

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 17:55:00 +08:00
Rogeeandrogee be53f30394 H-290: enforce Captain Skill tenant bindings (#51)
* H-290: enforce Captain Skill tenant consistency

* H-290: fix SQLite tenant migration coverage

* H-290: leave tenant constraints to migrations

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 17:54:45 +08:00
Rogeeandrogee d54700ac13 chore(H-296): remove GitHub Actions workflow (#55)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 17:02:37 +08:00
Rogeeandrogee c2bde3bce2 H-286: tighten live Skill response contract (#50)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-19 10:34:30 +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 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 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
Rogeeandrogee c97097b79f H-276: tighten live Skill contract test (#43)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-18 10:44:57 +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 dae6301a13 H-150: stabilize PostgreSQL repository fixtures (#42)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-18 00:57:44 +08:00
Rogeeandrogee a3b01e664e H-263 restore PostgreSQL E2E coverage (#41)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-18 00:55:45 +08:00
Rogeeandrogee d252ee5f49 H-162: separate SWT and XST site identifiers (#40)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-16 23:03:31 +08:00
Rogeeandrogee f374fb9856 H-162: sync XST reception before outbound delivery (#39)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-16 21:47:46 +08:00
Rogeeandrogee 11b48bde97 H-162: fall back to mapped assignee for XST routing (#38)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-16 20:02:38 +08:00
Rogeeandrogee f77a007f62 H-162: add recoverable XST outbound delivery (#37)
* H-162: add recoverable XST outbound delivery

* H-162: close XST echo delivery races

* H-162: match echoes during XST retry

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-16 17:37:13 +08:00
Rogeeandrogee d1b11ce3ec H-162: confirm Shangwutong outbound delivery from echoes (#36)
* H-162: confirm Shangwutong sends from echoes

* fix(shangwutong): match echoes during send

* fix(shangwutong): preserve accepted delivery metric

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-16 12:35:40 +08:00
Rogeeandrogee 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
Rogeeandrogee 21a9a6793d H-162: serve built frontend from Go image (#34)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 20:49:26 +08:00
Rogeeandrogee e61f5b252f H-162: add PC conversation transfer flow (#33)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 19:02:52 +08:00
Rogeeandrogee 76244d6635 H-198: harden transfer acceptance boundaries (#32)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 15:59:22 +08:00
Rogeeandrogee 67eb80cb2b H-193: add durable transfer acceptance (#31)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 15:22:05 +08:00
Rogeeandrogee fe0fb6c6b2 H-181: add Shangwutong transfer and purview protocol (#30)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 12:50:03 +08:00
Rogeeandrogee 992c9bf0e9 H-171: require explicit Shangwutong send success (#29)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 12:18:55 +08:00
Rogeeandrogee 2d1b9ab5a7 H-170: parse Shangwutong send error header (#28)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 11:48:49 +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
Rogeeandrogee 55fac96700 H-148: close replaced logger file sinks (#26)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-15 00:04:01 +08:00
Rogeeandrogee 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
Rogeeandrogee 384cc56d97 H-142: eliminate worker race detector conflicts (#25)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 22:58:22 +08:00
Rogeeandrogee 13e948d4ab H-141: harden worker shutdown persistence (#24)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 22:43:01 +08:00
Rogeeandrogee 97ca3bc472 H-137: fix computed article distance mapping (#22)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 22:40:48 +08:00
Rogeeandrogee 849304ac87 H-130: reject empty rollback migration path (#21)
* H-130: reject empty rollback migration path

* H-130: lock Captain inbox assistant uniqueness

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 21:50:02 +08:00
Rogeeandrogee 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
Rogeeandrogee 5811260d83 H-127: align Captain inbox repository fixture (#20)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 19:06:31 +08:00
Rogeeandrogee c922460649 H-97: fix Shangwutong conversation routing (#16)
* H-60: harden Captain migration rollback and concurrency

* chore(agent): baseline — uncommitted work from the local directory

* fix: route Shangwutong events by display id

---------

Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 14:35:12 +08:00
Rogeeandrogee 376d0d9818 H-77: report missing Shangwutong source fields (#15)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-14 01:18:36 +08:00
Rogeeandrogee e33e72877e H-47: bound deferred contact metadata retries (#14)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 20:22:23 +08:00
Rogeeandrogee de285b4f5d H-47: retry CID until contact exists (#13)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 19:57:05 +08:00
Rogeeandrogee d00ea39f6c fix(shangwutong): map kind 24 contact cid (#12)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 19:27:26 +08:00
Rogeeandrogee a5ceb0af93 H-47: unblock connector sandbox setup (#11)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 18:25:19 +08:00
Rogeeandrogee fcfe5bd37c H-60: harden Captain migration rollback and concurrency (#10)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 17:13:17 +08:00
Rogeeandrogee 0540ae3791 H-55: make Captain bindings atomic (#9)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 16:24:39 +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 fff3dce1bd test(shangwutong): cover CID rename reliability (#7)
Co-authored-by: Rogee <rogee@ipao.vip>
2026-08-13 09:31:25 +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