Skip to content

test(lab): verify busy-lock ownership without wall-clock timing - #4139

Open
luvs01 wants to merge 2 commits into
lidge-jun:devfrom
luvs01:agent/community-lock-test-contract-20260909
Open

test(lab): verify busy-lock ownership without wall-clock timing#4139
luvs01 wants to merge 2 commits into
lidge-jun:devfrom
luvs01:agent/community-lock-test-contract-20260909

Conversation

@luvs01

@luvs01 luvs01 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

The live community-lock regressions measured filesystem and management-route work against a 500 ms wall-clock limit. A Windows CI shard failed at 506.02 ms before reaching its response assertions, while the unchanged case later passed in isolation. The original host timing cause was not established.

Replace that documented timing oracle with the actual refusal and ownership contract: synchronous community_cache_busy, no protected callback execution, unchanged owner bytes and lock directory identity, and the real management API's 503 / Retry-After: 1 response. Existing stale-lock recovery, quarantine cleanup and public-list integration coverage remain. Update the CL-10 closure document to retain the history of the original 500 ms criterion and explain the new verification method.

This changes two tests and their verification document only. Runtime code and test deadlines are unchanged. The new assertions do not establish a numerical response-time guarantee or directly detect every possible short synchronous polling loop; the current direct-throw/no-polling runtime path remains unchanged and was inspected separately.

Verification

  • Current head: f5b759138788b4e4f688425cfdeeef4867726867, based on dev 386b6a0d9a8acef818b9c40ebd472e4974750199.
  • Added deterministic coverage for the open no-polling review: the live-owner refusal performs exactly one real signal-zero liveness probe. A temporary repeated-reclaim mutation failed with two probes; the restored production path passed 12 tests / 71 assertions on this head. Typecheck, privacy and diff checks passed. The spy is restored in finally. The test does not promise to detect unrelated one-off delay.
  • Current-head author cross-platform CI run 34439155705: 26/26 jobs passed, bound to f5b759138788b4e4f688425cfdeeef4867726867. The checklist CI attestation refers to this completed matrix; local focused results are listed separately.
  • Attempt 1 failed only the unchanged client-connect coordinator fixture: its isolated child exceeded the existing 15-second probe deadline (status null, SIGKILL). The exact case passed locally on this head (1 test / 4 assertions, 4.18 seconds). The original hosted timeout cause remains unproven. The changed lock tests passed; no product code or deadline was changed in response, and successful jobs are retained.
  • Historical large local runs, where mentioned previously, remain incomplete diagnostic evidence and are not reported as green.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

Review readiness checklist

  • All CI tests are green on my local testing.
  • I pushed my PR to the latest dev commit.
  • I resolved all correct Codex and CodeRabbit findings.
  • My PR is ready for review.

Readiness base check: 7 commits behind current dev; within the repository allowance of ten.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 12dab2ce-ef61-4700-9903-60c9122694c4

📥 Commits

Reviewing files that changed from the base of the PR and between 800df62 and f5b7591.

📒 Files selected for processing (2)
  • docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md
  • tests/lab/lab-community-mutation-lock.test.ts

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The change replaces 500 ms contention timing checks with synchronous refusal, one owner-liveness check, and ownership-preservation checks. It updates the mutation-lock test, management endpoint test, and CL-10 regression requirements.

Changes

Community lock contention

Layer / File(s) Summary
Contention contract and lock rejection test
docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md, tests/lab/lab-community-mutation-lock.test.ts
The requirements and mutation-lock test verify synchronous community_cache_busy rejection, skipped protected work, one process.kill(pid, 0) check, unchanged owner.json bytes, and unchanged lock directory identity.
Management response and ownership preservation
tests/lab/lab-public-surfaces.test.ts
The busy-lock endpoint test retains the 503, Retry-After: 1, and community_cache_busy assertions and verifies unchanged owner bytes and lock identity instead of measuring elapsed time.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to f5b75

Community-lock contention coverage now validates the refusal and ownership-preservation behavior directly while retaining the retryable management response contract. No concrete current-head merge risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: the lab tests verify busy-lock ownership preservation without wall-clock timing assertions.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@luvs01

luvs01 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review immutable head 0efdd39e4f56779aac26039e6cce87d792a730b4. This intentionally replaces the documented 500 ms wall-clock acceptance criterion in two live community-lock tests with synchronous busy refusal, no protected callback execution, unchanged owner bytes and lock directory identity, and the actual API's 503 / Retry-After: 1 response. The closure document retains the history of that original timing criterion. Runtime and test deadlines are unchanged; the new checks do not assert a numerical latency guarantee or directly detect every short synchronous polling loop.

Please check that the updated tests retain meaningful public-list and ownership coverage, and that the revised document makes the verification change and its limit clear. Focused and import-connected checks both passed (12 tests / 69 assertions each), along with typecheck/privacy/diff checks. The final rebase added only unrelated devlog closeout commits and retained an identical patch. Full author CI is queued. Use available plain-text inspection without requiring nl; keep the PR Draft pending exact-head gates.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== HEAD and status =='
git rev-parse HEAD
git status --short
printf '%s\n' '== Parent commits =='
git show -s --format='%H%n%P%n%s' HEAD

printf '%s\n' '== Changed files against first parent =='
git diff --name-status HEAD^ HEAD
printf '%s\n' '== Patch against first parent =='
git diff --no-ext-diff --unified=80 HEAD^ HEAD

printf '%s\n' '== Candidate source and documentation files =='
fd -t f . | rg -i 'community|lock|cl-10|closure|cache|public'

printf '%s\n' '== Busy-lock and management-route references =='
rg -n -i -C 5 \
  'community_cache_busy|Retry-After|retry-after|community.*lock|lock.*community|public.*list|list.*public' \
  . \
  -g '!node_modules/**' -g '!dist/**' -g '!build/**' || true

Length of output: 195691


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Immutable head =='
git rev-parse HEAD
printf '%s\n' '== Commit =='
git show -s --format='commit %H%nparents %P%nsubject %s' HEAD

printf '%s\n' '== Files changed by HEAD =='
git diff-tree --no-commit-id --name-status -r HEAD

printf '%s\n' '== Statistical patch summary =='
git diff --stat HEAD^ HEAD

printf '%s\n' '== Exact patch, first parent to HEAD =='
git diff --no-ext-diff --unified=30 HEAD^ HEAD

Length of output: 15191


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Relevant source files =='
fd -t f . src tests | rg '(mutation-lock|community|management-api|lab-public-surfaces|lab-community-mutation-lock)\.(ts|tsx)$'

printf '%s\n' '== Source outlines =='
ast-grep outline src/lab/public/mutation-lock.ts --items all 2>/dev/null || true
ast-grep outline src/lab/public/community.ts --items all 2>/dev/null || true
ast-grep outline src/server/management-api.ts --items all 2>/dev/null || true

printf '%s\n' '== Lock implementation and all direct callers =='
rg -n -C 12 \
  '\bwithPublicEvidenceMutationLock\b|\bcommunity_cache_busy\b|\blistCommunityEvidence\b' \
  src/lab src/server tests/lab \
  -g '*.ts'

printf '%s\n' '== Changed test context =='
sed -n '1,180p' tests/lab/lab-community-mutation-lock.test.ts
sed -n '220,360p' tests/lab/lab-public-surfaces.test.ts

printf '%s\n' '== Management route and typed-error mapping context =='
rg -n -C 15 \
  'community_cache_busy|/api/lab/public/community|PublicEvidenceValidationError' \
  src/server src/lab \
  -g '*.ts'

Length of output: 185260


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Lock acquisition and wrapper =='
sed -n '340,455p' src/lab/public/mutation-lock.ts

printf '%s\n' '== Community listing implementation =='
rg -n -A70 -B12 '^export function listCommunityEvidence\b|^export function listCommunityEvidenceContext\b' \
  src/lab/public/community.ts src/lab/public/operator.ts

printf '%s\n' '== Public-surface API helper and busy test =='
rg -n -A55 -B15 '^async function api\b|^function api\b|busy community lock' \
  tests/lab/lab-public-surfaces.test.ts

printf '%s\n' '== Changed regions with line numbers =='
awk 'NR >= 60 && NR <= 100 { printf "%d:%s\n", NR, $0 }' tests/lab/lab-community-mutation-lock.test.ts
awk 'NR >= 275 && NR <= 320 { printf "%d:%s\n", NR, $0 }' tests/lab/lab-public-surfaces.test.ts
awk 'NR >= 1 && NR <= 55 { printf "%d:%s\n", NR, $0 }' docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md

printf '%s\n' '== Patch whitespace check =='
git diff --check HEAD^ HEAD

Length of output: 18502


@luvs01 Review complete for immutable head 0efdd39e4f56779aac26039e6cce87d792a730b4.

I found no blocking issue.

  • tests/lab/lab-community-mutation-lock.test.ts, Lines 73-92, now tests the direct lock-owner contract. The test verifies the typed community_cache_busy refusal, prevents protected callback execution, preserves owner.json bytes, and preserves the lock directory (dev, ino) identity. This removes the host-dependent timing assertion without weakening the ownership checks.

  • tests/lab/lab-public-surfaces.test.ts, Lines 289-315, still uses the real GET /api/lab/public/community management route. The route remains meaningful public-list coverage because listCommunityEvidenceContext() calls lock-protected listCommunityEvidence(). The test verifies the public HTTP contract: 503, Retry-After: 1, and error.code: "community_cache_busy". It also verifies owner bytes and lock directory identity.

  • src/lab/public/mutation-lock.ts, Lines 371-382, uses synchronous filesystem operations. A non-reclaimable existing lock throws PublicEvidenceValidationError("community_cache_busy", ...) before run() can execute. The revised direct test matches this contract.

  • src/server/management/lab-routes.ts, Lines 271-291, maps that typed error to 503 and sets Retry-After: 1. The management test covers this mapping through the actual route.

  • docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md, Lines 25-36, retains the original 500 ms history. It clearly states the replacement oracle and its limit. It does not claim a latency SLA or complete detection of every short polling implementation.

git diff --check passed during this review. I did not run the test suite in the inspection sandbox. Keep the PR Draft until the queued exact-head GitHub Actions gates complete.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@lidge-jun

lidge-jun commented Sep 9, 2026

Copy link
Copy Markdown
Owner

리뷰 · 우선순위 56 / 80

이 PR은 커뮤니티 증거(public evidence) mutation lock이 이미 살아 있는 소유자에게 막혔을 때, 테스트가 벽시계 500ms 안에 끝나야 한다는 기준을 빼는 작업이다. 현재 dev HEAD 5669b96b7(패키지 2.50.0)의 tests/lab/lab-community-mutation-lock.test.tstests/lab/lab-public-surfaces.test.ts는 둘 다 performance.now()로 경과 시간을 재고 elapsedMs < 500을 요구한다. Windows CI 샤드에서 같은 케이스가 506.02ms에 떨어져 응답 내용 검증까지 가지 못한 기록이 PR 본문에 있다. 제품 코드의 fail-fast/no-polling 계약이 깨진 게 아니라, 공유 CI 부하 때문에 테스트 오라클이 흔들린 것이다.

이 변경은 그 오라클을 고친다. mutation-lock 쪽은 listCommunityEvidence 대신 withPublicEvidenceMutationLock(src/lab/public/mutation-lock.ts 약 362행)을 직접 호출해, 보호 콜백이 실행되지 않았는지(ranProtectedWork === false)와 community_cache_busy가 동기적으로 던져지는지를 본다. 또한 lock 디렉터리의 dev/inoowner.json 바이트가 거부 전후로 같다는 소유권 보존까지 확인한다. management 표면 테스트도 동일하게 벽시계를 제거하고, 503 + Retry-After: 1 + community_cache_busy 응답과 소유권 보존을 함께 본다. 계획 문서 docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md도 "500ms 안에" 문구를 "동기 거절·소유권 보존"으로 맞춰 두었다.

지금 dev 방향(#4127 overflow 분류 직후, 2.50.0 / 안정 2.49.0 발행 대기)에서 이 PR은 제품 런타임을 바꾸지 않는 테스트 안정화다. CL-10 클로저 게이트를 CI 노이즈로부터 지키려는 목적이 분명하고, 범위도 lab 테스트 두 파일 + 계획 문서 한 곳으로 작다. 다만 문서가 "응답 시간 SLA를 새로 만들지 않는다"고 명시한 만큼, 나중에 누군가 다시 벽시계 assert를 넣지 않도록 리뷰/머지 코멘트에 그 의도를 남겨 두는 편이 좋다. CI hygiene/label이 아직 pending이니 정확한 HEAD CI 그린이 머지 조건이다.

라인 - tests/lab/lab-community-mutation-lock.test.ts HEAD의 elapsedMs < 500 — 공유 Windows 러너에서 506ms 실패가 난 오라클. PR은 콜백 미실행 + owner/inode 보존으로 바꾼다.

라인 - tests/lab/lab-public-surfaces.test.ts HEAD의 elapsedMs < 500 — 같은 벽시계 오라클. PR은 503/Retry-After 계약과 소유권 보존을 본다.

경로/심볼 - withPublicEvidenceMutationLock (src/lab/public/mutation-lock.ts) — HEAD에 이미 있고 busy 시 community_cache_busy를 던진다. 테스트가 이 API를 직접 쓰는 쪽이 listCommunityEvidence 경유보다 계약이 분명하다.

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

  • CL-10 클로저 문서/이슈가 아직 "500ms"를 공식 검증 기준으로 적고 있는 다른 곳이 있는지(이 PR이 고친 plan 외)
  • pending hygiene/label 체크가 머지 전에 반드시 그린이어야 하는지, 아니면 lab 테스트 그린만으로 충분한지
  • PR #1510을 리뷰 사이클 동안 열어 두라는 문서 문구가 아직 유효한지(문서에 남아 있음)

너의 추천
CI가 그린이면 dev에 머지한다. 제품 동작 변경이 없고, Windows CI flake를 계약 검증으로 바꾸는 올바른 방향이다. 별도 follow-up은 필요 없다.

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

@github-actions

github-actions Bot commented Sep 9, 2026

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 9, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

✅ READY

  • all PR quality gates passed; the review readiness checklist is complete.

Review readiness checklist

  • ✅ All CI tests are green on my local testing.
  • ✅ I pushed my PR to the latest dev commit.
  • ✅ I resolved all correct Codex and CodeRabbit findings.
  • ✅ My PR is ready for review.

4/4 boxes ticked.

This pull request is already Ready for Review.
The review-ready label marks this PR as ready; review automation runs independently.
Maintainers: @lidge-jun @Ingwannu

@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 0efdd39 to bfc99a8 Compare September 9, 2026 23:26

luvs01 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review current head bfc99a8257b954f993fb0db8fa596d0b8ebb500f, rebased onto 5b8f1fcfad0e17318d919edf937b94744e393a36. git range-diff confirms the authored test/documentation patch is unchanged from the previously reviewed 0efdd39e4 head. The two changed test files and closure document were unchanged in the base delta. The current changed-test selection passed 12 tests / 69 assertions across 2 of 1,156 files, and typecheck, privacy scan and diff check passed. Full author CI is running at https://github.com/luvs01/opencodex/actions/runs/34416958829 . Verify that the refusal/ownership contract and the explicit lack of a numerical latency guarantee remain accurate; no runtime or timeout change is included.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head="bfc99a8257b954f993fb0db8fa596d0b8ebb500f"
base="5b8f1fcfad0e17318d919edf937b94744e393a36"
previous="0efdd39e4f56779aac26039e6cce87d792a730b4"

printf '%s\n' '== Immutable HEAD =='
git rev-parse HEAD
git show -s --format='commit %H%nparents %P%nsubject %s' HEAD
git merge-base --is-ancestor "$base" "$head"
printf 'base-is-ancestor: %s\n' "$?"

printf '%s\n' '== Current authored delta =='
git diff --name-status "$base" "$head"
git diff --stat "$base" "$head"
git diff --check "$base" "$head"

printf '%s\n' '== Rebased patch equivalence =='
git range-diff "${previous}^1..${previous}" "${base}..${head}" || true
git diff --no-ext-diff --unified=45 "$base" "$head" -- \
  tests/lab/lab-community-mutation-lock.test.ts \
  tests/lab/lab-public-surfaces.test.ts \
  docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md

printf '%s\n' '== Candidate-file outlines =='
ast-grep outline tests/lab/lab-community-mutation-lock.test.ts --items all
ast-grep outline tests/lab/lab-public-surfaces.test.ts --items all
ast-grep outline src/lab/public/mutation-lock.ts --items all
ast-grep outline src/server/management/lab-routes.ts --items all

printf '%s\n' '== Changed-test and closure-document context =='
sed -n '55,110p' tests/lab/lab-community-mutation-lock.test.ts
sed -n '260,330p' tests/lab/lab-public-surfaces.test.ts
sed -n '1,80p' docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md

printf '%s\n' '== Busy refusal implementation and route mapping =='
rg -n -C 16 '\bwithPublicEvidenceMutationLock\b|community_cache_busy' \
  src/lab/public/mutation-lock.ts \
  src/lab/public/community.ts \
  src/server/management/lab-routes.ts

printf '%s\n' '== Timeout and elapsed-time changes in the authored delta =='
git diff --no-ext-diff -U5 "$base" "$head" | rg -n -i \
  'timeout|deadline|elapsed|performance\.now|setTimeout|500\s*(ms|milliseconds)' || true

printf '%s\n' '== Exact-head CI status =='
gh api repos/luvs01/opencodex/actions/runs/34416958829 \
  --jq '{head_sha, status, conclusion, event, html_url, updated_at}'

Length of output: 49823


@luvs01 Review complete for immutable head bfc99a8257b954f993fb0db8fa596d0b8ebb500f.

I found no blocking issue.

  • git range-diff 0efdd39e4^..0efdd39e4 5b8f1fcf..bfc99a82 reports the authored commit as equivalent. The base delta changes only the two test files and docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md.

  • In tests/lab/lab-community-mutation-lock.test.ts, Lines 73-91, the direct withPublicEvidenceMutationLock() test verifies the relevant refusal contract. A live owner produces PublicEvidenceValidationError with code community_cache_busy. The callback does not run. The test also preserves exact owner.json bytes and the lock directory (dev, ino) pair.

  • In src/lab/public/mutation-lock.ts, Lines 371-382, an existing non-reclaimable lock causes PublicEvidenceValidationError("community_cache_busy", ...). The throw occurs before run() is called. The test matches this implementation contract. The while (true) only retries after successful stale-lock reclamation or an ENOENT reclaim race. It does not poll a live owner.

  • In tests/lab/lab-public-surfaces.test.ts, Lines 289-315, the test retains public-list coverage through GET /api/lab/public/community. It verifies 503, Retry-After: 1, and error.code: "community_cache_busy". It also verifies owner bytes and lock-directory identity after the request.

  • In src/server/management/lab-routes.ts, Lines 271-276, community_cache_busy maps to 503 and Retry-After: 1. The management test covers this mapping through the management API.

  • In docs/superpowers/plans/2026-08-14-cl10-final-review-closure.md, Lines 25-36, the document clearly replaces the under 500 ms test requirement with synchronous refusal and ownership preservation. It explicitly states that the changed oracle does not establish a response-time SLA. This wording also correctly states the verification limit.

  • The authored delta removes only the two performance.now() and elapsedMs < 500 assertions. It does not modify runtime behavior, test deadlines, or timeout configuration.

git diff --check passed. I did not run tests in this inspection environment. The exact-head workflow for bfc99a8257b954f993fb0db8fa596d0b8ebb500f remains in_progress. Keep the PR Draft until the exact-head required checks complete successfully.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from bfc99a8 to 800df62 Compare September 10, 2026 01:30

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Checked the rebased head 800df62 on current dev c15a98c. The runtime still rejects a non-reclaimable live owner before protected work; the loop only retries after reclamation or a disappearing-lock race. The management test still exercises the public community-list route and its 503 / Retry-After: 1 mapping, rather than just a mocked helper.

The replacement assertions add owner-byte and directory-identity checks, and the closure document explicitly records removal of the 500 ms oracle. These tests do not prove a numerical latency guarantee or detect every possible synchronous wait; that limitation is stated rather than hidden. No runtime, workflow timeout, or Windows/Bun workaround is removed.

Author CI run 34425724772 is independently verified successful at this exact head. No new source blocker found in this bounded test/documentation change. The PR is still Draft with an incomplete readiness checklist, so please finish the author readiness step before final integration review. I have not changed Draft status or merged it.

@luvs01
luvs01 marked this pull request as ready for review September 10, 2026 02:33
@luvs01
luvs01 requested a review from lidge-jun as a code owner September 10, 2026 02:33
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 10, 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-10T06:35:29.533356Z f5b7591 Draft marked ready
ℹ️ 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.

@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: 800df62de6

ℹ️ 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 thread tests/lab/lab-community-mutation-lock.test.ts Outdated
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 800df62 to f5b7591 Compare September 10, 2026 04:57
@github-actions
github-actions Bot marked this pull request as draft September 10, 2026 04:57

@Ingwannu Ingwannu left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

The f5b7591 increment adds meaningful coverage beyond the previously equivalent rebase: it spies on the real process.kill path, requires exactly one call with (process.pid, 0), retains the refusal/owner assertions, and restores the spy in finally. The document correctly limits the claim to repeated owner probes rather than all possible delays. I inspected this delta but did not run the reported mutation experiment locally. Author CI 34439155705 is currently queued at this head, so the earlier green head does not settle this revision. Keep the Draft/readiness gate until that evidence completes.

@luvs01
luvs01 marked this pull request as ready for review September 10, 2026 06:33
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). review-ready

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants