Public Access
F1 plan: the Notes design round (Q141-Q150)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
+38
-1
@@ -1,6 +1,6 @@
|
|||||||
# F1 — Files and Notes
|
# F1 — Files and Notes
|
||||||
|
|
||||||
**Status:** in progress. The Storage App (issue #3) shipped as **v0.9.0** on 2026-10-06. Notes (#19) and the card as a USB drive (#1) come after.
|
**Status:** in progress. The Storage App (issue #3) shipped as **v0.9.0** on 2026-10-06. Notes (#19) is being built on branch `notes`. The card as a USB drive (#1) comes after.
|
||||||
|
|
||||||
**Goal:** get at what's on the SD card from the device itself: browse it, look inside the files the firmware writes, copy, move, rename and delete, and keep notes. A side milestone, like G1 and S1; Files and Notes were M3's original second half (Q30, Q89).
|
**Goal:** get at what's on the SD card from the device itself: browse it, look inside the files the firmware writes, copy, move, rename and delete, and keep notes. A side milestone, like G1 and S1; Files and Notes were M3's original second half (Q30, Q89).
|
||||||
|
|
||||||
@@ -86,3 +86,40 @@ All in a scratch folder, `/f1test`, removed afterwards.
|
|||||||
**One slip during the checks:** a scripted key sequence ran in the wrong folder and renamed `/gemini/saved` to `saved2`, then copied it to the top of the card. Both were put right at once (renamed back, the copy deleted; 7 files, 53,798 bytes, as before).
|
**One slip during the checks:** a scripted key sequence ran in the wrong folder and renamed `/gemini/saved` to `saved2`, then copied it to the top of the card. Both were put right at once (renamed back, the copy deleted; 7 files, 53,798 bytes, as before).
|
||||||
|
|
||||||
**Found on the way:** a panic at Wi-Fi join, there since v0.7.0 (SNTP started twice, issue #46). Fixed in v0.9.0.
|
**Found on the way:** a panic at Wi-Fi join, there since v0.7.0 (SNTP started twice, issue #46). Fixed in v0.9.0.
|
||||||
|
|
||||||
|
## Notes (issue #19)
|
||||||
|
|
||||||
|
Plain text notes on the SD card, written on the device. Q30 settled the base: `.txt` files in `/notes`, created, edited and deleted from the device, never offered by Storage Clean-up.
|
||||||
|
|
||||||
|
### Decisions (design round 2026-10-06)
|
||||||
|
|
||||||
|
| # | Decision |
|
||||||
|
|---|---|
|
||||||
|
| Q141 | A **Notes** App in the Launcher. One row per note: its first line as the title, then the date. Newest first; `s` switches to by name. `n` new, Enter opens, `d` deletes after a confirmation, `r` renames the file. |
|
||||||
|
| Q142 | A new note's file name is never typed: it comes from the first line when the note is first saved (`shopping-list.txt`), or `note-20261006-0919.txt` if that line is empty. It doesn't change afterwards unless the note is renamed. |
|
||||||
|
| Q143 | **Autosave, no "discard changes?" prompt:** five seconds after the last key, on leaving the note or the App, and when the screen turns off. A save writes a temporary file and renames it over the note, so a power cut loses the last few seconds at most. A temporary file left behind is offered back at the next open. |
|
||||||
|
| Q144 | The whole note is in memory while it's edited, up to **16 KB**. A bigger text file opens read-only in the Storage App's viewer. The App refuses to open below the memory floors (Q86). **Editing files of any size must come in a later release: issue #47.** |
|
||||||
|
| Q145 | The editor wraps at spaces, 38 columns by 8 rows, with a line for the name and the state. Enter is a new line, Del deletes backwards, Fn+arrows move (the Text Entry rule), Ctrl+A and Ctrl+E go to the start and the end of the line, Tab types two spaces, Back saves and returns. The Compose Key works as elsewhere. |
|
||||||
|
| Q146 | The Storage App's text viewer gets `e`: edit this file with the same editor, for a text file up to 16 KB that isn't read-only. That lifts Q135 without Apps opening each other (#43 stays). |
|
||||||
|
| Q147 | The list is flat: the files directly in `/notes`. Sub-folders are reached through the Storage App. |
|
||||||
|
| Q148 | UTF-8, LF line ends; a file with CRLF is saved back with LF. Characters the font lacks are kept on save. |
|
||||||
|
| Q149 | Left out, each with its issue: editing files of any size (#47), searching inside notes (#48), undo (#49), selecting and copying text (#50). |
|
||||||
|
| Q150 | Ships as **v0.10.0** when built and checked on the device. |
|
||||||
|
|
||||||
|
### Done when
|
||||||
|
|
||||||
|
- A note can be started, typed with accents, left and found again in the list under its first line; renamed; deleted after a confirmation.
|
||||||
|
- What's typed is on the card five seconds after the last key, and after Back, Home, or the screen turning off, without a prompt.
|
||||||
|
- Pulling the power while typing loses a few seconds at most, and the note is never left empty or half-written.
|
||||||
|
- The cursor moves by character and by line through wrapped text, and the screen follows it; a 16 KB note edits without lag.
|
||||||
|
- A note at 16 KB refuses more text and says so; a bigger file opens read-only.
|
||||||
|
- `e` in the Storage App's text viewer edits a file; a read-only one is refused with its reason.
|
||||||
|
- Free heap stays above the floors with a 16 KB note open and IRC connected.
|
||||||
|
|
||||||
|
### Work breakdown
|
||||||
|
|
||||||
|
1. **Model** (host-tested): the text buffer with its cursor, wrapping and scrolling; file names from first lines.
|
||||||
|
2. **The editor on the device:** loading, drawing, keys, autosave through a temporary file, recovery.
|
||||||
|
3. **The Notes App:** the list with titles, new, rename, delete.
|
||||||
|
4. **`e` in the Storage App.**
|
||||||
|
5. **Checks on the device**, recorded here.
|
||||||
|
|||||||
Reference in New Issue
Block a user