Skip to content

fix(apps): make apps.ts faithfully regenerable from its inputs#122

Merged
TeoSlayer merged 1 commit into
mainfrom
fix/apps-generator-faithful
Jul 13, 2026
Merged

fix(apps): make apps.ts faithfully regenerable from its inputs#122
TeoSlayer merged 1 commit into
mainfrom
fix/apps-generator-faithful

Conversation

@TeoSlayer

Copy link
Copy Markdown
Contributor

Problem

src/data/apps.ts is auto-generated by scripts/gen-apps.mjs from app-overrides.json + app-methods.json, but it had been hand-patched and drifted from those inputs. A faithful regen would have corrupted it (dropped the didit card, emptied slipstream methods, nulled plainweb.sourceUrl, etc.).

This PR fixes the inputs so regeneration reproduces the intended catalogue, then regenerates.

Changes to inputs

  • didit (io.pilot.didit) — was a hand-added card absent from every input, so it would be dropped on regen. Back-filled into APP_IDS, CATMAP (security), ICON_MAP (its committed png), app-overrides.json, and app-methods.json (all 40 methods). inCatalogue: true (being published in a parallel effort).
  • smolmachines (io.pilot.smolmachines) — a live catalogue app (1.2.0, Apache-2.0) with no website card. Added from its catalogue/apps/io.pilot.smolmachines/metadata.json: infra category, png icon, override + 2 methods. Distinct from io.pilot.smol, which is left unchanged.
  • mysql — overrides already declared inCatalogue: true (it is being published); regen resolves apps.ts to match.
  • sqlite — license aligned to the catalogue: "Public Domain""blessing" (SPDX id for the SQLite Blessing).
  • plainweb / slipstream — back-filled inputs that had been hand-patched only into apps.ts (plainweb.sourceUrl, slipstream's 9 methods) so regen preserves them instead of regressing.

Verification

apps.ts is now fully reproducible from inputs. App-by-app diff (HEAD → regenerated) shows only intended changes:

  • added: io.pilot.smolmachines
  • io.pilot.sqlite: license
  • io.pilot.mysql: inCatalogue false→true (+ real false→true — generator canonical, correct for a real catalogued app)
  • io.pilot.didit: inCatalogue false→true, plus generator canonicalizations (real→true, category hue, updatedAt = publishedAt, synthetic per-platform bundles, trailing-period-stripped tagline)
  • no other app card changes

npm run build (astro) green — 346 pages, incl. /apps/io.pilot.didit and /apps/io.pilot.smolmachines. Final catalogue: 21 apps.

🤖 Generated with Claude Code

apps.ts had drifted from its generator inputs (app-overrides.json +
app-methods.json), so a faithful `node scripts/gen-apps.mjs` would have
corrupted it. Back-fill the inputs so regeneration reproduces the intended
catalogue, then regenerate.

- didit: back-fill io.pilot.didit into APP_IDS, CATMAP (security), ICON_MAP
  (its committed png), overrides, and methods (40) so its hand-added card is
  reproduced instead of dropped. inCatalogue set to true (being published).
- smolmachines: add io.pilot.smolmachines (missing card) from its catalogue
  metadata.json — infra category, png icon, 1.2.0 / Apache-2.0, 2 methods.
- mysql: overrides already say inCatalogue true (it is being published);
  regen resolves apps.ts to match.
- sqlite: align license to the catalogue ("Public Domain" -> "blessing").
- plainweb / slipstream: back-fill inputs (plainweb sourceUrl, slipstream's
  9 methods) that had been hand-patched into apps.ts, so regen preserves them.

apps.ts is now fully generator-reproducible: 21 apps, astro build green.
Within-didit/mysql field normalizations (real -> true, category hue,
updatedAt = publishedAt, synthetic bundles) are the generator's canonical
output and are correct for real, catalogued apps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TeoSlayer TeoSlayer enabled auto-merge (squash) July 13, 2026 13:04
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Preview deployed to Cloudflare Pages

  • Commit deploy URL: https://8bbda953.pilotprotocol.pages.dev
  • Branch alias: https://fix/apps-generator-faithful.pilotprotocol.pages.dev (may take ~30s to propagate)
  • Commit: fcb106ce6af55e0f5c6da83c91f0d686b040a72a

@TeoSlayer TeoSlayer merged commit 1593b71 into main Jul 13, 2026
3 checks passed
TeoSlayer added a commit that referenced this pull request Jul 13, 2026
)

io.pilot.smolmachines is being tombstoned upstream (pilotprotocol #360) —
its metadata.json is removed and it is marked non-installable, with
io.pilot.smol as the canonical microVM app. The website already has the
correct io.pilot.smol card, so remove the smolmachines card added in #122.

Reverts only the smolmachines additions from APP_IDS, CATMAP, ICON_MAP,
app-overrides.json, and app-methods.json, then regenerates. The didit,
mysql, and sqlite fixes from #122 are untouched. Catalogue back to 20 apps;
astro build green.

Co-authored-by: Teodor Calin <teodor@vulturelabs.io>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants