Skip to content

fix(validation): allow + in package names (e.g. logi-options+)#10

Merged
fullstackjam merged 1 commit into
mainfrom
fix/allow-plus-in-package-names
May 24, 2026
Merged

fix(validation): allow + in package names (e.g. logi-options+)#10
fullstackjam merged 1 commit into
mainfrom
fix/allow-plus-in-package-names

Conversation

@fullstackjam
Copy link
Copy Markdown
Contributor

Summary

  • Allow + character in package names so casks like logi-options+ and formulae like gtk+ can be published
  • Update error message and add test coverage

Fixes openbootdotdev/openboot#101

Why

Real Homebrew casks contain +, so the publish API was rejecting valid configs with Invalid package name at index N: "logi-options+". + is not a shell metacharacter (no substitution, redirection, piping, or backgrounding), so allowing it doesn't widen the shell-injection surface — existing tests for ;, |, `, $, &&, >, and newline still reject those.

Test plan

  • npx vitest run src/lib/server/validation.test.ts — 64/64 pass, including new test for logi-options+ and gtk+
  • npm run lint — no new errors
  • Verify CLI flow: openboot snapshot --publish with a cask whose name contains + succeeds

Note

The CLI (Go) likely has a mirror of this regex per the validateMacOSPrefs convention comment. May need a matching fix there if CLI-side rejects before upload in some flow.

🤖 Generated with Claude Code

Real Homebrew casks contain +, so the publish API was rejecting valid
configs. + is not a shell metacharacter, so allowing it doesn't widen
the injection surface guarded by existing tests.

Fixes #101

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

codecov Bot commented May 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullstackjam fullstackjam merged commit 1e34ee4 into main May 24, 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.

Unable to publish due to "logi-options+" package name

1 participant