13 Commits
Author SHA1 Message Date
GloridustandClaude Opus 4.8 eabedde26b feat(v1.2.0): 改为「微信 + Chromium 浏览器」,Telegram/自定义暂缓
Telegram 仅 x86_64,暂不做(代码留休眠)。聚焦多架构通用的 Chromium:
- Dockerfile apt 装 chromium(Debian Bookworm,amd64/arm64 均有;本地 arm64 实测装成、
  chromium --version 正常,镜像 +~0.5GB)。Chromium 随镜像就绪,autostart 直接以
  --no-sandbox 软件渲染拉起,无需「下载安装」。
- 新建实例选择器:微信(默认) + 浏览器(Chromium) 可用;自定义标「即将支持」禁用;去掉 Telegram。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 17:46:09 +08:00
GloridustandClaude Opus 4.8 b7fd778ab1 feat(v1.2.0): 多应用平台——创建实例时选 微信/Telegram(+Chromium/自定义占位)
镜像层(向后兼容,微信路径零改动):
- app-defs.sh:按 appType 给出 APP_BIN/APP_LAUNCH/APP_NAME(缺省回退微信)。
- app-ctl.sh:通用安装/状态分发;wechat 委托回 wechat-ctl.sh;telegram 下载官方 portable tar.xz。
- autostart:读 /config/.woc-app 选择启动哪个应用,读不到回退微信(老实例零改动)。
- 02-woc-app 钩子:把容器环境 WOC_APP_TYPE 落到 /config/.woc-app(缺则不写→回退微信)。
- Dockerfile:加 xz-utils(telegram 解压)+ COPY 新脚本。

后端:envList 透传 WOC_APP_TYPE(+自定义启动命令);triggerWechat/wechatStatus 改走
app-ctl.sh <appType>(微信行为不变);创建实例路由接受 appType。

前端:新建实例对话框加「应用类型」选择器(微信默认 / Telegram;Chromium、自定义标记"即将支持"禁用)。

本轮 Telegram(x86_64) 端到端可用;Chromium(待 apt 烤镜像) 与 自定义(待上传流) 下一轮。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 17:38:15 +08:00
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