openqj
|
f99e667222
|
Merge pull request #120 from openqj/feat-marker-wait-heartbeat
worker: heartbeat parent task during marker poll/wait loops
|
2026-10-29 04:47:33 +08:00 |
|
openqj
|
fd2309686e
|
Merge pull request #119 from openqj/feat-git-pull-deploy
deploy: add git-pull source for host deployment
|
2026-10-29 03:45:27 +08:00 |
|
openqj
|
630d14fe07
|
Merge pull request #118 from openqj/feat-coord-running-leak
worker: release running slot after coordinator completes
|
2026-10-29 03:07:35 +08:00 |
|
openqj
|
a367da3ed0
|
Merge pull request #117 from openqj/feat-autoscaler-coord-guard
autoscaler: guard scale-down against live coordinators and busy victims
|
2026-10-29 00:37:44 +08:00 |
|
openqj
|
4cf5888f94
|
Merge pull request #116 from openqj/feat-automem-pg-replace
fix(db): register auto-memory tables in _OR_REPLACE_PK
|
2026-10-28 23:01:16 +08:00 |
|
openqj
|
ce83dcf586
|
Merge pull request #114 from openqj/feat-websearch-docker-env
fix: pass search env into Docker task containers (SEARXNG_URL was lost)
|
2026-10-28 22:22:55 +08:00 |
|
openqj
|
ffeed25f50
|
Merge pull request #115 from openqj/feat-rate-limit-retry-after
429 限流加 Retry-After 头
|
2026-10-28 20:22:11 +08:00 |
|
openqj
|
7279d0a81c
|
Merge pull request #110 from openqj/feat-marker-tools
任务内标记工具:task-create/task-poll/task-read、wait-threads、task-cancel/task-retry
|
2026-10-28 20:19:39 +08:00 |
|
openqj
|
eae9884b13
|
Merge pull request #111 from openqj/feat-coord-row-vanished
协调员行消失按中断处理:本体行消失即放槽,子任务行消失按 interrupted 合流
|
2026-10-28 17:46:23 +08:00 |
|
openqj
|
a0b6333f0c
|
Merge pull request #113 from openqj/feat-websearch-worker
feat: websearch MCP worker wiring + egress (public SearXNG route)
|
2026-10-28 17:36:22 +08:00 |
|
openqj
|
075908fe58
|
Merge pull request #112 from openqj/feat-websearch-mcp
feat: web search MCP v1 (oh-my-pi pattern, Python stdlib)
|
2026-10-28 17:21:19 +08:00 |
|
openqj
|
5026e75b2c
|
Merge pull request #109 from openqj/feat-goal-fail-resume
goal 异常退出记 interrupted,可断点续跑
|
2026-10-28 15:53:35 +08:00 |
|
openqj
|
d129f7bf8c
|
Merge pull request #108 from openqj/feat-auto-memory
云端身份记忆 + 自动提取注入:官方 memories 对齐(确定性 v1)
|
2026-10-28 12:19:17 +08:00 |
|
openqj
|
ea5ab6207c
|
Merge pull request #93 from openqj/feat-cost-notify-3
成本预算与失败通知第三批:G7 分层、G8 Docker 轮询掐断、G9 worker 忽略 host 预算、G13/G14 归属
|
2026-10-28 11:49:44 +08:00 |
|
openqj
|
ac553509ea
|
Merge pull request #107 from openqj/feat-thread-unarchive-noresume
fix: thread/unarchive 不再预 resume
|
2026-10-28 09:46:57 +08:00 |
|
openqj
|
5c9beb8a6d
|
Merge pull request #106 from openqj/feat-thread-unarchive
fix: thread/unarchive 走已归档解析(--archived 列表)
|
2026-10-28 06:30:17 +08:00 |
|
openqj
|
f5d6d6b9f0
|
Merge pull request #105 from openqj/feat-thread-resolve
fix: 线程解析按 home×provider 穷尽回退(共享 home + sub2api)
|
2026-10-28 05:45:43 +08:00 |
|
openqj
|
86eb43f1ca
|
Merge pull request #104 from openqj/feat-thread-lifecycle
feat: 线程生命周期对齐 15 项(bindings/refs/快照/心跳绑定/移交落点)
|
2026-10-28 05:04:53 +08:00 |
|
openqj
|
aee60fcb7d
|
Merge pull request #103 from openqj/feat-thread-wait-ops
feat: 线程等待与状态读取 8 项(wait/read/message/handoff/worktree/pr-checks/automation/sleep)
|
2026-10-28 04:43:02 +08:00 |
|
openqj
|
38c0797cb3
|
Merge pull request #100 from openqj/feat-residual-a
残留批次A:成员删除、PR needs_local_worker 落库、推送 DNS TOCTOU
|
2026-10-28 03:27:59 +08:00 |
|
openqj
|
6e3eb7ba11
|
Merge pull request #99 from openqj/feat-p2
feat: P2 控制台与运维批(成员管理、任务筛选、链路下载、线程操作与 skills/MCP、迁移对齐、monitor 告警、备份回滚、Caddy 选项)
|
2026-10-28 00:52:55 +08:00 |
|
openqj
|
97f019d1dd
|
Merge pull request #98 from openqj/feat-p1-security
feat: P1 安全批(执行中配额检查、成本实账、goal/协调员语义、PR 通道、孤儿签名、控制面与控制台加固)
|
2026-10-28 00:36:54 +08:00 |
|
openqj
|
d254240d84
|
Merge pull request #96 from openqj/feat-p0-security
feat: P0 安全批(真全局管理员、双人配额门、默认配额、fix-review 收紧、App 配置限管理员、取消真杀任务)
|
2026-10-28 00:17:37 +08:00 |
|
openqj
|
d0ca1f7f60
|
Merge pull request #97 from openqj/feat-login-retry
登录限流下开通突发不再硬失败(节流 + 429 重试)
|
2026-10-27 23:34:41 +08:00 |
|
openqj
|
494c3847d4
|
Merge pull request #94 from openqj/feat-regperf
perf: 注册开通复用进程内管理员会话
|
2026-10-27 22:46:50 +08:00 |
|
openqj
|
cc0c707ccd
|
Merge pull request #90 from openqj/feat-cost-notify-1
成本预算与失败通知第一批(G1/G2/G5/G6/无价上报)
|
2026-10-27 21:58:55 +08:00 |
|
openqj
|
c2f82da5e0
|
Merge pull request #92 from openqj/feat-sub2api-hotfix
fix: docker 默认 runner 支持 env + 并发开通竞态复用
|
2026-10-27 18:10:50 +08:00 |
|
openqj
|
99efa93bd3
|
Merge pull request #88 from openqj/feat-sub2api
sub2api 网关接入:每用户独立账号 + 任务注入 + 网关可配置
|
2026-10-27 17:30:14 +08:00 |
|
openqj
|
437684902a
|
Merge pull request #86 from openqj/feat-multiuser-hardening
多用户生产级缺口批:sweep 鉴权、默认配额、默认 executor、 无价 token 上限
|
2026-10-27 17:22:40 +08:00 |
|
openqj
|
c1f9313c10
|
Merge pull request #87 from openqj/feat-coordinator
feat: 协调员任务(并行子任务、等齐、合流汇总)
|
2026-10-27 16:25:32 +08:00 |
|
openqj
|
e786e1f85d
|
Merge pull request #89 from openqj/feat-p1
P1 补齐:自动评审队列、自动化+分诊、并发 caps、运行时审批队列
|
2026-10-27 16:00:53 +08:00 |
|
openqj
|
29efc6c61f
|
Merge pull request #85 from openqj/feat-task-turn-ids
feat: 任务列表显示 turn_id 与 root_turn_id
|
2026-10-27 15:44:33 +08:00 |
|
openqj
|
559a7dcb9f
|
Merge pull request #84 from openqj/feat-peer-messages
feat: 任务间互发消息(API + agent 标记块,不中断任务)
|
2026-10-27 14:30:14 +08:00 |
|
openqj
|
4901a1090b
|
Merge pull request #83 from openqj/feat-tenant-trace
fix: 租户 Docker 任务链路可见(租户目录优先、共享目录兜底)
|
2026-10-27 13:01:35 +08:00 |
|
openqj
|
79a1d56856
|
Merge pull request #82 from openqj/feat-subagent-chain
feat: 命令台子代理链路(主任务/模型子代理/委派子任务 + 过程调用实时同步)
|
2026-10-27 11:54:41 +08:00 |
|
openqj
|
34cd0eeba7
|
Merge pull request #81 from openqj/feat-orphan-worker
fix: worker 代码变化自退 + 部署时清孤儿 worker
|
2026-10-27 11:26:47 +08:00 |
|
openqj
|
c007fafcc7
|
Merge pull request #78 from openqj/feat-quota-hardening
worker: enforce quotas during execution
|
2026-10-27 11:13:49 +08:00 |
|
openqj
|
c189df4a20
|
Merge pull request #76 from openqj/fix-handler-500
fix: 请求处理未捕获异常回 500 JSON,不再断连变 nginx 502
|
2026-10-27 11:01:31 +08:00 |
|
openqj
|
ad8bf280d0
|
Merge pull request #77 from openqj/feat-staging-cleanup
fix: 提前失败路也清附件暂存
|
2026-10-27 11:00:27 +08:00 |
|
openqj
|
b0772d0eac
|
Merge pull request #75 from openqj/feat-deploy-key
feat: deploy 无密码时走密钥直连
|
2026-10-27 05:50:52 +08:00 |
|
openqj
|
0a862c11f7
|
Merge pull request #74 from openqj/feat-repo-picker2
GitHub 仓库选择菜单:安装仓库列表 + PATCH 补仓库 + 控制台下拉
|
2026-10-27 05:48:08 +08:00 |
|
openqj
|
d91e5134f5
|
Merge pull request #73 from openqj/fix-rate-limit-deadlock
fix: 限流清理移出请求路径,根治 rate_limit_hits 死锁
|
2026-10-27 05:45:18 +08:00 |
|
openqj
|
5ba4d35839
|
Merge pull request #72 from openqj/feat-goal-marker
fix: goal 宣告检测容忍行尾句号
|
2026-10-27 05:32:11 +08:00 |
|
openqj
|
43748804d3
|
Merge pull request #71 from openqj/feat-quotas
租户配额与计费:按用户月度 USD 上限 + 建任务/分支/重试准入 402
|
2026-10-27 05:28:25 +08:00 |
|
openqj
|
2a7cdd582f
|
Merge pull request #70 from openqj/feat-continue
feat: 旧任务继续会话——终端任务带新消息 + 全部选项同一会话续跑
|
2026-10-27 04:46:06 +08:00 |
|
openqj
|
cf293914d9
|
Merge pull request #69 from openqj/feat-attachments
feat: 任务附件——文件/文件夹/图片进任务工作区
|
2026-10-27 04:39:05 +08:00 |
|
openqj
|
c102327040
|
Merge pull request #68 from openqj/env-console
feat: 命令台云端环境——选、建、管 + 任务绑定环境
|
2026-10-27 04:13:11 +08:00 |
|
 openqjandhost
|
c86b450851
|
feat: goal 模式新语义——prompt 即目标,无验收命令,不限轮次,模型宣告完成 (#67)
console 打勾 goal 模式时不再有专用 goal 文本、验收命令、轮次
三个输入(已移除,换成说明行),只发 goal_mode=1;server 侧
goal_mode=1 时 goal 存 prompt、验收命令空、轮次存 0,带验收
命令或与计划模式同用时 400,旧的带验收命令任务照原样可用。
host.py goal 循环:verify 为空时不跑验测,轮次提示里写明
标记约定;模型在完整跑完的回合末尾单独一行输出“目标已
达成”即达标(超时回合的部分文本含标记也不算);--max-rounds
0 为不限轮次,goal-resume 续跑按 0 处理(不用 or 兜底成 3)。
刹车只有取消与预算耗尽(后者记 interrupted、可续跑)。
迁移与 worker:tasks 加 goal_mode 列(server 迁移、worker 列
补齐、PG schema 三处同步);worker 按 goal_mode 或
verify_command 判定 goal 路径,重试与后续消息排空对新语义
同样只跑一次/不排空;Local/Docker goal_task 的 --verify 可选、
--max-rounds 0 原样传。
Co-authored-by: host <host@test.local>
|
2026-10-27 03:54:48 +08:00 |
|
 openqjandhost
|
4179fb1a0a
|
fix: 命令台初始化有 key 即加载模型列表 (#66)
回访用户 key 已在 localStorage 里:此前模型列表只在点“保存”
时加载一次,重开页面下拉永远只有默认项(2026-10-27 实测)。
初始化序列补 if (getKey()) loadRelayModels();单测补初始化
序列含该调用的标记断言。
另:公网 /relay/models 曾因 nginx 缺 /relay/ 代理返回 404,
与本修无关,nginx 侧另行补 location。
Co-authored-by: host <host@test.local>
|
2026-10-27 03:33:35 +08:00 |
|
 openqjandhost
|
f4443dca4f
|
feat: 计划模式 + 后续消息 + 会话分支接云端 (#65)
- 计划模式:tasks 加 plan 列;plan 与 approval=full / goal 冲突时
400;执行器在 approval 参数后追加 --sandbox read-only(本地
dispatch/run/goal/popen 与 Docker 内层命令全覆盖),host 任务
存下 sandbox 后续轮次自动继承只读。
- 后续消息:新表 task_followups;POST/GET /tasks/{id}/followups
(仅 queued/running 的非 goal 任务;direct 立即往链路追加
phase=followup-direct 条目,本轮跑完后优先于排队执行;排队
按 direct 优先、队内先来先服务逐条再跑一轮,同一 thread;
一条失败即停、剩余 pending 留给重试入口;取消时回 pending)。
- 会话分支:POST /tasks/{id}/fork(仅终态任务;继承 executor/
模型/强度/权限/计划,goal 字段置空);worker 先 fork 再跑首轮,
首轮失败不自动重试、不重复分叉,失败后走重试入口重跑首轮。
- 修任务级模型被覆盖:worker 此前无条件写成主模型,控制台
选的模型实际不生效;现为任务级 > worker 主模型 > 配置。
- Docker 租户准备抽成 _docker_task_context,供普通尝试与 fork 共用。
- console:新建任务计划勾选(含冲突拦截)、详情计划徽标与
分支来源、分支按钮与表单、后续消息区、列表 [计划]/[分支] 标记。
- 测试:cloud/tests/test_task_links.py 17 个(server 校验与继承、
worker 模型优先、只读命令、排空顺序与停排、goal 不排空、
fork 单次性);全量 cloud 542、host 49、deploy 14。
Co-authored-by: host <host@test.local>
|
2026-10-27 03:17:51 +08:00 |
|
openqj
|
6da3745127
|
Merge pull request #64 from openqj/goal-align-2
CI verify pass 2m2s,合并后走新链路推生产。
|
2026-10-27 03:08:49 +08:00 |
|
openqj
|
028ef02a86
|
Merge pull request #63 from openqj/goal-long-task
CI verify pass 2m10s,合并后走新链路推生产。
|
2026-10-27 02:49:13 +08:00 |
|
 openqjandhost
|
fc016fd459
|
style: 命令台 GUI 美化 (#62)
只改样式与布局骨架,不动 JS 逻辑与接口:
- 卡片化分区(API Key / 健康 / 项目+Workers 两栏 / 新建任务 / 任务列表 / 任务详情),柔和底色 + 圆角 + 细阴影
- 按钮分主次:保存 key 与提交任务为主按钮(蓝),取消为红色弱化按钮;输入框获焦有蓝圈
- 任务状态改圆点 + 彩色文字(running 蓝、completed 绿、failed 红、merged 紫、interrupted 橙),行悬停高亮
- 表格去网格线、表头浅灰,详情/链路区改浅灰圆角框;窄屏单栏自适应
- 验证:HTML 标签平衡、全部 41 个 JS 用 id 齐全、接口标记齐全、零外部引用、JS 经 node --check、test_console 4/4
Co-authored-by: host <host@test.local>
|
2026-10-27 02:45:08 +08:00 |
|
 openqjandhost
|
799f7c3edb
|
feat: 任务实时链路 SSE (#61)
host.py:回合通知摘要成链路条目,增量追加到 <state>/host-traces/<task>.jsonl(上限 5000 行);dispatch/run/goal/delegate 设链路文件
cloud/server.py:GET /tasks/{id}/trace 快照 + /trace/stream SSE(snapshot → entry → done;worktree 在别机时空链路 + 说明)
console:详情链路区,运行中 fetch 流式渲染(EventSource 不能带 X-API-Key 头),终态走快照;DOM 上限 1000 条
单测:test_host_trace 7 + test_task_trace 6;host 49、cloud 525、deploy 14 全过
Co-authored-by: host <host@test.local>
|
2026-10-27 02:27:15 +08:00 |
|
 openqjandhost
|
6022f1dada
|
chore: default model gpt-6.1-sol -> gpt-5.6-terra (#60)
Co-authored-by: host <host@test.local>
|
2026-10-27 02:00:09 +08:00 |
|
 openqjandhost
|
8b2f3968dc
|
feat: per-task model/effort/approval + relay models endpoint (#59)
Co-authored-by: host <host@test.local>
|
2026-10-27 01:44:53 +08:00 |
|
 openqjandhost
|
cff152c5a2
|
fix: console reloads data right after saving key (#58)
Co-authored-by: host <host@test.local>
|
2026-10-27 01:26:19 +08:00 |
|
 openqjandhost
|
e40c2c33bb
|
feat: web command console v1 (GET /console) (#57)
Co-authored-by: host <host@test.local>
|
2026-10-27 01:02:24 +08:00 |
|
 openqjandhost
|
c6e633d162
|
fix: host_deploy stops/starts and health-checks server-2 too (#56)
Co-authored-by: host <host@test.local>
|
2026-10-27 00:50:33 +08:00 |
|
 openqjandhost
|
84ff968111
|
fix: deploy verify parsing must ignore ssh warning lines (#55)
Co-authored-by: host <host@test.local>
|
2026-10-27 00:41:40 +08:00 |
|
 openqjandhost
|
32125f7a98
|
docs: new-host onboarding checklist (HA stage 4) (#54)
Co-authored-by: host <host@test.local>
|
2026-10-27 00:30:32 +08:00 |
|
 openqjandhost
|
de81b1643f
|
docs: Postgres fast-rebuild runbook (HA stage 3, option 1) (#53)
Co-authored-by: host <host@test.local>
|
2026-10-27 00:22:31 +08:00 |
|
 openqjandhost
|
06b9fd12fd
|
HA stage 2: DB-shared rate limiting + second server unit + monitor both-servers check (#52)
Co-authored-by: host <host@test.local>
|
2026-10-27 00:15:16 +08:00 |
|
 openqjandhost
|
fc8e337d0f
|
HA 阶段 1:worktree_host + 跨主机 /pr 队列化 (#50)
* 部署自动化:唯一发布链路 deploy.py + host_deploy.sh,sha/commit 双重验真,失败回滚
旧链路三次栽过的坑:通用 tar 路径导致旧包误部署、传输不验 sha、
主机脚本多份漂移、health 通过不等于新代码上线。本单把四点变硬门禁:
- 产物唯一命名 codex-app-server-<commit>.tar.gz + .sha256,远端唯一路径
- git archive 产物 + DEPLOYED_COMMIT 清单,默认拒绝脏工作区
- 传输链 scp -> scp_run -> chunk 分片,每路传完远端验 sha,不符删掉重来
- 主机侧唯一脚本:先验 sha/清单,staging 解包 + 编译检查,换目录上线,
work/ 原样保留,health + 上线 commit 不符即回滚并退出非零
- deploy.py 成功后独立 ssh 再读一次 live 清单二次核对
- CI:host-verify 加 deploy/tests;release.yml 只在手动/tag + production
environment 审批时部署,主干推送绝不自动部署生产
- deploy.sh 标记为旧链路弃用
- health 的 commit 字段已在父提交 HA 阶段 0 里随 server.py 落地,
本分支整体包含它;commit 为空时只靠文件核对,门禁同样成立
测试:host 32、cloud 487(4 跳过)、deploy 9,全部通过;
host_deploy.sh 仿真覆盖成功/坏 sha/清单不符/health commit 不符回滚。
生产实机部署未做,等确认后再用新链路推。
* HA stage 1: worktree_host + queued cross-host PR jobs
---------
Co-authored-by: host <host@test.local>
|
2026-10-27 00:05:18 +08:00 |
|
 openqjandhost
|
455513dd33
|
HA stage 0: health reads workers registry, daily pg_dump timer, backup freshness in monitor (#48)
Co-authored-by: host <host@test.local>
|
2026-10-26 23:51:54 +08:00 |
|
 openqjandhost
|
275de39148
|
docs: multi-machine HA design (phased, grounded in current single-host facts) (#47)
Co-authored-by: host <host@test.local>
|
2026-10-26 23:41:38 +08:00 |
|
openqj
|
4c6b6ad039
|
Merge pull request #46 from openqj/pg-decimal-cost
修项目成本按天接口在 Postgres 上的 Decimal 序列化崩溃
|
2026-10-26 23:19:54 +08:00 |
|
openqj
|
70177989f2
|
Merge pull request #45 from openqj/real-cost
逐任务真实成本:上游用量事件 + 价目表计价
|
2026-10-26 18:44:09 +08:00 |
|
openqj
|
353d6c1aa8
|
Merge pull request #43 from openqj/goal-cloud
云端 goal/merge/review 三事件:goal 循环 + PR 事件通知
|
2026-10-26 18:14:17 +08:00 |
|
openqj
|
26e73124fb
|
Merge pull request #42 from openqj/push-notify
推送真发送:webhook/slack 内置发送端 + worker 终态通知
|
2026-10-26 17:34:14 +08:00 |
|
openqj
|
b7dace55b9
|
Merge pull request #41 from openqj/pr-timeout
pr 超时:git/gh 子进程默认 120 秒超时
|
2026-10-26 17:03:33 +08:00 |
|
openqj
|
37d049d6b7
|
Merge pull request #39 from openqj/app-token
App-token:推分支建 PR 改走 GitHub App
|
2026-10-26 16:49:46 +08:00 |
|
openqj
|
ee4b01c8f6
|
Merge pull request #37 from openqj/multi-key
多 key:OAuth 登录不再轮换
|
2026-10-26 16:30:15 +08:00 |
|
openqj
|
aa5ad41eba
|
Merge pull request #36 from openqj/github-app-pg-dialect
修 GitHub App 安装在 Postgres 上崩
|
2026-10-26 16:13:58 +08:00 |
|
openqj
|
f07b3ccc7c
|
Merge pull request #35 from openqj/github-app-install
GitHub App 一键安装
|
2026-10-26 16:05:08 +08:00 |
|
openqj
|
ecf4b5c715
|
Merge pull request #34 from openqj/bind-external-identity
oauth: bind existing accounts to external identities
|
2026-10-26 15:50:12 +08:00 |
|
openqj
|
5735ea16d6
|
Merge pull request #32 from openqj/pr-commit-before-push
pr: commit worktree changes before push
|
2026-10-26 15:22:57 +08:00 |
|
openqj
|
b984171f27
|
Merge pull request #30 from openqj/monitor-autoscaler-check
monitor.sh: worker check accepts autoscaler (static worker retired)
|
2026-10-26 11:03:49 +08:00 |
|
openqj
|
7c0e9366f8
|
Merge pull request #29 from openqj/docker-runtime-prod
Production docker tasks: --docker-runtime runsc in autoscaler unit
|
2026-10-26 10:38:36 +08:00 |
|
openqj
|
54834c3744
|
Merge pull request #28 from openqj/docker-runtime-runsc
Docker tasks: --docker-runtime option (runsc support, default off)
|
2026-10-26 10:29:14 +08:00 |
|
openqj
|
b31e9365de
|
Merge pull request #27 from openqj/host-profile-fixes
Fix codex-host profile (capability + netlink for bwrap)
|
2026-10-26 08:41:53 +08:00 |
|
openqj
|
bfe3521ef7
|
Merge pull request #26 from openqj/host-sandbox
Host-level sandbox tasks (LocalExecutor + bwrap)
|
2026-10-26 08:26:53 +08:00 |
|
openqj
|
67acddaf7c
|
Merge pull request #25 from openqj/egress-fixes
Fix egress/AppArmor configs found during host install
|
2026-10-26 08:03:13 +08:00 |
|
openqj
|
7859d5dd8c
|
Merge pull request #24 from openqj/outer-hardening
Outer hardening: AppArmor, pids limit, egress allowlist
|
2026-10-26 07:43:57 +08:00 |
|
openqj
|
4f7c7eb13e
|
Merge pull request #23 from openqj/tenant-isolation
Multi-tenant isolation for Docker tasks
|
2026-10-26 07:26:33 +08:00 |
|
openqj
|
c5d245a7fb
|
Merge pull request #22 from openqj/autoscaler
Autoscale workers by queue depth
|
2026-10-26 06:58:42 +08:00 |
|
openqj
|
67e1d3eb24
|
Merge pull request #21 from openqj/worker-concurrency-and-retry
Worker concurrency, survival (heartbeat/sweep/drain), retry endpoint
|
2026-10-26 06:48:48 +08:00 |
|
openqj
|
341f4a83e1
|
Merge pull request #20 from openqj/worker-poll-perf
Perf: light worker poll query + tasks(status) index
|
2026-10-26 06:21:30 +08:00 |
|
openqj
|
a1e492657a
|
Merge pull request #19 from openqj/host-error-surfacing
Surface failed-turn reason from thread_history in dispatch output
|
2026-10-26 06:15:03 +08:00 |
|
openqj
|
6a857e06bd
|
Merge pull request #18 from openqj/fallback-real-turn-token-and-codex-home
Fallback: extract HTTP code from failed-turn JSON; Docker codex_home points at real relay home
|
2026-10-26 06:09:37 +08:00 |
|
openqj
|
edc187bb70
|
Merge pull request #17 from openqj/docker-config-codex-home
Docker config: writable codex_home under /app/work
|
2026-10-26 05:59:27 +08:00 |
|
openqj
|
0f2e427d93
|
Merge pull request #16 from openqj/docker-config-repo-and-stderr
Docker default repo + keep stderr in worker error_text
|
2026-10-26 05:48:17 +08:00 |
|
openqj
|
3acf0d7b8c
|
Merge pull request #15 from openqj/docker-config-state-path
Fix Docker config state path to work/host-state.json
|
2026-10-26 05:41:33 +08:00 |
|
openqj
|
f49ccfd9bf
|
Merge pull request #14 from openqj/docker-config-in-repo
Commit host-config-docker.json to the repo
|
2026-10-26 05:37:22 +08:00 |
|
openqj
|
1e33b6b3e0
|
Merge pull request #13 from openqj/fallback-thread-start-crash
Fallback also triggers on thread/start crash with explicit HTTP code
|
2026-10-26 05:31:34 +08:00 |
|
openqj
|
52048d7633
|
Merge pull request #12 from openqj/model-fallback-retry
Real model fallback retry (opt-in, at most once)
|
2026-10-26 05:25:29 +08:00 |
|
openqj
|
f1d42d04f3
|
Merge pull request #11 from openqj/workers-precision-fix
Fix workers time columns to DOUBLE PRECISION on Postgres
|
2026-10-26 05:07:16 +08:00 |
|
openqj
|
3bc9d49d0c
|
Merge pull request #10 from openqj/cloud-dispatch-pr
Cloud dispatch pool + auto PR (opt-in, skip clearly)
|
2026-10-26 04:59:51 +08:00 |
|
openqj
|
d3e588e4b3
|
Merge pull request #9 from openqj/deploy-clean-fix
Fix deploy/rollback to clean code dir before extract
|
2026-10-26 04:43:18 +08:00 |
|
openqj
|
138094a3ae
|
Merge pull request #8 from openqj/ops-batch
Ops batch: deploy automation, backup restore drill, monitoring, multi-user verification
|
2026-10-26 04:37:53 +08:00 |
|