feat(executor): impl 活性检测替代纯硬墙——转录停更早杀,有增长跑满预算
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 46/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- backend, documentation, testing
Línea de trabajo
Start with the AGENTRUN timeout path and the preflight kill-stale code in .dev/flows/self_improve_flow_v2.py, including the referenced transcript and child-process checks. Add harness scenarios in .dev/flows/test/flow_v2_paths.py for stalled and growing transcripts, then document RECURSIVE_STALL_SECS and its relationship to RECURSIVE_IMPL_TIMEOUT in OPERATIONS.md. Done means stalled work is killed early, active work reaches its budget, and the unset-parameter behavior is unchanged.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
impl/fix 等 AGENTRUN 长节点目前只有一条扁平的 timeout_secs 硬墙(self_improve_flow_v2.py:20 自注「watchdog(journal 增长/后代活性)暂由 AGENTRUN timeout_secs 硬墙替代」——本单就是还这笔账)。两个方向的代价都不对:
- 合法长活被截断:10-03 实证 #78/#68 超时轮转录在满 1h57m 时仍活跃推进(566 轮、尾部在跑 rustc 编译)——工作真实在做,墙到即死,只能靠 engine_error 重派 + L2 会话续跑接续,每轮吃 reaper 周期与台账噪音。
- 卡死烧满墙:若 agent 挂起(等输入/静默死循环),硬墙要等满整个预算(现
RECURSIVE_IMPL_TIMEOUT=14400s)才肯杀。
提案
给 AGENTRUN(执行器或宿主层)加活性检测:转录停止增长超过 stall 阈值且无活跃子进程 → 提前按 timeout 类击杀(沿用现有 SIGTERM watchdog 优雅刷盘链路);有增长则允许跑满预算。
- 检测对象:
--transcript-out的 transcript.jsonl size/mtime 增长 +pgrep -f "recursive.*--transcript-out"子进程活性(preflight 的 kill-stale 已用同款 pattern,.dev/flows/self_improve_flow_v2.pypreflight code 段)。 - stall 阈值可配:env
RECURSIVE_STALL_SECS,缺省关闭 = 现状零变化,显式配置才启用。 - 击杀语义沿用 timeout 类:engine_error + checkpoint/worktree 保留(10-03 起回收豁免)+ keeper 重派 L2 续跑;不引入新的重试类别。
验收
- harness(
.dev/flows/test/flow_v2_paths.py)新场景:模拟转录停更 → 提前击杀(先红后绿);模拟持续增长 → 跑满预算不被误杀。 - 缺省(未配
RECURSIVE_STALL_SECS)行为与现状逐字节一致。 OPERATIONS.md补参数说明(与RECURSIVE_IMPL_TIMEOUT的关系:本参数解决「何时提前杀」,后者解决「预算多少」)。
边界
- 纯 recursive 侧执行器/宿主改动,不改 agentproc 协议。
- 不动 D4 语义(timeout 类不原地重试)。
- Lenguaje dominante
- Rust
- Estrellas
- 4
- Forks
- 0
- Merge medio
- 5 h 32 min
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jeffkit/recursive
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
jeffkit/recursive#159 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
Los mantenedores suelen responder en 1 día
-
tracking: 安全面闭环——已落地机制的绕过(4 项)Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
Los mantenedores suelen responder en 1 día
Todos los issues de jeffkit/recursive
Issues similares
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
NuSkooler/enigma-bbs#907 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
bug pixi-build-r
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
prefix-dev/pixi#7229 ·
Los mantenedores suelen responder en 1 día