Skip to content

Release codexclaw 0.2.40 - #282

Merged
lidge-jun merged 108 commits into
mainfrom
dev
Sep 29, 2026
Merged

lidge-jun merged 108 commits into
mainfrom
dev

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Promotes dev at ff3f5af5 to main for codexclaw 0.2.40.

It contains the 2026-09-27 issue train (#269-#272: PABCD trigger narrowing, the worker evidence gate, IDLE goal release, the per-turn Stop budget, the PABCD off switch, .codexclaw/.gitignore, agent-created thread permissions, goalplan pending decisions), the 2026-09-30 issue train (#278 dispatch verifier coverage and effects preflight, #279 Interview assumption provenance, #280 goalplan decision options), and the 0.2.40 version bump and CHANGELOG (#281).

dev at ff3f5af5: push CI 36614079312, Packed install lifecycle 36614079283 and WSL 36614079194 all passed. After merge, release.yml runs with the main merge SHA as expected_sha.

docs(plan): issue train 0927 delivery record
…ults; align DISPATCH-VERIFIER-01 prose; +6 tests, badges 3729
Dispatch receipts require a matching verifier result per command; optional verifier effects preflight (#276, #277)
Interview: separate inferred assumptions from confirmed requirements at handoff (#275)
Goalplan decisions record offered options; recommendation must be one of them (#262 follow-up)
Release codexclaw 0.2.40 (version bump and CHANGELOG)
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 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-29T19:13:51.259256Z ff3f5af 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

리뷰 · 우선순위 44 / 80

이 PR은 dev의 끝 커밋 ff3f5af5를 main으로 올려서 codexclaw 0.2.40을 내는 승격 PR이에요. 새 기능을 여기서 처음 만든 게 아니라, 이미 dev에 들어간 이슈 기차를 한 번에 실어 나릅니다. 2026-09-27 기차(#269–#272: PABCD 트리거 좁히기, 워커 증거 게이트, IDLE 목표 해제, 턴당 Stop 한도, PABCD 끄기 스위치, .codexclaw/.gitignore, 에이전트 스레드 권한 안내·옵트인, goalplan 대기 결정)와 2026-09-30 기차(#278 디스패치 verifier 커버리지·effects preflight, #279 Interview 가정 출처, #280 goalplan 선택지), 그리고 버전·CHANGELOG 범프(#281)가 들어 있어요. 루트·cli·gui·컴포넌트 아홉 곳은 0.2.40, plugin.json과 inventory는 0.2.40+codex.20260929183231, 훅 31개·테스트 배지 3,737이 서로 맞아요. docs-site만 0.0.1인데 버전 검사에서 빼 둔 자리예요. 같은 SHA의 push CI(36614079312)·Packed install·WSL은 이미 초록이에요. v0.2.40 태그와 GitHub Release는 아직 없고, 머지 뒤 release.yml에 main 머지 SHA를 expected_sha로 넣는 게 다음 단계예요. 지금 열려 있는 다른 PR은 이 승격뿐이에요.

라인 - PR 체크 test (windows-latest, …) (run 36615865372) — 같은 헤드의 push CI는 이미 통과했는데, 이 PR 이벤트 쪽 Windows 샤드가 아직 pending이라 mergeStateStatus가 UNSTABLE이에요. main에 올리기 전에 PR 화면의 집계 ci까지 초록인지 한 번 더 보면 안전해요.
라인 - CHANGELOG.md ## [0.2.40] - 2026-09-29 — 오늘(출시 준비일)은 2026-09-30이에요. #281 리뷰에서도 같은 날짜 어긋남을 적었어요. 커밋일(9/29)로 둘지, main에 올린 날(9/30)로 고칠지 한 줄만 정하면 돼요.
라인 - GitHub compare main...dev는 diverged(main만의 머지 커밋 11개)로 보여요. 내용은 예전 dev→main 승격 머지 커밋 자리이고, 이 PR은 MERGEABLE이에요. 충돌로 보이지만 보통은 무시해도 되는 모양이에요.
라인 - 이슈 #262 — goalplan 결정·options는 실렸지만 이슈는 아직 OPEN이에요. withdrawn 같은 남은 조각은 0.2.40 밖으로 두는 선택이 CHANGELOG·플랜과 같아요. 릴리스 노트에 “부분 반영”이 드러나는지만 보면 돼요.

메인테이너의 판단이 필요한 지점

PR 이벤트 CI가 다 초록이 될 때까지 머지를 기다릴지, 이미 통과한 push CI·Packed install·WSL만으로 승격할지. CHANGELOG 날짜를 9/29로 둘지 9/30으로 고칠지. #262를 0.2.40에 부분 닫기로 남길지, 릴리스 전에 한 줄 코멘트만 달지.

너의 추천

승격 대상은 main이 맞고, 닫을 중복 types/config PR은 없습니다. 버전·inventory·훅 수·테스트 배지는 이미 맞아요. PR 이벤트 Windows/macOS가 초록이 되면 이대로 머지하고, 머지 직후 본문대로 release.yml에 그 main SHA를 expected_sha로 넣어 dry_run 한 뒤 실제 배포로 가세요. CHANGELOG 날짜만 팀 규칙에 맞게 한 줄 맞추면 충분합니다.

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

@lidge-jun
lidge-jun merged commit 3c1459a into main Sep 29, 2026
28 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ff3f5af5f4

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +273 to +274
.filter((effect): effect is VerifierEffect => !!effect && typeof effect === "object"
&& typeof effect.command === "string" && Array.isArray(effect.expectedWrites));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reject malformed verifier effects during preflight

Make this filter enforce the full VerifierEffect shape, including nonblank write paths, a nonblank command, and a boolean runInIsolation. When a shared-read packet reaches verifierPreflight without first passing validatePacket, an entry such as { command: "npm test", expectedWrites: [], runInIsolation: "yes" } is currently treated as a valid read-only declaration and returns needsIsolation: false, even though the function explicitly promises to ignore malformed entries. This can cause an untrusted verifier declaration to run in the shared checkout rather than fail closed.

Useful? React with 👍 / 👎.

Comment on lines +261 to +263
for (const clause of unquoted.split(/[.;!?]\s*|,\s*(?=(?:please\s+)?(?:use|run|start|invoke)\b)|\s+but\s+|\s*(?:하지만|그런데)\s*/i)) {
const text = clause.trim();
if (text && !NEGATED_LEAD.test(text) && !NEGATED_TAIL.test(text)) result.push(text);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the requested mode after Korean negation

Split Korean 말고 contrasts before discarding negated clauses. For an explicit request such as cxc-loop 말고 cxc-pabcd로 계획 진행해 (“not cxc-loop; proceed with a cxc-pabcd plan”), the entire line remains one clause and NEGATED_TAIL removes it, so both detectors return no request and the requested Plan guidance is silently skipped. The equivalent English contrast is already separated and handled correctly; the Korean requested half should likewise survive.

Useful? React with 👍 / 👎.

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