From b7ef2569c4eb0158f5113a4fbbefefa399745fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=B9=E5=B0=BC=E5=B0=94?= Date: Wed, 11 Mar 2026 18:19:30 +0800 Subject: [PATCH] fix: bug --- .env | 3 + .env.example | 4 + DEBUG.md | 80 + backend/data/logs/app.log | 4276 +++++++++++++++++++++++++++++ backend/data/logs/node-access.log | 1609 +++++++++++ backend/data/wechat.db | Bin 258048 -> 749568 bytes backend/main.py | 658 ++++- backend/ws_sync.py | 2 +- public/chat.html | 36 +- public/manage.html | 157 +- public/pages.html | 30 + run-ngrok.sh | 144 + run.sh | 2 + 13 files changed, 6907 insertions(+), 94 deletions(-) create mode 100644 DEBUG.md create mode 100644 public/pages.html create mode 100755 run-ngrok.sh create mode 100644 run.sh diff --git a/.env b/.env index acbb5e0..7261652 100644 --- a/.env +++ b/.env @@ -4,3 +4,6 @@ WS_KEY=HBpEnbtj9BJZ SLIDER_VERIFY_KEY=408449830 APIKEY=sk-85880595fc714d63bfd0b025e917bd26#千问apikey # 962516e4-60eb-4a26-a5a3-44e21adcf7bc #豆包 + +# 消息回调(ngrok 调通用,由 run-ngrok.sh 自动写入) +CALLBACK_BASE_URL=https://dissonant-destinee-nonsensibly.ngrok-free.dev diff --git a/.env.example b/.env.example index b507e59..9ff3903 100644 --- a/.env.example +++ b/.env.example @@ -12,6 +12,10 @@ SLIDER_VERIFY_KEY=408449830 # 优先 WECHAT_WS_KEY,未设置则使用 KEY(登录参数填的 key) # WECHAT_WS_KEY=HBpEnbtj9BJZ +# 消息实时回调(主入口):设置后向 7006 注册 SetCallback,新消息由 7006 POST 到本服务,不再走 WS +# 需为 7006 能访问到的公网地址,例如 https://your-domain.com +# CALLBACK_BASE_URL=https://your-domain.com + # 千问 API Key(用于个性化问候等),优先 QWEN_API_KEY,其次 APIKEY QWEN_API_KEY=sk-xxx # 或使用阿里云 DashScope:DASHSCOPE_API_KEY=sk-xxx diff --git a/DEBUG.md b/DEBUG.md new file mode 100644 index 0000000..62ca0bb --- /dev/null +++ b/DEBUG.md @@ -0,0 +1,80 @@ +# 本地调试说明 + +## 1. 启动开发环境 + +```bash +./run-dev.sh +``` + +- 前端:(管理页、登录等) +- 后端:(API) +- `.env` 会被自动加载,可配置 `WECHAT_UPSTREAM_BASE_URL`、`KEY` 等 + +## 2. 账号 key 与消息接收 + +- 登录页使用的 **key** 需要与后端「消息接收」使用同一 key,否则收不到该账号消息。 +- 在 `.env` 中设置 **`KEY=你的key`**(或 `WECHAT_WS_KEY=你的key`、`WS_KEY=你的key`),与登录时填的 key 一致即可。 + +## 3. 消息接收:WS 与回调两种方式 + +### 不设 CALLBACK_BASE_URL(默认,适合本地) + +- 不配置 `CALLBACK_BASE_URL` 时,后端用 **WebSocket** 连接 7006 的 GetSyncMsg 拉取消息。 +- 7006 若拒绝 WS,日志会出现 `WS disconnected ... server rejected WebSocket`,消息可能收不到,但不影响登录、发消息、联系人等接口调试。 + +### 使用回调(7006 主动 POST 到本机) + +- 7006 在公网,无法直接访问你本机的 `localhost`,需要先用 **ngrok** 把本机 8000 暴露到公网,再设回调。 + +**一键用 ngrok 调通(推荐):** + +1. **先配置 ngrok**(仅首次):ngrok 需登录并配置 authtoken,否则会报 `ERR_NGROK_4018`。 + - 打开 https://dashboard.ngrok.com/get-started/your-authtoken 复制 token + - 执行:`ngrok config add-authtoken <你的token>` +2. **终端 1**:执行 + ```bash + ./run-ngrok.sh + ``` + 脚本会启动 `ngrok http 8000`,并把得到的公网隧道地址自动写入 `.env` 的 `CALLBACK_BASE_URL`(不会把 signup/dashboard 等链接误写成回调地址)。 + +2. **终端 2**:启动服务 + ```bash + ./run-dev.sh + ``` + 后端启动时会读取 `CALLBACK_BASE_URL` 并向 7006 注册 SetCallback,新消息会由 7006 POST 到你的 ngrok 地址。 + +3. 打开 登录,用同一 key 收发消息即可验证回调是否生效。 + +**手动步骤(不用脚本时):** + +1. 终端运行 `ngrok http 8000`,记下输出的 **https** 地址(如 `https://xxxx.ngrok-free.app`)。 +2. 在 `.env` 中增加或修改:`CALLBACK_BASE_URL=https://xxxx.ngrok-free.app`。 +3. 执行 `./run-dev.sh`(若已在运行则重启)。之后新消息由 7006 POST 到 `https://xxxx.ngrok-free.app/api/callback/wechat-message`,不再走 WS。 + +## 4. 手动模拟回调(不暴露公网也可测接口) + +不跑隧道时,可直接用 curl 测回调接口是否正常: + +```bash +# 替换成你的 key +curl -X POST 'http://localhost:8000/api/callback/wechat-message?key=HBpEnbtj9BJZ' \ + -H 'Content-Type: application/json' \ + -d '{"MsgList":[{"FromUserName":"wxid_test","Content":"你好","MsgType":1}]}' +``` + +返回 `{"ok":true}` 且后端无报错即表示回调入口和 `_on_ws_message` 逻辑正常。 + +## 5. 查看日志 + +- 后端:`backend/data/logs/app.log`(或控制台) +- 搜索 `SetCallback`、`callback/wechat-message`、`WS disconnected` 等便于排查消息接收问题。 + +## 6. 只调试后端 API + +```bash +source .venv/bin/activate +cd "$(dirname "$0")" +uvicorn backend.main:app --host 0.0.0.0 --port 8000 +``` + +再用浏览器或 Postman 访问 调试接口。 diff --git a/backend/data/logs/app.log b/backend/data/logs/app.log index d8b3001..49ea8a5 100644 --- a/backend/data/logs/app.log +++ b/backend/data/logs/app.log @@ -702,3 +702,4279 @@ 2026-03-11 13:56:52,183 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y9skQDK5SL7fbVwszTjD","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":161,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} 2026-03-11 13:56:52,189 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 2026-03-11 13:56:53,166 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:05:30,597 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 14:05:30,598 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 14:05:30,699 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:05:38,841 [INFO] wechat-backend - HTTP POST /auth/qrcode from 127.0.0.1 +2026-03-11 14:05:38,845 [INFO] wechat-backend - GetLoginQrCodeNewDirect: key=HBpEnbtj9BJZ, payload={'Proxy': '', 'IpadOrmac': '', 'Check': False}, url=http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect +2026-03-11 14:05:38,979 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:05:43,501 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:05:43,502 [INFO] wechat-backend - Upstream GetLoginQrCodeNewDirect success: status=200, body_len=500 +2026-03-11 14:05:43,502 [INFO] wechat-backend - Stored Data62 (full) for key=HBpEnbtj9BJZ (len=344), valid=True, check=完整有效 +2026-03-11 14:05:43,502 [INFO] wechat-backend - Data62 full: 62706c6973743030d4010203040506090a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a2070855246e756c6c5f102064346461356637326330626237633631326338336262626264613137323834345f100f4e534b657965644172636869766572d10b0c54726f6f74800108111a232d32373a406375787d0000000000000101000000000000000d0000000000000000000000000000007f +2026-03-11 14:05:43,506 [INFO] wechat-backend - HTTP POST /auth/qrcode -> 200 +2026-03-11 14:05:44,068 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:05:44,179 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:05:45,542 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:05:45,543 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:05:45,654 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:05:45,655 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":0,"push_login_url_expired_time":0,"effective_time":239,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:05:45,658 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:05:48,538 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:05:48,539 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:05:48,658 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:05:48,659 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":0,"push_login_url_expired_time":0,"effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:05:48,663 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:05:49,287 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:05:53,539 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:05:53,539 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:05:54,677 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:05:54,682 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:05:54,687 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:05:54,695 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js from 127.0.0.1 +2026-03-11 14:05:55,377 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:05:55,861 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7765/assets/N_jYM_2V.js "HTTP/1.1 200 OK" +2026-03-11 14:05:55,965 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js -> 200 +2026-03-11 14:05:58,539 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:05:58,540 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:05:58,652 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:05:58,653 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":234,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:05:58,656 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:01,464 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:03,539 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:03,540 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:04,664 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:04,665 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":226,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:04,670 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:06,540 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:09,412 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:09,413 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:09,520 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:09,521 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":223,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:09,525 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:11,631 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:14,519 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:14,520 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:15,629 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:15,629 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":216,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:15,633 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:16,726 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:19,412 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:19,412 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:19,528 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:19,529 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":213,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:19,533 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:21,810 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:24,411 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:24,412 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:24,522 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:24,522 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":208,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:24,527 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:26,896 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:29,413 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:29,413 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:29,529 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:29,530 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":203,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:29,534 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:31,995 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:34,412 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:34,412 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:34,534 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:34,535 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":198,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:34,538 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:37,085 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:39,413 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:39,414 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:39,530 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:39,530 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":193,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:39,535 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:42,175 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:45,427 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:45,427 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:45,541 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:45,542 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":187,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:45,545 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:47,253 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:50,688 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:50,689 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:50,824 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:50,825 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":181,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:50,829 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:52,335 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:55,219 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:55,219 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:55,330 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:55,331 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":177,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:55,334 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:06:57,429 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:06:59,413 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:06:59,413 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:06:59,523 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:06:59,524 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":173,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:06:59,527 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:02,515 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:07:04,984 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:04,986 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:05,126 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:05,128 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":167,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:07:05,135 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:07,611 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:07:09,415 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:09,415 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:09,516 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:09,517 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Q8kCagx0-0TXlDRJ7Ond","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":163,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":""},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:07:09,521 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:12,704 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:07:14,415 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:14,416 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:14,531 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:14,532 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":0,"push_login_url_expired_time":0,"effective_time":240,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:07:14,535 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:17,798 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:07:19,417 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:19,417 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:19,529 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:19,530 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":0,"push_login_url_expired_time":0,"effective_time":235,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:07:19,534 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:24,416 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:24,417 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:24,517 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:24,518 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":237,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:24,518 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:24,522 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:29,418 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:29,419 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:29,548 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:29,549 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":232,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:29,549 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:29,553 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:34,420 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:34,421 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:34,550 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:34,551 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":227,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:34,551 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:34,555 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:39,420 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:39,421 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:39,539 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:39,540 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":222,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:39,540 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:39,544 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:44,422 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:44,423 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:44,540 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:44,540 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":217,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:44,541 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:44,544 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:49,421 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:49,422 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:49,535 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:49,535 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":212,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:49,536 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:49,539 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:54,424 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:54,425 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:54,538 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:54,539 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":207,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:54,539 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:54,543 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:07:59,426 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:07:59,426 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:07:59,547 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:07:59,548 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":202,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:07:59,548 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:07:59,552 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:08:04,426 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:08:04,427 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:08:04,525 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:08:04,526 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":197,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:08:04,527 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:08:04,530 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:08:51,425 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:08:51,426 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:08:51,535 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:08:51,536 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":151,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:08:51,536 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:08:51,540 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:09:51,421 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:09:51,422 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:09:51,535 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:09:51,536 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":91,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:09:51,536 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:09:51,539 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:10:34,322 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:10:39,412 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:10:44,493 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:10:49,596 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:10:51,420 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:10:51,421 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:10:51,553 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:10:51,554 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":31,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:10:51,554 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:10:51,558 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:10:54,899 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:11:04,918 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 14:11:04,939 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 14:11:05,035 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:11:10,113 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:11:13,641 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:13,642 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:13,761 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:13,761 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y6N1K5j44WUY9d7H3db8","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":8,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_0eab3b5b3bdb2a4b8f3eccf08705c754\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:13,762 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=0) +2026-03-11 14:11:13,765 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:15,220 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:11:16,869 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: no close frame received or sent, reconnect in 5s +2026-03-11 14:11:21,969 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:11:22,295 [INFO] wechat-backend - HTTP POST /auth/qrcode from 127.0.0.1 +2026-03-11 14:11:22,299 [INFO] wechat-backend - GetLoginQrCodeNewDirect: key=HBpEnbtj9BJZ, payload={'Proxy': '', 'IpadOrmac': 'ipad', 'Check': False}, url=http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect +2026-03-11 14:11:25,005 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:25,005 [INFO] wechat-backend - Upstream GetLoginQrCodeNewDirect success: status=200, body_len=500 +2026-03-11 14:11:25,006 [INFO] wechat-backend - Stored Data62 (full) for key=HBpEnbtj9BJZ (len=344), valid=True, check=完整有效 +2026-03-11 14:11:25,006 [INFO] wechat-backend - Data62 full: 62706c6973743030d4010203040506090a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a2070855246e756c6c5f102064346461356637326330626237633631326338336262626264613137323834345f100f4e534b657965644172636869766572d10b0c54726f6f74800108111a232d32373a406375787d0000000000000101000000000000000d0000000000000000000000000000007f +2026-03-11 14:11:25,010 [INFO] wechat-backend - HTTP POST /auth/qrcode -> 200 +2026-03-11 14:11:27,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:27,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:27,058 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:11:27,143 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:27,144 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":0,"push_login_url_expired_time":0,"effective_time":238,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:11:27,148 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:30,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:30,033 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:30,151 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:30,152 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":0,"push_login_url_expired_time":0,"effective_time":235,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:11:30,155 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:35,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:35,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:35,150 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:35,151 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:35,151 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:11:35,155 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:35,162 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js from 127.0.0.1 +2026-03-11 14:11:35,324 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7765/assets/N_jYM_2V.js "HTTP/1.1 200 OK" +2026-03-11 14:11:35,420 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js -> 200 +2026-03-11 14:11:40,034 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:40,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:40,151 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:40,152 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":231,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:40,152 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:11:40,155 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:45,032 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:45,033 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:45,135 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:45,136 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":226,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:45,136 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:11:45,139 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:50,424 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:50,424 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:50,536 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:50,537 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":221,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:50,537 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:11:50,542 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:11:55,424 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:11:55,424 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:11:55,540 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:11:55,541 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":216,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:11:55,541 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:11:55,547 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:00,424 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:00,424 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:00,551 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:00,552 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":211,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:00,552 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:00,556 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:05,424 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:05,424 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:05,534 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:05,535 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":206,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:05,535 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:05,539 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:10,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:10,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:10,145 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:10,146 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":201,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:10,146 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:10,150 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:15,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:15,033 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:15,153 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:15,154 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":196,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:15,154 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:15,157 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:20,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:20,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:20,141 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:20,148 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":191,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:20,148 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:20,152 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:25,034 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:25,035 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:25,128 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:25,129 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":186,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:25,129 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:25,134 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:30,034 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:30,035 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:30,170 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:30,171 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":181,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:30,171 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:30,176 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:39,891 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:39,893 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:40,028 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:40,028 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":171,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:40,029 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:40,032 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:45,035 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:45,035 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:45,145 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:45,149 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":166,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:45,152 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:45,164 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:50,033 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:50,034 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:50,154 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:50,156 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":161,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:50,156 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:50,163 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:12:55,035 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:12:55,038 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:12:55,178 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:12:55,179 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":156,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:12:55,180 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:12:55,184 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:05,445 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:05,445 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:05,574 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:05,574 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":146,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:05,575 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:05,578 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:13,678 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:13,679 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:13,798 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:13,799 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":138,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:13,799 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:13,802 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:15,034 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:15,035 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:15,154 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:15,156 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":136,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:15,157 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:15,161 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:20,433 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:20,433 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:20,556 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:20,557 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":131,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:20,557 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:20,562 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:25,430 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:25,430 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:25,549 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:25,550 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":126,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:25,550 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:25,554 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:30,432 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:30,432 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:30,544 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:30,545 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":121,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:30,545 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:30,550 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:35,434 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:35,434 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:35,543 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:35,544 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":116,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:35,544 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:35,547 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:40,434 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:40,435 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:40,552 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:40,554 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":111,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:40,554 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:40,558 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:45,434 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:45,434 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:45,580 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:45,581 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":106,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:45,581 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:45,585 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:50,435 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:50,435 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:50,546 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:50,547 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":101,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:50,547 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:50,551 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:13:55,438 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:13:55,439 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:13:56,565 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:13:56,566 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":95,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_cceb1cb9e2746ed2cc5495c8c943caaf\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:13:56,566 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:13:56,569 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:05,157 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 14:41:05,171 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 14:41:05,283 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:08,745 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:08,746 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:09,889 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:09,889 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:09,893 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:10,389 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:12,304 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:12,305 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:12,441 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:12,443 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:12,449 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:15,529 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:15,529 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:16,666 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:16,668 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:16,674 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:17,499 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:22,531 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:22,532 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:22,648 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:22,649 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:22,655 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:23,593 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:25,529 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:25,530 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:25,649 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:25,650 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:25,656 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:29,690 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:30,142 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:30,143 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:31,290 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:31,291 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"Y8PlUfOOhQ7MTlgXVAkf","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:31,296 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:34,757 [INFO] wechat-backend - HTTP POST /auth/qrcode from 127.0.0.1 +2026-03-11 14:41:34,760 [INFO] wechat-backend - GetLoginQrCodeNewDirect: key=HBpEnbtj9BJZ, payload={'Proxy': '', 'IpadOrmac': '', 'Check': False}, url=http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect +2026-03-11 14:41:34,790 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 14:41:37,259 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:37,261 [INFO] wechat-backend - Upstream GetLoginQrCodeNewDirect success: status=200, body_len=500 +2026-03-11 14:41:37,261 [INFO] wechat-backend - Stored Data62 (full) for key=HBpEnbtj9BJZ (len=344), valid=True, check=完整有效 +2026-03-11 14:41:37,261 [INFO] wechat-backend - Data62 full: 62706c6973743030d4010203040506090a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a2070855246e756c6c5f102064346461356637326330626237633631326338336262626264613137323834345f100f4e534b657965644172636869766572d10b0c54726f6f74800108111a232d32373a406375787d0000000000000101000000000000000d0000000000000000000000000000007f +2026-03-11 14:41:37,267 [INFO] wechat-backend - HTTP POST /auth/qrcode -> 200 +2026-03-11 14:41:39,296 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:39,297 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:39,424 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:39,426 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":0,"push_login_url_expired_time":0,"effective_time":239,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:39,432 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:39,904 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 14:41:42,296 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:42,297 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:42,410 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:42,412 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":0,"push_login_url_expired_time":0,"effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 14:41:42,417 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:47,299 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:47,300 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:47,416 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:47,418 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:41:47,419 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:41:47,425 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:47,433 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js from 127.0.0.1 +2026-03-11 14:41:47,629 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7765/assets/N_jYM_2V.js "HTTP/1.1 200 OK" +2026-03-11 14:41:47,717 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js -> 200 +2026-03-11 14:41:52,295 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:52,296 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:52,430 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:52,432 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":231,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:41:52,432 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:41:52,437 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:41:57,297 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:41:57,298 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:41:57,423 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:41:57,425 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":226,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:41:57,425 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:41:57,433 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:02,530 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:02,531 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:02,639 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:02,641 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":221,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:02,641 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:02,647 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:07,645 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:07,645 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:07,795 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:07,796 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":216,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:07,796 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:07,801 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:13,015 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:13,016 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:13,131 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:13,133 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":211,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:13,133 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:13,138 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:17,315 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:17,318 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:17,459 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:17,460 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":206,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:17,460 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:17,466 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:22,530 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:22,531 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:22,651 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:22,653 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":201,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:22,654 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:22,660 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:28,222 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:28,222 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:28,346 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:28,347 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":196,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:28,348 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:28,353 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:32,296 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:32,296 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:32,426 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:32,428 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":191,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:32,428 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:32,434 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:37,531 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:37,532 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:37,656 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:37,658 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":186,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:37,658 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:37,665 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:45,228 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:45,229 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:45,363 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:45,364 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":179,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:45,365 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:45,370 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:47,532 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:47,533 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:47,651 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:47,653 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":176,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:47,654 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:47,660 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:42:52,531 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:42:52,532 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:42:52,756 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:42:52,758 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":171,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:42:52,758 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:42:52,764 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:43:04,315 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:43:04,315 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:43:04,468 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:43:04,469 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":159,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:43:04,470 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:43:04,477 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:43:07,539 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:43:07,540 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:43:07,666 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 14:43:07,668 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":156,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_a7fbfb2fce0efdcd7b3fdc64be1e3a86\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 14:43:07,668 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 14:43:07,674 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 14:44:15,530 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:15,532 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:20,576 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 502 Bad Gateway" +2026-03-11 14:44:20,577 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=502, body= +2026-03-11 14:44:20,640 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:20,641 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:20,663 [ERROR] wechat-backend - Error calling upstream CheckLoginStatus: All connection attempts failed +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions + yield + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request + raise exc from None + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request + response = await connection.handle_async_request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request + raise exc + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request + stream = await self._connect(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 124, in _connect + stream = await self._network_backend.connect_tcp(**kwargs) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp + return await self._backend.connect_tcp( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 122, in connect_tcp + stream._raw_socket.setsockopt(*option) # type: ignore[attr-defined] # pragma: no cover + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions + raise to_exc(exc) from exc +httpcore.ConnectError: All connection attempts failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 455, in check_scan_status + resp = await client.get(url, params={"key": key}) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1801, in get + return await self.request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1574, in request + return await self.send(request, auth=auth, follow_redirects=follow_redirects) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1661, in send + response = await self._send_handling_auth( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1689, in _send_handling_auth + response = await self._send_handling_redirects( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects + response = await self._send_single_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1763, in _send_single_request + response = await transport.handle_async_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions + raise mapped_exc(message) from exc +httpx.ConnectError: All connection attempts failed +2026-03-11 14:44:20,686 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 502 +2026-03-11 14:44:25,048 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:25,049 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:25,060 [ERROR] wechat-backend - Error calling upstream CheckLoginStatus: All connection attempts failed +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions + yield + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request + raise exc from None + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request + response = await connection.handle_async_request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request + raise exc + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request + stream = await self._connect(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 124, in _connect + stream = await self._network_backend.connect_tcp(**kwargs) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp + return await self._backend.connect_tcp( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 122, in connect_tcp + stream._raw_socket.setsockopt(*option) # type: ignore[attr-defined] # pragma: no cover + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions + raise to_exc(exc) from exc +httpcore.ConnectError: All connection attempts failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 455, in check_scan_status + resp = await client.get(url, params={"key": key}) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1801, in get + return await self.request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1574, in request + return await self.send(request, auth=auth, follow_redirects=follow_redirects) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1661, in send + response = await self._send_handling_auth( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1689, in _send_handling_auth + response = await self._send_handling_redirects( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects + response = await self._send_single_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1763, in _send_single_request + response = await transport.handle_async_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions + raise mapped_exc(message) from exc +httpx.ConnectError: All connection attempts failed +2026-03-11 14:44:25,089 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 502 +2026-03-11 14:44:30,051 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:30,051 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:30,062 [ERROR] wechat-backend - Error calling upstream CheckLoginStatus: All connection attempts failed +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions + yield + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request + raise exc from None + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request + response = await connection.handle_async_request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request + raise exc + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request + stream = await self._connect(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 124, in _connect + stream = await self._network_backend.connect_tcp(**kwargs) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp + return await self._backend.connect_tcp( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 122, in connect_tcp + stream._raw_socket.setsockopt(*option) # type: ignore[attr-defined] # pragma: no cover + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions + raise to_exc(exc) from exc +httpcore.ConnectError: All connection attempts failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 455, in check_scan_status + resp = await client.get(url, params={"key": key}) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1801, in get + return await self.request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1574, in request + return await self.send(request, auth=auth, follow_redirects=follow_redirects) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1661, in send + response = await self._send_handling_auth( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1689, in _send_handling_auth + response = await self._send_handling_redirects( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects + response = await self._send_single_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1763, in _send_single_request + response = await transport.handle_async_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions + raise mapped_exc(message) from exc +httpx.ConnectError: All connection attempts failed +2026-03-11 14:44:30,088 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 502 +2026-03-11 14:44:30,200 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: sent 1011 (internal error) keepalive ping timeout; no close frame received, reconnect in 5s +2026-03-11 14:44:35,050 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:35,051 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:35,064 [ERROR] wechat-backend - Error calling upstream CheckLoginStatus: All connection attempts failed +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions + yield + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request + raise exc from None + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request + response = await connection.handle_async_request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request + raise exc + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request + stream = await self._connect(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 124, in _connect + stream = await self._network_backend.connect_tcp(**kwargs) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp + return await self._backend.connect_tcp( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 122, in connect_tcp + stream._raw_socket.setsockopt(*option) # type: ignore[attr-defined] # pragma: no cover + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions + raise to_exc(exc) from exc +httpcore.ConnectError: All connection attempts failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 455, in check_scan_status + resp = await client.get(url, params={"key": key}) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1801, in get + return await self.request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1574, in request + return await self.send(request, auth=auth, follow_redirects=follow_redirects) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1661, in send + response = await self._send_handling_auth( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1689, in _send_handling_auth + response = await self._send_handling_redirects( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects + response = await self._send_single_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1763, in _send_single_request + response = await transport.handle_async_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions + raise mapped_exc(message) from exc +httpx.ConnectError: All connection attempts failed +2026-03-11 14:44:35,089 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 502 +2026-03-11 14:44:35,202 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 14:44:40,206 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 14:44:45,213 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 14:44:50,215 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 14:44:54,054 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 14:44:54,055 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 14:44:54,071 [ERROR] wechat-backend - Error calling upstream CheckLoginStatus: All connection attempts failed +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions + yield + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request + raise exc from None + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request + response = await connection.handle_async_request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request + raise exc + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request + stream = await self._connect(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_async/connection.py", line 124, in _connect + stream = await self._network_backend.connect_tcp(**kwargs) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp + return await self._backend.connect_tcp( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 122, in connect_tcp + stream._raw_socket.setsockopt(*option) # type: ignore[attr-defined] # pragma: no cover + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions + raise to_exc(exc) from exc +httpcore.ConnectError: All connection attempts failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 455, in check_scan_status + resp = await client.get(url, params={"key": key}) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1801, in get + return await self.request( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1574, in request + return await self.send(request, auth=auth, follow_redirects=follow_redirects) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1661, in send + response = await self._send_handling_auth( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1689, in _send_handling_auth + response = await self._send_handling_redirects( + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1726, in _send_handling_redirects + response = await self._send_single_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_client.py", line 1763, in _send_single_request + response = await transport.handle_async_request(request) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 373, in handle_async_request + resp = await self._pool.handle_async_request(req) + File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/contextlib.py", line 135, in __exit__ + self.gen.throw(type, value, traceback) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/.venv/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions + raise mapped_exc(message) from exc +httpx.ConnectError: All connection attempts failed +2026-03-11 14:44:54,096 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 502 +2026-03-11 14:44:55,219 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 14:45:00,222 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 15:07:53,742 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 15:07:59,060 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 15:08:04,063 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: [Errno 51] Network is unreachable, reconnect in 5s +2026-03-11 15:08:09,296 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 15:08:13,475 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:13,476 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:13,645 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:13,647 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"49yqkbH0pM3sg_KPoYIA","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":0,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"登录处理中,请稍候...","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:08:13,652 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:14,594 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 15:08:19,838 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 15:08:24,032 [INFO] wechat-backend - HTTP POST /auth/qrcode from 127.0.0.1 +2026-03-11 15:08:24,033 [INFO] wechat-backend - GetLoginQrCodeNewDirect: key=HBpEnbtj9BJZ, payload={'Proxy': '', 'IpadOrmac': 'mac', 'Check': False}, url=http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect +2026-03-11 15:08:24,948 [WARNING] wechat-backend.ws_sync - WS disconnected for key=HBpEnbtj9BJZ: server rejected WebSocket connection: HTTP 200, reconnect in 5s +2026-03-11 15:08:26,458 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/login/GetLoginQrCodeNewDirect?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:26,459 [INFO] wechat-backend - Upstream GetLoginQrCodeNewDirect success: status=200, body_len=500 +2026-03-11 15:08:26,460 [INFO] wechat-backend - Stored Data62 (full) for key=HBpEnbtj9BJZ (len=344), valid=True, check=完整有效 +2026-03-11 15:08:26,460 [INFO] wechat-backend - Data62 full: 62706c6973743030d4010203040506090a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a2070855246e756c6c5f102064346461356637326330626237633631326338336262626264613137323834345f100f4e534b657965644172636869766572d10b0c54726f6f74800108111a232d32373a406375787d0000000000000101000000000000000d0000000000000000000000000000007f +2026-03-11 15:08:26,466 [INFO] wechat-backend - HTTP POST /auth/qrcode -> 200 +2026-03-11 15:08:28,490 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:28,491 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:28,607 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:28,609 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":0,"push_login_url_expired_time":0,"effective_time":239,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:08:28,615 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:30,088 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:08:31,491 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:31,492 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:31,629 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:31,631 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":0,"push_login_url_expired_time":0,"effective_time":236,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:08:31,637 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:36,491 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:36,492 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:36,619 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:36,622 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":0,"push_login_url_expired_time":0,"effective_time":231,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:08:36,627 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:41,489 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:41,489 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:41,902 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:41,903 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":240,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":""},"Text":"","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:08:41,908 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:46,492 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:46,493 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:47,472 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:47,474 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":235,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:08:47,476 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:08:47,487 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:47,545 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js from 127.0.0.1 +2026-03-11 15:08:47,797 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7765/assets/N_jYM_2V.js "HTTP/1.1 200 OK" +2026-03-11 15:08:47,897 [INFO] wechat-backend - HTTP GET /auth/slider-assets/N_jYM_2V.js -> 200 +2026-03-11 15:08:52,777 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:52,779 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:52,930 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:52,932 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":229,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:08:52,932 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:08:52,936 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:08:56,489 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:08:56,489 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:08:56,621 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:08:56,622 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":225,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:08:56,623 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:08:56,630 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:01,488 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:01,489 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:01,625 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:01,627 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":220,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:01,627 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:01,633 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:07,306 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:07,307 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:07,438 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:07,439 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":215,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:07,440 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:07,448 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:12,304 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:12,304 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:12,429 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:12,431 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":210,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:12,431 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:12,438 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:17,406 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:17,406 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:17,516 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:17,519 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":205,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:17,519 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:17,523 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:22,307 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:22,308 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:22,440 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:22,442 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":200,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:22,442 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:22,449 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:27,309 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:27,309 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:27,440 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:27,441 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":195,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:27,442 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:27,448 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:32,307 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:32,308 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:32,425 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:32,426 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":190,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:32,427 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:32,431 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:37,304 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:37,305 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:37,455 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:37,457 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":185,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"请提交验证码后登录","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"请提交验证码后登录","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:37,458 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:37,463 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:42,308 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:42,309 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:42,425 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:42,427 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"uuid":"4-edLnmnQR6JPQGc1KVa","state":1,"head_img_url":"http://wx.qlogo.cn/mmhead/ver_1/oynDcBAwCaDTE9YibF7bstkHrY3BY2sZsOicDkYlfbibSicsgWQepadjokaC9ZdVobj0JNaV7mpPJ8DJyo7ib0yrlMsHuXMYdic0PguibeTjdicdrAEzygRdW67FAHvzWISHbXUomibxttlicKxulycUvq8aVeQg/0","push_login_url_expired_time":0,"nick_name":"时代在召唤","effective_time":180,"unknow":0,"ret":0,"othersInServerLogin":false,"tarGetServerIp":"","uuId":"","msg":"","data62":"","ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"","Success":false,"Data62":"","Ticket":"","wechat_verify_url":"ticket=3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n","verify_instructions":"这个就是第二步返回的key, 请根据文档操作!!!"} +2026-03-11 15:09:42,427 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:42,433 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:47,307 [INFO] wechat-backend - HTTP GET /auth/scan-status from 127.0.0.1 +2026-03-11 15:09:47,308 [INFO] wechat-backend - CheckLoginStatus: key=HBpEnbtj9BJZ, url=http://113.44.162.180:7006/login/CheckLoginStatus +2026-03-11 15:09:47,460 [INFO] httpx - HTTP Request: GET http://113.44.162.180:7006/login/CheckLoginStatus?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:09:47,460 [INFO] wechat-backend - Upstream CheckLoginStatus response: status=200, body={"Code":200,"Data":{"data62":"","loginState":"online","state":2,"ticket":"3_7063f1dfdab959bc0ff45564e864ef05\ufffd\u0001\u0002\b\u0000\ufffd\u0001\u0006\b\u0002\u0012\u0002\b\n"},"Text":"账号已登录","Success":false,"Data62":"","Ticket":""} +2026-03-11 15:09:47,461 [INFO] wechat-backend - Attached slider_url (slider-form) for key=HBpEnbtj9BJZ (ticket len=34, data62 len=344) +2026-03-11 15:09:47,465 [INFO] wechat-backend - HTTP GET /auth/scan-status -> 200 +2026-03-11 15:09:47,515 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:09:47,521 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:09:47,525 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:09:47,530 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:09:47,537 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:09:47,538 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:09:47,547 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:09:47,565 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:09:47,570 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:09:47,572 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:09:47,574 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:09:47,575 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:09:47,578 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:09:47,580 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:09:47,582 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:09:47,583 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:09:56,308 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:09:56,313 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:04,400 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:04,401 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:11,703 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:11,705 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:19,506 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:19,507 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:19,962 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:10:20,717 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:10:20,718 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:10:20,719 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:10:20,724 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:10:27,292 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:10:27,505 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:27,507 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:28,754 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:10:28,755 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:10:28,755 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:10:28,761 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:10:33,260 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:10:33,262 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:10:35,505 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:35,506 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:38,185 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 15:10:38,841 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:10:38,844 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:10:38,844 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:10:38,850 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 15:10:41,094 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 15:10:41,103 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 15:10:43,503 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:43,504 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:48,016 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:10:48,049 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:10:56,783 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:10:56,786 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:10:59,827 [INFO] wechat-backend - HTTP GET /api/models from 127.0.0.1 +2026-03-11 15:10:59,835 [INFO] wechat-backend - HTTP GET /api/models -> 200 +2026-03-11 15:11:03,459 [INFO] wechat-backend - HTTP GET /openapi.json from 127.0.0.1 +2026-03-11 15:11:03,515 [INFO] wechat-backend - HTTP GET /openapi.json -> 200 +2026-03-11 15:11:14,335 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:14,336 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:11:16,282 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:16,284 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:11:24,309 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:24,311 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:11:32,309 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:32,310 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:11:37,819 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:11:37,835 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:11:37,839 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:11:37,839 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:11:37,842 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:11:37,843 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:11:37,846 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:11:37,848 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:11:37,854 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:11:37,857 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:11:37,859 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:11:37,860 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:11:37,864 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:11:37,867 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:11:37,871 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:11:37,871 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:11:46,310 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:46,311 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:11:59,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:11:59,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:02,310 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:02,312 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:10,311 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:10,313 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:17,803 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:17,805 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:26,310 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:26,311 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:27,958 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:12:27,972 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:12:27,975 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:12:27,990 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:12:27,994 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:12:28,003 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:12:28,011 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:12:28,034 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:12:28,043 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:12:28,046 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:12:28,049 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:12:28,051 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:12:28,061 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:12:28,064 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:12:28,066 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:12:28,067 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:12:29,260 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:12:29,739 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:12:29,740 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:12:29,740 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:12:29,746 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:12:42,920 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:42,921 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:12:53,070 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:12:53,071 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:00,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:00,347 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:08,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:08,315 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:16,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:16,315 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:24,313 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:24,314 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:32,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:32,315 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:13:42,317 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:13:42,318 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:05,353 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:05,354 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:10,002 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:14:10,812 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:14:10,813 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:14:10,814 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:14:10,820 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:14:11,945 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:11,946 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:20,312 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:20,313 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:28,315 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:28,317 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:36,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:36,316 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:44,315 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:44,317 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:52,317 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:14:52,319 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:14:54,822 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:14:54,826 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:15:00,317 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:00,318 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:08,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:08,315 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:16,317 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:16,318 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:24,314 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:24,315 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:31,449 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:15:31,915 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:15:31,917 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:15:31,917 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:15:31,923 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:15:31,945 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:31,946 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:36,614 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:15:36,617 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:15:37,843 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 15:15:37,847 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 15:15:39,593 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config from 127.0.0.1 +2026-03-11 15:15:39,602 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config -> 200 +2026-03-11 15:15:41,309 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:41,310 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:43,095 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:15:43,136 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:15:44,756 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:15:44,771 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:15:51,076 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:51,077 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:15:51,801 [INFO] wechat-backend - HTTP POST /api/send-message from 127.0.0.1 +2026-03-11 15:15:52,192 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:15:52,204 [INFO] wechat-backend - HTTP POST /api/send-message -> 200 +2026-03-11 15:15:52,209 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:15:52,226 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:15:59,077 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:15:59,078 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:07,078 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:07,079 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:15,078 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:15,079 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:21,507 [INFO] wechat-backend - HTTP GET /api/models from 127.0.0.1 +2026-03-11 15:16:21,524 [INFO] wechat-backend - HTTP GET /api/models -> 200 +2026-03-11 15:16:23,688 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:16:23,711 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:16:36,630 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:36,631 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:42,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:42,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:48,755 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:48,756 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:16:59,450 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:16:59,451 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:08,392 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:08,393 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:12,320 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:12,321 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:20,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:20,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:28,319 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:28,320 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:36,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:36,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:44,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:44,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:17:52,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:17:52,325 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:00,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:00,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:08,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:08,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:10,629 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:18:10,645 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:18:10,657 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:18:10,661 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:18:10,664 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:18:10,665 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:18:10,669 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:18:10,671 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:18:10,683 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:18:10,687 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:18:10,690 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:18:10,691 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:18:10,694 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:18:10,698 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:18:10,701 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:18:10,702 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:18:11,661 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:18:12,277 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:18:12,279 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:18:12,279 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:18:12,285 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:18:19,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:19,325 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:27,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:27,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:34,628 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:34,629 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:43,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:43,325 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:51,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:51,325 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:18:59,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:18:59,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:07,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:07,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:15,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:15,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:23,325 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:23,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:29,917 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:19:30,403 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:19:30,404 [INFO] wechat-backend - GetContactList response keys: raw=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:19:30,404 [INFO] wechat-backend - GetContactList normalized items count: 0 +2026-03-11 15:19:30,410 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:19:30,628 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:30,629 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:42,329 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:42,330 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:52,411 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:52,413 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:19:59,460 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:19:59,461 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:04,734 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:04,734 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:15,236 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:20:15,250 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:20:15,361 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:20:19,501 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:19,503 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:27,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:27,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:35,925 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:35,926 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:37,840 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:20:37,862 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:20:37,862 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:20:37,865 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:20:37,867 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:20:37,867 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:20:37,872 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:20:37,874 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:20:37,887 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:20:37,891 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:20:37,891 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:20:37,894 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:20:37,899 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:20:37,902 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:20:37,905 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:20:37,905 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:20:41,298 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:20:41,813 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:20:41,814 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:20:41,815 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:20:41,821 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:20:42,922 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:20:43,596 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:20:43,597 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:20:43,598 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:20:43,603 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:20:51,600 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:51,601 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:20:59,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:20:59,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:04,614 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:04,626 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:14,726 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:14,727 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:18,328 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:18,330 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:28,436 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:28,437 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:35,512 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:35,514 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:42,333 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:42,333 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:21:52,537 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:21:52,538 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:22:01,630 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:22:01,631 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:22:04,535 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:22:04,557 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:22:12,518 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:22:12,520 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:22:20,519 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:22:20,520 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:22:29,329 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:22:29,330 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:22:32,544 [INFO] wechat-backend - HTTP GET /api/models from 127.0.0.1 +2026-03-11 15:22:32,550 [INFO] wechat-backend - HTTP GET /api/models -> 200 +2026-03-11 15:22:35,491 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:22:35,523 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:22:53,335 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:22:53,336 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:00,331 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:00,332 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:10,443 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:10,445 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:26,294 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:26,295 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:30,856 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:23:30,881 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:23:30,884 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:23:30,884 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:23:30,887 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:23:30,887 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:23:30,890 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:23:30,892 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:23:30,899 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:23:30,902 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:23:30,902 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:23:30,904 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:23:30,912 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:23:30,915 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:23:30,918 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:23:30,919 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:23:33,237 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:23:33,787 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:23:33,788 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:23:33,788 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:23:33,791 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:23:35,462 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:23:35,465 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:23:38,836 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:38,837 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:46,840 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:46,841 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:23:54,834 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:23:54,834 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:05,074 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:05,075 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:14,715 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:14,716 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:19,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:19,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:26,832 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:26,833 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:29,381 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:24:29,385 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:24:35,321 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:35,321 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:43,320 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:43,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:50,828 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:50,829 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:24:58,828 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:24:58,829 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:06,829 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:06,829 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:15,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:15,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:23,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:23,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:31,325 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:31,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:39,324 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:39,325 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:49,210 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:49,211 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:25:55,322 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:25:55,323 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:06,678 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:26:06,679 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:26:06,803 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:26:11,259 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:11,260 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:19,328 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:19,329 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:21,403 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:26:21,425 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:26:21,426 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:26:21,428 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:26:21,431 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:26:21,431 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:26:21,437 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:26:21,438 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:26:21,446 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:26:21,448 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:26:21,454 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:26:21,455 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:26:21,463 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:26:21,467 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:26:21,468 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:26:21,472 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:26:30,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:30,328 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:34,044 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:26:34,546 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:26:34,547 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:26:34,547 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:26:34,553 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:26:36,052 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:26:36,205 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:26:36,593 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:26:36,595 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:26:36,595 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:26:36,601 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:26:36,659 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:26:36,662 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:26:36,662 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:26:36,669 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:26:37,386 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:37,388 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:46,326 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:46,327 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:26:59,095 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:26:59,096 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:03,857 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:03,858 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:10,328 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:10,329 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:18,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:18,328 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:26,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:26,328 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:36,434 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:36,435 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:42,328 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:42,329 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:27:58,879 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:27:58,880 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:06,326 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:06,326 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:14,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:14,327 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:22,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:22,328 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:30,328 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:30,329 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:38,327 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:38,327 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:46,329 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:46,335 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:28:54,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:28:54,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:03,587 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:03,588 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:10,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:10,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:18,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:18,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:26,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:26,332 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:36,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:36,443 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:42,332 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:42,333 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:50,331 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:50,332 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:29:58,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:29:58,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:30:06,331 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:30:06,332 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:30:42,334 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:30:42,335 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:31:42,336 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:31:42,337 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:23,846 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:32:23,848 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:25,680 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:32:25,686 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:32:29,397 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:32:29,399 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:37,397 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:32:37,398 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:43,241 [INFO] wechat-backend - HTTP POST /api/push-groups from 127.0.0.1 +2026-03-11 15:32:43,248 [INFO] wechat-backend - HTTP POST /api/push-groups -> 200 +2026-03-11 15:32:43,253 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:32:43,258 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:32:43,265 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:32:43,288 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:32:43,289 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:32:43,291 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:32:45,398 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:32:45,400 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:53,398 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:32:53,399 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:32:56,098 [INFO] wechat-backend - HTTP DELETE /api/push-groups/6442ea05-f5ce-40ee-9c2b-f93594a25098 from 127.0.0.1 +2026-03-11 15:32:56,104 [INFO] wechat-backend - HTTP DELETE /api/push-groups/6442ea05-f5ce-40ee-9c2b-f93594a25098 -> 200 +2026-03-11 15:32:56,111 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:32:56,115 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:32:56,116 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:32:56,119 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:32:56,125 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:32:56,149 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:32:56,151 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:32:56,152 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:32:56,159 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:32:56,164 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:32:59,616 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 15:33:00,170 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:33:00,172 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:33:00,172 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:33:00,178 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 15:33:01,396 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:01,397 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:33:02,316 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 15:33:02,756 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:33:02,757 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:33:02,758 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:33:02,764 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 15:33:09,397 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:09,397 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:33:18,373 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:18,374 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:33:34,992 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:33:34,994 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:33:35,106 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:33:42,403 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:42,404 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:33:50,340 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:50,341 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:33:57,401 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:33:57,402 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:05,403 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:05,404 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:13,403 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:13,404 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:21,403 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:21,404 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:29,409 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:29,410 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:37,402 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:37,403 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:41,233 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:34:41,242 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:34:41,260 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:34:41,264 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:34:41,265 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:34:41,269 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:34:41,274 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:34:41,275 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:34:41,283 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:34:41,287 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:34:41,290 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:34:41,291 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:34:41,295 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:34:41,297 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:34:41,300 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:34:41,301 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:34:42,588 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:34:43,043 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:34:43,045 [INFO] wechat-backend - GetContactList response structure (no items extracted): top_level_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:34:43,045 [INFO] wechat-backend - Data.ContactList: {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 87497 +2026-03-11 15:34:43,045 [INFO] wechat-backend - Data.errMsg: +2026-03-11 15:34:43,045 [INFO] wechat-backend - Data.retCode: 0 +2026-03-11 15:34:43,046 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:34:43,046 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:34:43,051 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:34:51,647 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:51,648 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:34:57,339 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:34:57,340 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:05,919 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:05,920 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:13,340 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:13,341 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:21,339 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:21,340 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:29,340 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:29,341 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:37,341 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:37,342 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:45,340 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:45,342 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:35:53,339 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:35:53,340 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:01,343 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:01,343 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:10,754 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:10,756 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:11,556 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:36:12,087 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:36:12,089 [INFO] wechat-backend - GetContactList response structure (no items extracted): top_level_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:36:12,090 [INFO] wechat-backend - Data.ContactList: {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 87497 +2026-03-11 15:36:12,090 [INFO] wechat-backend - Data.errMsg: +2026-03-11 15:36:12,090 [INFO] wechat-backend - Data.retCode: 0 +2026-03-11 15:36:12,091 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:36:12,092 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:36:12,104 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:36:17,339 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:17,340 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:25,341 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:25,342 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:33,341 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:33,342 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:41,342 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:41,343 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:49,341 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:49,342 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:36:57,342 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:36:57,343 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:37:05,343 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:37:05,344 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:37:13,343 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:37:13,344 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:37:42,343 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:37:42,344 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:38:40,574 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:38:40,576 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:38:41,223 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:38:41,225 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:38:52,377 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:38:52,380 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:38:52,482 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:38:56,660 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:38:56,664 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:38:56,666 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:38:56,667 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:38:56,669 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:38:56,669 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:38:56,671 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:38:56,672 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:38:56,691 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:38:56,694 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:38:56,694 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:38:56,696 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:38:56,700 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:38:56,702 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:38:56,702 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:38:56,704 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:38:57,855 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:38:58,373 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:38:58,374 [INFO] wechat-backend - GetContactList round 1 request url=http://113.44.162.180:7006/friend/GetContactList key=HBpEnbtj9BJZ body={'CurrentChatRoomContactSeq': 0, 'CurrentWxcontactSeq': 0} response={'Code': 200, 'Data': {'ContactList': {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 874975031, 'currentChatRoomContactSeq': 0, 'continueFlag': 0, 'contactUsernameList': ['medianote', 'floatbottle', 'weixin', 'fmessage', 'wxid_thwiu9za904u12', 'gh_363b924965e9', 'gh_9dc0e48d383a', 'gh_7db9d69b3115', 'gh_dab5c199ae98', 'gh_6651e07e4b2d', 'wxid_9l80of5lzke722', 'apples_zhao', 'wxid_8vrkzwkennso12', 'wxid_vjnc68slkuft22', 'exmail_tool', 'wxid_y8qdwgsybg7l22', 'wxid_6s088858g4r822', 'wxid_82ccpp8n94yu22', 'wxid_3491994920311', 'wxid_q8m2s06tquqz21', 'wxid_hwcatyn6j4e422', 'wxid_otn4pb17ynir22', 'wxid_0xaimtnrzwf322', 'wxid_ms07udpefwdr22', 'wxid_byc51acemgcv22', 'wxid_e5ofjdntvoi722', 'wxid_5872048720612', 'wxid_cgre00i34b8822', 'wxid_3quxi66db88r22', 'wxid_svsfwm0651zk12', 'wxid_zjek60peruho21', 'wxid_0m58lhtrose712', 'wxid_nhmc9wgupn3u12', 'gh_5734260395ca', 'wxid_56zjg7ruyqox41', 'LiUM212', 'zhanghuiqing315', 'wxid_6823228232011', 'jiangxiaob4788', 'wxid_wcmwqb7aopc522', 'yanchao9229', 'wxid_9240632406312', 'wxid_dees861rejut12', 'wxid_9d5d90kxjhm522', 'zhouyang533323', 'zhang499142409', 'wxid_m4axp785kr0q22', 'liuchao_1207', 'XJXM113344', 'wxid_1bldth8qav7y22', 'wxid_pkow0pamex9a22', 'wxid_c1zr9bewp98e12', 'wxid_tnwbq6s0uok341', 'wxid_pkzi310ci9a311', 'wxid_ven9dnoa1wt012', 'gh_f33a60c8d098', 'wxid_8q4rod99dch822', 'qq2287480018']}, 'errMsg': '', 'retCode': 0}, 'Text': '', 'Success': False, 'Data62': '', 'Ticket': ''} +2026-03-11 15:38:58,375 [INFO] wechat-backend - GetContactList response structure (no items extracted): top_level_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['ContactList', 'errMsg', 'retCode'] +2026-03-11 15:38:58,375 [INFO] wechat-backend - Data.ContactList: {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 87497 +2026-03-11 15:38:58,375 [INFO] wechat-backend - Data.errMsg: +2026-03-11 15:38:58,375 [INFO] wechat-backend - Data.retCode: 0 +2026-03-11 15:38:58,375 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:38:58,376 [INFO] wechat-backend - GetContactList total normalized items: 0 +2026-03-11 15:38:58,381 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:39:05,695 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:05,696 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:13,345 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:13,345 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:23,452 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:23,453 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:30,323 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:30,324 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:39,377 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:39,379 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:45,348 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:45,349 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:39:55,456 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:39:55,457 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:40:42,353 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:40:42,354 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:00,173 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:41:00,176 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:41:00,281 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:41:02,824 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:41:02,831 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:41:02,834 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:41:02,834 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:41:02,836 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:41:02,836 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:41:02,839 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:41:02,839 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:41:02,860 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:41:02,863 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:41:02,863 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:41:02,865 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:41:02,870 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:41:02,874 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:41:02,877 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:41:02,878 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:41:04,346 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:41:04,851 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:41:04,853 [INFO] wechat-backend - GetContactList round 1 request url=http://113.44.162.180:7006/friend/GetContactList key=HBpEnbtj9BJZ body={'CurrentChatRoomContactSeq': 0, 'CurrentWxcontactSeq': 0} response={'Code': 200, 'Data': {'ContactList': {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 874975031, 'currentChatRoomContactSeq': 0, 'continueFlag': 0, 'contactUsernameList': ['medianote', 'floatbottle', 'weixin', 'fmessage', 'wxid_thwiu9za904u12', 'gh_363b924965e9', 'gh_9dc0e48d383a', 'gh_7db9d69b3115', 'gh_dab5c199ae98', 'gh_6651e07e4b2d', 'wxid_9l80of5lzke722', 'apples_zhao', 'wxid_8vrkzwkennso12', 'wxid_vjnc68slkuft22', 'exmail_tool', 'wxid_y8qdwgsybg7l22', 'wxid_6s088858g4r822', 'wxid_82ccpp8n94yu22', 'wxid_3491994920311', 'wxid_q8m2s06tquqz21', 'wxid_hwcatyn6j4e422', 'wxid_otn4pb17ynir22', 'wxid_0xaimtnrzwf322', 'wxid_ms07udpefwdr22', 'wxid_byc51acemgcv22', 'wxid_e5ofjdntvoi722', 'wxid_5872048720612', 'wxid_cgre00i34b8822', 'wxid_3quxi66db88r22', 'wxid_svsfwm0651zk12', 'wxid_zjek60peruho21', 'wxid_0m58lhtrose712', 'wxid_nhmc9wgupn3u12', 'gh_5734260395ca', 'wxid_56zjg7ruyqox41', 'LiUM212', 'zhanghuiqing315', 'wxid_6823228232011', 'jiangxiaob4788', 'wxid_wcmwqb7aopc522', 'yanchao9229', 'wxid_9240632406312', 'wxid_dees861rejut12', 'wxid_9d5d90kxjhm522', 'zhouyang533323', 'zhang499142409', 'wxid_m4axp785kr0q22', 'liuchao_1207', 'XJXM113344', 'wxid_1bldth8qav7y22', 'wxid_pkow0pamex9a22', 'wxid_c1zr9bewp98e12', 'wxid_tnwbq6s0uok341', 'wxid_pkzi310ci9a311', 'wxid_ven9dnoa1wt012', 'gh_f33a60c8d098', 'wxid_8q4rod99dch822', 'qq2287480018']}, 'errMsg': '', 'retCode': 0}, 'Text': '', 'Success': False, 'Data62': '', 'Ticket': ''} +2026-03-11 15:41:04,853 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:41:04,854 [INFO] wechat-backend - GetContactList total normalized items: 58 +2026-03-11 15:41:04,859 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:41:10,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:10,743 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:18,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:18,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:26,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:26,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:42,354 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:42,355 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:52,464 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:52,466 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:41:59,484 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:41:59,485 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:06,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:06,743 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:21,555 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:21,556 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:23,481 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:23,483 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:30,743 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:30,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:38,743 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:38,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:42:56,111 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:42:56,112 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:00,713 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:43:00,716 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:43:02,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:02,742 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:05,648 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 15:43:06,091 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:43:06,093 [INFO] wechat-backend - GetContactList round 1 request url=http://113.44.162.180:7006/friend/GetContactList key=HBpEnbtj9BJZ body={'CurrentChatRoomContactSeq': 0, 'CurrentWxcontactSeq': 0} response={'Code': 200, 'Data': {'ContactList': {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 874975031, 'currentChatRoomContactSeq': 0, 'continueFlag': 0, 'contactUsernameList': ['medianote', 'floatbottle', 'weixin', 'fmessage', 'wxid_thwiu9za904u12', 'gh_363b924965e9', 'gh_9dc0e48d383a', 'gh_7db9d69b3115', 'gh_dab5c199ae98', 'gh_6651e07e4b2d', 'wxid_9l80of5lzke722', 'apples_zhao', 'wxid_8vrkzwkennso12', 'wxid_vjnc68slkuft22', 'exmail_tool', 'wxid_y8qdwgsybg7l22', 'wxid_6s088858g4r822', 'wxid_82ccpp8n94yu22', 'wxid_3491994920311', 'wxid_q8m2s06tquqz21', 'wxid_hwcatyn6j4e422', 'wxid_otn4pb17ynir22', 'wxid_0xaimtnrzwf322', 'wxid_ms07udpefwdr22', 'wxid_byc51acemgcv22', 'wxid_e5ofjdntvoi722', 'wxid_5872048720612', 'wxid_cgre00i34b8822', 'wxid_3quxi66db88r22', 'wxid_svsfwm0651zk12', 'wxid_zjek60peruho21', 'wxid_0m58lhtrose712', 'wxid_nhmc9wgupn3u12', 'gh_5734260395ca', 'wxid_56zjg7ruyqox41', 'LiUM212', 'zhanghuiqing315', 'wxid_6823228232011', 'jiangxiaob4788', 'wxid_wcmwqb7aopc522', 'yanchao9229', 'wxid_9240632406312', 'wxid_dees861rejut12', 'wxid_9d5d90kxjhm522', 'zhouyang533323', 'zhang499142409', 'wxid_m4axp785kr0q22', 'liuchao_1207', 'XJXM113344', 'wxid_1bldth8qav7y22', 'wxid_pkow0pamex9a22', 'wxid_c1zr9bewp98e12', 'wxid_tnwbq6s0uok341', 'wxid_pkzi310ci9a311', 'wxid_ven9dnoa1wt012', 'gh_f33a60c8d098', 'wxid_8q4rod99dch822', 'qq2287480018']}, 'errMsg': '', 'retCode': 0}, 'Text': '', 'Success': False, 'Data62': '', 'Ticket': ''} +2026-03-11 15:43:06,093 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:43:06,094 [INFO] wechat-backend - GetContactList total normalized items: 58 +2026-03-11 15:43:06,099 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 15:43:10,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:10,743 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:18,742 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:18,743 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:31,537 [INFO] wechat-backend - HTTP POST /api/push-groups from 127.0.0.1 +2026-03-11 15:43:31,545 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:31,545 [INFO] wechat-backend - HTTP POST /api/push-groups -> 200 +2026-03-11 15:43:31,547 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:31,550 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:43:31,553 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:43:31,558 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:43:31,560 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:43:31,562 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:43:31,564 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:43:34,743 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:34,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:42,747 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:42,748 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:50,743 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:50,744 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:43:58,744 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:43:58,746 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:06,745 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:06,745 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:14,748 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:14,749 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:23,672 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:23,673 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:33,610 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:44:33,611 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:44:33,725 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:44:41,277 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:41,278 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:47,354 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:47,355 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:54,752 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:44:54,753 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:44:55,732 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:44:55,740 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:44:55,741 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:44:55,745 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:44:55,748 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:44:55,749 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:44:55,753 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:44:55,755 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:44:55,770 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:44:55,773 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:44:55,774 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:44:55,777 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:44:55,782 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:44:55,787 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:44:55,787 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:44:55,790 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:44:57,247 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 15:44:57,729 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 15:44:57,730 [INFO] wechat-backend - GetContactList round 1 request url=http://113.44.162.180:7006/friend/GetContactList key=HBpEnbtj9BJZ body={'CurrentChatRoomContactSeq': 0, 'CurrentWxcontactSeq': 0} response={'Code': 200, 'Data': {'ContactList': {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 874975031, 'currentChatRoomContactSeq': 0, 'continueFlag': 0, 'contactUsernameList': ['medianote', 'floatbottle', 'weixin', 'fmessage', 'wxid_thwiu9za904u12', 'gh_363b924965e9', 'gh_9dc0e48d383a', 'gh_7db9d69b3115', 'gh_dab5c199ae98', 'gh_6651e07e4b2d', 'wxid_9l80of5lzke722', 'apples_zhao', 'wxid_8vrkzwkennso12', 'wxid_vjnc68slkuft22', 'exmail_tool', 'wxid_y8qdwgsybg7l22', 'wxid_6s088858g4r822', 'wxid_82ccpp8n94yu22', 'wxid_3491994920311', 'wxid_q8m2s06tquqz21', 'wxid_hwcatyn6j4e422', 'wxid_otn4pb17ynir22', 'wxid_0xaimtnrzwf322', 'wxid_ms07udpefwdr22', 'wxid_byc51acemgcv22', 'wxid_e5ofjdntvoi722', 'wxid_5872048720612', 'wxid_cgre00i34b8822', 'wxid_3quxi66db88r22', 'wxid_svsfwm0651zk12', 'wxid_zjek60peruho21', 'wxid_0m58lhtrose712', 'wxid_nhmc9wgupn3u12', 'gh_5734260395ca', 'wxid_56zjg7ruyqox41', 'LiUM212', 'zhanghuiqing315', 'wxid_6823228232011', 'jiangxiaob4788', 'wxid_wcmwqb7aopc522', 'yanchao9229', 'wxid_9240632406312', 'wxid_dees861rejut12', 'wxid_9d5d90kxjhm522', 'zhouyang533323', 'zhang499142409', 'wxid_m4axp785kr0q22', 'liuchao_1207', 'XJXM113344', 'wxid_1bldth8qav7y22', 'wxid_pkow0pamex9a22', 'wxid_c1zr9bewp98e12', 'wxid_tnwbq6s0uok341', 'wxid_pkzi310ci9a311', 'wxid_ven9dnoa1wt012', 'gh_f33a60c8d098', 'wxid_8q4rod99dch822', 'qq2287480018']}, 'errMsg': '', 'retCode': 0}, 'Text': '', 'Success': False, 'Data62': '', 'Ticket': ''} +2026-03-11 15:44:57,731 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 15:44:57,731 [INFO] wechat-backend - GetContactList total normalized items: 58 +2026-03-11 15:44:57,737 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 15:45:03,025 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,035 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,041 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,046 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,074 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,079 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,084 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,089 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,093 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,099 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,104 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,108 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,112 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,117 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,121 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,125 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,129 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,133 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,138 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,142 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,146 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,150 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,154 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,158 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,197 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,202 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,207 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,213 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,218 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,221 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,225 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,229 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,233 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,237 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,241 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,245 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,249 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,271 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,275 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,279 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,284 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,290 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,294 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,299 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,303 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,307 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,311 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,314 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,318 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,322 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,325 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,330 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,333 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,337 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,340 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,343 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,346 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,350 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,353 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,357 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,360 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,363 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,366 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,369 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,372 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,375 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,378 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,381 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,384 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,387 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,390 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,394 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,397 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,400 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,403 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,406 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,409 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,412 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,415 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,418 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,421 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,424 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,427 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,430 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,434 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,437 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,440 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,443 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,446 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,470 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,474 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,477 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,482 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,485 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,489 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,492 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,495 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,499 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,502 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,505 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,508 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,511 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,514 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,518 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,521 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,524 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,527 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,530 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,533 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,536 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,539 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,543 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,546 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,549 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,552 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 15:45:03,555 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 15:45:03,593 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:03,601 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:04,999 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:05,001 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:11,701 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:11,702 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:19,334 [INFO] wechat-backend - HTTP DELETE /api/customers/ed07fbbc-e2de-4b3c-8377-823db42d0949 from 127.0.0.1 +2026-03-11 15:45:19,340 [INFO] wechat-backend - HTTP DELETE /api/customers/ed07fbbc-e2de-4b3c-8377-823db42d0949 -> 200 +2026-03-11 15:45:19,346 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:19,354 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:19,696 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:19,697 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:21,336 [INFO] wechat-backend - HTTP DELETE /api/customers/21bc810e-972d-425c-a159-5fa98b91ce6f from 127.0.0.1 +2026-03-11 15:45:21,343 [INFO] wechat-backend - HTTP DELETE /api/customers/21bc810e-972d-425c-a159-5fa98b91ce6f -> 200 +2026-03-11 15:45:21,349 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:21,357 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:24,425 [INFO] wechat-backend - HTTP DELETE /api/customers/83884583-f0b4-4b7e-9d7b-abd36656b545 from 127.0.0.1 +2026-03-11 15:45:24,431 [INFO] wechat-backend - HTTP DELETE /api/customers/83884583-f0b4-4b7e-9d7b-abd36656b545 -> 200 +2026-03-11 15:45:24,437 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:24,445 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:26,828 [INFO] wechat-backend - HTTP DELETE /api/customers/e1775ac7-4a61-49ae-ba36-aac0e7100579 from 127.0.0.1 +2026-03-11 15:45:26,838 [INFO] wechat-backend - HTTP DELETE /api/customers/e1775ac7-4a61-49ae-ba36-aac0e7100579 -> 200 +2026-03-11 15:45:26,845 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:26,854 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:27,694 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:27,695 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:29,085 [INFO] wechat-backend - HTTP DELETE /api/customers/c13a0cdc-9766-4714-9bb0-84253e4f0294 from 127.0.0.1 +2026-03-11 15:45:29,092 [INFO] wechat-backend - HTTP DELETE /api/customers/c13a0cdc-9766-4714-9bb0-84253e4f0294 -> 200 +2026-03-11 15:45:29,098 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:29,106 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:31,381 [INFO] wechat-backend - HTTP DELETE /api/customers/5b1cf0d5-4bec-4268-a6ce-d09c2e193fa1 from 127.0.0.1 +2026-03-11 15:45:31,387 [INFO] wechat-backend - HTTP DELETE /api/customers/5b1cf0d5-4bec-4268-a6ce-d09c2e193fa1 -> 200 +2026-03-11 15:45:31,395 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:31,401 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:33,615 [INFO] wechat-backend - HTTP DELETE /api/customers/fbb518f2-3a82-401b-9630-8f4d14a3ce00 from 127.0.0.1 +2026-03-11 15:45:33,621 [INFO] wechat-backend - HTTP DELETE /api/customers/fbb518f2-3a82-401b-9630-8f4d14a3ce00 -> 200 +2026-03-11 15:45:33,630 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:33,635 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:36,508 [INFO] wechat-backend - HTTP DELETE /api/customers/3d0d4056-0a1c-4b6d-88e2-e743ab50700b from 127.0.0.1 +2026-03-11 15:45:36,516 [INFO] wechat-backend - HTTP DELETE /api/customers/3d0d4056-0a1c-4b6d-88e2-e743ab50700b -> 200 +2026-03-11 15:45:36,517 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:36,519 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:36,523 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:36,529 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:38,771 [INFO] wechat-backend - HTTP DELETE /api/customers/20f59c5a-6cd1-419c-9b39-bcbe1c444d32 from 127.0.0.1 +2026-03-11 15:45:38,777 [INFO] wechat-backend - HTTP DELETE /api/customers/20f59c5a-6cd1-419c-9b39-bcbe1c444d32 -> 200 +2026-03-11 15:45:38,783 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:38,789 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:41,135 [INFO] wechat-backend - HTTP DELETE /api/customers/4625afa8-8584-4444-bb07-895c1efcfff8 from 127.0.0.1 +2026-03-11 15:45:41,141 [INFO] wechat-backend - HTTP DELETE /api/customers/4625afa8-8584-4444-bb07-895c1efcfff8 -> 200 +2026-03-11 15:45:41,147 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:41,154 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:43,188 [INFO] wechat-backend - HTTP DELETE /api/customers/365b67fe-a8e2-465b-b9e1-b6be00d9d9f7 from 127.0.0.1 +2026-03-11 15:45:43,195 [INFO] wechat-backend - HTTP DELETE /api/customers/365b67fe-a8e2-465b-b9e1-b6be00d9d9f7 -> 200 +2026-03-11 15:45:43,201 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:43,208 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:43,697 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:43,697 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:45,271 [INFO] wechat-backend - HTTP DELETE /api/customers/d26ede53-f1aa-4471-8e9c-6f132985168c from 127.0.0.1 +2026-03-11 15:45:45,277 [INFO] wechat-backend - HTTP DELETE /api/customers/d26ede53-f1aa-4471-8e9c-6f132985168c -> 200 +2026-03-11 15:45:45,285 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:45,291 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:47,483 [INFO] wechat-backend - HTTP DELETE /api/customers/90ead1ef-7fe2-42ad-8a32-5f1cdb921ede from 127.0.0.1 +2026-03-11 15:45:47,488 [INFO] wechat-backend - HTTP DELETE /api/customers/90ead1ef-7fe2-42ad-8a32-5f1cdb921ede -> 200 +2026-03-11 15:45:47,495 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:47,502 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:49,586 [INFO] wechat-backend - HTTP DELETE /api/customers/0ae1dc56-57a9-4027-a0b3-bf66e701ff23 from 127.0.0.1 +2026-03-11 15:45:49,593 [INFO] wechat-backend - HTTP DELETE /api/customers/0ae1dc56-57a9-4027-a0b3-bf66e701ff23 -> 200 +2026-03-11 15:45:49,601 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:49,609 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:52,172 [INFO] wechat-backend - HTTP DELETE /api/customers/9b00dd2a-ac77-4733-83ad-c094ad931eed from 127.0.0.1 +2026-03-11 15:45:52,181 [INFO] wechat-backend - HTTP DELETE /api/customers/9b00dd2a-ac77-4733-83ad-c094ad931eed -> 200 +2026-03-11 15:45:52,183 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:52,185 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:52,192 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:52,198 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:54,344 [INFO] wechat-backend - HTTP DELETE /api/customers/ce51e4a8-3cba-4696-b62c-bd63eca00c5b from 127.0.0.1 +2026-03-11 15:45:54,352 [INFO] wechat-backend - HTTP DELETE /api/customers/ce51e4a8-3cba-4696-b62c-bd63eca00c5b -> 200 +2026-03-11 15:45:54,359 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:54,367 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:58,025 [INFO] wechat-backend - HTTP DELETE /api/customers/d8411c3b-61db-4ccd-865d-ed269c1edbdd from 127.0.0.1 +2026-03-11 15:45:58,034 [INFO] wechat-backend - HTTP DELETE /api/customers/d8411c3b-61db-4ccd-865d-ed269c1edbdd -> 200 +2026-03-11 15:45:58,040 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:58,046 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:58,629 [INFO] wechat-backend - HTTP DELETE /api/customers/ce95c3a7-6e14-40be-b61b-0bba53481898 from 127.0.0.1 +2026-03-11 15:45:58,636 [INFO] wechat-backend - HTTP DELETE /api/customers/ce95c3a7-6e14-40be-b61b-0bba53481898 -> 200 +2026-03-11 15:45:58,644 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:58,651 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:59,139 [INFO] wechat-backend - HTTP DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 from 127.0.0.1 +2026-03-11 15:45:59,145 [INFO] wechat-backend - HTTP DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 -> 200 +2026-03-11 15:45:59,150 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:59,158 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:59,390 [INFO] wechat-backend - HTTP DELETE /api/customers/cb9216fe-a516-4fa2-8a2b-aea5ac60e58b from 127.0.0.1 +2026-03-11 15:45:59,396 [INFO] wechat-backend - HTTP DELETE /api/customers/cb9216fe-a516-4fa2-8a2b-aea5ac60e58b -> 200 +2026-03-11 15:45:59,401 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:59,412 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:45:59,697 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:45:59,698 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:45:59,806 [INFO] wechat-backend - HTTP DELETE /api/customers/84cb38b4-ac5b-4e7e-8826-94c6b5de5c19 from 127.0.0.1 +2026-03-11 15:45:59,814 [INFO] wechat-backend - HTTP DELETE /api/customers/84cb38b4-ac5b-4e7e-8826-94c6b5de5c19 -> 200 +2026-03-11 15:45:59,823 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:45:59,830 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:00,422 [INFO] wechat-backend - HTTP DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 from 127.0.0.1 +2026-03-11 15:46:00,430 [INFO] wechat-backend - HTTP DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 -> 200 +2026-03-11 15:46:00,434 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:00,440 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:01,341 [INFO] wechat-backend - HTTP DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 from 127.0.0.1 +2026-03-11 15:46:01,344 [INFO] wechat-backend - HTTP DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 -> 404 +2026-03-11 15:46:02,021 [INFO] wechat-backend - HTTP DELETE /api/customers/c86ee31e-81c2-4287-b885-eb4a81e4bc85 from 127.0.0.1 +2026-03-11 15:46:02,029 [INFO] wechat-backend - HTTP DELETE /api/customers/c86ee31e-81c2-4287-b885-eb4a81e4bc85 -> 200 +2026-03-11 15:46:02,036 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:02,046 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:02,483 [INFO] wechat-backend - HTTP DELETE /api/customers/f4d958a3-c775-42b0-b487-088b315088ee from 127.0.0.1 +2026-03-11 15:46:02,504 [INFO] wechat-backend - HTTP DELETE /api/customers/f4d958a3-c775-42b0-b487-088b315088ee -> 200 +2026-03-11 15:46:02,510 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:02,515 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:02,964 [INFO] wechat-backend - HTTP DELETE /api/customers/fe30ba44-ee95-4a46-a922-c7d67d9a5f0b from 127.0.0.1 +2026-03-11 15:46:02,971 [INFO] wechat-backend - HTTP DELETE /api/customers/fe30ba44-ee95-4a46-a922-c7d67d9a5f0b -> 200 +2026-03-11 15:46:02,979 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:02,986 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:03,403 [INFO] wechat-backend - HTTP DELETE /api/customers/05e285ad-9614-4488-bbf1-cdb9b0e823a2 from 127.0.0.1 +2026-03-11 15:46:03,412 [INFO] wechat-backend - HTTP DELETE /api/customers/05e285ad-9614-4488-bbf1-cdb9b0e823a2 -> 200 +2026-03-11 15:46:03,425 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:03,433 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:03,798 [INFO] wechat-backend - HTTP DELETE /api/customers/88d9bdc9-cbd5-4ac8-91ea-b99b0a3039bc from 127.0.0.1 +2026-03-11 15:46:03,805 [INFO] wechat-backend - HTTP DELETE /api/customers/88d9bdc9-cbd5-4ac8-91ea-b99b0a3039bc -> 200 +2026-03-11 15:46:03,809 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:03,817 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:04,185 [INFO] wechat-backend - HTTP DELETE /api/customers/b4f65d5a-b592-40de-938e-981b22a7643d from 127.0.0.1 +2026-03-11 15:46:04,190 [INFO] wechat-backend - HTTP DELETE /api/customers/b4f65d5a-b592-40de-938e-981b22a7643d -> 200 +2026-03-11 15:46:04,195 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:04,204 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:04,524 [INFO] wechat-backend - HTTP DELETE /api/customers/f24d48f4-3520-4c43-ab93-541f487dcd0f from 127.0.0.1 +2026-03-11 15:46:04,530 [INFO] wechat-backend - HTTP DELETE /api/customers/f24d48f4-3520-4c43-ab93-541f487dcd0f -> 200 +2026-03-11 15:46:04,537 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:04,541 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:04,740 [INFO] wechat-backend - HTTP DELETE /api/customers/01f41bcf-b262-4003-986c-0fbca6184c09 from 127.0.0.1 +2026-03-11 15:46:04,743 [INFO] wechat-backend - HTTP DELETE /api/customers/01f41bcf-b262-4003-986c-0fbca6184c09 -> 200 +2026-03-11 15:46:04,748 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:04,752 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:05,098 [INFO] wechat-backend - HTTP DELETE /api/customers/293145f9-bcfd-4d0a-9463-2ced3ddfa603 from 127.0.0.1 +2026-03-11 15:46:05,105 [INFO] wechat-backend - HTTP DELETE /api/customers/293145f9-bcfd-4d0a-9463-2ced3ddfa603 -> 200 +2026-03-11 15:46:05,113 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:05,118 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:05,310 [INFO] wechat-backend - HTTP DELETE /api/customers/a3171ad4-debb-43cb-97df-e6f33d4cbeb9 from 127.0.0.1 +2026-03-11 15:46:05,315 [INFO] wechat-backend - HTTP DELETE /api/customers/a3171ad4-debb-43cb-97df-e6f33d4cbeb9 -> 200 +2026-03-11 15:46:05,319 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:05,324 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:05,666 [INFO] wechat-backend - HTTP DELETE /api/customers/1f9178b3-07fc-476b-b756-23a18cea59e7 from 127.0.0.1 +2026-03-11 15:46:05,671 [INFO] wechat-backend - HTTP DELETE /api/customers/1f9178b3-07fc-476b-b756-23a18cea59e7 -> 200 +2026-03-11 15:46:05,683 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:05,692 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:06,029 [INFO] wechat-backend - HTTP DELETE /api/customers/d9962ad2-c00b-4354-a0b5-da5c540953e4 from 127.0.0.1 +2026-03-11 15:46:06,035 [INFO] wechat-backend - HTTP DELETE /api/customers/d9962ad2-c00b-4354-a0b5-da5c540953e4 -> 200 +2026-03-11 15:46:06,043 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:06,051 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:06,423 [INFO] wechat-backend - HTTP DELETE /api/customers/849edd20-b978-411d-bc30-956562ee2ea8 from 127.0.0.1 +2026-03-11 15:46:06,431 [INFO] wechat-backend - HTTP DELETE /api/customers/849edd20-b978-411d-bc30-956562ee2ea8 -> 200 +2026-03-11 15:46:06,448 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:06,453 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:06,845 [INFO] wechat-backend - HTTP DELETE /api/customers/c29cc5d2-41bb-48c3-86a5-05bc97dc01eb from 127.0.0.1 +2026-03-11 15:46:06,850 [INFO] wechat-backend - HTTP DELETE /api/customers/c29cc5d2-41bb-48c3-86a5-05bc97dc01eb -> 200 +2026-03-11 15:46:06,854 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:06,857 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:07,283 [INFO] wechat-backend - HTTP DELETE /api/customers/924f12a7-acd8-4175-bdaa-25c46b8f9029 from 127.0.0.1 +2026-03-11 15:46:07,289 [INFO] wechat-backend - HTTP DELETE /api/customers/924f12a7-acd8-4175-bdaa-25c46b8f9029 -> 200 +2026-03-11 15:46:07,293 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:07,297 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:07,538 [INFO] wechat-backend - HTTP DELETE /api/customers/c96780b0-4b6a-461d-aa0e-7c0e5d989340 from 127.0.0.1 +2026-03-11 15:46:07,545 [INFO] wechat-backend - HTTP DELETE /api/customers/c96780b0-4b6a-461d-aa0e-7c0e5d989340 -> 200 +2026-03-11 15:46:07,553 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:07,558 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:07,748 [INFO] wechat-backend - HTTP DELETE /api/customers/3cb8a91a-c94e-4b56-99aa-8ff5675032e7 from 127.0.0.1 +2026-03-11 15:46:07,757 [INFO] wechat-backend - HTTP DELETE /api/customers/3cb8a91a-c94e-4b56-99aa-8ff5675032e7 -> 200 +2026-03-11 15:46:07,758 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:07,759 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:07,763 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:07,767 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:08,173 [INFO] wechat-backend - HTTP DELETE /api/customers/add7bf84-5b4e-4932-a39b-676cf7680c4c from 127.0.0.1 +2026-03-11 15:46:08,178 [INFO] wechat-backend - HTTP DELETE /api/customers/add7bf84-5b4e-4932-a39b-676cf7680c4c -> 200 +2026-03-11 15:46:08,183 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:08,186 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:08,396 [INFO] wechat-backend - HTTP DELETE /api/customers/43067464-06dd-469b-a3e9-8c9cce4e4525 from 127.0.0.1 +2026-03-11 15:46:08,402 [INFO] wechat-backend - HTTP DELETE /api/customers/43067464-06dd-469b-a3e9-8c9cce4e4525 -> 200 +2026-03-11 15:46:08,410 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:08,413 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:08,961 [INFO] wechat-backend - HTTP DELETE /api/customers/ae017510-398e-4093-9862-d8659755f67b from 127.0.0.1 +2026-03-11 15:46:08,967 [INFO] wechat-backend - HTTP DELETE /api/customers/ae017510-398e-4093-9862-d8659755f67b -> 200 +2026-03-11 15:46:08,974 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:08,980 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:09,322 [INFO] wechat-backend - HTTP DELETE /api/customers/7e9d38c4-236a-401a-9832-5dbd3ddc3880 from 127.0.0.1 +2026-03-11 15:46:09,333 [INFO] wechat-backend - HTTP DELETE /api/customers/7e9d38c4-236a-401a-9832-5dbd3ddc3880 -> 200 +2026-03-11 15:46:09,339 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:09,345 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:09,690 [INFO] wechat-backend - HTTP DELETE /api/customers/fad5edc2-89ca-4909-84f0-491cac12bb8e from 127.0.0.1 +2026-03-11 15:46:09,694 [INFO] wechat-backend - HTTP DELETE /api/customers/fad5edc2-89ca-4909-84f0-491cac12bb8e -> 200 +2026-03-11 15:46:09,702 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:09,708 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:10,028 [INFO] wechat-backend - HTTP DELETE /api/customers/3031271c-50f4-4b5e-9fa2-f43b6893fdd3 from 127.0.0.1 +2026-03-11 15:46:10,035 [INFO] wechat-backend - HTTP DELETE /api/customers/3031271c-50f4-4b5e-9fa2-f43b6893fdd3 -> 200 +2026-03-11 15:46:10,045 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:10,053 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:10,275 [INFO] wechat-backend - HTTP DELETE /api/customers/2c704c03-60be-4574-829f-ee793633374c from 127.0.0.1 +2026-03-11 15:46:10,281 [INFO] wechat-backend - HTTP DELETE /api/customers/2c704c03-60be-4574-829f-ee793633374c -> 200 +2026-03-11 15:46:10,285 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:10,288 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:10,649 [INFO] wechat-backend - HTTP DELETE /api/customers/72b8c6cc-7015-48e5-8ef8-c9ec19264939 from 127.0.0.1 +2026-03-11 15:46:10,653 [INFO] wechat-backend - HTTP DELETE /api/customers/72b8c6cc-7015-48e5-8ef8-c9ec19264939 -> 200 +2026-03-11 15:46:10,657 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:10,660 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:11,029 [INFO] wechat-backend - HTTP DELETE /api/customers/6bbaccaf-29c2-4c78-9c90-fc46b117a394 from 127.0.0.1 +2026-03-11 15:46:11,034 [INFO] wechat-backend - HTTP DELETE /api/customers/6bbaccaf-29c2-4c78-9c90-fc46b117a394 -> 200 +2026-03-11 15:46:11,037 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:11,040 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:11,270 [INFO] wechat-backend - HTTP DELETE /api/customers/1ab067b1-3d80-4449-93d9-b9598863cc57 from 127.0.0.1 +2026-03-11 15:46:11,277 [INFO] wechat-backend - HTTP DELETE /api/customers/1ab067b1-3d80-4449-93d9-b9598863cc57 -> 200 +2026-03-11 15:46:11,280 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:11,283 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:11,665 [INFO] wechat-backend - HTTP DELETE /api/customers/c873c3b2-1145-4fc4-ba06-01aaada0ef88 from 127.0.0.1 +2026-03-11 15:46:11,670 [INFO] wechat-backend - HTTP DELETE /api/customers/c873c3b2-1145-4fc4-ba06-01aaada0ef88 -> 200 +2026-03-11 15:46:11,674 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:11,676 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:12,099 [INFO] wechat-backend - HTTP DELETE /api/customers/d25761e2-8ec6-444e-b139-ebd00ab1cc31 from 127.0.0.1 +2026-03-11 15:46:12,106 [INFO] wechat-backend - HTTP DELETE /api/customers/d25761e2-8ec6-444e-b139-ebd00ab1cc31 -> 200 +2026-03-11 15:46:12,110 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:12,113 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:12,308 [INFO] wechat-backend - HTTP DELETE /api/customers/d266ccdd-7bb3-4736-840a-c79a47e80eb9 from 127.0.0.1 +2026-03-11 15:46:12,312 [INFO] wechat-backend - HTTP DELETE /api/customers/d266ccdd-7bb3-4736-840a-c79a47e80eb9 -> 200 +2026-03-11 15:46:12,316 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:12,319 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:12,463 [INFO] wechat-backend - HTTP DELETE /api/customers/0e19d026-577a-4485-999a-b67600f7627b from 127.0.0.1 +2026-03-11 15:46:12,468 [INFO] wechat-backend - HTTP DELETE /api/customers/0e19d026-577a-4485-999a-b67600f7627b -> 200 +2026-03-11 15:46:12,474 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:12,476 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:12,657 [INFO] wechat-backend - HTTP DELETE /api/customers/ee765f64-5d8e-4811-a85d-4956c9796685 from 127.0.0.1 +2026-03-11 15:46:12,660 [INFO] wechat-backend - HTTP DELETE /api/customers/ee765f64-5d8e-4811-a85d-4956c9796685 -> 200 +2026-03-11 15:46:12,664 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:12,668 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:12,853 [INFO] wechat-backend - HTTP DELETE /api/customers/af788fde-d5d7-4893-8aa5-e135e870e635 from 127.0.0.1 +2026-03-11 15:46:12,861 [INFO] wechat-backend - HTTP DELETE /api/customers/af788fde-d5d7-4893-8aa5-e135e870e635 -> 200 +2026-03-11 15:46:12,865 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:12,869 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:13,175 [INFO] wechat-backend - HTTP DELETE /api/customers/ffb7cf3b-5400-4309-8235-0090abe2e99f from 127.0.0.1 +2026-03-11 15:46:13,182 [INFO] wechat-backend - HTTP DELETE /api/customers/ffb7cf3b-5400-4309-8235-0090abe2e99f -> 200 +2026-03-11 15:46:13,190 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:13,193 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:18,724 [INFO] wechat-backend - HTTP DELETE /api/customers/26333614-feff-4ad1-b1f7-f8c8ba89b2d6 from 127.0.0.1 +2026-03-11 15:46:18,733 [INFO] wechat-backend - HTTP DELETE /api/customers/26333614-feff-4ad1-b1f7-f8c8ba89b2d6 -> 200 +2026-03-11 15:46:18,734 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:18,735 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:18,740 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:18,743 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:20,633 [INFO] wechat-backend - HTTP DELETE /api/customers/2b403a9f-34f7-4f35-b576-b32760d6b087 from 127.0.0.1 +2026-03-11 15:46:20,642 [INFO] wechat-backend - HTTP DELETE /api/customers/2b403a9f-34f7-4f35-b576-b32760d6b087 -> 200 +2026-03-11 15:46:20,646 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 15:46:20,651 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 15:46:23,698 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:23,699 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:23,829 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 15:46:23,833 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 15:46:32,124 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 from 127.0.0.1 +2026-03-11 15:46:32,131 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 -> 200 +2026-03-11 15:46:32,132 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:32,134 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:32,140 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:46:32,142 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:46:34,196 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 from 127.0.0.1 +2026-03-11 15:46:34,203 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 -> 200 +2026-03-11 15:46:34,209 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:46:34,216 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:46:39,187 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 from 127.0.0.1 +2026-03-11 15:46:39,193 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 -> 200 +2026-03-11 15:46:39,201 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:46:39,204 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:46:39,700 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:39,702 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:42,167 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 from 127.0.0.1 +2026-03-11 15:46:42,175 [INFO] wechat-backend - HTTP DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 -> 200 +2026-03-11 15:46:42,180 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 15:46:42,185 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 15:46:47,702 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:47,703 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:46:55,700 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:46:55,701 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:04,493 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:04,494 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:18,596 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:18,596 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:20,357 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:20,358 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:28,358 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:28,359 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:36,564 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:36,564 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:43,703 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:43,704 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:47:51,700 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:47:51,701 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:01,173 [INFO] wechat-backend - HTTP DELETE /api/push-groups/da9d1379-223b-47aa-ae4e-14432ff33d45 from 127.0.0.1 +2026-03-11 15:48:01,182 [INFO] wechat-backend - HTTP DELETE /api/push-groups/da9d1379-223b-47aa-ae4e-14432ff33d45 -> 200 +2026-03-11 15:48:01,183 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:01,184 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:01,189 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:48:01,192 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:48:01,195 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:48:01,198 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:48:01,205 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:48:01,227 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 15:48:01,229 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:48:01,230 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 15:48:01,235 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 15:48:01,237 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 15:48:08,369 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:08,370 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:10,623 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 15:48:10,629 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 15:48:10,630 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 15:48:10,633 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 15:48:15,138 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config from 127.0.0.1 +2026-03-11 15:48:15,143 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config -> 200 +2026-03-11 15:48:18,290 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:18,291 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:18,292 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 15:48:18,299 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 15:48:23,701 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:23,701 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:31,702 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:31,703 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:39,704 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:39,705 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:40,195 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:40,233 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:44,292 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:44,305 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:45,265 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:45,279 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:45,419 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:45,433 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:45,606 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:45,619 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:45,791 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:45,803 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:46,213 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:46,228 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:46,451 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:46,466 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:46,903 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:48:46,917 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:48:48,181 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:48,182 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:48:56,184 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:48:56,186 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:04,359 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:04,360 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:14,468 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:14,469 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:20,186 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:20,187 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:28,361 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:28,362 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:36,359 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:36,360 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:44,361 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:44,362 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:49:52,362 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:49:52,363 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:50:00,361 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:50:00,362 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:50:08,362 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:50:08,364 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:50:16,364 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:50:16,365 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:50:42,365 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:50:42,367 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:51:42,368 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:51:42,369 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:52:46,312 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:52:46,313 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:53:42,370 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:53:42,371 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:54:42,370 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:54:42,371 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:55:42,370 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:55:42,371 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:56:42,370 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:56:42,372 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:57:42,372 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:57:42,373 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:57:58,046 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 15:57:58,053 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 15:57:58,145 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 15:58:03,062 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:03,063 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:04,019 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:58:04,035 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:58:06,262 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:58:06,310 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:58:07,196 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:58:07,212 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:58:07,380 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:58:07,393 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:58:07,554 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:58:07,569 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:58:14,253 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:14,255 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:22,255 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:22,256 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:31,684 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:31,685 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:38,371 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:38,371 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:38,452 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 127.0.0.1 +2026-03-11 15:58:38,458 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 15:58:46,374 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:46,375 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:58:54,373 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:58:54,374 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:04,062 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:04,063 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:10,638 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:10,639 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:18,374 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:18,376 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:39,905 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:39,910 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:42,255 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:42,257 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:51,330 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:51,331 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 15:59:53,947 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:59:53,959 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:59:54,833 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:59:54,847 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:59:54,991 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:59:55,005 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:59:55,143 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 15:59:55,156 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 15:59:58,275 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 15:59:58,293 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:06,372 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:06,372 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:16,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:16,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:26,589 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:26,590 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:36,696 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:36,697 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:40,090 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:40,091 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:46,376 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:46,377 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:00:54,375 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:00:54,377 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:01:42,381 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:01:42,382 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:02:42,383 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:02:42,383 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:11:32,270 [INFO] wechat-backend.ws_sync - WS GetSyncMsg 使用 key=***9BJZ(与登录页 key 一致时才能收到该账号消息) +2026-03-11 16:11:32,281 [INFO] wechat-backend.ws_sync - WS connecting to ws://113.44.162.180:7006/ws/GetSyncMsg?key=HBpEnbtj9BJZ +2026-03-11 16:11:32,397 [INFO] wechat-backend.ws_sync - WS connected for key=HBpEnbtj9BJZ +2026-03-11 16:27:34,225 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:27:34,233 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:27:34,236 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:27:49,515 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 16:27:49,523 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 16:27:49,526 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 16:27:49,526 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:27:49,526 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 16:27:49,529 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:27:49,532 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:27:49,532 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:27:49,553 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:27:49,555 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:27:49,556 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:27:49,558 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:27:49,564 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:27:49,566 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:27:49,567 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:27:49,570 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:27:51,670 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:27:51,704 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:27:59,662 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:27:59,666 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:04,945 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:28:04,955 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:28:08,478 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:08,479 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:18,954 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:18,955 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:24,417 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:24,418 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:32,418 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:32,419 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:32,928 [INFO] wechat-backend - HTTP GET /api/callback/wechat-message from 141.11.86.76 +2026-03-11 16:28:32,932 [INFO] wechat-backend - HTTP GET /api/callback/wechat-message -> 404 +2026-03-11 16:28:33,384 [INFO] wechat-backend - HTTP GET /favicon.ico from 141.11.86.76 +2026-03-11 16:28:33,387 [INFO] wechat-backend - HTTP GET /favicon.ico -> 404 +2026-03-11 16:28:40,418 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:40,419 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:40,762 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:28:40,770 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:28:48,421 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:48,423 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:28:56,417 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:28:56,418 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:29:04,419 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:29:04,420 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:29:42,054 [INFO] wechat-backend - HTTP GET / from 141.11.86.76 +2026-03-11 16:29:42,061 [INFO] wechat-backend - HTTP GET / -> 200 +2026-03-11 16:29:42,420 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:29:42,421 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:29:43,354 [INFO] wechat-backend - HTTP GET /health from 141.11.86.76 +2026-03-11 16:29:43,355 [INFO] wechat-backend - Health check +2026-03-11 16:29:43,356 [INFO] wechat-backend - HTTP GET /health -> 200 +2026-03-11 16:30:42,423 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:30:42,424 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:31:42,428 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:31:42,429 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:32:19,356 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:32:19,360 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:32:19,364 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:32:35,545 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:32:35,548 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:32:36,778 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:32:36,811 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:32:38,681 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 16:32:38,701 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 16:32:38,702 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 16:32:38,706 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:32:38,710 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:32:38,711 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 16:32:38,714 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:32:38,716 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:32:38,731 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:32:38,735 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:32:38,735 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:32:38,739 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:32:38,746 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:32:38,749 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:32:38,750 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:32:38,754 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:32:39,827 [INFO] wechat-backend - HTTP GET /api/callback-status from 127.0.0.1 +2026-03-11 16:32:39,861 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 16:32:39,871 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 16:32:39,875 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 16:32:39,876 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 16:32:39,995 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:32:39,996 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:32:40,002 [INFO] wechat-backend - HTTP GET /api/callback-status -> 200 +2026-03-11 16:32:46,669 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:32:46,671 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:32:54,626 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 16:32:54,631 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 16:32:54,664 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:32:54,672 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:32:56,777 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 16:32:56,781 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 16:32:58,273 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config from 127.0.0.1 +2026-03-11 16:32:58,278 [INFO] wechat-backend - HTTP PATCH /api/ai-reply-config -> 200 +2026-03-11 16:32:59,635 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 16:32:59,640 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 16:33:00,690 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:00,719 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:02,835 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:02,849 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:03,705 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:03,720 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:03,859 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:03,873 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:04,029 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:04,042 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:04,168 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:04,182 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:04,321 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:33:04,334 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:33:08,678 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:08,679 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:16,676 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:16,678 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:21,665 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:33:21,670 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:33:24,676 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:24,678 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:33,904 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:33,905 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:41,486 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:41,487 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:49,428 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:49,429 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:33:52,441 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:33:52,443 [WARNING] wechat-backend - callback/wechat-message: missing key in query and body +2026-03-11 16:33:52,443 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:33:57,425 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:33:57,426 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:05,425 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:05,426 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:13,428 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:13,429 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:21,452 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:21,453 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:29,426 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:29,428 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:39,221 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:39,222 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:44,677 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:44,678 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:34:46,179 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:46,193 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:48,761 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:48,775 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:48,949 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:48,965 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:49,134 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:49,147 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:49,306 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:49,320 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:49,461 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:34:49,475 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:34:59,738 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:34:59,738 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:09,971 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:09,972 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:17,427 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:17,428 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:25,427 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:25,427 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:33,426 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:33,427 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:41,428 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:41,429 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:35:49,430 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:35:49,431 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:36:49,504 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:36:49,506 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:36:49,509 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:36:50,882 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:36:50,885 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:36:52,682 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:36:52,683 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:36:53,130 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:36:53,163 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:37:01,117 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:01,118 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:09,117 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:09,118 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:10,903 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:37:10,912 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:37:18,331 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:18,332 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:26,004 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:26,005 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:33,432 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:33,433 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:41,558 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:41,559 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:51,675 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:51,675 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:37:59,588 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:37:59,589 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:05,432 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:05,433 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:15,539 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:15,540 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:21,430 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:21,431 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:36,913 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:36,914 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:45,430 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:45,431 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:38:55,187 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:38:55,188 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:01,436 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:01,437 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:11,640 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:11,641 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:18,208 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:18,209 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:25,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:25,435 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:33,432 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:33,433 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:41,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:41,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:48,635 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:39:48,650 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:39:49,116 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:49,118 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:39:59,590 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:39:59,591 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:05,703 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:05,704 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:13,429 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:13,430 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:21,434 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:21,435 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:29,432 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:29,433 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:37,432 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:37,433 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:40:45,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:40:45,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:41:42,438 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:41:42,439 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:42:42,439 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:42:42,440 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:43:05,779 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:43:05,788 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:43:05,791 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:43:42,495 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:43:42,498 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:44:42,442 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:44:42,443 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:45:41,947 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:45:41,949 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:45:45,712 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:45:45,745 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:45:53,505 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:45:53,511 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:45:53,513 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1473557546, 'from_user_name': {'str': 'gh_363b924965e9'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n \n <![CDATA[日本部署射程1000公里导弹?国防部正告!]]>\n \n \n 5\n 1\n \n 0\n \n \n \n 0\n \n \n \n \n \n +2026-03-11 16:45:53,521 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 126545176, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 1, 'content': {'str': '测试'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773218751, 'msg_source': '\n\t0\n\t1\n\t1\n\tN0_V1_kCxDNpbZ|v1_KnMN62J8\n\t\n\t\t\n\t\n\n', 'push_content': 'Daniel : 测试', 'new_msg_id': 7863409962219146715}, 'type': 'message'} +2026-03-11 16:45:53,525 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:45:53,525 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:45:53,701 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:45:53,701 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:02,442 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:02,443 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:10,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:10,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:24,627 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:24,628 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:26,440 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:26,441 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:33,701 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:33,702 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:42,445 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:42,446 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:52,777 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:52,777 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:46:58,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:46:58,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:47:06,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:47:06,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:47:18,143 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:47:18,144 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:47:22,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:47:22,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:47:30,441 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:47:30,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:47:42,445 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:47:42,446 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:48:42,444 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:48:42,445 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:00,960 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:49:00,965 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:49:00,969 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:49:06,145 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:06,148 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:06,934 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:06,963 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:16,848 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:16,849 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:19,566 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:49:19,568 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1117516549, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 1, 'content': {'str': '消息'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773218958, 'msg_source': '\n\t0\n\t1\n\t1\n\tN0_V1_twFUA/KK|v1_Q6QdwdkF\n\t\n\t\t\n\t\n\n', 'push_content': 'Daniel : 消息', 'new_msg_id': 1599094856157976060}, 'type': 'message'} +2026-03-11 16:49:19,568 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + _on_ws_message(k, payload) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:49:19,572 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:49:22,925 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:22,926 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:26,057 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:26,071 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:27,312 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:27,327 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:27,483 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:27,498 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:27,620 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:27,634 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:29,484 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 16:49:29,491 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 16:49:29,493 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 16:49:29,503 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:49:29,504 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 16:49:29,514 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:49:29,520 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:49:29,540 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:49:29,548 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:49:29,552 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:49:29,552 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:49:29,555 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:49:29,560 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 16:49:29,563 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 16:49:29,563 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 16:49:29,565 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 16:49:31,466 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:49:31,495 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:49:41,457 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:41,458 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:50,221 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:50,222 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:49:56,447 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:49:56,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:04,449 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:50:04,450 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:12,449 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:50:12,450 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:22,504 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:50:22,505 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:28,447 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:50:28,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:37,290 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:37,292 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 931215370, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nHandOffMaster\n\n\n\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219036, 'msg_source': '\n\tv1_QOmHAs5/\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8857636559672986511}, 'type': 'message'} +2026-03-11 16:50:37,292 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + _on_ws_message(k, payload) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:50:37,293 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:50:38,782 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:38,784 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1618328740, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nHandOffMaster\n\n<![CDATA[微信最新公告:集体下架]]> 200 +2026-03-11 16:50:39,320 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:39,323 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1667152972, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nHandOffMaster\n\n<![CDATA[微信最新公告:集体下架]]>\n\n\n 200 +2026-03-11 16:50:40,187 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:40,188 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 415079913, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nHandOffMaster\n\n<![CDATA[微信最新公告:集体下架]]>\n\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219039, 'msg_source': '\n\t +2026-03-11 16:50:40,189 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + _on_ws_message(k, payload) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:50:40,189 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:50:42,447 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:50:42,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:50:56,506 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:56,507 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1259463187, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nHandOffMaster\n\n<![CDATA[微信最新公告:集体下架]]>\n\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219056, 'msg_source': '\n\ +2026-03-11 16:50:56,508 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + _on_ws_message(k, payload) + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:50:56,508 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:50:58,621 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:58,622 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 223889560, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"1599094856157976060","MsgCreateTime":"1773218958"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219058, 'msg_source': '\n\tv1_I+upUARa\n\t\n\t\t\n\t\n\n', 'new_msg_id': 6286406650624552766}, 'type': 'message'} +2026-03-11 16:50:58,622 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + if normalized: + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + # 1)上游典型结构:{"MsgList": [...]} / {"List": [...]} / {"msgList": [...]} +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:50:58,625 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:50:58,903 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:50:58,904 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 2138350759, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"1599094856157976060","MsgCreateTime":"1773218958"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219058, 'msg_source': '\n\tv1_lTdzcRiS\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1742197888542491951}, 'type': 'message'} +2026-03-11 16:50:58,904 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + if normalized: + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + # 1)上游典型结构:{"MsgList": [...]} / {"List": [...]} / {"msgList": [...]} +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:50:58,905 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:51:01,100 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:51:01,102 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 611205067, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': "\n\nMomentsTimelineStatus\n14874837869221581387,1773218854\n\n"}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219060, 'msg_source': '\n\tv1_sHeXyA5I\n\t\n\t\t\n\t\n\n', 'new_msg_id': 2745596372039415003}, 'type': 'message'} +2026-03-11 16:51:01,102 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + if normalized: + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + # 1)上游典型结构:{"MsgList": [...]} / {"List": [...]} / {"msgList": [...]} +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:51:01,103 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:51:01,230 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:51:01,231 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1901012116, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': "\n\nMomentsTimelineStatus\n14874837869221581387,1773218854\n\n"}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219061, 'msg_source': '\n\tv1_dtjKlDkR\n\t\n\t\t\n\t\n\n', 'new_msg_id': 3378817495448674450}, 'type': 'message'} +2026-03-11 16:51:01,232 [ERROR] wechat-backend - callback/wechat-message key=9BJZ: 'list' object has no attribute 'get' +Traceback (most recent call last): + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 927, in api_callback_wechat_message + if normalized: + File "/Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/main.py", line 112, in _on_ws_message + # 1)上游典型结构:{"MsgList": [...]} / {"List": [...]} / {"msgList": [...]} +AttributeError: 'list' object has no attribute 'get' +2026-03-11 16:51:01,232 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:51:42,455 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:51:42,456 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:52:42,455 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:52:42,456 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:52:59,935 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:52:59,937 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:53:09,603 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:53:09,604 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:53:09,607 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:53:11,740 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:11,756 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:13,677 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:13,691 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:14,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:14,251 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:14,406 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:14,421 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:26,737 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:53:26,738 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:53:29,628 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:53:29,630 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1819784606, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 1, 'content': {'str': '测试'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219208, 'msg_source': '\n\t0\n\t1\n\t1\n\tN0_V1_Wr5/aWY5|v1_7E82VKVt\n\t\n\t\t\n\t\n\n', 'push_content': 'Daniel : 测试', 'new_msg_id': 6419741201611506488}, 'type': 'message'} +2026-03-11 16:53:31,754 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:53:31,755 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:53:31,762 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:53:34,100 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:34,116 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:35,653 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:53:35,654 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:53:35,991 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:36,006 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:41,315 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:53:41,329 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:53:43,651 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:53:43,652 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:53:47,649 [INFO] httpx - HTTP Request: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions "HTTP/1.1 200 OK" +2026-03-11 16:53:48,132 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:53:48,146 [INFO] wechat-backend - AI takeover replied to zhang499142409: 测试成功!一切正常。请问有什么我可以帮您的吗? +2026-03-11 16:53:55,097 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:53:55,098 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:05,243 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:05,244 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:10,674 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:10,680 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:13,251 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:54:13,267 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:54:15,655 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:15,656 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:24,452 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:24,453 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:32,552 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:32,553 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:42,662 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:42,664 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:50,514 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:50,516 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:54:59,777 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:54:59,778 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:55:06,873 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:55:06,874 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:55:12,229 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:55:12,231 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 555180835, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"692994986593823800","MsgCreateTime":"1773219227"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219311, 'msg_source': '\n\tv1_D6ItUpRw\n\t\n\t\t\n\t\n\n', 'new_msg_id': 2940432390515779675}, 'type': 'message'} +2026-03-11 16:55:12,239 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:55:14,270 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 16:55:14,273 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 40009786, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"692994986593823800","MsgCreateTime":"1773219227"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773219314, 'msg_source': '\n\tv1_zxxfDQsf\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1332112526901289647}, 'type': 'message'} +2026-03-11 16:55:14,280 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 16:55:16,983 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:55:16,984 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:55:27,093 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:55:27,094 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:55:42,459 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:55:42,460 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:56:45,437 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:56:45,438 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:57:42,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:57:42,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:58:45,133 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:58:45,134 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:58:47,632 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:58:47,633 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:01,980 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 16:59:01,988 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 16:59:01,991 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 16:59:05,889 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:05,892 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:11,636 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:11,637 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:11,668 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:11,705 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:13,651 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:13,667 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:15,652 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:15,667 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:17,650 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:17,664 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:19,650 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:19,650 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:19,652 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:19,666 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:21,653 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:21,668 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:23,651 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:23,666 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:25,653 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:25,668 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:27,654 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:27,655 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:27,656 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:27,671 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:29,650 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:29,664 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:31,651 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:31,667 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:33,653 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:33,670 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:35,652 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:35,654 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:35,655 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:35,669 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:37,652 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 16:59:37,672 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 16:59:44,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:44,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 16:59:52,434 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 16:59:52,435 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:00,439 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:00,441 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:02,464 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:02,480 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:03,307 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:03,322 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:04,464 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:04,481 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:06,463 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:06,479 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:07,653 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:07,655 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:08,461 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:08,475 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:10,462 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:10,479 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:12,463 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:12,478 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:14,463 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:14,479 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:15,653 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:15,654 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:16,463 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:16,479 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:18,461 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:00:18,478 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:00:30,499 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:30,500 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:40,607 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:40,608 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:48,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:48,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:00:56,433 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:00:56,434 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:01:14,435 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:01:14,436 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:01:24,545 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:01:24,546 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:01:42,439 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:01:42,440 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:02:42,437 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:02:42,439 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:03:48,448 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:03:48,449 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:04:49,448 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:04:49,449 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:05:31,659 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:05:31,661 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:05:31,670 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:05:32,426 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:05:32,457 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:05:33,006 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:05:33,021 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:05:35,001 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:05:35,016 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:05:35,272 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:05:35,284 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:05:37,000 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:05:37,015 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:05:42,447 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:05:42,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:05:52,987 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:05:52,988 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:05:59,608 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:05:59,609 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:06:15,345 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:06:15,346 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:06:23,994 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:06:23,995 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:06:29,442 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:06:29,443 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:06:37,443 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:06:37,444 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:07:42,448 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:07:42,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:07:49,004 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:07:49,006 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:07:49,459 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:07:49,475 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:07:51,457 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:07:51,486 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:07:57,445 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:07:57,445 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:05,647 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:05,647 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:13,446 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:13,451 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:21,442 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:21,442 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:29,445 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:29,446 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:37,446 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:37,447 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:08:45,445 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:08:45,446 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:09:42,470 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:09:42,471 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:20,604 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:20,605 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:21,007 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:21,008 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:22,602 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:10:22,614 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:10:33,628 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:33,629 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:40,633 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:40,634 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:45,450 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:45,451 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:54,646 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:10:54,647 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:10:57,398 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:10:57,414 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:11:01,449 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:01,450 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:17,879 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:17,880 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:27,990 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:27,991 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:33,452 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:33,453 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:41,452 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:41,453 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:49,451 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:49,452 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:11:57,454 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:11:57,455 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:07,507 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:07,508 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:09,507 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:09,521 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:11,506 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:11,522 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:13,013 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:13,015 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:13,508 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:13,524 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:15,508 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:15,523 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:17,508 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:17,524 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:19,507 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:19,523 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:20,113 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:20,264 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1366308829, 'from_user_name': {'str': 'gh_6651e07e4b2d'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n \n <![CDATA[会场上,这位“90后”带树苗参会!记者拍下了这些生动瞬间→]]>\n \n \n 5\n 1\n \n 0\n \n \n \n 0\n \n \n \n \n \n 200 +2026-03-11 17:12:20,275 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:20,276 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1765102771, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"692994986593823800","MsgCreateTime":"1773219227"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220339, 'msg_source': '\n\tv1_AUd5VtzG\n\t\n\t\t\n\t\n\n', 'new_msg_id': 992863763557000271}, 'type': 'message'} +2026-03-11 17:12:20,280 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:12:20,376 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:20,378 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 971426780, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"692994986593823800","MsgCreateTime":"1773219227"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220339, 'msg_source': '\n\tv1_kwkBQMwu\n\t\n\t\t\n\t\n\n', 'new_msg_id': 3259251225674945157}, 'type': 'message'} +2026-03-11 17:12:20,383 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:12:21,014 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:21,015 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:21,506 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:21,519 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:21,564 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:21,565 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1816162154, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_f2q8xscgg31322\nlastMessage\n{"messageSvrId":"8354732942085133458","MsgCreateTime":"1773163308"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220341, 'msg_source': '\n\tv1_LIVcCfQZ\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5901416073613577766}, 'type': 'message'} +2026-03-11 17:12:21,568 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:12:23,505 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:23,517 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:24,957 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:24,964 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1854639143, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 1, 'content': {'str': '你是谁'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220344, 'msg_source': '\n\t0\n\t1\n\t1\n\tN0_V1_Zh4LSuRK|v1_yBwrjM+S\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1639099447800103440}, 'type': 'message'} +2026-03-11 17:12:25,887 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:12:25,894 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:25,917 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:27,507 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:27,523 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:29,013 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:29,014 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:29,507 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:29,523 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:31,506 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:31,517 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:33,509 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:33,525 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:35,505 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:35,516 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:38,695 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:38,695 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:39,921 [INFO] httpx - HTTP Request: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions "HTTP/1.1 200 OK" +2026-03-11 17:12:40,234 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:12:40,247 [INFO] wechat-backend - AI takeover replied to wxid_f2q8xscgg31322: 您好,我是您的微信客服助手,随时为您服务。请问有什么可以帮您? +2026-03-11 17:12:45,453 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:45,454 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:47,548 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:12:47,550 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1035951266, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_f2q8xscgg31322\nlastMessage\n{"messageSvrId":"2309509955232366853","MsgCreateTime":"1773220360"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220367, 'msg_source': '\n\tv1_UH1lhNBs\n\t\n\t\t\n\t\n\n', 'new_msg_id': 38632233489077509}, 'type': 'message'} +2026-03-11 17:12:47,557 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:12:53,015 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:12:53,016 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:12:53,824 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:53,842 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:55,826 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:55,842 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:57,825 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:57,843 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:12:59,826 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:12:59,842 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:13:01,014 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:01,016 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:01,826 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:13:01,845 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:13:04,409 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:13:04,419 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:13:04,422 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:13:04,430 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:13:04,450 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:13:04,451 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:13:04,454 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:13:04,455 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:13:04,465 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:13:04,468 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:13:04,468 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:13:04,470 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:13:04,474 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:13:04,477 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:13:04,479 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:13:04,480 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:13:12,399 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:12,400 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:21,803 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:21,804 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:28,454 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:28,455 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:36,397 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:36,398 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:37,284 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:13:37,807 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:13:37,807 [INFO] wechat-backend - GetContactList round 1 request url=http://113.44.162.180:7006/friend/GetContactList key=HBpEnbtj9BJZ body={'CurrentChatRoomContactSeq': 0, 'CurrentWxcontactSeq': 0} response={'Code': 200, 'Data': {'ContactList': {'baseResponse': {'ret': 0, 'errMsg': {'str': ''}}, 'currentWxcontactSeq': 874975031, 'currentChatRoomContactSeq': 0, 'continueFlag': 0, 'contactUsernameList': ['medianote', 'floatbottle', 'weixin', 'fmessage', 'wxid_thwiu9za904u12', 'gh_363b924965e9', 'gh_9dc0e48d383a', 'gh_7db9d69b3115', 'gh_dab5c199ae98', 'gh_6651e07e4b2d', 'wxid_9l80of5lzke722', 'apples_zhao', 'wxid_8vrkzwkennso12', 'wxid_vjnc68slkuft22', 'exmail_tool', 'wxid_y8qdwgsybg7l22', 'wxid_6s088858g4r822', 'wxid_82ccpp8n94yu22', 'wxid_3491994920311', 'wxid_q8m2s06tquqz21', 'wxid_hwcatyn6j4e422', 'wxid_otn4pb17ynir22', 'wxid_0xaimtnrzwf322', 'wxid_ms07udpefwdr22', 'wxid_byc51acemgcv22', 'wxid_e5ofjdntvoi722', 'wxid_5872048720612', 'wxid_cgre00i34b8822', 'wxid_3quxi66db88r22', 'wxid_svsfwm0651zk12', 'wxid_zjek60peruho21', 'wxid_0m58lhtrose712', 'wxid_nhmc9wgupn3u12', 'gh_5734260395ca', 'wxid_56zjg7ruyqox41', 'LiUM212', 'zhanghuiqing315', 'wxid_6823228232011', 'jiangxiaob4788', 'wxid_wcmwqb7aopc522', 'yanchao9229', 'wxid_9240632406312', 'wxid_dees861rejut12', 'wxid_9d5d90kxjhm522', 'zhouyang533323', 'zhang499142409', 'wxid_m4axp785kr0q22', 'liuchao_1207', 'XJXM113344', 'wxid_1bldth8qav7y22', 'wxid_pkow0pamex9a22', 'wxid_c1zr9bewp98e12', 'wxid_tnwbq6s0uok341', 'wxid_pkzi310ci9a311', 'wxid_ven9dnoa1wt012', 'gh_f33a60c8d098', 'wxid_8q4rod99dch822', 'qq2287480018']}, 'errMsg': '', 'retCode': 0}, 'Text': '', 'Success': False, 'Data62': '', 'Ticket': ''} +2026-03-11 17:13:37,808 [INFO] wechat-backend - GetContactList no more pages after round 1 +2026-03-11 17:13:37,808 [INFO] wechat-backend - GetContactList total normalized items: 58 +2026-03-11 17:13:37,811 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:13:44,400 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:44,401 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:13:52,401 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:13:52,403 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:00,399 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:00,400 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:08,081 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 17:14:08,091 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 17:14:08,164 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:14:08,175 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:14:09,709 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:09,710 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:17,463 [INFO] wechat-backend - HTTP DELETE /api/customers/6fea0e90-f8db-4db6-a7e7-97d34093fb66 from 127.0.0.1 +2026-03-11 17:14:17,469 [INFO] wechat-backend - HTTP DELETE /api/customers/6fea0e90-f8db-4db6-a7e7-97d34093fb66 -> 200 +2026-03-11 17:14:17,470 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:17,472 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:17,477 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:14:17,479 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:14:24,399 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:24,400 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:32,398 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:32,398 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:40,401 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:40,402 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:48,398 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:48,399 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:14:56,461 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:14:56,463 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:04,545 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:04,546 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:12,456 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:12,458 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:20,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:20,462 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:28,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:28,460 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:36,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:36,459 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:38,836 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:15:38,837 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 901516704, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 1, 'content': {'str': '帮我分析这张图片'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220537, 'msg_source': '\n\tN0_V1_gBvEY7xa|v1_9u+xGf79\n\t\n\t\t\n\t\n\n', 'push_content': 'Daniel : 帮我分析这张图片', 'new_msg_id': 2115706765013969094}, 'type': 'message'} +2026-03-11 17:15:38,877 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:15:38,919 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:15:38,921 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 359384439, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 3, 'content': {'str': '\n\n\t\n\t\teyJwaGFzaCI6IjUwMDA1MDAwMDAwMDAwMDAiLCJwZHFoYXNoIjoiNjliMz +2026-03-11 17:15:38,927 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:15:39,077 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:15:39,079 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 378107, 'from_user_name': {'str': 'gh_9dc0e48d383a'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n \n <![CDATA[日本部署导弹可覆盖邻国沿海,国防部正告→]]>\n \n \n 5\n 1\n \n 0\n \n \n \n 0\n \n \n \n \n \n \n +2026-03-11 17:15:39,086 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:15:44,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:44,460 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:15:52,937 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:15:52,938 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:00,457 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:00,460 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:08,457 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:08,458 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:11,258 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:16:11,283 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:16:13,243 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:16:13,255 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:16:15,243 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:16:15,253 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:16:17,244 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:16:17,254 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:16:19,243 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:19,244 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:16:19,244 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:19,255 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:16:27,933 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:27,934 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:38,599 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:38,601 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:47,217 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:47,218 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:51,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:51,459 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:16:59,457 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:16:59,458 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:17:07,461 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:17:07,462 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:17:15,461 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:17:15,462 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:17:18,452 [INFO] openai._base_client - Retrying request to /chat/completions in 0.431858 seconds +2026-03-11 17:17:25,572 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:17:25,573 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:17:42,464 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:17:42,465 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:05,259 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:05,260 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:07,253 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:07,265 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:09,255 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:09,270 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:11,248 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:11,249 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:11,254 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:11,269 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:13,256 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:13,271 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:15,253 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:15,269 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:17,114 [INFO] httpx - HTTP Request: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions "HTTP/1.1 200 OK" +2026-03-11 17:18:17,622 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:18:17,633 [INFO] wechat-backend - AI takeover replied to zhang499142409: 您好,请发送图片,我会为您进行分析。 +2026-03-11 17:18:21,883 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:21,884 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:27,462 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:27,463 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:31,671 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:18:31,673 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 289072131, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 3, 'content': {'str': '\n\n\t\n\t\teyJwaGFzaCI6IjUwMDA1MDAwMDAwMDAwMDAiLCJwZHFoYXNoIjoiNjliMz +2026-03-11 17:18:31,680 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:18:35,246 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:35,247 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:36,977 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:36,988 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:38,978 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:38,992 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:40,979 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:18:40,996 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:18:45,094 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:45,096 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:51,462 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:51,463 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:18:59,461 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:18:59,461 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:07,462 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:07,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:15,465 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:15,467 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:23,465 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:23,467 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:31,580 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:31,580 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:35,243 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:19:35,260 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:19:39,461 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:39,462 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:47,462 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:47,463 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:19:55,462 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:19:55,462 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:03,465 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:03,466 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:11,466 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:11,467 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:19,464 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:19,465 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:24,913 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:20:24,937 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:20:37,469 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:37,470 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:43,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:43,463 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:51,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:51,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:20:59,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:20:59,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:21:10,429 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:21:10,430 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:21:15,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:21:15,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:21:23,466 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:21:23,466 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:21:32,498 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:21:32,499 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:21:34,496 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:21:34,511 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:21:36,498 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:21:36,512 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:21:38,015 [INFO] wechat-backend - HTTP GET /api/models from 127.0.0.1 +2026-03-11 17:21:38,022 [INFO] wechat-backend - HTTP GET /api/models -> 200 +2026-03-11 17:21:56,466 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:21:56,466 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:05,166 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:05,166 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:05,928 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:05,928 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:05,930 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1647022221, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"0","MsgCreateTime":"0"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220925, 'msg_source': '\n\tv1_ldPpiTyx\n\t\n\t\t\n\t\n\n', 'new_msg_id': 2242785282340835032}, 'type': 'message'} +2026-03-11 17:22:05,937 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 963420394, 'from_user_name': {'str': 'gh_dab5c199ae98'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n \n <![CDATA[全国政协十四届四次会议闭幕 习近平等出席]]>\n \n \n 5\n 1\n \n 0\n \n \n \n 0\n \n \n \n \n \n \n +2026-03-11 17:22:05,940 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:05,940 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:07,053 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:07,054 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 895924971, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 1, 'content': {'str': '153'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220926, 'msg_source': '\n\t0\n\t1\n\t1\n\tN0_V1_itQjsMQg|v1_Kjo734Zc\n\t\n\t\t\n\t\n\n', 'new_msg_id': 4955700899097165454}, 'type': 'message'} +2026-03-11 17:22:07,087 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:08,181 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:08,182 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1490354439, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220927, 'msg_source': '\n\tv1_vFGLor3S\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1537762060158194588}, 'type': 'message'} +2026-03-11 17:22:08,186 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:10,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:10,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:18,469 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:18,470 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:28,579 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:28,580 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:32,237 [INFO] httpx - HTTP Request: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions "HTTP/1.1 200 OK" +2026-03-11 17:22:32,544 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:22:32,559 [INFO] wechat-backend - AI takeover replied to wxid_f2q8xscgg31322: 您好,收到您发送的'153'。请问这是什么意思呢?或者有什么我可以帮您的吗? +2026-03-11 17:22:36,971 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:36,980 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:40,587 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:40,588 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1034525381, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"5032208113864027315","MsgCreateTime":"1773220710"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220960, 'msg_source': '\n\tv1_dOUpI28g\n\t\n\t\t\n\t\n\n', 'new_msg_id': 6233474019235358389}, 'type': 'message'} +2026-03-11 17:22:40,592 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:41,404 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:41,405 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 593724466, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"5032208113864027315","MsgCreateTime":"1773220710"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220961, 'msg_source': '\n\tv1_DRME1Atr\n\t\n\t\t\n\t\n\n', 'new_msg_id': 3619032507254170553}, 'type': 'message'} +2026-03-11 17:22:41,410 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:42,467 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:22:42,468 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:22:46,263 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:46,267 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 971013951, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220966, 'msg_source': '\n\tv1_Bhg1t3c8\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8112298485358485657}, 'type': 'message'} +2026-03-11 17:22:46,274 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:47,700 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:47,701 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 2113763589, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220967, 'msg_source': '\n\tv1_7XTGCdz7\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5259268194125682917}, 'type': 'message'} +2026-03-11 17:22:47,706 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:47,706 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:47,707 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 373452681, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220967, 'msg_source': '\n\tv1_8MrISgVB\n\t\n\t\t\n\t\n\n', 'new_msg_id': 391809341053840512}, 'type': 'message'} +2026-03-11 17:22:47,711 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:48,500 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:48,501 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1075253591, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220968, 'msg_source': '\n\tv1_TVuDd7vq\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1027094125486577192}, 'type': 'message'} +2026-03-11 17:22:48,506 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:56,840 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:56,840 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:22:56,843 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 709385799, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220974, 'msg_source': '\n\tv1_nU5AQRYY\n\t\n\t\t\n\t\n\n', 'new_msg_id': 7457837921545518924}, 'type': 'message'} +2026-03-11 17:22:56,848 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 919883411, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773220975, 'msg_source': '\n\tv1_onsu3SVn\n\t\n\t\t\n\t\n\n', 'new_msg_id': 9075991891222796451}, 'type': 'message'} +2026-03-11 17:22:56,852 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:22:56,853 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:23:16,459 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:23:16,470 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:23:16,492 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:23:23,475 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:23:23,478 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:23:30,008 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:23:30,009 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:23:30,255 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:30,283 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:32,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:32,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:34,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:34,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:36,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:36,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:38,233 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:23:38,234 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:23:38,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:38,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:40,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:40,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:42,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:42,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:44,231 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:44,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:46,233 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:23:46,235 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:23:46,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:46,251 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:48,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:48,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:50,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:50,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:52,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:52,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:54,232 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:23:54,234 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:23:54,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:54,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:55,003 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:23:55,005 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:23:55,006 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 746580661, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221034, 'msg_source': '\n\tv1_QRWTzHBM\n\t\n\t\t\n\t\n\n', 'new_msg_id': 7321515833445826729}, 'type': 'message'} +2026-03-11 17:23:55,013 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1800926960, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221034, 'msg_source': '\n\tv1_rm7hwuOW\n\t\n\t\t\n\t\n\n', 'new_msg_id': 7388428019055284113}, 'type': 'message'} +2026-03-11 17:23:55,017 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:23:55,018 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:23:55,153 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:23:55,156 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1379071190, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_f2q8xscgg31322\nlastMessage\n{"messageSvrId":"7021092168496005391","MsgCreateTime":"1773220952"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221034, 'msg_source': '\n\tv1_BLRBSd1O\n\t\n\t\t\n\t\n\n', 'new_msg_id': 6380259443244722868}, 'type': 'message'} +2026-03-11 17:23:55,161 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:23:56,231 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:56,245 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:58,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:23:58,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:23:58,257 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:23:58,258 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1865718061, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_f2q8xscgg31322\nlastMessage\n{"messageSvrId":"7021092168496005391","MsgCreateTime":"1773220952"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221037, 'msg_source': '\n\tv1_B0EfSFXr\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8179882154603732343}, 'type': 'message'} +2026-03-11 17:23:58,288 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:23:59,390 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:23:59,392 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 423114712, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221039, 'msg_source': '\n\tv1_fgPS19eR\n\t\n\t\t\n\t\n\n', 'new_msg_id': 4679158000362263372}, 'type': 'message'} +2026-03-11 17:23:59,399 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:24:00,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:00,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:01,264 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:24:01,266 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1130609265, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221041, 'msg_source': '\n\tv1_xMGMtj86\n\t\n\t\t\n\t\n\n', 'new_msg_id': 806323367572665611}, 'type': 'message'} +2026-03-11 17:24:01,273 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:24:02,233 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:02,234 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:02,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:02,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:04,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:04,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:06,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:06,246 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:08,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:08,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:10,233 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:10,235 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:10,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:10,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:12,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:12,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:14,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:14,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:16,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:16,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:18,233 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:18,235 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:18,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:18,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:20,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:20,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:22,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:22,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:24,230 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:24,244 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:26,230 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:26,231 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:26,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:26,243 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:27,504 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:24:27,505 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 506905317, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221067, 'msg_source': '\n\tv1_Epb1PQ8C\n\t\n\t\t\n\t\n\n', 'new_msg_id': 3122643214756381347}, 'type': 'message'} +2026-03-11 17:24:27,511 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:24:28,232 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:28,246 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:29,647 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:24:29,649 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 992423167, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_8vrkzwkennso12'}, 'msg_type': 51, 'content': {'str': '\n\nwxid_8vrkzwkennso12\nlastMessage\n{"messageSvrId":"4955700899097165454","MsgCreateTime":"1773220926"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221069, 'msg_source': '\n\tv1_iFXLPHhP\n\t\n\t\t\n\t\n\n', 'new_msg_id': 413348544656569438}, 'type': 'message'} +2026-03-11 17:24:29,656 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:24:30,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:30,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:32,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:32,246 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:34,234 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:34,235 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:34,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:34,251 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:36,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:36,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:38,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:38,314 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:40,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:40,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:42,234 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:42,236 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:42,237 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:42,251 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:44,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:44,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:46,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:46,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:48,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:48,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:50,234 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:50,236 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:50,236 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:50,250 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:52,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:52,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:54,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:54,248 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:56,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:56,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:24:58,234 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:24:58,236 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:24:58,237 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:24:58,251 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:00,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:00,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:00,389 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:25:00,391 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1689484646, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'fmessage'}, 'msg_type': 51, 'content': {'str': '\n\nfmessage\nlastMessage\n{"messageSvrId":"0","MsgCreateTime":"0"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221100, 'msg_source': '\n\tv1_h9B7QerR\n\t\n\t\t\n\t\n\n', 'new_msg_id': 1087437418611068458}, 'type': 'message'} +2026-03-11 17:25:00,398 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:25:02,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:02,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:03,940 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:25:03,941 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 632355078, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': "\n\nMomentsTimelineStatus\n14874837869221581387,1773218854\n\n"}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221103, 'msg_source': '\n\tv1_tGiMAAxd\n\t\n\t\t\n\t\n\n', 'new_msg_id': 6890366837099701003}, 'type': 'message'} +2026-03-11 17:25:03,948 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:25:04,129 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:25:04,131 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 622101795, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 51, 'content': {'str': "\n\nMomentsTimelineStatus\n14874837869221581387,1773218854\n\n"}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773221103, 'msg_source': '\n\tv1_tGiMAAxd\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8372414347036712380}, 'type': 'message'} +2026-03-11 17:25:04,138 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:25:04,235 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:04,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:06,231 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:06,232 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:06,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:06,243 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:08,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:08,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:10,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:10,253 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:12,233 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:12,247 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:14,232 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:14,233 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:14,234 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:14,249 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:23,740 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:23,741 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:26,532 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:25:26,547 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:25:27,086 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:25:27,094 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:25:27,113 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:25:27,117 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:25:27,118 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:25:27,123 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:25:27,126 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:25:27,127 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:25:27,136 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:25:27,141 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:25:27,142 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:25:27,145 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:25:27,150 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:25:27,153 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:25:27,157 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:25:27,158 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:25:28,790 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:25:29,326 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:25:29,327 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:25:35,063 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:35,064 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:35,446 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:25:38,363 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:25:38,413 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:25:38,418 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:25:38,419 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:25:43,059 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:43,060 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:51,957 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:51,958 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:25:59,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:25:59,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:07,670 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:07,671 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:15,458 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:15,459 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:23,095 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:23,097 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:24,699 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 17:26:24,702 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 17:26:28,142 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 17:26:28,692 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:26:28,695 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:26:31,058 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:31,059 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:34,081 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:26:37,047 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:26:37,090 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:26:37,094 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:26:37,094 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 17:26:39,054 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:39,055 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:40,170 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 17:26:40,172 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 17:26:47,053 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:47,053 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:51,987 [INFO] wechat-backend - HTTP GET /api/callback-status from 127.0.0.1 +2026-03-11 17:26:52,090 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 17:26:52,094 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 17:26:52,121 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 17:26:52,122 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 17:26:52,410 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:26:52,411 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:26:52,415 [INFO] wechat-backend - HTTP GET /api/callback-status -> 200 +2026-03-11 17:26:55,051 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:26:55,052 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:26:56,614 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 17:26:56,618 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 17:27:01,004 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 17:27:01,008 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 17:27:03,052 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:03,053 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:27:11,057 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:11,058 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:27:19,057 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:19,058 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:27:27,460 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:27,461 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:27:42,467 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:42,468 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:27:53,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:27:53,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:28:15,219 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:28:15,221 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:28:15,224 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:28:26,181 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:28:26,184 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:28:28,404 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:28:28,862 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:28:28,865 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:28:35,156 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:28:36,797 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:28:36,798 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:28:38,057 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:28:38,101 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:28:38,110 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:28:38,111 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:28:39,055 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:28:39,056 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:28:48,697 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:28:48,698 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:28:55,774 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:28:55,775 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:12,577 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:12,578 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:19,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:19,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:27,464 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:27,465 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:37,575 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:37,576 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:42,597 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 17:29:42,600 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 17:29:42,601 [INFO] wechat-backend - HTTP GET /api/callback-status from 127.0.0.1 +2026-03-11 17:29:42,631 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 17:29:42,634 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 17:29:42,734 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:29:42,735 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:29:42,739 [INFO] wechat-backend - HTTP GET /api/callback-status -> 200 +2026-03-11 17:29:43,055 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:43,056 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:47,324 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 17:29:47,326 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 17:29:51,058 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:51,059 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:29:54,779 [INFO] wechat-backend - HTTP GET /api/ai-reply-config from 127.0.0.1 +2026-03-11 17:29:54,783 [INFO] wechat-backend - HTTP GET /api/ai-reply-config -> 200 +2026-03-11 17:29:54,784 [INFO] wechat-backend - HTTP GET /api/ai-reply-status from 127.0.0.1 +2026-03-11 17:29:54,788 [INFO] wechat-backend - HTTP GET /api/callback-status from 127.0.0.1 +2026-03-11 17:29:54,812 [INFO] wechat-backend - HTTP GET /api/ai-reply-status -> 200 +2026-03-11 17:29:54,936 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:29:54,937 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:29:54,940 [INFO] wechat-backend - HTTP GET /api/callback-status -> 200 +2026-03-11 17:29:59,638 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:29:59,640 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:15,674 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:15,675 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:21,076 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:30:21,154 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1350945161, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 3, 'content': {'str': '\n\n\t\n\t\teyJwaGFzaCI6IjUwMDA1MDAwMDAwMDAwMDAiLCJwZHFoYXNoIjoiNjliM +2026-03-11 17:30:21,172 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:30:23,463 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:23,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:31,464 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:31,464 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:39,465 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:39,466 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:47,466 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:47,467 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:30:57,576 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:30:57,577 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:31:42,468 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:31:42,469 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:32:46,169 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:32:46,170 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:32:46,331 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:32:46,333 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:32:46,334 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 7612444, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n\n\t\n\t\t图片下载例子.xml\n\t\t6\n\t\t\n\t\t\t1622\n\t\t\txml\n\t\t\t@cdn_3057020100044b30490201000204699b620702032e6bfd02042f49aa3d020469b136bc042437333066393562622d643339362d343734362d613162652d3638643431616264393931380204051400050201000405004c4dfd00_b42af4e612bb47f60da06fe8d2ac3631_1\n\t\t\t3057020100044b30490201000204699b620702032e6bfd02042f49aa3d020469b136bc042437333066393562622d643339362d343734362d613162652d3638643431616264393931380204051400050201000405004c4dfd00\n\t\t\t\n\t\t\tb42af4e612bb47f60da06fe8d2ac3631\n\t\t\t0\n\t\t\twxid_f2q8xscgg31322_312_177322156 +2026-03-11 17:32:46,340 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 823871375, 'from_user_name': {'str': 'zhang499142409'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n\n\t\n\t\t<![CDATA[图片下载例子.xml]]>\n\t\t74\n\t\t0\n\t\t\n\t\t\t1622\n\t\t\t\n\t\t\tv1_FK+bt71TFHymaG2fePRNOW85tMhFSpMawGDR1nCfjiJCjf3Ejj0hyOhpwvx60zrPWPt3zM0c0filaLn52K7K79VsKXRBfwv+qBmlk+MlXbZT1P6G3j9YBG7jaFvKP4g1HMR6N+phvilHjbobpKsKCEnaG1m3KBeJnFuY0mFRNTdpi4yKB1AUNPK9IEixoXP+037pGnIYPgR8AbAdADaqNo3zaf27\n\t\t\t0\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t0\n\t\t\t0\n\t\t\t0\n\t\t< +2026-03-11 17:32:46,344 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:32:46,346 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:33:42,473 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:33:42,475 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:34:42,475 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:34:42,476 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:35:07,821 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:35:07,831 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:35:07,837 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:35:46,928 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:35:46,931 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:35:53,700 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:35:53,702 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:35:56,949 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:35:56,968 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:35:56,968 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:35:56,971 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:35:56,976 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:35:56,977 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:35:56,982 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:35:56,984 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:35:57,001 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:35:57,005 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:35:57,005 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:35:57,010 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:35:57,016 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:35:57,019 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:35:57,020 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:35:57,023 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:35:58,970 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:35:59,002 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:36:00,956 [INFO] wechat-backend - HTTP GET /api/messages from 127.0.0.1 +2026-03-11 17:36:00,972 [INFO] wechat-backend - HTTP GET /api/messages -> 200 +2026-03-11 17:36:02,535 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:36:02,557 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:36:02,557 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:36:02,560 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:36:02,564 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:36:02,565 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:36:02,569 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:36:02,570 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:36:02,583 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:36:02,585 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:36:02,588 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:36:02,588 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:36:02,592 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:36:02,596 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:36:02,598 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:36:02,599 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:36:04,637 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:36:05,092 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:36:05,094 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:36:11,349 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:36:11,446 [INFO] wechat-backend - GetContactDetailsList structure: top_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['baseResponse', 'contactCount', 'contactList', 'ret', 'verifyUserValidTicketList'], batch_size=50 +2026-03-11 17:36:14,410 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:36:14,459 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:36:14,465 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:36:14,466 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:36:14,470 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:14,471 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:36:29,448 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:29,449 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:36:35,474 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:35,476 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:36:43,474 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:43,475 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:36:51,474 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:51,475 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:36:59,621 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:36:59,622 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:37:17,474 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:37:17,475 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:37:27,584 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:37:27,585 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:37:47,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:37:47,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:38:42,475 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:38:42,475 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:13,564 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:13,565 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:14,525 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:14,525 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:23,475 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:23,476 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:31,653 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:31,654 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:39,475 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:39,476 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:47,477 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:47,478 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:39:55,492 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:39:55,493 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:40:03,482 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:40:03,489 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:40:11,478 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:40:11,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:40:19,479 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:40:19,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:40:27,478 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:40:27,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:40:42,477 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:40:42,479 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:41:42,477 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:41:42,478 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:42:42,479 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:42:42,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:43:47,030 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:43:47,032 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:44:20,559 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:44:20,562 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:44:20,566 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:44:42,545 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:44:42,550 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:44:50,532 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:44:50,533 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:44:51,612 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:44:51,631 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:44:51,632 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:44:51,635 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:44:51,639 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:44:51,639 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:44:51,643 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:44:51,644 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:44:51,657 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:44:51,659 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:44:51,660 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:44:51,663 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:44:51,671 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:44:51,675 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:44:51,675 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:44:51,677 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:44:52,880 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:44:53,497 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:44:53,499 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:44:59,107 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:44:59,212 [INFO] wechat-backend - GetContactDetailsList structure: top_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['baseResponse', 'contactCount', 'contactList', 'ret', 'verifyUserValidTicketList'], batch_size=50 +2026-03-11 17:44:59,604 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:44:59,606 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:01,974 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:45:02,027 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:45:02,033 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:45:02,034 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:45:08,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:08,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:16,482 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:16,485 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:25,364 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:25,366 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:32,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:32,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:40,479 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:40,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:48,478 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:48,479 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:45:56,479 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:45:56,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:04,478 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:04,479 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:15,533 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:15,533 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:20,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:20,482 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:28,542 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:28,543 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:36,484 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:36,485 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:44,479 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:44,480 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:46:52,480 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:46:52,481 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:47:00,483 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:47:00,484 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:47:08,484 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:47:08,485 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:47:16,484 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:47:16,485 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:47:24,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:47:24,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:47:42,543 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:47:42,546 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:04,164 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:48:04,166 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:48:04,169 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:48:10,118 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:10,121 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:10,833 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:48:10,854 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:48:10,855 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:48:10,858 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:48:10,862 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:48:10,862 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:48:10,865 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:48:10,866 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:48:10,883 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:48:10,888 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:48:10,890 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:48:10,891 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:48:10,897 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:48:10,899 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:48:10,900 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:48:10,903 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:48:12,291 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:48:12,792 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:48:12,794 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:48:18,814 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:18,816 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:19,047 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:48:19,185 [INFO] wechat-backend - GetContactDetailsList structure: top_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['baseResponse', 'contactCount', 'contactList', 'ret', 'verifyUserValidTicketList'], batch_size=50 +2026-03-11 17:48:19,186 [INFO] wechat-backend - GetContactDetailsList first item keys=['userName', 'nickName', 'pyinitial', 'quanPin', 'sex', 'imgBuf', 'bitMask', 'bitVal', 'imgFlag', 'remark', 'remarkPyinitial', 'remarkQuanPin', 'contactType', 'roomInfoCount', 'domainList', 'chatRoomNotify', 'addContactScene', 'personalCard', 'hasWeiXinHdHeadImg', 'verifyFlag', 'level', 'source', 'weiboFlag', 'albumStyle', 'albumFlag', 'snsUserInfo', 'bigHeadImgUrl', 'smallHeadImgUrl', 'myBrandList', 'customizedInfo', 'encryptUserName', 'additionalContactList', 'chatroomVersion', 'chatroomMaxCount', 'chatroomAccessType', 'newChatroomData', 'deleteFlag', 'phoneNumListInfo', 'chatroomInfoVersion', 'deleteContactScene', 'chatroomStatus', 'extFlag'], sample={'userName': {'str': 'medianote'}, 'nickName': {'str': '语音记事本'}, 'pyinitial': {'str': 'YYJSB'}, 'quanPin': {'str': 'yuyinjishiben'}, 'sex': 0, 'imgBuf': {'len': 0}, 'bitMask': 4294967295, 'bitVal': 1, +2026-03-11 17:48:21,944 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:48:22,018 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=0 +2026-03-11 17:48:22,026 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 0 contacts +2026-03-11 17:48:22,026 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:48:27,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:27,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:35,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:35,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:43,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:43,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:51,482 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:51,483 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:48:59,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:48:59,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:49:07,483 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:49:07,484 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:49:15,485 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:49:15,486 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:49:23,487 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:49:23,488 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:49:42,486 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:49:42,487 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:50:42,492 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:50:42,493 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:51:42,491 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:51:42,492 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:52:42,493 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:52:42,494 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:53:42,494 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:53:42,495 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:54:42,497 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:54:42,498 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:55:10,564 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:10,616 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:10,617 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1528180453, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222910, 'msg_source': '\n\tv1_lWWcRVyt\n\t\n\t\t\n\t\n\n', 'new_msg_id': 6817548239223068494}, 'type': 'message'} +2026-03-11 17:55:10,651 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:10,651 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:10,652 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 896035764, 'from_user_name': {'str': 'gh_5734260395ca'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 49, 'content': {'str': '\n \n <![CDATA[全国政协十四届四次会议闭幕 习近平等出席]]>\n \n \n 5\n 1\n \n 0\n \n \n \n 0\n \n \n \n \n \n \n +2026-03-11 17:55:10,656 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:10,657 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1773221460, 'from_user_name': {'str': 'newsapp'}, 'to_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'msg_type': 10002, 'content': {'str': '\n\n\t\n\t\t/cgi-bin/micromsg-bin/addtxnewsmsg\n\t\t825\n\t\t50001\n\t\t2026031108\n\t\t0\n\t\t1773221409\n\t\t150\n\t\t63162\n\t\t0\n\t\t1\n\t\t2\n\t\tCAAQ\nAzii7MTNBkCh7MTNBkjU7MTNBlABwAEE\n\t\t3\n\t\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222906, 'new_msg_id': 1773221460}, 'type': 'message'} +2026-03-11 17:55:10,663 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:11,632 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:11,634 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:11,636 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1012398511, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222911, 'msg_source': '\n\tv1_CJqK8Fku\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5818946135768866147}, 'type': 'message'} +2026-03-11 17:55:11,647 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1456695486, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222911, 'msg_source': '\n\tv1_YTGhUHa6\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8386061060762540801}, 'type': 'message'} +2026-03-11 17:55:11,654 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:11,655 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:11,753 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:11,754 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 93425728, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222911, 'msg_source': '\n\tv1_CJqK8Fku\n\t\n\t\t\n\t\n\n', 'new_msg_id': 3154195386198969137}, 'type': 'message'} +2026-03-11 17:55:11,757 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:11,998 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:12,005 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1293028201, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222911, 'msg_source': '\n\tv1_YTGhUHa6\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5417931858397770608}, 'type': 'message'} +2026-03-11 17:55:12,011 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:14,620 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:14,621 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 128864855, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222914, 'msg_source': '\n\tv1_Apq4vseT\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5248715267219636815}, 'type': 'message'} +2026-03-11 17:55:14,627 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:14,844 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 17:55:14,845 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1578614719, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'zhang499142409'}, 'msg_type': 51, 'content': {'str': '\n\nzhang499142409\nlastMessage\n{"messageSvrId":"6436138070071778142","MsgCreateTime":"1773221564"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773222914, 'msg_source': '\n\tv1_bBGwUFax\n\t\n\t\t\n\t\n\n', 'new_msg_id': 4687350633218894533}, 'type': 'message'} +2026-03-11 17:55:14,850 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 17:55:42,497 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:55:42,498 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:56:42,496 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:56:42,497 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:57:42,494 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:57:42,495 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:58:03,642 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:58:03,649 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 17:58:03,652 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 17:58:42,554 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:58:42,557 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:07,550 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:07,552 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:08,781 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 17:59:08,787 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 17:59:08,805 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 17:59:08,810 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:59:08,811 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 17:59:08,816 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:59:08,822 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:59:08,825 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:59:08,836 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:59:08,839 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:59:08,840 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:59:08,842 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:59:08,847 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 17:59:08,850 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 17:59:08,850 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 17:59:08,852 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 17:59:10,250 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 17:59:10,767 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:59:10,769 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 17:59:16,768 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:16,772 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:17,229 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:59:17,359 [INFO] wechat-backend - GetContactDetailsList structure: top_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['baseResponse', 'contactCount', 'contactList', 'ret', 'verifyUserValidTicketList'], batch_size=50 +2026-03-11 17:59:17,359 [INFO] wechat-backend - GetContactDetailsList first item keys=['userName', 'nickName', 'pyinitial', 'quanPin', 'sex', 'imgBuf', 'bitMask', 'bitVal', 'imgFlag', 'remark', 'remarkPyinitial', 'remarkQuanPin', 'contactType', 'roomInfoCount', 'domainList', 'chatRoomNotify', 'addContactScene', 'personalCard', 'hasWeiXinHdHeadImg', 'verifyFlag', 'level', 'source', 'weiboFlag', 'albumStyle', 'albumFlag', 'snsUserInfo', 'bigHeadImgUrl', 'smallHeadImgUrl', 'myBrandList', 'customizedInfo', 'encryptUserName', 'additionalContactList', 'chatroomVersion', 'chatroomMaxCount', 'chatroomAccessType', 'newChatroomData', 'deleteFlag', 'phoneNumListInfo', 'chatroomInfoVersion', 'deleteContactScene', 'chatroomStatus', 'extFlag'], sample={'userName': {'str': 'medianote'}, 'nickName': {'str': '语音记事本'}, 'pyinitial': {'str': 'YYJSB'}, 'quanPin': {'str': 'yuyinjishiben'}, 'sex': 0, 'imgBuf': {'len': 0}, 'bitMask': 4294967295, 'bitVal': 1, +2026-03-11 17:59:20,237 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 17:59:20,295 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=64 +2026-03-11 17:59:20,301 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 27 contacts +2026-03-11 17:59:20,302 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 17:59:24,766 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:24,767 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:32,767 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:32,769 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:40,766 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:40,767 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:48,768 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:48,769 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 17:59:56,769 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 17:59:56,770 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:05,493 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:05,494 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:21,499 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:21,500 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:22,691 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 18:00:22,696 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 253256081, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'fmessage'}, 'msg_type': 51, 'content': {'str': '\n\nfmessage\nlastMessage\n{"messageSvrId":"0","MsgCreateTime":"0"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773223221, 'msg_source': '\n\tv1_9h81wkEN\n\t\n\t\t\n\t\n\n', 'new_msg_id': 5996918998836350126}, 'type': 'message'} +2026-03-11 18:00:22,701 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 18:00:23,583 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message from 113.44.162.180 +2026-03-11 18:00:23,584 [INFO] wechat-backend - callback/wechat-message raw body: {'key': 'HBpEnbtj9BJZ', 'message': {'msg_id': 1988395014, 'from_user_name': {'str': 'wxid_f2q8xscgg31322'}, 'to_user_name': {'str': 'fmessage'}, 'msg_type': 51, 'content': {'str': '\n\nfmessage\nlastMessage\n{"messageSvrId":"0","MsgCreateTime":"0"}\n\n'}, 'status': 3, 'img_status': 1, 'img_buf': {'len': 0}, 'create_time': 1773223223, 'msg_source': '\n\tv1_Ncq8uyhh\n\t\n\t\t\n\t\n\n', 'new_msg_id': 8797274917649810363}, 'type': 'message'} +2026-03-11 18:00:23,589 [INFO] wechat-backend - HTTP POST /api/callback/wechat-message -> 200 +2026-03-11 18:00:29,497 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:29,498 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:37,498 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:37,498 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:45,496 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:45,497 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:00:53,498 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:00:53,499 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:01:01,500 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:01:01,501 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:01:42,500 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:01:42,501 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:02:42,519 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:02:42,524 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:03:42,501 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:03:42,501 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:04:42,500 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:04:42,501 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:05:42,504 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:05:42,506 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:06:42,503 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:06:42,505 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:07:42,506 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:07:42,507 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:20,633 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SetCallback?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 18:08:20,638 [INFO] wechat-backend - SetCallback registered for key=***9BJZ, CallbackURL=https://dissonant-destinee-nonsensibly.ngrok-free.dev/api/callback/wechat-message +2026-03-11 18:08:20,641 [INFO] wechat-backend - 消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg +2026-03-11 18:08:21,086 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:08:21,089 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:21,820 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 18:08:21,842 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 18:08:21,843 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 18:08:21,846 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 18:08:21,850 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 18:08:21,851 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 18:08:21,854 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 18:08:21,856 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 18:08:21,869 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 18:08:21,872 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 18:08:21,872 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 18:08:21,875 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 18:08:21,884 [INFO] wechat-backend - HTTP GET /api/product-tags from 127.0.0.1 +2026-03-11 18:08:21,887 [INFO] wechat-backend - HTTP GET /api/push-groups from 127.0.0.1 +2026-03-11 18:08:21,888 [INFO] wechat-backend - HTTP GET /api/product-tags -> 200 +2026-03-11 18:08:21,890 [INFO] wechat-backend - HTTP GET /api/push-groups -> 200 +2026-03-11 18:08:23,602 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 18:08:24,046 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 18:08:24,048 [INFO] wechat-backend - GetContactList usernames total=58 +2026-03-11 18:08:29,807 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:08:29,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:30,323 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 18:08:30,440 [INFO] wechat-backend - GetContactDetailsList structure: top_keys=['Code', 'Data', 'Text', 'Success', 'Data62', 'Ticket'], Data_keys=['baseResponse', 'contactCount', 'contactList', 'ret', 'verifyUserValidTicketList'], batch_size=50 +2026-03-11 18:08:30,440 [INFO] wechat-backend - GetContactDetailsList first item keys=['userName', 'nickName', 'pyinitial', 'quanPin', 'sex', 'imgBuf', 'bitMask', 'bitVal', 'imgFlag', 'remark', 'remarkPyinitial', 'remarkQuanPin', 'contactType', 'roomInfoCount', 'domainList', 'chatRoomNotify', 'addContactScene', 'personalCard', 'hasWeiXinHdHeadImg', 'verifyFlag', 'level', 'source', 'weiboFlag', 'albumStyle', 'albumFlag', 'snsUserInfo', 'bigHeadImgUrl', 'smallHeadImgUrl', 'myBrandList', 'customizedInfo', 'encryptUserName', 'additionalContactList', 'chatroomVersion', 'chatroomMaxCount', 'chatroomAccessType', 'newChatroomData', 'deleteFlag', 'phoneNumListInfo', 'chatroomInfoVersion', 'deleteContactScene', 'chatroomStatus', 'extFlag'], sample={'userName': {'str': 'medianote'}, 'nickName': {'str': '语音记事本'}, 'pyinitial': {'str': 'YYJSB'}, 'quanPin': {'str': 'yuyinjishiben'}, 'sex': 0, 'imgBuf': {'len': 0}, 'bitMask': 4294967295, 'bitVal': 1, +2026-03-11 18:08:31,286 [INFO] wechat-backend - HTTP DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 from 127.0.0.1 +2026-03-11 18:08:31,297 [INFO] wechat-backend - HTTP DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 -> 200 +2026-03-11 18:08:31,303 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 18:08:31,307 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 18:08:33,478 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/friend/GetContactDetailsList?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 18:08:33,525 [INFO] wechat-backend - Contact index built for key=***9BJZ, size=35 +2026-03-11 18:08:33,529 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 14 contacts +2026-03-11 18:08:33,530 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 18:08:37,807 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:08:37,809 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:42,103 [INFO] wechat-backend - HTTP GET /api/contact-list from 127.0.0.1 +2026-03-11 18:08:42,104 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 14 contacts +2026-03-11 18:08:42,105 [INFO] wechat-backend - HTTP GET /api/contact-list -> 200 +2026-03-11 18:08:45,806 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:08:45,808 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:53,808 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:08:53,810 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:08:59,641 [INFO] wechat-backend - HTTP POST /api/customers from 127.0.0.1 +2026-03-11 18:08:59,649 [INFO] wechat-backend - HTTP POST /api/customers -> 200 +2026-03-11 18:08:59,716 [INFO] wechat-backend - HTTP GET /api/customers from 127.0.0.1 +2026-03-11 18:08:59,721 [INFO] wechat-backend - HTTP GET /api/customers -> 200 +2026-03-11 18:09:01,806 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:01,807 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:03,080 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:09:03,083 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:09:09,807 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:09,807 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:17,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:17,814 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:25,837 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:25,837 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:32,333 [INFO] wechat-backend - HTTP POST /api/greeting-tasks from 127.0.0.1 +2026-03-11 18:09:32,342 [INFO] wechat-backend - HTTP POST /api/greeting-tasks -> 200 +2026-03-11 18:09:32,347 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 18:09:32,349 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 18:09:33,807 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:33,808 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:41,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:41,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:49,695 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 18:09:49,696 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 14 contacts +2026-03-11 18:09:49,696 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 18:09:49,808 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:49,810 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:09:57,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:09:57,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:00,612 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:10:00,616 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:10:05,809 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:05,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:13,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:13,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:21,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:21,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:29,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:29,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:37,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:37,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:38,508 [INFO] httpx - HTTP Request: POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions "HTTP/1.1 200 OK" +2026-03-11 18:10:39,121 [INFO] httpx - HTTP Request: POST http://113.44.162.180:7006/message/SendTextMessage?key=HBpEnbtj9BJZ "HTTP/1.1 200 OK" +2026-03-11 18:10:39,137 [INFO] wechat-backend - Greeting task 29d325c7-699f-460d-9c8f-6ed2424a9379 sent to wxid_thwiu9za904u12 +2026-03-11 18:10:45,809 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:45,810 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:10:53,809 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:10:53,809 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:01,808 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:01,809 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:09,806 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:09,806 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:17,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:17,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:25,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:25,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:34,505 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:34,506 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:42,509 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:42,511 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:54,511 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:54,512 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:11:58,506 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:11:58,507 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:05,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:05,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:13,809 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:13,810 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:22,511 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:22,511 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:30,508 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:30,509 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:38,553 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:38,553 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:45,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:45,812 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:12:53,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:12:53,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:01,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:01,812 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:09,808 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:09,809 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:17,812 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:17,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:19,962 [INFO] wechat-backend - HTTP GET /api/friends from 127.0.0.1 +2026-03-11 18:13:19,964 [INFO] wechat-backend - api_contact_list key=***9BJZ -> 14 contacts +2026-03-11 18:13:19,965 [INFO] wechat-backend - HTTP GET /api/friends -> 200 +2026-03-11 18:13:25,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:25,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:35,468 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:35,469 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:41,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:41,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:44,948 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:13:44,951 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:13:49,809 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:49,810 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:13:57,595 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:13:57,599 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:13:57,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:13:57,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:05,812 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:05,814 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:12,183 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:14:12,187 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:14:13,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:13,812 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:17,897 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:14:17,901 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:14:21,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:21,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:29,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:29,812 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:36,710 [INFO] wechat-backend - HTTP GET /api/customer-tags from 127.0.0.1 +2026-03-11 18:14:36,713 [INFO] wechat-backend - HTTP GET /api/customer-tags -> 200 +2026-03-11 18:14:37,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:37,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:45,810 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:45,811 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:53,811 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:14:53,812 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:14:59,777 [INFO] wechat-backend - HTTP POST /api/greeting-tasks from 127.0.0.1 +2026-03-11 18:14:59,784 [INFO] wechat-backend - HTTP POST /api/greeting-tasks -> 200 +2026-03-11 18:14:59,789 [INFO] wechat-backend - HTTP GET /api/greeting-tasks from 127.0.0.1 +2026-03-11 18:14:59,793 [INFO] wechat-backend - HTTP GET /api/greeting-tasks -> 200 +2026-03-11 18:15:01,812 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:01,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:09,814 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:09,815 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:17,832 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:17,833 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:25,812 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:25,813 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:33,815 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:33,816 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:45,446 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:45,448 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:54,153 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:54,155 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:15:58,512 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:15:58,513 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:06,511 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:06,512 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:14,514 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:14,515 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:28,516 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:28,517 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:30,512 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:30,513 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:38,512 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:38,515 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:46,513 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:46,514 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:16:54,515 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:16:54,516 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:02,514 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:02,514 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:10,513 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:10,515 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:18,517 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:18,518 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:26,516 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:26,518 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:34,515 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:34,515 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:17:42,520 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:17:42,520 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 +2026-03-11 18:18:42,703 [INFO] wechat-backend - HTTP GET /api/ws-status from 127.0.0.1 +2026-03-11 18:18:42,704 [INFO] wechat-backend - HTTP GET /api/ws-status -> 200 diff --git a/backend/data/logs/node-access.log b/backend/data/logs/node-access.log index 71be36f..78ca322 100644 --- a/backend/data/logs/node-access.log +++ b/backend/data/logs/node-access.log @@ -536,3 +536,1612 @@ ::1 - - [11/Mar/2026:05:56:44 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" ::1 - - [11/Mar/2026:05:56:48 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" ::1 - - [11/Mar/2026:05:56:52 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T06:05:30.670Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:06:05:34 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:34 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:34 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:43 +0000] "POST /auth/qrcode HTTP/1.1" 200 880 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:48 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:54 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:55 +0000] "GET /auth/slider-assets/N_jYM_2V.js HTTP/1.1" 200 64695 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:05:58 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:04 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:09 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:15 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:19 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:24 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:29 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:34 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:39 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:50 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:55 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:06:59 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:05 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:09 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 570 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:14 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:19 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:24 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:29 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:34 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:39 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:44 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:49 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:54 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:07:59 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:08:04 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:08:51 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:09:51 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1316 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:10:51 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1316 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T06:11:05.344Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:06:11:13 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 963 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:14 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:14 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:14 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:14 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:15 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:25 +0000] "POST /auth/qrcode HTTP/1.1" 200 880 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:27 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:30 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:35 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:35 +0000] "GET /auth/slider-assets/N_jYM_2V.js HTTP/1.1" 200 64695 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:40 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:50 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:11:55 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:00 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:05 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:10 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:15 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:20 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:25 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:30 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:40 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:50 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:12:55 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:05 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:13 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:15 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:20 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:25 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:30 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:35 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:40 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:50 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:13:56 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1262 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T06:41:05.588Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:06:41:09 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 544 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:12 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:16 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:22 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:25 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:31 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:31 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" - - "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:31 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:37 +0000] "POST /auth/qrcode HTTP/1.1" 200 880 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:39 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:42 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:47 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:47 +0000] "GET /auth/slider-assets/N_jYM_2V.js HTTP/1.1" 200 64695 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:52 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:41:57 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:02 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:07 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:13 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:17 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:22 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:28 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:32 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:37 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:45 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:47 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:42:52 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:43:04 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:43:07 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:20 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 500 21 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:20 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 502 59 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:25 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 502 59 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:30 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 502 59 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:35 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 502 59 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:06:44:54 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 502 59 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:13 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 544 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:15 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:15 +0000] "GET /health HTTP/1.1" 200 38 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:26 +0000] "POST /auth/qrcode HTTP/1.1" 200 880 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:28 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:31 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:36 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 274 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:41 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 516 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:47 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:47 +0000] "GET /auth/slider-assets/N_jYM_2V.js HTTP/1.1" 200 64695 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:52 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:08:56 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:01 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:07 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:12 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:17 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:22 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:27 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:32 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:37 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1317 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:42 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 1263 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /auth/scan-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 679 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /manage.html?key=HBpEnbtj9BJZ HTTP/1.1" 200 39433 "http://localhost:3000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 202 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 517 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 200 97 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:47 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:09:56 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:11 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:20 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:27 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:28 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:33 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 200 22 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:35 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:38 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:41 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 200 103 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:43 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:47 +0000] "GET /chat.html HTTP/1.1" 200 12988 "http://localhost:3000/manage.html?key=HBpEnbtj9BJZ" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 238750 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:56 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:59 +0000] "GET /models.html HTTP/1.1" 200 9725 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:10:59 +0000] "GET /api/models HTTP/1.1" 200 218 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:02 +0000] "GET /swagger.html HTTP/1.1" 200 8513 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:03 +0000] "GET /openapi.json HTTP/1.1" 200 30131 "http://localhost:3000/swagger.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:16 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:24 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:32 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /manage.html HTTP/1.1" 200 39433 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:11:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:02 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:17 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:27 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:27 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:28 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:29 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:12:53 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:00 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:16 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:24 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:32 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:13:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:10 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:11 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:20 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:28 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:44 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:14:54 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:00 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:16 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:24 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:31 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:31 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:36 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:37 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:39 +0000] "PATCH /api/ai-reply-config HTTP/1.1" 200 103 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:41 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:43 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:43 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:44 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:52 +0000] "POST /api/send-message HTTP/1.1" 200 401 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:52 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 223269 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:15:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:07 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:15 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:21 +0000] "GET /models.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:21 +0000] "GET /api/models HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:23 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:23 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:48 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:16:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:12 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:20 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:28 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:44 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:17:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:00 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:12 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:27 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:34 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:43 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:18:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:07 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:15 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:30 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:30 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:19:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:20:15.655Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:20:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:27 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:35 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:37 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:41 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:43 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:20:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:28 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:35 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:21:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:01 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:04 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:12 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:20 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:29 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:32 +0000] "GET /models.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:32 +0000] "GET /api/models HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:35 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:22:53 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:00 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /manage.html HTTP/1.1" 200 39479 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:30 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:33 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:35 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:38 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:23:54 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:29 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:35 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:43 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:50 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:24:58 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:15 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:31 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:39 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:49 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:25:55 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:26:07.113Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:26:11 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /manage.html HTTP/1.1" 200 40769 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:30 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:34 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:36 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:36 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:37 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:26:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:03 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:27:58 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:22 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:30 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:38 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:28:54 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:03 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:50 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:29:58 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:30:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:30:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:31:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:25 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:29 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:37 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:43 +0000] "POST /api/push-groups HTTP/1.1" 200 114 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:43 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 200 126 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:43 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:43 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:45 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:53 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "DELETE /api/push-groups/6442ea05-f5ce-40ee-9c2b-f93594a25098 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:32:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:00 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:01 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:02 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:09 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:33:35.463Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:33:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:50 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:33:57 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:13 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:21 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:29 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:37 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:41 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:43 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:34:57 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:13 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:21 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:29 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:37 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:45 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:35:53 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:01 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:12 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:17 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:25 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:33 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:41 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:49 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:36:57 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:37:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:37:13 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:37:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:40 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:41 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:38:52.831Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:38:58 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:13 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:30 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:39 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:45 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:39:55 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:40:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:41:00.635Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:04 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 3593 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:41:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:21 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:30 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:38 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:42:56 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:00 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:02 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:06 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 3593 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:31 +0000] "POST /api/push-groups HTTP/1.1" 200 117 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:31 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:31 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 200 129 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:31 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:31 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:34 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:50 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:43:58 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:44:34.015Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:44:41 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:47 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:54 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /manage.html HTTP/1.1" 200 42019 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:55 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:44:57 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 3593 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 165 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 169 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 159 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 163 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 169 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 169 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 183 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 183 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 161 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 183 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 175 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 169 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 183 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 175 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 175 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 171 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 167 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 177 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 185 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "POST /api/customers HTTP/1.1" 200 171 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:03 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 10495 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:05 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:11 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:19 +0000] "DELETE /api/customers/ed07fbbc-e2de-4b3c-8377-823db42d0949 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:19 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 10333 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:19 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:21 +0000] "DELETE /api/customers/21bc810e-972d-425c-a159-5fa98b91ce6f HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:21 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 10165 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:24 +0000] "DELETE /api/customers/83884583-f0b4-4b7e-9d7b-abd36656b545 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:24 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9995 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:26 +0000] "DELETE /api/customers/e1775ac7-4a61-49ae-ba36-aac0e7100579 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:26 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9825 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:27 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:29 +0000] "DELETE /api/customers/c13a0cdc-9766-4714-9bb0-84253e4f0294 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:29 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9655 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:31 +0000] "DELETE /api/customers/5b1cf0d5-4bec-4268-a6ce-d09c2e193fa1 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:31 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9491 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:33 +0000] "DELETE /api/customers/fbb518f2-3a82-401b-9630-8f4d14a3ce00 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:33 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9313 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:36 +0000] "DELETE /api/customers/3d0d4056-0a1c-4b6d-88e2-e743ab50700b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:36 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 9135 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:38 +0000] "DELETE /api/customers/20f59c5a-6cd1-419c-9b39-bcbe1c444d32 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:38 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8957 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:41 +0000] "DELETE /api/customers/4625afa8-8584-4444-bb07-895c1efcfff8 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:41 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8779 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:43 +0000] "DELETE /api/customers/365b67fe-a8e2-465b-b9e1-b6be00d9d9f7 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:43 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8601 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:43 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:45 +0000] "DELETE /api/customers/d26ede53-f1aa-4471-8e9c-6f132985168c HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:45 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8423 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:47 +0000] "DELETE /api/customers/90ead1ef-7fe2-42ad-8a32-5f1cdb921ede HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:47 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8245 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:49 +0000] "DELETE /api/customers/0ae1dc56-57a9-4027-a0b3-bf66e701ff23 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:49 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 8069 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:52 +0000] "DELETE /api/customers/9b00dd2a-ac77-4733-83ad-c094ad931eed HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:52 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7897 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:54 +0000] "DELETE /api/customers/ce51e4a8-3cba-4696-b62c-bd63eca00c5b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:54 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7731 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:58 +0000] "DELETE /api/customers/d8411c3b-61db-4ccd-865d-ed269c1edbdd HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:58 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7555 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:58 +0000] "DELETE /api/customers/ce95c3a7-6e14-40be-b61b-0bba53481898 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:58 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7377 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7201 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "DELETE /api/customers/cb9216fe-a516-4fa2-8a2b-aea5ac60e58b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 7031 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "DELETE /api/customers/84cb38b4-ac5b-4e7e-8826-94c6b5de5c19 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:45:59 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 6845 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:00 +0000] "DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:00 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 6659 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:01 +0000] "DELETE /api/customers/adadcd8c-43ee-4512-a6c8-821598a7bc97 HTTP/1.1" 404 31 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "DELETE /api/customers/c86ee31e-81c2-4287-b885-eb4a81e4bc85 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 6473 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "DELETE /api/customers/f4d958a3-c775-42b0-b487-088b315088ee HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 6287 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "DELETE /api/customers/fe30ba44-ee95-4a46-a922-c7d67d9a5f0b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:02 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 6101 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:03 +0000] "DELETE /api/customers/05e285ad-9614-4488-bbf1-cdb9b0e823a2 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:03 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 5915 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:03 +0000] "DELETE /api/customers/88d9bdc9-cbd5-4ac8-91ea-b99b0a3039bc HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:03 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 5729 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "DELETE /api/customers/b4f65d5a-b592-40de-938e-981b22a7643d HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 5543 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "DELETE /api/customers/f24d48f4-3520-4c43-ab93-541f487dcd0f HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 5357 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "DELETE /api/customers/01f41bcf-b262-4003-986c-0fbca6184c09 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:04 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 5171 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "DELETE /api/customers/293145f9-bcfd-4d0a-9463-2ced3ddfa603 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4985 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "DELETE /api/customers/a3171ad4-debb-43cb-97df-e6f33d4cbeb9 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4799 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "DELETE /api/customers/1f9178b3-07fc-476b-b756-23a18cea59e7 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:05 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4613 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "DELETE /api/customers/d9962ad2-c00b-4354-a0b5-da5c540953e4 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4427 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "DELETE /api/customers/849edd20-b978-411d-bc30-956562ee2ea8 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4241 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "DELETE /api/customers/c29cc5d2-41bb-48c3-86a5-05bc97dc01eb HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:06 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 4055 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "DELETE /api/customers/924f12a7-acd8-4175-bdaa-25c46b8f9029 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 3869 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "DELETE /api/customers/c96780b0-4b6a-461d-aa0e-7c0e5d989340 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 3683 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "DELETE /api/customers/3cb8a91a-c94e-4b56-99aa-8ff5675032e7 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:07 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 3497 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "DELETE /api/customers/add7bf84-5b4e-4932-a39b-676cf7680c4c HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 3311 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "DELETE /api/customers/43067464-06dd-469b-a3e9-8c9cce4e4525 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 3125 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "DELETE /api/customers/ae017510-398e-4093-9862-d8659755f67b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:08 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2939 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:09 +0000] "DELETE /api/customers/7e9d38c4-236a-401a-9832-5dbd3ddc3880 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:09 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2753 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:09 +0000] "DELETE /api/customers/fad5edc2-89ca-4909-84f0-491cac12bb8e HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:09 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2569 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "DELETE /api/customers/3031271c-50f4-4b5e-9fa2-f43b6893fdd3 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2383 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "DELETE /api/customers/2c704c03-60be-4574-829f-ee793633374c HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2197 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "DELETE /api/customers/72b8c6cc-7015-48e5-8ef8-c9ec19264939 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:10 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 2011 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "DELETE /api/customers/6bbaccaf-29c2-4c78-9c90-fc46b117a394 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 1825 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "DELETE /api/customers/1ab067b1-3d80-4449-93d9-b9598863cc57 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 1641 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "DELETE /api/customers/c873c3b2-1145-4fc4-ba06-01aaada0ef88 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:11 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 1457 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "DELETE /api/customers/d25761e2-8ec6-444e-b139-ebd00ab1cc31 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 1271 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "DELETE /api/customers/d266ccdd-7bb3-4736-840a-c79a47e80eb9 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 1085 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "DELETE /api/customers/0e19d026-577a-4485-999a-b67600f7627b HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 901 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "DELETE /api/customers/ee765f64-5d8e-4811-a85d-4956c9796685 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 715 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "DELETE /api/customers/af788fde-d5d7-4893-8aa5-e135e870e635 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:12 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 529 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:13 +0000] "DELETE /api/customers/ffb7cf3b-5400-4309-8235-0090abe2e99f HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:13 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 343 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:18 +0000] "DELETE /api/customers/26333614-feff-4ad1-b1f7-f8c8ba89b2d6 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:18 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 183 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:20 +0000] "DELETE /api/customers/2b403a9f-34f7-4f35-b576-b32760d6b087 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:20 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 202 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:23 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:32 +0000] "DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:32 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:32 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 254 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:34 +0000] "DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:34 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 517 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:39 +0000] "DELETE /api/greeting-tasks/b95661cc-3f4a-4a0c-a924-dd2042996596 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:39 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 254 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:39 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:42 +0000] "DELETE /api/greeting-tasks/3aa6f313-9cf9-467e-8957-dd80cf814e64 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:42 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 517 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:47 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:46:55 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:20 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:28 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:43 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:47:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "DELETE /api/push-groups/da9d1379-223b-47aa-ae4e-14432ff33d45 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:01 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:10 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 180 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:10 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:15 +0000] "PATCH /api/ai-reply-config HTTP/1.1" 200 103 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:18 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:23 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:31 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:39 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:40 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:40 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:44 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:45 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:45 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:45 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:45 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:48 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:48:56 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:20 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:28 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:44 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:49:52 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:50:00 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:50:08 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:50:16 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:50:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:51:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:52:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:53:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:54:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:55:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:56:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:57:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T07:57:58.446Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:07:58:03 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:06 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:06 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:07 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:07 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:07 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:14 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:22 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:31 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:38 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:58:54 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:04 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:10 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:18 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:39 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:51 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:53 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:54 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:55 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:55 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:07:59:58 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:06 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:16 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:26 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:36 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:40 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:46 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:00:54 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:01:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:02:42 +0000] "GET /api/ws-status HTTP/1.1" 200 18 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:11:32.676Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +[2026-03-11T08:27:34.532Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /manage.html HTTP/1.1" 200 44572 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:49 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:51 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:51 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:27:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:08 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:28:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:29:04 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:29:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:30:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:31:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:32:19.654Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:32:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:36 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /manage.html HTTP/1.1" 200 46523 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:38 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:39 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:39 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 201 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:40 +0000] "GET /api/callback-status?key=HBpEnbtj9BJZ HTTP/1.1" 200 136 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:46 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:54 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:56 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:58 +0000] "PATCH /api/ai-reply-config HTTP/1.1" 200 103 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:32:59 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:00 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:00 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:02 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:03 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:03 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:08 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:33:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:44 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:49 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:49 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:49 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:34:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:35:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:36:49.774Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:36:50 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:36:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:36:53 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:36:53 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:37:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:38:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:39:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:40:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:41:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:42:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:43:06.089Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:43:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:44:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:45:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:45:45 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:45:45 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:45:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:02 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:46:58 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:47:06 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:47:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:47:22 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:47:30 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:47:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:48:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:49:01.340Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:49:06 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:06 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:06 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:22 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:26 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:27 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:27 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:27 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:29 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:31 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:31 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:50 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:49:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:50:04 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:50:12 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:50:22 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:50:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:50:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:51:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:52:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:52:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:53:09.868Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:53:11 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:11 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:14 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:14 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:31 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:34 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 214416 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:41 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:53:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 205460 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:50 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:54:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:55:06 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:55:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:55:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:55:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:56:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:57:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:58:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:58:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T08:59:02.161Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:08:59:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:11 +0000] "GET /chat.html HTTP/1.1" 200 13709 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:11 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 205313 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:15 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:17 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:19 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:21 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:23 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:25 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:27 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:29 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:31 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:33 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:37 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:44 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:08:59:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:00 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:02 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:03 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:06 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:08 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:10 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:12 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:14 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:16 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:18 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:30 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:00:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:01:14 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:01:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:01:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:02:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:03:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:04:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:05:31.997Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:05:32 +0000] "GET /chat.html HTTP/1.1" 200 14133 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:32 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:32 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:33 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:37 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:05:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:06:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:06:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:06:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:06:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:07:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:07:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:07:49 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:07:51 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:07:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:08:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:09:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:20 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:22 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:10:57 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:11:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:09 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:11 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:15 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:17 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:19 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:21 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 213708 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:23 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 213486 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:25 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 182755 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:27 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:29 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:31 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:33 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:38 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:53 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 173656 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:55 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:57 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:12:59 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:01 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:04 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:12 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:37 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 3593 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:44 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:13:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:00 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:08 +0000] "POST /api/customers HTTP/1.1" 200 184 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:08 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 387 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:17 +0000] "DELETE /api/customers/6fea0e90-f8db-4db6-a7e7-97d34093fb66 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:17 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 202 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:14:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:04 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:12 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:20 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:44 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:15:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:00 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:08 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:11 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:11 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 194140 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:15 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:17 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:19 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:38 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:16:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:17:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:17:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:17:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:17:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:07 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:09 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:11 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:13 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:15 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 199178 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:38 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:41 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:18:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:31 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:35 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:19:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:03 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:24 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:20:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:34 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:37 +0000] "GET /models.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:38 +0000] "GET /api/models HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:21:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:22:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:23:16.743Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:23:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:30 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:30 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/models.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:30 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 206240 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:32 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:34 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:38 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:38 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:40 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:42 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:44 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:46 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:50 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:52 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:54 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:56 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 196910 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:23:58 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:00 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 196466 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:02 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:02 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 196126 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:06 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:08 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:10 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:12 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:14 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:16 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:18 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:20 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:22 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:24 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:26 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:28 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 195762 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:30 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 195421 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:32 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:34 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:34 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:36 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:38 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:40 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:42 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:44 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:46 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:48 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:50 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:50 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:52 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:54 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:56 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:58 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:24:58 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:00 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:02 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 195032 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:04 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 194131 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:06 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:06 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:08 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:10 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:12 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:14 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:14 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:26 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:27 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:38 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:25:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:24 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:31 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:37 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:40 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:52 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:52 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:52 +0000] "GET /api/callback-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:26:56 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:01 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:03 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:27:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:28:15.484Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:28:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:28:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:28:38 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:28:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:28:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:28:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:12 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:42 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:42 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:42 +0000] "GET /api/callback-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:47 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:54 +0000] "GET /api/ai-reply-config?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:54 +0000] "GET /api/ai-reply-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:54 +0000] "GET /api/callback-status?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:29:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:31 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:30:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:31:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:32:46 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:33:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:34:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:35:08.064Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:35:46 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:56 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:56 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:56 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:56 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:56 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:57 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:57 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:57 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:57 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:58 +0000] "GET /chat.html HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:35:59 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 200 201089 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:00 +0000] "GET /api/messages?key=HBpEnbtj9BJZ&limit=80 HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:02 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:14 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:14 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:36:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:37:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:37:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:37:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:38:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:14 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:31 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:39 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:39:55 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:40:03 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:40:11 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:40:19 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:40:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:40:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:41:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:42:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:43:47 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:44:20.853Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:44:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:50 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:51 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:44:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:02 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:08 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:45:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:04 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:20 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:36 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:44 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:46:52 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:47:00 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:47:08 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:47:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:47:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:47:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:48:04.437Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:10 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:22 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 12 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:27 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:43 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:51 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:48:59 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:49:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:49:15 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:49:23 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:49:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:50:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:51:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:52:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:53:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:54:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:55:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:56:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:57:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T09:58:03.900Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:09:58:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:07 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /manage.html HTTP/1.1" 200 46608 "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:08 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:16 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:20 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 3470 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:24 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:32 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:40 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:48 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:09:59:56 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:00:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:01:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:01:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:02:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:03:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:04:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:05:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:06:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:07:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +[2026-03-11T10:08:20.899Z] Static frontend server listening on port 3000; access log: /Users/dannier/Desktop/living/AICLW/wechatAiclaw/backend/data/logs/node-access.log +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /manage.html HTTP/1.1" 304 - "http://localhost:3000/chat.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/product-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:21 +0000] "GET /api/push-groups?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:31 +0000] "DELETE /api/customers/50ddd99c-f369-4baf-b875-c3ce80d851d8 HTTP/1.1" 200 11 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:31 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:33 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 1851 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:42 +0000] "GET /api/contact-list?key=HBpEnbtj9BJZ HTTP/1.1" 200 1851 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:59 +0000] "POST /api/customers HTTP/1.1" 200 184 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:08:59 +0000] "GET /api/customers?key=HBpEnbtj9BJZ HTTP/1.1" 200 387 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:03 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:32 +0000] "POST /api/greeting-tasks HTTP/1.1" 200 211 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:32 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 729 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:49 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 1851 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:09:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:00 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:10:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:34 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:11:58 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:22 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:30 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:38 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:12:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:19 +0000] "GET /api/friends?key=HBpEnbtj9BJZ HTTP/1.1" 200 1851 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:35 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:41 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:44 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:49 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:57 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:13:57 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:05 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:12 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:13 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:17 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:21 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:29 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:36 +0000] "GET /api/customer-tags?key=HBpEnbtj9BJZ HTTP/1.1" 304 - "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:37 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:53 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:59 +0000] "POST /api/greeting-tasks HTTP/1.1" 200 211 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:14:59 +0000] "GET /api/greeting-tasks?key=HBpEnbtj9BJZ HTTP/1.1" 200 941 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:01 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:09 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:17 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:25 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:33 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:45 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:15:58 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:06 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:14 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:28 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:30 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:38 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:46 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:16:54 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:02 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:10 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:18 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:26 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:34 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:17:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" +::1 - - [11/Mar/2026:10:18:42 +0000] "GET /api/ws-status HTTP/1.1" 200 19 "http://localhost:3000/manage.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" diff --git a/backend/data/wechat.db b/backend/data/wechat.db index 25ba87f76fed7baeae260b183486a74b046aacad..362aa5ed53f24537d33c5d9eb0217d5d6a1de49f 100644 GIT binary patch literal 749568 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 delta 233 zcmZp8pxf|(e}WVn0}lfOgZ)GWJ0=F6jR{Nm*%kg(LxCdq z8Tdc&-`^}a;WGc^`}V4vSqfMbHgjzFA-`z@ivouL{|2DN4EB?GE+_zXwewHjd_S1w zEd&2sppM7WsyedCBp)sl~;K>8ZtzTtM}X+#4pde`p3;t;P*BRiOF6@Ad<~ g8Mhz!&E)cggNf@T18)%5NucyzuI(pZF`Kgj03lXT^Z)<= diff --git a/backend/main.py b/backend/main.py index 9f7135e..a698110 100644 --- a/backend/main.py +++ b/backend/main.py @@ -5,13 +5,14 @@ import os from contextlib import asynccontextmanager from logging.handlers import RotatingFileHandler from datetime import datetime -from typing import Any, List, Optional +from typing import Any, Dict, List, Optional from urllib.parse import urlencode import httpx from fastapi import FastAPI, HTTPException, Query, Request from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import HTMLResponse, Response +from fastapi.responses import HTMLResponse, JSONResponse, Response +from fastapi.staticfiles import StaticFiles from pydantic import BaseModel try: @@ -25,21 +26,23 @@ except ImportError: WECHAT_UPSTREAM_BASE_URL = os.getenv("WECHAT_UPSTREAM_BASE_URL", "http://localhost:8080").rstrip("/") CHECK_STATUS_BASE_URL = os.getenv("CHECK_STATUS_BASE_URL", "http://113.44.162.180:7006").rstrip("/") +# 消息实时回调:设置后 7006 将新消息 POST 到该地址,作为主接收入口(与 SetCallback 一致) +CALLBACK_BASE_URL = (os.getenv("CALLBACK_BASE_URL") or "").strip().rstrip("/") SLIDER_VERIFY_BASE_URL = os.getenv("SLIDER_VERIFY_BASE_URL", "http://113.44.162.180:7765").rstrip("/") SLIDER_VERIFY_KEY = os.getenv("SLIDER_VERIFY_KEY", os.getenv("KEY", "408449830")) # 发送文本消息:swagger 中为 POST /message/SendTextMessage,body 为 SendMessageModel(MsgItem 数组) SEND_MSG_PATH = (os.getenv("SEND_MSG_PATH") or "/message/SendTextMessage").strip() # 发送图片消息:部分上游为独立接口,或与文本同 path 仅 MsgType 不同(如 3=图片) SEND_IMAGE_PATH = (os.getenv("SEND_IMAGE_PATH") or "").strip() or SEND_MSG_PATH -# 联系人列表:7006 为 POST /friend/GetContactList,body 传 CurrentChatRoomContactSeq/CurrentWxcontactSeq=0 -CONTACT_LIST_PATH = (os.getenv("CONTACT_LIST_PATH") or os.getenv("FRIEND_LIST_PATH") or "/friend/GetContactList").strip() -FRIEND_LIST_PATH = (os.getenv("FRIEND_LIST_PATH") or CONTACT_LIST_PATH).strip() # 图片消息 MsgType:部分上游为 0,常见为 3 IMAGE_MSG_TYPE = int(os.getenv("IMAGE_MSG_TYPE", "3")) # 按 key 缓存取码结果与 Data62,供后续步骤使用 qrcode_store: dict = {} +# 按 key 缓存联系人索引:name(微信号/昵称/备注) -> 联系人详情 +_contact_index: Dict[str, Dict[str, dict]] = {} + _LOG_FMT = "%(asctime)s [%(levelname)s] %(name)s - %(message)s" logging.basicConfig(level=logging.INFO, format=_LOG_FMT) # 日志落盘:写入 data/logs/app.log,便于排查(可按 LOG_DIR 覆盖目录) @@ -69,14 +72,18 @@ def _allowed_ai_reply(key: str, from_user: str) -> bool: return False cfg = store.get_ai_reply_config(key) if not cfg: + logger.debug("AI reply skipped: no config for key=%s (请在管理页「AI 回复设置」保存超级管理员/白名单)", key[:8]) return False super_admins = set(cfg.get("super_admin_wxids") or []) whitelist = set(cfg.get("whitelist_wxids") or []) - return from_user.strip() in super_admins or from_user.strip() in whitelist + allowed = from_user.strip() in super_admins or from_user.strip() in whitelist + if not allowed: + logger.debug("AI reply skipped: from_user=%s not in whitelist/super_admin for key=%s", from_user[:20], key[:8]) + return allowed async def _ai_takeover_reply(key: str, from_user: str, content: str) -> None: - """收到他人消息时由 AI 接管:生成回复并发送。""" + """收到他人消息时由 AI 接管:根据指令生成回复或调用内置动作(如代发消息)。""" if not from_user or not content or not content.strip(): return try: @@ -95,33 +102,92 @@ async def _ai_takeover_reply(key: str, from_user: str, content: str) -> None: break if not context or context[-1].get("role") != "user": context.append({"role": "user", "content": content}) - text = await llm_chat(context) - if text and text.strip(): - await _send_message_upstream(key, from_user, text.strip()) - logger.info("AI takeover replied to %s: %s", from_user[:20], text.strip()[:50]) + + # Function Call 风格:让模型选择是直接回复,还是发起“代发消息”等动作 + system_prompt = ( + "你是微信客服助手,负责根据用户消息决定是直接回复,还是调用内置动作。" + "只用 JSON 回复,格式如下(不要多余文本):\n" + "{\n" + ' \"type\": \"reply\" | \"send_message\",\n' + ' \"reply\"?: \"直接回复给当前联系人的内容(当 type=reply 时必填)\",\n' + ' \"target_wxid\"?: \"要代发消息的对象 wxid(当 type=send_message 时必填,可以是当前联系人或其他 wxid)\",\n' + ' \"content\"?: \"要代发的消息内容(当 type=send_message 时必填)\"\n' + "}\n" + "注意:\n" + "1)如果用户只是正常聊天,优先使用 type=reply;\n" + "2)只有当用户明确指令你“帮我给某人发消息/转告/通知 xxx”时,才使用 type=send_message;\n" + "3)严禁凭空编造 target_wxid,若无法确定对方 wxid,请继续使用 type=reply 询问用户;\n" + "4)不要用自然语言解释 JSON,只输出 JSON 本身。" + ) + messages = [{"role": "system", "content": system_prompt}, *context] + + raw = await llm_chat(messages) + if not raw or not raw.strip(): + return + + action = None + try: + import json as _json + + action = _json.loads(raw) + except Exception: + # 回退为普通文本回复 + reply_text = raw.strip() + await _send_message_upstream(key, from_user, reply_text) + logger.info("AI takeover replied (fallback) to %s: %s", from_user[:20], reply_text[:50]) + return + + if not isinstance(action, dict) or "type" not in action: + return + + action_type = str(action.get("type") or "").strip() + if action_type == "send_message": + target = str(action.get("target_wxid") or "").strip() + msg = str(action.get("content") or "").strip() + if target and msg: + # 先按“昵称/备注/微信号”解析成真正的 wxid + real_wxid = await _resolve_contact_username(key, target) + if not real_wxid: + # 回一条提示给当前联系人,说明未找到该联系人 + warn = f"未找到名为「{target}」的联系人,请确认称呼或直接提供对方微信号。" + await _send_message_upstream(key, from_user, warn) + logger.info("AI send_message resolve failed for %s (key=***%s)", target, key[-4:] if len(key) >= 4 else "****") + return + await _send_message_upstream(key, real_wxid, msg) + logger.info("AI function-call send_message to %s (raw=%s): %s", real_wxid[:20], target[:20], msg[:50]) + elif action_type == "reply": + reply_text = str(action.get("reply") or "").strip() + if reply_text: + await _send_message_upstream(key, from_user, reply_text) + logger.info("AI takeover replied to %s: %s", from_user[:20], reply_text[:50]) except Exception as e: logger.exception("AI takeover reply error (from=%s): %s", from_user, e) -def _on_ws_message(key: str, data: dict) -> None: - """GetSyncMsg 收到数据时:写入 store;若为他人消息则 AI 接管对话。""" - msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") - if isinstance(msg_list, list) and msg_list: - store.append_sync_messages(key, msg_list) - for m in msg_list: - if _is_self_sent(m): - continue - from_user = (m.get("FromUserName") or m.get("from") or "").strip() - content = (m.get("Content") or m.get("content") or "").strip() - msg_type = m.get("MsgType") or m.get("msgType") - if from_user and content and (msg_type in (1, None) or str(msg_type) == "1"): # 仅文本触发 AI - if not _allowed_ai_reply(key, from_user): +def _on_ws_message(key: str, data: Any) -> None: + """GetSyncMsg / 回调 收到数据时:写入 store;若为他人消息则 AI 接管对话。""" + # 1)上游典型结构:{"MsgList": [...]} / {"List": [...]} / {"msgList": [...]} + if isinstance(data, dict): + msg_list = data.get("MsgList") or data.get("List") or data.get("msgList") + if isinstance(msg_list, list) and msg_list: + store.append_sync_messages(key, msg_list) + for m in msg_list: + if _is_self_sent(m): continue - try: - asyncio.get_running_loop().create_task(_ai_takeover_reply(key, from_user, content)) - except RuntimeError: - pass - elif isinstance(data, list): + from_user = (m.get("FromUserName") or m.get("from") or "").strip() + content = (m.get("Content") or m.get("content") or "").strip() + msg_type = m.get("MsgType") or m.get("msgType") + if from_user and content and (msg_type in (1, None) or str(msg_type) == "1"): # 仅文本触发 AI + if not _allowed_ai_reply(key, from_user): + continue + try: + asyncio.get_running_loop().create_task(_ai_takeover_reply(key, from_user, content)) + except RuntimeError: + pass + return + + # 2)如果 data 本身就是列表(例如回调已归一化为 [normalized_msg]) + if isinstance(data, list): store.append_sync_messages(key, data) for m in data: if not isinstance(m, dict) or _is_self_sent(m): @@ -136,21 +202,42 @@ def _on_ws_message(key: str, data: dict) -> None: asyncio.get_running_loop().create_task(_ai_takeover_reply(key, from_user, content)) except RuntimeError: pass - else: - store.append_sync_messages(key, [data]) - m = data if isinstance(data, dict) else {} - if not _is_self_sent(m): - from_user = (m.get("FromUserName") or m.get("from") or "").strip() - content = (m.get("Content") or m.get("content") or "").strip() - msg_type = m.get("MsgType") or m.get("msgType") - if from_user and content and (msg_type in (1, None) or str(msg_type) == "1"): - if not _allowed_ai_reply(key, from_user): - pass - else: - try: - asyncio.get_running_loop().create_task(_ai_takeover_reply(key, from_user, content)) - except RuntimeError: - pass + return + + # 3)兜底:单条 dict / 其它类型 + store.append_sync_messages(key, [data]) + m = data if isinstance(data, dict) else {} + if not _is_self_sent(m): + from_user = (m.get("FromUserName") or m.get("from") or "").strip() + content = (m.get("Content") or m.get("content") or "").strip() + msg_type = m.get("MsgType") or m.get("msgType") + if from_user and content and (msg_type in (1, None) or str(msg_type) == "1"): + if not _allowed_ai_reply(key, from_user): + return + try: + asyncio.get_running_loop().create_task(_ai_takeover_reply(key, from_user, content)) + except RuntimeError: + pass + + +async def _register_message_callback(key: str) -> bool: + """向 7006 注册消息回调:POST /message/SetCallback?key=xxx,使 7006 将新消息推送到本服务。""" + if not CALLBACK_BASE_URL or not key: + return False + url = f"{CHECK_STATUS_BASE_URL.rstrip('/')}/message/SetCallback" + callback_url = f"{CALLBACK_BASE_URL.rstrip('/')}/api/callback/wechat-message" + body = {"CallbackURL": callback_url, "Enabled": True} + try: + async with httpx.AsyncClient(timeout=10.0) as client: + resp = await client.post(url, params={"key": key}, json=body) + if resp.status_code >= 400: + logger.warning("SetCallback %s key=%s: %s %s", url, key[-4:] if len(key) >= 4 else "****", resp.status_code, resp.text[:200]) + return False + logger.info("SetCallback registered for key=***%s, CallbackURL=%s", key[-4:] if len(key) >= 4 else "****", callback_url) + return True + except Exception as e: + logger.warning("SetCallback error key=%s: %s", key[-4:] if len(key) >= 4 else "****", e) + return False async def _run_greeting_scheduler() -> None: @@ -219,7 +306,15 @@ async def _run_greeting_scheduler() -> None: @asynccontextmanager async def lifespan(app: FastAPI): set_message_callback(_on_ws_message) - asyncio.create_task(start_ws_sync()) + _callback_key = (os.getenv("WECHAT_WS_KEY") or os.getenv("KEY") or os.getenv("WS_KEY") or "").strip() + if CALLBACK_BASE_URL and _callback_key: + ok = await _register_message_callback(_callback_key) + if ok: + logger.info("消息接收已切换为实时回调入口,不再启动 WS GetSyncMsg") + else: + asyncio.create_task(start_ws_sync()) + else: + asyncio.create_task(start_ws_sync()) scheduler = asyncio.create_task(_run_greeting_scheduler()) yield scheduler.cancel() @@ -847,6 +942,57 @@ async def api_list_messages(key: str = Query(..., description="账号 key"), lim return {"items": store.list_sync_messages(key, limit=limit)} +@app.get("/api/callback-status") +async def api_callback_status(key: Optional[str] = Query(None, description="账号 key,传入时会向 7006 重新注册 SetCallback 并返回是否成功")): + """检查消息回调配置:是否配置了 CALLBACK_BASE_URL、回调地址,以及(传入 key 时)向 7006 注册是否成功。""" + callback_url = "" + if CALLBACK_BASE_URL: + callback_url = f"{CALLBACK_BASE_URL.rstrip('/')}/api/callback/wechat-message" + registered: Optional[bool] = None + if key and key.strip(): + k = key.strip() + registered = await _register_message_callback(k) + return { + "configured": bool(CALLBACK_BASE_URL), + "callback_url": callback_url or None, + "registered": registered, + } + + +@app.post("/api/callback/wechat-message") +async def api_callback_wechat_message(request: Request, key: Optional[str] = Query(None, description="账号 key(7006 回调时可能带在 query)")): + """7006 消息实时回调入口:与 SetCallback 配合,收到新消息时 7006 POST 到此地址,与 WS GetSyncMsg 同结构,统一走 _on_ws_message 处理。""" + try: + body = await request.json() + except Exception: + body = {} + # 打印回调原始内容,便于排查结构与字段(截断避免日志过大) + try: + logger.info("callback/wechat-message raw body: %s", str(body)[:1000]) + except Exception: + pass + k = (key or (body.get("key") or body.get("Key") or "") or "").strip() + if not k: + logger.warning("callback/wechat-message: missing key in query and body") + return JSONResponse(content={"ok": False, "error": "missing key"}, status_code=200) + try: + payload: Any = body + # 7006 回调当前格式示例:{"key": "...", "message": {...}, "type": "message"} + # 优先按回调 message 结构归一化,再回退到 Data/data 解包。 + if isinstance(body, dict) and body.get("message"): + normalized = _normalize_callback_message(body) + if normalized: + payload = [normalized] + elif isinstance(body, dict): + inner = body.get("Data") or body.get("data") + if isinstance(inner, (dict, list)): + payload = inner + _on_ws_message(k, payload) + except Exception as e: + logger.exception("callback/wechat-message key=%s: %s", k[-4:] if len(k) >= 4 else "****", e) + return {"ok": True} + + async def _send_message_upstream(key: str, to_user_name: str, content: str) -> dict: """调用上游发送文本消息;成功时写入发出记录并返回响应,失败抛 HTTPException。""" url = f"{WECHAT_UPSTREAM_BASE_URL.rstrip('/')}{SEND_MSG_PATH}" @@ -968,9 +1114,93 @@ async def api_send_image(body: SendImageBody): raise HTTPException(status_code=502, detail=f"upstream_error: {exc}") from exc +def _log_contact_list_response_structure(raw: dict) -> None: + """首轮无数据时打印上游响应结构,便于排查为何数据未解析到。""" + keys_top = list(raw.keys()) if isinstance(raw, dict) else [] + data = raw.get("Data") or raw.get("data") + keys_data = list(data.keys()) if isinstance(data, dict) else (type(data).__name__ if data is not None else "None") + logger.info( + "GetContactList response structure (no items extracted): top_level_keys=%s, Data_keys=%s", + keys_top, + keys_data, + ) + if isinstance(data, dict): + for k, v in list(data.items())[:5]: + preview = str(v)[:80] if v is not None else "null" + logger.info(" Data.%s: %s", k, preview) + + +def _unwrap_wechat_field(v: Any) -> Any: + """上游字段有时为 {'str': 'xxx'} 或 {'len': 0} 这种包装,这里尝试取出内部值。""" + if isinstance(v, dict): + if "str" in v: + return v.get("str") + if "len" in v and len(v) == 1: + return v.get("len") + return v + + +def _normalize_callback_message(raw: dict) -> dict: + """ + 将 7006 回调的 message 结构统一为与 WS GetSyncMsg 类似的消息字典, + 便于复用 _on_ws_message / 实时消息面板的展示与 AI 接管逻辑。 + + 示例 raw: + { + "key": "HBpEnbtj9BJZ", + "message": { + "msg_id": 126545176, + "from_user_name": {"str": "zhang499142409"}, + "to_user_name": {"str": "wxid_xxx"}, + "msg_type": 1, + "content": {"str": "测试"}, + ... + }, + "type": "message" + } + """ + msg = raw.get("message") or raw + if not isinstance(msg, dict): + return {} + from_user = _unwrap_wechat_field(msg.get("from_user_name") or msg.get("FromUserName")) + to_user = _unwrap_wechat_field(msg.get("to_user_name") or msg.get("ToUserName")) + content = _unwrap_wechat_field(msg.get("content") or msg.get("Content")) + msg_type = msg.get("msg_type") or msg.get("MsgType") + create_time = msg.get("create_time") or msg.get("CreateTime") + # 回放到统一结构,字段名尽量与 WS GetSyncMsg 一致 + normalized = { + "MsgId": msg.get("msg_id") or msg.get("MsgId") or msg.get("new_msg_id"), + "FromUserName": from_user or "", + "ToUserName": to_user or "", + "Content": content or "", + "MsgType": msg_type, + "CreateTime": create_time, + } + # 附带原始字段,便于调试 / 扩展展示 + for k, v in msg.items(): + if k in ( + "msg_id", + "MsgId", + "new_msg_id", + "from_user_name", + "FromUserName", + "to_user_name", + "ToUserName", + "content", + "Content", + "msg_type", + "MsgType", + "create_time", + "CreateTime", + ): + continue + normalized[k] = v + return normalized + + def _normalize_contact_list(raw: Any) -> List[dict]: """将上游 GetContactList 多种返回格式统一为 [ { wxid, remark_name, ... } ]。""" - items = [] + items: Any = [] if isinstance(raw, list): items = raw elif isinstance(raw, dict): @@ -978,20 +1208,37 @@ def _normalize_contact_list(raw: Any) -> List[dict]: if isinstance(data, list): items = data elif isinstance(data, dict): - items = ( + contact_list = ( data.get("ContactList") or data.get("contactList") or data.get("WxcontactList") or data.get("wxcontactList") or data.get("CachedContactList") - or data.get("List") - or data.get("list") - or data.get("items") - or [] ) - items = items or raw.get("items") or raw.get("list") or raw.get("List") or [] + # 7006 格式:ContactList 为对象,联系人 id 在 contactUsernameList 字符串数组里 + if isinstance(contact_list, dict): + username_list = ( + contact_list.get("contactUsernameList") + or contact_list.get("ContactUsernameList") + or contact_list.get("UserNameList") + or [] + ) + if isinstance(username_list, list) and username_list: + items = [{"wxid": (x if isinstance(x, str) else str(x)), "remark_name": (x if isinstance(x, str) else str(x))} for x in username_list] + else: + items = [] + else: + items = contact_list if isinstance(contact_list, list) else ( + data.get("List") or data.get("list") or data.get("items") + or data.get("Friends") or data.get("friends") + or data.get("MemberList") or data.get("memberList") or [] + ) + items = items or raw.get("items") or raw.get("list") or raw.get("List") or raw.get("ContactList") or raw.get("WxcontactList") or [] result = [] for x in items: + if isinstance(x, str): + result.append({"wxid": x, "remark_name": x}) + continue if not isinstance(x, dict): continue wxid = ( @@ -1010,44 +1257,260 @@ def _normalize_contact_list(raw: Any) -> List[dict]: or x.get("DisplayName") or wxid ) - result.append({"wxid": wxid, "remark_name": remark, **{k: v for k, v in x.items() if k not in ("wxid", "Wxid", "remark_name", "RemarkName")}}) + result.append({"wxid": wxid, "remark_name": remark}) return result -# 上游 GetContactList 请求体:CurrentChatRoomContactSeq、CurrentWxcontactSeq 传 0 表示拉取全量 -GET_CONTACT_LIST_BODY = {"CurrentChatRoomContactSeq": 0, "CurrentWxcontactSeq": 0} +async def _fetch_all_contact_usernames(key: str) -> List[str]: + """ + 调用 /friend/GetContactList 拉取全部联系人,返回去重后的 UserName 列表。 + 仅用于后续调用 GetContactDetailsList 获取详情。 + """ + url = f"{CHECK_STATUS_BASE_URL.rstrip('/')}/friend/GetContactList" + usernames: List[str] = [] + seen: set = set() + body: dict = {"CurrentChatRoomContactSeq": 0, "CurrentWxcontactSeq": 0} + max_rounds = 50 + try: + async with httpx.AsyncClient(timeout=30.0) as client: + for round_num in range(max_rounds): + resp = await client.post(url, params={"key": key}, json=body) + if resp.status_code >= 400: + logger.warning("GetContactList(round=%s) %s: %s", round_num + 1, resp.status_code, resp.text[:200]) + break + raw = resp.json() + chunk = _normalize_contact_list(raw) + if not chunk and isinstance(raw, dict): + chunk = _normalize_contact_list(raw.get("Data") or raw.get("data") or raw) + if round_num == 0 and not chunk and isinstance(raw, dict): + _log_contact_list_response_structure(raw) + for item in chunk: + wxid = (item.get("wxid") or "").strip() + if wxid and wxid not in seen: + seen.add(wxid) + usernames.append(wxid) + next_chat, next_wx = _next_contact_seq(raw) + if next_chat == 0 and next_wx == 0: + break + if next_chat == body.get("CurrentChatRoomContactSeq") and next_wx == body.get("CurrentWxcontactSeq"): + break + body = { + "CurrentChatRoomContactSeq": next_chat or body.get("CurrentChatRoomContactSeq", 0), + "CurrentWxcontactSeq": next_wx or body.get("CurrentWxcontactSeq", 0), + } + if not body["CurrentChatRoomContactSeq"] and not body["CurrentWxcontactSeq"]: + break + except Exception as e: + logger.warning("GetContactList usernames error: %s", e) + logger.info("GetContactList usernames total=%s", len(usernames)) + return usernames + + +async def _build_contact_index(key: str) -> Dict[str, dict]: + """ + 通用联系人索引: + - 先通过 GetContactList 拿到全部 UserName 列表; + - 再通过 /friend/GetContactDetailsList 批量拉取详情; + - 构建 name(微信号/昵称/备注) -> 联系人详情 的索引。 + """ + if key in _contact_index and _contact_index[key]: + return _contact_index[key] + + usernames = await _fetch_all_contact_usernames(key) + if not usernames: + _contact_index[key] = {} + return _contact_index[key] + + url = f"{CHECK_STATUS_BASE_URL.rstrip('/')}/friend/GetContactDetailsList" + index: Dict[str, dict] = {} + + async with httpx.AsyncClient(timeout=30.0) as client: + chunk_size = 50 + for i in range(0, len(usernames), chunk_size): + batch = usernames[i : i + chunk_size] + body = { + "RoomWxIDList": [], + "UserNames": batch, + } + try: + resp = await client.post(url, params={"key": key}, json=body) + except Exception as e: + logger.warning("GetContactDetailsList batch error: %s", e) + continue + if resp.status_code >= 400: + logger.warning("GetContactDetailsList %s: %s", resp.status_code, resp.text[:200]) + continue + raw = resp.json() + data = raw.get("Data") or raw.get("data") or raw + # 打印一次结构,便于排查为何没有解析出联系人详情 + try: + if i == 0: + top_keys = list(raw.keys()) if isinstance(raw, dict) else type(raw).__name__ + data_keys = list(data.keys()) if isinstance(data, dict) else type(data).__name__ + logger.info( + "GetContactDetailsList structure: top_keys=%s, Data_keys=%s, batch_size=%s", + top_keys, + data_keys, + len(batch), + ) + except Exception: + pass + items = [] + if isinstance(data, dict): + # 7006 GetContactDetailsList 当前结构:Data.contactList 为联系人详情数组 + items = ( + data.get("List") + or data.get("list") + or data.get("ContactDetailsList") + or data.get("contacts") + or data.get("contactList") + or [] + ) + elif isinstance(data, list): + items = data + if not isinstance(items, list): + # 结构不符时记录一条日志,帮助判断需要从哪里取联系人列表 + logger.info( + "GetContactDetailsList no list items parsed, data_type=%s, sample=%s", + type(data).__name__, + str(data)[:200], + ) + continue + # 追加一次示例项日志,便于确认字段名(UserName/NickName/RemarkName 等) + try: + if i == 0 and items: + sample = items[0] + if isinstance(sample, dict): + logger.info( + "GetContactDetailsList first item keys=%s, sample=%s", + list(sample.keys()), + str(sample)[:200], + ) + except Exception: + pass + for d in items: + if not isinstance(d, dict): + continue + # 只保留 bitVal == 3 的联系人(如上游定义的「有效联系人」),其它忽略 + try: + bit_val = int(d.get("bitVal") or 0) + except (TypeError, ValueError): + bit_val = 0 + if bit_val != 3: + continue + + # 7006 联系人详情字段为 userName/nickName/pyinitial/quanPin 等,内部多为 {'str': 'xxx'} 包装 + wxid = _unwrap_wechat_field( + d.get("userName") or d.get("UserName") or d.get("user_name") or d.get("wxid") + ) + wxid = (wxid or "").strip() + if not wxid: + continue + nick = _unwrap_wechat_field(d.get("nickName") or d.get("NickName") or d.get("nick_name")) or "" + nick = str(nick).strip() + remark = _unwrap_wechat_field( + d.get("remark") or d.get("RemarkName") or d.get("remark_name") + ) or "" + remark = str(remark).strip() + pyinitial = _unwrap_wechat_field(d.get("pyinitial") or d.get("pyInitial") or d.get("PYInitial")) or "" + pyinitial = str(pyinitial).strip() + quan_pin = _unwrap_wechat_field(d.get("quanPin") or d.get("QuanPin") or d.get("fullPinyin")) or "" + quan_pin = str(quan_pin).strip() + info = { + "wxid": wxid, + "remark_name": remark or nick or wxid, + "nick_name": nick, + "pyinitial": pyinitial, + "quan_pin": quan_pin, + "raw": d, + } + # 主键:wxid + index[wxid] = info + # 昵称 / 备注作为别名,便于按自然语言查找 + if nick and nick not in index: + index[nick] = info + if remark and remark not in index: + index[remark] = info + + _contact_index[key] = index + logger.info("Contact index built for key=***%s, size=%s", key[-4:] if len(key) >= 4 else "****", len(index)) + return index + + +async def _resolve_contact_username(key: str, name: str) -> Optional[str]: + """ + 将用户提到的“昵称/备注/微信号”解析成真正的 wxid(UserName)。 + 返回 wxid,找不到则返回 None。 + """ + if not name: + return None + idx = await _build_contact_index(key) + info = idx.get(name.strip()) + if info and isinstance(info, dict): + wxid = (info.get("wxid") or info.get("UserName") or "").strip() + return wxid or None + return None + + +# 上游 GetContactList:传 0 拉首页,响应可能带 NextWxcontactSeq/NextChatRoomContactSeq 表示还有后续页,需循环拉取全量 +def _next_contact_seq(raw: dict) -> tuple: + """从上游响应中解析下一页的 seq,返回 (next_chatroom_seq, next_wxcontact_seq)。无下一页则返回 (0, 0)。""" + def _int(v, default: int = 0) -> int: + if v is None: + return default + try: + return int(v) + except (TypeError, ValueError): + return default + + data = raw.get("Data") or raw.get("data") or raw + chatroom_seq = 0 + wxcontact_seq = 0 + if isinstance(data, dict): + chatroom_seq = _int(data.get("NextChatRoomContactSeq") or data.get("CurrentChatRoomContactSeq"), 0) + wxcontact_seq = _int(data.get("NextWxcontactSeq") or data.get("CurrentWxcontactSeq"), 0) + for k in ("NextChatRoomContactSeq", "NextWxcontactSeq"): + v = raw.get(k) + if v is not None: + if "ChatRoom" in k: + chatroom_seq = _int(v, 0) + else: + wxcontact_seq = _int(v, 0) + return (chatroom_seq, wxcontact_seq) + + +# 联系人列表等接口禁止缓存,避免 304 导致前端拿到旧数据 +_NO_CACHE_HEADERS = {"Cache-Control": "no-store, no-cache, must-revalidate", "Pragma": "no-cache"} @app.get("/api/contact-list") async def api_contact_list(key: str = Query(..., description="账号 key")): - """获取全部联系人:POST 上游,body 为 CurrentChatRoomContactSeq/CurrentWxcontactSeq=0,key 走 query。""" - base = WECHAT_UPSTREAM_BASE_URL.rstrip("/") - path = CONTACT_LIST_PATH if CONTACT_LIST_PATH.startswith("/") else f"/{CONTACT_LIST_PATH}" - url = f"{base}{path}" + """获取全部联系人详情:基于 GetContactList + GetContactDetailsList 构建的通用索引。禁止缓存。""" try: - async with httpx.AsyncClient(timeout=15.0) as client: - resp = await client.post( - url, - params={"key": key}, - json=GET_CONTACT_LIST_BODY, - ) - if resp.status_code >= 400: - logger.warning("GetContactList %s: %s", resp.status_code, resp.text[:200]) - return {"items": [], "error": resp.text[:200]} - raw = resp.json() - # 日志便于确认 7006 返回结构(不打印完整列表) - if isinstance(raw, dict): - data = raw.get("Data") or raw.get("data") - data_keys = list(data.keys()) if isinstance(data, dict) else getattr(data, "__name__", type(data).__name__) - logger.info("GetContactList response keys: raw=%s, Data=%s", list(raw.keys()), data_keys) - items = _normalize_contact_list(raw) - if not items and isinstance(raw, dict): - items = _normalize_contact_list(raw.get("Data") or raw.get("data") or raw) - logger.info("GetContactList normalized items count: %s", len(items)) - return {"items": items} + index = await _build_contact_index(key) + # 只返回去重后的联系人详情(以 wxid 主键) + uniques: Dict[str, dict] = {} + for name, info in index.items(): + if not isinstance(info, dict): + continue + wxid = (info.get("wxid") or "").strip() + if not wxid or wxid in uniques: + continue + uniques[wxid] = { + "wxid": wxid, + # 显示时优先用昵称,其次备注,最后用 wxid + "nick_name": info.get("nick_name") or "", + "remark_name": info.get("remark_name") or info.get("nick_name") or wxid, + "pyinitial": info.get("pyinitial") or "", + "quanPin": info.get("quan_pin") or "", + } + items = list(uniques.values()) + logger.info("api_contact_list key=***%s -> %s contacts", key[-4:] if len(key) >= 4 else "****", len(items)) + return JSONResponse(content={"items": items}, headers=_NO_CACHE_HEADERS) except Exception as e: - logger.warning("GetContactList error: %s", e) - return {"items": [], "error": str(e)} + # 打印完整异常与 key,便于排查加载联系人报错 + logger.exception("contact-list error for key=***%s: %s", key[-4:] if len(key) >= 4 else "****", e) + return JSONResponse(content={"items": [], "error": str(e)}, headers=_NO_CACHE_HEADERS) @app.get("/api/friends") @@ -1092,6 +1555,33 @@ async def api_update_ai_reply_config(body: AIReplyConfigUpdate): ) +@app.get("/api/ai-reply-status") +async def api_ai_reply_status(key: str = Query(..., description="账号 key")): + """检查 AI 模型接管是否正常:WS 连接、是否配置白名单/超级管理员、是否有当前模型。""" + ws_ok = is_ws_connected() + cfg = store.get_ai_reply_config(key) + super_list = cfg.get("super_admin_wxids") or [] if cfg else [] + white_list = cfg.get("whitelist_wxids") or [] if cfg else [] + has_allow_list = bool(super_list or white_list) + model = store.get_current_model() + has_model = bool(model and model.get("api_key")) + ok = ws_ok and has_allow_list and has_model + return { + "ok": ok, + "ws_connected": ws_ok, + "has_ai_reply_config": bool(cfg), + "has_whitelist_or_super_admin": has_allow_list, + "super_admin_count": len(super_list), + "whitelist_count": len(white_list), + "has_current_model": has_model, + "message": "正常" if ok else ( + "未连接消息同步(WS)" if not ws_ok else + "请在「AI 回复设置」添加并保存超级管理员或白名单" if not has_allow_list else + "请在「模型管理」添加并选中当前模型" if not has_model else "未知" + ), + } + + # ---------- 模型管理(多模型切换,API Key 按模型配置) ---------- class ModelCreate(BaseModel): name: str @@ -1235,3 +1725,9 @@ async def logout(body: LogoutBody): ) return resp.json() + +# 静态页面目录:与 Node 一致,直接访问后端时也可访问所有静态页 +_PUBLIC_DIR = os.path.join(os.path.dirname(__file__), "..", "public") +if os.path.isdir(_PUBLIC_DIR): + app.mount("/", StaticFiles(directory=_PUBLIC_DIR, html=True), name="static") + diff --git a/backend/ws_sync.py b/backend/ws_sync.py index 8009166..8b25ad3 100644 --- a/backend/ws_sync.py +++ b/backend/ws_sync.py @@ -11,7 +11,7 @@ logger = logging.getLogger("wechat-backend.ws_sync") WS_BASE_URL = os.getenv("WECHAT_WS_BASE_URL", "").rstrip("/") or os.getenv("CHECK_STATUS_BASE_URL", "http://113.44.162.180:7006").rstrip("/").replace("http://", "ws://").replace("https://", "wss://") # 与 7006 GetSyncMsg 建立连接时使用的 key,必须与登录页使用的账号 key 一致,否则收不到该账号的消息 # 优先读取 WECHAT_WS_KEY,未设置时使用 KEY(与登录参数一致) -DEFAULT_KEY = (os.getenv("WECHAT_WS_KEY") or os.getenv("KEY") or "").strip() or "HBpEnbtj9BJZ" +DEFAULT_KEY = (os.getenv("WECHAT_WS_KEY") or os.getenv("KEY") or os.getenv("WS_KEY") or "").strip() or "HBpEnbtj9BJZ" try: import websockets diff --git a/public/chat.html b/public/chat.html index f913fde..3a48686 100644 --- a/public/chat.html +++ b/public/chat.html @@ -221,9 +221,18 @@ return; } try { - // 后端已按时间倒序(最新在前)返回,这里保持顺序即可 + // 后端已按时间倒序(最新在前)返回 const data = await callApi('/api/messages?key=' + encodeURIComponent(key) + '&limit=80'); - const list = data.items || []; + let list = data.items || []; + // 仅展示对话类消息:文本消息或我发出的消息,过滤掉系统通知、非会话类型 + list = list.filter(m => { + const t = m.MsgType ?? m.msgType; + const dir = m.direction; + const content = (m.Content || m.content || '').toString().trim(); + if (dir === 'out') return true; + if (t === 1 || t === '1') return !!content; + return false; + }); $('message-list').innerHTML = list.length ? list.map(m => { const isOut = m.direction === 'out'; const fromLabel = isOut ? ('我 → ' + (m.ToUserName || '')) : (m.FromUserName || m.from || m.MsgId || '-').toString().slice(0, 32); @@ -263,6 +272,29 @@ $('btn-refresh-msg').addEventListener('click', loadMessages); $('btn-send-msg').addEventListener('click', sendMessage); loadMessages(); + // 定时轮询实时消息,配合回调可及时看到新消息 + (function autoPollMessages() { + const INTERVAL_MS = 2000; + let timer = null; + function start() { + if (timer) return; + timer = setInterval(() => { + // 页面不可见时可跳过,减少无谓请求 + if (document.hidden) return; + loadMessages(); + }, INTERVAL_MS); + } + function stop() { + if (timer) { + clearInterval(timer); + timer = null; + } + } + document.addEventListener('visibilitychange', () => { + if (document.hidden) stop(); else start(); + }); + start(); + })(); (function wsStatusCheck() { let wasConnected = false; diff --git a/public/manage.html b/public/manage.html index 999dbce..98cdfa0 100644 --- a/public/manage.html +++ b/public/manage.html @@ -123,6 +123,7 @@
从联系人选择(多选可批量填入)
+
@@ -174,7 +175,14 @@
发送图片消息(快捷方式)
-
+
+ + +
+ + +
+
@@ -198,6 +206,16 @@

分级处理:仅超级管理员白名单中的联系人会收到 AI 自动回复,其他消息一律不回复。

+
+ AI 接管状态: + + +
+
+ 消息回调(7006 → 本服务): + + +
@@ -256,7 +274,7 @@ const tab = document.querySelector('.mgmt-tab[data-panel="' + panelId + '"]'); if (tab) tab.classList.add('active'); if (panelId === 'panel-greeting') loadCustomerTagsForGreeting(); - if (panelId === 'panel-ai-reply') loadAiReplyConfig(); + if (panelId === 'panel-ai-reply') { loadAiReplyConfig(); loadAiReplyStatus(); loadCallbackStatus(); } } function _parseWxidLines(ta) { @@ -283,6 +301,52 @@ } } + async function loadAiReplyStatus() { + const key = $('key').value.trim(); + const el = $('ai-reply-status-text'); + if (!el) return; + if (!key) { el.textContent = '请先登录'; return; } + el.textContent = '检测中…'; + try { + const data = await callApi('/api/ai-reply-status?key=' + encodeURIComponent(key)); + el.textContent = data.ok ? '正常(WS 已连接,已配置白名单/超级管理员,已选模型)' : (data.message || '异常'); + el.style.color = data.ok ? 'var(--success, #22c55e)' : 'var(--muted, #94a3b8)'; + } catch (e) { + el.textContent = '检查失败: ' + (e.message || e); + el.style.color = 'var(--danger, #ef4444)'; + } + } + + async function loadCallbackStatus() { + const key = getKey(); + const el = $('callback-status-text'); + if (!el) return; + if (!key) { el.textContent = '请先登录'; el.style.color = 'var(--muted)'; return; } + el.textContent = '检测中…'; + el.style.color = 'var(--muted)'; + try { + const data = await callApi('/api/callback-status?key=' + encodeURIComponent(key)); + if (!data.configured) { + el.textContent = '未配置(未设置 CALLBACK_BASE_URL,使用 WS 拉取消息)'; + el.style.color = 'var(--muted, #94a3b8)'; + return; + } + if (data.registered === true) { + el.textContent = '已配置且已向 7006 注册成功,新消息将推送到: ' + (data.callback_url || ''); + el.style.color = 'var(--success, #22c55e)'; + } else if (data.registered === false) { + el.textContent = '已配置但向 7006 注册失败,请检查网络或 7006 服务。回调地址: ' + (data.callback_url || ''); + el.style.color = 'var(--danger, #ef4444)'; + } else { + el.textContent = '已配置,回调地址: ' + (data.callback_url || ''); + el.style.color = 'var(--muted, #94a3b8)'; + } + } catch (e) { + el.textContent = '检查失败: ' + (e.message || e); + el.style.color = 'var(--danger, #ef4444)'; + } + } + async function saveAiReplyConfig() { const key = getKey(); if (!key) return; @@ -331,6 +395,7 @@ } } + let lastLoadedContactList = []; async function loadContactListForWxidSelect() { const key = $('key').value.trim(); const sel = $('c-wxid-select'); @@ -338,8 +403,9 @@ if (!key) { alert('请先登录'); return; } sel.innerHTML = ''; try { - const data = await callApi('/api/contact-list?key=' + encodeURIComponent(key)); + const data = await callApi('/api/contact-list?key=' + encodeURIComponent(key), { cache: 'no-store' }); const list = data.items || []; + lastLoadedContactList = list; if (data.error) { sel.innerHTML = ''; alert('获取联系人失败:' + (data.error || '请检查网络或 key')); @@ -347,8 +413,9 @@ } sel.innerHTML = list.length ? list.map(c => { - const w = (c.wxid || c.Wxid || '').toString(); - const r = (c.remark_name || c.RemarkName || c.NickName || w).toString(); + const w = (c.wxid || '').toString(); + const n = (c.nick_name || '').toString(); + const r = (n || c.remark_name || w).toString(); // 优先显示昵称 return ''; }).join('') : ''; @@ -359,6 +426,22 @@ } } + async function batchImportContactsAsCustomers() { + const key = getKey(); + if (!key) { alert('请先登录'); return; } + if (!lastLoadedContactList.length) { alert('请先点击「加载联系人」'); return; } + if (!confirm('将 ' + lastLoadedContactList.length + ' 个联系人导入为客户(备注名使用 wxid),是否继续?')) return; + try { + for (const c of lastLoadedContactList) { + const wxid = (c.wxid || '').trim(); + if (!wxid) continue; + await callApi('/api/customers', { method: 'POST', body: JSON.stringify({ key, wxid, remark_name: (c.remark_name || wxid).trim() }) }); + } + loadCustomers(); + alert('已导入 ' + lastLoadedContactList.length + ' 个客户'); + } catch (e) { alert('批量导入失败: ' + (e.message || e)); } + } + async function loadCustomers() { const key = $('key').value.trim(); if (!key) { $('customer-list').innerHTML = '

请先登录。

'; return; } @@ -558,7 +641,7 @@ const el = $('mass-friend-list'); el.innerHTML = '加载中…'; try { - const data = await callApi('/api/friends?key=' + encodeURIComponent(key)); + const data = await callApi('/api/friends?key=' + encodeURIComponent(key), { cache: 'no-store' }); const list = data.items || []; if (!list.length) { el.innerHTML = '暂无联系人,请先在「客户档案」添加客户。'; @@ -602,12 +685,56 @@ } catch (e) { alert('群发失败: ' + e.message); } } + function isImageUrl(s) { + const t = (s || '').trim(); + return t.startsWith('http://') || t.startsWith('https://'); + } + function stripDataUrlPrefix(s) { + const m = (s || '').match(/^data:image\/[^;]+;base64,(.+)$/); + return m ? m[1] : s; + } + function readFileAsBase64(file) { + return new Promise((resolve, reject) => { + const r = new FileReader(); + r.onload = () => { resolve(stripDataUrlPrefix(r.result)); }; + r.onerror = () => reject(new Error('读取文件失败')); + r.readAsDataURL(file); + }); + } + async function urlToBase64(url) { + const res = await fetch(url, { mode: 'cors' }); + if (!res.ok) throw new Error('获取图片失败: ' + res.status); + const blob = await res.blob(); + return new Promise((resolve, reject) => { + const r = new FileReader(); + r.onload = () => resolve(stripDataUrlPrefix(r.result)); + r.onerror = () => reject(new Error('URL 转 base64 失败')); + r.readAsDataURL(blob); + }); + } + async function resolveImageContentToBase64() { + const fileInput = $('img-file'); + const textInput = $('img-content').value.trim(); + if (fileInput && fileInput.files && fileInput.files[0]) { + return await readFileAsBase64(fileInput.files[0]); + } + if (!textInput) return null; + if (isImageUrl(textInput)) return await urlToBase64(textInput); + return stripDataUrlPrefix(textInput); + } async function doSendImage() { const key = getKey(); if (!key) return; const toUser = $('img-to-user').value.trim(); - const imageContent = $('img-content').value.trim(); - if (!toUser || !imageContent) { alert('请填写接收人 wxid 和图片内容'); return; } + if (!toUser) { alert('请填写接收人 wxid'); return; } + let imageContent; + try { + imageContent = await resolveImageContentToBase64(); + } catch (e) { + alert('解析图片失败: ' + (e.message || e)); + return; + } + if (!imageContent) { alert('请填写或选择图片内容(base64、URL 或本地图片)'); return; } try { await callApi('/api/send-image', { method: 'POST', @@ -620,8 +747,10 @@ }); alert('图片已发送'); $('img-content').value = ''; + if ($('img-file')) $('img-file').value = ''; + if ($('img-file-name')) $('img-file-name').textContent = ''; $('img-text').value = ''; - } catch (e) { alert('发送图片失败: ' + e.message); } + } catch (e) { alert('发送图片失败: ' + (e.message || e)); } } async function doPushSend() { @@ -663,6 +792,7 @@ document.querySelectorAll('.mgmt-tab').forEach(tab => tab.addEventListener('click', () => switchPanel(tab.dataset.panel))); $('btn-customer-save').addEventListener('click', saveCustomer); $('btn-load-contact-list').addEventListener('click', loadContactListForWxidSelect); + $('btn-batch-import-remark').addEventListener('click', batchImportContactsAsCustomers); $('c-wxid-select').addEventListener('change', function() { const sel = $('c-wxid-select'); const opts = sel ? sel.querySelectorAll('option:checked') : []; @@ -708,7 +838,14 @@ $('btn-load-friends').addEventListener('click', loadFriendsForMass); $('btn-mass-send').addEventListener('click', doMassSend); $('btn-send-image').addEventListener('click', doSendImage); - $('btn-ai-reply-save').addEventListener('click', saveAiReplyConfig); + if ($('img-file') && $('img-file-name')) { + $('img-file').addEventListener('change', function() { + $('img-file-name').textContent = this.files && this.files[0] ? '已选: ' + this.files[0].name : ''; + }); + } + $('btn-ai-reply-save').addEventListener('click', async () => { await saveAiReplyConfig(); loadAiReplyStatus(); }); + $('btn-ai-reply-status') && $('btn-ai-reply-status').addEventListener('click', loadAiReplyStatus); + $('btn-callback-status') && $('btn-callback-status').addEventListener('click', loadCallbackStatus); $('btn-pt-add').addEventListener('click', addProductTag); $('btn-push-group-add').addEventListener('click', createPushGroup); $('btn-push-send').addEventListener('click', doPushSend); diff --git a/public/pages.html b/public/pages.html new file mode 100644 index 0000000..05c060f --- /dev/null +++ b/public/pages.html @@ -0,0 +1,30 @@ + + + + + + 静态页面入口 + + + +

静态页面入口

+

以下页面均已释放,可直接访问:

+ +

通过 Node 前端(如 :3000)或直接访问后端(如 :8000)均可打开上述页面。

+ + diff --git a/run-ngrok.sh b/run-ngrok.sh new file mode 100755 index 0000000..4111649 --- /dev/null +++ b/run-ngrok.sh @@ -0,0 +1,144 @@ +#!/usr/bin/env bash +# 用 ngrok 暴露本机 8000 端口,并把公网 URL 写入 .env 的 CALLBACK_BASE_URL,便于 7006 回调调通 +set -e +cd "$(dirname "$0")" + +if ! command -v ngrok >/dev/null 2>&1; then + echo "未检测到 ngrok。请先安装:" + echo " brew install ngrok/ngrok/ngrok # macOS" + echo " 或从 https://ngrok.com/download 下载" + exit 1 +fi + +NGROK_LOG="/tmp/ngrok-wechataiclaw.log" +rm -f "$NGROK_LOG" + +# 避免重复启动导致多个 ngrok +if curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:4040/api/tunnels 2>/dev/null | grep -q 200; then + echo "检测到 ngrok 已在运行(4040 可访问),直接读取 URL..." +else + echo "启动 ngrok http 8000(后端需在 8000 端口,可先在本脚本之后另开终端运行 ./run-dev.sh)..." + nohup ngrok http 8000 --log=stdout > "$NGROK_LOG" 2>&1 & + NGROK_PID=$! + echo "等待 ngrok 就绪(最多 30 秒,并从日志解析 URL)..." + for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30; do + if curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:4040/api/tunnels 2>/dev/null | grep -q 200; then + break + fi + sleep 1 + done + sleep 1 +fi + +# 方式一:从 4040 API 获取 +PAYLOAD="" +for _ in 1 2 3 4 5; do + PAYLOAD=$(curl -s http://127.0.0.1:4040/api/tunnels 2>/dev/null || true) + if [ -n "$PAYLOAD" ] && [ "$PAYLOAD" != "null" ]; then + break + fi + sleep 2 +done + +# 仅接受隧道公网地址,排除 dashboard/signup/get-started/docs 等说明页 +_is_tunnel_url() { + case "$1" in + *dashboard*|*signup*|*get-started*|*ngrok.com/docs*|*your-authtoken*) return 1 ;; + *) return 0 ;; + esac +} + +# 方式二:4040 不可用时从 ngrok 启动日志中解析 https 公网地址(不依赖本地 API) +if [ -z "$PAYLOAD" ] || [ "$PAYLOAD" = "null" ]; then + echo "4040 API 不可用,尝试从 ngrok 日志解析 URL(约 20 秒)..." + for _ in 1 2 3 4 5 6 7 8 9 10; do + sleep 2 + if [ -f "$NGROK_LOG" ] && [ -s "$NGROK_LOG" ]; then + # 只匹配隧道域名:*.ngrok-free.app / *.ngrok.io(排除 dashboard.ngrok.com 等) + PUBLIC_URL_FROM_LOG=$(grep -oE 'https://[a-zA-Z0-9][-a-zA-Z0-9.]*\.(ngrok-free\.app|ngrok\.io|ngrok-app\.com)([^"'\''<> /]*|$)' "$NGROK_LOG" 2>/dev/null | head -1) || true + [ -z "$PUBLIC_URL_FROM_LOG" ] && PUBLIC_URL_FROM_LOG=$(grep -iE 'forwarding|Forwarding' "$NGROK_LOG" 2>/dev/null | grep -oE 'https://[a-zA-Z0-9][-a-zA-Z0-9.]*\.(ngrok-free\.app|ngrok\.io)[^ ]*' | head -1) || true + if [ -n "$PUBLIC_URL_FROM_LOG" ] && _is_tunnel_url "$PUBLIC_URL_FROM_LOG"; then + PUBLIC_URL="$PUBLIC_URL_FROM_LOG" + echo "已从日志解析到: $PUBLIC_URL" + break + fi + fi + done +fi + +# 若尚未从日志得到 URL,则从 API 的 PAYLOAD 解析 +if [ -z "$PUBLIC_URL" ] && [ -n "$PAYLOAD" ] && [ "$PAYLOAD" != "null" ]; then + PUBLIC_URL=$(echo "$PAYLOAD" | python3 -c " +import sys, json +try: + d = json.load(sys.stdin) + tunnels = d.get('tunnels') if isinstance(d, dict) else (d if isinstance(d, list) else []) + if not isinstance(tunnels, list): + tunnels = [] + for t in tunnels: + if not isinstance(t, dict): + continue + u = (t.get('public_url') or t.get('PublicURL') or '').strip() + if u.startswith('https://'): + print(u.rstrip('/')) + break + else: + if tunnels: + u = (tunnels[0].get('public_url') or tunnels[0].get('PublicURL') or '').strip() + if u: + print(u.rstrip('/')) +except Exception: + pass +" 2>/dev/null) + if [ -z "$PUBLIC_URL" ]; then + PUBLIC_URL=$(echo "$PAYLOAD" | grep -oE 'https://[a-zA-Z0-9][-a-zA-Z0-9.]*\.(ngrok-free\.app|ngrok\.io|ngrok-app\.com)[^"]*' | head -1 | sed 's|"$||') + fi + if [ -z "$PUBLIC_URL" ]; then + PUBLIC_URL=$(echo "$PAYLOAD" | grep -oE '"public_url"\s*:\s*"https://[^"]+' | sed 's/.*"https:/https:/' | sed 's/"$//' | head -1) + fi +fi + +if [ -z "$PUBLIC_URL" ]; then + if [ -f "$NGROK_LOG" ] && grep -qE 'authentication failed|ERR_NGROK_4018|authtoken|requires a verified account' "$NGROK_LOG" 2>/dev/null; then + echo "ngrok 需要先配置 authtoken(未登录或 token 未配置)。" + echo "请到 https://dashboard.ngrok.com/get-started/your-authtoken 获取 token,然后执行:" + echo " ngrok config add-authtoken <你的token>" + echo "再重新运行: ./run-ngrok.sh" + else + echo "解析 ngrok URL 失败。请手动运行: ngrok http 8000" + echo "把终端里显示的 https 隧道地址写入 .env: CALLBACK_BASE_URL=https://xxxx.ngrok-free.app" + echo "或查看日志: cat $NGROK_LOG" + fi + exit 1 +fi + +echo "ngrok 公网地址: $PUBLIC_URL" + +# 更新 .env:存在 CALLBACK_BASE_URL 则替换,否则追加 +ENV_FILE=".env" +if [ ! -f "$ENV_FILE" ]; then + echo "CALLBACK_BASE_URL=$PUBLIC_URL" >> "$ENV_FILE" + echo "已写入 $ENV_FILE: CALLBACK_BASE_URL=$PUBLIC_URL" +else + if grep -q '^CALLBACK_BASE_URL=' "$ENV_FILE" 2>/dev/null; then + if [[ "$(uname)" == "Darwin" ]]; then + sed -i '' "s|^CALLBACK_BASE_URL=.*|CALLBACK_BASE_URL=$PUBLIC_URL|" "$ENV_FILE" + else + sed -i "s|^CALLBACK_BASE_URL=.*|CALLBACK_BASE_URL=$PUBLIC_URL|" "$ENV_FILE" + fi + echo "已更新 $ENV_FILE: CALLBACK_BASE_URL=$PUBLIC_URL" + else + echo "" >> "$ENV_FILE" + echo "# 消息回调(ngrok 调通用,由 run-ngrok.sh 自动写入)" >> "$ENV_FILE" + echo "CALLBACK_BASE_URL=$PUBLIC_URL" >> "$ENV_FILE" + echo "已追加 $ENV_FILE: CALLBACK_BASE_URL=$PUBLIC_URL" + fi +fi + +echo "" +echo "下一步:" +echo " 1. 若尚未启动后端,请在新终端执行: ./run-dev.sh" +echo " 2. 后端启动时会向 7006 注册 SetCallback,回调地址: $PUBLIC_URL/api/callback/wechat-message" +echo " 3. 访问管理页 http://localhost:3000 登录后,新消息会由 7006 POST 到上述地址" +echo "" +echo "(本终端可保持 ngrok 运行;或先 Ctrl+C 结束 ngrok,再按上述步骤先 run-ngrok.sh 再 run-dev.sh)" diff --git a/run.sh b/run.sh new file mode 100644 index 0000000..c4edf69 --- /dev/null +++ b/run.sh @@ -0,0 +1,2 @@ +sh ./run-ngrok.sh +sh ./run-dev.sh \ No newline at end of file