Skip to content

Commit 56d2c93

Browse files
committed
docs(issue-1): web-UI mockups for Peter's pick + PLAN checkpoint
1 parent cb1ce8e commit 56d2c93

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

PLAN.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,18 @@ abandoned — both await Peter's ok.
6363
## Discipline
6464
jj-only (never raw git); rm-safe (mv ~/.Trash, never rm); per-unit ./test green;
6565
./build + full suite before push; commit per logical unit; ping Einstein at milestones.
66+
67+
## Session checkpoint (2026-06-26 ~4:18pm EDT)
68+
Shipped + verified GREEN across all 5 platforms (Garnix "All checks" + GH Actions):
69+
- cd6d32d1 feat(core): CRC-32 primitive + pb_crc32 FFI export
70+
- cb1ce8e3 feat(js): printable-binary-file.json container codec + crc32 (+test-js-unit CI guard)
71+
test-no-ffi-symbols [linux] PASSED → the pub crc32 leaked no pb_* symbol (invariant verified).
72+
SCM hazard caught + re-homed onto yolo (Einstein confirmed). ef7496c2 kept as safety net.
73+
74+
BLOCKING THE ISSUE'S CORE FIX: Peter's web-UI mockup pick (Option A vs B in the
75+
spec's "Web-UI mockups" section). AskUserQuestion blocked in-session → awaiting his
76+
reply in-pane or via Einstein.
77+
78+
Queued next (non-gated, resume here): Node CLI container verb → C FFI CLI verb
79+
(+pb_crc32 in src/printable_binary.h) → cross-impl differential (C container ↔ JS).
80+
Then web UI once Peter picks.

docs/plans/2026-06-26-printable-binary-file-container-design.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,44 @@ cannot silently disagree (MFIC: external oracle).
134134
core CRC-32 (+FFI) → container codec + round-trip oracle → CLI verb → cross-impl
135135
differential → web UI (after Peter picks the mockup). Ping Einstein at the core
136136
and CLI milestones.
137+
138+
## Web-UI mockups (for Peter's pick — the one hard gate)
139+
The issue's core complaint is "no CLEAR way to decode." Both options add a paste
140+
box + a metadata panel; they differ in how the decode path is surfaced. (Text
141+
mockups — I can't see rendered output; Peter picks, then I build.)
142+
143+
### Option A — Explicit Encode / Decode tabs (Einstein's lean: most discoverable)
144+
```
145+
┌ ▶ ENCODE ┐ ┌ DECODE ┐ <- mode tabs (decode is now obvious)
146+
ENCODE: [ drop a file / click to choose ]
147+
output: ( ) plain text (*) .pbf.json container
148+
(keeps filename, dates, perms + self-check crc32)
149+
[ Copy ] [ Download photo.png.pbf.json ] [ Clear ]
150+
151+
DECODE: paste encoded text OR a .pbf.json container:
152+
[ ............................................ ]
153+
...or drop a .pbt / .pbf.json file
154+
┌ Detected: printable-binary-file container ─────┐
155+
│ name: photo.png 12.3 KB modified 2026-06-20 │
156+
│ mode 0644 integrity: ✓ crc32 verified │
157+
└─────────────────────────────────────────────────┘
158+
[ Download photo.png ] [ Clear ]
159+
```
160+
161+
### Option B — Auto-detect, single unified surface (fewer clicks; decode implicit)
162+
```
163+
Drop a file or paste below — auto-detects ENCODE vs DECODE.
164+
[ drop a file / click to choose ]
165+
──────────────── or paste ────────────────
166+
[ raw text, printable-binary, or a .pbf.json container ............ ]
167+
┌ Auto-detected: .pbf.json container -> DECODE ────────┐
168+
│ -> photo.png · 12.3 KB · modified 2026-06-20 │
169+
│ integrity ✓ crc32 verified │
170+
└───────────────────────────────────────────────────────┘
171+
(other states: "plain bytes -> ENCODE", "printable-binary -> DECODE")
172+
[ Copy ] [ Download ] [ Clear ]
173+
```
174+
175+
**Recommendation:** A — it makes decode unmistakable (directly answers the
176+
issue), and the metadata panel + container option are equally expressible in B.
177+
Awaiting Peter's pick before building index.html.

0 commit comments

Comments
 (0)