style(docs): apply oxfmt to README and v0.1 docs
Aligns markdown table columns and converts *emphasis* to _emphasis_. No content changes.
This commit is contained in:
@@ -42,13 +42,13 @@ blocked by I/O.
|
||||
|
||||
### Threads / tasks
|
||||
|
||||
| Task | Core | Stack | Responsibility |
|
||||
|---|---|---|---|
|
||||
| `usb_task` | 0 | 8 KB | TinyUSB host loop, decode HID reports, post `KeyEvent`s |
|
||||
| `wifi_task` | 0 | 8 KB | Provisioning AP or station mode; expose status |
|
||||
| `ui_task` | 1 | 16 KB | Consume `KeyEvent`s, mutate editor state, enqueue render |
|
||||
| `render_task` | 1 | 12 KB | Drain render queue, do partial/full refresh on EPD |
|
||||
| `git_task` | 1 | 32 KB | Triggered by `Ctrl-G`; runs gitoxide commit + push |
|
||||
| Task | Core | Stack | Responsibility |
|
||||
| ------------- | ---- | ----- | -------------------------------------------------------- |
|
||||
| `usb_task` | 0 | 8 KB | TinyUSB host loop, decode HID reports, post `KeyEvent`s |
|
||||
| `wifi_task` | 0 | 8 KB | Provisioning AP or station mode; expose status |
|
||||
| `ui_task` | 1 | 16 KB | Consume `KeyEvent`s, mutate editor state, enqueue render |
|
||||
| `render_task` | 1 | 12 KB | Drain render queue, do partial/full refresh on EPD |
|
||||
| `git_task` | 1 | 32 KB | Triggered by `Ctrl-G`; runs gitoxide commit + push |
|
||||
|
||||
All inter-task communication is via `crossbeam-channel` or `std::sync::mpsc`
|
||||
bounded queues. The editor state is `Arc<Mutex<EditorState>>`; the lock is
|
||||
@@ -117,15 +117,15 @@ stack decision (e.g. fall back to libgit2; switch to a separate SD SPI bus).
|
||||
|
||||
### `keymap` — v0.1 keymap table
|
||||
|
||||
| Key | Action |
|
||||
|---|---|
|
||||
| printable | insert char |
|
||||
| `Backspace` | delete char before cursor |
|
||||
| `Enter` | insert `\n` |
|
||||
| Key | Action |
|
||||
| --------------- | --------------------------------- |
|
||||
| printable | insert char |
|
||||
| `Backspace` | delete char before cursor |
|
||||
| `Enter` | insert `\n` |
|
||||
| `←` `→` `↑` `↓` | move cursor (visual lines for ↑↓) |
|
||||
| `Home` `End` | line start / end |
|
||||
| `Ctrl-S` | save |
|
||||
| `Ctrl-G` | save (if dirty) + commit + push |
|
||||
| `Home` `End` | line start / end |
|
||||
| `Ctrl-S` | save |
|
||||
| `Ctrl-G` | save (if dirty) + commit + push |
|
||||
|
||||
Anything else is ignored in v0.1.
|
||||
|
||||
@@ -198,14 +198,14 @@ PSRAM heap during push is a top-3 watched metric — see
|
||||
|
||||
ESP32-S3-N16R8: 512 KB SRAM + 8 MB PSRAM. We budget conservatively.
|
||||
|
||||
| Region | Approx | Use |
|
||||
|---|---|---|
|
||||
| Internal SRAM | ~120 KB | task stacks, DMA buffers, hot code paths |
|
||||
| Internal SRAM | ~80 KB | mbedtls runtime (TLS handshake working set) |
|
||||
| PSRAM | ~128 KB | EPD framebuffer (792×272×1 ≈ 27 KB) + shadow + glyph cache |
|
||||
| PSRAM | ~512 KB | rope buffer + edit history headroom |
|
||||
| PSRAM | ~1.5 MB | gitoxide working set during push (pack delta, etc.) |
|
||||
| PSRAM | rest | heap headroom |
|
||||
| Region | Approx | Use |
|
||||
| ------------- | ------- | ---------------------------------------------------------- |
|
||||
| Internal SRAM | ~120 KB | task stacks, DMA buffers, hot code paths |
|
||||
| Internal SRAM | ~80 KB | mbedtls runtime (TLS handshake working set) |
|
||||
| PSRAM | ~128 KB | EPD framebuffer (792×272×1 ≈ 27 KB) + shadow + glyph cache |
|
||||
| PSRAM | ~512 KB | rope buffer + edit history headroom |
|
||||
| PSRAM | ~1.5 MB | gitoxide working set during push (pack delta, etc.) |
|
||||
| PSRAM | rest | heap headroom |
|
||||
|
||||
PSRAM is the default for `Box::new` via a custom allocator wrapper; DMA-able
|
||||
allocations must explicitly request internal SRAM (epd-waveshare needs this
|
||||
@@ -264,13 +264,13 @@ does not implement key rotation.
|
||||
Mirrored as live conflicts in
|
||||
[qfd.md §7 "Conflicts left explicitly unresolved by v0.1"](qfd.md#7-tradeoffs-and-their-why-linked-to-adrs).
|
||||
|
||||
| Risk | Symptom we'd see | Fallback |
|
||||
|---|---|---|
|
||||
| `gix` smart-HTTP push doesn't work on `esp-idf-rs` mbedtls | spike 7 fails | switch to `libgit2-sys` (C, well-trodden) for v0.1 only |
|
||||
| TinyUSB host drops HID reports under load | dropped keystrokes during fast typing | enable larger USB rx buffer; if still bad, fall back to BLE-HID for v0.1 |
|
||||
| EPD partial refresh slower than 200 ms | typing feels laggy | reduce font size to shrink dirty area; or render multi-char bursts |
|
||||
| TLS heap pressure on PSRAM | OOM during push | tune mbedtls to smaller cipher suites; force GC of glyph cache before push |
|
||||
| SD + EPD on same SPI bus collide | corruption on save during render | move SD to a separate SPI peripheral (ESP32-S3 has two) |
|
||||
| Risk | Symptom we'd see | Fallback |
|
||||
| ---------------------------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `gix` smart-HTTP push doesn't work on `esp-idf-rs` mbedtls | spike 7 fails | switch to `libgit2-sys` (C, well-trodden) for v0.1 only |
|
||||
| TinyUSB host drops HID reports under load | dropped keystrokes during fast typing | enable larger USB rx buffer; if still bad, fall back to BLE-HID for v0.1 |
|
||||
| EPD partial refresh slower than 200 ms | typing feels laggy | reduce font size to shrink dirty area; or render multi-char bursts |
|
||||
| TLS heap pressure on PSRAM | OOM during push | tune mbedtls to smaller cipher suites; force GC of glyph cache before push |
|
||||
| SD + EPD on same SPI bus collide | corruption on save during render | move SD to a separate SPI peripheral (ESP32-S3 has two) |
|
||||
|
||||
Every one of these is detected by a spike before integration starts — we are
|
||||
not finding them at the end.
|
||||
|
||||
Reference in New Issue
Block a user