Fetching metadata from the HF Docker repository...
Oct 16 13 days ago 07:57 guanbi uvicorn access log (xu yong --no-access-log) xiaolongmr
shang yi ci zhi shi shan diao le --access-log, dan uvicorn de access log
mo ren jiu shi kai de, shan diao deng yu mei gai: xian shang reng ran
285 KB/s / 1800 hang mei miao, ri zhi li mian zhao yang you GET/POST xing.
zheng que zuo fa shi xie ming --no-access-log。
⚠️ main.py mo wei de uvicorn.run(access_log=False) zai xian shang bu hui zhi xing
(CLI qi dong), suo yi zhi neng gai Dockerfile。 07:53 降低线上轮询压力:后台标签页暂停轮询、关闭 access log xiaolongmr
线上容器(cpu-basic,2 共享 vCPU)实测 1841 req/s,超出承载数倍,
导致连返回静态 JS 都要 55 秒。日志拆解后,热点全是自家前端的全局轮询接口:
/auth/session 375/s
/api/chat-room/unread 359/s
/api/chat-room/direct-conversations 350/s
/api/presence/ping 334/s
/api/announcements 106/s
四项改动(均不改变任何功能,用户感知不到差别):
1) Dockerfile 去掉 --access-log
实测 access log 占日志体积一半(约 285 KB/s、1800 行/秒),容器只有
2 核,每条请求都多一次格式化 + write 系统调用。注意 main.py 末尾的
uvicorn.run(access_log=False) 在线上不会执行(CLI 启动),所以必须改这里。
2) use-chat-room-unread:只在页面可见时轮询
这个 hook 挂在全局导航,每个标签页都在跑,含切到后台/被遗忘的标签页。
后台没人看角标,请求却照打。切回页面时立刻补拉一次。
3) announcements-popover:同样只在可见时轮询
该组件在顶栏挂了 2 份(移动端/桌面端各一),每个标签页跑两份。
4) use-auth-guard:权限兜底同步 5s → 30s
原本是 force 校验(绕过本地缓存直打服务端),是全站最重接口、占请求 20%。
权限和登录态不会 5 秒一变;focus / visibilitychange 仍会立刻强制校验一次,
真实感知比 30 秒更灵敏。
presence 心跳保持后台上报(约 25s)不变 —— 那是「在线人数」要统计后台标签页的
有意设计,属功能行为,未改动。
真机验证(artifacts/_visibility_gate_test.py)10/10 通过:
可见时 unread / direct-conversations… Oct 15 14 days ago 10:54 生图求解增加进程内 V8 兜底,单容器部署无需外部 solver xiaolongmr
上游 chatgpt.com 只接受在真实页面上下文里算出的 Turnstile,缺失或质量不够时
f/conversation 返回伪装成 404 的 {"detail":"Model not found"}。此前唯一可行路线是
外部 sentinel_solver 服务(常驻无头 Chromium),但 HF Space 等单容器环境跑不了
第二个容器,导致线上生图必然 404。
本次移植 py-mini-racer 路线,在进程内嵌 V8 直接跑上游真实 sentinel SDK:
- 新增 utils/sentinel_v8.py:加载 assets/sentinel/{sdk.js,shims.js},
按指纹缓存 V8 上下文,全局锁保证不可跨线程并发
- 新增 assets/sentinel/{sdk.js,shims.js}:上游 SDK 与浏览器环境 shim,
sdk.js 构建时打补丁暴露内部求解函数(__reg / __solve_dx)
- services/sentinel_solver_client.py:求解优先级改为
外部服务 → 进程内 V8 → 旧手写 VM;solver_user_agent() 在外部服务
探测不到 UA 时回落内置 Chromium UA,避免与 V8 shim 环境不一致
- pyproject.toml:新增 mini-racer>=0.14.1(导入名仍是 py_mini_racer)
- Dockerfile:COPY assets 进镜像
实测:solver_url 置空时 V8 自动接管,算出 1076 字符 turnstile token,
与外部浏览器路线的 1200 字符量级一致;两条路线在账号层面均返回 404,
说明该 404 与被测账号本身相关,与求解方式无关。
已知边界:V8 目前只覆盖 Turnstile(dx),so 仍需外部求解服务。 Oct 8 21 days ago 06:56 fix: harden HF persistence and runtime workflows xiaolongmr
Aug 26 14:27 Merge upstream v1.6.0 feature baseline xiaolongmr
Jun 10 19:13 Improve frontend loading performance xiaolongmr
May 28 16:39 fix: remove required config.json copy in docker build xiaolongmr
14:00 copy(Dockerfile): 将 CHANGELOG.md 文件复制到 Docker 镜像中 HouYunFei
- 在 Docker 构建过程中添加 CHANGELOG.md 文件到 /app 目录
- 保持与 VERSION 文件相同的复制逻辑和位置 May 26 16:25 init: CHATSAM public version with data persistence and keep-alive May 3 11:48 feat: add cf r2 backup Jimmy
Apr 23 17:24 feat(storage): add pluggable storage backend system with multiple implementations QykXczj
- Add storage abstraction layer with base interface and factory pattern
- Implement JSON storage backend (default, file-based)
- Implement SQLite storage backend for local database persistence
- Implement PostgreSQL storage backend for external database support
- Implement Git storage backend for version-controlled account storage
- Add storage migration script to move data between backends
- Add storage health check endpoint at /api/storage/info
- Update Docker image to include git, libpq-dev, and gcc dependencies
- Add environment variable configuration for storage backend selection
- Update docker-compose.yml with comprehensive storage backend examples
- Add SQLAlchemy, psycopg2-binary, and GitPython dependencies
- Update .gitignore to exclude .env files, database files, and git cache
- Add test script for storage backend validation
- Update README with storage backend configuration documentation 16:15 Include api and utils in Docker image HouYunFei +1: Codex
Co-Authored-By: Codex <noreply@openai.com> Apr 21 21:40 refactor(config): 重构配置加载逻辑并移除示例配置文件依赖 cxk
- 移除 shutil 模块导入和 CONFIG_EXAMPLE_FILE 常量
- 删除自动从示例文件复制配置的功能
- 修改配置加载优先级为环境变量 > config.json 文件
- 更新刷新账户间隔默认值从 5 分钟改为 60 分钟
- 调整 Dockerfile 中复制的配置文件为 config.json
- 更新 README.md 文档说明环境变量覆盖方式
- 修改测试用例适配新的配置加载逻辑 14:23 Handle missing Docker config file mounts 13:52 Add arm64 Docker image build support Apr 19 15:46 init:初始化项目 HouYunFei