diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md index dccea2d..ff6efc4 100644 --- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md +++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md @@ -120,6 +120,8 @@ taking that too literally. | 61 | `test_mainwindow` fails intermittently, about 1 run in 20 | testing | S | open; predates the card list, reproduced on f72dba9 | | 62 | No config option for the date format on a card | presentation | XS | open | | 63 | No way to see sent mail, and no filter for it | workflow | S | open | +| 64 | The Sync button carries a mailbox icon, not a refresh one | presentation | XS | **done** 2026-08-11 | +| 65 | No full code review and optimization pass | correctness | ? | open, unspecified | Sizes are rough: XS under an hour, S a sitting, M a session. @@ -4130,6 +4132,68 @@ filters, not something to design here. **Size: S**, and XS if the answer is "it is a tag". +## 64. The Sync button carries a mailbox icon, not a refresh one + +**Observed (user, from the notes):** "the sync button should show the 'refresh' +icon". + +**Cause, verified in code.** The theme-icon table in `MainWindow` maps +`sync` to `mail-receive` (`src/mainwindow.cpp:1000`), which is a mailbox glyph +with an arrow into it. Every other entry in that table is a single line of the +same shape, so this is one string. + +The neighbouring comment (`src/mainwindow.cpp:1001-1003`) records why `archive` +was moved off `mail-mark-read` in 0.12.0: with the toolbar icon-only, the icon +IS the control, and two buttons with different consequences must not look +alike. That reasoning applies here in reverse. `view-refresh` is the standard +freedesktop name and reads as "fetch again" at a glance. + +**Approach.** Change the one mapping to `view-refresh`. The lookup already +guards on `QIcon::fromTheme` returning null (`:1034`), so a theme lacking the +name leaves the action iconless rather than broken. + +**Constraints.** + +- **Check it does not now collide with another action's glyph.** No entry in + the table currently uses `view-refresh`, but the 0.12.0 defect was exactly a + collision, so confirm against the rendered toolbar rather than the table. +- Icon-only is the desktop's choice, honoured through `SH_ToolButtonStyle` + (`:1073`), so the icon may be the only label the user ever sees. + +**Size: XS.** One string. + +### Outcome (done) + +One string: `mail-receive` became `view-refresh` (`src/mainwindow.cpp:1000`). + +The collision the constraint asked about is covered by a test that already +existed, `noTwoActionsShareAnIcon`, which passes. That is a better check than +looking at the toolbar, since it covers every action rather than the handful +currently on it. + +## 65. No full code review and optimization pass + +**Observed (user, from the notes):** "full code review and optimization." + +**Cause:** not a defect. The codebase has grown from the 0.1.0 spec through +sixty-odd backlog items, and nothing has gone back over it as a whole. + +**Why this cannot be planned from the backlog.** "Review and optimize" names no +symptom, no measurement and no target. There is no reported slowness to chase, +and the one performance property the design does commit to (threads emitted in +batches of 200 so a 10k-thread query paints immediately) already holds. An +optimization pass with no measurement behind it is the kind of work that +produces a large diff and no change a user can notice. + +**What it needs before it can be sized.** The user saying which of these they +meant: a correctness/security review of a named area, a specific operation that +feels slow with the query that makes it slow, a dead-code and duplication sweep, +or the translatability audit that is already item 22. The first three are +different pieces of work with different sizes, and the fourth is already +recorded. + +**Size: `?`, unspecified.** Do not propose a design for this; ask. + ## Deferred, unsized, or split out Items noted while triaging but not part of the original list. Same numbering |
