Repository navigation
ci(flatpak): publish stock upstream Ghostty to the tuna-os remote - #83
Merged
Merged
Conversation
Puts unmodified upstream Ghostty (com.mitchellh.ghostty) on the TunaOS remote next to BlueShell, so a user can install either or both from the one remote -- the app IDs differ, so they coexist. The workflow is trigger policy and nothing else: the body is the reusable tuna-os/.github publish-flatpak.yml that finupdate, mariner, mandelbrot, dualcut and the four installer frontends already call. The app is built from a clean checkout of ghostty-org/ghostty via that workflow's new source-repo input, using upstream's own manifest, dependencies.yml and zig-packages.json, so upstream dependency and runtime bumps need no change here and there is nothing vendored to drift. Weekly rather than daily: the reusable pipeline has no "upstream unchanged" short-circuit, so each run is two full Zig builds, and a republished upstream terminal doesn't need same-day freshness. A dispatch input takes a specific ref when it does. Upstream's manifest sets `default-branch: tip`, which would publish a ref the remote can't resolve -- tuna-os.flatpakrepo declares DefaultBranch=master, and a mismatch is the 2026-07-27 "Nothing matches" incident that check-flatpak-remote.py was written for. No patch is needed and none is applied: flatpak-builder resolves manifest `branch:` -> `--default-branch` -> manifest `default-branch:`, and flatpak-github-actions always passes `--default-branch=master`. Recorded in the doc so a later change away from that action doesn't silently reintroduce it. Also corrects docs/TUNA_OS_PROMOTION.md against reality. It described the site listing as one page when an app is listed in six places, and its checklist had drifted from what is actually done -- BlueShell has been live in the remote index since the transfer. The upstream-sync entry records a real failure this uncovered: the `upstream-sync` label does not survive a repo transfer, so every weekly sync run since 2026-08-17 failed at `gh issue create --label upstream-sync`. Label recreated. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EMBRswEeeX2kzVSwpbxCoy
This was referenced Sep 6, 2026
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.
Puts unmodified upstream Ghostty (
com.mitchellh.ghostty) on the TunaOS Flatpak remote next to BlueShell. The app IDs differ, so a user can install either or both from the one remote.It's the standard tuna-os pipeline, not a new one
publish-ghostty-flatpak.ymlis 60 lines of trigger policy. The body is the reusabletuna-os/.github/.github/workflows/publish-flatpak.ymlthat finupdate, mariner, mandelbrot, dualcut and the four installer frontends already call — same native per-arch OCI builds, same skopeo push, samepublish-flatpak-indexaction.It depends on tuna-os/.github#75, which adds an optional
source-repoinput to that reusable workflow (additive; all six existing callers resolve byte-identically). Merge that first.Nothing about Ghostty is vendored here: it builds from a clean checkout of
ghostty-org/ghosttywith upstream's own manifest,dependencies.ymlandzig-packages.json, so upstream dependency and runtime bumps need no action in this repo.Two things that would have broken it
default-branch: tip. Upstream's manifest sets it; the remote'stuna-os.flatpakrepodeclaresDefaultBranch=master. Atipref meansflatpak install tuna-os com.mitchellh.ghosttyfails with "Nothing matches" — the 2026-07-27 incidentcheck-flatpak-remote.pyexists to catch. No patch needed: flatpak-builder resolves manifestbranch:→--default-branch→ manifestdefault-branch:, andflatpak-github-actionsalways passes--default-branch=master. Documented so a later move off that action doesn't silently reintroduce it.ghcr.io/tuna-os/ghosttymust be made public by hand after the first run; a private package fails to install exactly like a missing one.Also in this PR
docs/TUNA_OS_PROMOTION.mdcorrected against reality — it described the tunaos.org listing as one page when an app is listed in six places, and its checklist had drifted from what is actually done.Unrelated bug this uncovered (already fixed)
upstream-sync.ymlhas failed every weekly run since the 2026-08-17 transfer — silently, because the failure is in the conflict-reporting step. Labels don't survive a repo transfer, sogh issue create --label upstream-syncwas erroring on a label that no longer existed. The label has been recreated on this repo; the next Monday run should complete.Cadence
Weekly (Sundays 05:00 UTC) plus
workflow_dispatch, because the reusable pipeline has no "upstream unchanged" short-circuit — every run is two full Zig builds. Easy to raise if that turns out to be too slow.🤖 Generated with Claude Code
https://claude.ai/code/session_01EMBRswEeeX2kzVSwpbxCoy