Restore 22 pages + 23 images deleted by mistake in 3b9277a (2026-07-30) Commit 3b9277a ("Binary ops: one format, no version framing") was pushed from an incomplete working copy of the wiki: alongside its intended 11-line edit to Canvas-Ops-Reference.md it recorded deletions of every page not in that copy -- 22 pages (Home, Quick-Start, Provisioning, Calibration, FAQ, Hardware, ...) and 23 screenshots. _Sidebar.md still linked all of them, so 22 of 28 nav links 404'd. Restored verbatim from 3b9277a's parent. Additions only; the 8 pages that evolved since 2026-07-30 are left at their current content.
Binary ops: one format, no version framing
Accuracy sweep: twelve MCP tools (FAQ), no armv7 image (Home Assistant), settings mirror is local-primary (Multiple Displays), caps field is named_colors not named_colours (Writing Apps, Compatibility), HTTP frame-push is ~40 fps since fw 3.0.1 (Writing Apps)
Docs update for companion 2.9.x: quiz app type, channels/quizzes on the Matrix panel (canvas_art + Show on Matrix toggle), new apps (Stock Graph, Movie Quotes, Weather Panel, Scoreboard, HA Dashboard, Aquarium), firmware 3.1 delta frames + named atlases, smart-refresh cadence; new panel screenshots
Matrix gateway: v2.0.0 — Waveshare ESP32-S3-RGB-Matrix board (was Adafruit MatrixPortal S3)
Wiki: rewrite backward-looking phrasing in present tense Drop 'as it always did / was', 'no longer', 'it did not always work that way' and similar comparisons to prior behaviour — they only make sense to readers who saw earlier versions. State the current behaviour as simply how it works.
The library is the companion's own — 'vendored snapshot' retired Some apps originated in splitflap-os and have been enhanced since; many more were created here. Using-splitflap-os said the companion ships a vendored snapshot of csader's library; it and every remaining 'vendored' phrasing across the wiki now say built-in / its own library.
Two gateways, two names — plus Provisioning and Calibration get their own pages SplitFlap Gateway drives real modules; Matrix Gateway draws a simulated wall on an LED matrix. The Gateway and Matrix-Portal-Gateway pages are renamed (redirect stubs left at the old names), 21 pages re-worded, and both diagrams regenerated with the new labels — the configurations diagram also aligns all seven Modules boxes on one row. New: Module provisioning (the full process — the SplitFlap Gateway's Provision tab and bare-metal provision.py in detail, splitflap-os's built-in equivalent acknowledged without detail) and Module calibration (the CALIBRATION_GUIDE ported: the three quantities, the golden order, nudge vs exact offset, per-flap tuning, the wizard and whole-board pass, the control reference). Linked from the sidebar's Build-it section, Home, Module-Firmware and the SplitFlap Gateway tab tour.
The companion has its own app library — the csader relationship, stated honestly The ecosystem graphic claimed the companion 'runs the splitflap-os app library (csader)'; it ships its OWN library and speaks the splitflap-os plugin format. Regenerated, and the framing aligned across the wiki: splitflap-os is an acknowledged alternative content engine (A/B/E/F); apps written for it drop in and run here — that inbound direction stays a hard contract; apps written here MAY run there, without the injected helpers and unoptimized, with no guarantees. Compatibility's goal paragraph now says exactly that. Also: Writing-Apps documents the grown get_weather surface (sky tokens, days=N forecast + hourly, air=True with labels and canonical bands), and Built-in Apps gains the countdown's per-unit colour-bar panel and the weather app's forecast/AQI/UV/pollen in their rows.
The motion capability: the wall states how it moves Gateway-API documents the new /api/capabilities motion key (Gateway 3.10+, Matrix Portal 1.12+); Writing-Apps' caps table gains instant — the flag an app gates any ticking display on; Compatibility lists it with the other caps fields.
Wiki: Writing Apps + Compatibility move in from the repo, fact-checked against the code Every claim audited against the companion source; the wrong ones fixed: loop_delay default is 8, 'id' is a fallback not an override, lowercase colour codes are animation-only, the real date app (i18n, rows>=4), per-app anim_speed/anim_style, the full catalog-globals list, global_key is ignored, /sports_search is the only sports endpoint, a trigger shows the first page only, the safety audit also blocks threads/processes, and app directories are NOT importable (single-module apps only). Sidebar gains an 'Extend it' section; external repo-doc links become wiki links.