aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md64
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