feat(apps): star-ranked catalog, star from Rowboat, delete local apps

- catalog is ranked by GitHub star count (per-repo lookup with a 10-min
  cache; unauthenticated works, the publish token is used when present)
- star button on each catalog card stars/unstars the app's repo as the
  signed-in user (public_repo scope covers it), optimistic with revert
  and a sign-in hint when signed out
- the info panel now offers Delete for local apps (apps:delete already
  existed and cleans up app-owned agents; only installed apps had a
  removal button before)
This commit is contained in:
Gagan 2026-07-07 20:59:02 +05:30
parent 26e2fde0a8
commit fd91f4ea22
5 changed files with 165 additions and 3 deletions

View file

@ -1272,6 +1272,18 @@ const ipcSchemas = {
req: z.object({ query: z.string() }),
res: z.object({ records: z.array(RegistryRecordSchema) }),
},
// GitHub star counts (catalog ranking) + the signed-in user's starred set.
'apps:catalogStars': {
req: z.object({ repos: z.array(z.string()) }),
res: z.object({
stars: z.record(z.string(), z.number()),
starred: z.record(z.string(), z.boolean()),
}),
},
'apps:star': {
req: z.object({ repo: z.string(), star: z.boolean() }),
res: z.object({ starred: z.boolean() }),
},
'apps:catalogDetail': {
req: z.object({ name: z.string() }),
res: z.object({