tellrun 1.2.4 → 1.3.0

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.
@@ -87,12 +87,22 @@ export function openStore(path = join(appDirectory, "state.json")) {
87
87
  attempts: 0,
88
88
  retryAt: Date.now(),
89
89
  ...delivery,
90
- ...(delivery.interactionId && !delivery.messageId
90
+ ...((delivery.interactionId || delivery.permissionMenuId) && !delivery.messageId
91
91
  ? { promptEnd: index === parts.length - 1 }
92
92
  : {}),
93
93
  });
94
94
  }
95
95
  }
96
+ /** 新建、使用或失效菜单时清理按钮,发送途中的旧消息由回执继续清理。 */
97
+ function closePermissionMenu(channelId) {
98
+ const channel = state.channels.find((item) => item.id === channelId);
99
+ if (!channel?.permissionMenu)
100
+ return;
101
+ state.outbox = state.outbox.filter((reply) => reply.permissionMenuId !== channel.permissionMenu?.id);
102
+ for (const message of channel.permissionMenu.messages)
103
+ enqueueReply(channel.id, message.text, { messageId: message.messageId });
104
+ channel.permissionMenu = null;
105
+ }
96
106
  /** 关闭请求或单个已答问题;撤回未发送提示,已发送消息保留正文并移除按钮。 */
97
107
  function closeInteraction(id, reason, questionIndex) {
98
108
  const interaction = state.interactions.find((item) => item.id === id);
@@ -177,7 +187,9 @@ export function openStore(path = join(appDirectory, "state.json")) {
177
187
  channel.chatId === message.channel.chatId);
178
188
  if (existing &&
179
189
  state.inboundUpdates.some((item) => item.channelId === existing.id && item.eventId === message.eventId))
180
- return message.content.type === "interaction" ? "Already handled." : undefined;
190
+ return ["interaction", "permissions"].includes(message.content.type)
191
+ ? "Already handled."
192
+ : undefined;
181
193
  return update(() => {
182
194
  let channel = state.channels.find((channel) => channel.id === existing?.id);
183
195
  if (!channel) {
@@ -187,6 +199,8 @@ export function openStore(path = join(appDirectory, "state.json")) {
187
199
  cwd: null,
188
200
  sessionId: null,
189
201
  paused: false,
202
+ permissionMode: null,
203
+ permissionMenu: null,
190
204
  };
191
205
  state.channels.push(channel);
192
206
  }
@@ -196,7 +210,7 @@ export function openStore(path = join(appDirectory, "state.json")) {
196
210
  eventId: message.eventId,
197
211
  });
198
212
  const reply = handle(channel);
199
- if (message.content.type !== "interaction")
213
+ if (!["interaction", "permissions"].includes(message.content.type))
200
214
  enqueueReply(channel.id, reply);
201
215
  return reply;
202
216
  });
@@ -218,9 +232,51 @@ export function openStore(path = join(appDirectory, "state.json")) {
218
232
  setSession(channelId, cwd) {
219
233
  update(() => {
220
234
  const channel = state.channels.find((channel) => channel.id === channelId);
221
- if (channel)
235
+ if (channel) {
236
+ closePermissionMenu(channelId);
237
+ if (cwd !== channel.cwd)
238
+ channel.permissionMode = null;
222
239
  Object.assign(channel, { cwd, sessionId: null });
240
+ }
241
+ });
242
+ },
243
+ /** 菜单只依赖通用模式信息;不启动 Agent 或调用模型。 */
244
+ openPermissions(channelId, modes) {
245
+ update(() => {
246
+ const channel = state.channels.find((item) => item.id === channelId);
247
+ if (!channel)
248
+ return;
249
+ closePermissionMenu(channelId);
250
+ channel.permissionMenu = {
251
+ id: crypto.randomUUID(),
252
+ expiresAt: Date.now() + 600_000,
253
+ options: modes.map(({ id, label }) => ({ id, label })),
254
+ messages: [],
255
+ };
256
+ enqueueReply(channelId, `Permissions\nCurrent selection: ${modes.find((mode) => mode.id === channel.permissionMode)?.label ?? channel.permissionMode ?? modes[0]?.label ?? "Not set"}\n\n${modes.map((mode, index) => `${index + 1}. ${mode.label}`).join("\n")}\n\nApplies to future tasks. The current task keeps its permissions. Modes are subject to local configuration.`, { permissionMenuId: channel.permissionMenu.id });
257
+ });
258
+ },
259
+ /** 校验聊天、原消息、菜单和有效期;只保存模式,不改变已提交任务的快照。 */
260
+ choosePermissions(channelId, content) {
261
+ const channel = state.channels.find((item) => item.id === channelId);
262
+ const menu = channel?.permissionMenu;
263
+ if (!menu ||
264
+ menu.id !== content.id ||
265
+ menu.expiresAt <= Date.now() ||
266
+ !menu.messages.some((message) => message.messageId === content.messageId))
267
+ return "Menu expired. Open /permissions again.";
268
+ const option = menu.options[content.optionIndex];
269
+ if (!option)
270
+ return "Invalid permission option.";
271
+ update(() => {
272
+ const current = state.channels.find((item) => item.id === channelId);
273
+ if (!current)
274
+ return;
275
+ current.permissionMode = option.id;
276
+ closePermissionMenu(channelId);
277
+ enqueueReply(channelId, `Selected: ${option.label}. Applies to the next task.`);
223
278
  });
279
+ return "Permission mode saved.";
224
280
  },
225
281
  /** 暂停状态跨重启保留,恢复须由用户明确触发。 */
226
282
  setPaused(channelId, paused) {
@@ -274,7 +330,9 @@ export function openStore(path = join(appDirectory, "state.json")) {
274
330
  channelId: channel.id,
275
331
  cwd: channel.cwd,
276
332
  sessionId: channel.sessionId,
333
+ runId: null,
277
334
  prompt,
335
+ permissionMode: channel.permissionMode,
278
336
  inputs: [],
279
337
  status: "queued",
280
338
  result: null,
@@ -321,20 +379,23 @@ export function openStore(path = join(appDirectory, "state.json")) {
321
379
  enqueueReply(task.channelId, `Task #${id}, message ${index + 1}: ${error}`);
322
380
  });
323
381
  },
324
- /** 先保存派发状态再调用 Agent;空闲时仅查询,不反复写文件。 */
382
+ /** 领取新任务或已保存轮次;恢复只连接后台,不能重发原始输入。 */
325
383
  claimTask(source) {
326
- const index = state.tasks.findIndex((task) => task.status === "queued");
384
+ const index = state.tasks.findIndex((task) => activeTaskStatuses.has(task.status));
327
385
  const task = state.tasks[index];
328
386
  const channel = state.channels.find((channel) => channel.id === task?.channelId);
329
387
  if (!task ||
330
388
  !channel ||
331
- channel.paused ||
389
+ (channel.paused && !task.runId) ||
332
390
  channel.platform !== source.platform ||
333
391
  channel.accountId !== source.accountId ||
334
392
  channel.userId !== source.userId)
335
393
  return;
336
394
  return update(() => {
337
- const claimed = { ...task, status: "dispatching" };
395
+ const claimed = {
396
+ ...task,
397
+ status: task.status === "cancelling" ? "cancelling" : "dispatching",
398
+ };
338
399
  state.tasks[index] = claimed;
339
400
  return claimed;
340
401
  });
@@ -351,11 +412,16 @@ export function openStore(path = join(appDirectory, "state.json")) {
351
412
  channel.sessionId = sessionId;
352
413
  });
353
414
  },
354
- /** 确认开始执行;迟到通知不能撤销停止请求。 */
355
- markRunning(id) {
415
+ /** 轮次 ID 与执行状态一起落盘;迟到通知不能撤销停止请求。 */
416
+ markRunning(id, runId) {
356
417
  update(() => {
357
418
  const task = state.tasks.find((task) => task.id === id);
358
- if (task?.status === "dispatching")
419
+ if (!task || !activeTaskStatuses.has(task.status))
420
+ return;
421
+ if (task.runId && task.runId !== runId)
422
+ throw new Error("Task turn changed.");
423
+ task.runId = runId;
424
+ if (task.status === "dispatching")
359
425
  task.status = "running";
360
426
  });
361
427
  },
@@ -483,9 +549,27 @@ export function openStore(path = join(appDirectory, "state.json")) {
483
549
  });
484
550
  },
485
551
  closeInteraction,
486
- /** 结果不确定的任务暂停并通知用户,不自动重新派发。 */
552
+ /** 有轮次 ID 的任务重新连接;未确认派发和在途输入不自动重放。 */
487
553
  recoverTasks() {
554
+ if (state.channels.some((channel) => channel.permissionMenu))
555
+ update(() => {
556
+ for (const channel of state.channels)
557
+ closePermissionMenu(channel.id);
558
+ });
488
559
  for (const task of state.tasks.filter((task) => activeTaskStatuses.has(task.status) && task.status !== "queued")) {
560
+ if (task.sessionId && task.runId) {
561
+ for (const [index, input] of task.inputs.entries()) {
562
+ if (input.status !== "sending")
563
+ continue;
564
+ update(() => {
565
+ const current = state.tasks.find((item) => item.id === task.id)?.inputs[index];
566
+ if (current)
567
+ current.status = "failed";
568
+ enqueueReply(task.channelId, `Task #${task.id}, message ${index + 1}: delivery unconfirmed after restart. Not retried; check the session before resending.`);
569
+ });
570
+ }
571
+ continue;
572
+ }
489
573
  finishTask(task.id, {
490
574
  status: "interrupted",
491
575
  text: "Service restarted; task result unknown. Check the project, then /resume and send a new task.",
@@ -498,6 +582,9 @@ export function openStore(path = join(appDirectory, "state.json")) {
498
582
  claimReply(accountId, userId) {
499
583
  if (delivering)
500
584
  return;
585
+ for (const channel of state.channels)
586
+ if (channel.permissionMenu && channel.permissionMenu.expiresAt <= Date.now())
587
+ update(() => closePermissionMenu(channel.id));
501
588
  for (const reply of state.outbox) {
502
589
  const interaction = state.interactions.find((item) => item.id === reply.interactionId);
503
590
  if (reply.interactionId &&
@@ -518,6 +605,9 @@ export function openStore(path = join(appDirectory, "state.json")) {
518
605
  ...reply,
519
606
  chatId: channel.chatId,
520
607
  interaction,
608
+ permissionMenu: channel.permissionMenu?.id === reply.permissionMenuId
609
+ ? channel.permissionMenu
610
+ : undefined,
521
611
  });
522
612
  }
523
613
  }
@@ -525,9 +615,23 @@ export function openStore(path = join(appDirectory, "state.json")) {
525
615
  /** 发送成功或永久拒绝后移出队列;/last 只保留每个聊天的最近结果。 */
526
616
  removeReply(id, delivery) {
527
617
  update(() => {
618
+ const channelId = delivering?.id === id
619
+ ? delivering.channelId
620
+ : state.outbox.find((reply) => reply.id === id)?.channelId;
528
621
  if (delivering?.id === id)
529
622
  delivering = undefined;
530
623
  state.outbox = state.outbox.filter((reply) => reply.id !== id);
624
+ if (delivery?.permissionMenuId && channelId !== undefined) {
625
+ const channel = state.channels.find((item) => item.id === channelId);
626
+ if (channel?.permissionMenu?.id === delivery.permissionMenuId &&
627
+ channel.permissionMenu.expiresAt > Date.now())
628
+ channel.permissionMenu.messages.push({
629
+ messageId: delivery.messageId,
630
+ text: delivery.text,
631
+ });
632
+ else
633
+ enqueueReply(channelId, delivery.text, { messageId: delivery.messageId });
634
+ }
531
635
  const interaction = state.interactions.find((item) => item.id === delivery?.interactionId);
532
636
  const task = state.tasks.find((task) => task.id === interaction?.taskId);
533
637
  if (interaction && task && delivery) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/storage/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/storage/store.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,23 @@
6
6
 
7
7
  当前实现沿用现有技术栈和单进程结构。入站去重、任务与 outbox 的原子保存、单实例约束和最小停止能力随真实任务一起接入;本地 Codex 后台连接使用 ws,不新增测试文件。
8
8
 
9
+ 项目中的提示语言默认是英文。
10
+
9
11
  ## 核心架构决定
10
12
 
11
- | 决策 | 首版方案 | 原因与边界 |
12
- | -------------- | -------------------------------------------------------- | -------------------------------------------------------- |
13
- | 服务形态 | 全局 npm CLI + 单进程 Node.js 后台服务,内部按职责分模块 | CLI 管理配置与启停,后台进程持续处理消息和任务 |
14
- | CLI 与交互配置 | Commander + @clack/prompts | 提供子命令、帮助和配置向导;不引入通用依赖注入框架 |
15
- | IM 框架 | grammY,Telegram 长轮询 | 入口是 Bot 消息与按钮;无需公网入站接口 |
16
- | HTTP 框架 | 首版无需引入;需要 Webhook 或管理 API 时采用 Fastify | 避免为当前没有的 HTTP 业务增加服务层 |
17
- | Codex 接入 | app-server,本地 WebSocket 或 stdio 双向 JSON-RPC | 需要完整的会话、审批、问题和中断交互 |
18
- | Codex 进程 | 优先复用本机后台服务,不可用时启动独立子进程 | 复用空闲会话的写锁,任务仍串行并沿用持久化 thread ID |
19
- | 数据 | Node.js 文件接口 + JSON | 配置与状态分开保存,使用原子替换 |
20
- | 调度 | 文件中的任务记录 + 单个 Worker | 队列状态可恢复;控制消息不等待编码任务 |
21
- | 消息发送 | 本地 outbox + 进度合并 | Telegram 故障不改变编码任务的执行结果 |
22
- | 部署 | npm 全局安装,Linux systemd 或 macOS launchd 用户服务 | 配置向导完成初始化,由系统管理后台运行与故障重启 |
23
- | 扩展 | 按 Agent、IM、核心业务和存储组织模块,共用必要的消息类型 | 保持职责清晰,不为分层额外引入基类、注册器或重复转发 |
13
+ | 决策 | 首版方案 | 原因与边界 |
14
+ | -------------- | -------------------------------------------------------- | ---------------------------------------------------- |
15
+ | 服务形态 | 全局 npm CLI + 单进程 Node.js 后台服务,内部按职责分模块 | CLI 管理配置与启停,后台进程持续处理消息和任务 |
16
+ | CLI 与交互配置 | Commander + @clack/prompts | 提供子命令、帮助和配置向导;不引入通用依赖注入框架 |
17
+ | IM 框架 | grammY,Telegram 长轮询 | 入口是 Bot 消息与按钮;无需公网入站接口 |
18
+ | HTTP 框架 | 首版无需引入;需要 Webhook 或管理 API 时采用 Fastify | 避免为当前没有的 HTTP 业务增加服务层 |
19
+ | Codex 接入 | app-server,本地 WebSocket 或 stdio 双向 JSON-RPC | 需要完整的会话、审批、问题和中断交互 |
20
+ | Codex 进程 | 优先复用本机后台服务,不可用时启动独立子进程 | 复用空闲会话的写锁,任务仍串行并沿用持久化 thread ID |
21
+ | 数据 | Node.js 文件接口 + JSON | 配置与状态分开保存,使用原子替换 |
22
+ | 调度 | 文件中的任务记录 + 单个 Worker | 队列状态可恢复;控制消息不等待编码任务 |
23
+ | 消息发送 | 本地 outbox + 进度合并 | Telegram 故障不改变编码任务的执行结果 |
24
+ | 部署 | npm 全局安装,Linux systemd 或 macOS launchd 用户服务 | 配置向导完成初始化,由系统管理后台运行与故障重启 |
25
+ | 扩展 | 按 Agent、IM、核心业务和存储组织模块,共用必要的消息类型 | 保持职责清晰,不为分层额外引入基类、注册器或重复转发 |
24
26
 
25
27
  ```mermaid
26
28
  flowchart TB
@@ -88,16 +90,16 @@ Node.js 24 当前列为 LTS;grammY 提供 Node.js / TypeScript 开发路径。
88
90
 
89
91
  CLI 与打包入口已接入,可使用 `npm pack` 的本地产物全局安装。本轮不执行 npm 发布;发布后通过 `npm install -g tellrun` 安装,再运行 CLI 完成交互配置和后台启动。以下命令已实现,Linux systemd 的真实服务验收仍需在服务器完成。
90
92
 
91
- | 命令 | 目标行为 |
92
- | ------------------------- | ------------------------------------------------------------------------------------------- |
93
- | tellrun setup | 交互填写 Bot Token、本人 ID,检查 Codex 路径与运行环境;保存后可启动后台服务并设置自动启动 |
93
+ | 命令 | 目标行为 |
94
+ | ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
95
+ | tellrun setup | 交互填写 Bot Token、本人 ID,检查 Codex 路径与运行环境;保存后可启动后台服务并设置自动启动 |
94
96
  | tellrun start | 检查配置、创建或更新用户服务并启动;重复调用不创建第二个实例;--enable 在 Linux 启用开机自启,在 macOS 启用登录自启 |
95
- | tellrun stop | 停止后台服务及受管理子进程,等待实际结束后报告结果 |
96
- | tellrun restart | 完成停止后重新启动;用于配置变更或 npm 升级后加载新版本 |
97
- | tellrun status | 查询服务管理器状态并展示配置、数据目录;不启动第二个业务进程 |
98
- | tellrun logs | 展示最近 100 条后台日志;-f 持续跟随,凭据不进入命令行参数 |
99
- | tellrun run | 前台运行服务,供 systemd、launchd 和本地诊断使用;不进行交互配置 |
100
- | tellrun service uninstall | 停用并移除本应用的用户服务,保留配置和状态文件;之后可通过 npm 卸载程序包 |
97
+ | tellrun stop | 停止后台服务及受管理子进程,等待实际结束后报告结果 |
98
+ | tellrun restart | 完成停止后重新启动;用于配置变更或 npm 升级后加载新版本 |
99
+ | tellrun status | 查询服务管理器状态并展示配置、数据目录;不启动第二个业务进程 |
100
+ | tellrun logs | 展示最近 100 条后台日志;-f 持续跟随,凭据不进入命令行参数 |
101
+ | tellrun run | 前台运行服务,供 systemd、launchd 和本地诊断使用;不进行交互配置 |
102
+ | tellrun service uninstall | 停用并移除本应用的用户服务,保留配置和状态文件;之后可通过 npm 卸载程序包 |
101
103
 
102
104
  `setup` 由用户显式执行,npm 安装脚本仅承担包安装所需工作。交互取消时保留原配置,Token 使用明文输入,已有配置时留空保留原值;校验成功后再原子写入配置。CLI 的帮助、版本和状态命令不加载会加载运行状态或启动轮询的业务入口。
103
105
 
@@ -110,18 +112,18 @@ CLI 与打包入口已接入,可使用 `npm pack` 的本地产物全局安装
110
112
  | 模块 | 职责 |
111
113
  | ------------------------------------------- | ------------------------------------------------------------ |
112
114
  | src/cli.ts | CLI 命令解析与配置向导;只在 run 时动态加载后台业务入口 |
113
- | src/service.ts | 共用后台命令接口,按操作系统选择服务管理器 |
115
+ | src/service.ts | 共用后台命令接口,按操作系统选择服务管理器 |
114
116
  | src/systemd.ts | systemd 用户服务、linger、启停、状态与日志 |
115
- | src/launchd.ts | macOS 用户服务、登录自启、就绪确认、启停与日志 |
117
+ | src/launchd.ts | macOS 用户服务、登录自启、就绪确认、启停与日志 |
116
118
  | src/main.ts | 组装组件、状态加载、启动和退出;只在这里选择具体 IM 与 Agent |
117
119
  | src/config.ts、src/logger.ts | Telegram 凭据与本人身份校验、结构化日志 |
118
120
  | src/im/telegram.ts | grammY 接入、本人验证、入站标准化、回复与连接生命周期 |
119
121
  | src/agents/codex.ts | Codex app-server 连接、协议校验、会话创建或恢复、执行与中断 |
120
- | src/agents/codex-interaction.ts | 审批与提问请求的校验、交互内容转换和文件变更格式 |
122
+ | src/agents/codex-interaction.ts | 审批与提问请求的校验、交互内容转换和文件变更格式 |
121
123
  | src/core/relay.ts | 平台无关的命令处理、单会话协调和串行任务执行 |
122
124
  | src/core/types.ts | 实际跨模块复用的来源、消息、Agent 接口和执行结果 |
123
- | src/storage/store.ts、src/storage/schema.ts | JSON 状态读写、结构校验与业务操作 |
124
- | src/storage/lock.ts | 单实例锁的获取、旧锁回收与所有权释放 |
125
+ | src/storage/store.ts、src/storage/schema.ts | JSON 状态读写、结构校验与业务操作 |
126
+ | src/storage/lock.ts | 单实例锁的获取、旧锁回收与所有权释放 |
125
127
  | src/storage/json.ts | 配置与状态共用的 JSON 原子写入 |
126
128
 
127
129
  Telegram SDK 类型仅在 IM 连接模块使用,Codex RPC 类型仅在 Agent 模块使用。核心层只处理应用自己的消息与回复,通过存储模块暴露的操作读写状态;不直接使用 grammY 或 Codex 协议。IM 来源标识统一为字符串,避免把 Telegram 数字 ID 的假设带到其他平台。
@@ -180,15 +182,15 @@ Telegram SDK 类型仅在 IM 连接模块使用,Codex RPC 类型仅在 Agent
180
182
 
181
183
  ## Codex 协议与生命周期
182
184
 
183
- 每次任务先检查 `CODEX_HOME`(默认 `~/.codex`)下的 `app-server-control/app-server-control.sock`,通过 ws 建立 Unix socket 上的 WebSocket 连接,握手最多等待 5 秒。没有套接字、连接失败或运行在 Windows 时,使用内置 child_process.spawn 启动 codex app-server,参数以数组传入且 shell 为 false。两种传输共用双向 RPC 处理:WebSocket 一帧一条消息,stdin/stdout 使用 JSONL,均省略 `jsonrpc` 字段。独立进程 stderr 不转存,stdout 不能混入应用日志。[传输协议](https://learn.chatgpt.com/docs/app-server#protocol)
185
+ 每次任务连接 `CODEX_HOME`(默认 `~/.codex`)下的 `app-server-control/app-server-control.sock`,通过 ws 建立 Unix socket 上的 WebSocket 连接,握手最多等待 5 秒。连接失败时调用 Codex 0.165.0 的 `app-server daemon bootstrap`,由系统管理独立后台,再尝试连接一次。bootstrap 最多等待 30 秒,可随 Tellrun 退出取消;失败时明确提示,不回退到随 Tellrun 服务一起退出的子进程。WebSocket 一帧一条 RPC 消息,省略 `jsonrpc` 字段。[传输协议](https://learn.chatgpt.com/docs/app-server#protocol)
184
186
 
185
187
  每个连接先发送 `initialize` 并等待响应,再发送 `initialized` 通知,之后才能创建或恢复 thread;空闲时的普通消息启动 turn,执行中的补充消息使用 turn/steer,并传入当前 threadId 与 expectedTurnId、校验返回的 turnId;中断通过 turn/interrupt 请求。只根据 turn/completed 的实际状态判定完成、失败或中断。请求超时、进程退出和没有收到事件,都不等价于成功。[协议与生命周期](https://learn.chatgpt.com/docs/app-server)
186
188
 
187
- 请求管理使用 `json-rpc-2.0` 的 `JSONRPCClient`,收发边界适配 Codex 省略 `jsonrpc` 字段的消息格式。单次请求超时仍为 30 秒,超时会中断当前任务并释放等待中的请求。Zod 校验、事件归属与任务状态由应用处理;服务端拒绝和本地连接故障分别映射提示,补充输入在断线后保持“提交状态不确定”,不自动重试。
189
+ 请求管理使用 `json-rpc-2.0` 的 `JSONRPCClient`,收发边界适配 Codex 省略 `jsonrpc` 字段的消息格式。单次请求超时为 30 秒,超时结束本次跟踪并释放等待中的请求,不自动取消后台任务。Zod 校验、事件归属与任务状态由应用处理;服务端拒绝和本地连接故障分别映射提示,补充输入在断线后保持“提交状态不确定”,不自动重试。
188
190
 
189
191
  Codex 后台会在最后一个订阅者断开且会话无活动 30 分钟后才卸载,因此客户端关闭后仍可能持有空闲会话的写锁。Tellrun 复用该后台连接;恢复前通过 `thread/read` 检查状态,恢复后再次确认空闲,再提交任务。对其他进程仍持有写锁的情况保留原 thread ID 并提示连接问题,不自动创建新会话或重跑任务,不转发原始错误内容。[会话卸载规则](https://learn.chatgpt.com/docs/app-server#unsubscribe-from-a-loaded-thread)
190
192
 
191
- RPC 和待响应请求按每次连接隔离,按持久化 thread ID 恢复上下文。早于 turn/start 响应的事件先暂存,取得本次 turn ID 后再按 threadId 与 turnId 处理;其他会话或轮次的交互请求不代为拒绝。共享后台中的停止请求只针对本次 turn,连接中断且无法确认执行结果时仍记为 interrupted。返回结果前关闭自己的连接;仅独立进程模式等待子进程退出并清理进程组,不停止共享后台。协议字段由 Codex 0.165.0 的 generate-ts 输出核对,并用 Zod 校验。
193
+ RPC 和待响应请求按每次连接隔离,thread ID 与已确认的 turn ID 随任务状态保存。新任务在 turn/start 响应前暂存事件;重启恢复通过 thread/resume 订阅原会话,不覆盖权限,也不发送 turn/start。随后按 thread/turns/list 分页读取完整轮次,匹配保存的 turn ID,补回离线输出并继续实时跟踪;已结束的轮次直接保存原结果。缓冲增量不重复拼接,仍处理服务端重发的交互与终态。其他会话或轮次的事件不能改变归属。服务退出只关闭自己的连接,run 返回 undefined,核心层保留任务;显式停止任务才发送 turn/interrupt。协议字段由 Codex 0.165.0 的 generate-ts 输出核对,并用 Zod 校验。
192
194
 
193
195
  | 协议工作 | 首版要求 |
194
196
  | -------------- | ------------------------------------------------------------------------------------------------------------------ |
@@ -228,6 +230,10 @@ Codex 模型、provider 和认证优先沿用服务用户已有配置。应用
228
230
 
229
231
  默认采用工作区可写与按需审批,保留 Codex 的实际权限判断,不提供“全部允许”的默认模式。
230
232
 
233
+ `/permissions` 使用固定四档:Ask for approval(workspace-write / on-request / user)、Approve for me(workspace-write / on-request / auto_review)、Full Access(danger-full-access / never / user)和 Read Only(read-only / on-request / user)。三项分别对应 sandbox、approvalPolicy 和 approvalsReviewer;定义集中在 Codex 适配器,菜单和执行共用。核心层仅依赖 Agent 提供的模式 ID、名称,以及任务输入的模式 ID,不保存 Codex 协议参数,也不增加权限查询连接或后台工作循环。
234
+
235
+ 聊天保存当前选择,任务提交时复制模式 ID;旧文件补空值,沿用默认模式。选择跨重启与同目录 `/new` 保留,换目录恢复默认。菜单使用独立 UUID、原消息与聊天校验、10 分钟有效期;重新打开、新建会话、切换目录和重启均撤回旧按钮,发送途中的旧菜单由迟到回执清理。菜单与选择都通过现有 outbox 持久化,点击回调不执行 RPC。新建或恢复 Codex 会话时传入所选模式,并核对服务端返回的三项实际设置;拒绝或不符时不发送 turn/start。运行中切换不改变当前任务及 turn/steer,状态查询在模式不同时分别展示。
236
+
231
237
  ## 任务状态与恢复语义
232
238
 
233
239
  | 状态 | 含义及允许的后续动作 |
@@ -245,13 +251,13 @@ Codex 模型、provider 和认证优先沿用服务用户已有配置。应用
245
251
 
246
252
  停止操作把当前聊天的 paused 设为 true,先保存停止状态并作废其待处理按钮,再请求中断活动 turn。收到实际终态后再更新界面。无法确认退出时,清理本连接或受管理进程组并记录 interrupted;检查项目与本机进程后由用户恢复接收。
247
253
 
248
- 正常关停先停止入站轮询、保存已接收数据,再请求活动任务中断并等待退出。异常重启后,queued 记录保留;dispatching、running 和 cancelling 统一进入 interrupted,旧交互失效。对应聊天保持暂停,用户检查已有结果后明确恢复。
254
+ 正常关停先停止入站轮询,断开 Agent 连接后释放状态锁,Codex 后台与任务继续运行。重启后 queued 记录保留;已有 thread ID 与 turn ID 的任务重新连接并恢复跟踪,cancelling 继续提交原轮次的明确停止请求。尚未确认轮次 ID 的 dispatching、running 和 cancelling 仍进入 interrupted,暂停对应聊天,不猜测或重跑。旧交互失效,服务端重新发出的请求生成新按钮;在途补充输入标记提交不确定,不自动重发,尚未发送的输入待恢复连接后继续发送。
249
255
 
250
- 恢复上下文可以使用保存的 Agent 会话 ID;原来的活动 RPC 等待不能跨进程恢复。继续或重试创建新的 task,保留与原任务的关联。
256
+ 恢复上下文与活动任务使用保存的 Agent 会话和轮次 ID;原来的 RPC 等待对象不能跨进程恢复,客户端重新订阅与读取快照。无法确认原轮次时提示本机检查,不创建替代轮次。
251
257
 
252
258
  一致性目标是:同一入站事件只创建一个任务,明确的终态只生效一次,结果不确定的执行不自动重放。Telegram、状态文件和 Codex 的变更无法一次原子提交,因此不宣称端到端 exactly-once。
253
259
 
254
- 尤其在“Codex 已收到 turn/start,但 Tellrun 尚未收到响应”这一窗口崩溃时,必须保留不确定状态,不能因为没拿到响应就自动重发。持久化的 dispatching 状态用于识别这种情况,turnId 无需跨进程保存。
260
+ 尤其在“Codex 已收到 turn/start,但 Tellrun 尚未收到响应”这一窗口崩溃时,必须保留不确定状态,不能因为没拿到响应就自动重发。持久化的 dispatching 状态与空 runId 用于识别这种情况;只有已保存的轮次 ID 才能自动恢复跟踪。
255
261
 
256
262
  补充输入保存在任务的 inputs 中,旧状态文件缺少该字段时默认为空数组。与入站事件一起保存 pending,发送前先保存 sending,收到接收确认后保存 accepted,失败保存 failed 并提示。重启或任务结束时,对仍为 pending 或 sending 的输入分别提示尚未提交或结果待确认,不自动重放;成功补充不生成固定回执。补充请求被拒绝不改变原任务结果,通信故障仍按连接中断处理。
257
263
 
@@ -277,20 +283,20 @@ auto-retry 仅用于 Telegram API。普通请求总时限为 15 秒,长轮询
277
283
 
278
284
  配置、运行状态、锁和服务定义统一保存在当前用户主目录下的 `.tellrun/`;源码开发与全局安装共用同一布局。源码 npm scripts 仍可读取 `.env` 覆盖 Telegram 凭据和 Codex 路径;后台启动要求向导已保存完整配置,不依赖 CLI 的临时环境。
279
285
 
280
- | 配置项 | 保存位置与约束 |
281
- | ---------------------------- | --------------------------------------------------------------------------------------------------- |
282
- | 用户配置 | `~/.tellrun/config.json`;目录权限 0700,文件权限 0600 |
283
- | Telegram Bot Token 与本人 ID | 由 setup 写入配置,保留环境变量覆盖能力;不依赖可修改的 username |
284
- | Telegram 代理 | `telegram.proxyUrl` 可选,由用户自行配置;未指定时继承运行环境的代理,setup 保留已有显式配置 |
285
- | 工作目录 | 后续由任务或会话指定,不设置目录白名单 |
286
- | Codex 命令 | 配置时解析可执行文件的绝对路径;与后台服务使用同一 OS 用户,沿用其认证与配置 |
286
+ | 配置项 | 保存位置与约束 |
287
+ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
288
+ | 用户配置 | `~/.tellrun/config.json`;目录权限 0700,文件权限 0600 |
289
+ | Telegram Bot Token 与本人 ID | 由 setup 写入配置,保留环境变量覆盖能力;不依赖可修改的 username |
290
+ | Telegram 代理 | `telegram.proxyUrl` 可选,由用户自行配置;未指定时继承运行环境的代理,setup 保留已有显式配置 |
291
+ | 工作目录 | 后续由任务或会话指定,不设置目录白名单 |
292
+ | Codex 命令 | 配置时解析可执行文件的绝对路径;与后台服务使用同一 OS 用户,沿用其认证与配置 |
287
293
  | 后台运行环境 | config.json 不保存终端环境;macOS 服务的 PATH 只包含 Node、Codex 所在目录及常见系统、Homebrew 路径,凭据不写入服务定义 |
288
- | 运行状态 | `~/.tellrun/state.json`;临时单实例锁为同目录的 `state.json.lock/` |
289
- | Linux 服务定义 | `~/.tellrun/tellrun.service`,通过 systemctl --user link 注册;日志保存在 journal |
290
- | macOS 服务定义 | `~/.tellrun/tellrun.plist`;启用登录自启时链接到 `~/Library/LaunchAgents/io.github.chaoyue1998.tellrun.plist` |
291
- | macOS 服务诊断 | `~/.tellrun/tellrun.log`;`tellrun logs` 显示最近 100 行,`-f` 持续跟随 |
292
- | 日志级别 | 当前固定为 info |
293
- | 队列与交互设置 | 当前串行执行,交互固定最多等待 10 分钟;队列上限和工具进度设置仍未实现,不预建配置项 |
294
+ | 运行状态 | `~/.tellrun/state.json`;临时单实例锁为同目录的 `state.json.lock/` |
295
+ | Linux 服务定义 | `~/.tellrun/tellrun.service`,通过 systemctl --user link 注册;日志保存在 journal |
296
+ | macOS 服务定义 | `~/.tellrun/tellrun.plist`;启用登录自启时链接到 `~/Library/LaunchAgents/io.github.chaoyue1998.tellrun.plist` |
297
+ | macOS 服务诊断 | `~/.tellrun/tellrun.log`;`tellrun logs` 显示最近 100 行,`-f` 持续跟随 |
298
+ | 日志级别 | 当前固定为 info |
299
+ | 队列与交互设置 | 当前串行执行,交互固定最多等待 10 分钟;队列上限和工具进度设置仍未实现,不预建配置项 |
294
300
 
295
301
  `~/.tellrun/` 按当前运行用户的主目录解析为绝对路径;CLI 与后台服务使用同一用户和同一目录,不受执行命令时的 cwd 影响。状态、锁和配置不得写到全局 npm 包目录,避免升级覆盖、权限问题和从不同 cwd 启动产生多份数据。
296
302
 
@@ -306,7 +312,7 @@ M1 启动 Worker 前必须取得同一状态文件对应的排他运行锁,取
306
312
 
307
313
  当前通过原子创建 `state.json.lock/` 目录争取单实例写入权,目录内记录 PID 与随机所有权标识。正常退出仅清理自己的锁;异常退出后确认旧 PID 不存在才回收。尚未写入所有权的空锁目录保留 30 秒,避免抢占正在初始化的实例。状态加载和恢复在取得锁后进行。发送与任务领取按机器人账号和授权用户过滤。
308
314
 
309
- Codex 子进程只接收必要环境与运行时凭据,不默认继承 Telegram Token。启动时在其 `PATH` 前补入当前 Node 可执行文件所在目录,使 npm 版 Codex 的启动脚本在 systemd 环境下也能找到 `node`;版本检查与 app-server 使用同一份环境,不保存交互终端的完整 `PATH`。Tellrun 直接向 Agent 传递任务工作目录,不通过项目清单限制目录;实际文件访问仍沿用 Codex 与 OS 的权限配置。
315
+ Codex 版本检查和 daemon bootstrap 只接收必要环境与运行时凭据,不默认继承 Telegram Token;保留 XDG_RUNTIME_DIR 与 DBUS_SESSION_BUS_ADDRESS,使启动命令能连接当前用户的服务管理器。启动时在 `PATH` 前补入当前 Node 可执行文件所在目录,使 npm 版 Codex 的启动脚本在 systemd 环境下也能找到 `node`。Tellrun 直接向 Agent 传递任务工作目录,不通过项目清单限制目录;实际文件访问仍沿用 Codex 与 OS 的权限配置。Tellrun 的 KillMode=control-group 保留,独立 Codex daemon 由自己的系统服务管理,停止消息服务不会停止编码任务。
310
316
 
311
317
  当前启动检查包括 Telegram 配置、单实例锁、状态文件校验、Codex CLI 版本格式、Telegram 连接和 Webhook 状态;认证与模型访问在实际任务调用时验证,失败会保存并回复。已在本机通过真实 Codex 调用,目标 Linux 的 M0 仍待验证。遇到 Webhook 或另一轮询实例时给出明确错误,不自动接管其他部署;日志不记录原始凭据或网络 URL。
312
318
 
@@ -339,6 +345,10 @@ Claude 等 Agent 的新增工作集中在会话创建或恢复、任务输入、
339
345
 
340
346
  审批与提问新增 34 项临时模拟验证:覆盖两种传输的命令、文件与权限决定、多题映射、早到及重复请求、先解决后到达、文件差异变化、阻塞与非阻塞超时、停止;存储验证覆盖旧文件兼容、部分答案、失效、重启与落盘失败不重放、迟到回执;Telegram 与核心流程联合验证覆盖鉴权、按钮生成和清理、明确回复、普通消息补充、绝对路径答案以及慢回调期间停止。`npm run check` 与 `npm run build` 通过;真实 Telegram 与 Codex 审批联调仍待目标环境验收。
341
347
 
348
+ 权限选择通过 44 项临时模拟验证:34 项 stdio/WebSocket 检查包括原审批回归、四种模式的新建和续聊参数、未知模式、策略拒绝及返回设置不符时不启动任务;7 项存储与核心检查覆盖旧文件兼容、去重与来源校验、任务快照、重启和换目录、菜单过期、迟到回执及其他 Agent 的模式 ID;3 项 Telegram API 模拟覆盖按钮、本人鉴权、旧菜单、命令回复与慢回执期间停止。本机 Codex 0.165.0 的四种模式均通过临时会话的实际配置校验,未提交模型任务或向真实 Telegram 发送验证消息。
349
+
342
350
  状态回收另通过 16 项临时模拟验证:包括重新打开当前状态不改写文件、连续 300 个任务后状态大小保持稳定、确认前后与重启后的去重、轮询和写入失败、部分答案保留、迟到发送回执及按钮清理。Telegram 与核心流程联合验证确认旧问题回复不会新建或补充任务,`/last` 可在下一任务运行时查看前一结果,任务与交互过程不重复写日志。检查与构建通过,未向真实 Telegram 发送验证消息。
343
351
 
344
352
  macOS 后台管理通过 18 项临时验证:17 项模拟覆盖平台分发、无桌面登录、无效路径、系统命令失败、启动超时、并发控制、启动等待期间停止、就绪标记归属与清理、日志跟随,以及 Linux systemd 和 linger 回归;另在本机真实 launchd 登录域运行隔离服务,验证特殊字符路径、重复启动、登录入口加载、停止、重启、崩溃恢复和卸载。隔离服务已卸载;检查与构建通过,真实 Telegram 后台联调及 Linux 实机服务验收仍需单独完成。
353
+
354
+ 服务与任务生命周期分离通过 15 项临时回归:服务退出不发取消、恢复离线结果且不重跑、恢复后的补充输入与明确停止、历史分页与轮次隔离、未知轮次、忙碌会话、审批映射、初始化期间退出、权限校验、在途输入不重放、旧状态兼容、环境隔离、daemon 启动失败、重连后完成已保存的取消,以及连接前停止不能误报原任务已取消。另使用本机 Codex 0.165.0 与本机模拟模型服务,验证适配器断开后任务仍执行、新适配器接回同一轮次、实时完成与离线结果恢复。未调用真实模型、发送 Telegram 消息或操作现有 Codex daemon;目标 Linux 的 systemd 停止与升级仍需实机验收。