tellrun 1.2.0 → 1.2.5

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.
package/docs/prd.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  用户离开电脑后,仍可在手机上继续服务器里的开发任务,并清楚知道任务的工作目录、是否仍在运行、是否等待自己处理。
12
12
 
13
- 首版建议采用单台 Linux 服务器、一个 Telegram Bot、一个授权用户,入口限定为私聊。Linux 是部署建议,具体发行版与架构在实施时核对。
13
+ 支持单台 Linux 服务器或 Mac、一个 Telegram Bot、一个授权用户,入口限定为私聊。需要持续在线时建议使用 Linux 服务器;macOS 用户服务要求桌面保持登录,休眠期间无法持续处理消息。
14
14
 
15
15
  | 范围 | 首版决定 |
16
16
  | --- | --- |
@@ -22,7 +22,7 @@
22
22
  | 执行 | 全局同时执行一个编码任务;同一聊天的新消息直接补充到当前任务 |
23
23
  | 交互 | 文本、进度消息、审批按钮、补充问题、停止任务 |
24
24
  | 安装与配置 | npm install -g tellrun,安装后通过 CLI 配置向导完成初始化 |
25
- | 部署 | 一个 Node.js 常驻后台服务;首版建议由 Linux systemd 用户服务管理 |
25
+ | 部署 | 一个 Node.js 常驻后台服务;Linux 使用 systemd 用户服务,macOS 使用 launchd 用户服务 |
26
26
 
27
27
  图片、语音、通用文件传输、群聊与论坛话题、Web 管理界面、定时任务、多人权限及计费放在后续版本。其他 IM 和 Claude 等 Agent 分别按实际需求增加。
28
28
 
@@ -30,9 +30,9 @@
30
30
 
31
31
  使用者在服务器安装 Node.js、Codex 并完成 Codex 认证后,通过 `npm install -g tellrun` 安装程序。运行 `tellrun setup`,以明文输入 Telegram Bot Token 并填写本人 ID,检查 Codex 可用性,保存配置后可启动或重启后台服务。配置文件不保存终端环境;可选的 `telegram.proxyUrl` 由用户自行配置,未设置时继承运行环境的代理。CLI 与后台管理已接入,npm 发布与 Linux 实际部署验收仍待完成;安装用户无需克隆源码或手动复制 `.env`。
32
32
 
33
- 提供 start、stop、restart、status 和 logs 命令,另提供前台 run 用于诊断。停止须等待实际退出,重复启动不创建多份服务;启动失败时给出原因和日志入口。配置向导检查退出 SSH 后持续运行的条件,并提供开机自启选项。
33
+ 提供 start、stop、restart、status 和 logs 命令,另提供前台 run 用于诊断。停止须等待实际退出,重复启动不创建多份服务;启动失败时给出原因和日志入口。配置向导在 Linux 检查退出 SSH 后持续运行的条件并提供开机自启,在 macOS 提供登录自启。macOS 使用当前用户的 LaunchAgent,无需管理员权限,注销后停止;两种后台均在 Telegram 初始化成功后才报告就绪。
34
34
 
35
- 配置和运行状态统一保存在当前用户的 `~/.tellrun/`,分别为 `config.json` 和 `state.json`;临时锁和服务定义也保存到该目录,与 npm 安装目录及执行命令时的目录无关。日志由系统 journal 保存。升级包保留原有配置和任务记录;卸载服务不自动删除用户数据或关闭用户 linger。配置过程中取消或校验失败不覆盖原配置。
35
+ 配置和运行状态统一保存在当前用户的 `~/.tellrun/`,分别为 `config.json` 和 `state.json`;临时锁和服务定义也保存到该目录,与 npm 安装目录及执行命令时的目录无关。macOS 登录自启入口链接到用户的 Library/LaunchAgents 目录。Linux 服务诊断日志由 journal 保存,macOS 写入 tellrun.log,不重复保存 Codex 任务历史。升级包保留原有配置和必要运行状态;卸载服务不自动删除用户数据或关闭 Linux 用户 linger。配置过程中取消或校验失败不覆盖原配置。
36
36
 
37
37
  ## 核心使用流程
38
38
 
@@ -73,6 +73,7 @@
73
73
  | --- | --- |
74
74
  | /start 或 /help | 展示使用说明、当前会话和常用操作 |
75
75
  | /new | 新建 Agent 会话 |
76
+ | /permissions | 选择后续任务的权限模式,执行中的任务保持原权限 |
76
77
  | /sessions | 分页列出会话,点击切换 |
77
78
  | /status | 显示当前会话、工作目录、运行中的任务、队列和服务状态 |
78
79
  | /queue | 查看排队任务,通过按钮取消指定任务 |
@@ -90,6 +91,8 @@ Telegram 支持长轮询,服务器主动接收更新;这种部署方式无
90
91
 
91
92
  默认建议使用 Codex 的工作区写入权限与按需审批策略。允许范围内的操作可直接执行;只有 Codex 明确发起的审批请求才显示审批交互,因此不是每一条命令都弹出按钮。操作范围受运行时实际配置和托管策略约束。[Codex 审批说明](https://learn.chatgpt.com/docs/app-server#approvals)
92
93
 
94
+ `/permissions` 固定提供 Codex CLI 0.165.0 的 Ask for approval、Approve for me、Full Access 和 Read Only 四种模式,默认 Ask for approval。模式在提交任务时形成快照,执行中的新选择只影响后续任务;`/status` 区分所选模式与当前任务模式。选择跨重启保存,`/new` 沿用选择,切换目录恢复默认。可用性由 Codex 在启动任务时校验,拒绝或返回设置不符时不提交任务;本次不提供自定义 permission profile 发现。
95
+
93
96
  | 情况 | 产品行为 |
94
97
  | --- | --- |
95
98
  | 需要执行授权 | 显示工作目录、操作内容和原因;提供本次允许、拒绝、停止任务 |
@@ -107,9 +110,9 @@ Telegram 支持长轮询,服务器主动接收更新;这种部署方式无
107
110
 
108
111
  ## 数据与运行要求
109
112
 
110
- 任务使用用户指定或当前会话沿用的工作目录,Tellrun 不限制项目目录,也不要求项目配置文件。会话绑定、任务输入与状态、最终结果、消息去重标识及待发送回复保存在本地 JSON 文件;发送成功或永久拒绝后从发送记录中移除,任务结果仍保留。Codex 原生历史由 Codex 管理,Tellrun 不重复保存完整上下文、流式文本或工具原始输出。恢复服务需要保留配置、状态文件和相应 Codex 会话数据。
113
+ 任务使用用户指定或当前会话沿用的工作目录,Tellrun 不限制项目目录,也不要求项目配置文件。本地 JSON 仅保存会话绑定、活动任务、每个聊天的最近结果,以及尚未完成的交互与投递状态。去重标识在 Telegram 确认后回收;关闭的交互待关联消息清理完成后回收;回复发送成功或永久拒绝后移出队列。历史任务不会持续累积,发送故障期间仍保留未完成的投递。Codex 原生历史由 Codex 管理,Tellrun 不另存任务日志、完整上下文、流式文本或工具原始输出。恢复服务需要保留配置、状态文件和相应 Codex 会话数据。
111
114
 
112
- 聊天文本通过 Telegram 传递,模型请求按 Codex 配置发往相应服务。Bot Token 等凭据从服务环境或受限配置读取;日志默认记录任务标识、状态和错误类别,不记录凭据及完整聊天正文。
115
+ 聊天文本通过 Telegram 传递,模型请求按 Codex 配置发往相应服务。Bot Token 等凭据从服务环境或受限配置读取;Tellrun 日志仅记录服务启停、连接与存储故障,不记录任务过程、凭据及聊天正文。
113
116
 
114
117
  以下是首版验收目标,执行时延不包括模型生成耗时及外部网络故障:
115
118
 
@@ -125,11 +128,13 @@ Telegram 支持长轮询,服务器主动接收更新;这种部署方式无
125
128
 
126
129
  - 运行 24 小时并完成一次网络恢复、一次进程故障演练后,能够继续处理新任务。
127
130
 
128
- - 从发布包全局安装后,在任意目录均可配置并启停服务;完成后台设置后,退出 SSH 仍能接收消息,升级后配置和任务记录保留。
131
+ - 从发布包全局安装后,在任意目录均可配置并启停服务;完成后台设置后,退出 SSH 仍能接收消息,升级后配置和必要运行状态保留。
129
132
 
130
133
  ## 实施阶段与扩展方向
131
134
 
132
- 当前最小链路支持直接发送普通消息给 Codex 并沿用会话,默认使用服务启动目录,`/cwd 绝对路径` 可选;支持 `/new`、`/status`、`/stop`、`/resume`、`/last`。执行中的新文本通过 turn/steer 补充到当前任务,无需等待任务完成;审批和结构化提问尚未接入时明确中断。已在本机验证回复、续聊和停止,目标 Linux 与完整审批协议仍待验证。
135
+ 当前支持直接发送普通消息给 Codex 并沿用会话,默认使用服务启动目录,`/cwd 绝对路径` 可选;支持 `/new`、`/status`、`/stop`、`/resume`、`/last`。执行中的新文本通过 turn/steer 补充到当前任务。已接入命令、文件和权限审批按钮,以及结构化问题的选项和明确回复;多题收齐后提交,普通消息继续补充任务。旧交互在停止、结束、到期或重启后失效,批准不自动重放;非阻塞问题到期不代选答案,任务继续。敏感输入、MCP 表单/URL 和动态工具请求仍明确中断。
136
+
137
+ 审批与提问已按本机 Codex CLI 0.165.0 生成协议核对,并通过存储、stdio/WebSocket 和 Telegram API 模拟验证。真实 Telegram 操作和目标 Linux 部署仍需验收,多会话、任务队列与工具进度摘要仍待实现。
133
138
 
134
139
  | 阶段 | 交付 | 进入下一阶段的条件 |
135
140
  | --- | --- | --- |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tellrun",
3
- "version": "1.2.0",
3
+ "version": "1.2.5",
4
4
  "description": "Self-hosted Telegram bot for remote AI coding with OpenAI Codex CLI, persistent sessions, and streaming replies.",
5
5
  "keywords": [
6
6
  "codex",