Skip to content

test(react): contain native reset updates inside act - #153

Draft
seonghobae wants to merge 10 commits into
fix/atomic-controlled-sync-200from
fix/collaborative-reset-act-warning-20260811
Draft

test(react): contain native reset updates inside act#153
seonghobae wants to merge 10 commits into
fix/atomic-controlled-sync-200from
fix/collaborative-reset-act-warning-20260811

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Purpose and causal boundary

Keep native-form reset test updates inside React's asynchronous test boundary. This lane carries the narrowly scoped repair originally prompted by a hosted collaborative reset diagnostic in #149: both dispatching the native reset event and settling its existing queued task belong inside async act().

The complete net delta is src/components/editorFormSerialization.test.tsx. The helper still returns whether the cancelable native reset was allowed, and existing cases still cover canceled resets, external form association, synchronous form values and host-authorized collaborative reset handling. It does not change editor/runtime behavior, public APIs, collaboration authority, dependencies, workflows, release metadata or security policy.

Canonical owner stack

This Draft test-only lane is stacked on #201 (fix/atomic-controlled-sync-200), which inherits the #176 and #402 prerequisites. Integration uses ordinary merge history and preserves this lane's unique helper repair. #201 remains the standalone editor source owner; this PR does not duplicate or replace its controlled-input, composition, teardown or policy implementation.

Protected main remains shipped implementation authority. Dependency proposals and locally verified candidates are not protected or released behavior. Do not carry the former body's stale head, protected-main SHA, workflow IDs or mergeability claims forward as current evidence; dated verification belongs in exact-head comments.

Verification and integration discipline

Before any lifecycle transition, refetch the exact candidate and live parent/protected base, ancestry, active writers, changed paths, formal reviews/threads, applicable repository and central checks, and live protection/rulesets. Preserve the full test denominator and failure logs, and distinguish constrained local worker settings from hosted/default execution. Local unit, browser and package success does not establish a protected merge, publication, central review or independent approval.

Keep Draft and integrate the parent first. Missing, queued, skipped-required, failed, stale, predecessor, status-only, wrong-checkout or model-only evidence remains non-passing. Release issue #118 remains the stable-release operational-acceptance boundary; this test-only repair does not authorize a tag or publication. Do not self-approve, bypass or weaken gates, force-push, destructively rebase, create a competing writer or discard any valid predecessor delta.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

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.

@opencode-agent opencode-agent Bot added priority: medium Normal-priority or P2 work status: draft Draft pull request type: test Test coverage, fixtures, fuzzing, or validation labels Aug 22, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

Restacked the unchanged test-only React reset boundary onto protected main@a40b9489665bed7d95af619a6079b9c51cab299a and propagated the exact event-specific Python matrix contract. Exact head: f5314a3f29c014482c97fc6b921ed64fedc2f8ac. Fresh local proof: focused native form serialization 10/10; TypeScript typecheck; full Vitest 156 files / 881 tests with 100% statements, branches, functions, and lines; Python support contract 4/4. Runtime/editor behavior remains unchanged. Draft and independent-approval gates remain unchanged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Remove the duplicated Python support contract changes from this form-reset branch. PR #405 remains the single writer while this branch keeps its collaborative reset warning fix.

Signed-off-by: Seongho Bae <seonghobae@users.noreply.github.com>

Commit-Message-Assisted-by: Claude (via Claude Code)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae
seonghobae changed the base branch from main to fix/atomic-controlled-sync-200 September 6, 2026 07:35
@seonghobae

Copy link
Copy Markdown
Contributor Author

Canonical editor-owner restack and current proof — 2026-09-06

Candidate 636ffcd19f6266cefc2ff9d0f3d9ed9451515999 inherits #201 f9a7879b66ea7c9590caa0d0465c84050791aa6c through an ordinary conflict-free merge. The complete net delta against that source owner is still only src/components/editorFormSerialization.test.tsx: 7 additions / 4 deletions retaining the existing async test boundary around native reset dispatch and its queued-task settlement. No runtime behavior, dependency, shared workflow, package or release delta is re-owned here.

The former body contained obsolete head/base, workflow and release-generation snapshots. It now describes the durable test scope and canonical stack; none of those predecessor receipts is transferred to this candidate.

Fresh final-head verification:

  • The initial default-worker coverage run passed 1,020 tests and failed the unchanged 3,000-paragraph Word-capacity test at the existing 5-second timeout. Another full suite was running concurrently. That failure remains in the attempt denominator; contention is a hypothesis, not established causation.
  • The unchanged capacity test passed separately. The complete pnpm coverage --maxWorkers=2 run then passed all 1,021 tests in 176 files with 100% statements, branches, functions and lines, without unhandled errors or React act diagnostics. Neither the fixture, test selection, assertions nor timeout was changed.
  • Full build and packed-package consumer verification passed after that complete coverage run.
  • All 70 source-browser cases passed with --workers=1, zero unexpected/skipped/flaky cases and no global errors. The receipt binds this candidate and run b511bc33-0ade-40b3-ad64-ff0f1cdb4d89.
  • Project-local macOS CPython 3.14.6 Office verification passed 173 tests with 100% statements, branches and docstrings, using declared development dependencies rather than the Linux-only CI wheel lock.
  • The retained package SHA-256 is b666296e207d6636e2610e03d0fe52768650464842b32851035f1356ffc63600, identical to the source owner's artifact as expected for a test-only child.

Keep Draft and integrate the source owner first. These bounded-worker local results do not establish default/hosted-load reliability, installed-tarball browser identity, physical-device/OS-IME acceptance, a performance target, current central review, independent approval, protected merge or release. No gate, timeout, principal or allowed authority was weakened, and no valid predecessor delta was dropped.

@seonghobae

Copy link
Copy Markdown
Contributor Author

CodeQL dispatch admission, not a source finding — 2026-09-06

Current PR head is 636ffcd19f6266cefc2ff9d0f3d9ed9451515999, Draft on
#201 fix/atomic-controlled-sync-200 at
f9a7879b66ea7c9590caa0d0465c84050791aa6c (fresh 10:09 UTC read).

Consumer run 34019468660,
attempt 1, was created at 07:33 UTC, before the parent retarget. Its actions
job 101454466149
reported dispatch success and pending verdict at 09:03 UTC. That caller
failure alone was not a scan finding.

The actual central results are now terminal:

  • 34023584186 / 101460504518
    failed dispatch admission at 10:04 UTC.
  • 34023585025 / 101460507129
    failed at the same boundary at 10:05 UTC.
  • Both recorded actor and sender opencode-agent[bot], while the configured
    scheduler identity was github-actions[bot]. Both scans were skipped.
  • Central workflow source is 43024633eba9d96b0456970391360da5a171fbda,
    distinct from the Inkspan candidate. A third dispatch,
    34023815225,
    was queued at the last lookup; no outcome is inferred for it.

This is the same bounded scheduler-identity rejection observed in #402's
OpenCode lane. Evidence was sent to the existing central coordination owner;
no competing source change, consumer blind rerun, new model invocation,
principal/permission change, or gate relaxation was performed.

The older event also supplied base main@0b88c16f14f51b54a87eb7164f0edfb06dd60902
rather than the current #201 parent. After authorized admission recovery, any
fresh verification must bind the then-current head and base; the old event
must not be relabeled as current-parent evidence. Keep Draft and preserve all
applicable central and protected-integration gates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: medium Normal-priority or P2 work status: draft Draft pull request type: test Test coverage, fixtures, fuzzing, or validation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant