From 81c7694b01799f037eedc0df532a3e42bd243f1a Mon Sep 17 00:00:00 2001 From: Chandler Fang Date: Fri, 14 Aug 2026 22:23:29 -0700 Subject: [PATCH 1/7] feat(updater): install updates in place and relaunch via launchd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clicking the update banner now downloads the release DMG, verifies it three independent ways — the registry's published SHA-256, Gatekeeper's notarization assessment, and the running app's own designated code-signing requirement (same team + identifier, no hard-coded values) — then swaps the bundle atomically with ditto + replaceItem and exits so the KeepAlive LaunchAgent relaunches the new version from the same path. Any failed check, or an unwritable /Applications, falls back to the previous behaviour: the verified DMG lands in ~/Downloads and opens on the drag-to-install window. The updater and quit-widget now stop the Node snapshot bridge before exit; a bare exit(0) stranded the child process, leaking one bridge per update, each with file watchers and an hourly sync of its own. Co-Authored-By: Claude Opus 5 --- docs/install-claude-desktop.md | 15 ++ .../native/TokenMeterClaudeOverlay.swift | 203 +++++++++++++++--- .../claude-desktop/scripts/build-app.sh | 1 + .../claude-desktop/src/overlay-bridge.mjs | 9 +- test/claude-native-overlay.test.mjs | 19 ++ test/claude-overlay-bridge.test.mjs | 11 + 6 files changed, 231 insertions(+), 27 deletions(-) diff --git a/docs/install-claude-desktop.md b/docs/install-claude-desktop.md index 7debf4e..c67d51a 100644 --- a/docs/install-claude-desktop.md +++ b/docs/install-claude-desktop.md @@ -181,6 +181,21 @@ The integration deliberately shows nothing rather than guessing another Session. ### Update +The packaged app updates itself. The widget checks the registry at startup and +hourly; when a newer release exists, a banner offers it. Clicking the banner +downloads the DMG, checks it against the digest published at `/api/v1/latest`, +runs Gatekeeper's assessment, and confirms the replacement bundle satisfies this +build's own designated code-signing requirement — same team, same identifier. +Only then is the bundle swapped in place, and the widget exits so its LaunchAgent +(`KeepAlive`) restarts it on the new version a few seconds later. No download +page, no drag, no reopening. + +If any check fails, or `/Applications` is not writable by this user, the +verified DMG lands in `~/Downloads` and opens on the drag-to-install window +instead — the previous behaviour, so an update is never a dead end. + +Updating a source install still goes through the installer: + ```bash git pull --ff-only ./scripts/install-claude-meter-macos.sh diff --git a/integrations/claude-desktop/native/TokenMeterClaudeOverlay.swift b/integrations/claude-desktop/native/TokenMeterClaudeOverlay.swift index 3531d7a..27e5900 100644 --- a/integrations/claude-desktop/native/TokenMeterClaudeOverlay.swift +++ b/integrations/claude-desktop/native/TokenMeterClaudeOverlay.swift @@ -1,6 +1,8 @@ import AppKit import ApplicationServices +import CryptoKit import Foundation +import Security import WebKit private let claudeBundleID = "com.anthropic.claudefordesktop" @@ -866,6 +868,8 @@ private final class MeterController: NSObject, WKNavigationDelegate, WKScriptMes bootout.arguments = ["bootout", "gui/\(getuid())/com.sergiochan.token-meter.claude-desktop"] try? bootout.run() bootout.waitUntilExit() + // Same reason as the updater: the bridge outlives a bare exit. + snapshotBridge.stop() exit(0) case "set-sharing": let enabled = body["enabled"] as? Bool ?? false @@ -884,48 +888,195 @@ private final class MeterController: NSObject, WKNavigationDelegate, WKScriptMes let version = payload["version"] as? String, version.range(of: #"^[0-9]+\.[0-9]+\.[0-9]+$"#, options: .regularExpression) != nil else { return } - self.downloadAndOpenUpdate(url: url, version: version) + let digest = payload["sha256"] as? String + self.downloadAndInstallUpdate(url: url, version: version, sha256: digest) } default: break } } - // Downloads the release DMG into ~/Downloads and opens it once Gatekeeper's - // assessment passes, landing the user directly on the drag-to-install window. - private func downloadAndOpenUpdate(url: URL, version: String) { - let task = URLSession.shared.downloadTask(with: url) { temporary, _, error in - guard error == nil, let temporary else { return } - let downloads = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)[0] - let destination = downloads.appendingPathComponent("TokenWidget-\(version).dmg") - do { - try? FileManager.default.removeItem(at: destination) - try FileManager.default.moveItem(at: temporary, to: destination) - } catch { + // Pushes install progress to the banner. States come from string literals + // in this file only, so they are safe to interpolate into the page. + private func postUpdateState(_ state: String) { + DispatchQueue.main.async { [weak self] in + guard let self, self.pageReady else { return } + self.webView.evaluateJavaScript( + "window.__tokenMeter?.setUpdateState({state:'\(state)'})" + ) + } + } + + @discardableResult + private func runTool(_ path: String, _ arguments: [String]) -> Int32 { + let process = Process() + process.executableURL = URL(fileURLWithPath: path) + process.arguments = arguments + process.standardOutput = FileHandle.nullDevice + process.standardError = FileHandle.nullDevice + do { try process.run() } catch { return -1 } + process.waitUntilExit() + return process.terminationStatus + } + + // A replacement may only carry the signature this build already carries. + // Comparing against our own designated requirement pins the team and the + // bundle identifier without hard-coding either, and an ad hoc development + // build (whose requirement is its own hash) can never satisfy it. + private func signedLikeUs(_ bundle: URL) -> Bool { + var selfCode: SecCode? + guard SecCodeCopySelf(SecCSFlags(), &selfCode) == errSecSuccess, + let selfCode else { return false } + var selfStatic: SecStaticCode? + guard SecCodeCopyStaticCode(selfCode, SecCSFlags(), &selfStatic) == errSecSuccess, + let selfStatic else { return false } + var requirement: SecRequirement? + guard SecCodeCopyDesignatedRequirement(selfStatic, SecCSFlags(), &requirement) == errSecSuccess, + let requirement else { return false } + var candidate: SecStaticCode? + guard SecStaticCodeCreateWithPath(bundle as CFURL, SecCSFlags(), &candidate) == errSecSuccess, + let candidate else { return false } + return SecStaticCodeCheckValidity(candidate, SecCSFlags(), requirement) == errSecSuccess + } + + private func bundleVersion(at bundle: URL) -> String? { + let plist = bundle.appendingPathComponent("Contents/Info.plist") + guard let data = try? Data(contentsOf: plist), + let info = try? PropertyListSerialization.propertyList(from: data, format: nil) + as? [String: Any] else { return nil } + return info["CFBundleShortVersionString"] as? String + } + + // Last resort when the bundle cannot be replaced in place — an /Applications + // the user cannot write to, mostly. Restores the old behaviour: a verified + // disk image in ~/Downloads, opened on the drag-to-install window. + private func fallBackToManualInstall(image: URL, version: String) { + let downloads = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask)[0] + let destination = downloads.appendingPathComponent("TokenWidget-\(version).dmg") + try? FileManager.default.removeItem(at: destination) + guard (try? FileManager.default.moveItem(at: image, to: destination)) != nil, + runTool("/usr/sbin/spctl", ["--assess", "--type", "install", destination.path]) == 0 + else { + try? FileManager.default.removeItem(at: destination) + postUpdateState("failed") + return + } + postUpdateState("manual") + DispatchQueue.main.async { NSWorkspace.shared.open(destination) } + } + + // Downloads the release, proves it is ours three ways — registry digest, + // Gatekeeper, our own code signature — swaps the bundle in place and exits. + // KeepAlive in the LaunchAgent relaunches us from the same path, so the new + // version comes back on its own without the user touching anything. + private func downloadAndInstallUpdate(url: URL, version: String, sha256: String?) { + postUpdateState("downloading") + let task = URLSession.shared.downloadTask(with: url) { [weak self] temporary, response, error in + guard let self else { return } + guard error == nil, let temporary, + (response as? HTTPURLResponse)?.statusCode == 200 else { + self.postUpdateState("failed") return } - // Refuse to open anything that is not a notarized Developer ID disk - // image; a compromised download source must not reach the user. - let assess = Process() - assess.executableURL = URL(fileURLWithPath: "/usr/sbin/spctl") - assess.arguments = ["--assess", "--type", "install", destination.path] - assess.standardOutput = FileHandle.nullDevice - assess.standardError = FileHandle.nullDevice + let work = FileManager.default.temporaryDirectory + .appendingPathComponent("token-widget-update-\(UUID().uuidString)") + let image = work.appendingPathComponent("TokenWidget-\(version).dmg") do { - try assess.run() - assess.waitUntilExit() + try FileManager.default.createDirectory(at: work, withIntermediateDirectories: true) + try FileManager.default.moveItem(at: temporary, to: image) } catch { + self.postUpdateState("failed") return } - guard assess.terminationStatus == 0 else { - try? FileManager.default.removeItem(at: destination) - return - } - DispatchQueue.main.async { NSWorkspace.shared.open(destination) } + self.installVerifiedImage(image: image, work: work, version: version, sha256: sha256) + try? FileManager.default.removeItem(at: work) } task.resume() } + private func installVerifiedImage(image: URL, work: URL, version: String, sha256: String?) { + postUpdateState("verifying") + + // 1. The digest the registry published alongside the release. + guard let expected = sha256?.lowercased(), expected.count == 64, + let bytes = try? Data(contentsOf: image, options: .mappedIfSafe) else { + fallBackToManualInstall(image: image, version: version) + return + } + let actual = SHA256.hash(data: bytes).map { String(format: "%02x", $0) }.joined() + guard actual == expected else { + postUpdateState("failed") + return + } + + // 2. Gatekeeper: notarized Developer ID disk image, or nothing. + guard runTool("/usr/sbin/spctl", ["--assess", "--type", "install", image.path]) == 0 else { + postUpdateState("failed") + return + } + + // An explicit mount point keeps us off /Volumes, where an already + // mounted "Token Widget" would push this one to a suffixed name. + let mount = work.appendingPathComponent("mnt") + guard (try? FileManager.default.createDirectory(at: mount, withIntermediateDirectories: true)) != nil, + runTool("/usr/bin/hdiutil", [ + "attach", image.path, "-mountpoint", mount.path, + "-nobrowse", "-readonly", "-noautoopen", "-quiet", + ]) == 0 else { + fallBackToManualInstall(image: image, version: version) + return + } + defer { runTool("/usr/bin/hdiutil", ["detach", mount.path, "-force", "-quiet"]) } + + // 3. Our own signature, and the version the registry promised. + let replacement = mount.appendingPathComponent("Token Widget.app") + guard FileManager.default.fileExists(atPath: replacement.path), + signedLikeUs(replacement), + bundleVersion(at: replacement) == version else { + postUpdateState("failed") + return + } + + let installed = Bundle.main.bundleURL + guard installed.pathExtension == "app" else { + fallBackToManualInstall(image: image, version: version) + return + } + + postUpdateState("installing") + // ditto keeps the signature intact; cp would strip extended attributes. + // Staging next to the installed bundle keeps the swap on one volume. + let staging = installed.deletingLastPathComponent() + .appendingPathComponent(".TokenWidget-update-\(version).app") + try? FileManager.default.removeItem(at: staging) + guard runTool("/usr/bin/ditto", [replacement.path, staging.path]) == 0 else { + try? FileManager.default.removeItem(at: staging) + fallBackToManualInstall(image: image, version: version) + return + } + do { + var swapped: NSURL? + try FileManager.default.replaceItem( + at: installed, withItemAt: staging, + backupItemName: nil, options: [], resultingItemURL: &swapped, + ) + } catch { + try? FileManager.default.removeItem(at: staging) + fallBackToManualInstall(image: image, version: version) + return + } + + // Replacing our own bundle is safe while running — this process keeps + // the old image mapped until it exits, and launchd starts the new one. + postUpdateState("restarting") + DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { [weak self] in + // Take the Node bridge down first: it is a child running from the + // bundle we just replaced, and exiting without this strands it. + self?.snapshotBridge.stop() + exit(0) + } + } + private func beginDrag() { dragging = true dragStartMouse = NSEvent.mouseLocation diff --git a/integrations/claude-desktop/scripts/build-app.sh b/integrations/claude-desktop/scripts/build-app.sh index bba544d..035fcc0 100755 --- a/integrations/claude-desktop/scripts/build-app.sh +++ b/integrations/claude-desktop/scripts/build-app.sh @@ -71,6 +71,7 @@ trap cleanup EXIT -whole-module-optimization \ -framework AppKit \ -framework ApplicationServices \ + -framework Security \ -framework WebKit \ -o "$STAGING/Contents/MacOS/TokenMeterClaudeOverlay" /usr/bin/install -m 600 \ diff --git a/integrations/claude-desktop/src/overlay-bridge.mjs b/integrations/claude-desktop/src/overlay-bridge.mjs index 4cc3876..e9ce268 100644 --- a/integrations/claude-desktop/src/overlay-bridge.mjs +++ b/integrations/claude-desktop/src/overlay-bridge.mjs @@ -211,7 +211,14 @@ for await (const line of input) { if (request?.command === "update-info") { await writeLine( updateInfo - ? { requestId, ok: true, version: updateInfo.version, url: updateInfo.url } + ? { + requestId, + ok: true, + version: updateInfo.version, + url: updateInfo.url, + // The installer refuses to swap the bundle without this digest. + sha256: updateInfo.sha256 ?? null, + } : { requestId, ok: false }, ); continue; diff --git a/test/claude-native-overlay.test.mjs b/test/claude-native-overlay.test.mjs index 233608e..61ec785 100644 --- a/test/claude-native-overlay.test.mjs +++ b/test/claude-native-overlay.test.mjs @@ -144,3 +144,22 @@ test("Claude installer trusts the LaunchAgent health state for Accessibility", a assert.match(healthGate, /\[ "\$ACCESSIBILITY_GRANTED" = true \]/); assert.doesNotMatch(healthGate, /--check-accessibility/); }); + +test("Claude native overlay only self-installs its own signed builds", async () => { + const source = await readFile( + "integrations/claude-desktop/native/TokenMeterClaudeOverlay.swift", + "utf8", + ); + // Three independent proofs stand between a download and the running bundle: + // the digest the registry published, Gatekeeper, and our own signature. + assert.match(source, /SHA256\.hash\(data: bytes\)/); + assert.match(source, /guard actual == expected else/); + assert.match(source, /"--assess", "--type", "install", image\.path/); + assert.match(source, /SecCodeCopyDesignatedRequirement/); + assert.match(source, /signedLikeUs\(replacement\)/); + // ditto preserves the signature that codesign sealed; replaceItem keeps the + // swap atomic so a crash can never leave a half-written bundle behind. + assert.match(source, /"\/usr\/bin\/ditto"/); + assert.match(source, /FileManager\.default\.replaceItem\(/); + assert.match(source, /fallBackToManualInstall/); +}); diff --git a/test/claude-overlay-bridge.test.mjs b/test/claude-overlay-bridge.test.mjs index add8ba6..cf66f88 100644 --- a/test/claude-overlay-bridge.test.mjs +++ b/test/claude-overlay-bridge.test.mjs @@ -99,3 +99,14 @@ test("Claude overlay bridge asks the registry for a signed browser pairing URL", assert.match(source, /cachedUsageHistory\.collectCached\(\)/); assert.match(source, /await createLeaderboardUrl\(identity\)/); }); + +test("Claude overlay bridge hands the installer the release digest", async () => { + const source = await readFile( + "integrations/claude-desktop/src/overlay-bridge.mjs", + "utf8", + ); + assert.match(source, /request\?\.command === "update-info"/); + // Without the digest the native side refuses to swap the bundle and falls + // back to the manual installer, so it has to survive the reply. + assert.match(source, /sha256: updateInfo\.sha256 \?\? null/); +}); From 3e39d83ebed073804204b7066f2e98f5b0e0549a Mon Sep 17 00:00:00 2001 From: Chandler Fang Date: Fri, 14 Aug 2026 22:23:41 -0700 Subject: [PATCH 2/7] feat(build): styled drag-to-Applications window for the DMG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit hdiutil alone produces a bare Finder window. The build now stages a read-write image, applies the layout through Finder scripting (background art, hidden chrome, 128px icons, app and Applications positioned over the artwork), detaches so the .DS_Store persists, then converts to compressed UDZO. make-dmg-background.py renders the 1x/2x background in the app icon's palette; both are merged into a Retina-aware TIFF. The AppleScript addresses the disk by its actual mount point rather than by name — a same-named volume already mounted would otherwise receive the styling (or corrupt the wrong image). Co-Authored-By: Claude Opus 5 --- assets/dmg/background.png | Bin 0 -> 19315 bytes assets/dmg/background@2x.png | Bin 0 -> 44506 bytes scripts/build-v2-app.sh | 66 ++++++++++++++++++++++-- scripts/make-dmg-background.py | 90 +++++++++++++++++++++++++++++++++ 4 files changed, 153 insertions(+), 3 deletions(-) create mode 100644 assets/dmg/background.png create mode 100644 assets/dmg/background@2x.png create mode 100644 scripts/make-dmg-background.py diff --git a/assets/dmg/background.png b/assets/dmg/background.png new file mode 100644 index 0000000000000000000000000000000000000000..187d9ca786d146b00e7375f3c15562e9d02a0553 GIT binary patch literal 19315 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 Z0#WXd1JjTMo^Xo?VrgM}z7m|+{ws2?b>IL1 literal 0 HcmV?d00001 diff --git a/scripts/build-v2-app.sh b/scripts/build-v2-app.sh index 3215f19..ca2afe4 100755 --- a/scripts/build-v2-app.sh +++ b/scripts/build-v2-app.sh @@ -1,7 +1,9 @@ #!/bin/bash # Builds the self-contained "Token Widget.app" (prebuilt overlay + payload + -# embedded Node) and a drag-to-Applications DMG. Requires a Developer ID +# embedded Node) and a styled drag-to-Applications DMG. Requires a Developer ID # identity in TOKEN_METER_CODESIGN_IDENTITY; TOKEN_METER_NOTARIZE=1 notarizes. +# The DMG window layout is applied through Finder, so the build host must grant +# this shell Automation access to Finder (prompted once, first run). set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" @@ -44,14 +46,72 @@ PLIST /bin/rm -f "$ENT" /usr/bin/codesign --verify --strict "$APP" +# DMG window layout. Keep in sync with scripts/make-dmg-background.py. +WIN_W=660 +WIN_H=400 +ICON_SIZE=128 +ICON_X=180 +APPS_X=480 +ICON_Y=228 + STAGE="$DIST/dmg-stage" /bin/rm -rf "$STAGE" -/bin/mkdir -p "$STAGE" +/bin/mkdir -p "$STAGE/.background" /bin/cp -R "$APP" "$STAGE/Token Widget.app" /bin/ln -s /Applications "$STAGE/Applications" + +# Finder picks the @2x representation on Retina displays, so ship both in one TIFF. +BG="$ROOT/assets/dmg/background.png" +[ -f "$BG" ] || python3 "$ROOT/scripts/make-dmg-background.py" +/usr/bin/tiffutil -cathidpicheck "$BG" "$ROOT/assets/dmg/background@2x.png" \ + -out "$STAGE/.background/background.tiff" >/dev/null + +# Style a read-write image first: the icon layout, window size and background +# only persist once Finder writes them into the volume's .DS_Store. +RW="$DIST/.TokenWidget-rw.dmg" +/bin/rm -f "$RW" +STAGE_KB="$(/usr/bin/du -sk "$STAGE" | /usr/bin/awk '{print $1}')" +/usr/bin/hdiutil create -volname "Token Widget" -srcfolder "$STAGE" -ov \ + -format UDRW -fs HFS+ -size "$(( STAGE_KB / 1024 + 60 ))m" "$RW" >/dev/null + +MOUNT="$(/usr/bin/hdiutil attach -readwrite -noverify -noautoopen "$RW" \ + | /usr/bin/awk -F'\t' '/\/Volumes\//{print $NF}')" +trap '/usr/bin/hdiutil detach "$MOUNT" -force >/dev/null 2>&1 || true' EXIT +# Not necessarily "Token Widget": Finder appends a suffix when a volume of that +# name is already mounted, and styling the wrong disk fails or corrupts it. +VOL="$(/usr/bin/basename "$MOUNT")" + +# Needs Automation permission for Finder; macOS prompts once on the build host. +/usr/bin/osascript </dev/null +trap - EXIT + DMG="$DIST/TokenWidget-$VERSION.dmg" /bin/rm -f "$DMG" -/usr/bin/hdiutil create -volname "Token Widget" -srcfolder "$STAGE" -ov -format UDZO "$DMG" >/dev/null +/usr/bin/hdiutil convert "$RW" -format UDZO -imagekey zlib-level=9 -o "$DMG" >/dev/null +/bin/rm -f "$RW" /usr/bin/codesign --force --timestamp --sign "$IDENTITY" "$DMG" if [ "${TOKEN_METER_NOTARIZE:-}" = "1" ]; then diff --git a/scripts/make-dmg-background.py b/scripts/make-dmg-background.py new file mode 100644 index 0000000..a0238b4 --- /dev/null +++ b/scripts/make-dmg-background.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +"""Renders the drag-to-Applications DMG background used by build-v2-app.sh. + +Writes assets/dmg/background.png (660x400) and background@2x.png (1320x800); +build-v2-app.sh combines them into a Retina-aware background.tiff. Icon +positions here must stay in sync with ICON_X/APPS_X/ICON_Y in that script. +""" +import os +from PIL import Image, ImageDraw, ImageFont + +W, H = 660, 400 +ICON_X, APPS_X, ICON_Y = 180, 480, 228 + +TOP = (252, 251, 246) +BOTTOM = (238, 237, 226) +TITLE = (48, 61, 14) +SUBTITLE = (109, 116, 88) +ARROW = (139, 150, 105) + +ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +OUT = os.path.join(ROOT, "assets", "dmg") + + +def font(size, bold=False): + for path, variation in ( + ("/System/Library/Fonts/SFNS.ttf", b"Bold" if bold else b"Regular"), + ("/System/Library/Fonts/HelveticaNeue.ttc", None), + ): + if not os.path.exists(path): + continue + f = ImageFont.truetype(path, size) + if variation: + try: + f.set_variation_by_name(variation) + except Exception: + pass + return f + return ImageFont.load_default() + + +def centered(draw, text, f, cx, top, fill): + left, up, right, _ = draw.textbbox((0, 0), text, font=f) + draw.text((cx - (right - left) / 2 - left, top - up), text, font=f, fill=fill) + + +def render(scale): + # Supersample by 2 so the arrow's diagonals stay clean after downsampling. + s = scale * 2 + img = Image.new("RGB", (W * s, H * s), TOP) + draw = ImageDraw.Draw(img) + + for y in range(H * s): + t = y / (H * s - 1) + draw.line( + [(0, y), (W * s, y)], + fill=tuple(round(a + (b - a) * t) for a, b in zip(TOP, BOTTOM)), + ) + + # Arrow: shaft plus a chevron head, spanning the gap between the two icons. + y = ICON_Y * s + x0, x1 = 276 * s, 392 * s + head = 20 * s + draw.line([(x0, y), (x1 - head * 0.55, y)], fill=ARROW, width=round(4 * s)) + draw.polygon( + [(x1, y), (x1 - head, y - head * 0.62), (x1 - head, y + head * 0.62)], + fill=ARROW, + ) + + centered(draw, "Install Token Widget", font(27 * s, bold=True), W * s / 2, 58 * s, TITLE) + centered( + draw, + "Drag Token Widget to the Applications folder", + font(14 * s), + W * s / 2, + 99 * s, + SUBTITLE, + ) + + return img.resize((W * scale, H * scale), Image.LANCZOS) + + +def main(): + os.makedirs(OUT, exist_ok=True) + render(1).save(os.path.join(OUT, "background.png")) + render(2).save(os.path.join(OUT, "background@2x.png")) + print("wrote", OUT) + + +if __name__ == "__main__": + main() From 18bf161f3035e205360815938919dd38900994a4 Mon Sep 17 00:00:00 2001 From: Chandler Fang Date: Fri, 14 Aug 2026 22:23:41 -0700 Subject: [PATCH 3/7] feat(widget): update progress states and settings panel polish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The update banner now walks through downloading / verifying / installing / restarting as the native layer reports progress, with manual-install and failed terminal states that re-arm the retry. Settings: "Refer friends" becomes "Share with friends" and copies the tokenwidget.app home page (download + curl, side by side) instead of the GitHub repository; the IDENTITY label is gone — the panel leads with the @handle itself. Co-Authored-By: Claude Opus 5 --- runtime/token-meter-ui.css | 8 -------- runtime/token-meter-ui.js | 39 +++++++++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/runtime/token-meter-ui.css b/runtime/token-meter-ui.css index a21584a..6ad3a7d 100644 --- a/runtime/token-meter-ui.css +++ b/runtime/token-meter-ui.css @@ -195,13 +195,6 @@ display: none; } -.settings-identity small { - display: block; - color: rgb(32 33 31 / 0.55); - font-size: 9px; - letter-spacing: 0.06em; -} - .settings-identity-link { padding: 0; color: #20211f; @@ -1117,7 +1110,6 @@ background: rgb(107 165 231 / 0.12); } - .settings-identity small, .settings-tip { color: rgb(236 238 233 / 0.55); } diff --git a/runtime/token-meter-ui.js b/runtime/token-meter-ui.js index 7e49dd6..15e7720 100644 --- a/runtime/token-meter-ui.js +++ b/runtime/token-meter-ui.js @@ -117,14 +117,13 @@
+
@@ -595,6 +619,16 @@ } }); + // The copy button is icon-only, so confirmation swaps the glyph rather than + // the label — replacing textContent would drop the SVG entirely. + function markCopied(button, copied) { + button.classList.toggle("copied", copied); + button.dataset.tip = copied ? "Copied" : "Copy link"; + button.setAttribute("aria-label", copied ? "Link copied" : "Copy link"); + button.querySelector(".i-link").hidden = copied; + button.querySelector(".i-check").hidden = !copied; + } + // Share targets for a public profile. The install link rides along in the // post text so every share doubles as an invitation. function buildShareLinks(handle, lifetimeLabel) { @@ -729,18 +763,20 @@ xEl.hidden = inEl.hidden = copyEl.hidden = false; publishEl.hidden = true; } else { + // Nothing public to point at yet; the PNG card is still downloadable, + // and publishing through the consent wizard is what mints a public link. xEl.hidden = inEl.hidden = copyEl.hidden = true; - // Publishing through the consent wizard is what mints a public link. publishEl.href = TOKEN ? `/share?token=${TOKEN}` : "#"; publishEl.hidden = !TOKEN; } } document.getElementById("share-copy").addEventListener("click", async (event) => { + const button = event.currentTarget; try { - await navigator.clipboard.writeText(event.currentTarget.dataset.url ?? ""); - event.target.textContent = "Copied ✓"; - setTimeout(() => { document.getElementById("share-copy").textContent = "Copy link"; }, 1500); + await navigator.clipboard.writeText(button.dataset.url ?? ""); + markCopied(button, true); + setTimeout(() => markCopied(button, false), 1500); } catch { /* clipboard unavailable */ } }); diff --git a/web/profile.html b/web/profile.html index bfccf8b..033f39f 100644 --- a/web/profile.html +++ b/web/profile.html @@ -49,16 +49,32 @@ } .identity .badge.rank { background: var(--card); border-color: var(--fern); color: var(--forest); font-weight: 600; } - .share-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 18px; } + .share-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; } .share-row button, .share-row a { - display: inline-flex; align-items: center; gap: 6px; - padding: 7px 15px; font: 500 13px var(--sans); color: var(--carbon); + position: relative; + display: inline-flex; align-items: center; justify-content: center; + width: 38px; height: 38px; padding: 0; color: var(--carbon); background: var(--card); border: 1px solid var(--stone); border-radius: 9999px; cursor: pointer; text-decoration: none; + transition: color 0.15s ease, border-color 0.15s ease; } .share-row button:hover, .share-row a:hover { border-color: var(--fern); color: var(--forest); } - .share-row .primary { background: var(--forest); border-color: var(--forest); color: #fcfcf8; } - .share-row .primary:hover { background: #4c5616; color: #fcfcf8; } + .share-row .copied { border-color: var(--fern); color: var(--forest); } + .share-row svg { display: block; } + /* These display rules outrank the UA [hidden] rule, so restore it by hand — + without this the row shows before the profile has loaded. */ + .share-row[hidden], + .share-row button[hidden], .share-row a[hidden], .share-row svg[hidden] { display: none; } + /* Icon-only actions need a name on hover, and title= appears too slowly. */ + .share-row [data-tip]::after { + content: attr(data-tip); + position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%); + padding: 4px 8px; font: 500 11px var(--sans); white-space: nowrap; + color: var(--card); background: var(--charcoal); border-radius: 6px; + opacity: 0; pointer-events: none; transition: opacity 0.15s ease; + } + .share-row [data-tip]:hover::after, + .share-row [data-tip]:focus-visible::after { opacity: 1; } .stat-strip { display: grid; grid-template-columns: repeat(5, 1fr); @@ -134,10 +150,10 @@

@—

@@ -213,6 +229,16 @@

}; const el = (id) => document.getElementById(id); + // The copy button is icon-only, so confirmation swaps the glyph rather than + // the label — replacing textContent would drop the SVG entirely. + function markCopied(button, copied) { + button.classList.toggle("copied", copied); + button.dataset.tip = copied ? "Copied" : "Copy link"; + button.setAttribute("aria-label", copied ? "Link copied" : "Copy link"); + button.querySelector(".i-link").hidden = copied; + button.querySelector(".i-check").hidden = !copied; + } + // Share targets for a public profile. The install link rides along in the // post text so every share doubles as an invitation. function buildShareLinks(handle, lifetimeLabel) { @@ -559,8 +585,8 @@

el("share-copy").addEventListener("click", async () => { try { await navigator.clipboard.writeText(links.url); - el("share-copy").textContent = "Copied ✓"; - setTimeout(() => { el("share-copy").textContent = "Copy link"; }, 1500); + markCopied(el("share-copy"), true); + setTimeout(() => markCopied(el("share-copy"), false), 1500); } catch { /* clipboard unavailable */ } }); el("share-png").addEventListener("click", async () => { From 62e5751970da3523e87afcb5ae0ad4602595ccdd Mon Sep 17 00:00:00 2001 From: Chandler Fang Date: Fri, 14 Aug 2026 22:23:55 -0700 Subject: [PATCH 5/7] feat(web): homepage feature tour and privacy-first footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page is now hero → tour → footer. The tour is a sticky left index with four panels scrolling past it — live telemetry, the runaway alarm (dark stage, real alert screenshot), identity & community, and a privacy diagram of what stays local versus what never leaves. The active item is chosen by which panel occupies the most viewport, so the highlight tracks correctly in both scroll directions. The footer is the page's one dark surface: the privacy-first statement, free / open-source / yours pillars, and the GitHub link as its own action. The hero support line now names everything tracked: Claude Code, Codex, and Cline. Co-Authored-By: Claude Opus 5 --- web/assets/widget-alert.png | Bin 0 -> 69692 bytes web/index.html | 276 ++++++++++++++++++++++++++---------- 2 files changed, 200 insertions(+), 76 deletions(-) create mode 100644 web/assets/widget-alert.png diff --git a/web/assets/widget-alert.png b/web/assets/widget-alert.png new file mode 100644 index 0000000000000000000000000000000000000000..d69eb2ae161e1c498540df337dee29c489e54bf0 GIT binary patch literal 69692 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 U3|q(npS=4jCMQ}Ztnd4O0Kk8)asU7T literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html index 0c3e713..0a7ec93 100644 --- a/web/index.html +++ b/web/index.html @@ -35,6 +35,8 @@ --sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } * { box-sizing: border-box; } + html { scroll-behavior: smooth; } + @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } } body { margin: 0; background: var(--canvas); @@ -43,7 +45,8 @@ letter-spacing: 0.01em; } - nav { + /* Scoped to the page header: the feature tour uses a