5 Commits
Author SHA1 Message Date
KomhandClaude Opus 5 bb35120069 fix(ci): reclaim the ref files a de-list leaves behind in R2
publish uploads refs with `rclone copy`, which never deletes, so a ref that
delist-prune removed locally survived in R2. Once the weekly prune reclaimed
that commit's objects the leftover file became a dangling pointer, and the next
publish's R2 reconcile synced it straight back into the local repo — where the
summary regeneration flatpak build-export does on export hard-fails:

    Exporting app.markra.Markra to repo
    error: No such metadata object 84604b86...aac26297.commit

That commit was io.github._66HEX.Frame's, de-listed on 2026-07-27 and pruned on
08-01; app.legcord.Legcord left an identical landmine. Nothing about the app
being built was wrong, and no rerun could pass: every publish after a de-list +
prune fails the same way.

- prune-and-reclaim.sh now records the ref files it delists, and sync-r2.sh
  deletes those keys from R2 after the new summary is live (refs before the
  objects they name) — same targeted-delete discipline as the object reclaim,
  still never a blind mirror.
- prune-and-reclaim.sh also delists runtime/<id>.{Debug,Locale,Sources}, not
  just app/<id>: a de-listed app's .Debug ref used to stay live forever and pin
  its objects against reclaim (app.legcord.Legcord.Debug is still in the summary
  today). Genuine runtimes are left alone.
- drop-dangling-refs.sh sweeps after the R2 reconcile so a publish self-heals on
  stale state instead of wedging. It queues the R2 delete only for refs whose
  app left the registry; a ref that is still listed is dropped locally only, so
  a half-finished object sync can never cost a published pointer.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-02 21:19:03 +08:00
Komh c0fddbe6fb Revert "Merge pull request #103 from flatpark/runtime/zulu21-publishing"
This reverts commit 913cd8e352, reversing
changes made to 8449139979.
2026-07-11 19:01:51 +08:00
Komh 155e175a87 publish: add pinned FlatPark runtimes 2026-07-11 18:22:04 +08:00
KomhandClaude Opus 4.8 da938aad57 site: link each app to its packaging recipe
Add a "Packaging" row to the app detail page that links to this repo's
registry/<app-id>/ directory, so users can review exactly how each app
is packaged (manifest, wrapper, apply_extra.sh, resolve-update.sh).

The link is auto-derived for every app from two new config values
(PACKAGING_REPO_URL, PACKAGING_BRANCH) in gen-apps-json.sh, so it needs
zero per-app maintenance and shows even for proprietary apps that have
no public upstream repo. The link text is a fixed "flatpark/registry";
the href points at the real per-app directory.

Also relabel the existing source_url row: it points at the upstream
project (not the packaging), so the misleading "Packaging repo" text
becomes the app name linking to the real upstream repo.

- config/flatpark.conf: PACKAGING_REPO_URL + PACKAGING_BRANCH defaults
- scripts/lib/common.sh: export the two new vars from load_config
- scripts/gen-apps-json.sh: emit per-app packagingUrl (kept out of the
  light catalog.json)
- site/src/pages/apps/[id].astro: Source -> app name; new Packaging row
- tests/test_gen_apps_json.sh: assert packagingUrl is derived correctly
  and does not leak into catalog.json

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-22 10:20:24 +08:00
Komh 847a023caa init
FlatPark publishing platform: registry-driven Astro catalog, two-stage
publish pipeline, signing, CI, and docs. Apps are added via pull request.
2026-06-20 12:52:46 +08:00