Skip to content

test(input): add multilingual browser input baseline - #380

Draft
seonghobae wants to merge 52 commits into
fix/atomic-controlled-sync-200from
test/cjk-input-assurance-376
Draft

test(input): add multilingual browser input baseline#380
seonghobae wants to merge 52 commits into
fix/atomic-controlled-sync-200from
test/cjk-input-assurance-376

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Refs #376.

Purpose

Draft real-browser input-assurance child for #201. This lane owns browser harness/spec/config evidence only and does not write or re-own src/** production semantics.

Stack ownership

Do not embed mutable head/base SHAs, workflow run IDs, review counts, or mergeability snapshots here as durable truth. Refetch them immediately before every action.

Browser-assurance scope

The child owns the committed browser harness/config/specs for multilingual/CJK and grapheme input, synthetic composition lifecycle, composition/clipboard interactions, native-form serialization, active-composition teardown/remount, read-only clipboard behavior, touch/pointer/focus geometry, reflow behavior, and loopback-only browser requests.

Its intended net delta is the browser-assurance set under:

  • tests/browser/harness.ts;
  • tests/browser/input-harness.html;
  • tests/browser/input-harness.ts;
  • tests/browser/playwright.config.ts;
  • tests/browser/vite.config.ts;
  • tests/browser/specs/composition-clipboard.browser.spec.ts;
  • tests/browser/specs/composition-native-form.browser.spec.ts;
  • tests/browser/specs/read-only-clipboard.browser.spec.ts;
  • tests/browser/specs/touch-clipboard.browser.spec.ts;
  • tests/browser/specs/stylesheet-identity.browser.spec.ts.

The accompanying docs/TEST_STRATEGY.md and docs/doctoring/browser-stylesheet-provenance.md record assurance methodology and limits. The actual input editor and the shared focus/print CSS URL select the extracted package stylesheet in package mode or the local build in source mode. Archive-digest metadata alone does not prove which CSS the browser loaded; the regression checks loaded identity and shared-route bytes. Source and package runs require separate current-head proof. The matching collaboration entry and lazy actual-renderer probe also follow that selection; the shared normal-color regression supports downstream forced-colors inspection without copying renderer markup.

The shared tests/browser/evidenceContract.ts also rejects an absent package archive when an expected digest is explicitly supplied. Its executable regression extends the existing src/releaseBrowserEvidence.test.ts assurance test only; no production src/** implementation changes. Unconfigured source-only evidence remains permitted, while expected package evidence must have matching actual bytes.

Before every restack or lifecycle action, independently compare the exact live parent to the exact child and prove the child is not carrying a competing production-source delta.

Executable discovery contract

A predecessor contained composition-native-form.browser.spec.ts while its inherited Playwright selector selected only a narrow clipboard/print subset. File presence was therefore false-green evidence.

The child deliberately uses the stronger desktop-engine discovery contract /\.browser\.spec\.ts$/u, so committed *.browser.spec.ts journeys are selected by Chromium, Firefox and WebKit while the dedicated consensus spec remains isolated in its own project. The native-form/composition journeys also fail closed on non-loopback browser requests: only the declared loopback harness origin is permitted and any rejected origin must make the journey fail.

Evidence discipline

For every exact current child generation:

  • require the child to contain the exact then-current fix(data-integrity): keep controlled value sync atomic #201 parent in ancestry;
  • require exact-head CI/browser evidence and inspect actual checkout/source identity;
  • require browser discovery to execute the committed journeys rather than merely finding their files;
  • require applicable package/build/Office checks for that generation;
  • treat Security/SAST/organization evidence as absent/non-passing when the stacked Draft does not generate it;
  • refetch formal reviews and unresolved threads independently.

Pending, queued, skipped-required, cancelled, absent, neutral, failed, stale, predecessor, status-only, model-only, wrong-checkout, synthetic-source, undiscovered-test, or otherwise vacuous evidence does not pass. Parent/predecessor workflow evidence never transfers to a newly synchronized child head.

Assurance boundary

This is browser-emulation/component evidence only. It does not establish physical-device OS-IME candidate behavior, real iOS Safari/Android Chrome support, durable save, authorization, transport, tenancy, durable persistence, host network policy, or collaboration-provider authority.

No transport, authentication, authorization, tenancy, durable persistence, credentials, model/provider, network, host-owned Yjs-provider, durable audit, deployment, migration, retention, or durable PDF authority moves into Inkspan through this lane.

Remaining #376 acceptance

This Draft does not close #376. Remaining acceptance includes authorized real OS-IME/candidate journeys; broader controlled-value/autosave concurrency combinations beyond the locally covered single composed snapshot; collaboration-near-composition behavior; broader toolbar/dialog/hydration cases; stronger mobile target-size/no-hover/focus/zoom/reflow assurance on accepted devices; and periodic authorized real-device evidence before claiming iOS Safari or Android Chrome support.

Lifecycle boundary

Keep this PR Draft behind #201 and the protected release-acceptance boundary. Before any lifecycle transition, refetch protected main, exact parent/head/live base, ancestry/mergeability, changed refs/active writers, live governance, exact-current workflow/job evidence including checkout SHAs, formal reviews and unresolved threads. Do not self-approve, weaken gates, transfer predecessor evidence, fabricate mobile/IME support, create a competing production writer, or represent this Draft as protected-main shipped truth.

Refs #376. Add cross-engine committed-input fidelity coverage plus a bounded synthetic composition lifecycle probe without claiming real OS IME or mobile-device support.
@coderabbitai

coderabbitai Bot commented Aug 20, 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.

@seonghobae
seonghobae changed the base branch from main to fix/atomic-controlled-sync-200 August 21, 2026 14:16
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

seonghobae commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Exact-head follow-up a5d624e6e061d46d42fad4e99c090da17f54f1c9 adds browser-only coverage for toolbar activation during synthetic composition. It proves committed Korean text and native-form serialization remain unchanged, the toolbar command returns focus to the editor, and subsequent committed input receives the selected mark. This remains component/browser evidence and does not claim OS IME candidate UI or durable persistence.

Local exact-head evidence:

  • focused new journey: Chromium/Firefox/WebKit, 3/3 passed
  • full composition-clipboard.browser.spec.ts: Chromium/Firefox/WebKit, 45/45 passed
  • the Playwright web server ran the complete library build and TypeScript check before both runs

@codex review
Please review exact current head a5d624e6e061d46d42fad4e99c090da17f54f1c9; do not transfer predecessor-head verdicts.

@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.

Adopt PR #201 head e710cf4
without rewriting the browser-assurance branch.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Commit-Message-Assisted-by: Claude (via Claude Code)
seonghobae added a commit that referenced this pull request Sep 4, 2026
Adopt PR #380 head b2e4bb4
without rewriting the forced-colors branch.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Commit-Message-Assisted-by: Claude (via Claude Code)
Verify that activating an enabled formatting control by touch keeps the editor focused across Chromium, Firefox, and WebKit.

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

Commit-Message-Assisted-by: Claude (via Claude Code)
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head browser assurance update for 71cb311c30c9e39753102a16cb2b3bc083056d69: the emulated touch toolbar journey now verifies that touch activation preserves editor focus after applying formatting. The full touch spec passed 9/9 across Chromium, Firefox, and WebKit after a production build. This remains emulated browser evidence and does not claim physical-device or OS-IME support.

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

Commit-Message-Assisted-by: Claude (via Claude Code)
@seonghobae

Copy link
Copy Markdown
Contributor Author

Added exact-head browser assurance for controlled-value replacement during an active synthetic composition at a90cf87cbc045b584fab9ab50c98732748453caa.

The harness now verifies that the local composed revision is published before a newer host-controlled value is applied, and that native form serialization ends on the host revision. Product source remains untouched.

Local evidence:

  • pnpm exec playwright test specs/composition-clipboard.browser.spec.ts
  • Chromium, Firefox, WebKit: 48/48 passed
  • The Playwright web server completed the full TypeScript and package build before the run.

This is emulation evidence only; it does not claim physical OS IME or real-device support.

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

Commit-Message-Assisted-by: Claude (via Claude Code)
@seonghobae

Copy link
Copy Markdown
Contributor Author

Added exact-revision browser assurance in aceca4b8 without changing product source. The controlled-composition journey now proves that no host save/revision event is emitted while composition is active, the composed snapshot emits one valid strong revision after composition ends, and the subsequently applied host-controlled value has a different current revision.

Validation: pnpm --dir tests/browser exec playwright test specs/composition-clipboard.browser.spec.ts --config playwright.config.ts — 48/48 passed across Chromium, Firefox, and WebKit. This remains synthetic browser composition evidence and does not claim physical OS-IME/device coverage.

Exercise the existing autosave queue with composition snapshots and assert the exact composed revision reaches the host save callback once. Resolve the autosave artifact alongside the editor in packed browser tests.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact child head 5a1ba2e corrects the earlier revision-only evidence: the harness now connects the existing autosave queue to an in-memory host save callback. During synthetic composition, neither document-change evidence nor saves are emitted; after compositionend, the callback receives exactly one tag matching the editor snapshot captured before the newer controlled value replaces it. The full arrays are asserted, so duplicates and a wrong snapshot fail. The packed harness resolves the autosave artifact alongside the packed editor, without a source autosave fallback. Local validation: composition browser suite 48/48; packed journey Chromium/Firefox/WebKit x 3 repetitions 9/9; typecheck and diff check pass. Parent e710cf4 remains in ancestry; child delta is browser harness/spec/config only. This is local queue-callback evidence, not durable persistence, OS IME, physical-device, protected-main, or current-head CI approval evidence.

Keep the child delta browser-only while inheriting PR #201 and its #176/#402 prerequisites through ordinary history. The heading, list and table setup assertions first reproduced false edit snapshots from the old TipTap setContent boolean. Use explicit update suppression in the existing fixture; all nine focused cases pass across Chromium, Firefox and WebKit without weakening input or callback oracles.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head foundation and browser-fixture verification — 2026-09-05

Candidate f10dd9058446fe2df18311ea272cc868b5dccad1 inherits its source owner #201 c80e2b3fb6410306f4bf2750bb1ed56d5db9d074 and the #176/#402 prerequisites through an ordinary, conflict-free merge. Against that parent, the complete delta is still the same eight browser harness/config/spec files, with no src/** or shared dependency/workflow delta.

The inherited editor API exposed one fixture migration defect: preparing the heading, list and table cases emitted an edit snapshot. All three new preparation assertions were RED. The existing fixture now uses explicit update suppression; all nine focused cases pass across Chromium, Firefox and WebKit. This repair belongs to test preparation, not production editing semantics, and no expected input or callback oracle was weakened.

Fresh verification on this final head:

  • 176 production unit-test files / 1,021 tests passed; measured statements, branches, functions and lines remain 100%, without unhandled errors.
  • Full build and package verification passed, including strict TypeScript and independently staged public consumers.
  • Browser discovery selects 136 cases, and the full source-harness run executes all 136 successfully with zero unexpected, skipped or flaky tests and no global errors. The consensus receipt binds this exact head and run 05fcc088-5898-4ea2-a6e0-30f752038b0e.
  • Project-local macOS CPython 3.14.6 Office verification passed 173 tests with 100% statements, branches and docstrings. This uses the declared local development dependencies, not the Linux-only CI wheel lock, and does not replace the hosted Ubuntu matrix.
  • A separately retained 0.7.0 pnpm pack archive has SHA-256 b666296e207d6636e2610e03d0fe52768650464842b32851035f1356ffc63600, identical to the source-owner package. This is expected for a browser-only child, not proof of a published release or installed-tarball browser execution.

These results establish browser-emulated/component input, composition, form, clipboard and touch/focus behavior only. They do not prove real OS-IME candidate handling, physical iOS/Android devices, installed-tarball browser identity, a 20ms performance target, durable persistence or collaboration-provider authority. Keep Draft and keep parent-before-child protected integration. Hosted skipped/queued/absent checks and predecessor reviews are non-passing; no Ready, approval, merge, release or bypass is claimed.

seonghobae added a commit that referenced this pull request Sep 5, 2026
Preserve the four-file forced-colors source/test delta while inheriting #380 and its #201/#176/#402 prerequisites through ordinary history. The existing focus, forced-colors and print stylesheet tests pass. No browser discovery configuration is copied or re-owned here; normal theme rules and the already-merged #362 baseline remain intact.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Source-owner teardown inheritance and bounded local proof — 2026-09-06

Draft candidate a271dd0f37e700951dc6d0227c95919db99403fd inherits #201 f9a7879b66ea7c9590caa0d0465c84050791aa6c by an ordinary conflict-free merge. The only newly inherited change is the source owner's corrected teardown-test oracle. Against that parent, this PR still owns exactly the same eight browser harness/config/spec files and has no production-source or shared dependency/workflow delta.

Fresh final-head unit coverage passed 1,021 tests in 176 files with 100% statements, branches, functions and lines. Full build, packed-package consumer verification and 173 project-local macOS Office tests passed; Office statements, branches and docstrings remain 100%. The retained package digest remains b666296e207d6636e2610e03d0fe52768650464842b32851035f1356ffc63600.

Browser attempts are deliberately separated:

  • The configured three-worker run passed 134 cases, failed one Firefox Simplified Chinese case in the existing afterEach network-idle wait, and did not execute the dependent consensus case. The captured page contains the expected Chinese text; there was no content-comparison failure. This run is not GREEN.
  • The unchanged affected case passed in a separate one-worker diagnostic with a retained trace.
  • A fresh full --workers=1 run passed all 136 cases, with zero unexpected, skipped or flaky results and no global errors. The receipt binds this candidate and run bb01045b-3ecf-4720-bff1-ad9937034352.

No fixture, assertion, timeout, production source or checked-in worker configuration was changed to obtain the final pass. The shared 10-core M5 host was observed at load averages 28.12/25.90/16.77 during diagnosis; contention is a plausible explanation, not a proven causal attribution. Retain the initial failure in the attempt denominator. The final result establishes bounded-worker local execution, not proof that the default/hosted configuration is reliable under all load.

The package digest is separate from these source-harness runs; installed-tarball identity, real OS-IME/physical-device behavior, a 20ms performance target, protected integration and release are not established here. Local Office dependencies remain distinct from the Linux-only CI wheel lock. #151 must inherit this parent and regenerate its own exact-head proof. Keep Draft, parent-before-child integration and all existing live gates; no approval, merge, tag, publication or bypass is claimed.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Selected stylesheet provenance repair — full verification pending

Current candidate: d0e4ad4a6b7a7b51e007185c5a94e104f770ea9c, based on canonical #201
f9a7879b66ea7c9590caa0d0465c84050791aa6c. This remains Draft and does not change
production editor behavior.

Packed JavaScript selection previously left the input editor importing source
CSS and the shared focus/print URL serving rebuilt worktree CSS. A release archive
digest in a receipt therefore did not prove which stylesheet was exercised.
The existing Vite alias map now resolves the shared CSS URL to the selected
extracted package, and the input harness imports that same URL. No server plugin,
dependency, runtime style, public API, test deadline or retry allowance changed.

At test-only baseline 015e4fd2ab5311c47ece1fb4a98e497354660db0, both checks
failed in all three engines: 6 failures, 0 skipped. The returned module IDs
identified the source/build paths, not the selected archive path. The first fixed
focused run passed five cases and hit the unchanged 20-second Firefox editor
evaluation deadline; the unchanged Firefox case then passed alone with a trace.
That diagnostic does not erase the failed run or constitute complete acceptance.
The final candidate additionally rejects an unexpected second stylesheet.

The change also includes tests/browser/specs/stylesheet-identity.browser.spec.ts
and the explanatory docs/TEST_STRATEGY.md /
docs/doctoring/browser-stylesheet-provenance.md updates. These are assurance
documentation, not a competing production owner.

The current local full coverage run is still in progress and has reported a
convergence/lifecycle timeout. An earlier run reported the unchanged 3,000-item
Word-capacity timeout; that complete fixture passed in isolation. Neither is
claimed fixed or attributed conclusively to host load. All failure logs remain
under /private/tmp/inkspan-browser-stylesheet-evidence.hUT89Q.

Fresh complete source-mode and extracted-package browser runs, package-bound
receipts, final coverage/build/package/Office outcomes and direct visual inspection
remain pending. Earlier head evidence does not transfer. Child #151 owns the
actual responsive/forced-colors UI and will integrate this parent non-destructively.
This publication starts normal hosted checks; it is not Ready, merge, release,
physical-device support, a speedup claim or completion of #376.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Canonical browser helper integration and retained failures

Additional #379 lifecycle evidence: current 7fb20686 packed full run
retained52pass/1Firefox failure/17notrun. hidden-office-eof-comment content
assertions all passed; afterEach network-idle wait itself lasted20.089s before
failure. A separate three-context Firefox probe retained zero pending requests
and one open WebSocket in every acquisition, with idle waits318–418ms and
correct output. An open Vite WebSocket alone therefore does not reproduce the
failure. This narrow diagnostic does not replace the failed full workload or
prove a fix; no timeout, security guard or configuration changed. Protocol:
/private/tmp/inkspan-network-idle-probe.W0w7aJ.

Child #151 full-workload failure trace: its unchanged 59d32209 head
selected 154 cases with canonical three workers and trace enabled: 130 passed,
four Firefox failures, 20 not run (255.529388 s). Failed input traces show
page creation 7.25–9.15 s and navigation 6.38–10.60 s; Korean click did not
finish before the test deadline. Other failures include teardown waits.
Concurrent read-only host observation recorded load 32.24 on 10 CPUs; this
supports but does not prove scheduling contention. No other process stopped,
no guard/timeout changed. A full-denominator one-worker diagnostic is pending.
Raw traces remain local: /private/tmp/inkspan-pr151-full-trace.ir4ndN.

The child's one-worker diagnostic subsequently passed all 154 cases in
170.231333 seconds (run bac023d3-9e86-4a73-897e-7ab156b449f1), no skips,
failures or global errors. Host load decreased 16.26 to 8.57 during this run,
so the concurrency effect is confounded. This does not replace the default
three-worker failure or establish a cause. No canonical config was changed.

Latest same-head full trace acquisition: 6a7121e04652348e6dbc7b58bbad843ef07f6f86
passed all 145 canonical packed cases in 80.328312 seconds with --trace on;
zero skipped, unexpected, flaky or global errors. Consensus run
09b96cbc-17a4-4549-9b5b-59f894e2da15 binds archive
948942ff8edd297bf9ea901b099372a8cf0afa477c6fe9a3b24b6e1aed159ef4,
independently rechecked unchanged afterward. Canonical configuration, deadlines,
three workers, zero retries and external-request guards were unchanged.
This full execution did not reproduce the intermittent timeout and does not
prove its cause or erase earlier failures. Child #151 and #158 failures remain
separate. Trace overhead is not a performance improvement. Directly inspected
Firefox native-form frame shows baseline Korean text and focus, not physical
IME proof. Local traces and copied receipts:
/private/tmp/inkspan-pr380-full-trace.im0HN7.

Later head update: 6a7121e04652348e6dbc7b58bbad843ef07f6f86 now adds a
shared expected-archive guard. The detailed 7e231329 results below are retained
predecessor evidence and must not be transferred to this new head. A real
filesystem regression first failed (one failure, five passes) because a supplied
expected package digest with no release directory resolved null. The shared
helper now rejects that case while retaining unconfigured source mode and
matching/mismatched archive-byte validation. The existing release evidence
test covers this behavior; no production editor implementation changes.
New-head focused tests (six), TypeScript and full configured coverage pass:
1,022 tests in 176 files, 132.28 seconds, configured source coverage 100%.
Fresh build and pack passed. The fresh archive is
948942ff8edd297bf9ea901b099372a8cf0afa477c6fe9a3b24b6e1aed159ef4.
The new-head canonical packed browser acquisition failed during startup at the
unchanged 120-second server deadline, before tests executed. This is not a
browser pass; the prior-head 145-case pass does not transfer. Raw JSON/log:
full-packed-6a7121.* in the repair evidence directory. Repair commits preserve
the RED step, normal push history and all earlier failures. Protocol/logs:
/private/tmp/inkspan-pr380-serial-evidence.5moNbo.

A later same-head diagnostic using the existing outside-repository prebuilt
server configuration ran 143 cases successfully, but Firefox Korean committed
input timed out in its unchanged network-idle afterEach and consensus did not
run (145 selected, 99.918626 seconds). Raw prebuilt-full-6a7121.* and copied
receipts are retained. The error-context snapshot preserves the exact Korean
text; it is not a screenshot or full visual acceptance. This shows that removing
build preparation alone does not establish acceptance. No canonical startup,
test deadline, request guard or assertion was changed.

Independent current-head build restoration and the complete verify:package
chain subsequently exited 0, including isolated ESM/CommonJS/strict TypeScript
consumers and framework-free subpaths. Restored editor CSS matches the selected
archive bytes. This is package-consumer proof, not the missing browser pass.

The same-head Firefox composition file subsequently passed all 16 cases with
trace in 14.5 seconds using the diagnostic prebuilt wrapper. Direct inspection
of the Korean trace frame showed intact text and focus. This narrower pass does
not replace either full-suite failure or establish the timeout cause.
Local Office on Python 3.14.6 also passed 173 tests (1.93 seconds), configured
598 statements/244 branches and public docstrings all 100%; not a hosted matrix.

Candidate 7e231329f8efed484e61e0c29e42e18527142d4d adds the source/package
collaboration alias, a lazy actual-renderer probe, and its normal-color regression
to this browser-harness owner. Child #151 integrates it by a normal signed-off
merge and has no remaining net changes to the shared harness, Vite configuration
or stylesheet-identity spec. There is no production src/** change in this update.

The reason is concrete: #151's real collaboration renderer supplies inline
colors that its earlier hand-written cursor fixture omitted. Using the real
renderer exposed a forced-palette failure in all three engines. #151 owns that
stylesheet repair and visual acceptance; this PR owns the reusable browser
selection and probe. The dynamic import runs only when that probe is requested.

The earlier d0e4ad4a6b7a7b51e007185c5a94e104f770ea9c full coverage run is
now terminal: 1,017 passed, 4 failed, all four failures at the unchanged
5-second test deadline. Three are collaboration cases and one is controlled
replacement-policy handling. Its 1,351.90-second log remains retained as
final-coverage.log; it is not a green or still-running result.

At current 7e231329, both affected files pass in isolation: 11 passed,
2.90 seconds, without changing code, assertions, fixtures or deadlines.
That diagnostic does not erase the failed full run or prove its cause.
A new complete current-head coverage run with two workers is now terminal:
1,021 passed, 176 files, 69.07 seconds, with configured statements,
branches, functions and lines all 100%. The failed predecessor run remains
retained and no test deadline, assertion or fixture was weakened.

The integrated child cc766fd6faf80aacea114ce7702e7f84190632bb passed its
154-case standard source and 154-case standard packed browser suites, including
these three-engine selection/normal-color checks. Those are child-head results,
not substitutes for this parent's own current-head full receipts.

Current parent acceptance now includes 145/145 source browser cases, no skips
or global errors; run 4c01b1b5-8687-4bd4-a80a-baa2bd419bc2. Package verification
and isolated consumers pass. Local Office checks pass 173 tests, with
598 statements and 244 branches at 100% and public docstrings at 100%.

The current packed browser run failed: 131 passed, 3 failed, 11 did not run,
567.288 seconds, zero global errors. Firefox table-parser-repair, Traditional
Chinese committed input and Vietnamese committed input reached the unchanged
20-second deadline in their network-idle teardown. Serial successors and the
final consensus did not run. This is not packed acceptance. The retained archive
SHA-256 is 2ab270aa331dc6fd996130da3450a1f1105a9ee6f197b8bf2edd154a28377700;
raw output is final-packed-browser-7e231.json / .log. The complete affected
Firefox specs were then diagnosed with tracing, unchanged fixtures/deadlines and
the same head/archive. Standard startup failed at its unchanged 120-second limit
with 0 tests executed and 1 global error (firefox-packed-trace-7e231.json).
A separately completed exact-head build plus a diagnostic-only prebuilt-server
wrapper then produced 8 passed, 9 failed, 19 did not run, 658.694 seconds
(firefox-prebuilt-trace-7e231.json), zero global errors. It does not replace the
full-suite denominator or satisfy canonical startup acceptance.

Traces include failures before product assertions: one browser launch took
15.55 seconds and page creation 10.21 seconds. The Korean case's committed-text
assertion completed and direct inspection of its captured frame showed intact
text and the focus border, but teardown still timed out. These observations do
not establish the timeout's root cause or prove physical IME behavior. All
deadline, request-guard, corpus and consensus checks remain unchanged. Trace
archives stay local pending privacy review; only aggregate diagnostics are
reported here. Packed acceptance remains open.

Draft hosted checks at this current head were skipped, not green. There is no
current-head independent formal review. Both PRs remain Draft/Proposed; no protected merge, release, physical
device claim or security-gate change is implied. Retained local evidence lives
under /private/tmp/inkspan-browser-stylesheet-evidence.hUT89Q.

Later unchanged full packed acquisition

The same current head and archive subsequently passed 145/145 canonical
packed browser cases in 70.916448 seconds, with no skipped, unexpected, flaky
or global errors. Run 9a70bee7-5f0f-4d5a-bdfc-6f4540128f0d links the exact
head and archive above in all three engine receipts. No other heavy local
job started by this agent overlapped; configuration, three workers, zero
retries, fixtures, deadlines and assertions remained unchanged. This supplies
current parent packed acceptance, without erasing earlier failed acquisitions
or establishing their root cause.

Separate 390x844 packed-harness screenshots were directly inspected in all
three engines. Korean, Japanese, Simplified/Traditional Chinese, Vietnamese
and the emoji sample remain visible without clipping and with an intact focus
boundary. This is committed-text/browser emulation, not physical OS IME proof.
New protocol, raw results, copied receipts and screenshots are retained under
/private/tmp/inkspan-pr380-serial-evidence.5moNbo. Protected merge, independent
review, hosted acceptance and release remain separate unmet gates.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
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.

test(input): add cross-engine CJK IME, touch, and mobile editing assurance

1 participant