Skip to content

test(clients): retain phase evidence for coordinator refusal timeouts - #4414

Merged
lidge-jun merged 33 commits into
devfrom
codex/260912-operations-client-probe
Sep 13, 2026
Merged

test(clients): retain phase evidence for coordinator refusal timeouts#4414
lidge-jun merged 33 commits into
devfrom
codex/260912-operations-client-probe

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

Retain fixed transaction-phase and elapsed-time evidence when the client-connection fixture fails, without exposing raw child output. Require the coordinator-specific CONFIG_MUTATION_LOCK_UNAVAILABLE cause in the refusal test so an earlier lifecycle error cannot pass as coordinator coverage.

The Windows failure in run34693005384/job103551824677 ended the child after15244ms, before result assertions. The failing head and current dev have identical scoped source; the log cannot distinguish import, connect/rollback delay, or result publication followed by a retained child. This PR improves diagnosis and the test oracle; it does not claim a production timeout fix.

Verification

  • Local tests of every size, build, typecheck and install: NOT RUN, explicitly prohibited.
  • Manual CI dispatch and rerun: HOLD by maintainer direction; none requested.
  • git diff --check: passed. Independent design and entry reviews passed; independent implementation source review passed, including c720dc5 follow-up for missing stderr.
  • The existing15-second kill deadline, nonzero-exit rejection, result parsing, fixture cleanup, no-key/no-artifact assertions and credential zeroing remain. Controls cover retained-child failure and sanitized malformed markers.
  • No production code, ACL policy, deadline budget, unrelated fixture, or user configuration changed. The existing test(clients): bound transaction fixture child completion #4004 child-boundary repair remains in ancestry.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed; diagnostic-only plan records evidence limits.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults; independent source review confirms bounded diagnostic projection. Windows execution remains unverified.

lidge-jun and others added 25 commits September 12, 2026 13:53
Co-authored-by: Cortes Ventures <admin@cortesventures.com>
Co-authored-by: SB Yoon <44089734+yansigit@users.noreply.github.com>
Co-authored-by: Kosta Milovanovic <kosta963@gmail.com>
Share browser session readiness with the shell, explicitly refresh retained resources after pairing, distinguish authentication/permission/network/shape failures, and preserve labelled stale data only for non-auth failures. Show hub identity and current-origin pairing command with copy and cancellation feedback. Local suites NOT RUN; hosted build and rendered review follow.
Carry #4119 with current structured-output fields preserved, retained-byte accounting, and conditional-async MiMo delegation.

Co-authored-by: DamnUi <damnui@users.noreply.github.com>
…ence

Carry #4317 intent with direct local transport, pre-header loopback validation, explicit management ingress selection, redirect refusal and admin environment removal from the inference child. Preserve the catalog deadline and post-read config reload. Local suites NOT RUN; hosted regressions follow.

Co-authored-by: Cortes Ventures <admin@cortesventures.com>
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

@github-actions github-actions Bot added the chore Maintenance, CI, tests, refactors, or build changes (not a user-facing bug or feature). label Sep 12, 2026
@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 38 / 80

이 PR은 제품 코드가 아니라 테스트 진단이다. Windows CI(run34693005384)에서 client-connect 트랜잭션 자식이 기존 15초 데드라인에 죽어, 실패가 import 지연인지 connect/rollback인지 결과 출력 후 좀비 자식인지 로그로 구분이 안 됐다. 스코프는 tests/clients/client-connect.test.ts와 플랜 문서 devlog/_plan/260912_operations/120_coordinator_probe.md뿐이고, ACL·타임아웃 예산·프로덕션 소스는 안 건드린다. 현재 dev(aa0dd5086)와도 “스코프 소스는 동일하고 진단만 보강”이라는 PR 주장과 맞다. #4004 자식 경계 수리가 ancestry에 남아 있고, 이 PR은 그걸 대체하지 않는다.

변경 요지는 세 가지다. (1) 자식 스크립트가 stderr에 고정 JSON 페이즈 마커(module_loadresult_published)만 쓰고, elapsedMs는 비음수 안전 정수 상한(600_000)이다. (2) 부모 transactionProgress는 stderr 꼬리 8KiB만 훑고 allowlist 페이즈만 파싱하며, 실패 메시지에 phase/elapsed만 실어 raw stdout/stderr·경로·시크릿은 안 올린다. (3) 코디네이터 거절 테스트는 cause 체인을 유한 깊이로 걸어 CONFIG_MUTATION_LOCK_UNAVAILABLE 존재 여부를 boolean으로만 노출해, 더 앞선 lifecycle 에러가 코디네이터 커버로 통과하지 못하게 한다. follow-up 커밋 c720dc540은 stderr 없이 죽은 spawn도 progress 없이 보존한다.

초안(draft)이고 로컬 스위트/호스티드 재실행은 HOLD다. 그래서 “윈도우 실패 루트코즈를 고쳤다”는 주장은 PR 스스로도 안 한다. 진단 슬라이스로는 방향이 맞고, 마커 프라이버시·기존 15초 kill·cleanup·자격증명 제로잉 유지도 본문/디프와 일치해 보인다. 다만 가치가 운영/CI 가시성에 한정되고, 실제 Windows 재실행 전에는 merge 급박도가 낮다.

tests/clients/client-connect.test.ts · transactionProgress - allowlist 외 phase/비정상 elapsed/비밀 필드는 무시되어 진단 누출을 막는다(의도에 맞음)
tests/clients/client-connect.test.ts · ClientStateProbeError - 실패 메시지에 phase/elapsed만 추가; raw child output은 여전히 없음
tests/clients/client-connect.test.ts · runTransactionScenario 자식 스크립트 - writeSync(2) 마커와 coordinatorUnavailable boolean은 진단용; stdout JSON 스키마가 살짝 늘어 기존 파서 가정이 깨지지 않는지 확인 필요
tests/clients/client-connect.test.ts · 코디네이터 oracle - CONFIG_MUTATION_LOCK_UNAVAILABLE 전용 boolean 주장은 맞지만, Windows에서 그 코드까지 도달하는지는 아직 미검증
devlog/_plan/260912_operations/120_coordinator_probe.md - HOLD/미실행을 명시해 과대 주장을 피함(좋음)

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

  • draft를 언제 ready로 올릴지(호스티드 Windows job 한 번 돌리기 전/후)
  • 진단 전용 PR을 operations 트레인에 묶을지, 단독으로 dev에 넣을지
  • stdout에 coordinatorUnavailable을 넣는 스키마 확장이 다른 fixture 소비자를 깨는지

너의 추천

  • draft 유지. 마커 프라이버시와 oracle 강화는 합리적이나, 제품 회귀가 아니라서 우선순위는 낮다.
  • 메인테이너가 Windows CI 재실행을 허가하면 그때 ready → merge. 그 전에는 “진단 보강 완료, 원인 미확정”으로 두면 된다. 프로덕션 타임아웃/ACL 변경은 이 PR에 넣지 말 것(이미 안 넣음).

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

@github-actions

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • UI screenshot required.

What to do

  • Add a screenshot of the UI change to the PR description.

This pull request was already a draft. Its draft status will be preserved after every issue above is resolved.

@lidge-jun
lidge-jun merged commit 388c9d1 into dev Sep 13, 2026
4 of 5 checks passed
@lidge-jun
lidge-jun deleted the codex/260912-operations-client-probe branch September 13, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance, CI, tests, refactors, or build changes (not a user-facing bug or feature).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant