fix(apps): make apps.ts faithfully regenerable from its inputs#122
Merged
Conversation
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>
Contributor
|
🚀 Preview deployed to Cloudflare Pages
|
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>
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.
Problem
src/data/apps.tsis auto-generated byscripts/gen-apps.mjsfromapp-overrides.json+app-methods.json, but it had been hand-patched and drifted from those inputs. A faithful regen would have corrupted it (dropped thediditcard, emptiedslipstreammethods, nulledplainweb.sourceUrl, etc.).This PR fixes the inputs so regeneration reproduces the intended catalogue, then regenerates.
Changes to inputs
io.pilot.didit) — was a hand-added card absent from every input, so it would be dropped on regen. Back-filled intoAPP_IDS,CATMAP(security),ICON_MAP(its committedpng),app-overrides.json, andapp-methods.json(all 40 methods).inCatalogue: true(being published in a parallel effort).io.pilot.smolmachines) — a live catalogue app (1.2.0, Apache-2.0) with no website card. Added from itscatalogue/apps/io.pilot.smolmachines/metadata.json:infracategory,pngicon, override + 2 methods. Distinct fromio.pilot.smol, which is left unchanged.inCatalogue: true(it is being published); regen resolvesapps.tsto match."Public Domain"→"blessing"(SPDX id for the SQLite Blessing).apps.ts(plainweb.sourceUrl, slipstream's 9 methods) so regen preserves them instead of regressing.Verification
apps.tsis now fully reproducible from inputs. App-by-app diff (HEAD → regenerated) shows only intended changes:io.pilot.smolmachinesio.pilot.sqlite:licenseio.pilot.mysql:inCataloguefalse→true (+realfalse→true — generator canonical, correct for a real catalogued app)io.pilot.didit:inCataloguefalse→true, plus generator canonicalizations (real→true, categoryhue,updatedAt = publishedAt, synthetic per-platformbundles, trailing-period-stripped tagline)npm run build(astro) green — 346 pages, incl./apps/io.pilot.diditand/apps/io.pilot.smolmachines. Final catalogue: 21 apps.🤖 Generated with Claude Code