Repository navigation
Make the project presentable: Pages at kccarlos.github.io/gitcontext, signed macOS releases, Homebrew cask, README screenshots - #21
Conversation
…nt restart loop The custom domain gitcontext.xyz is gone, so production builds use the /gitcontext/ base and the CNAME is removed. A Playwright smoke test checks the built site under that path. TokenCountsProvider passed a new onBatch on every render; it is a dependency of the counting effect, so each progress update restarted counting and flooded the git worker (production builds never finished counting). Claude-Session: https://claude.ai/code/session_01Yb4sbCDrvzqV8fFpnCrQK5
git2's default https/ssh features pulled in openssl-sys and libssh2-sys, and the released binary loaded /opt/homebrew/opt/openssl@3 at launch, so it failed on Macs without that Homebrew package. The app only reads local repositories, so the network features are off. Minimum macOS is 10.15, the floor Tauri 2 supports. Claude-Session: https://claude.ai/code/session_01Yb4sbCDrvzqV8fFpnCrQK5
- Pages deploys in its own workflow on every push to main, after unit tests and a smoke test of the build under /gitcontext/, so a release failure can no longer take the site down. - Releases: semantic-release creates the tag and a draft release first; the desktop builds are stamped with that version (assets were named 1.0.0 before), uploaded, and the draft is published only when every platform succeeded. - macOS: universal build signed with the Developer ID identity from the release environment, app and DMG notarized and stapled, checked for team, Gatekeeper, architectures and non-system libraries. - Homebrew: the full cask is rendered from packaging/homebrew and pushed to kccarlos/homebrew-tap after a release. - workflow_dispatch builds and signs without releasing. Claude-Session: https://claude.ai/code/session_01Yb4sbCDrvzqV8fFpnCrQK5
…r playwright install Claude-Session: https://claude.ai/code/session_01Yb4sbCDrvzqV8fFpnCrQK5
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ba2ec09a2
ℹ️ 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".
| archs="$(lipo -archs "$app/Contents/MacOS/gitcontext-desktop")" | ||
| case "$archs" in *x86_64*arm64*|*arm64*x86_64*) echo "Architectures: $archs" ;; *) echo "::error::Not universal: $archs"; exit 1 ;; esac | ||
| # Only system libraries: a Homebrew dylib would not exist on users' Macs. | ||
| if otool -L "$app/Contents/MacOS/gitcontext-desktop" | tail -n +2 | grep -v -E '^\s*(/System/|/usr/lib/)'; then |
There was a problem hiding this comment.
Use a portable whitespace class in the linkage check
On the macOS runner, grep -E uses POSIX extended regular expressions, where the portable whitespace syntax is [[:space:]], not \s (grep specification, ERE character classes). Because every otool -L dependency line is indented, this pattern treats valid /System and /usr/lib entries as disallowed, enters the error branch, and prevents every macOS release from being uploaded; use ^[[:space:]]* here.
Useful? React with 👍 / 👎.
| @@ -1 +0,0 @@ | |||
| gitcontext.xyz | |||
There was a problem hiding this comment.
Clear the Pages custom-domain setting
When the repository's Pages settings still name gitcontext.xyz, deleting this file does not switch the site back to kccarlos.github.io/gitcontext; GitHub explicitly notes that removing a CNAME file does not remove the configured custom domain (GitHub Pages documentation). Since the new build also assumes the /gitcontext/ base path, clear the custom-domain setting manually or through the Pages API before relying on the new URL.
Useful? React with 👍 / 👎.
| @@ -0,0 +1,61 @@ | |||
| # The web app on GitHub Pages: https://kccarlos.github.io/gitcontext/ | |||
There was a problem hiding this comment.
Add the required story verification report
A repo-wide search of .codex/ralph-gitcontext/verify found no report covering this release/Pages story, so the commit lacks the required record of commands and pass/fail results, changed files, unresolved risks, and the standalone verification marker; add the story-specific report before landing this workflow.
AGENTS.md reference: AGENTS.md:L42-L50
Useful? React with 👍 / 👎.
|
🎉 This PR is included in version 2.4.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
What changes
/gitcontext/base and the CNAME for the lostgitcontext.xyzis gone. Pages deploys from its own workflow (pages.yml) on every push to main, after unit tests and a Playwright smoke test of the built site under/gitcontext/. A failed release can no longer take the site down.TokenCountsProviderpassed a newonBatchcallback on every render. That callback is in the counting effect's deps, so each progress tick restarted counting and flooded the git worker with "Too many pending tasks". Production builds never finished counting. A regression test reproduces it: it ran out of memory before the fix.openssl@3into the macOS binary. The released 2.3.0 app loads/opt/homebrew/opt/openssl@3and fails without it. The app only reads local repos, so those features are off now. The minimum macOS is 10.15, Tauri 2's floor.workflow_dispatch) builds and signs without releasing.packaging/homebrew/gitcontext.rbis rendered and pushed tokccarlos/homebrew-tapafter each release.Release setup (done)
Merging dev → main cuts a release right away. Everything it needs is set:
releaseenvironment:DEVELOPER_ID_P12_BASE64,DEVELOPER_ID_P12_PASSWORD,ASC_API_KEY_P8_BASE64,ASC_API_KEY_ID,ASC_API_ISSUER_IDhomebrewenvironment:HOMEBREW_TAP_TOKEN(push access to kccarlos/homebrew-tap confirmed)APPLE_TEAM_IDChecked locally with the same credentials: the app was signed, notarized (Accepted), stapled and passed Gatekeeper; the DMG was notarized (Accepted), stapled and passed Gatekeeper.
https://claude.ai/code/session_01Yb4sbCDrvzqV8fFpnCrQK5