Skip to content

Hook runtime fixes: explicit PABCD triggers, worker gate, idle goals, per-turn Stop cap, PABCD switch, .codexclaw/.gitignore - #269

Merged
lidge-jun merged 40 commits into
devfrom
codex/issue-train-wp2
Sep 27, 2026
Merged

lidge-jun merged 40 commits into
devfrom
codex/issue-train-wp2

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Fixes four confirmed hook-runtime defects and adds two small opt-in controls from the 2026-09-27 issue train. Triage for all 22 open issues and the diff-level plans are in devlog/_plan/260927_issue_train/ (000-016).

Fixed

Added / changed

Verification

Residual risk

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-27T16:37:56.613417Z 4ee1112 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 36 / 80

이 PR은 훅이 사람 말을 잘못 알아듣고 일을 이어 가던 문제 네 가지를 고친다. 끄는 스위치와, 한 턴의 멈춤 한도도 더한다. 베이스는 dev다.

보통 말은 이제 PABCD를 켜지 않는다. "interview", "keep going until", "끝까지 진행해", 따옴표나 코드 울타리 안의 예, "cxc-loop 돌리지 마" 같은 거절은 지시문을 넣지 않고 루프도 안 켠다. cxc-pabcd나 cxc-loop를 직접 시켜야 힌트가 나간다. orchestrate 명령을 읽는 쪽은 예전과 같다.

Codex 기본 worker는, 그 세션이 빌드(B)나 검증(C) 중일 때만 증거 영수증을 요구한다. 그 밖에서는 막지 않는다. 등록된 executor는 PABCD가 켜져 있으면 계속 요구한다.

네이티브 목표가 켜져 있어도, 연결된 goalplan이 없으면 IDLE에서 Stop이 턴을 끝낸다. 그때 카운터는 쓰지 않는다.

Stop은 한 사용자 말마다 24번까지 이어 갈 수 있다. 25번째에는 알림 한 줄을 보여주고 놓는다. 같은 턴에서 또 오면 알림 없이 놓는다. 다음 사용자 말이 오면 24가 다시 시작된다. Stop이 혼자 이어 붙인 응답은 새 말로 치지 않는다.

CODEXCLAW_PABCD=off(또는 0, false)나 프로젝트 codexclaw.json의 {"pabcd":{"enabled":false}}면 이 컴포넌트의 PABCD 훅만 조용해진다. on, 1, true는 파일이 꺼져 있어도 다시 켠다. 알아듣지 못하는 값은 파일 설정을 따른다. 워크트리 가드, 메모리 쓰기, 자동화 소유권, apply_patch 린트, 기억 요청 표시는 그대로 돈다.

.codexclaw 폴더를 처음 만들 때만 .gitignore를 같이 쓴다. 이미 있는 폴더와 심링크는 수정하지 않는다. 그 무시 규칙은 런타임 파일을 빼고, rules 바로 아래의 .md는 남긴다. 상위 규칙이 .codexclaw/를 통째로 숨기면 rules/도 같이 숨는다. PR 본문에 적힌 그대로다.

plugins/codexclaw/components/pabcd-state/src/hook.ts 1825줄 - IDLE에서 계획을 찾을 때 readGoalplan(goalplan.ts 677줄)을 쓴다. 이 함수는 파일이 없는 경우, JSON이 깨진 경우, 읽기에 실패한 경우를 모두 같은 빈 결과로 돌린다. 계획이 있는데 파일만 깨져도 "계획 없음"과 같이 Stop이 조용히 끝나고, 횟수도 기록하지 않는다.

plugins/codexclaw/components/pabcd-state/src/subagent-evidence.ts 482줄 - 세션 상태 파일을 읽지 못하면 worker는 B나 C여도 영수증 없이 끝난다. executor는 그 경우에도 막힌다. 상태 파일이 깨진 빌드에서는 기본 worker만 빠진다.

docs-site/src/content/docs/guides/pabcd.md 76-88줄 - 안내문은 아직 목표가 켜져 있으면 IDLE에서도 Stop이 이어 간다고 적고, 24번 한도를 세션이 끝날 때까지의 한도처럼 적는다. 코드는 읽을 수 있는 goalplan이 있을 때만 IDLE에서 이어 가고, 24는 사용자 말이 바뀔 때마다 0부터 다시 센다.

메인테이너의 판단이 필요한 지점
깨진 goalplan을 없는 계획으로 보고 턴을 끝낼지, 파일을 고치라는 한 줄을 남길지다. 상태 파일을 못 읽은 worker를 영수증 없이 보낼지도 여기서 정하면 된다. 이미 있는 .codexclaw에 무시 파일을 채워 넣을지는 이번 범위 밖이다. #255는 새로 만들 때만 쓴다고 본문에 있다.

너의 추천
고친 방향은 이슈와 맞다. 안내문 76-88줄을 코드와 같게 고치고, 깨진 goalplan은 없는 계획과 나누는 편이 낫다. 그 두 가지를 정하면 머지해도 된다.

이 댓글은 grok-bot이 작성했습니다

@lidge-jun
lidge-jun merged commit b558d84 into dev Sep 27, 2026
13 checks passed
@lidge-jun
lidge-jun deleted the codex/issue-train-wp2 branch September 27, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant