Skip to content

Unifier l’interface web tablette et préparer la PWA hors ligne - #43

Draft
blancmathis wants to merge 10 commits into
mainfrom
mathis/shared-web-pwa-20260917
Draft

blancmathis wants to merge 10 commits into
mainfrom
mathis/shared-web-pwa-20260917

Conversation

@blancmathis

@blancmathis blancmathis commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Scope and exact source

Base main: 4560f6e056a6f673fe6d77f6f9d2914c00829c64 (live main rechecked during this follow-up).

Delivered head: 008917a076e89581a741e76b3c62b499f4fce901 on mathis/shared-web-pwa-20260917.

The normal desktop/tablet/Android notebook uses the existing common web interface. Android packages those same modules for offline entry and retains hardware transport, files, audio and explicit legacy-journal recovery. PWA updates do not force reload or clear journals. Browser HTTPS remains explicitly provisioned; drawing/owner grants, project scope, original conversation sources and human review remain separate. This follow-up does not add a parallel native UI or change production input, rendering, synchronization or permissions to make the tests pass.

Definitive verification at this head

Both workflows completed successfully, including their final jobs, before delivery. These are results for this head, not inherited successes from an older checkpoint.

  • CI 35266808662: success, attempt 1. Node 20.20.2, 22.23.0 and 24.20.0 each report 109/109 test processes passed. All four Browser QA jobs (Chromium desktop/mobile, Firefox, WebKit), Soak and CI gate succeeded. Dependency audits found zero vulnerabilities; the configured Node 22 package dry run succeeded. Browser performance runs on Chromium desktop by design; conditional skips are not claimed as additional coverage.
  • Convergence 35266808648: success, attempt 1. 134/134 contracts, zero skipped/cancelled; repository diagnostics and package privacy succeeded. APK build/signature/permission/common-asset verification and the complete isolated Android 15 owner scenario succeeded.

General CI checked out synthetic merge e56cb57a3e67f0ac477790dfc608453c84856994. Its tree was verified to be exactly e92a79348d2b18217dae78681aedd4e9bc78ab20, identical to the delivered head. Convergence checks out the exact PR head. No actual merge into main has been performed.

Generated documentation links

The original 91cdcb8 failure came from a relative link pointing outside the twelve installed canonical agent documents into the implementation lifecycle dossier. connected-devices.md now names that handoff explicitly as a source-repository path; the repository index retains its valid clickable link. The generator still copies canonical bytes exactly and does not promote historical implementation records into installed authority.

test/agent_context_links.test.mjs exercises fresh generation, the complete installed relative-link graph, repair of an old broken copy, unchanged other canonical copies and repeated-sync idempotency. The original failing context-copy test is unchanged. Unit matrix fail-fast is disabled so one runtime cannot cancel the remaining required runtimes. Both regressions and the existing context-copy suite pass on all three Node versions at the delivered head.

Android diagnosis and correction

The original run's screenshot showed a Pixel Launcher ANR window over a rendered, Mac-confirmed scene r0 with zero objects. It exposed a native input obstruction, not proof of a lost synchronization receipt; that artifact did not establish the exact instant input was obstructed. Only the unused Google launcher in the newly created disposable CI AVD is disabled. Android ANR reporting, personal devices and their launchers are untouched.

The bounded input probe then exposed a distinct instrumentation problem at 80170854: trusted DOWN/MOVE with the correct pressures followed by CANCEL rather than UP, while one object was already Mac-confirmed at r2. The screenshot showed Android text-selection handles. JS receipt polling, accessibility-tree reads and proof-file IO occurred between the native pen phases, potentially turning a short injected stroke into a held long press. That old proof had no timestamps, so no exact old hold duration is claimed.

The final correction sends the same native DOWN/MOVE/UP sequence once, keeping per-phase focus/injection checks, and reads its passive log only after release. No phase, pressure, no-cancel, one-object/confirmed, painted-pixel, export or human-review assertion was removed or weakened. No uncertain stroke is replayed. Unexecuted render probes are represented as null, not false failures.

The downloaded final proof records trusted events at 0 / 90 / 174 ms, pressures 0.25 / 0.75, no cancellation, visible painted ink and one confirmed object at r3. The full owner scenario then imports an image, verifies two canonical host objects, exact editable export and an unchanged accepted file. Total scenario duration: 44.6 seconds. Injected-event cadence is not physical pen latency.

The previous Node 24 checkpoint's unrelated 939 ms result against the 900 ms HTTP review budget remains a recorded failure. The threshold was not increased and the performance test passes at the final head; this instrumentation fix is not presented as a performance optimization.

Matching artifacts, downloaded and verified

All three artifacts below belong to convergence run 35266808648 and exact head 008917a076e89581a741e76b3c62b499f4fce901. Outer ZIP digests, inner source/APK checksums, SOURCE_COMMIT and proof.json.sourceHead were checked. The exported source's 394 files match the prepared source byte-for-byte.

Artifact Link SHA-256 of downloaded ZIP
Complete source archive and source identity 10516578152 ec9cfc718e74ddd9384d4210cc96e4dd05eda6888a3ccce590011fd92c80e64b
Separate Android preview and source identity 10517550062 c7c3f0c8ea6689b5d31ea754af4693bd0739389d0e15afea9f565007dac670ef
Synthetic owner screenshots, input and round-trip proof 10516563755 a1128d9a69fa5c2ee4a7cccd7284126d0b5ad3184436933bf258f0aab22645bc

APK SHA-256: e1f394dd8f5bc6b601a78b958c7e10688e91176e0b7b312dcdb2a5a33f8a02b2.
Package: app.contextroom.tablet.preview, isolated test signer, signature V2; INTERNET and RECORD_AUDIO permissions only. Verification compares 38 common web assets and 8 shared core assets with the actual APK. The CI artifacts expire on 24 September 2026. Source and reconstruction scripts remain versioned.

Diagnostics, local limits and remaining physical work

doctor exited successfully but was not warning-free: it reports unavailable optional Whisper/macOS speech dependencies on Linux CI and the existing reference to derived/android-export-manifest.json in the migration documentation. Package privacy passed for 180 files. These warnings were not hidden or broadened into unrelated work.

Local syntax/embedded-JS/link/diff checks and artifact integrity checks were executed. The local container lacks the locked npm dependencies and cannot resolve GitHub directly; no local full-suite or Android-build result is claimed. Executable full-suite, browser and emulator evidence above comes from GitHub Actions.

Updated source handoff: codex-shared-web-handoff.md.
Bounded failure/repair history: ci-followup-20260917.md.
Canonical setup: connected-devices.md.

Retrieve the exact delivered SHA in a new checkout and follow the handoff's reversible procedure. Do not substitute the isolated CI signer for an installed app's key, uninstall to bypass a signature mismatch, clear unsynchronized work or apply the CI launcher preparation to a personal device. Use the preserved external signing key only through an explicitly authorized local installation procedure.

Physical BOOX web-pen latency, palm rejection, e-ink comfort, audio, long sessions, recognized browser HTTPS and real-agent co-drawing remain local verification gates. No personal installation, signing key, journal, certificate, credential or real user data was changed or published. No historical agent request was replayed, no force push and no merge into main. The PR remains draft; software/emulator success is not physical replacement acceptance.

Context Room and others added 10 commits September 17, 2026 18:47
Keep change-specific handoffs outside the installed canonical context and test fresh generation, stale-copy repair and idempotency. Let every supported Node runtime finish.

Isolate the unrelated Pixel Launcher ANR in the disposable CI AVD. Require owner window focus, compositor readiness, trusted pointer delivery, rendered ink and exact canonical pressure without weakening the existing owner UI assertions. Preserve bounded input proof and update the local handoff.
The Chromium trace showed the competing synthetic tracker being overwritten by a late real resize. Override only viewport measurements and exercise the existing listener through resize/scroll and restoration, retaining all strict geometry assertions. Record the successful Android input proof and this verification iteration.
…elease

Move JS polling, accessibility-tree reads and proof IO out of the held DOWN/MOVE/UP sequence. Retain per-phase focus and native injection checks, trusted phases, exact pressures, no-cancel, painted ink and canonical confirmation assertions. Record native and WebView event timing; mark an unexecuted render probe as null instead of a false failure. Update the bounded CI diagnosis and local handoff without changing production input, sync, permissions or the 900ms review budget.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant