codex-to-im 1.0.20 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -163,12 +163,32 @@ codex-to-im url
163
163
  codex-to-im status
164
164
  ```
165
165
 
166
+ 如果只想启动后台 bridge,不打开 Web 工作台:
167
+
168
+ ```powershell
169
+ codex-to-im start
170
+ ```
171
+
166
172
  停止后台 UI 和 bridge:
167
173
 
168
174
  ```powershell
169
175
  codex-to-im stop
170
176
  ```
171
177
 
178
+ 可选:启用 Bridge 开机自启动(只自动启动 bridge,不自动打开 UI):
179
+
180
+ ```powershell
181
+ codex-to-im autostart status
182
+ codex-to-im autostart install
183
+ codex-to-im autostart uninstall
184
+ ```
185
+
186
+ 请先以**管理员身份**打开 PowerShell / 终端,再执行上面的安装或卸载命令。
187
+
188
+ 启用时会要求输入当前 Windows 登录密码,用于创建“开机自动启动 Bridge”的任务计划程序任务。
189
+
190
+ Web 工作台现在只展示自动启动状态;真正的启用和关闭请使用上面的管理员命令。
191
+
172
192
  ## 6. 在目标机上的首次配置
173
193
 
174
194
  进入本地工作台后,按这个顺序做:
@@ -189,22 +209,22 @@ codex-to-im stop
189
209
  - 思考级别:`xhigh`
190
210
  6. 如果目标目录不是 Codex 已信任的 Git 仓库,可勾选“允许在未信任 Git 目录运行 Codex”
191
211
  7. 如果要从局域网设备访问配置页,可勾选“允许局域网访问 Web 控制台”
192
- 8. 勾选要启用的通道
193
- - 飞书:勾选 `启用飞书`
194
- - 微信:勾选 `启用微信`
195
- 9. 飞书场景下填写:
212
+ 8. 打开“通道”页,新增一个通道实例
213
+ - 先选择 Provider:`飞书` 或 `微信`
214
+ - 再为该实例填写一个别名,例如:`飞书主号`、`飞书备份号`、`微信工作号`
215
+ 9. 飞书实例填写:
196
216
  - `App ID`
197
217
  - `App Secret`
198
- - `Domain`
218
+ - `站点`:选择 `Feishu` 或 `Lark`
199
219
  - `Allowed Users` 可选
200
220
  - `启用飞书流式响应卡片` 可选
201
- 10. 微信场景下点击:
221
+ 10. 微信实例点击:
202
222
  - `开始微信扫码`
203
- 11. 点击测试
204
- - 飞书:`测试飞书凭据`
223
+ 11. 点击当前实例的测试按钮
224
+ - 飞书实例:`测试当前通道`
205
225
  - Codex:`测试 Codex`
206
- 13. 点击:
207
- - `启动 Bridge`
226
+ 12. 点击:
227
+ - `启动 Bridge`
208
228
 
209
229
  说明:
210
230
 
@@ -220,10 +240,12 @@ codex-to-im stop
220
240
  - IM 里发送 `/history` 默认返回整理后的摘要;发送 `/history raw` 才会查看最近 N 条原始消息。
221
241
  - IM 里发送 `/reasoning high` 或 `/reasoning 4` 之类命令,可以只对当前会话覆盖思考级别。
222
242
  - IM 里发送 `/thread 0` 会进入临时草稿线程,适合短讨论或临时想法。
223
- - “通道”页里可以分别控制“反馈使用 Markdown”:
224
- - 飞书默认开启
225
- - 微信默认关闭
226
- - 影响通过 bridge 发送到通道的文本反馈,包括普通回复、共享桌面线程镜像以及 `/h`、`/status`、`/threads` 这类系统反馈
243
+ - “通道”页现在管理的是多个通道实例,而不是固定的一组飞书/微信配置。
244
+ - 每个实例都可以有自己的别名;别名只用于区分不同聊天入口,不会改变 Codex 会话语义。
245
+ - “反馈使用 Markdown”也是实例级配置:
246
+ - 飞书实例默认开启
247
+ - 微信实例默认关闭
248
+ - 影响通过 bridge 发送到该实例的文本反馈,包括普通回复、共享桌面线程镜像以及 `/h`、`/status`、`/threads` 这类系统反馈
227
249
  - IM 里也支持一组短命令别名:
228
250
  - `/` / `/status` 当前会话
229
251
  - `/h` / `/help` 帮助
@@ -249,7 +271,8 @@ codex-to-im stop
249
271
 
250
272
  其中主要文件有:
251
273
 
252
- - `config.env`
274
+ - `config.v2.json`
275
+ - `config.env`(兼容性快照,不再完整表示多实例通道配置)
253
276
  - `logs\bridge.log`
254
277
  - `logs\ui-server.out.log`
255
278
  - `runtime\status.json`
@@ -273,7 +296,7 @@ codex-to-im stop
273
296
 
274
297
  - App ID
275
298
  - App Secret
276
- - Domain
299
+ - 站点(Feishu / Lark)
277
300
  - Allowed Users(如需)
278
301
 
279
302
  不需要复制源码里的任何配置文件。
@@ -296,7 +319,8 @@ codex-to-im stop
296
319
  当前版本有几个需要提前说明的点:
297
320
 
298
321
  - 默认不是 Windows Service,而是本地 detached 进程
299
- - 机器重启后,不会自动恢复,需要再次运行 `codex-to-im`
322
+ - 如果**未启用**开机自启动,机器重启后需要再次运行 `codex-to-im`
323
+ - 如果启用了 `codex-to-im autostart install`,开机只会自动拉起 bridge,UI 仍需按需运行 `codex-to-im`
300
324
  - 当前主路径是“本地工作台 + IM 配置 + Bridge 启动”
301
325
 
302
326
  ## 9.1 Windows 上的更新方式
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-to-im",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "Installable Codex-to-IM bridge with local setup UI and background service",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/zhangle1987/codex-to-im#readme",
package/scripts/doctor.sh CHANGED
@@ -314,11 +314,18 @@ if [ -f "$CONFIG_FILE" ]; then
314
314
  fi
315
315
 
316
316
  # --- Feishu ---
317
- if echo "$CTI_CHANNELS" | grep -q feishu; then
318
- FS_APP_ID=$(get_config CTI_FEISHU_APP_ID)
319
- FS_SECRET=$(get_config CTI_FEISHU_APP_SECRET)
320
- FS_DOMAIN=$(get_config CTI_FEISHU_DOMAIN)
321
- FS_DOMAIN="${FS_DOMAIN:-https://open.feishu.cn}"
317
+ if echo "$CTI_CHANNELS" | grep -q feishu; then
318
+ FS_APP_ID=$(get_config CTI_FEISHU_APP_ID)
319
+ FS_SECRET=$(get_config CTI_FEISHU_APP_SECRET)
320
+ FS_SITE=$(get_config CTI_FEISHU_SITE)
321
+ case "$FS_SITE" in
322
+ lark|*open.larksuite.com*)
323
+ FS_DOMAIN="https://open.larksuite.com"
324
+ ;;
325
+ *)
326
+ FS_DOMAIN="https://open.feishu.cn"
327
+ ;;
328
+ esac
322
329
  if [ -n "$FS_APP_ID" ] && [ -n "$FS_SECRET" ]; then
323
330
  FEISHU_RESULT=$(curl -s --max-time 5 -X POST "${FS_DOMAIN}/open-apis/auth/v3/tenant_access_token/internal" \
324
331
  -H "Content-Type: application/json" \