Commit Graph
11 Commits
Author SHA1 Message Date
GloridustandClaude Opus 4.8 3c9c30fcb4 chore(docker): 00-woc-identity 也用显式 chmod 755(补齐 #17)
PR #17 把脚本权限改为显式 755/644 以摆脱构建机 umask 影响,但它之后才加的
00-woc-identity 钩子仍是 chmod +x,是唯一漏网。该钩子由 root 运行(711 也能跑、
非功能性问题),此处仅为与其余几行统一、彻底做到与 umask 无关。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 01:17:36 +08:00
Ethan ZouandGitHub 35bc9c4435 Merge pull request #17 from mkblbj/codex/fix-script-permissions
Fix Docker script permissions
2026-06-14 01:15:10 +08:00
GloridustandClaude Opus 4.8 38846b6429 feat: 中文输入条 + 文件下载/另存修复 + 卡连接自愈 + CF/MAC/音频
中文输入(彻底改造,弃用脆弱的 VNC IME 拦截)
- 关闭 KasmVNC enable_ime:VNC 直接打字回归纯 keysym,英文/数字正常、不再损坏
- 新增底部「中文输入条」:面板真实 textarea 原生输入法 → POST /type → 容器内 xclip+xdotool
  粘贴进微信,可靠且与浏览器/输入法无关。flex 列布局(nav/画面/输入条三者并列不遮挡),
  牛奶布艺主题配色,可一键收起。

稳定性 / 自愈
- watchdog 新增响应性探测:实例 I/O/服务 stall(进程在、显示在线但读不出 VNC 文件、永远"正在
  连接桌面")时,连续 2 次无响应即自动重启自愈
- 前端 12s 未加载出来 → 「桌面无响应」+ 重新连接/重启,不再无限转圈
- PWA 新 SW 接管即自动重载一次,更新一刷即生效(修"改了仍看旧界面")

文件
- 下载:正确解析 tar、跳过 PAX 扩展头(中文名文件曾因此大小错误/损坏)
- 另存:每次启动确保 /config/Desktop 归 abc,修微信另存"保存失败"

安全 / 伪装
- Host 白名单支持 *.example.com 通配 + X-Forwarded-Host(修 CF 反代域名仍被拒)
- 设备伪装新增真实网卡 MAC(厂商 OUI,替代容器本地管理位 MAC)

音频:扬声器自动连接(首个手势激活)、焦点离开自动断、麦克风(HTTPS)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 23:33:46 +08:00
Gloridust 27fa9c2670 fix: machine mask 2026-06-06 02:15:16 +08:00
GloridustandClaude Opus 4.8 8fd147bccc fix(P0): unique persistent machine-id per instance + manual reset
All instances shared the image-baked machine-id (a67bf09f...), so Tencent
saw every WechatOnCloud account worldwide as one "device" — a textbook
device-farm signal triggering risk control and the forced-logout loop
reported across old and new versions.

- docker/woc-identity.sh: new /custom-cont-init.d/00-woc-identity hook —
  generates a unique machine-id on first start, persists it in the data
  volume (survives restart/upgrade/recreate), writes /etc/machine-id +
  /var/lib/dbus/machine-id, removes /.dockerenv. Existing instances get a
  fresh unique id on first upgraded start (volume lacks the file).
- regenInstanceMachineId + POST /api/admin/instances/:id/regen-machine-id:
  roll a brand-new device id and restart, for accounts re-flagged by risk
  control. Gated on the hook being present (old image → instructs upgrade).
- Admin 实例卡片「安全」弹窗新增「重置设备 ID 并重启」。

Verified: two fresh containers get distinct machine-ids; id persists across
restart; regen (rm persisted file + restart) yields a new persistent id.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 01:41:45 +08:00
mkblbj 75dc45183f Fix Docker script permissions 2026-06-03 13:24:27 +09:00
huglemon 6df7d8c7cf fix: add CJK IME paste fallback 2026-06-03 00:08:47 +08:00
Gloridust 4f582f2c5e fix Chinese input & copyboard & log 2026-06-02 19:46:28 +08:00
Gloridust 49b785ff9f fix autostart 2026-06-01 19:42:35 +08:00
Gloridust 5c5e9c8540 update 2026-05-29 22:00:23 +08:00
Gloridust 81a50313c3 init 2026-05-29 15:26:59 +08:00