Skip to content

Releases: nullinject/cpr-excel-companion

Excel Companion 1.0.0-rc.9 — BPS 受众的 SIWC 授权

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 08:01

1.0.0-rc.9 · 2026-10-23

  • SIWC 的 resource 改为 https://bps.openai.com:BPS 的访问执行按 token 受众匹配,
    之前用 https://api.openai.com/v1 签发,BPS 直接返回 no_matching_rule。
  • 改用 Excel 加载项同款授权(SIWC):授权端点改为 auth.openai.com/api/accounts/authorize,
    动态客户端 + PKCE,scope 含 chatgpt.tokens.use.direct,resource 为 https://api.openai.com/v1。
    上一版误用 Codex OAuth(app_EMoam…),签发的 token 不被 BPS 接受。
  • 旧版本保存的 Codex 会话缺少 direct 权限,升级后自动视为未授权,需要在开关上重新授权一次。

Excel Companion 1.0.0-rc.8 — SIWC 授权

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 07:20

1.0.0-rc.8 · 2026-10-23

  • 改用 Excel 加载项同款授权(SIWC):授权端点改为 auth.openai.com/api/accounts/authorize,
    动态客户端 + PKCE,scope 含 chatgpt.tokens.use.direct,resource 为 https://api.openai.com/v1。
    上一版误用 Codex OAuth(app_EMoam…),签发的 token 不被 BPS 接受。
  • 旧版本保存的 Codex 会话缺少 direct 权限,升级后自动视为未授权,需要在开关上重新授权一次。
  • 授权链接改为可见可复制:插件页在 sandbox iframe 中运行,window.open 会被拦截,
    现在直接显示授权地址并提供「复制」按钮,复制后在浏览器新标签页打开。
  • 授权面板拆成两步提示(复制链接 → 粘贴回调地址),不再声称已自动打开页面。
  • 账户级 BPS 授权开关:账户信息列表每行新增一个开关,开启后给出 ChatGPT 授权链接(Codex 官方 OAuth,PKCE),

Excel Companion 1.0.0-rc.7 — 授权链接可见可复制

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 07:06

1.0.0-rc.7 · 2026-10-23

  • 授权链接改为可见可复制:插件页在 sandbox iframe 中运行,window.open 会被拦截,
    现在直接显示授权地址并提供「复制」按钮,复制后在浏览器新标签页打开。
  • 授权面板拆成两步提示(复制链接 → 粘贴回调地址),不再声称已自动打开页面。
  • 账户级 BPS 授权开关:账户信息列表每行新增一个开关,开启后给出 ChatGPT 授权链接(Codex 官方 OAuth,PKCE),
    把回调地址粘回页面即完成绑定;关闭即解除。授权按 CPR 账户 ID 隔离,保存到策略文件同目录的 account-auth.json(0600)。
  • 账户信息改为显示邮箱(缺失时退回名称,最后才是截断的账户 ID),不再直接暴露 acct_… 主键。
  • 已授权账户的 Excel 请求改用该会话的 Authorization 与账号身份头覆盖宿主注入值;未授权账户行为不变。

Excel Companion 1.0.0-rc.6 — BPS 授权开关

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 06:58

1.0.0-rc.6 · 2026-10-23

  • 账户级 BPS 授权开关:账户信息列表每行新增一个开关,开启后打开 ChatGPT 授权页(Codex 官方 OAuth,PKCE),
    把回调地址粘回页面即完成绑定;关闭即解除。授权按 CPR 账户 ID 隔离,保存到策略文件同目录的 account-auth.json(0600)。
  • 账户信息改为显示邮箱(缺失时退回名称,最后才是截断的账户 ID),不再直接暴露 acct_… 主键。
  • 已授权账户的 Excel 请求改用该会话的 Authorization 与账号身份头覆盖宿主注入值;未授权账户行为不变。
  • 新增管理接口:GET api/auth/status、POST api/auth/start、POST api/auth/complete、POST api/auth/logout。
  • 授权失败、state 过期与文件不可写均返回明确错误,不静默回退到宿主凭据。
  • 撤销 rc.4 的按钮式交互(改用开关);rc.4、rc.5 均已从 Releases 撤回(rc.5 误打包了旧前端产物)。

Excel Companion 1.0.0-rc.3 — CPR 3.29.7 SDK 同步

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 05:42

1.0.0-rc.3 · 2026-10-23

同步到 CPR 插件 SDK v3.29.7(提交 78bc57c5cf24b01a38e985cdd739bb4ae89ce11f)。此版本是发布候选,不是稳定 1.0。

  • 清单升级:upstream_adapter v1 → v4,management v1 → v2,observer v1 → v2;进程协议 v5,宿主范围收紧为 >=3.29.7, <4.0.0。
  • 适配 UpstreamAdapterRequest.fast_mode 三态,替换旧的 disable_fast 布尔语义;宿主冻结的 Fast 策略仍由宿主在 attempt 前应用,插件不二次改写。
  • 请求与响应头改用 (String, Vec<u8>) 字节形式,保留重复头与非 UTF-8 值;附件上传与受管 HTTP/WebSocket 出站同步调整。
  • service_tier 从事件顶层移入 ResponseObservation,同时上报请求 ID 与上游回显模型;原始观测与标准事实分离传递。
  • WebSocket 握手结果携带 http_version 与拒绝时的 trailers,匹配 v4 升级枚举。
  • 工具链固定 Rust 1.99.1,Atomic::fetch_update 改用 try_update;SDK 内置测试随上游同步。
  • 兼容性测试改为覆盖 3.29.7 起的宿主序列,并断言三项能力版本。

升级说明:宿主须为 v3.29.7 或更高;v3.18.x 宿主请继续使用 1.0.0-rc.1。早先按 3.18.2 SDK 构建、版本号同为 1.0.0-rc.2 的制品与本版内容不同,宿主禁止同版本替换,因此本版改用 1.0.0-rc.3。切换插件代次会使已有续接材料失效,客户端需重发完整历史。

Excel Companion 1.0.0-rc.11 — 加载项设备授权

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 08:20

1.0.0-rc.11 · 2026-10-23

  • 改用 Excel 加载项真正的设备授权:GET https://auth.openai.com/api/accounts/deviceauth/authorize?client_id=app_fnr0pYvVwwFDocDumLG3H2Bp,
    浏览器登录后把页面上的 user_code 粘回,插件用 POST /api/accounts/deviceauth/token {device_auth_id, user_code} 换取 token。
  • 授权链接与 device_auth_id 由服务端签发,redirect 固定为 auth.openai.com/basispoints/deviceauth/callback,audience 为 https://api.openai.com/v1。
  • 会话标记 source=excel-addin,直接用于 Excel 通道。
  • 还原 SIWC 的 resource 为 https://api.openai.com/v1:https://bps.openai.com 被授权端判定为 invalid_authorize_request。
  • 会话新增 source 字段;excel-addin 来源(从 Excel 加载项缓存导入)无需 direct 权限即可用于 Excel 通道。
  • SIWC 的 resource 改为 https://bps.openai.com:BPS 的访问执行按 token 受众匹配,

Excel Companion 1.0.0-rc.10

Pre-release

Choose a tag to compare

@BoBppy BoBppy released this 23 Oct 08:16

1.0.0-rc.10 · 2026-10-23

  • 还原 SIWC 的 resource 为 https://api.openai.com/v1:https://bps.openai.com 被授权端判定为 invalid_authorize_request。
  • 会话新增 source 字段;excel-addin 来源(从 Excel 加载项缓存导入)无需 direct 权限即可用于 Excel 通道。
  • SIWC 的 resource 改为 https://bps.openai.com:BPS 的访问执行按 token 受众匹配,
    之前用 https://api.openai.com/v1 签发,BPS 直接返回 no_matching_rule。
  • 改用 Excel 加载项同款授权(SIWC):授权端点改为 auth.openai.com/api/accounts/authorize,

v0.10.1 — Integrated CPR managed upstream plugin

Choose a tag to compare

@nullinject nullinject released this 30 Sep 04:29

Excel Companion now runs entirely inside the CPR plugin process. The standalone bridge service, shared HMAC secret, proxy mapping sync and public bridge route are no longer required.

Changes:

  • Uses CPR 3.18.2 managed upstream adapters for account authentication, proxies, HTTP/SSE, WebSocket continuations and metering.
  • Moves routing policy, admission queues, monitoring and management operations into the plugin.
  • Preserves attachment uploads, function/custom tool conversion, Excel replay and zero-usage prewarm.
  • Handles native WebSocket metadata before response creation and retains usage facts on partial failures.
  • Restores native account model discovery by removing the bridge base URL dependency.

Migration from 0.9.0:

  1. Copy the old bridge policy to a private file writable by the CPR user. Configure policyFile and showPage; remove secretFile, isolationScope and bridgeControlUrl.
  2. Replace the attempt binding with nullinject.excel-companion.upstream-adapter, stage upstream, failure policy reject, provider openai. Preserve the original Key/group/model scope and the request-completed observer binding.
  3. Restore CPR openai.api.base_url to https://chatgpt.com/backend-api.
  4. After verification, remove the bridge service, bridge proxy route and account-map sync timer. Preserve backups for rollback.

Requires CPR >=3.18.2 and <3.19.0. Plugin upgrades invalidate existing continuation state; clients must resend full history. Native HTTP continuation remains unsupported; native WebSocket continuation uses the host-owned connection. See README for limits and rollback guidance.

Validation: 185 Rust tests, plugin Clippy, frontend tests/lint/typecheck/build, cargo audit and production dependency audit passed. After removing the production bridge, verified native and Excel SSE, zero-usage prewarm, both WebSocket continuation paths, function tool/result exchange, inline file upload, host usage observations, and model refresh for both enabled accounts (10 models each).

Assets include the Linux x86_64 plugin, source snapshot and SHA-256 checksums. No standalone bridge binary is needed.

Excel Companion 0.9.0 — 适配 CPR 3.18.2

Choose a tag to compare

@nullinject nullinject released this 30 Sep 03:40

修复 CPR 3.18.2 升级后 Excel Companion 无法启用的问题,并说明账号模型查询 502/503 的部署修复。

兼容性

  • 宿主要求:CPR >=3.18.2、<3.19.0。不适用于旧版 3.16 / 3.17 宿主。
  • 使用 CPR v3.18.2 官方 SDK,固定提交 e30aad475560b94db2d999e2251d180e45d52671。
  • 迁移至清单 v2、进程协议 v2、中间件 v3,以及统一的 observer 完成事件。
  • 保留宿主提供的请求终态、Key 归属、用量和耗时,将 usage.failure 映射到现有桥接监控字段。

升级步骤

  1. 备份插件配置、桥接策略、Compose 和反向代理配置。
  2. 通过 CPR 正式插件安装接口安装附件中的 Linux x86_64 插件包。
  3. 保留原 attempt 绑定范围;将原 request_lifecycle / usage 观察绑定迁移为 nullinject.excel-companion.observer,设置 stage=observation、failurePolicy=observe、event=request_completed。保留所需请求范围,避免重复订阅。
  4. 桥接使用独立 Compose 网络,移除 network_mode: service:codex-proxy-rs。例如将桥接端口发布为 127.0.0.1:8093:8089,同步调整反向代理回源地址,插件控制地址设置为 http://excel-companion-bridge:8089/_control。
  5. 核对部署镜像与实际宿主版本一致,避免容器重建后意外降级。保留原账户代理、路由规则和指向桥接的 openai.api.base_url。

共享网络命名空间部署中,CPR 更新重启可能使桥接停留在旧命名空间,导致模型目录和请求入口返回 502,账号刷新表现为 503。安装插件本身不会自动修改 Compose 或反向代理,需要同时完成上述部署调整。

验证

  • 182 项 Rust 测试通过,插件 Clippy 全目标检查通过。
  • 前端 2 项测试、ESLint、TypeScript 和 Vite 构建通过。
  • RustSec 审计:0 项已知漏洞、无警告。
  • CPR 3.18.2 实例验证:插件正常运行;两个启用账号均成功刷新模型,各返回 10 项。
  • 原生请求、Excel 请求以及 Excel WebSocket 首轮和续接均完成,监控记录保留成功终态、通道、tokens 和耗时。

附件与范围

  • nullinject.excel-companion-0.9.0-x86_64-unknown-linux-gnu.tar.gz:CPR 可安装插件包。
  • 同名 .sha256 与 checksums.txt:SHA-256 校验文件。
  • cpr-excel-companion-0.9.0-source.tar.gz:与此标签对应的源码快照。

插件包 SHA-256:3361dd2d8f337bad39ed1dd34694440f9e60cc4026060bf210ffbf84f4d805f2。

本版本保留现有独立桥接,不包含新的桥接二进制,也未实现完整的 upstream_adapter 迁移。附件、工具转换和历史缓存仍由现有桥接负责。此处验证不代表所有附件、工具或高负载场景均已在线复测。

源码提交:ff442b65ad85e7730fd8f8679da0ecf44fef53ea。

Excel Companion 0.8.9

Choose a tag to compare

@BoBppy BoBppy released this 29 Sep 04:21

0.8.9 · 2026-09-29

  • 撤销 0bd540f 引入的提示词改写和桥接策略重试循环。
  • 新增默认关闭的 policy_errors_as_server_error:仅将 Excel 通道的明确 policy 错误映射为普通 server_error,交由调用方现有机制决定重试;原始诊断日志、usage 与部分输出保留,桥接不额外发请求。
  • 升级须同时更新桥接与插件,并通过宿主正式安装/版本切换接口部署,不直接写插件数据库记录;配置默认关闭,不自动更改账户、模型或现有开关。保留现有更新来源绑定,GitHub 来源使用同一仓库的正式 Release。

验证:工作区测试、前端构建和 Linux x86_64 release 构建通过;CPR 3.16.0 安装包校验通过。开关默认关闭,桥接不自行重放请求。部署须同时替换本版本源码构建的桥接二进制。