Repository navigation
feat(plugins): add ratings and reviews with installed card grid - #1727
Merged
Merged
Conversation
Installed plugins read as a card grid with one clear action per card and their trust, update, and scope state visible, and marketplace cards carry public rating summaries. The renderer reads reviews anonymously through host-core: two read-only RPCs proxy the plugin center's public summary and review endpoints, build the review webpage URL from the effective trusted center origin, and bound every request with a deadline and response cap while never holding host state across network I/O. The reads stay separate from install and update: a legacy or unreachable center surfaces as an unavailable state rather than fabricated zeros, ids are deduplicated and batched, and both response and result schema are validated. Writing a review happens on the plugin center's web page; the desktop has no login and no write path. fixes #1678 fixes #1679
Bump every version-bearing surface to 0.21.0-beta.2: the workspace and app package manifests, the Cargo workspace version with the host-core lockfile entry, and the shared APP_VERSION constant. Refresh the bundled models.dev snapshot from the official endpoint before tagging (232 providers / 8983 models, two providers added, none removed, validated as a provider catalog). The in-app changelog catalogs the stable 0.21.0 line rather than the prerelease identifier, and the release-document preflight passes for it.
…utes The fixture's market override is process-global, so another test opening an AppState while these tests hold it makes a /catalog.json fetch that the whole-log assertions counted; under full-suite parallelism that failed the redirect-refusal test even though the redirect was never followed. Count review-route traffic only, so the "no review traffic" promises still fail when a review request is actually made.
The documentation checks require every English spec page to carry a zh-CN mirror with the same table and code-fence structure, and the NAV index to list both. Add the missing zh-CN mirror of the reviews test plan, index it in both NAV files, and carry the anonymous review-read section into the plugin-center mirror so that pair's structure matches English again. The center-mirror drift predates this branch; it surfaced only now because this branch touches docs, which triggers the docs workflow.
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.
What
Installed plugins now render as a card grid with one action per card and their trust, update, and scope state at a glance, and marketplace cards carry a public rating chip. A plugin's detail sheet gains a ratings summary, and a read-only review drawer lists public reviews with sentiment/sort filters and cursor paging.
Reviews are read anonymously through host-core (
market.reviewSummaries/market.reviews): the renderer keeps no network access of its own, there is no desktop login and no write path, and writing a review opens the plugin center's web page in the system browser (web login only).Scope
crates/host-core: public review client (5 s deadline, 1 MiB response cap, redirect refusal, trusted-origin-only URLs, id dedup + 100-id batching, schema validation) and two read-only RPCs (market.reviewSummaries,market.reviews).packages/shared: publicPluginReviewSummary/PluginReview/PluginReviewPage/PluginReviewQuerytypes and the two IPC channels.apps/desktop: Electron IPC pass-through, renderer API (api.marketReviewSummaries/api.marketReviews), installed-grid + detail-sheet + review-drawer UI, styling, and nine locales.docs/spec/06-delivery/plugin-reviews-test-plan.md.0.21.0-beta.2version surfaces and a refreshed bundled models.dev snapshot.Evidence
docs/spec/06-delivery/plugin-reviews-test-plan.md(RVD-*); the end-to-end scenario isE2E-PLUGIN-reviews-public-readsindocs/spec/06-delivery/04-e2e-test-plan.md.market-review-ipc,plugin-reviews-logic,plugin-reviews-surface,plugins-page-style,extensions-page,settings-dialog-overlay.cargo fmtclean,cargo clippy -p host-core --all-targetsexit 0.electron-vitebuild exit 0.reviewUrlderived from the effective fixture origin, no privateuserId/hiddenReason/report fields. The center lane's separate plan pairs with this one and carries its Go integration/store evidence, including real MySQL.transcripts.rs:893. Remote CI is authoritative for the full gates.closes #1678
closes #1679