You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Catalog cards now show which platforms an app supports while you browse, so "does this work on my phone?" is answered without opening the listing. All 59 packaged listings now declare a per-surface support level - full, limited, list, commands, or none - and the card and detail page render the same labels from the same data.
Core derives the platform list from each manifest's surfaces map and publishes it on the catalog entry, and the public index projects it into a flat surfaces array. An explicit "none" is filtered out rather than advertised, while an absent key keeps its meaning of "not declared, runs everywhere."
Listings can now say how finished they are, and the store shows it on the card and in the detail header. Alpha, beta, rc, nightly, and canary are all valid today.
The label is a free-form string carried in the published index, so a listing graduates out of beta by flipping a value and re-mirroring, with no Core release. An unrecognised value renders title-cased rather than disappearing, and a listing that declares nothing renders no badge at all.
Affected packages: ryu-core, @ryu/marketplace
Per-version history for listings
The Versions tab on a store listing now expands to the manifest and README read from the repository at that exact tag, so a row shows what the listing actually was at that release - description, licence, engines, and surfaces - not just the tag, date, and notes.
Rows load lazily when expanded, since a listing can carry up to 20 versions. Only repo-resident signals are claimed as historical: stars, issues, and activity are current-state, and every expanded row says so explicitly rather than presenting them as the state at that tag.
In the desktop app the reader is bound to the active node through CatalogHost, and a tag with no packaged manifest renders "No manifest published at this tag" rather than an error.
Storage settings can now copy your current profile's data into another profile - dev, canary, nightly, or beta - complete with the master key, so the destination boots able to decrypt everything. Release is deliberately not offered as a target, and an already-populated target is refused rather than merged.
The key travels first and any failure aborts before a file is written, so a copy never leaves ciphertext nothing can read. Node identity, sign-in state, saved nodes, and downloaded binaries are excluded, and Core is stopped during the copy so the snapshot is not torn.
A new Danger Zone action, deep clean, removes what Reset node never touches: shadow captures, ghost state, gateway config, and the data-path pointer that live outside the data folder. Every path is checked for $HOME containment before deletion, and the dialog warns that shadow and ghost are shared across all profiles.