Skip to content

fix(images): reject non-printable core Flatpak names - #1055

Merged
bsherman merged 1 commit into
mainfrom
benjamin/fix/core-flatpaks-printable-names
Oct 7, 2026
Merged

bsherman merged 1 commit into
mainfrom
benjamin/fix/core-flatpaks-printable-names

Conversation

@bsherman

@bsherman bsherman commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Keeps snosi's producer validation in step with frostyard/firn#111. Firn's wizard renders each core app's name on the installer console from an unverified preview inspection, so firn now treats names containing control or format characters (escape sequences, newlines, tabs, zero-width joiners) as malformed. check_set now rejects the same names, so snosi can't publish a label that every opted-in firn install refuses.

str.isprintable() matches Go's unicode.IsPrint, which firn uses: plain spaces and non-ASCII letters pass. Every published label today is plain ASCII, and validate passes unchanged.

Type of change

  • Build pipeline / CI change

Validation

  • shellcheck / validate.yml static checks pass for touched scripts
  • Relevant tests in test/ were run

Commands run:

./test/core-flatpaks-test.sh        # 60 passed, 0 failed (new: escape, newline, tab, ZWJ rejected; accented name accepted)
./flatpaks/core-flatpaks.py validate
shellcheck -S warning -x test/core-flatpaks-test.sh

Checklist

  • Changes are as small and focused as possible
  • No secrets, keys, or credentials are committed

🤖 Generated with Claude Code

Firn's wizard shows each core app's name on the installer console before
the image is verified, so firn now treats names containing control or
format characters as malformed. The producer must reject the same names,
or snosi could publish a label every firn install refuses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bsherman
bsherman merged commit 34eb55b into main Oct 7, 2026
19 checks passed
@bsherman
bsherman deleted the benjamin/fix/core-flatpaks-printable-names branch October 7, 2026 02:28
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