aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers/plans
diff options
context:
space:
mode:
Diffstat (limited to 'docs/superpowers/plans')
-rw-r--r--docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md11
-rw-r--r--docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md16
2 files changed, 25 insertions, 2 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md
index 4f361bf..a4aae42 100644
--- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md
+++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md
@@ -5286,8 +5286,15 @@ returning `nullptr` discards it before it can be read. Routing it through the
same handler the plain-link path uses is what keeps the two kinds of link from
drifting apart.
-127: three actions added to `removeBrowserActions()`'s list,
-`CopyLinkToClipboard` deliberately left. The order mattered: 126 gives the page
+127: four actions added to `removeBrowserActions()`'s list,
+`CopyLinkToClipboard` deliberately left. The fourth, `DownloadLinkToDisk`, was
+added after a hand test: it had been deferred to item 114 alongside Save image
+on the grounds that both are inert without a `downloadRequested` handler. True,
+and the wrong conclusion. Save image is content the message already carries;
+Save link fetches a sender-chosen remote URL through the one profile that must
+never fetch remote content, so it is removed rather than implemented, and item
+114 now carries the constraint that a handler for the former must not revive the
+latter. The order mattered: 126 gives the page
a real `createWindow()`, so those entries would have stopped being merely dead
and started opening links into a tab that does not exist.
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 3848a6d..d7783f7 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
@@ -730,6 +730,22 @@ for the network to satisfy it.
**Size: S.**
+**Save LINK is no longer part of this item** (2026-08-20, item 127). It was
+deferred here on the grounds that both are inert for want of a
+`downloadRequested` handler, which is true and beside the point: they are not
+the same question.
+
+Save image is content the message already carries, and making it work is what
+this item is about. Save link fetches a REMOTE URL chosen by the sender,
+through the pane's profile, which is the one profile in the application that
+must never fetch remote content. It is removed from the menu rather than
+implemented, and `theLinkMenuDropsTheOpenInWindowActions` asserts its absence.
+
+**That assertion constrains this item.** A `downloadRequested` handler added to
+make Save image work must not make Save link reachable again. The test fails if
+it does, which is the point: the handler is per-profile, so the natural
+implementation would light up both entries at once.
+
## 118. No way to empty the trash from inside the app
**Observed (user, 2026-08-17):** raised while reviewing item 103's spec, as