feat(doc): browse and edit a Mac Markdown library on 3DS - #1
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
.mdfile, 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/deletedcopy, 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
39be3a19from 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, creatinghello.mdand 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.