Skip to content

feat(doc): browse and edit a Mac Markdown library on 3DS - #1

Merged
doodlewind merged 18 commits into
mainfrom
feat/markdown-library
Sep 6, 2026
Merged

feat(doc): browse and edit a Mac Markdown library on 3DS#1
doodlewind merged 18 commits into
mainfrom
feat/markdown-library

Conversation

@doodlewind

@doodlewind doodlewind commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Pocket Doc browses, searches and edits a paired Mac Markdown library on a Nintendo 3DS. The upper screen contains a file list and document pane; the lower screen combines a compact keyboard with two scrolling pads. The iOS 6 light controls support pressed feedback, explicit read/save/discard states, a directional L file menu and a two-dimensional R Markdown command panel.

The editor now reaches the entire document. Mac SQLite retains full unsaved drafts while the handheld keeps a 512-unit source window, expandable to 768 UTF-16 units. A window seek atomically stages a bounded patch and returns another region. Newer local keystrokes survive delayed replies; operation identities make lost acknowledgements safe to retry. Only Save atomically replaces the Markdown file. Local undo works offline, staged history spans windows on the Mac, and discard drops both local and staged changes.

New document is the first L command. A separate filename dialog creates an exclusive .md file, selects it and enters editing. The right stick moves the caret with pressure-dependent speed; held-space dragging remains available. Four compact keyboard rows leave 112px panels and a 90px source gesture area. A shared 6px grid keeps pad margins and gaps consistent with or without the keyboard. The source entry always reads Edit. Prev/Next heading occupy the first R-menu row.

The L menu deletes the selected document through a filename confirmation sheet. Mac revision checks, a retained .doc/deleted copy, and a SQLite journal support conflict detection and safe retry/recovery. Monotonic file IDs prevent old requests from affecting newly created files. Refresh rescans the directory. Short saved documents stop rendering placeholders at EOF; an empty list shows an explicit empty state without repeated requests.

Code blocks retain logical lines without soft wrapping. Left/right scrolls the first visible overflowing block; Mac Shiki highlighting and glyph coverage stream only the requested 256px viewport. Table wrapping keeps one logical cell across texture bands, with horizontal rules only at row boundaries. Resource fallbacks and the compact animated discard sheet use shared framework components.

The runtime submodule pins merged main 39be3a19 from PocketJS #362. No #360/Pocket Vault implementation is imported. The ignored corpus generator creates 1,000 representative synthetic files, 114,690–1,049,446 bytes each, totaling 157,277,771 bytes. Tests copy the corpus into a separate QA directory before saving, creating or deleting files.

Validation: 28 application tests; TypeScript; production guest and ARM build; 839 QuickJS frames at a 128 KiB stack; native upper/lower screen capture; 3,231 compiled-guest replay frames and 93 behavioral checks including delayed typing, lost-reply recovery, boundary Backspace, full-file save, creation, rendered pad spacing, short-file/empty-list rendering, and touch-confirmed deletion with a lost acknowledgement. Requests remain within four and document textures/resources within 72. Screenshots and detailed receipts are in README and docs/VALIDATION.md.

The production binary is 1,694,848 bytes, SHA-256 0ad75ab371edcec6b8489c433e03bcdd222d2bb329fed511b336f36d7466cc61; the binary and app-scoped pairing key are installed with byte-exact FTP readback at 172.20.12.37:5000, and the matching Mac daemon is running. Deployment now handles ftpd's exact 450 ENOENT response for the already-removed Folio launcher. The matching provider was restarted after this installation; the subsequent real-device demo records browsing, editing, creating hello.md and opening it in Finder. Sustained frame-time acceptance remains pending. Offline editing is limited to the loaded window and bounded pending input; the latest unstaged keystrokes do not survive application exit. Selection stays within one window. This is a subset Markdown renderer, with no image attachments, graph view or IME.

README now includes a real-device photo from the demo recording and six compiled-application simulator screenshots. It identifies each capture source and uses default-branch clone instructions.

Integration checks rerun on merged runtime 39be3a19: 28 tests (671 assertions), TypeScript, production guest and native ARM builds, 839 QuickJS frames at 128 KiB, and 3,231 Wasm replay frames with 93 behavioral checks. The installed hardware binary remains the previously verified demo build.

@doodlewind doodlewind changed the title feat(folio): browse and edit a Mac Markdown library on 3DS feat(doc): browse and edit a Mac Markdown library on 3DS Sep 5, 2026
@doodlewind
doodlewind marked this pull request as ready for review September 6, 2026 00:20
@doodlewind
doodlewind merged commit 50159fe into main Sep 6, 2026
1 check 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