Conversation
"Copy into my deck", "Send to my board", "Install to my board", "Copy pack link" and "Download pack" all sat in the same row, and three of them were the same wish. "Send to my board" does not send anything - it loads the deck into your working deck and opens the panel, which is what "Copy into my deck" already did, and then asks you to sign in to build what a public deck has had built and cached the whole time. So only one of them shows now. A public deck has a pack at a stable URL and offers "Install to my board", where the board fetches it itself: no sign-in, no working deck, no queue. Anything else has no pack to fetch and keeps the long way round. Sharing moves out of the action row into a quiet line under it, because it is what the deck's author does once and what a visitor never does. That line also says the thing the buttons could not: the pack is built on first request and rebuilt whenever the running order changes. There is no bake step to go looking for - which is worth stating, because a row of buttons with no "publish pack" in it reads like a missing feature rather than an automatic one. Also fixes the accent link arriving without padding or a border: composing btnAccent alone emits btnAccentLink and btnAccent but drops the btn underneath, so it got the fill and none of the shape. Both are named explicitly now. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Liking was write-only. You could press it and the count went up and the pattern was gone - there was no view anywhere that listed what you had liked. The thing that did keep a list, Saved, lived in localStorage, so it was per-browser and disappeared the moment you cleared site data. The weaker half had the feature and the stronger half did not. So "Liked" joins the feed's tabs. It only appears when signed in and answers empty when not, rather than falling back to the whole wall, which would be a tab that lies about whose list it is showing. It still obeys feedVisible: having liked something is not a standing right to keep reading it after its author takes it private. The infinite scroll refills through the API route, so that had to learn the viewer too - otherwise page two of your liked list arrived as the rest of the wall. Sharing a deck becomes one button and a panel. Copy-link and download were sitting in the action row next to the thing visitors actually came for, and the row had grown to five. The panel also shows the address instead of only claiming to have copied it: "Copied" about a URL you never saw asks for trust it has not earned, and the field is the fallback when the clipboard is refused. Verified against the database rather than through a browser session, since checking it signed-in would have meant making an account: a user with 9 likes gets exactly those 9 back out of a 66-item feed, with nothing unliked leaking in, and the signed-out list comes back empty. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Saved was a second keeping list beside the like, and the weaker of the two: it lived in localStorage, so it was per-browser, invisible from your phone, and gone with your site data. A like was already stored per account. The only thing it lacked was somewhere to read it back, which the feed's "Liked" tab now is. Gone with it: the star on a pattern page, the Saved tab in the deck panel, the dock's saved counter, and the promote-into-deck path. The panel holds one list now, so its tab strip is a label. Two things fell out of the removal. The rule that a pattern with no firmware header cannot enter a deck lived in savedToDeck, because the Saved list was the only way such a pattern could reach one. Deleting that function deleted the check, and deckAdd never had it - the callers were gating their own buttons and nothing underneath them agreed. It is in deckAdd now, where everything enters. The deck smoke test caught this, which is what it is for. And the full-deck message said "Save it instead", which was advice to use a feature this commit removes. The retired localStorage key is cleared on the next deck read rather than left behind. Nothing reads it any more, so it would otherwise sit in people's browsers indefinitely holding copies of patterns with no screen able to show or empty it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three commits.
Saved was the weaker of two keeping gestures. It lived in localStorage — per-browser, invisible from your phone, gone with your site data — while a like was already stored per account. The only thing likes lacked was somewhere to read them back, so that is what got built: a Liked filter in the feed, shown only when signed in, answering empty rather than falling back to the whole wall. It still obeys
feedVisible: having liked something is not a standing right to keep reading it after its author takes it private.Then Saved came out — the star on a pattern page, the panel's Saved tab, the dock's counter, the promote path, and the retired localStorage key, which is cleared on the next deck read rather than left sitting in people's browsers.
Two things fell out of that removal. The rule that a pattern with no firmware header cannot enter a deck lived in
savedToDeck, because Saved was the only route such a pattern had; deleting it deleted the check, anddeckAddnever had one. It is indeckAddnow. The full-deck message also said "Save it instead" — advice to use the removed feature. The deck smoke test caught the first of these.A deck's buttons went from five to three.
Send to my boardwas not sending anything — it loaded the deck into your working deck and opened the panel, which is whatCopy into my deckalready did, then asked you to sign in to build what a public deck has had built and cached all along. Public decks now offerInstall to my board(the board fetches the pack itself, no sign-in) and everything else keeps the long way round. Copy-link and download moved behind a Share panel, which also states the thing the buttons could not: the pack is built on first request and rebuilt whenever the running order changes — there is nothing to publish.Verified:
tscandeslintclean, deck/sharing/pack/workshop smokes pass, and the liked feed was checked against the database (a user with 9 likes gets exactly those 9 out of a 66-item feed, signed-out gets 0) since checking it signed-in would have meant creating an account.🤖 Generated with Claude Code