Club Page Studio: bounded verification scope

The pinned editor's automated suite covers strict editable-project validation,
review before replacement, stale/cancelled reads, sidebar/canvas synchronization,
plain-text paste, blocked external drops and rich formatting, required and
multiline fields, normalized line endings, hidden file-picker styling, escaped
export text, ZIP contents and retained hidden-field data. Seventy-five checks
passed with actual GrapesJS 0.23.9 in jsdom, plus exact dependency-byte,
package-integrity, source-map and incorporated-notice checks. Native dialogs,
downloads and some editing APIs are shimmed there; this is not browser evidence.

A separate isolated Cloud Chromium desktop check completed an actual editable
JSON download, fresh-session reviewed reopen, revision, second download and final
fresh reopen. Its actual website ZIP was extracted and the exported page rendered
through static HTTP. This is an agent-run fictional example, not real-user evidence.
At a 360px iframe width, editor layout and field editing were checked without
horizontal overflow; the exported page used one column without overflow.
The narrow editor requested a save but its download event timed out, so no
narrow-download or phone-workflow success is claimed. Earlier browser
interruptions were not diagnosed; the final serialized desktop chain passed.
The Hub release preview was then checked separately in Cloud Chromium desktop.
Search for "club" returned one Club Page destination and the existing poster;
opening the Club Page result reached the editor. The first Tab selected Skip to
content, and Return focused the main workspace. The desktop wrapper rendered
without horizontal overflow. Reviewing the actual revised JSON and cancelling
kept the default page; reviewing it again and explicitly replacing restored all
fields. The actual re-export was 832 bytes, identical to the final isolated
project. The actual website ZIP passed CRC and safe-path checks and included
identical editable JSON. The integrated wrapper also had no horizontal overflow
in a 360px iframe. This does not add a narrow-download or phone-workflow claim.

Physical-phone, screen-reader, IME, full network-capture and file:// compatibility
are not certified. Narrow iframe behavior is not a physical-device test. Native
undo and interrupted download paths are not exhaustively qualified. No security,
learning-outcome, savings, Webflow feature-parity or all-device guarantee is made.

Exports are website files, not hosting or publication. JSON and ZIP are
unencrypted and retain every supported field, including hidden What-to-bring
text. The ZIP also contains editable JSON. Inspect all fields and remove private
content before sharing. Keep & reopen accepts native Club Page JSON at most 20,000 bytes. Extracted
bytes remain exact. Native validation normalizes CRLF or older Mac line endings
in the staged clone before full-value review. Explicit Replace page applies
those reviewed values; this is not a whole-chain byte-identity claim.
Website ZIP and HTML remain separate outputs, not imports.

Original wrapper/template/CSS/illustrations: scoped MIT in site/LICENSE.txt.
GrapesJS and runtime dependencies retain separate terms in
site/THIRD-PARTY-NOTICES.txt. Visitor text is not relicensed.

Shared-continuity preview verification
The native validator was extracted into the actual app's imported project.mjs.
The 75 real-GrapesJS jsdom checks were rerun after extraction and passed.
Automated bundle checks cover exact bytes, field and byte bounds, hidden
metadata, capability isolation and cancellation; they are not browser evidence.
The separate preview workflow below exercised actual browser module loading.

The Cloud Chromium desktop preview passed the fictional Learn → Club Page →
bundle → native revision workflow with actual downloads. A manually written
Learn brief and a manually composed Club Page were exported, bundled, reopened
in a fresh session and extracted with exact original bytes. The unchanged bundle
copy also matched. Club Page showed all incoming values, including hidden text;
Keep editing preserved a revised time, and explicit Replace page restored the
reviewed data. Editing the actual canvas time from 2–3 pm to 3–4 pm updated the
sidebar. Revised JSON and website ZIP downloaded; their included JSON matched,
and a fresh native review/replace/re-export matched the revised JSON exactly.
Learn also passed fresh native review, restore and exact re-export with Remember
off and no checked learning-outcome or mastery flags. Hidden What-to-bring text
remained in JSON and was absent from visible exported HTML. Corrupt-checksum
reopening failed generically and cleared extraction controls; cancel did too.

This was an agent-run fictional task, not a real-user or learning-outcome study.
The actual Club fixture used LF. Bundle transport preserves exact bytes; native
reopening can normalize CRLF or older Mac line endings, so whole-chain byte
identity is not claimed for arbitrary inputs. Neutral extraction filenames are
verified by source and tests; the browser download API exposed opaque saved
paths rather than suggested names. Public release smoke checks are still pending.
No new physical-phone, screen-reader, IME, full network-capture or file:// claim
is added. Website ZIP/HTML remain separate outputs, not imports or publication.
