Skip to content

feat(penpal): add packaging script and dev build branding#318

Draft
loganj wants to merge 2 commits intomainfrom
loganj/penpal-3-phase1
Draft

feat(penpal): add packaging script and dev build branding#318
loganj wants to merge 2 commits intomainfrom
loganj/penpal-3-phase1

Conversation

@loganj
Copy link
Collaborator

@loganj loganj commented Mar 2, 2026

Summary

Phase 1 of PENPAL-3 (Homebrew installation support). Stacked on #317.

  • Add scripts/package.sh — zips the built .app bundle using ditto (preserves code signatures/resource forks). Accepts an optional arch argument for CI cross-compilation.
  • just install now builds with productName: "Penpal Dev" so the menu bar shows "Penpal Dev", distinguishing local dev builds from Homebrew installs.
  • Add just package recipe for one-step build + package.
  • Add dist/ to .gitignore and clean recipe.

Test plan

  • just install builds and installs to /Applications — menu bar shows "Penpal Dev"
  • just package creates dist/Penpal-0.1.0-arm64.zip
  • ./scripts/package.sh x86_64 names the zip correctly for the specified arch
  • Zip contains Penpal.app at the top level (not nested)

🤖 Generated with Claude Code

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b786ee1143

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@loganj loganj force-pushed the loganj/penpal-install-tools branch 2 times, most recently from 1c1145b to ef24549 Compare March 2, 2026 02:17
Base automatically changed from loganj/penpal-install-tools to main March 2, 2026 02:20
@loganj loganj force-pushed the loganj/penpal-3-phase1 branch from b786ee1 to bb39cf2 Compare March 2, 2026 02:35
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bb39cf23e6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@loganj loganj added the ai-outer-loop Managed by outer-loop label Mar 2, 2026
Add a "Manage Command Line Tools..." menu item and startup modal that
handles installing/updating the penpal CLI symlink and Claude Code plugin
from within the app, removing the need to clone the repo and run
`just install` for these tasks.

- Go endpoint (GET/POST /api/install-tools) creates CLI symlink and
  runs claude plugin marketplace add/install
- Tauri menu item dispatches event to frontend
- Modal shows on each new build: "Install" for fresh, "Update" for
  existing tools, with per-build localStorage dismissal
- Bundle .claude-plugin/marketplace.json and plugin/ in app resources
- Simplify justfile install/uninstall (app handles tools now)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@loganj loganj force-pushed the loganj/penpal-3-phase1 branch from bb39cf2 to 47bb62f Compare March 2, 2026 02:48
@loganj loganj marked this pull request as draft March 2, 2026 02:49
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 47bb62f2c8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +221 to 222
if (!localStorage.getItem(dismissKey)) {
setShowInstallModal(true);

Choose a reason for hiding this comment

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

P2 Badge Gate startup prompt on tool status before honoring dismiss

The startup check now suppresses the install/update modal whenever penpal-install-dismissed-<build> exists, without considering whether tools are currently installed. This means a user who dismissed the first-launch prompt with no tools can later install an outdated CLI/plugin (or lose one component) and will no longer get the expected update prompt for that build, because hasTools is ignored once the dismiss key is present.

Useful? React with 👍 / 👎.

@loganj loganj force-pushed the loganj/penpal-3-phase1 branch from 47bb62f to 7321c61 Compare March 2, 2026 02:53
@loganj loganj force-pushed the loganj/penpal-3-phase1 branch from 7321c61 to e23b1d6 Compare March 2, 2026 02:56
- Add scripts/package.sh to zip .app bundles for distribution using
  ditto (preserves code signatures and resource forks). Accepts an
  optional arch argument for CI cross-compilation.
- Patch `just install` to set CFBundleName/CFBundleDisplayName to
  "Penpal Dev" so developers can distinguish local builds from
  Homebrew installs at a glance.
- Add `just package` recipe that builds and packages in one step.
- Add dist/ to .gitignore and clean recipe.
@loganj loganj force-pushed the loganj/penpal-3-phase1 branch from e23b1d6 to 085c644 Compare March 2, 2026 03:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-outer-loop Managed by outer-loop

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant