Skip to content

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

Merged
lidge-jun merged 2 commits into
lidge-jun:devfrom
luvs01:agent/community-lock-test-contract-20260909
Sep 14, 2026
Merged

test(lab): verify busy-lock ownership without wall-clock timing#4139
lidge-jun merged 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

Exercise the public community-mutation lock boundary with contention tests. Both mutation-lock and public-surface tests preserve the existing ownership and refusal contract.

Current verification

Head: 5ad26c1dd632f009b3454b52a894bd6b9b576119.

Focused lab tests: 12 pass, 0 fail, 71 assertions. Typecheck, structure and privacy checks passed.

Full cross-platform CI has not been verified for this published head. Earlier CI run passed a different head and is historical evidence only. Rebase and focused checks do not turn that result into a full-suite pass on this head.

Review readiness evidence

Rebased onto dev at 15fbd49f3 and pushed; the branch was 0 commits behind at push time. Published head is 2a8ca25cb.

Local verification on that head: bun run typecheck, bun run structure:check, bun run privacy:scan and git diff --check all pass. bun test tests/lab/lab-community-mutation-lock.test.ts tests/lab/lab-public-surfaces.test.ts reports 12 pass / 0 fail.

Hosted cross-platform CI has not been dispatched on this head. On current dev the windows shard fails independently of this pull request: tests/clients/desktop-app-restart-posix.test.ts fails 9 of 17 on Windows because isUnderRoot builds its boundary from path.sep alone and because the darwin/linux currentUid() helpers call process.getuid(), which does not exist on Windows. That is a dev regression, not a defect of this change, and it is fixed separately in #4564. The first box is ticked on the local run recorded above, which is what its wording asks for.

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.

@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 clearly describes the main test change: replacing wall-clock timing checks with busy-lock ownership verification. It is concise and directly matches the changed lab tests.
✨ 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-13T09:37:08.652555Z 5ad26c1 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
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from f5b7591 to c4542a8 Compare September 11, 2026 11:58
@github-actions
github-actions Bot marked this pull request as draft September 11, 2026 11:59
@luvs01

luvs01 commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Ready-for-review evidence

Rebased onto the current dev (f40e43234, package 2.52.0) and force-pushed with a lease on the previous head. The branch was behind the released v2.51.0 tag, so tests/ci-workflows/release-version-line.test.ts would have failed on any re-run; it is current now.

Local runbun test tests/lab/lab-community-mutation-lock.test.ts tests/lab/lab-public-surfaces.test.ts: 12 pass / 0 fail.

No unresolved Codex or CodeRabbit findings on this PR.

@github-actions
github-actions Bot marked this pull request as ready for review September 11, 2026 12:55
@luvs01

luvs01 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up to Ingwannu's 2026-09-12 review: the requested refresh was performed afterward. Current head 4b524e9 was committed at 2026-09-12T05:39:59Z on dev@81f6cd591. Both reviewed upstream runs (34601671513 and 34601671501) passed the older 179e493 head; they are not evidence for this revision.

Its exact-head fork run 34676995586 completed red. Besides recurring shared failures, page-loading-contract.test.tsx:304 failed in Combos expires a quota block before a new response: active: Save was still disabled. The 20.44 ms log value is elapsed test duration, not a timeout budget or proof of flakiness. No runtime/test weakening was made to clear it.

Dev has advanced again to c27a483; this branch remains mergeable, but the latest-dev and CI readiness boxes are unchecked. The test-only patch remains a candidate requiring integration validation before merge, rather than relying on the older green runs.

@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 4b524e9 to 7f0a492 Compare September 12, 2026 09:46
@Ingwannu

Copy link
Copy Markdown
Owner

Follow-up to your current-head CI report: the active reactivation Save-disabled failure now has a landed, source-specific fixture fix in #4385, commit 657e068 (present on current dev).

I inspected that correction: gui/tests/page-loading-contract.test.tsx captures the zero-delay activation callback, asserts exactly one callback, invokes it inside act, and verifies the old expiry timer was cancelled. The final enabled-Save and preserved-draft assertions remain. It does not explain the 20.44ms value as a timeout or remove the failing assertion.

Please incorporate the current baseline/integration fixes before the next full run and keep unrelated failures individually accounted for. This is a concrete resolution candidate for that shared GUI fixture, not proof that every failure in #4139 is fixed, and the older green 179e493 runs remain historical only. I have not rerun or approved this new revision automatically.

@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 7f0a492 to 4e927af Compare September 12, 2026 23:09
@github-actions
github-actions Bot marked this pull request as ready for review September 13, 2026 01:54
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 4e927af to 2233172 Compare September 13, 2026 03:07
@github-actions
github-actions Bot marked this pull request as draft September 13, 2026 03:11
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 2233172 to efd8b78 Compare September 13, 2026 04:10
@luvs01

luvs01 commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Updated to efd8b78 on dev@dc33113a9. This head includes both the activation-callback fixture fix 657e068 and the Windows Devin fixture correction 720ea97. The two authored contention tests still preserve owner identity/bytes, synchronous refusal and 503/Retry-After behavior. Focused tests: 12 pass, 0 fail, 71 assertions; typecheck, structure and privacy checks passed. Full validation of this head is pending at https://github.com/luvs01/opencodex/actions/runs/34737277447; the PR remains Draft.

@luvs01
luvs01 marked this pull request as ready for review September 13, 2026 04:46
@github-actions
github-actions Bot marked this pull request as draft September 13, 2026 05:19
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from efd8b78 to 5ad26c1 Compare September 13, 2026 09:24
@luvs01
luvs01 marked this pull request as ready for review September 13, 2026 09:28
@github-actions
github-actions Bot marked this pull request as draft September 13, 2026 09:30
@luvs01
luvs01 marked this pull request as ready for review September 13, 2026 09:34
@github-actions
github-actions Bot marked this pull request as draft September 13, 2026 12:30
@luvs01
luvs01 force-pushed the agent/community-lock-test-contract-20260909 branch from 5ad26c1 to 2a8ca25 Compare September 14, 2026 01:07
@github-actions
github-actions Bot marked this pull request as ready for review September 14, 2026 01:10
@lidge-jun
lidge-jun merged commit 018a585 into lidge-jun:dev Sep 14, 2026
29 checks passed
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