Skip to content

Commit 67cfa3f

Browse files
committed
Release 0.2.2
1 parent 0456fcd commit 67cfa3f

5 files changed

Lines changed: 32 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# Changelog
22

3+
## 0.2.2 — 2025-11-17
4+
- Menu bar icon stays static when no account/usage is present; loading animation only runs while fetching (12 fps) to keep idle CPU low.
5+
- Usage refresh first tails the newest session log (512 KB window) before scanning everything, reducing IO on large Codex logs.
6+
- Packaging/signing hardened: strip extended attributes, delete AppleDouble (`._*`) files, and re-sign Sparkle + app bundle to satisfy Gatekeeper.
7+
38
## 0.2.1 — 2025-11-17
9+
- Patch bump for refactor/relative-time changes; packaging scripts set to 0.2.1 (5).
410
- Streamlined Codex usage parsing: modern rate-limit handling, flexible reset time parsing, and account rate-limit updates (thanks @jazzyalex and https://jazzyalex.github.io/agent-sessions/).
5-
- Usage refresh now tails the newest session log (512 KB window) before falling back to a full scan, cutting disk IO and CPU spikes on large Codex logs.
6-
- Menu bar icon animation now sleeps when data is present; loading CADisplayLink runs at 12 fps only while fetching to reduce idle CPU.
7-
- If no account/usage is found, menu bar icon stays static (no loading animation) to avoid distracting motion when offline or before first login.
811

912
## 0.2.0 — 2025-11-16
1013
- CADisplayLink-based loading animations (macOS 15 displayLink API) with randomized patterns (Knight Rider, Cylon, outside-in, race, pulse) and debug replay cycling through all.

CodexBar-0.2.2.zip

2.3 MB
Binary file not shown.

Scripts/package_app.sh

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ cat > "$APP/Contents/Info.plist" <<'PLIST'
2727
<key>CFBundleIdentifier</key><string>com.steipete.codexbar</string>
2828
<key>CFBundleExecutable</key><string>CodexBar</string>
2929
<key>CFBundlePackageType</key><string>APPL</string>
30-
<key>CFBundleShortVersionString</key><string>0.2.1</string>
31-
<key>CFBundleVersion</key><string>6</string>
30+
<key>CFBundleShortVersionString</key><string>0.2.2</string>
31+
<key>CFBundleVersion</key><string>7</string>
3232
<key>LSMinimumSystemVersion</key><string>15.0</string>
3333
<key>LSUIElement</key><true/>
3434
<key>CFBundleIconFile</key><string>Icon</string>
@@ -51,6 +51,7 @@ if [[ -d ".build/$CONF/Sparkle.framework" ]]; then
5151
SPARKLE="$APP/Contents/Frameworks/Sparkle.framework"
5252
CODESIGN_ID="${APP_IDENTITY:-Developer ID Application: Peter Steinberger (Y5PE65HELJ)}"
5353
function resign() { codesign --force --timestamp --options runtime --sign "$CODESIGN_ID" "$1"; }
54+
# Sign innermost binaries first, then the framework root to seal resources
5455
resign "$SPARKLE"
5556
resign "$SPARKLE/Versions/B/Sparkle"
5657
resign "$SPARKLE/Versions/B/Autoupdate"
@@ -60,10 +61,20 @@ if [[ -d ".build/$CONF/Sparkle.framework" ]]; then
6061
resign "$SPARKLE/Versions/B/XPCServices/Downloader.xpc/Contents/MacOS/Downloader"
6162
resign "$SPARKLE/Versions/B/XPCServices/Installer.xpc"
6263
resign "$SPARKLE/Versions/B/XPCServices/Installer.xpc/Contents/MacOS/Installer"
64+
resign "$SPARKLE/Versions/B"
65+
resign "$SPARKLE"
6366
fi
6467

6568
if [[ -f "$ICON_TARGET" ]]; then
6669
cp "$ICON_TARGET" "$APP/Contents/Resources/Icon.icns"
6770
fi
6871

72+
# Strip extended attributes to prevent AppleDouble (._*) files that break code sealing
73+
xattr -cr "$APP"
74+
find "$APP" -name '._*' -delete
75+
76+
# Finally sign the app bundle itself
77+
CODESIGN_ID="${APP_IDENTITY:-Developer ID Application: Peter Steinberger (Y5PE65HELJ)}"
78+
codesign --force --timestamp --options runtime --sign "$CODESIGN_ID" "$APP"
79+
6980
echo "Created $APP"

Scripts/sign-and-notarize.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -euo pipefail
44
APP_NAME="CodexBar"
55
APP_IDENTITY="Developer ID Application: Peter Steinberger (Y5PE65HELJ)"
66
APP_BUNDLE="CodexBar.app"
7-
ZIP_NAME="CodexBar-0.2.1.zip"
7+
ZIP_NAME="CodexBar-0.2.2.zip"
88

99
if [[ -z "${APP_STORE_CONNECT_API_KEY_P8:-}" || -z "${APP_STORE_CONNECT_KEY_ID:-}" || -z "${APP_STORE_CONNECT_ISSUER_ID:-}" ]]; then
1010
echo "Missing APP_STORE_CONNECT_* env vars (API key, key id, issuer id)." >&2
@@ -21,7 +21,7 @@ echo "Signing with $APP_IDENTITY"
2121
codesign --force --deep --options runtime --timestamp --sign "$APP_IDENTITY" "$APP_BUNDLE"
2222

2323
DITTO_BIN=${DITTO_BIN:-/usr/bin/ditto}
24-
"$DITTO_BIN" -c -k --keepParent "$APP_BUNDLE" /tmp/CodexBarNotarize.zip
24+
"$DITTO_BIN" -c -k --keepParent --sequesterRsrc "$APP_BUNDLE" /tmp/CodexBarNotarize.zip
2525

2626
echo "Submitting for notarization"
2727
xcrun notarytool submit /tmp/CodexBarNotarize.zip \
@@ -33,7 +33,7 @@ xcrun notarytool submit /tmp/CodexBarNotarize.zip \
3333
echo "Stapling ticket"
3434
xcrun stapler staple "$APP_BUNDLE"
3535

36-
"$DITTO_BIN" -c -k --keepParent "$APP_BUNDLE" "$ZIP_NAME"
36+
"$DITTO_BIN" -c -k --keepParent --sequesterRsrc "$APP_BUNDLE" "$ZIP_NAME"
3737

3838
spctl -a -t exec -vv "$APP_BUNDLE"
3939
stapler validate "$APP_BUNDLE"

appcast.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
33
<channel>
44
<title>CodexBar</title>
5+
<item>
6+
<title>0.2.2</title>
7+
<pubDate>Mon, 17 Nov 2025 21:19:00 +0100</pubDate>
8+
<link>https://raw.githubusercontent.com/steipete/CodexBar/main/appcast.xml</link>
9+
<sparkle:version>7</sparkle:version>
10+
<sparkle:shortVersionString>0.2.2</sparkle:shortVersionString>
11+
<sparkle:minimumSystemVersion>15.0</sparkle:minimumSystemVersion>
12+
<enclosure url="https://github.com/steipete/CodexBar/releases/download/v0.2.2/CodexBar-0.2.2.zip" length="2415310" type="application/octet-stream" sparkle:edSignature="anxW6jeUvh+QZp/KsndsJg5PP2VPH4jbSjh0ABu+c8bDBxU/rrlt6gFnWGX2g5ht28Hv7O9HoMlluSn+/faOBw=="/>
13+
</item>
514
<item>
615
<title>0.2.1</title>
716
<pubDate>Mon, 17 Nov 2025 04:47:48 +0100</pubDate>
@@ -25,4 +34,4 @@
2534
<enclosure url="https://raw.githubusercontent.com/steipete/CodexBar/main/CodexBar-0.2.0.zip" length="2393210" type="application/octet-stream" sparkle:edSignature="1ujCj4hpuJcgaK5ulpfaYPIeX0N1zgBK8Whwx1l8sTwaiMyy76CuUckAEV0U0uHEiiiEnR/7muB5iZ8Y2skYCg=="/>
2635
</item>
2736
</channel>
28-
</rss>
37+
</rss>

0 commit comments

Comments
 (0)