6 Commits
Author SHA1 Message Date
creatixchu e77640f24d test(web): align plugin snapshots with persistent progress status 2026-10-20 20:17:53 +08:00
Ziya 640e28cd94 feat(web): reorganize plugin settings and add experimental catalog page (#5922)
Group built-in settings before optional and installed plugins, and open the full experimental catalog on a separate page.

Preserve detail navigation and unsaved configuration when installation finishes, and use the visible More label as the accessible name.
2026-10-08 23:42:56 -07:00
turtle1999 b96959ecf4 feat(plugins): show where a bundle comes from on its page
The bundle page ends with a Source section: the spec that installs the
bundle elsewhere, as `pnpm add` accepts it, or Built in for an official
bundle the installation ships, followed by its current version.

The Host's listBundles carries the new `source` field for profile
dependencies: git addresses and URLs as recorded, file:/link: paths made
absolute against the profile, and registry ranges, tags, or aliases after
the package name.
2026-09-29 10:51:33 +08:00
Yichen Jiang 5882efd7ce test(web): re-record the bundle golden for plugin-owned identity
The bundle page now titles the fixture by its package name, prints the
row id as code under the row's title, and drops the missing-description
line, as master's row and official goldens already record.
2026-09-21 17:13:41 +08:00
Yichen Jiang 9f3ddc1a19 test(web): re-record the bundle golden after the detail-page chrome change
The crumb, uninstall, and configure controls no longer render an icon child in the accessibility tree; the bundle page golden this branch added follows the row and official goldens master re-recorded.
2026-09-19 10:41:31 +08:00
Yichen Jiang a815a7f2a9 feat(web): open action, badge and section slots on plugin detail pages
The Plugins page declares three list slots as children of its main
entry: `plugins.detail.actions` renders at the head of a detail page
before its switch and uninstall controls, `plugins.detail.badge` after
the tags beside the title, and `plugins.detail.section` below the page's
own content. Every entry receives a `subject` owner prop naming what the
open page is about — a bundle, one row of a bundle, or an official item —
so one entry serves any page and renders nothing elsewhere. A row's page
still opens only for rows with a `plugins.row.config` entry.

The `plugin-config` web lane drives the three slots through the live
fixture on its bundle page and its row page, records a new bundle
golden, and shows the fixture contributing nothing to an official page.
2026-09-17 17:58:29 +08:00