Skip to content

Rename device frames to remove ASCII double-quote from filenames#27

Merged
bitomule merged 1 commit into
bitomule:mainfrom
jonnyjackson26:fix/windows-frame-filenames
May 6, 2026
Merged

Rename device frames to remove ASCII double-quote from filenames#27
bitomule merged 1 commit into
bitomule:mainfrom
jonnyjackson26:fix/windows-frame-filenames

Conversation

@jonnyjackson26
Copy link
Copy Markdown
Contributor

There are 18 frame PNGs whose basenames contained an ASCII double-quote ("):

iPad Air 11"/13" M2 in all four colors, iMac 24" Silver, and MacBook Air 13" 4th Gen Midnight

These cannot be materialized on Windows because the OS reserves <>:"|?* and rejects any path containing them. Two user-visible failure paths result:

  • git clone aborts mid-checkout with error: invalid path 'src/koubou/frames/MacBook Air 13" - 4th Gen - Midnight.png' and leaves the working tree empty.
  • kou setup-frames (and the implicit download triggered by kou generate) fails partway through tarfile.extract with [Errno 22] Invalid argument, after which the cleanup path in frame_manager.download_frames wipes the partial cache.

FIX:
Drop the double-quote entirely so the names match the bare-number convention already used elsewhere in the directory (iPad Pro 11 - M4 - ..., iPad Pro 13 - M4 - ..., MacBook Pro 2021 14). No content changes -- the blob bytes are identical, only the path differs.

Also updates README.md, CHANGELOG.md, and
skills/koubou/yaml-reference.md where the same device names appeared in user-facing reference text.

Note: users with an existing YAML referencing the old name (e.g. device: iPad Air 13" - M2 - Space Gray - Portrait) will need to drop the " from their config. A back-compat alias map in _load_frame_image / _get_frame_info can be added in a follow-up if the maintainer wants to avoid the breaking change.

The 18 frame PNGs whose basenames contained an ASCII double-quote
(") -- iPad Air 11"/13" M2 in all four colors, iMac 24" Silver,
and MacBook Air 13" 4th Gen Midnight -- cannot be materialized on
Windows because the OS reserves <>:"|?* and rejects any path
containing them. Two user-visible failure paths result:

- `git clone` aborts mid-checkout with `error: invalid path
  'src/koubou/frames/MacBook Air 13" - 4th Gen - Midnight.png'`
  and leaves the working tree empty.
- `kou setup-frames` (and the implicit download triggered by
  `kou generate`) fails partway through `tarfile.extract` with
  `[Errno 22] Invalid argument`, after which the cleanup path
  in `frame_manager.download_frames` wipes the partial cache.

Drop the double-quote entirely so the names match the bare-number
convention already used elsewhere in the directory (`iPad Pro 11 -
M4 - ...`, `iPad Pro 13 - M4 - ...`, `MacBook Pro 2021 14`). No
content changes -- the blob bytes are identical, only the path
differs.

Also updates README.md, CHANGELOG.md, and
skills/koubou/yaml-reference.md where the same device names
appeared in user-facing reference text.

Note: users with an existing YAML referencing the old name
(e.g. `device: iPad Air 13" - M2 - Space Gray - Portrait`) will
need to drop the `"` from their config. A back-compat alias map
in `_load_frame_image` / `_get_frame_info` can be added in a
follow-up if the maintainer wants to avoid the breaking change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Owner

@bitomule bitomule left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!! I'll merge it and update the changelog to reflect the breaking change.

@bitomule bitomule merged commit c495325 into bitomule:main May 6, 2026
7 checks passed
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