PhyberApex/kuroshiro
refactor(ui): tidy two small clone groups (plugins grid, screen card setup)
Open
#845 opened on Aug 22, 2026
fallowgood first issueready-for-agent
Repository metrics
- Stars
- (10 stars)
- PR merge metrics
- (Avg merge 3d 2h) (92 merged PRs in 30d)
Description
Problem Statement
Two small duplicated blocks in the UI reported by fallow dupes:
packages/ui/src/views/PluginsOverviewView.vue:79-93↔views/PluginsView.vue:72-86: theVRow/VColgrid that rendersPluginCardper plugin (15 lines). Differences: the button label and the:device-id/ event handlers passed toPluginCard.packages/ui/src/components/AddScreenCard.vue:14-20↔components/ScreenListCard.vue:15-20: identical setup (defineProps<{ deviceId }>,useScreensStore,useDeviceStore,devicecomputed,useDeviceRenderTarget(device)).
Solution
- Extract a
PluginCardGrid.vuecomponent takingplugins, optionaldeviceId, and emittingassignments-changed/deleted; use it from both views. - Extract a
useDeviceRenderContext(deviceId)composable (incomposeables/) returning{ device, renderTarget, screensStore }and use it from both cards.
No behavior change; keep data-test-ids and run pnpm --filter ./packages/ui test:e2e.
Verification
pnpm lint && pnpm type-check && pnpm testpass- Run
pnpm fallow:baselinein the same PR so the finding disappears from.fallow-baselines/, then confirmpnpm fallow:cipasses. Never add new findings to a baseline; seedocs/agents/fallow.md.
Found by the initial fallow scan (pnpm fallow) on 2026-08-22 and baselined so CI stays green until this is fixed.