Files
AstronautCheetah 61f5644a34 refactor: tweaks as packs, packs/official/<id>/, each described by its README.md's YAML front matter
The official tweaks move into packs/official/ and become data: everything the installer, the
installer window, the docs and the tests knew about a tweak is now in the front matter of its
README.md (title, category, tier, summary, what/why, author, source, dependencies, icon, Run
label, processes to stop, settings, known issue, wallet apps, the docs' changes/access/undo,
offline test). components.tsv, every meta and processes file, the "# label:" lines and the
window's icon, known-issue and wallet tables are gone; pack.md orders categories and tweaks.

- lib/manifest.py: a dependency-free reader for a strict YAML subset. It refuses what YAML
  readers disagree on (yes/no/on/off, dates, 010, anchors, tags, duplicate keys, plain values
  continuing on the next line) instead of guessing; tests compare it with PyYAML on every
  manifest. Also a writer.
- lib/sft.py loads packs: the official one, then ~/.local/share/frame-tweaks/packs/* and
  FRAME_TWEAKS_PACKS. A user's pack is used only once trusted (hash of its files; a changed pack
  needs trusting again); a tweak with an id already taken is used only with `replaces: true`;
  missing dependencies, newer pack api and invalid manifests are reported, not loaded.
  `./install.sh mods [trust|untrust PACK | check FOLDER]`.
- Scripts find their files through $TWEAK_DIR and other tweaks through tweak_dir (the installer
  passes FRAME_TWEAKS_DIRS); they source the helpers through $FRAME_TWEAKS_LIB. The installer
  runs every script with bash, so a pack's scripts needn't be executable. Arrow Pad's
  "release stuck modifiers after stopping it" is its own stopped.sh hook.
- Tweak icons live in their tweak's folder; the window shows them from there.
- dev/test-tweaks.sh: the offline set and what uninstall may keep come from manifests; a
  tweak's offline dependencies are installed before the baseline instead of listing their files.
- Docs links, CI, pin tools and tests follow the new paths.
2026-10-14 08:11:17 -04:00
..