makecindy / makecindy/cindy

question: Codex 未登录时 Cindy 自定义供应商报错反馈

Open
#4,304 2 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
TypeScript
Stars
2.7k
Forks
401
Avg merge
21h 48m
Merged PRs (30d)
776

Description

## 问题描述

同事反馈:在 Codex App 未登录的情况下,使用 Cindy 的自定义 HAOPLAY 供应商创建任务时报错;重新登录 Codex 后,Cindy 恢复正常。

这次使用的是自定义供应商配置,不是明确选择 Cindy 的 OpenAI 订阅连接。

## 实际表现

任务创建后很快失败,失败发生在模型供应商实际请求之前。日志中的关键错误是:

```text
thread/start -32600 failed to load configuration: Your access token could not be refreshed because your refresh token was revoked. Please log out and sign in again.
```

同一时间日志还出现了 `token_revoked`,范围标记为 `system-shared`。重新登录 Codex 后再次重试,任务可以继续运行。

## 用户现场操作与触发条件

1. 在 macOS 上准备 Cindy 0.1.73。
2. 用户描述 Codex App 当时未登录;日志同时表明本机存在共享的、刷新令牌已被撤销的 OAuth 状态。
3. 通过 `haoplay-provisioner-1.4.23.cindy` 插件写入自定义 HAOPLAY 供应商配置,并在 Cindy 中选择该供应商。
4. 使用该供应商创建任务,模型为 `gpt-5.6-terra`。
5. 观察任务启动阶段的 `thread/start` 错误。
6. 用户重新登录 Codex App 后,重试任务恢复正常。

注意:“完全没有 OAuth 凭证”和“残留失效 OAuth 凭证”不是同一条件。不能仅按“退出 Codex App”认定一定复现,也没有证据表明用户曾切换 Cindy 的 OpenAI 订阅开关。

## 隔离复现条件

使用 Codex 0.145.0 的独立 app-server 进行历史版本对照,全部使用临时目录、合成凭证及本地服务:

1. 在临时 `CODEX_HOME` 中放入合成 business 账号的 OAuth 状态,云配置缓存为空。
2. 配置自定义 Responses provider,使用 `env_key`,不要求 `requires_openai_auth`;API Key 和模型地址均指向本地测试服务。
3. 本地云配置接口返回 401,刷新接口返回 `refresh_token_invalidated`,模拟已撤销的刷新令牌。
4. 初始化 app-server 后发送 `thread/start`,观察到同类 `-32600` 错误;此时自定义模型服务尚未收到请求。
5. 对照使用另一个没有 OAuth 凭证的临时目录,自定义 API Key 任务可正常启动。

该对照说明残留失效登录状态与完全未登录的行为不同;并不意味着所有账号、所有配置都必现。0.145.0 仅是此次隔离实验的版本,不能据此认定用户安装包或当前 Desktop 实际使用该版本。

## 时间线(脱敏日志)

- 14:58:18:Cindy 启动,启动日志记录将 `auth.json` 链接到系统 Codex 登录状态(shared、symlink)。
- 15:00:22:创建使用 `cprov-haoplay` 的任务。
- 15:00:24:报告 `token_revoked`、`system-shared`,随后出现 `LAZY_CREATE_FAILED` 和上述 `thread/start -32600` 错误。
- 15:02:28:同一任务重试成功,随后出现共享凭证恢复记录。这与用户描述的重新登录后恢复吻合,但日志本身没有记录用户完整的登录操作。

## 环境

- Cindy:0.1.73
- 平台:macOS
- 供应商:自定义 HAOPLAY
- 模型:`gpt-5.6-terra`
- 原始反馈日志日期:2026-09-09

## 期望行为

自定义供应商应使用其自身配置的 API Key 完成任务。Codex App 的登录状态失效或未登录时,不应导致自定义供应商在启动阶段失败;如果确实需要登录,应明确提示实际需要登录的功能。

## 日志与隐私

正文仅摘录错误与诊断时间线,未在此 issue 上传原始日志、真实 token、账号或授权文件。

Contributor guide

Open the contributing guide

Research direction

Trace the app-server `thread/start` entry point and the shared `auth.json` and token-refresh handling described in the logs. Reproduce the isolated `CODEX_HOME` setup with a revoked refresh token, a custom `env_key` provider, and the local test service; done means the custom provider starts without valid Codex OAuth and login is required only for features that need it.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
authentication, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.