Commit Graph

68 Commits

Author SHA1 Message Date
AgentRun Codex f49695a821 fix: use idle timeout for codex turns 2026-06-11 12:52:46 +08:00
AgentRun Codex b4c48b724d fix: 回填 result envelope failureKind 2026-06-11 09:44:04 +08:00
AgentRun Codex ec62cc70dd fix: expose stale runner diagnostics 2026-06-11 09:19:43 +08:00
AgentRun Codex ae8c89e099 fix: 增强终态失败分类可见性 2026-06-11 02:50:42 +08:00
AgentRun Codex 5a6e5a4bbd fix: add aipod imageRef work-ready runner reuse 2026-06-11 01:21:56 +08:00
Claude Code 7864eb8f04 fix: Artificer GitHub SSH absolute-path git fetch 2026-06-10 21:15:41 +08:00
Codex 6989dc18ef feat: add aipod spec Artificer assembly 2026-06-10 17:46:45 +08:00
Codex 04afc05f95 fix: 收敛 commander supervisor 噪声 2026-06-10 12:14:31 +08:00
Codex 43c47d3fa9 fix: 增强长 turn liveness 可见性 2026-06-10 12:05:21 +08:00
Codex b0c117d0e2 fix: preserve queue blocked state 2026-06-10 11:10:19 +08:00
Lyon 74b83b43c2 feat: 为 gitbundle 装配 required skills (#138)
* Add gitbundle required skills validation

* fix: 限定 required skill blocked result 覆盖

---------

Co-authored-by: AgentRun Codex <agentrun@example.invalid>
Co-authored-by: Codex <codex@pikas.tech>
2026-06-10 10:36:26 +08:00
Codex 461c775f05 fix: refresh queue read views from terminal commands 2026-06-10 08:02:01 +08:00
Codex 72042f7bff fix: 修正 provider retry 与完成结果归因 2026-06-10 00:44:19 +08:00
Codex 0247e42d70 fix: 暴露 turn 活性与 steer 投递语义 2026-06-09 23:56:39 +08:00
Codex e8b0b7896a fix: runner proxy and transient env secret 2026-06-09 22:49:53 +08:00
Lyon 17918cda0a Merge pull request #116 from pikasTech/fix/issue-113-command-result-summary
修复 command-result 长 trace 摘要过期
2026-06-09 21:43:48 +08:00
Codex 0dc5a3f966 fix: 增加 result tool call 摘要 2026-06-09 21:41:26 +08:00
Codex 06e5705c56 fix: 修复 command result 长 trace 摘要 2026-06-09 21:41:20 +08:00
Codex c1018efb65 fix: assemble UniDesk SSH endpoint env 2026-06-09 21:33:02 +08:00
Codex 70f2a6e22a fix: propagate queue cancel to run state 2026-06-09 02:12:12 +08:00
Codex 88ed2c1791 fix: 修复 Queue 已读投影和取消传播 2026-06-09 01:55:42 +08:00
Codex c685b749e4 fix: expose dynamic provider profiles in backends list 2026-06-09 00:28:32 +08:00
Codex 2f5cf8b3d4 feat: close AgentRun commander task plane gaps 2026-06-09 00:06:53 +08:00
Codex 6dd8c75528 fix: 接入 dsflash-go model catalog 2026-06-08 23:31:33 +08:00
Codex 32318ea881 fix: resolve gitbundle source from repo ref 2026-06-08 15:04:08 +08:00
Codex 52376fb71e 支持 gitbundle 资源装配 2026-06-08 11:21:34 +08:00
Codex 47b02b5101 feat: 支持 provider profile auth.json 写入 2026-06-08 10:59:38 +08:00
Codex 601d8190d0 feat: add provider profile removal 2026-06-08 05:30:48 +08:00
Codex 509c2aa6fd fix: 支持动态 provider profile slug 2026-06-08 04:19:58 +08:00
Codex 96bdc262ad 支持 provider profile Secret 首次创建 2026-06-08 02:08:50 +08:00
Codex 41886aef80 feat: 将 ofcx-go backend 收敛为 dsflash-go 2026-06-08 01:38:50 +08:00
Codex eef59c74ee fix: replace hardcoded backend profile validation with isBackendProfile()
The session creation route had a hardcoded check for only codex/deepseek/minimax-m3
profiles. Since ofcx-go was added to BackendProfile type and backend-profiles.ts
spec list, the validation must use isBackendProfile() from the shared module so
that adding new profiles only requires one data change, not scattered string checks.

Refs pikasTech/HWLAB#1034
2026-06-07 21:03:47 +08:00
Codex 3afb2bf8ec feat: add ofcx-go provider profile for OpenCode Zen Go DeepSeek V4 Flash
- Add ofcx-go to BackendProfile type union
- Add ofcx-go backend profile spec (Codex app-server stdio)
- Add defaultConfig for ofcx-go (deepseek-v4-flash via Moon Bridge)
- Add Secret mount in deploy.json for runner projection
- Add RBAC access for ofcx-go provider secret
- Update self-test to cover 4 profiles
2026-06-07 20:14:52 +08:00
Codex 7b3c0ea584 fix: 支持 ResourceBundleRef workspaceFiles 2026-06-06 17:59:05 +08:00
Codex dd58cf9a8e feat: 支持 provider profile config.toml 管理 2026-06-05 22:35:40 +08:00
Lyon 17e9cd3995 fix: remove provider secret last-applied annotation (#94)
Co-authored-by: Codex <codex@pikas.tech>
2026-06-05 19:04:59 +08:00
Lyon 46e3b771bb fix: upsert provider secrets without patch-file (#93)
Co-authored-by: Codex <codex@pikas.tech>
2026-06-05 18:50:50 +08:00
Lyon a8f1e56367 fix: avoid provider secret last-applied annotation (#92)
Co-authored-by: Codex <codex@pikas.tech>
2026-06-05 18:34:13 +08:00
Codex 25ec9f459d fix: use existing workspace for provider validation 2026-06-05 16:34:54 +08:00
Codex 05809058a5 feat: add provider profile management api 2026-06-05 16:07:26 +08:00
Codex 78513aa4c7 feat(v0.1): CLI sessions create / storage / storage-delete + session-turn auto-ensure PVC
PR C 收尾附带 CLI 能力:
- 新增 sessions create [sessionId] 调 POST /api/v1/sessions 创建 session+PVC
- 新增 sessions storage <sessionId> 调 GET /api/v1/sessions/:id/storage
- 新增 sessions storage <sessionId> --delete 调 DELETE
- sessions turn <sessionId> 也会先 GET storage 探活,不存在则 POST /api/v1/sessions 补建
  (之前 sessions turn 只在 store 里隐式建 session record 但 storageKind=none,
  现在用显式 session create 入口保证 storageKind=pvc 提前建好)
- ManagerClient 新增 delete() 方法
2026-06-03 20:56:27 +08:00
Codex f08a4e75cd feat(v0.1): runner Job 直接挂载 per-session PVC + env 透传
PR C 起步:k8s-job.ts 加 sessionPvc volume + env passthrough

- src/runner/k8s-job.ts: 新 RunnerSessionPvcOptions 接口;manifest 多渲染
  agentrun-sessions volume + volumeMount;env 多透传 AGENTRUN_SESSION_PVC_NAME /
  _NAMESPACE / _MOUNT_PATH / AGENTRUN_CODEX_ROLLOUT_SUBDIR
- src/mgr/kubernetes-runner-job.ts: run 引用 session 时查 session storage
  kind=pvc 自动构造 sessionPvc 透传给 manifest 渲染;kind=evicted 已在
  PR B 短路返回 session-store-evicted
- selftest: 1 新 case runner-k8s-job-session-pvc-volume-and-env 验证 PVC volume
  + env 全套透传

后续 PR C 剩余:src/backend/codex-stdio.ts emit codex-rollout-storage-mounted
事件 + session-store-evicted 升级;3 个 codex-stdio 端到端 case。
2026-06-03 20:21:03 +08:00
Codex 4793ca154a fix(v0.1): recover session PVC when prior create left session without storage
之前的失败用例会让 session 留在 storageKind=none 状态但 pvcName 缺失,
现在 POST /api/v1/sessions 在 storageKind=none || !storagePvcName 时
重新调 createSessionPvc 补建,action=session-storage-recovered。

selftest 覆盖:显式 reset storageKind=none 后第二次 POST 走 recovery。
2026-06-03 19:59:49 +08:00
Codex da797c907c fix(v0.1): sanitize session id for PVC name (RFC 1123 subdomain compliance)
session id 允许任意字符(含下划线/大写/点),但 PVC name 必须符合
RFC 1123 subdomain(小写字母数字 + '-' + '.',首尾必须 alphanumeric)。

sanitizeSessionIdForPvc 把非法字符替换为 '-',全空 fallback 到 'default'。
selftest 增加 3 case 覆盖下划线/大写/纯符号。
2026-06-03 19:47:29 +08:00
Codex e8cfa4c692 feat(v0.1): add mgr session PVC lifecycle for true session state persistence
PR B for #770: mgr/session-pvc.ts + server endpoints + selftest.

- 新模块 src/mgr/session-pvc.ts: createSessionPvc / getSessionPvcSummary / deleteSessionPvc / refreshSessionPvcSummary / runSessionStorageGc / startSessionStorageGcLoop
- Server 增量 4 个 endpoint:
  * POST /api/v1/sessions: 创建 session 同步创建 PVC
  * GET /api/v1/sessions/:id/storage: 查询 PVC 摘要
  * DELETE /api/v1/sessions/:id/storage: 删 PVC + storage_kind=evicted
  * POST /api/v1/sessions/:id/storage/refresh: runner 上报 PVC 摘要
  * POST /api/v1/sessions/storage/gc: 手动触发 GC
- mgr SA RBAC 已在 PR A 增加;manager server 不直连 Kubernetes API(kubectl 由 mgr 容器内执行)
- SessionRecord 增量 storageKind / storagePvcName / storageNamespace / storageSizeBytes / storageFilesCount / storageSha256 / storageUpdatedAt / storagePvcPhase / storageEvictedAt / codexRolloutSubdir
- kubernetes-runner-job 短路:run 引用 evicted session 时直接返回 session-store-evicted,不创建 runner Job
- KubectlHandler 可注入,selftest 覆盖 create / summary / refresh / eviction / gc / REST 路径
- GC loop 默认 5min(AGENTRUN_SESSION_GC_INTERVAL_MS 可调)

runner / backend / HWLAB adapter 在 PR C / PR D 落地。
2026-06-03 19:19:09 +08:00
Codex 87beb00bdb feat(v0.1): add per-session RWO PVC foundation for true session state persistence
PR A for #770: docs + migration 007 + RBAC + types foundation.

- 新增 failureKind session-store-evicted,用于区分 PVC 缺失与真协议错误
- 新增 migration 007_v01_session_state_storage:sessions 表增加 storage_* 列 + 索引
- mgr SA RBAC 增量:persistentvolumeclaims: [create, get, list, watch, delete]
- 6 份 SPEC 升级(runtime-assembly / hwlab-manual-dispatch / backend-codex T7b / agentrun-runner / agentrun-mgr / services)
- 显式禁止:fake app-server mock、replacement threadId、runner 启动后 copy/restore、idleTimeoutMs 拉永驻
- selftest 断言更新到 007_v01_session_state_storage

后续 PR B/C 在此基础上接入 mgr 端 PVC 生命周期 + runner 端 mount + backend 端 observability。
2026-06-03 18:45:13 +08:00
Codex b761ef6713 feat: add session subagent cli control 2026-06-03 11:27:55 +08:00
Codex 3018b8a937 feat: assemble resource prompts and skills 2026-06-02 20:40:14 +08:00
Codex 458d814fa2 feat: 装配 UniDesk SSH 工具凭证 2026-06-02 15:40:48 +08:00
Codex 9700d0600f feat: assemble resource bundle tool aliases 2026-06-02 08:50:21 +08:00