Skip to content

Add UIFlow workbench and validate controls across browser devices - #165

Merged
m5agent merged 28 commits into
mainfrom
m5agent/uiflow-browser-workbench-20261104
Nov 4, 2026
Merged

m5agent merged 28 commits into
mainfrom
m5agent/uiflow-browser-workbench-20261104

Conversation

@m5agent

@m5agent m5agent commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Summary

The browser could run reference firmware, but lacked a validated way to edit and run UIFlow code across its admitted devices. This adds a default UIFlow2 programming environment and MicroPython editor for all 19 browser-runnable devices.

  • Compose each official base with a deterministic startup and verify file readback.
  • Execute pasted/imported Python through the guest UART0 raw-paste/raw-REPL path, with actual output, pause/resume, interrupt and hardware-reset recovery. UART ownership/console epochs fence stale executions; repeated interrupts send one running Ctrl-C.
  • Validate model buttons, keyboard and body touch through guest controllers/drivers and bind one-instruction execution to 11 exact S3 workbench Flash/main variants. The pinned WASM rebuild includes bounded host-poll wakeups.

Validation

  • Virtual-device validation: canonical V6 R8 passed 60/60 cases, 2,564 checks: 19 editors, 19 button cases, Cardputer keyboard, StackChan body touch and 20 fixed examples. This includes 224 raw-paste transfers, 38 untouched default-source runs and 200 input trials.
  • Final source: c3db057d2ee99c022a4116ae72d661c4d39888c6. Exact firmware/runtime/policy and cleanup evidence. The final head preserves all 49 tested source-vector files byte-for-byte.
  • Final host R2: 1,957 passed / 10 optional skips / 0 failures out of 1,967 Python tests; 28 Node contracts, 9 collector controls, four validators and diff/scope checks passed. R1's three documentation failures and targeted 21-test repair remain recorded.
  • Ordinary source CI: both jobs succeeded; this is separate from the manual browser gate.
  • Published work record.

Scope and remaining limits

Policies require their exact Flash, startup source, fixture, ready marker and patch. Unknown firmware and fixed/classic images retain separate contracts. RUNTIME-07/08/09 remain OPEN; policy passes do not prove a shared C root-cause fix or long-term stability.

PM1 acceptance uses explicit application configuration: a 500 ms click window with unchanged 250 ms input. StopWatch/StickS3 use their public driver; PaperColor/PaperMono explicitly use public I2C RMW. Default-mode PM1 events are not established. Cardputer Fn pointer input includes a grave-key companion. Missing held-iframe CDP fences remain NOT CAPTURED.

Independent local cold samples on the same original fixed images changed from 109.458 to 54.775 s (Matrix) and 90.687 to 39.144 s (Plus). These are source-pinned, single observations for those two images.

Four original-image cold-prime → retained-page warm pairs completed: 53.491 → 76.480 s (75 Matrix), 39.378 → 63.627 s (75 Plus), 109.448 → 108.710 s (3c Matrix), 96.703 → 111.456 s (3c Plus). Warm includes model reconstruction; pure-cache and general speed guarantees remain unestablished. The first observer failure is retained. The two-guest functional gate is not a performance benchmark.

SDK pthread cancellation remains unestablished. Main merge, Pages publication and online acceptance are NOT RUN and await approval; physical equivalence is not claimed.

@m5agent
m5agent merged commit 23d38d8 into main Nov 4, 2026
4 checks passed
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