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
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
46d63245a1
HH-424: clean up Vite build warnings ( #80 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 15:06:05 +08:00
Rogee and rogee
26d494c6d6
test(autoassignment): report cleanup errors (HH-423) ( #79 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 14:41:25 +08:00
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
646449ebee
test(autoassignment): stabilize concurrency diagnostics ( #75 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:57:19 +08:00
Rogee and rogee
dddbe25899
H-412: cover legacy widget attachment parity ( #73 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:50:08 +08:00
Rogee and rogee
1afe9dddeb
H-413: cover mismatched ContactInbox history ( #74 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:49:11 +08:00
Rogee and rogee
5135793bd2
test(autoassignment): cover concurrent CAS loser ( #71 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:25:39 +08:00
Rogee and rogee
40ab664b08
H-388: tighten contact inbox conversation scope ( #68 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:19:12 +08:00
Rogee and rogee
a0a6c338f5
H-386: unify legacy widget message serialization ( #69 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:18:13 +08:00
Rogee and rogee
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
Rogee and rogee
181e9051ec
H-354: cover Captain provider timeout ( #67 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:10:04 +08:00
Rogee and rogee
038f185b57
H-392: surface Captain playground failures ( #66 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-21 13:01:13 +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
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
Rogee and rogee
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
Rogee and rogee
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
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
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
8a8750c9f4
H-328: codify frontend delivery checks ( #57 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 20:30:32 +08:00
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
d54700ac13
chore(H-296): remove GitHub Actions workflow ( #55 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 17:02:37 +08:00
Rogee and rogee
c2bde3bce2
H-286: tighten live Skill response contract ( #50 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-19 10:34:30 +08:00
Rogee and rogee
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
Rogee and rogee
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
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
c97097b79f
H-276: tighten live Skill contract test ( #43 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-18 10:44:57 +08:00
Rogee and rogee
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
Rogee and rogee
dae6301a13
H-150: stabilize PostgreSQL repository fixtures ( #42 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-18 00:57:44 +08:00
Rogee and rogee
a3b01e664e
H-263 restore PostgreSQL E2E coverage ( #41 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-18 00:55:45 +08:00
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
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
Rogee and rogee
e61f5b252f
H-162: add PC conversation transfer flow ( #33 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 19:02:52 +08:00
Rogee and rogee
76244d6635
H-198: harden transfer acceptance boundaries ( #32 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 15:59:22 +08:00
Rogee and rogee
67eb80cb2b
H-193: add durable transfer acceptance ( #31 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 15:22:05 +08:00
Rogee and rogee
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
Rogee and rogee
992c9bf0e9
H-171: require explicit Shangwutong send success ( #29 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 12:18:55 +08:00
Rogee and rogee
2d1b9ab5a7
H-170: parse Shangwutong send error header ( #28 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 11:48:49 +08:00
Rogee and rogee
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 and rogee
55fac96700
H-148: close replaced logger file sinks ( #26 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-15 00:04:01 +08:00
Rogee and rogee
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
Rogee and rogee
384cc56d97
H-142: eliminate worker race detector conflicts ( #25 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 22:58:22 +08:00
Rogee and rogee
13e948d4ab
H-141: harden worker shutdown persistence ( #24 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 22:43:01 +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
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
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
5811260d83
H-127: align Captain inbox repository fixture ( #20 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 19:06:31 +08:00
Rogee and rogee
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
Rogee and rogee
376d0d9818
H-77: report missing Shangwutong source fields ( #15 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-14 01:18:36 +08:00
Rogee and rogee
e33e72877e
H-47: bound deferred contact metadata retries ( #14 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 20:22:23 +08:00
Rogee and rogee
de285b4f5d
H-47: retry CID until contact exists ( #13 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 19:57:05 +08:00
Rogee and rogee
d00ea39f6c
fix(shangwutong): map kind 24 contact cid ( #12 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 19:27:26 +08:00
Rogee and rogee
a5ceb0af93
H-47: unblock connector sandbox setup ( #11 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 18:25:19 +08:00
Rogee and rogee
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
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
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
Rogee and rogee
fff3dce1bd
test(shangwutong): cover CID rename reliability ( #7 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 09:31:25 +08:00
Rogee and rogee
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
Rogee and rogee
d0995798f4
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 >
2026-08-13 01:26:56 +08:00
Rogee and rogee
0e9bf8dc14
fix(shangwutong): close contact sync review gaps ( #4 )
...
Co-authored-by: Rogee <rogee@ipao.vip >
2026-08-13 01:21:07 +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