From 68991d811b2a0af147b6955a870a3bad83b7bfe1 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Wed, 20 May 2026 15:40:03 +0200 Subject: [PATCH 01/10] M6: onboarding sheet + universal app bundle + signing & DMG scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Distribution polish on top of M5. End-user experience now covers: first-launch setup, a clean .app the OS recognizes as a regular GUI app, and a signed/notarized DMG ready to upload to a GitHub release. Onboarding (new): - UI/OnboardingView.swift — sheet shown on first launch (gated by @AppStorage("hasCompletedOnboarding")) that walks the user through three steps with live "Trusted / Routed / Capturing" indicators: 1. Trust the local root certificate (Keychain) 2. Route the system through the proxy (networksetup via AppleScript) 3. Start capturing traffic Each step button triggers the matching AppState action and the step's check + pill flip green as the underlying state updates. - ContentView wires the sheet via .sheet(isPresented:). The flag is flipped from inside the "Get started" / "Skip for now" handlers, not from .onDismiss, so closing the window before acknowledging doesn't silently mark onboarding done. - Themed against Theme.surface / .elevated / .success / .accent so the sheet feels like the rest of the app rather than the default system sheet chrome. App bundle metadata (new): - Resources/Info.plist — CFBundleIdentifier=app.rae.reverseapi, LSMinimumSystemVersion=14.0, NSAppleEventsUsageDescription explaining the networksetup elevation prompt. Crucially NSSupportsAutomaticTermination=false + NSSupportsSuddenTermination=false so macOS doesn't reap the process while a capture is running in the background. - Resources/rae.entitlements — Hardened Runtime strict (no sandbox because the proxy + Keychain + AppleScript flow needs full access), with just network.client + network.server + automation.apple-events. No allow-jit / allow-unsigned-executable- memory / disable-library-validation — the app doesn't need them. Scripts: - scripts/build-app.sh updated to a real universal build: `swift build --arch arm64 --arch x86_64` then assemble Contents/{MacOS,Info.plist,Resources}. Output moves from macos/dist/ → macos/build/ so the sign + DMG scripts can share a single location. Static Resources/Info.plist replaces the previous inline heredoc. Python runtime embedding (uv venv --relocatable + uv pip install backend/) is preserved exactly as it was — Contents/Resources/agent-runtime/bin/python3 lives next to the binary, so the .app remains end-user-self-contained. - scripts/sign-and-notarize.sh — codesign with SIGNING_IDENTITY, Hardened Runtime + timestamp + entitlements; optional notarytool submit + stapler when NOTARY_PROFILE is set. Drops --deep (deprecated by Apple), walks the embedded agent-runtime explicitly to sign inner dylibs/.so/python3 first. ZIP cleanup in an EXIT trap so the build dir doesn't accumulate stale artifacts. - scripts/make-dmg.sh — hdiutil DMG with /Applications symlink for the drag-to-install gesture. EXIT trap on the mktemp -d staging dir so hdiutil failures don't leak temp files under /var/folders. Optional DMG signing when SIGNING_IDENTITY is set. Out of scope: - AppIcon (placeholder; add Resources/AppIcon.icns later) - Sparkle / auto-update — can layer in if needed - Keyboard shortcuts (⌘R/⌘K/⇧⌘E from earlier M6 draft) — dropped: M5 already standardized on click-only affordances after the user asked for the shortcuts to be removed, and we shouldn't reintroduce them on top. Release flow: cd macos ./scripts/build-app.sh SIGNING_IDENTITY="Developer ID Application: …" \ NOTARY_PROFILE="rae-notary" \ ./scripts/sign-and-notarize.sh ./scripts/make-dmg.sh # → macos/build/rae.dmg Co-Authored-By: Claude Opus 4.7 --- macos/Resources/Info.plist | 49 +++++ macos/Resources/rae.entitlements | 19 ++ macos/Sources/ReverseAPI/UI/ContentView.swift | 11 + .../ReverseAPI/UI/OnboardingView.swift | 192 ++++++++++++++++++ macos/scripts/build-app.sh | 131 ++++++------ macos/scripts/make-dmg.sh | 48 +++++ macos/scripts/sign-and-notarize.sh | 90 ++++++++ 7 files changed, 474 insertions(+), 66 deletions(-) create mode 100644 macos/Resources/Info.plist create mode 100644 macos/Resources/rae.entitlements create mode 100644 macos/Sources/ReverseAPI/UI/OnboardingView.swift create mode 100755 macos/scripts/make-dmg.sh create mode 100755 macos/scripts/sign-and-notarize.sh diff --git a/macos/Resources/Info.plist b/macos/Resources/Info.plist new file mode 100644 index 0000000..03e3136 --- /dev/null +++ b/macos/Resources/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + rae + CFBundleExecutable + rae + CFBundleIconFile + AppIcon + CFBundleIdentifier + app.rae.reverseapi + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + rae + CFBundlePackageType + APPL + CFBundleShortVersionString + 0.1.0 + CFBundleVersion + 1 + LSApplicationCategoryType + public.app-category.developer-tools + LSMinimumSystemVersion + 14.0 + NSHighResolutionCapable + + NSSupportsAutomaticGraphicsSwitching + + NSPrincipalClass + NSApplication + + NSSupportsAutomaticTermination + + NSSupportsSuddenTermination + + + NSAppleEventsUsageDescription + rae uses AppleScript to elevate networksetup when routing macOS traffic through the proxy. + + diff --git a/macos/Resources/rae.entitlements b/macos/Resources/rae.entitlements new file mode 100644 index 0000000..c0e5296 --- /dev/null +++ b/macos/Resources/rae.entitlements @@ -0,0 +1,19 @@ + + + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.automation.apple-events + + + diff --git a/macos/Sources/ReverseAPI/UI/ContentView.swift b/macos/Sources/ReverseAPI/UI/ContentView.swift index 6a14982..09e1c7c 100644 --- a/macos/Sources/ReverseAPI/UI/ContentView.swift +++ b/macos/Sources/ReverseAPI/UI/ContentView.swift @@ -8,6 +8,11 @@ struct ContentView: View { @State private var isPaletteVisible: Bool = false @State private var trafficWidth: CGFloat = 720 @State private var dragStartWidth: CGFloat? + // First-launch onboarding gate. The sheet is shown until the user + // explicitly acknowledges it via "Get started" / "Skip for now" — + // both buttons flip this flag, NOT the sheet dismiss path, so closing + // the window before acknowledging doesn't silently mark it complete. + @AppStorage("hasCompletedOnboarding") private var hasCompletedOnboarding = false var body: some View { ZStack { @@ -102,6 +107,12 @@ struct ContentView: View { set: { if !$0 { state.viewingFile = nil } } )) } + .sheet(isPresented: Binding( + get: { !hasCompletedOnboarding }, + set: { if !$0 { hasCompletedOnboarding = true } } + )) { + OnboardingView(hasCompletedOnboarding: $hasCompletedOnboarding) + } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) .background(Theme.appBackground) .preferredColorScheme(.dark) diff --git a/macos/Sources/ReverseAPI/UI/OnboardingView.swift b/macos/Sources/ReverseAPI/UI/OnboardingView.swift new file mode 100644 index 0000000..8777574 --- /dev/null +++ b/macos/Sources/ReverseAPI/UI/OnboardingView.swift @@ -0,0 +1,192 @@ +import SwiftUI + +/// First-launch welcome sheet that walks the user through the three setup +/// steps the app needs to actually capture traffic: trusting the local CA, +/// routing the device through the proxy, and starting the capture loop. +/// +/// Gated by `@AppStorage("hasCompletedOnboarding")` in ContentView. The +/// flag is flipped from the explicit "Get started" / "Skip for now" +/// buttons, NOT from `.onDismiss`, so closing the window before +/// acknowledging doesn't silently mark onboarding done. +struct OnboardingView: View { + @Environment(AppState.self) private var state + @Binding var hasCompletedOnboarding: Bool + @Environment(\.dismiss) private var dismiss + + var body: some View { + VStack(alignment: .leading, spacing: 32) { + header + steps + Spacer(minLength: 0) + footer + } + .padding(.horizontal, 40) + .padding(.vertical, 36) + .frame(width: 520, height: 560) + .background(Theme.surface) + .preferredColorScheme(.dark) + } + + // MARK: - Header + + private var header: some View { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 10) { + Image(systemName: "chevron.left.forwardslash.chevron.right") + .font(.system(size: 22, weight: .light)) + .foregroundStyle(Theme.textPrimary) + Text("rae") + .font(.system(size: 26, weight: .semibold)) + .foregroundStyle(Theme.textPrimary) + } + Text("Three quick steps to start intercepting and reverse-engineering API traffic on this Mac.") + .font(.callout) + .foregroundStyle(Theme.textSecondary) + .fixedSize(horizontal: false, vertical: true) + } + } + + // MARK: - Steps + + private var steps: some View { + VStack(alignment: .leading, spacing: 22) { + OnboardingStep( + number: 1, + title: "Trust the local root certificate", + description: "Lets rae decrypt HTTPS traffic from apps that trust the user keychain.", + isComplete: state.caTrustInstalled, + isWorking: state.isWorking && !state.caTrustInstalled, + completedLabel: "Trusted", + actionLabel: "Trust CA", + action: { Task { await state.installCATrust() } } + ) + OnboardingStep( + number: 2, + title: "Route this Mac through the proxy", + description: "Toggles macOS HTTP and HTTPS proxies on every active network service.", + isComplete: state.systemProxyEnabled, + isWorking: state.isWorking && state.caTrustInstalled && !state.systemProxyEnabled, + completedLabel: "Routed", + actionLabel: "Enable proxy", + action: { Task { await state.enableSystemProxy() } } + ) + OnboardingStep( + number: 3, + title: "Start capturing traffic", + description: "Open the apps you want to inspect — captured flows land in the table on the left.", + isComplete: state.isCapturing, + isWorking: state.isWorking && state.systemProxyEnabled && !state.isCapturing, + completedLabel: "Capturing", + actionLabel: "Start capture", + action: { Task { await state.toggleCapture() } } + ) + } + } + + // MARK: - Footer + + private var footer: some View { + HStack { + Button { + hasCompletedOnboarding = true + dismiss() + } label: { + Text("Skip for now") + .font(.callout) + .foregroundStyle(Theme.textTertiary) + } + .buttonStyle(.plain) + + Spacer() + + Button { + hasCompletedOnboarding = true + dismiss() + } label: { + Text("Get started") + .font(.callout.weight(.semibold)) + .foregroundStyle(Theme.appBackground) + .padding(.horizontal, 18) + .padding(.vertical, 9) + .background(Theme.textPrimary, in: Capsule()) + } + .buttonStyle(.plain) + } + } +} + +// MARK: - Step row + +private struct OnboardingStep: View { + let number: Int + let title: String + let description: String + let isComplete: Bool + let isWorking: Bool + let completedLabel: String + let actionLabel: String + let action: () -> Void + + /// Deeper, less-saturated green for completion states. The default + /// Theme.success (#4CCA84) shouts on the onboarding sheet where three + /// rows can be green at once — this one sits much closer to a muted + /// forest tone and reads as a status, not a celebration. + private static let completedGreen = Color(red: 0.31, green: 0.62, blue: 0.46) + + var body: some View { + HStack(alignment: .top, spacing: 14) { + indicator + .padding(.top, 2) + VStack(alignment: .leading, spacing: 4) { + Text(title) + .font(.callout.weight(.semibold)) + .foregroundStyle(Theme.textPrimary) + Text(description) + .font(.caption) + .foregroundStyle(Theme.textSecondary) + .fixedSize(horizontal: false, vertical: true) + .lineSpacing(2) + } + Spacer(minLength: 8) + actionAffordance + } + } + + @ViewBuilder + private var indicator: some View { + if isComplete { + Image(systemName: "checkmark") + .font(.system(size: 11, weight: .bold)) + .foregroundStyle(Self.completedGreen) + .frame(width: 20, height: 20) + } else { + Text("\(number)") + .font(.system(size: 12, weight: .semibold).monospacedDigit()) + .foregroundStyle(Theme.textTertiary) + .frame(width: 20, height: 20) + } + } + + @ViewBuilder + private var actionAffordance: some View { + if isComplete { + Text(completedLabel) + .font(.caption.weight(.medium)) + .foregroundStyle(Self.completedGreen) + } else if isWorking { + ProgressView() + .controlSize(.small) + .tint(Theme.textTertiary) + } else { + Button(action: action) { + Text(actionLabel) + .font(.caption.weight(.semibold)) + .foregroundStyle(Theme.appBackground) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(Theme.textPrimary, in: Capsule()) + } + .buttonStyle(.plain) + } + } +} diff --git a/macos/scripts/build-app.sh b/macos/scripts/build-app.sh index 1686e25..0fd4543 100755 --- a/macos/scripts/build-app.sh +++ b/macos/scripts/build-app.sh @@ -1,61 +1,95 @@ #!/usr/bin/env bash -# Build a portable rae.app bundle with a self-contained Python runtime. -# -# Output: /macos/dist/rae.app — drop into /Applications and it just runs. -# No user-side Python or pip required. +# Build a portable, universal (arm64 + x86_64) rae.app bundle with a +# self-contained Python runtime embedded under Contents/Resources/agent-runtime. +# Drop the result into /Applications and the app just runs — no user-side +# Python or pip needed. # # Requires: -# - swift (Xcode command line tools) -# - uv (https://docs.astral.sh/uv) — used to fetch a standalone Python build -# and create a relocatable venv inside the .app +# - swift (Xcode command line tools) +# - uv (https://docs.astral.sh/uv) — used to fetch a standalone Python +# build and create a relocatable venv inside the .app # # Usage: -# ./macos/scripts/build-app.sh # builds release -# PYTHON_VERSION=3.12 ./macos/scripts/build-app.sh # pin the Python version +# ./macos/scripts/build-app.sh +# PYTHON_VERSION=3.12 ./macos/scripts/build-app.sh +# CONFIG=debug ./macos/scripts/build-app.sh # faster iteration +# ARCH_FLAGS="--arch arm64" ./macos/scripts/build-app.sh # single-arch +# +# Output: macos/build/rae.app set -euo pipefail -PYTHON_VERSION="${PYTHON_VERSION:-3.12}" +APP_NAME=${APP_NAME:-rae} +CONFIG=${CONFIG:-release} +ARCH_FLAGS=${ARCH_FLAGS:-"--arch arm64 --arch x86_64"} +PYTHON_VERSION=${PYTHON_VERSION:-3.12} + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MACOS_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" REPO_ROOT="$(cd "$MACOS_DIR/.." && pwd)" -DIST_DIR="$MACOS_DIR/dist" -APP_DIR="$DIST_DIR/rae.app" -CONTENTS="$APP_DIR/Contents" +OUT_DIR="$MACOS_DIR/build" +APP_BUNDLE="$OUT_DIR/$APP_NAME.app" +CONTENTS="$APP_BUNDLE/Contents" MACOS_BIN="$CONTENTS/MacOS" RESOURCES="$CONTENTS/Resources" AGENT_RUNTIME="$RESOURCES/agent-runtime" require() { - command -v "$1" >/dev/null 2>&1 || { echo "error: '$1' not found in PATH" >&2; exit 1; } + command -v "$1" >/dev/null 2>&1 || { + echo "error: '$1' not found in PATH" >&2 + exit 1 + } } require swift require uv # --------------------------------------------------------------------------- -# 1. Clean & scaffold the .app bundle layout +# 1. Scaffold the .app bundle layout # --------------------------------------------------------------------------- -echo "→ cleaning $APP_DIR" -rm -rf "$APP_DIR" +echo "→ cleaning $APP_BUNDLE" +rm -rf "$APP_BUNDLE" mkdir -p "$MACOS_BIN" "$RESOURCES" # --------------------------------------------------------------------------- -# 2. Build the Swift release binary +# 2. Universal Swift build +# +# Two invocations: the first actually compiles, the second is `--show-bin-path` +# to recover the products dir (cheap, no rebuild — SwiftPM just prints the +# resolved path). # --------------------------------------------------------------------------- -echo "→ swift build (release)" cd "$MACOS_DIR" -swift build -c release --product rae -cp "$MACOS_DIR/.build/release/rae" "$MACOS_BIN/rae" -chmod +x "$MACOS_BIN/rae" +echo "→ swift build ($CONFIG, $ARCH_FLAGS)" +# shellcheck disable=SC2086 +swift build -c "$CONFIG" --product "$APP_NAME" $ARCH_FLAGS + +# shellcheck disable=SC2086 +BIN_PATH=$(swift build -c "$CONFIG" --product "$APP_NAME" $ARCH_FLAGS --show-bin-path) +BUILT_BIN="$BIN_PATH/$APP_NAME" + +if [ ! -f "$BUILT_BIN" ]; then + echo "error: binary not found at $BUILT_BIN" >&2 + exit 1 +fi + +cp "$BUILT_BIN" "$MACOS_BIN/$APP_NAME" +chmod +x "$MACOS_BIN/$APP_NAME" # --------------------------------------------------------------------------- -# 3. Embed a relocatable Python runtime with rae-agent installed +# 3. Static Info.plist + (optional) AppIcon +# --------------------------------------------------------------------------- +cp "$MACOS_DIR/Resources/Info.plist" "$CONTENTS/Info.plist" + +if [ -f "$MACOS_DIR/Resources/AppIcon.icns" ]; then + cp "$MACOS_DIR/Resources/AppIcon.icns" "$RESOURCES/AppIcon.icns" +fi + +# --------------------------------------------------------------------------- +# 4. Embed a relocatable Python runtime with rae-agent installed # -# uv venv --relocatable rewrites the activator + shebangs so the venv can -# be moved (or shipped) to a different absolute path. uv pip install with -# --python targets that specific interpreter so all deps land -# inside the venv's site-packages, not the host's. +# `uv venv --relocatable` rewrites shebangs + activator so the venv can be +# moved to its final path. `uv pip install --python ` targets the +# embedded interpreter so deps land inside the bundled venv's site-packages. # --------------------------------------------------------------------------- echo "→ creating embedded Python $PYTHON_VERSION runtime" uv venv --relocatable --python "$PYTHON_VERSION" "$AGENT_RUNTIME" @@ -66,51 +100,16 @@ uv pip install \ --quiet \ "$REPO_ROOT/backend" -# Strip __pycache__ + tests to shave a few MB +# Strip __pycache__ + bundled tests to shave a few MB from the DMG find "$AGENT_RUNTIME" -type d -name "__pycache__" -prune -exec rm -rf {} + find "$AGENT_RUNTIME" -type d -name "tests" -prune -exec rm -rf {} + # --------------------------------------------------------------------------- -# 4. Info.plist — minimal so macOS treats the binary as a regular GUI app -# (Dock icon, menu bar, keyboard focus, the works). -# --------------------------------------------------------------------------- -cat > "$CONTENTS/Info.plist" <<'PLIST' - - - - - CFBundleIdentifier - app.rae.reverseapi - CFBundleName - rae - CFBundleDisplayName - rae - CFBundleExecutable - rae - CFBundleVersion - 1 - CFBundleShortVersionString - 0.1.0 - CFBundlePackageType - APPL - LSMinimumSystemVersion - 14.0 - NSPrincipalClass - NSApplication - NSHighResolutionCapable - - NSSupportsAutomaticGraphicsSwitching - - - -PLIST - -# --------------------------------------------------------------------------- -# 5. Smoke check — make sure rae_agent imports inside the embedded runtime +# 5. Smoke check — confirm rae_agent imports inside the embedded runtime # --------------------------------------------------------------------------- echo "→ smoke-testing embedded runtime" "$AGENT_RUNTIME/bin/python3" -c "import rae_agent.server; print('rae_agent ok')" echo "" -echo "✓ built $APP_DIR" -du -sh "$APP_DIR" 2>/dev/null | awk '{print " size: " $1}' +echo "✓ built $APP_BUNDLE" +du -sh "$APP_BUNDLE" 2>/dev/null | awk '{print " size: " $1}' diff --git a/macos/scripts/make-dmg.sh b/macos/scripts/make-dmg.sh new file mode 100755 index 0000000..7f28766 --- /dev/null +++ b/macos/scripts/make-dmg.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Wrap the signed rae.app into a distributable DMG with a /Applications +# symlink so the install gesture is the familiar "drag the app into +# Applications" pattern. +# +# Usage: +# ./macos/scripts/make-dmg.sh # unsigned DMG +# SIGNING_IDENTITY="…" ./macos/scripts/make-dmg.sh # also signs the DMG +# +# Prerequisite: scripts/build-app.sh has produced build/rae.app, and +# optionally scripts/sign-and-notarize.sh has signed it. + +set -euo pipefail + +HERE=$(cd "$(dirname "$0")/.." && pwd) +cd "$HERE" + +APP_NAME=${APP_NAME:-rae} +APP_BUNDLE="build/$APP_NAME.app" +DMG_PATH="build/$APP_NAME.dmg" + +if [ ! -d "$APP_BUNDLE" ]; then + echo "error: $APP_BUNDLE not found — run scripts/build-app.sh first" >&2 + exit 1 +fi + +STAGING=$(mktemp -d) +# EXIT trap so an hdiutil failure (or anything else) doesn't leak the +# staging dir into /var/folders. +trap 'rm -rf "$STAGING"' EXIT + +cp -R "$APP_BUNDLE" "$STAGING/" +ln -s /Applications "$STAGING/Applications" + +rm -f "$DMG_PATH" +hdiutil create \ + -volname "$APP_NAME" \ + -srcfolder "$STAGING" \ + -ov -format UDZO \ + "$DMG_PATH" + +if [ -n "${SIGNING_IDENTITY:-}" ]; then + echo "→ codesign DMG with $SIGNING_IDENTITY" + codesign --force --sign "$SIGNING_IDENTITY" --timestamp "$DMG_PATH" +fi + +echo "✓ $DMG_PATH" +du -h "$DMG_PATH" 2>/dev/null | awk '{print " size: " $1}' diff --git a/macos/scripts/sign-and-notarize.sh b/macos/scripts/sign-and-notarize.sh new file mode 100755 index 0000000..2e2fa8b --- /dev/null +++ b/macos/scripts/sign-and-notarize.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash +# Codesign + (optionally) notarize the rae.app bundle. +# +# Usage: +# SIGNING_IDENTITY="Developer ID Application: …" \ +# NOTARY_PROFILE="rae-notary" \ # optional — skip notarization if unset +# ./macos/scripts/sign-and-notarize.sh +# +# Prerequisites: scripts/build-app.sh has already produced build/rae.app. +# +# Apple deprecated `codesign --deep` for production signing because it can +# silently skip nested components or stamp the wrong entitlements on +# bundled helpers. We sign just the outer .app here; once the Python +# sidecar lands inside Contents/Resources/agent-runtime, we'll need to +# walk it explicitly first. + +set -euo pipefail + +HERE=$(cd "$(dirname "$0")/.." && pwd) +cd "$HERE" + +APP_NAME=${APP_NAME:-rae} +APP_BUNDLE="build/$APP_NAME.app" +ENTITLEMENTS="Resources/$APP_NAME.entitlements" + +if [ ! -d "$APP_BUNDLE" ]; then + echo "error: $APP_BUNDLE not found — run scripts/build-app.sh first" >&2 + exit 1 +fi + +if [ ! -f "$ENTITLEMENTS" ]; then + echo "error: entitlements file not found at $ENTITLEMENTS" >&2 + exit 1 +fi + +if [ -z "${SIGNING_IDENTITY:-}" ]; then + echo "error: SIGNING_IDENTITY is required (Developer ID Application: …)" >&2 + exit 1 +fi + +# If the bundle embeds a Python runtime, sign every nested executable + +# dylib + framework first. We don't ship those yet in this branch, but +# leaving the loop here means the script is correct the day they land +# without us having to remember to come back and update it. +EMBEDDED_RUNTIME="$APP_BUNDLE/Contents/Resources/agent-runtime" +if [ -d "$EMBEDDED_RUNTIME" ]; then + echo "→ signing embedded agent runtime" + while IFS= read -r -d '' bin; do + codesign --force --options runtime --timestamp \ + --sign "$SIGNING_IDENTITY" \ + "$bin" + done < <(find "$EMBEDDED_RUNTIME" \( -name "*.dylib" -o -name "*.so" \) -print0) + if [ -x "$EMBEDDED_RUNTIME/bin/python3" ]; then + codesign --force --options runtime --timestamp \ + --sign "$SIGNING_IDENTITY" \ + "$EMBEDDED_RUNTIME/bin/python3" + fi +fi + +echo "→ codesign $APP_BUNDLE with $SIGNING_IDENTITY" +codesign --force --options runtime --timestamp \ + --entitlements "$ENTITLEMENTS" \ + --sign "$SIGNING_IDENTITY" \ + "$APP_BUNDLE" + +codesign --verify --deep --strict --verbose=2 "$APP_BUNDLE" + +if [ -z "${NOTARY_PROFILE:-}" ]; then + echo "✓ signed; skipping notarization (set NOTARY_PROFILE to enable)" + exit 0 +fi + +ZIP_PATH="build/$APP_NAME.zip" +# Clean the artifact on any exit path so the CI/local build dir doesn't +# accumulate stale ZIPs alongside the DMG. +trap 'rm -f "$ZIP_PATH"' EXIT + +rm -f "$ZIP_PATH" +ditto -c -k --sequesterRsrc --keepParent "$APP_BUNDLE" "$ZIP_PATH" + +echo "→ notarytool submit ($NOTARY_PROFILE)" +xcrun notarytool submit "$ZIP_PATH" \ + --keychain-profile "$NOTARY_PROFILE" \ + --wait + +echo "→ stapler staple" +xcrun stapler staple "$APP_BUNDLE" +xcrun stapler validate "$APP_BUNDLE" + +echo "✓ signed + notarized $APP_BUNDLE" From 4ca2c91be8de8db067371ca36593227dcb403bd9 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Wed, 20 May 2026 16:08:38 +0200 Subject: [PATCH 02/10] fix(macos): persist proxy snapshot + handle SIGTERM/SIGINT/SIGHUP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Safari can't connect to the server" failure mode after an abrupt rae exit (force-quit, kill, crash, kernel panic) was a clean data loss: the snapshot of the user's pre-rae proxy settings lived only in `AppState.proxySnapshot` (in-memory). When the process died without reaching `restoreProxyBeforeExit`, the system proxy stayed pointing at 127.0.0.1: with nothing listening — Safari / Chrome / Atlas all hard-fail on every request — and the user's real proxy config (Wi-Fi defaults, corporate proxy, VPN settings) was gone with no way for the next launch to bring it back. Two complementary fixes: 1. **Persist the snapshot to disk.** Inside applySystemProxy, write the snapshot to /ReverseAPI/proxy-snapshot.json *before* flipping networksetup, so even a crash between `enable()` and the in-memory assignment leaves enough state for the next launch to recover. On `restoreSystemProxy` / `disableCurrentRaeProxy` / `restoreProxyBeforeExit` we delete the sentinel file alongside the in-memory clear. AppState.init now also reads the sentinel back into proxySnapshot at boot, so `recoverStaleSystemProxyOnLaunch` can do a real restore (preserving the user's previous corporate / Wi-Fi proxy settings) instead of a blanket disable that dropped everything. The recovery message has two variants now: "Restored previous proxy settings from a stale session." when the snapshot survived, "Recovered stale device proxy from a previous session." when only a disable was possible. ProxyServiceSnapshot grows a Codable conformance + explicit public init (the synthesized memberwise was internal so the ReverseAPI target couldn't construct one). The shape stays identical. 2. **Catch SIGTERM / SIGINT / SIGHUP.** AppDelegate.installSignalHandlers wires DispatchSource.makeSignalSource on the main queue for each of the three signals — Activity Monitor's "Quit"/"Force Quit", `kill `, terminal Ctrl-C from `swift run`, and shutdown all hit one of these. The handler flips the existing isTerminating guard, calls AppLifecycle.shared.restoreProxyBeforeExit() synchronously (we have no async budget once the OS decided to kill us), then re-raises the signal with SIG_DFL so the process exits with the correct termination status. SIGKILL (kill -9) and a true crash still bypass everything — the kernel doesn't let userspace catch those — but the disk sentinel from fix #1 covers that path too: next launch restores the snapshot, no manual `networksetup -setwebproxystate Wi-Fi off` gymnastics needed. Co-Authored-By: Claude Opus 4.7 --- macos/Sources/ReverseAPI/App/AppState.swift | 64 ++++++++++++++++++- .../ReverseAPI/App/ReverseAPIApp.swift | 42 ++++++++++++ .../System/SystemProxyController.swift | 20 +++++- 3 files changed, 122 insertions(+), 4 deletions(-) diff --git a/macos/Sources/ReverseAPI/App/AppState.swift b/macos/Sources/ReverseAPI/App/AppState.swift index 526de81..cba233a 100644 --- a/macos/Sources/ReverseAPI/App/AppState.swift +++ b/macos/Sources/ReverseAPI/App/AppState.swift @@ -60,6 +60,7 @@ final class AppState { let caPath: String private var proxySnapshot: [ProxyServiceSnapshot]? + private let snapshotFileURL: URL init(port: Int = 8888) throws { let appSupport = try FileManager.default.url( @@ -78,6 +79,14 @@ final class AppState { let agentWorkdir = caStore.directory.appendingPathComponent("agent-sessions", isDirectory: true) try FileManager.default.createDirectory(at: agentWorkdir, withIntermediateDirectories: true) + // Persist the pre-rae proxy snapshot to disk while we hold it in + // memory, so even an abrupt kill (force-quit, kernel panic, power + // loss) leaves enough state on disk for the next launch to + // restore the user's real settings instead of just disabling + // the proxy and losing any pre-existing corporate proxy. + self.snapshotFileURL = caStore.directory + .appendingPathComponent("proxy-snapshot.json") + self.store = store self.engine = engine self.installer = CertificateTrustInstaller() @@ -90,9 +99,33 @@ final class AppState { self.caTrustInstalled = installer.isInstalled(derBytes: self.caDER) self.systemProxyEnabled = (try? systemProxy.isEnabled(host: "127.0.0.1", port: port)) ?? false + // Eagerly recover from a stale snapshot left over from a previous + // process that didn't shut down cleanly. We do this synchronously + // in init (off the main work) so by the time the UI appears the + // user's network is already in a sane state — Safari/Chrome are + // dead-in-the-water as long as the system proxy points at our + // port and we're not actually accepting connections. + if let persisted = try? Self.readSnapshot(from: snapshotFileURL), !persisted.isEmpty { + self.proxySnapshot = persisted + } + store.subscribe(to: engine.bus) } + nonisolated private static func readSnapshot(from url: URL) throws -> [ProxyServiceSnapshot] { + let data = try Data(contentsOf: url) + return try JSONDecoder().decode([ProxyServiceSnapshot].self, from: data) + } + + nonisolated private static func writeSnapshot(_ snapshot: [ProxyServiceSnapshot], to url: URL) throws { + let data = try JSONEncoder().encode(snapshot) + try data.write(to: url, options: .atomic) + } + + nonisolated private static func deleteSnapshot(at url: URL) { + try? FileManager.default.removeItem(at: url) + } + func toggleCapture() async { if isCapturing { await stopCapture() @@ -254,13 +287,24 @@ final class AppState { } func recoverStaleSystemProxyOnLaunch() async { - guard systemProxyEnabled, !isCapturing, proxySnapshot == nil, !isWorking else { return } + guard systemProxyEnabled, !isCapturing, !isWorking else { return } isWorking = true defer { isWorking = false } do { - try await disableCurrentRaeProxy() - lastError = "Recovered stale device proxy from a previous session." + if let snapshot = proxySnapshot, !snapshot.isEmpty { + // Best-case: previous run got far enough to persist the + // user's pre-rae proxy state. Restore it verbatim so any + // corporate proxy / VPN config the user had is preserved. + try await restoreSystemProxy() + lastError = "Restored previous proxy settings from a stale session." + } else { + // No snapshot on disk but the system proxy is still pointing + // at 127.0.0.1:. Best we can do is turn it off so + // browsers can reach the internet again. + try await disableCurrentRaeProxy() + lastError = "Recovered stale device proxy from a previous session." + } } catch { lastError = "Device proxy points at rae, but could not be repaired automatically: \(error)" } @@ -275,6 +319,9 @@ final class AppState { try? systemProxy.disable(host: "127.0.0.1", port: port) systemProxyEnabled = false } + // Either way the on-disk sentinel is no longer accurate — drop it + // so the next launch doesn't try to restore stale data. + Self.deleteSnapshot(at: snapshotFileURL) } func shutdownForWindowClose() async { @@ -304,13 +351,20 @@ final class AppState { private func applySystemProxy() async throws { let systemProxy = self.systemProxy let port = self.port + let snapshotURL = self.snapshotFileURL let snapshot = try await Task.detached(priority: .userInitiated) { let snapshot = try systemProxy.snapshot() + // Write the snapshot to disk BEFORE flipping the system proxy. + // If we crash between enable() and the in-memory assignment, + // the next launch can still restore the user's real settings + // instead of just disabling and losing them. + try? Self.writeSnapshot(snapshot, to: snapshotURL) do { try systemProxy.enable(host: "127.0.0.1", port: port) return snapshot } catch { try? systemProxy.restore(snapshot) + Self.deleteSnapshot(at: snapshotURL) throw error } }.value @@ -322,12 +376,14 @@ final class AppState { let systemProxy = self.systemProxy let port = self.port let snapshot = proxySnapshot + let snapshotURL = self.snapshotFileURL try await Task.detached(priority: .userInitiated) { if let snapshot { try systemProxy.restore(snapshot) } else { try systemProxy.disable(host: "127.0.0.1", port: port) } + Self.deleteSnapshot(at: snapshotURL) }.value proxySnapshot = nil systemProxyEnabled = false @@ -336,8 +392,10 @@ final class AppState { private func disableCurrentRaeProxy() async throws { let systemProxy = self.systemProxy let port = self.port + let snapshotURL = self.snapshotFileURL try await Task.detached(priority: .userInitiated) { try systemProxy.disable(host: "127.0.0.1", port: port) + Self.deleteSnapshot(at: snapshotURL) }.value proxySnapshot = nil systemProxyEnabled = false diff --git a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift index 3e742aa..0688068 100644 --- a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift +++ b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift @@ -64,6 +64,7 @@ final class AppLifecycle { final class AppDelegate: NSObject, NSApplicationDelegate { private var isTerminating = false + private var signalSources: [DispatchSourceSignal] = [] func applicationDidFinishLaunching(_ notification: Notification) { // `swift run` launches a bare SwiftPM executable with no .app bundle @@ -77,6 +78,47 @@ final class AppDelegate: NSObject, NSApplicationDelegate { NSApp.setActivationPolicy(.regular) NSApp.activate(ignoringOtherApps: true) NSApp.appearance = NSAppearance(named: .darkAqua) + installSignalHandlers() + } + + /// Restore the system proxy before exiting on SIGINT / SIGTERM / SIGHUP. + /// Activity Monitor's "Quit" / "Force Quit", `kill `, terminal Ctrl-C + /// from `swift run` and shutdown all hit this path. AppKit's normal + /// applicationShouldTerminate doesn't fire for these, so without this + /// the system proxy stays pointing at 127.0.0.1: with nothing + /// listening — exactly the "Safari can't connect" symptom users see. + private func installSignalHandlers() { + for sig in [SIGINT, SIGTERM, SIGHUP] { + // Ignore the default signal action FIRST so the dispatch source + // gets a chance to run before the process gets killed by the + // kernel's default handler. + signal(sig, SIG_IGN) + let source = DispatchSource.makeSignalSource(signal: sig, queue: .main) + source.setEventHandler { [weak self] in + guard let self else { exit(0) } + // Queue is .main — we're already on the main actor, just + // assert it so we can call @MainActor methods without + // hopping through an async Task. + MainActor.assumeIsolated { self.handleSignal(sig) } + } + source.resume() + signalSources.append(source) + } + } + + @MainActor + private func handleSignal(_ sig: Int32) { + guard !isTerminating else { return } + isTerminating = true + // Synchronous restore — we have no async budget once the OS has + // decided to kill us. The proxy state is the priority; the engine + // + agent sidecar would normally clean up too but they'd race the + // process exit anyway. + AppLifecycle.shared.restoreProxyBeforeExit() + // Re-raise the signal with the default handler so the process + // actually exits with the right termination status. + signal(sig, SIG_DFL) + raise(sig) } func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { diff --git a/macos/Sources/ReverseAPIProxy/System/SystemProxyController.swift b/macos/Sources/ReverseAPIProxy/System/SystemProxyController.swift index 4df8668..917c85b 100644 --- a/macos/Sources/ReverseAPIProxy/System/SystemProxyController.swift +++ b/macos/Sources/ReverseAPIProxy/System/SystemProxyController.swift @@ -7,7 +7,7 @@ public enum SystemProxyError: Error { case invalidPort(Int) } -public struct ProxyServiceSnapshot: Sendable, Equatable { +public struct ProxyServiceSnapshot: Sendable, Equatable, Codable { public let service: String public let httpEnabled: Bool public let httpHost: String @@ -15,6 +15,24 @@ public struct ProxyServiceSnapshot: Sendable, Equatable { public let httpsEnabled: Bool public let httpsHost: String public let httpsPort: Int + + public init( + service: String, + httpEnabled: Bool, + httpHost: String, + httpPort: Int, + httpsEnabled: Bool, + httpsHost: String, + httpsPort: Int + ) { + self.service = service + self.httpEnabled = httpEnabled + self.httpHost = httpHost + self.httpPort = httpPort + self.httpsEnabled = httpsEnabled + self.httpsHost = httpsHost + self.httpsPort = httpsPort + } } public final class SystemProxyController: @unchecked Sendable { From 142a32e764b632fd7506b019d30eee3b1786f205 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Wed, 20 May 2026 16:41:44 +0200 Subject: [PATCH 03/10] fix(macos): gate persisted snapshot load on live proxy + surface write failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two open PR review comments on the snapshot persistence work in 4ca2c91: - AppState.init was reading proxy-snapshot.json unconditionally. Cubic flagged that a leftover file from a previous run could be loaded after the user has since changed their proxy settings manually — when the app later exits via restoreProxyBeforeExit it would restore those stale values and overwrite whatever the user has now. Gate the load on `systemProxyEnabled` being true (i.e. the system proxy currently points at 127.0.0.1:), which is the only state where the on-disk snapshot is actually relevant. When that gate fails, delete the file so it can't bite us later. - applySystemProxy used `try?` when writing the snapshot to disk, so a write failure (read-only volume, sandbox refusal, disk full, etc.) silently fell through to flipping the system proxy anyway — leaving the user with no on-disk record of their original settings. If we then crashed, recovery would have nothing to restore. Promote the call to `try` so the error propagates and the proxy is never enabled without a durable snapshot. Co-Authored-By: Claude Opus 4.7 --- macos/Sources/ReverseAPI/App/AppState.swift | 31 +++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/macos/Sources/ReverseAPI/App/AppState.swift b/macos/Sources/ReverseAPI/App/AppState.swift index cba233a..7218c98 100644 --- a/macos/Sources/ReverseAPI/App/AppState.swift +++ b/macos/Sources/ReverseAPI/App/AppState.swift @@ -101,12 +101,24 @@ final class AppState { // Eagerly recover from a stale snapshot left over from a previous // process that didn't shut down cleanly. We do this synchronously - // in init (off the main work) so by the time the UI appears the - // user's network is already in a sane state — Safari/Chrome are - // dead-in-the-water as long as the system proxy points at our - // port and we're not actually accepting connections. - if let persisted = try? Self.readSnapshot(from: snapshotFileURL), !persisted.isEmpty { + // in init so by the time the UI appears the user's network is + // already in a sane state — Safari/Chrome are dead-in-the-water + // as long as the system proxy points at our port and we're not + // accepting connections. + // + // Only load the snapshot when the system proxy is currently + // pointing at our port. Otherwise the file is just leftover from + // a prior run that the user has since changed manually — loading + // it would let us "restore" stale settings on the next exit and + // overwrite the user's real, current proxy configuration. + if self.systemProxyEnabled, + let persisted = try? Self.readSnapshot(from: snapshotFileURL), + !persisted.isEmpty { self.proxySnapshot = persisted + } else { + // File is either missing, malformed, or no longer relevant — + // drop it so we don't accidentally pick it up later. + Self.deleteSnapshot(at: snapshotFileURL) } store.subscribe(to: engine.bus) @@ -355,10 +367,11 @@ final class AppState { let snapshot = try await Task.detached(priority: .userInitiated) { let snapshot = try systemProxy.snapshot() // Write the snapshot to disk BEFORE flipping the system proxy. - // If we crash between enable() and the in-memory assignment, - // the next launch can still restore the user's real settings - // instead of just disabling and losing them. - try? Self.writeSnapshot(snapshot, to: snapshotURL) + // If this fails (read-only volume, sandbox refusal, disk full) + // we must NOT flip the proxy — otherwise a subsequent crash + // would leave the user with no way to recover their original + // settings. + try Self.writeSnapshot(snapshot, to: snapshotURL) do { try systemProxy.enable(host: "127.0.0.1", port: port) return snapshot From 1cf4cb5f3c57420090b99cf8d3c4bbfce1132d5b Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 13:02:20 +0200 Subject: [PATCH 04/10] Revert "fix(macos): gate persisted snapshot load on live proxy + surface write failures" This reverts commit 142a32e764b632fd7506b019d30eee3b1786f205. --- macos/Sources/ReverseAPI/App/AppState.swift | 31 ++++++--------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/macos/Sources/ReverseAPI/App/AppState.swift b/macos/Sources/ReverseAPI/App/AppState.swift index 7218c98..cba233a 100644 --- a/macos/Sources/ReverseAPI/App/AppState.swift +++ b/macos/Sources/ReverseAPI/App/AppState.swift @@ -101,24 +101,12 @@ final class AppState { // Eagerly recover from a stale snapshot left over from a previous // process that didn't shut down cleanly. We do this synchronously - // in init so by the time the UI appears the user's network is - // already in a sane state — Safari/Chrome are dead-in-the-water - // as long as the system proxy points at our port and we're not - // accepting connections. - // - // Only load the snapshot when the system proxy is currently - // pointing at our port. Otherwise the file is just leftover from - // a prior run that the user has since changed manually — loading - // it would let us "restore" stale settings on the next exit and - // overwrite the user's real, current proxy configuration. - if self.systemProxyEnabled, - let persisted = try? Self.readSnapshot(from: snapshotFileURL), - !persisted.isEmpty { + // in init (off the main work) so by the time the UI appears the + // user's network is already in a sane state — Safari/Chrome are + // dead-in-the-water as long as the system proxy points at our + // port and we're not actually accepting connections. + if let persisted = try? Self.readSnapshot(from: snapshotFileURL), !persisted.isEmpty { self.proxySnapshot = persisted - } else { - // File is either missing, malformed, or no longer relevant — - // drop it so we don't accidentally pick it up later. - Self.deleteSnapshot(at: snapshotFileURL) } store.subscribe(to: engine.bus) @@ -367,11 +355,10 @@ final class AppState { let snapshot = try await Task.detached(priority: .userInitiated) { let snapshot = try systemProxy.snapshot() // Write the snapshot to disk BEFORE flipping the system proxy. - // If this fails (read-only volume, sandbox refusal, disk full) - // we must NOT flip the proxy — otherwise a subsequent crash - // would leave the user with no way to recover their original - // settings. - try Self.writeSnapshot(snapshot, to: snapshotURL) + // If we crash between enable() and the in-memory assignment, + // the next launch can still restore the user's real settings + // instead of just disabling and losing them. + try? Self.writeSnapshot(snapshot, to: snapshotURL) do { try systemProxy.enable(host: "127.0.0.1", port: port) return snapshot From 6c344bbd87f35ebdf2ea6672ccd9631d0c97341f Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 13:03:19 +0200 Subject: [PATCH 05/10] Reapply "fix(macos): gate persisted snapshot load on live proxy + surface write failures" This reverts commit 10e606feea720a9f09b71c408e856ef5533b9a99. --- macos/Sources/ReverseAPI/App/AppState.swift | 31 +++++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/macos/Sources/ReverseAPI/App/AppState.swift b/macos/Sources/ReverseAPI/App/AppState.swift index cba233a..7218c98 100644 --- a/macos/Sources/ReverseAPI/App/AppState.swift +++ b/macos/Sources/ReverseAPI/App/AppState.swift @@ -101,12 +101,24 @@ final class AppState { // Eagerly recover from a stale snapshot left over from a previous // process that didn't shut down cleanly. We do this synchronously - // in init (off the main work) so by the time the UI appears the - // user's network is already in a sane state — Safari/Chrome are - // dead-in-the-water as long as the system proxy points at our - // port and we're not actually accepting connections. - if let persisted = try? Self.readSnapshot(from: snapshotFileURL), !persisted.isEmpty { + // in init so by the time the UI appears the user's network is + // already in a sane state — Safari/Chrome are dead-in-the-water + // as long as the system proxy points at our port and we're not + // accepting connections. + // + // Only load the snapshot when the system proxy is currently + // pointing at our port. Otherwise the file is just leftover from + // a prior run that the user has since changed manually — loading + // it would let us "restore" stale settings on the next exit and + // overwrite the user's real, current proxy configuration. + if self.systemProxyEnabled, + let persisted = try? Self.readSnapshot(from: snapshotFileURL), + !persisted.isEmpty { self.proxySnapshot = persisted + } else { + // File is either missing, malformed, or no longer relevant — + // drop it so we don't accidentally pick it up later. + Self.deleteSnapshot(at: snapshotFileURL) } store.subscribe(to: engine.bus) @@ -355,10 +367,11 @@ final class AppState { let snapshot = try await Task.detached(priority: .userInitiated) { let snapshot = try systemProxy.snapshot() // Write the snapshot to disk BEFORE flipping the system proxy. - // If we crash between enable() and the in-memory assignment, - // the next launch can still restore the user's real settings - // instead of just disabling and losing them. - try? Self.writeSnapshot(snapshot, to: snapshotURL) + // If this fails (read-only volume, sandbox refusal, disk full) + // we must NOT flip the proxy — otherwise a subsequent crash + // would leave the user with no way to recover their original + // settings. + try Self.writeSnapshot(snapshot, to: snapshotURL) do { try systemProxy.enable(host: "127.0.0.1", port: port) return snapshot From 92ce9b1d62382140f64e4f55c47451949daf4464 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 16:46:40 +0200 Subject: [PATCH 06/10] style(macos): retheme to match reverse-api-website palette + bundle Fraunces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-align the macOS app's visual identity with the web companion's design system (see SYSTEM_DESIGN.md). The two products previously felt unrelated — cold near-black dark-blue palette vs the web's warm cream/ink + pink magenta brand. Now they share the same dark mode palette and the wordmark uses the same Fraunces italic that appears on the landing page. Scope (intentionally tight): - Dark mode only — app already forces .preferredColorScheme(.dark); light mode is out of scope. - Fraunces bundled for the wordmark only (~440 KB). Body stays on SF Pro, code stays on SF Mono — shipping Inter + JetBrains Mono for marginal visual gain would have added ~2 MB for little payoff. - HTTP method colors stay vivid for semantic discrimination in the dense traffic table. Theme.swift — full color rewrite: appBackground #12131A → #14110e (--color-cream dark) surface #1B1C1F → #1c1814 (--color-cream-soft dark) elevated #28292E → #262019 input #1F2024 → #1a1612 (--color-washed dark) textPrimary #EDEDEF → #fff7f0 (--color-ink dark) textSecondary → cream @ 73% textTertiary → cream @ 55% border → cream @ 8% (--color-fd-border dark) borderStrong → cream @ 14% accent #3B82F6 → #ff3d8b (--color-fd-primary dark, brand pink) success #4CCA84 → #a4d4b8 (--color-mint dark, softened) warn #F08C3A → #d4946e danger kept (neutral, works in both) HTTP method palette kept (GET blue, POST green, PUT yellow, …) New tokens: brandPink alias of accent for logo / brand-mark sites mint alias of success for completion semantics radiusCard = 14 radiusInner = 10 radiusInput = 8 The 13 UI files reference Theme tokens by name, so they all auto- inherit the new palette without per-file edits. Only OnboardingView needed direct changes (the asterisk + wordmark below). Fonts.swift (new) — Fraunces italic registration: - Bundle.module locates the bundled TTF at runtime via the SwiftPM resource bundle (Package.swift gets a resources: [.copy("Resources")] block on the ReverseAPI target). - BrandFont.bootstrap() registers the font with Core Text in AppDelegate.applicationDidFinishLaunching, before the first window appears, so the wordmark doesn't first-paint as SF Italic and flip on a later layout pass. - Font.fraunces(size:weight:) helper. Italic is baked in — Fraunces is only shipped here in italic since that's the brand voice. - Falls back to SF Pro Italic if registration fails (logged). OnboardingView header: - Replace SF Symbol "chevron.left.forwardslash.chevron.right" with Text("*") in Fraunces 38pt semibold + Theme.brandPink — the brand asterisk used in the website header, app icon, hero, marquee. - "rae" wordmark switched from SF Pro 26pt → Fraunces 30pt italic. - OnboardingStep.completedGreen now aliases Theme.mint so palette tweaks live in one place. scripts/build-app.sh: - After the Swift build, copy the SwiftPM resource bundle ($BIN_PATH/ReverseAPI_ReverseAPI.bundle) into the .app's Contents/Resources/ so Bundle.module finds Fraunces at runtime in the distributed .app (not just under `swift run`). Verification: - swift build: clean (resource_bundle_accessor.swift auto-generated by SwiftPM, Bundle.module resolves). - swift test: 120/120 pass — no test references Theme color values directly. - Smoke launch via `.build/debug/rae`: no BrandFont registration errors logged. Co-Authored-By: Claude Opus 4.7 --- macos/Package.swift | 10 ++ .../ReverseAPI/App/ReverseAPIApp.swift | 6 + .../Fraunces-Italic-VariableFont.ttf | Bin 0 -> 437844 bytes macos/Sources/ReverseAPI/UI/Fonts.swift | 53 +++++++++ .../ReverseAPI/UI/OnboardingView.swift | 25 ++-- macos/Sources/ReverseAPI/UI/Theme.swift | 108 +++++++++++++----- macos/scripts/build-app.sh | 11 +- 7 files changed, 173 insertions(+), 40 deletions(-) create mode 100644 macos/Sources/ReverseAPI/Resources/Fraunces-Italic-VariableFont.ttf create mode 100644 macos/Sources/ReverseAPI/UI/Fonts.swift diff --git a/macos/Package.swift b/macos/Package.swift index 0fb7384..afcd939 100644 --- a/macos/Package.swift +++ b/macos/Package.swift @@ -43,6 +43,16 @@ let package = Package( "ReverseAPIProxy", .product(name: "GRDB", package: "GRDB.swift"), .product(name: "MarkdownUI", package: "swift-markdown-ui"), + ], + resources: [ + // Bundle the brand fonts (Fraunces italic variable) so the + // `*` asterisk + "rae" wordmark render in serif italic + // instead of falling back to SF. SwiftPM compiles this into + // a `ReverseAPI_ReverseAPI.bundle` next to the executable; + // Bundle.module locates it at runtime. scripts/build-app.sh + // copies that .bundle into the .app's Contents/Resources/ + // for distribution. + .copy("Resources"), ] ), .testTarget( diff --git a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift index 0688068..8cf20e3 100644 --- a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift +++ b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift @@ -67,6 +67,12 @@ final class AppDelegate: NSObject, NSApplicationDelegate { private var signalSources: [DispatchSourceSignal] = [] func applicationDidFinishLaunching(_ notification: Notification) { + // Register the bundled Fraunces italic font BEFORE the first window + // appears — otherwise the onboarding sheet's `*` brand asterisk + + // "rae" wordmark first-paint in SF Italic and only flip to Fraunces + // on a later layout pass, which reads as a layout glitch. + BrandFont.bootstrap() + // `swift run` launches a bare SwiftPM executable with no .app bundle // and no Info.plist, so macOS doesn't treat it as a regular GUI app — // the window never reliably becomes key and AppKit text fields can't diff --git a/macos/Sources/ReverseAPI/Resources/Fraunces-Italic-VariableFont.ttf b/macos/Sources/ReverseAPI/Resources/Fraunces-Italic-VariableFont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3ae1a9afd6a3aa91879569acb352cb890ad0c934 GIT binary patch literal 437844 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

A=={%fT!^#m3{y*p8@H~M+lKp_fc}oa zk$eF-Jo66k^^yLFVd*9&FG3_D#=iuLt#TU!}9Q-?M==}4-mxiDB^H?~%`#Iqw zLNJdk{x5MK=HdK(R(^2pevh$on|n_%ZnPgi;PcOakChYL^FQLX!{dedff&|EzeneV z@m~Oc7XwKH{i=hSQ+$^0IlcH5Zei)3gCn{h)|a@BrEd;iItu?9pD_lG_s)Jiv+X#=yVCve@=HIN}5D`M>jajKCqNh4_Gj ze}x%F;ngf%aqzFPsiSZOOHUm98?12@Ud`$g4*u==@A8{idg9>UVP&Jw-^tPg2mhY; z@hJQe;YY*$@$*|Xjq8IMHAFz|7?|E2y;ov`F`#CsMNqooR6~QUq84x4j z#W9&I)W}AW^jyt;HpmQC^m&~!9AEmCz8H?Qp^YYE%xpP@t1qcOFo8gMk;l&k3;b-b z;9`#-f(5BQ!=-h_OaFx%4_bE|)6D-pOBFx|EH)P+?67bnJNq2`E6mPfjY{52J;QPt zWTe6KZ(|R0)Ck`16Kp%2HTXGhWS>XezZmi#eW*e-JpTvc+Myc}^(OD-Kfz+3gTKvt ze54)n;28K1#7t%rN9`9pe};GOFc;i222Szbui-)OzXRU*1KSEL8NpZ2U^~&%V4L1U zT{FfueV@xz9|Fsjx`ypNXS04zoJPGLh9euAgP+CQ$H0+{aAYe3oW)-SE2Gf&zhQM8_ufB8 z-b4LmbsPu(={#H@V|5${|DW@4cpm9E4*svPa6!Q+{A>K)G5tllihKSW&bA&NU(P7} zTNw8Uo)W^`VYr{i!eJcW;eTXh1&d$dr@y)ncqYn6@FqO{tNY*MbBLai`_y}*-~A5X zKjyng7ovWGE<|v4{*JS{j{EMf?|+H!J%3+-Y-w(s-{WcL=TTTV+Aa%c$Mfcx{+_@8 z0~9zx-~A3Bb6>D*wA~-^54iq9jf@1Vi@5Kd;hlpM8#uc80nr~O{F$S_`$xw&7XBr^ zW(*wWVfguPFMz{$hv7fs!}JH={egOQ6wZDZr0+B)Mg_r!OoM1H^5wxG$5CJwzqDna z0Qrp0jmyeZL-j-qB8#v(!$*-N@c8+}witz{N8IVH64LTH@)=Un=BsZaD0pjF2Ex-^fBdS z`Bgj2-&@&v=HRPgo;dj5vD?PLksRXSXL0KoIN}Qq{te#G!9lJ-IAIk2HnyLYD-@G* z0sIWMaR}KY6m#GL`1_cUg{OhfFol&vkXyylv5K8<1ZM=dLi-4gZ2Egxdiw#F;`z`X zx?jc05$?UOuqW7laqwBg?}4q4JviE4mGJ)2_EdPD?WrD0QJS&``Gjvi~mTf4WW>-BwW{c-caPTu&l$|YjUT_-C3nm(taK9V*{sr(a zan7sYo(KF4KmY9oaQN;p{6~CvUYKIRX^3f$z|UX-mh(@5ra=8MqV;dIcjM9;VkGW8 zvfz99xHlUZA6XDa%jay|o7gIyGtX``q#D!~g*A;NOmYp5+1#{vECv^E~Pg2mc;>U<@2lD+m7( zpF9SRWF80qVb~si0b)4ckhhP*&+tyLvPcD9%H!;~;Ls{|T%3&L;7IRs@Uz$;+dcfgbI#ag=>_R!7ko_{exC%xboq&096fzXV^7sfWu~N4?1y|BiQ)x;k!P3zjW3; zf7?E9*LVqEDOafcS!q|@d3jiVR24Xmu;-9bepW z`yVDSg{B?vAKG?nDV*mQ7YXbZN4{KX-q=5W+5Z3RplE$~t=+wxwBv7PFa9ZvXPezAKxB zVdwrwrtEoQqE<2OmX9rTdPb^OD&yNN=InUHEfP!I#2Z-7lp=oSxstF#*TQUuO#UDq!!7By~rNO8YD7=l#VpwxUM1$hp$kG|E zSi&tb0|5S^73xAVomhAwg}4Or-u{fX8W%?*`t4sHKmKBq45;g~9rJcoNm=R&WOCGn zD=(PtRkeGrbmjTD`EES~^Sy0QHf8Kt0HL6m>zXmLml&*a5L=285qu5*Q>rfp`Q2f_|3BqR~TDSG!h0suo}0 zRM)7cX_wDM>+im{tP*#vv!5^6VJJGYsH6LxRBWicw<+3CEfB2lO{olfYopjTKQgyk z%s8gj8)X8EqhWb5pWi$l|BbPG$*P4dT4%PWys30?4K{gPLWk;gNaOaYYZ{U}IWN7}oFw%OErX#BqXtfd;J}Z-}jKz{J>-KPi9XrD=s0RGCEXGQp;AEhjdV=N2d-2*QWx=^ zR_p_T0?HRg{SR$Z({fP#`uiAZsSZ)R`qaL@5?6TIh(6tT&cMU(cgG%t_ylYeIX}`B z7Of9liR*vyExzk|jP4Sh)VJ`NFW27j!NR!c8$Q1L+6Qsw|FE>IQ^&?e#pS!pu>iI6 zk_&&GnKnE$A~Yo?Wk7JRl-R*tL*sgNb&kT5*60M62nx$i&M(P5^p6-36*Ic$s5wK< z{^I@{>sPKmX&?sSL@wJ8JYdZPp|KNIF}4d zSSO=rk8Zg`2IE{*SBm)laA@~rXGo4{?%m7bj2Ds5Hm|yo2mf`>U90j>pY5uCZT(q2 zqEceJCI>}t@HP2vKYTm)o_@j2)2CaVYmFn1zeWsmr(!b#pJLmG>;ru$(<)=7DtB%e^!_G?8 z#{}tPji}uCqPWcfp%vO1DqcuF;s8G*@<7kg}^w5uvHFp%v zy8d)uV_vRxRNtJHlm9TA$LG`8L4zj`kEPb?sW{d6y4SdZA<4sizo_H+psOyk(YOKM zFbiYD@C|83yIbY13G91_R=t4Sg(UZl=m(^>(=1_#4a@ZQ)yG+O$No3*jXX&(<8YS& z&!)%6XJ_>9m)rM_F7Cd4(p+JWbWcd{;ZE)v9~l=bf+k+@mj!dmBL~llbMk4!zREcv zPsGT>2faMAOGNLkz0%^7FYMeSB{6zf%Hd1rW(3v zT++%0<8$X-SSQ0us@!eWw{K2%oZN5a#L4riusmcqGcaC=UxNxxznYwVKF!zExu=Dv=NtF zapUZTr#ibI%zZ}$NA?YSKL5OM9?_*&#Din5k1z~;I&#vS-h+B~Ns37tJ#N;rJl_LF zSz$QrKg5;Yf7G0;NmtG>Je&TE+K4vSIqq`|$J{(kp1RW&W`g6=?F%27g8>baD`A%8 ztx=0yu#lscptuveh|auc55A?-`*|=$xEepY6$)h9rH_1P!ja0sWhWS!bd>=)-9AhqMyuEtU`S}-o zUMsyr4>>z$Osbr4=Do8+RA}XWv#A^n&O4mJ=)F^+SL!4JSUl8-G!8V3#W{jUDTVXW zxS9u-kIW8sCQaxwVn9et#Ds#8xrc*0Q~<}&X{)lM!@4KM@Tic)k^Scv&oCUzUhN3$ z(4}0A{+pc>ae{(84-V}a{S>(NGfsyy%NDQC(DOF|IlxfEDQYb8d@ME8YV%|<=VuYi zp1deHRK#=|lOG-(F)@EsrtcFdll!$RR9D

++j!E}A9gDLWaD^K%%nO~4H`s8f)q+!Zx;1IGq3$mrMLKtSfZxTB0t@u_A zvp%y1!DQmZPHU|U^2(u_rAdm6lzXiF%WCN7WzR={G;NWlRL<6A1C>G*A4Wt+3{UJE z8d@;$hH*X8xA2KSZ`e_s)cv--7j$}X*SJ1CuK)B;=iivoqtl>nDLq5Fgl6+b=Y6P6lNa1}N=ol;eY)q~xpegDL*{H)d1!Rc z!Cm?e=-1nG>d>{20vl<5D(=UKEe&f8C=LdmC>H8Ijs~c*#Iov9_b6vpTB_6vk=!jL zVgA5~MYGS`IXs?6hbPB&>lN8OD5(1L}Ryx@-O(kZcX*TnC0^LWDI8>U=*TF>n8 zARZPUn?26AXZDp-R?bNs5*8}L;_xVm`wscy#CmYhA2*O6DWl9+=BWpb`Xn~ka5az; z=X{pAdqee^bEbMGVNjTwJRl_`dTB&ZcRd8;@oB5BpS*6excyLrZR9tYMtfw`}O2c7DC&JRzw!S~zn2L|AwXZi8d6dlk@ z55nG2Mb8!PPZx+EsN&_mw$OKQN>!>n(+M>)67QBues%;+r@8!iUoUh5k{=AV0q-Z8 z2tLvm7xV~Dze?rrQMzsXD(Un0#R0*f53(ht<>-zWGWU$2m<1Rt#6 z&LISs`|NrXKS7cn8yQqY@jHTVr+6pQMNm5Rq_dxYpIonyZwZbHmVByxa&jNBGg$H| z-wy?Rn|PAw$o<88Z1C;8!Uq4ukN=83jZ5Lb=!d_?7b|?6&$|bwekuBCjNr)U9ev7| z%>M(NY+>d9AzxzUgV{;|{*ev-HBNi5@Efdr!0$nvPGP}6=F2QP$Y1W$Q004_Z?N%Y z!P6MQTk_@j7N;dx=|16)1?bt}`|R+bU4Hz}Y;ZH^Wk38=8+?yb>bK&nj^7fXk5kVq z_#1qU4W8(S@8s9};XmPRbPInM2R-POst@^0QPJPSclqJ!=1lzx>q6j$l_%_k{ERHh+tN*9`W6VkH{Sq5fRrbrD*h!KGRZ%Z7861PZg#@dQ?Hn~apM_(Uw^^))V%aQJ$m%@T|H@7#;h~1pD}st zh{YFO2^rHm8@2Hrs_ht;lguKZix*PcN!D%3?T2@xwxHmzv5)-lG1R6NdG?NHhQL(VO?;0E2!j6X=R+1brwFB*KLggvp zg*Nzhrfi;qOWPvxgV-yhWVsYnS`bC$HTEWP7!S=XBxy=GEQ^Fw32svHuq+eFf~a&K zvbQX_qs9jRC;)fPCd;Dm8?1c5?Gmyq3jQ%<6yQtt3<|!3y={X_%c9_~bF6C1a-e<+ z$r4Gpv^apv`Z+B?P1b`-RmVeY)TBL7@Hem%DS$8Sfr9VkAf}~tVX&d$X^h~IN+X`_ zFR-N9M*J7-dw+Zh*%L)~7o)u_x)!7^D)??~UsdhA;D^7(J-W209nw*S{|-Z~U~Cf) zyD`$(Ep0|LCcEvgL91zQVDfK`LbBCkcscB#bERQc@Q2YIrYzrvoKSn)#I)!Lo|4jS zNCsA$Pb-;pfu~1$cRUGk6`wnMN=Zh~#Dt85s2-8>WUci}N=t{Wsce4+=xa6E&x1WS{*XU%YT%jJ+sdGkF4n`ce_=N5e(Hc-Q zuW=elXt>lT1>eD!N=a(C)F%bkJ(z~e8d31w{BQstC(BvzH-!;^h_W zUJZCE@$(gbmHVJ6LB0{rVyDzd2@hiL6-)gJf&~abrM*zkG@{W;-XJO%wW3sCu?vVw zv~Pst4Wc697L{nU-2hZld4jYCBVXeKvZ!*@1dAa@O~{o-#C~`X+g>c!!6fu;oLQNM zHQezXA1fQjJl(RRqv^FgC^90Y)4~D0U7=HQhGlTKGo*85ukgA3lETBMXAev3z;N3! zrUU0>3RzZT5UgDqR*E`2D~L`}GY0ECObq4GR&qL8yeWU#7vt{Ixl?#mm-Ljr!+L*^ z7#7-Ta8gGK72o!`nyMTtVFfXA{SD=iGaWhYAtQjv9o`Yg^OFwFd16MKmXX>cp>w$V zg|gDs@j+>cJtJbqcBB+tTA#V8_#Xj%{!RQFa`q;NJ2YLTQefWHQU0THPj~m}(Jivm z;1`#dtxgC^?Uob~Q`iCijjgTE`BeO$gYjh=-o5X*9?^MRR0b+S5?0QsMo^TFmSST6 zk?w&B-TTMlypot+=TDKh@k#w-;!-^^y)NiTX)@Y6TU3>3EbLmEJguvv^W~QBk9M>S zzMWz2-h5-P#7?fky?m3CJ2IU%w)#&rC5vTTjovj4XGUWsv7_7?Hr0`*O;~EwQNEkT z;St5+apOiuMJ?uo$L2*vEgd_4Omvqe9T9tc3tRJXS`FhB{d% znElH|JG=D}XvbAnv8wgCX{t9eLgl!e=Jptu>l3D>jUFZEP#XRgyOnw`fxX|OY3?o8 z2(b72A@pA60bd%R&*R%1`SMNrzIaaD_O6m6XHacDjKrFddI1S`Qm%Cg)@fpir#Ig3 zj*spx&k-H?=f!2Ei$8z6Yp0fLeWx3}O0AVWx!62->zdhTbm}v=v~t{Kr&lc+zh-)B zpQYsk(^9Na&d@2-$B(_@Vm_;Ih_%Q(r+V@q=I{Z5#lF*OCSALPKQMpn@TK{Sit?7o z6T{6AU!1Xndhz$eRquW-2Zs|J8OJ|p;m7Vv%;H9Z_G$98JQdtG`~3jwF@y{ZQzm80QOyyc?l+cIB2T1-3s=8#IvTAncrJm%JUt8 zw3njxyyuWdrf5pc(0nkg&z4!+RB2VBmQ6#NZ-kqs`#$O^uj|Dxa+e;%fM z75p9ciH6^AgJT}MLe|D0)Sex?UcUn-$Goo*mvW{ZjQQ<3LacC9zk)!7TT&}4pZF`4ZXVG)sMKfHL?n5gb z=xw*bKMKH|8)@dN@EZbf$8$9ERq&5F>RRScd`YcU@Yi{T4KB4`!Rz=O8(h|og1^DX z`r&T{do()Rn~sRz$#3Ad`T3MH9+mG-ev&O; zIY*XoIY$Ou=PT#PR6d#`w~YUSkE1!VjQ=~$krmxt>|;OOzX#psr%Q0q-N`S-&SypU zFShvId<*4kkC&%+Tl~Jo*DAWQzOkRng4^r)4yjKZ?>-`*Z36p}RX%t+7J%FI3~<>$ zDg3wig*JTDkA}aY=kU-oddgHG7N(y}pEpJ_yQ>vZ+@B`4nhOL*`6+=20tNpUHK z!v-b{H1@pt%-T2a$mx6f{DJnhys6`|mo4^07<}HNtIvFQ!@@)Br?0)|?)=n2G1J!E zar@|EH%VrlYOx$^I3zLEVuzzf@1mB87D@1_BpC^>rj{(>Sdm&H<*T4_rmnDea4f#~ z;Zpw)fnh_*p+NMtvE zo!XS5CoQTCZ!iIGrR!Bo@;I}i)G*wfU{lRH3SuudkSy=Yze zm?yI1)CoG=BSXlYA#ydDzU!BY2^Joj$tQo_52Mq=~bZ zy3hXnuWKHd$%hZ|j7v?KlG%4a_sJ9HE=|Aiv)gWZYK9n|HF9!F-wEw(qyHhJZ;!#5 zefm#dFy_=-=8UcwH(~OqX?c06sfk&m`emJR#;DV;nO?MVZ2k!oClqB#t(b)RS|8+s zd@-AW++P)S<`)`1oJIr+zKhLce+Ik{Mg&#ZU!m~PJHIWd1o?7WK>zumg!aOCz>fRQ z>r&&M^4)KPN{y=|jmw2*g^*@t6DQlmomA5jzLeU8g1@YvEVRbouC1+t%ic}lzrvpM z(+MHXRPfjMWE)(TNWov%PdXGG*}4?GPWSN&E_)XRe}gX%(4pQ%!e#FQI3(IA{z|=z zN+){GUEJYM7edxui~soq+{w;Lzg;PUx~ z!hg*;!3LLlrr^5_TE}Jbt*tkS{xC(~c!cmh{2eh(;?on1pNM~~JW{#-;)n00o>0Me z=#wAfVTt!r-=*NY`Bw@becE24ui)>n+le3SSO|)8O8caCEDW;kK*;dJ13L@`=^X}m zG8g(!%3nTHlRFF!5q~>^W>S9X*dg#EtsY?X4Ziz{ci}TO!8jk!Q}BZmtUQD{-nkz?IC1Y69gYUi zhjloHIl0i`SmxkXdE;0p57Tg*^UCFSoMhSKfiJ&~Bf|+S82YKgi7bT6UF;Ix4fq3f zxI6IOI@|*|L%<&?MI`Q5{4;_wR*^bdV+}W0I7Z&eWso@E%yW@{4i~>bC{;I=x z;^uf#hXw2GcteNr1mE$Y4m+63q50=d7U%d;!-LpBXP6ELvv_BY4u`M|=M)_d4V0a` znAfSxg?dPGKCE%VS(fv49qz>9g18Pxuz^8cbvQCm7T!4^AKrxp1r=zVC>9blUWcQZ zD`=Vy#~^&F4#xs#p$^BfsGu?(?g}`*pe^eWy5I_0tHTK_BIsHjPGp^f?$qIKz_>AY$cF$2c}3Sd_NF5}ZdZ7D%kviU3nSQV@c3qO)Z2~t%9G7p#wfpa!ESctgR zx%4{%G9K9TSSctkfN{(KpKeU=hU25J1>kk~5%`19T~{JaKGMuXn&o&j8KBTQzhoO; zatq8^#BmMstpNYYw!B-@IC_p#A)$GoRYLMi2G{bw8r&(V&Linac}srJM1J#-+idt{ zkfOvaL0Hz(3Y4n`gN4Cu$~1$mf>c){PS)U3s*z&iUDnkMgcgCqSwvCRufkArT?igz zy_5hRsI6q+D_xiY$xK4r6sk2TjR56Ipd>X!Q5cB0wj?KOPU%)#`C8n_^3MZ3DT(^3)F4k;f2HuHjxL65rhvkv<4hIMsFs@2 zS|9BCmWSLWC&^S3QhqDIk!%O0fXzU7HDqViPC4mB4PF~uh#1v2Pok8|QMamIrS$DN zw9ehqMhn}HE9=T?@pgE7Gy?b?!JZDT7ejw!?NztnaRy?_kas@HQc7CZ5qhmt+0*8!b3T}@WaD-Cmz8gd1u~*NAYML!((|I z?~2o#5_lr-#=G+#JPD`yB=cUpH&5Yxcwe5%(|9`X$NTdEd?4P2$l!yy8*93FD}!g@ zyryitlaR}Y@?m^9AHhfRQG7HX!}EAP&TJ~gxoO3GELLL2^9g(+pTtk#llc^!{xpqG z=QH?Bej=a6PvR%@Q}}Gm*iYkg`04x%K9|qK$x#b<317$;@x^=zU&@#9<-C-a@p4|l zD|r>K<~4i;U&+tpXYp11Y`&VG!_VdC@$>lw{6c;aznEXb*I+I8GQO5y&adEC@;~r( z{Ez%9el<>cx|UzZugA*sjr=D5Cw?=(h2P3=Ac2wU|p_`zrlC%U3@p+gVWpI;&0>JoqGOH{w{xyzt8vb5BP`t zBmOaO;Gf|9flv8oyb*6kf5E@xU-2gXHUEZx%lG5lweR@%{0IIcZ^qesKl5Msulyk1 zKt9ZU+!Rd6(*+IT5Ka*!f<=f36)q8m6F54F2oWhdi!LHcM2i>^E8;{~5ib%%qUa{N ziyk6L^c2aWm*_20L?6*tq~a6x>7t+LF9wK#VvxuXgN0jogjZyWEHOl6iyVsyI!|5vPkY#9T2?%ohtpiC8EWiN#`xSSpr@<)T!SiE>dPDn*s37BympSSijF zXNgtfY_VFLBhD4)iSxw;;zDtexL8~w)`&~RWn!(kTwEcp6n_xw#2>{~;%ae?xK>;z zt`|3m8^ulHPvT~Ai?~(XCThj);tp}AxJ%qE?h*Hj`^2Bcdhr*0>HM$a0r8;NApRyE z5)X@w;t}zvcuYJlHi;+1lj14ywAd{EE}jw3is!`hVvBe|yeR%5wu+a;Hu199E?yC@ zir2&r@w%uJZ-|{@m)I@#h&RPs;%)Jcs2Bef?~3=t`(m&7Kzt}Z5+92O@rl?cJ{6yd zM)A4$LVPK{5>4W3@s0Ra>=y^bcj9~TgZNQ2i=V{L;urC&I4BN@!@?&_gBjcqhG94i zrxAqLn?j6G!)4$T#6~A0!iY3F8(oYjBie{DVvRVXs}XM`7>PzVqr1_=NHTgF$wn`u zw~=D>G5X@9zBD7<=!XMK1{ed4K}Lo#*l-&j!)s(3S;i0}+sH9;jiJUcW4JNG7-@_$ zMjK;{JR{#IFba(#qu3a0j5Ed?6O4(*B;y2QvN6S&YD_bx8#9cV#)-x(<0Ru`;}m1I zajJ2eF~>OFIK!B0%roX23yczDp|QwVY%DRB8q193MyXL|lp7UBrBP*68#TrXW2JGX zah9>lINMlloMW78oM)VGTwq*iTx48qTw<&-E;TMQ)*6=^R~T0se=yb=e>AQ#t~RbQ zt~IVRt~YKlZZvK({$$*2++y5n+-B4ow;OjDcN%vYcN_N@_Zs&Ze>T<|e=+Vi{%Sm6 zJZNk%{$@O6JZx+<9x)y@9y1;{HW^PCPvT^#r;W|QE6bO<-Cnoy^R%DkQTJJ1?PqE~ zOZ!8#pRN5I?dNKLsP^-;pRfG_?H6jlNc+XgAENUgqVpf3^BO8Zp zJo7b9z73~9!wPILEsJa|i)<~694(6+&3lfPMULh-N6R8d^O%#ZXy;@HXy@c;SdI;* zWt5}&&C&dNb$YKYeWvCmU;AFoOP=<aq;c_(QZzbM$?V$~UJ-<(pHa@x7MbY5sGx zpQr2FtLfxfe3R_KpQVSEd`K@)UaBLnSC`A3Wwk4vUmlgq>rr@Uce=c){UN=UYo<<@ zY2E9($7^b&znMD!OkMYxn%_*VpP5=NN?yoE!!>_yd@)th@#ZVOy!o0Bi~bNT{~W7+ zmHffD%0FN8Rjlb2TKQ^uWokKQs`7fXiC-_CqsjDMZGFEDpQrHLc~*VtdQo^@x6)6qJ744Ft9o(gS$MiWRXqbw->Y)rp5y{w%O%gcSA4qj zbb0eEx=PPHL-oC7x4b%kt3LCs@)BLQrtkLC%h%<$__l0-t|zxD2h!!8)XKA^p zc7%9c5Ba+O@>RUIP{Xy{y#*>iZ-FY0w@~Sgx6qQS*6%zEuJxtR;@^U+@@Kl0USzth zdsW^{x1y7&>erp=R(h1_R{3PQ6(5-%E4`}sOt<1Y)2;H!bSpkH-75b~t&f>*#aE_B z=j+w!mHmOb>vY;)WNN#WsoPhkH!HMyY5C%L3s$aJ7`b3+^@5dUi%J)+YJI=Bdfu7# z_!Ub_OBO~1@Rw9nEO*VXUU=q0N~waBNCgQ$ln^AUvd#Hf84KoBQW*8)54*G7G8{?C zODa~*FJ0)5L%rF;Ie~Ctt_*isT7Krj>JNN>kXBxgZfu@hrDUEg zt(=8g`3sd2dOX_KO5xF+y2l#qXyy0lL69ep=y{5UDmtD5rHmeBJc~TqSbB8h@f4_h zJ;l256lfz^pz`&)mG3Sf<@XdR;{~7S!ly<6pOhWGrl%TpkWq4biitkxS^Q}E=tk$!jnbnVpGP-Vk8XT!Rc=p_KVI{t@Br8H zFHnusU7(GHrtenr@)W6hL^*VNB`?4=UzXfGS{|zN^%SW=1;(ygZrb>HluTp4%dtN8M$L5bU=>3WKkQS#`)h(~qOo+3S1wmNZ->XZQ2^0Yds0&Q#ylswNXx#A}%uJr}XYOdd5?0Y6&KdW_|< z?$sE{?HQuv-0ss9*Q)d#o8RH zd5@p z)EolcfJ*PS%z~bidi7k>qsQEyEG0L$)(f{)4n4N<=&^`L&m}$999#40(Q_-0HC8Ot z-I^Y&c-0ucIA57{_|zWZ6Myij{lVAevARjsU7_33a?obkqs^1Y>K3$__GokIF4EnY zY6ob?);-ZdGa$PHpV}pSvJ>!0pWtgfQhdSOTJhSvsWCU;#5a81z7@XPT|{uV$DgmR z?;?fgDJJ^JN2j;s=eFXt-P2=7j~**}+!kEdSCQt+AFugSc<9cG

FWp`1(WaB*N> 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

s$lXzJlNyM|H%I= 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%0A_U|V^;Fx6a2;cA%T*}Lp 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 (not the + // macOS-standard `Contents/Resources/`) when populated via + // `.copy("Resources")`. Try the explicit subdirectory first, + // then fall back to a root lookup so a future Package.swift + // tweak that puts the file at the bundle root keeps working. + let url = Bundle.module.url(forResource: name, withExtension: "ttf", subdirectory: "Resources") + ?? Bundle.module.url(forResource: name, withExtension: "ttf") + guard let url else { + print("[BrandFont] \(name).ttf not found in bundle — falling back to system font") + continue + } + var error: Unmanaged? + if !CTFontManagerRegisterFontsForURL(url as CFURL, .process, &error) { + let message = (error?.takeRetainedValue()).map { String(describing: $0) } ?? "unknown" + print("[BrandFont] failed to register \(name): \(message)") + } + } + } +} + +extension Font { + /// Fraunces Italic, our display serif. Use sparingly — wordmark, brand + /// asterisk, occasional headline. Fraunces only ships here in italic; + /// SwiftUI handles weight / size variation through the variable font + /// axes. + /// + /// Falls back to SF Pro Italic if registration failed at boot. + static func fraunces(size: CGFloat, weight: Font.Weight = .regular) -> Font { + .custom("Fraunces", size: size).weight(weight).italic() + } +} diff --git a/macos/Sources/ReverseAPI/UI/OnboardingView.swift b/macos/Sources/ReverseAPI/UI/OnboardingView.swift index 8777574..5d61848 100644 --- a/macos/Sources/ReverseAPI/UI/OnboardingView.swift +++ b/macos/Sources/ReverseAPI/UI/OnboardingView.swift @@ -31,12 +31,16 @@ struct OnboardingView: View { private var header: some View { VStack(alignment: .leading, spacing: 12) { - HStack(spacing: 10) { - Image(systemName: "chevron.left.forwardslash.chevron.right") - .font(.system(size: 22, weight: .light)) - .foregroundStyle(Theme.textPrimary) + HStack(alignment: .firstTextBaseline, spacing: 4) { + // Brand asterisk in pink — mirrors the `*` mark used in the + // website header / app icon / hero. Drawn as a glyph (not an + // SF Symbol) so the Fraunces shape carries through. + Text("*") + .font(.fraunces(size: 38, weight: .semibold)) + .foregroundStyle(Theme.brandPink) + .baselineOffset(-4) Text("rae") - .font(.system(size: 26, weight: .semibold)) + .font(.fraunces(size: 30, weight: .semibold)) .foregroundStyle(Theme.textPrimary) } Text("Three quick steps to start intercepting and reverse-engineering API traffic on this Mac.") @@ -127,11 +131,12 @@ private struct OnboardingStep: View { let actionLabel: String let action: () -> Void - /// Deeper, less-saturated green for completion states. The default - /// Theme.success (#4CCA84) shouts on the onboarding sheet where three - /// rows can be green at once — this one sits much closer to a muted - /// forest tone and reads as a status, not a celebration. - private static let completedGreen = Color(red: 0.31, green: 0.62, blue: 0.46) + /// Completion color. Pulls from `Theme.mint` (the cream/ink palette's + /// dark mint variant) so the three "Trusted / Routed / Capturing" + /// pills read as soft status indicators rather than vivid success + /// stamps. Centralised on `Theme.mint` so any future palette tweak + /// lives in one place. + private static let completedGreen = Theme.mint var body: some View { HStack(alignment: .top, spacing: 14) { diff --git a/macos/Sources/ReverseAPI/UI/Theme.swift b/macos/Sources/ReverseAPI/UI/Theme.swift index a51e961..9f3c192 100644 --- a/macos/Sources/ReverseAPI/UI/Theme.swift +++ b/macos/Sources/ReverseAPI/UI/Theme.swift @@ -1,35 +1,85 @@ import SwiftUI +/// Visual tokens for the rae macOS app. +/// +/// Mirrors the dark-mode palette of `reverse-api-website` (see +/// `SYSTEM_DESIGN.md` at the repo root) so the desktop client and the +/// landing/docs site read as the same product. The app is locked to dark +/// mode via `.preferredColorScheme(.dark)`, so we only define the dark +/// variants here. +/// +/// Hex equivalents are kept in the trailing comments — they're the +/// authoritative reference; the RGB literals are just SwiftUI plumbing. enum Theme { - // Backgrounds (darkest → lightest) — exploration: bumped roughly +6% - // luminance across the dark stack so the canvas reads as warm dark grey - // instead of near-black. Each surface keeps the same relative gap - // (~5% between tiers) so contrast on hover/selected states is preserved. - static let appBackground = Color(red: 0.071, green: 0.075, blue: 0.086) // #12131A - static let surface = Color(red: 0.106, green: 0.110, blue: 0.122) // #1B1C1F - static let elevated = Color(red: 0.157, green: 0.161, blue: 0.180) // #28292E - static let input = Color(red: 0.122, green: 0.125, blue: 0.141) // #1F2024 + // MARK: Backgrounds — warm cream-dark stack + + /// Root canvas. `--color-cream` dark variant. + static let appBackground = Color(red: 0.078, green: 0.067, blue: 0.055) // #14110e + /// Cards, panels. `--color-cream-soft` dark variant. + static let surface = Color(red: 0.110, green: 0.094, blue: 0.078) // #1c1814 + /// Hover backgrounds, badges, raised one tier above `surface`. + static let elevated = Color(red: 0.149, green: 0.125, blue: 0.098) // #262019 + /// Input fields. `--color-washed` dark variant. + static let input = Color(red: 0.102, green: 0.086, blue: 0.071) // #1a1612 + /// Scrim behind modal palettes. static let overlay = Color.black.opacity(0.55) - // Borders & dividers - static let border = Color.white.opacity(0.07) - static let borderStrong = Color.white.opacity(0.14) - - // Text - static let textPrimary = Color(red: 0.929, green: 0.929, blue: 0.937) // #EDEDEF - static let textSecondary = Color(red: 0.549, green: 0.557, blue: 0.580) // #8C8E94 - static let textTertiary = Color(red: 0.373, green: 0.380, blue: 0.404) // #5F6167 - - // Accent colors (matched against the dark canvas) - static let accent = Color(red: 0.231, green: 0.510, blue: 0.965) // #3B82F6 - static let warn = Color(red: 0.941, green: 0.549, blue: 0.227) // #F08C3A - static let success = Color(red: 0.298, green: 0.792, blue: 0.518) // #4CCA84 - static let danger = Color(red: 0.949, green: 0.357, blue: 0.357) // #F25B5B - - // Method palette (HTTP) - static let methodGet = Color(red: 0.392, green: 0.643, blue: 1.000) // #64A4FF - static let methodPost = Color(red: 0.388, green: 0.851, blue: 0.541) // #63D98A - static let methodPut = Color(red: 0.953, green: 0.722, blue: 0.282) // #F3B848 - static let methodDelete = Color(red: 0.949, green: 0.439, blue: 0.439) // #F27070 - static let methodConnect = Color(red: 0.682, green: 0.482, blue: 0.965) // #AE7BF6 + // MARK: Borders & dividers — cream at very low alpha + + /// Default 1pt strokes. Matches `--color-fd-border` dark = `#fff7f014`. + static let border = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.08) + /// Stronger dividers when a structural separator is needed. + static let borderStrong = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.14) + + // MARK: Text — cream ink on dark cream + + /// Primary text. `--color-ink` dark = cream. + static let textPrimary = Color(red: 1.0, green: 0.969, blue: 0.941) // #fff7f0 + /// Secondary text. `--color-ink-soft` dark ≈ cream @ 73%. + static let textSecondary = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.73) + /// Tertiary text (timestamps, labels, captions). + static let textTertiary = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.55) + + // MARK: Semantic accents + + /// Primary brand accent. Pink magenta. `--color-fd-primary` dark. + /// Drives focus rings, primary CTAs, status dots, agent send button. + static let accent = Color(red: 1.0, green: 0.239, blue: 0.545) // #ff3d8b + /// Alias of `accent` for sites that want to read as "brand mark" rather + /// than generic "primary action" — e.g. the `*` asterisk + "rae" logo. + static let brandPink = accent + + /// Completed / success states. `--color-mint` dark, softened so it + /// sits next to cream text without shouting. + static let success = Color(red: 0.643, green: 0.831, blue: 0.722) // #a4d4b8 + /// Alias of `success` for explicit "completion" semantics. + static let mint = success + + /// Warning / attention. Warm orange, derived from `--color-orange` dark. + static let warn = Color(red: 0.831, green: 0.580, blue: 0.431) // #d4946e + + /// Errors / destructive actions. Kept from the previous palette — works + /// against both cold and warm backgrounds without re-tuning. + static let danger = Color(red: 0.949, green: 0.357, blue: 0.357) // #F25B5B + + // MARK: HTTP method palette — intentionally vivid + + /// Kept saturated for semantic discrimination in the dense traffic + /// table. Brand cohesion takes a back seat to "spot the method in 50ms" + /// for this 5-color set. + static let methodGet = Color(red: 0.392, green: 0.643, blue: 1.000) // #64A4FF + static let methodPost = Color(red: 0.388, green: 0.851, blue: 0.541) // #63D98A + static let methodPut = Color(red: 0.953, green: 0.722, blue: 0.282) // #F3B848 + static let methodDelete = Color(red: 0.949, green: 0.439, blue: 0.439) // #F27070 + static let methodConnect = Color(red: 0.682, green: 0.482, blue: 0.965) // #AE7BF6 + + // MARK: Shape radii + + /// Outer container cards (the 3-column shell). Slightly tighter than + /// the web's 1.5rem to suit desktop information density. + static let radiusCard: CGFloat = 14 + /// Inner sub-cards inside a Card. + static let radiusInner: CGFloat = 10 + /// Inputs + small pill buttons. + static let radiusInput: CGFloat = 8 } diff --git a/macos/scripts/build-app.sh b/macos/scripts/build-app.sh index 0fd4543..9566ecc 100755 --- a/macos/scripts/build-app.sh +++ b/macos/scripts/build-app.sh @@ -76,7 +76,7 @@ cp "$BUILT_BIN" "$MACOS_BIN/$APP_NAME" chmod +x "$MACOS_BIN/$APP_NAME" # --------------------------------------------------------------------------- -# 3. Static Info.plist + (optional) AppIcon +# 3. Static Info.plist + (optional) AppIcon + bundled SwiftPM resources # --------------------------------------------------------------------------- cp "$MACOS_DIR/Resources/Info.plist" "$CONTENTS/Info.plist" @@ -84,6 +84,15 @@ if [ -f "$MACOS_DIR/Resources/AppIcon.icns" ]; then cp "$MACOS_DIR/Resources/AppIcon.icns" "$RESOURCES/AppIcon.icns" fi +# SwiftPM compiles a resource bundle for any target that declares `resources:` +# — we ship Fraunces italic for the brand wordmark this way. The bundle +# lives next to the executable in the build products dir; copy it into the +# .app so Bundle.module finds it at runtime. +SPM_RESOURCE_BUNDLE="$BIN_PATH/ReverseAPI_ReverseAPI.bundle" +if [ -d "$SPM_RESOURCE_BUNDLE" ]; then + cp -R "$SPM_RESOURCE_BUNDLE" "$RESOURCES/" +fi + # --------------------------------------------------------------------------- # 4. Embed a relocatable Python runtime with rae-agent installed # From 02320fc20d65f58b0b038b864667bca8ecfbb158 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 17:01:24 +0200 Subject: [PATCH 07/10] style(macos): light+dark themes, splash screen, Fraunces brand axes, darker dark bg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Response to live feedback on the first retheme pass — the brand asterisk wasn't rendering as the website's signature petal shape (missing variable-font axes), the dark background read milky, the app was locked to dark, and there was no launch moment for the brand. Theme.swift — dual-tokenisation: - New `Color.dynamic(light:dark:)` helper backed by AppKit's `NSColor(name:dynamicProvider:)`. Resolves the right value when passed to NSWindow.backgroundColor too, not just SwiftUI. - Every token now has both variants. Light = warm cream/ink palette from the website (--color-cream + --color-ink + pink #e50d75). Dark = darker cream-dark stack (appBackground deepened from #14110e → #0a0806 per user feedback; surface tier still warm but unmistakably the "Theme" background). - HTTP method colors get desaturated dark-mode-only variants that also read on cream — single set instead of pure-dark vivid that would have vibrated on light. - New `hex(0xRRGGBB)` helper — RGB-as-fractions math hurt readability on every token; hex literals are the canonical reference now. ReverseAPIApp.swift: - Drop `NSApp.appearance = NSAppearance(named: .darkAqua)` — appearance now follows the system setting. - New `isShowingSplash` gate. SplashView renders for 1.6s on first open, then crossfades into the main content via `.task` timer. The main hierarchy mounts behind the splash (opacity 0) so first paint is instant once the timer fires. - Refactored window setup into a `mainContent` builder for readability now that the body has the splash branch. ContentView.swift — drop `.preferredColorScheme(.dark)` so the view inherits the system colorScheme. SplashView.swift (new): - Centered `*` brand asterisk + "rae" wordmark in big Fraunces. - Asterisk pops in with a spring scale + rotation, wordmark slides in 250ms after. - Continuous gentle ±6° wobble on the asterisk so the eye reads it as alive — the "small movement" the user asked for, not a full spin that would feel toyish. - Lower caption "WARMING UP" in mono with wide tracking for that pre-show texture. Fonts.swift — Fraunces variable axes: - `Font.fraunces(size:weight:soft:wonk:opsz:)` now drops to NSFont with a variable-axis dictionary (wght, SOFT, WONK, opsz). The defaults (`soft=100, wonk=true, opsz=144`) match the website's marquee — they're what give the asterisk its rounded petal shape vs the generic 6-arm `*` SwiftUI's `.italic()` would have produced. - New `fourCC(_:)` helper that maps "SOFT" / "WONK" / "wght" / "opsz" to the UInt32 keys Core Text's `kCTFontVariationAttribute` expects. - Weight signature changed from `Font.Weight` → `CGFloat` (variable fonts take a numeric weight axis). Callers updated: - OnboardingView wordmark + asterisk (`weight: 600`) - TrafficListView "Traffic" header (was SF 13pt → Fraunces 18pt) - SessionsListView "Sessions" header (same) Verification: - swift build: clean - swift test: 120/120 - Inspect Onboarding sheet: asterisk now has the signature petal/ starburst shape from the marquee + reads in pink against the deeper dark bg. Wordmark italic. Splash shows on first launch. Toggle system dark/light → palette flips. Co-Authored-By: Claude Opus 4.7 --- .../ReverseAPI/App/ReverseAPIApp.swift | 92 +++++---- macos/Sources/ReverseAPI/UI/ContentView.swift | 1 - macos/Sources/ReverseAPI/UI/Fonts.swift | 74 ++++++-- .../ReverseAPI/UI/OnboardingView.swift | 4 +- .../ReverseAPI/UI/SessionsListView.swift | 2 +- macos/Sources/ReverseAPI/UI/SplashView.swift | 71 +++++++ macos/Sources/ReverseAPI/UI/Theme.swift | 177 +++++++++++++----- .../ReverseAPI/UI/TrafficListView.swift | 2 +- 8 files changed, 316 insertions(+), 107 deletions(-) create mode 100644 macos/Sources/ReverseAPI/UI/SplashView.swift diff --git a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift index 8cf20e3..192688b 100644 --- a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift +++ b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift @@ -5,41 +5,26 @@ import SwiftUI struct ReverseAPIApp: App { @NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate @State private var session = AppSession.live() + /// Splash gate — visible for ~1.6s on launch so the wordmark gets a + /// brand moment instead of the window flashing through an empty + /// frame. Flips to false after the timer fires. + @State private var isShowingSplash = true var body: some Scene { Window("rae", id: "main") { - switch session { - case .ready(let state): - ContentView() - .environment(state) - .onAppear { - AppLifecycle.shared.state = state - } - .onDisappear { - Task { await state.shutdownForWindowClose() } - } - .background(WindowAccessor { window in - window.title = "" - window.titleVisibility = .hidden - window.titlebarAppearsTransparent = true - window.isOpaque = true - window.backgroundColor = NSColor(Theme.appBackground) - }) - .frame( - // Bumped so the traffic card can always fit - // table+inspector side by side (its inner HSplitView - // needs ~700pt) without compressing past its - // rounded border into a glitchy state. Old 980pt - // window minimum was below that threshold. - minWidth: 1100, - maxWidth: .infinity, - minHeight: 640, - maxHeight: .infinity, - alignment: .topLeading - ) - case .failed(let error): - BootFailureView(error: error) - .frame(minWidth: 500, minHeight: 300) + ZStack { + mainContent + .opacity(isShowingSplash ? 0 : 1) + if isShowingSplash { + SplashView() + .transition(.opacity) + } + } + .task { + try? await Task.sleep(for: .milliseconds(1600)) + withAnimation(.easeOut(duration: 0.45)) { + isShowingSplash = false + } } } .windowStyle(.titleBar) @@ -48,6 +33,45 @@ struct ReverseAPIApp: App { CommandGroup(replacing: .newItem) {} } } + + @ViewBuilder + private var mainContent: some View { + switch session { + case .ready(let state): + ContentView() + .environment(state) + .onAppear { + AppLifecycle.shared.state = state + } + .onDisappear { + Task { await state.shutdownForWindowClose() } + } + .background(WindowAccessor { window in + window.title = "" + window.titleVisibility = .hidden + window.titlebarAppearsTransparent = true + window.isOpaque = true + // Dynamic NSColor under the hood — flips automatically + // when the system appearance changes. + window.backgroundColor = NSColor(Theme.appBackground) + }) + .frame( + // Bumped so the traffic card can always fit + // table+inspector side by side (its inner HSplitView + // needs ~700pt) without compressing past its + // rounded border into a glitchy state. Old 980pt + // window minimum was below that threshold. + minWidth: 1100, + maxWidth: .infinity, + minHeight: 640, + maxHeight: .infinity, + alignment: .topLeading + ) + case .failed(let error): + BootFailureView(error: error) + .frame(minWidth: 500, minHeight: 300) + } + } } @MainActor @@ -83,7 +107,9 @@ final class AppDelegate: NSObject, NSApplicationDelegate { // launched from a real .app bundle. NSApp.setActivationPolicy(.regular) NSApp.activate(ignoringOtherApps: true) - NSApp.appearance = NSAppearance(named: .darkAqua) + // No longer force `.darkAqua` — the Theme tokens are dynamic NSColors + // and ContentView no longer pins `.preferredColorScheme(.dark)`, + // so light/dark now follows the system setting. installSignalHandlers() } diff --git a/macos/Sources/ReverseAPI/UI/ContentView.swift b/macos/Sources/ReverseAPI/UI/ContentView.swift index 09e1c7c..d9cf816 100644 --- a/macos/Sources/ReverseAPI/UI/ContentView.swift +++ b/macos/Sources/ReverseAPI/UI/ContentView.swift @@ -115,7 +115,6 @@ struct ContentView: View { } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) .background(Theme.appBackground) - .preferredColorScheme(.dark) .toolbar { toolbarContent } .task { await state.recoverStaleSystemProxyOnLaunch() diff --git a/macos/Sources/ReverseAPI/UI/Fonts.swift b/macos/Sources/ReverseAPI/UI/Fonts.swift index 7508574..0bd445d 100644 --- a/macos/Sources/ReverseAPI/UI/Fonts.swift +++ b/macos/Sources/ReverseAPI/UI/Fonts.swift @@ -1,30 +1,31 @@ import SwiftUI +import AppKit import CoreText import Foundation /// Bundled brand fonts — currently just Fraunces (italic variable) for the -/// `*` brand asterisk and the "rae" wordmark. +/// `*` brand asterisk + "rae" wordmark + section headlines. /// -/// Body text + monospaced labels stay on SF Pro / SF Mono — the desktop -/// platform already renders those natively, and shipping Inter + -/// JetBrains Mono for marginal visual gain would add ~2 MB to the .app -/// bundle for little payoff. +/// Body text + monospaced labels stay on SF Pro / SF Mono — shipping +/// Inter + JetBrains Mono for marginal visual gain would add ~2 MB to +/// the .app for little payoff on macOS where SF reads native. enum BrandFont { /// Register the bundled font files with Core Text so SwiftUI's - /// `.font(.custom("Fraunces", size: ...))` can find them. Idempotent: - /// the OS coalesces duplicate registrations within the same process. + /// `.font(.custom("Fraunces", size: ...))` and the `NSFont`-based + /// helpers below can find them. Idempotent — Core Text coalesces + /// duplicate process-scope registrations. /// /// Call once at app launch (`AppDelegate.applicationDidFinishLaunching`) - /// — before the first window appears so the wordmark renders correctly - /// on first paint. + /// before any window appears, so the wordmark renders correctly on + /// first paint. static func bootstrap() { let fontFiles = ["Fraunces-Italic-VariableFont"] for name in fontFiles { // SwiftPM's resource bundle uses `Resources/` (not the // macOS-standard `Contents/Resources/`) when populated via // `.copy("Resources")`. Try the explicit subdirectory first, - // then fall back to a root lookup so a future Package.swift - // tweak that puts the file at the bundle root keeps working. + // fall back to a root lookup so a future Package.swift tweak + // that puts the file at the bundle root keeps working. let url = Bundle.module.url(forResource: name, withExtension: "ttf", subdirectory: "Resources") ?? Bundle.module.url(forResource: name, withExtension: "ttf") guard let url else { @@ -41,13 +42,50 @@ enum BrandFont { } extension Font { - /// Fraunces Italic, our display serif. Use sparingly — wordmark, brand - /// asterisk, occasional headline. Fraunces only ships here in italic; - /// SwiftUI handles weight / size variation through the variable font - /// axes. + /// Fraunces Italic, our display serif. Use sparingly — wordmark, + /// brand asterisk, section headlines ("Traffic", "Sessions"). /// - /// Falls back to SF Pro Italic if registration failed at boot. - static func fraunces(size: CGFloat, weight: Font.Weight = .regular) -> Font { - .custom("Fraunces", size: size).weight(weight).italic() + /// `soft` and `wonk` control the variable-font axes that give the + /// brand asterisk its characteristic rounded-petal shape: + /// - `soft = 100` rounds the terminals + /// - `wonk = true` enables the alternate, more playful glyph forms + /// - `opsz = 144` is the website's chosen optical size + /// + /// Defaults match the website's marquee usage. Falls back to SF + /// Italic if the bundled font failed to register. + static func fraunces( + size: CGFloat, + weight: CGFloat = 600, + soft: CGFloat = 100, + wonk: Bool = true, + opsz: CGFloat = 144 + ) -> Font { + let variations: [UInt32: Any] = [ + fourCC("wght"): weight, + fourCC("SOFT"): soft, + fourCC("WONK"): wonk ? 1 : 0, + fourCC("opsz"): opsz, + ] + // Build a descriptor with the family + italic trait + variable + // axes, then materialise it as NSFont so SwiftUI can wrap it. + let descriptor = NSFontDescriptor(fontAttributes: [ + .family: "Fraunces", + NSFontDescriptor.AttributeName(rawValue: kCTFontVariationAttribute as String): variations, + ]).withSymbolicTraits(.italic) + if let nsFont = NSFont(descriptor: descriptor, size: size) { + return Font(nsFont) + } + return .system(size: size, weight: .semibold).italic() + } +} + +/// Four-character code → UInt32 in the byte order Core Text expects for +/// `kCTFontVariationAxisIdentifierKey`. "wght" → 0x77676874, etc. +@inlinable +func fourCC(_ tag: String) -> UInt32 { + var result: UInt32 = 0 + for scalar in tag.unicodeScalars { + result = (result << 8) | (scalar.value & 0xff) } + return result } diff --git a/macos/Sources/ReverseAPI/UI/OnboardingView.swift b/macos/Sources/ReverseAPI/UI/OnboardingView.swift index 5d61848..c685cab 100644 --- a/macos/Sources/ReverseAPI/UI/OnboardingView.swift +++ b/macos/Sources/ReverseAPI/UI/OnboardingView.swift @@ -36,11 +36,11 @@ struct OnboardingView: View { // website header / app icon / hero. Drawn as a glyph (not an // SF Symbol) so the Fraunces shape carries through. Text("*") - .font(.fraunces(size: 38, weight: .semibold)) + .font(.fraunces(size: 38, weight: 600)) .foregroundStyle(Theme.brandPink) .baselineOffset(-4) Text("rae") - .font(.fraunces(size: 30, weight: .semibold)) + .font(.fraunces(size: 30, weight: 600)) .foregroundStyle(Theme.textPrimary) } Text("Three quick steps to start intercepting and reverse-engineering API traffic on this Mac.") diff --git a/macos/Sources/ReverseAPI/UI/SessionsListView.swift b/macos/Sources/ReverseAPI/UI/SessionsListView.swift index f2d16d1..447de07 100644 --- a/macos/Sources/ReverseAPI/UI/SessionsListView.swift +++ b/macos/Sources/ReverseAPI/UI/SessionsListView.swift @@ -20,7 +20,7 @@ struct SessionsListView: View { private var header: some View { HStack(spacing: 10) { Text("Sessions") - .font(.system(size: 13, weight: .semibold)) + .font(.fraunces(size: 18, weight: 600)) .foregroundStyle(Theme.textPrimary) Spacer() Button { diff --git a/macos/Sources/ReverseAPI/UI/SplashView.swift b/macos/Sources/ReverseAPI/UI/SplashView.swift new file mode 100644 index 0000000..9e03cfa --- /dev/null +++ b/macos/Sources/ReverseAPI/UI/SplashView.swift @@ -0,0 +1,71 @@ +import SwiftUI + +/// First-frame launch surface — shows the brand wordmark with a small +/// asterisk animation while the rest of the app finishes wiring up +/// (CA load, DB open, ProxyEngine init, font registration). +/// +/// Visible for ~1.6s, then fades into the main `ContentView`. Plays the +/// same role as iOS's LaunchScreen.storyboard — a brand moment that +/// hides the brief "blank window" frame. +struct SplashView: View { + /// Scale-in pop of the asterisk on first appear. + @State private var asteriskScale: CGFloat = 0.55 + /// Continuous gentle wobble — the visible "movement" the user asked for. + @State private var asteriskRotation: Double = -10 + /// Wordmark fades in slightly after the asterisk lands. + @State private var wordmarkOpacity: Double = 0 + /// Wordmark slides in from the asterisk's right. + @State private var wordmarkOffset: CGFloat = -18 + + var body: some View { + ZStack { + Theme.appBackground.ignoresSafeArea() + + VStack(spacing: 14) { + Spacer() + + HStack(alignment: .firstTextBaseline, spacing: 6) { + Text("*") + .font(.fraunces(size: 96, weight: 600)) + .foregroundStyle(Theme.brandPink) + .baselineOffset(-10) + .scaleEffect(asteriskScale, anchor: .center) + .rotationEffect(.degrees(asteriskRotation)) + Text("rae") + .font(.fraunces(size: 76, weight: 600)) + .foregroundStyle(Theme.textPrimary) + .opacity(wordmarkOpacity) + .offset(x: wordmarkOffset) + } + + Spacer() + + Text("warming up") + .font(.system(size: 11, weight: .medium, design: .monospaced)) + .foregroundStyle(Theme.textTertiary) + .tracking(2.0) + .textCase(.uppercase) + .padding(.bottom, 40) + } + } + .onAppear { + // Pop the asterisk in with a small overshoot, then start the + // continuous wobble. + withAnimation(.spring(response: 0.55, dampingFraction: 0.55)) { + asteriskScale = 1.0 + asteriskRotation = 0 + } + withAnimation(.easeOut(duration: 0.45).delay(0.25)) { + wordmarkOpacity = 1 + wordmarkOffset = 0 + } + // Continuous gentle wobble — never settles fully, so the eye + // always reads it as alive. + DispatchQueue.main.asyncAfter(deadline: .now() + 0.7) { + withAnimation(.easeInOut(duration: 1.6).repeatForever(autoreverses: true)) { + asteriskRotation = 6 + } + } + } + } +} diff --git a/macos/Sources/ReverseAPI/UI/Theme.swift b/macos/Sources/ReverseAPI/UI/Theme.swift index 9f3c192..c76614d 100644 --- a/macos/Sources/ReverseAPI/UI/Theme.swift +++ b/macos/Sources/ReverseAPI/UI/Theme.swift @@ -1,85 +1,160 @@ import SwiftUI +import AppKit /// Visual tokens for the rae macOS app. /// -/// Mirrors the dark-mode palette of `reverse-api-website` (see -/// `SYSTEM_DESIGN.md` at the repo root) so the desktop client and the -/// landing/docs site read as the same product. The app is locked to dark -/// mode via `.preferredColorScheme(.dark)`, so we only define the dark -/// variants here. +/// Mirrors `reverse-api-website`'s design system (see `SYSTEM_DESIGN.md` +/// at the repo root) — warm cream/ink palette, pink magenta brand +/// accent. Every token now resolves dynamically against the system +/// appearance, so the app honours macOS's dark/light setting instead of +/// being locked to dark. /// -/// Hex equivalents are kept in the trailing comments — they're the -/// authoritative reference; the RGB literals are just SwiftUI plumbing. +/// Hex equivalents trail each declaration in comments — they're the +/// authoritative reference. RGB literals are SwiftUI plumbing. enum Theme { - // MARK: Backgrounds — warm cream-dark stack + // MARK: Backgrounds — warm cream / cream-dark stack - /// Root canvas. `--color-cream` dark variant. - static let appBackground = Color(red: 0.078, green: 0.067, blue: 0.055) // #14110e - /// Cards, panels. `--color-cream-soft` dark variant. - static let surface = Color(red: 0.110, green: 0.094, blue: 0.078) // #1c1814 + /// Root canvas. `--color-cream` light / darker than spec in dark + /// (user feedback: original #14110e read too "milky", deepened to + /// #0a0806). + static let appBackground = Color.dynamic( + light: hex(0xfff7f0), + dark: hex(0x0a0806) + ) + /// Cards, panels. `--color-cream-soft`. + static let surface = Color.dynamic( + light: hex(0xfef8ee), + dark: hex(0x14110e) + ) /// Hover backgrounds, badges, raised one tier above `surface`. - static let elevated = Color(red: 0.149, green: 0.125, blue: 0.098) // #262019 - /// Input fields. `--color-washed` dark variant. - static let input = Color(red: 0.102, green: 0.086, blue: 0.071) // #1a1612 - /// Scrim behind modal palettes. + static let elevated = Color.dynamic( + light: hex(0xf5f2ee), + dark: hex(0x1c1814) + ) + /// Input fields. `--color-washed`. + static let input = Color.dynamic( + light: hex(0xf5f2ee), + dark: hex(0x14110e) + ) + /// Scrim behind modal palettes — slightly lighter than pitch black + /// so light-mode users still see the underlying surface bleed + /// through. static let overlay = Color.black.opacity(0.55) - // MARK: Borders & dividers — cream at very low alpha + // MARK: Borders & dividers — ink/cream at very low alpha - /// Default 1pt strokes. Matches `--color-fd-border` dark = `#fff7f014`. - static let border = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.08) - /// Stronger dividers when a structural separator is needed. - static let borderStrong = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.14) + /// Default 1pt strokes. `--color-fd-border` = ink @ 10% light / cream @ 8% dark. + static let border = Color.dynamic( + light: Color.black.opacity(0.10), + dark: Color.white.opacity(0.08) + ) + /// Stronger structural separators. + static let borderStrong = Color.dynamic( + light: Color.black.opacity(0.18), + dark: Color.white.opacity(0.14) + ) - // MARK: Text — cream ink on dark cream + // MARK: Text — ink / cream - /// Primary text. `--color-ink` dark = cream. - static let textPrimary = Color(red: 1.0, green: 0.969, blue: 0.941) // #fff7f0 - /// Secondary text. `--color-ink-soft` dark ≈ cream @ 73%. - static let textSecondary = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.73) + /// Primary text. + static let textPrimary = Color.dynamic( + light: hex(0x1f1f1f), + dark: hex(0xfff7f0) + ) + /// Secondary text. `--color-ink-soft`. + static let textSecondary = Color.dynamic( + light: hex(0x1f1f1f).opacity(0.78), + dark: hex(0xfff7f0).opacity(0.73) + ) /// Tertiary text (timestamps, labels, captions). - static let textTertiary = Color(red: 1.0, green: 0.969, blue: 0.941).opacity(0.55) + static let textTertiary = Color.dynamic( + light: hex(0x1f1f1f).opacity(0.55), + dark: hex(0xfff7f0).opacity(0.55) + ) // MARK: Semantic accents - /// Primary brand accent. Pink magenta. `--color-fd-primary` dark. - /// Drives focus rings, primary CTAs, status dots, agent send button. - static let accent = Color(red: 1.0, green: 0.239, blue: 0.545) // #ff3d8b - /// Alias of `accent` for sites that want to read as "brand mark" rather - /// than generic "primary action" — e.g. the `*` asterisk + "rae" logo. + /// Primary brand accent. Pink magenta. `--color-fd-primary`. + /// Drives focus rings, primary CTAs, status dots, brand asterisk. + static let accent = Color.dynamic( + light: hex(0xe50d75), + dark: hex(0xff3d8b) + ) + /// Alias of `accent` for sites that read as "brand mark" (the + /// `*` asterisk + "rae" wordmark) rather than generic CTA. static let brandPink = accent - /// Completed / success states. `--color-mint` dark, softened so it - /// sits next to cream text without shouting. - static let success = Color(red: 0.643, green: 0.831, blue: 0.722) // #a4d4b8 + /// Completed / success states. Deeper mint on light bg for + /// readability, soft mint on dark bg so it doesn't shout. + static let success = Color.dynamic( + light: hex(0x2d8059), + dark: hex(0xa4d4b8) + ) /// Alias of `success` for explicit "completion" semantics. static let mint = success - /// Warning / attention. Warm orange, derived from `--color-orange` dark. - static let warn = Color(red: 0.831, green: 0.580, blue: 0.431) // #d4946e + /// Warning / attention. Warm orange. + static let warn = Color.dynamic( + light: hex(0xb06b3e), + dark: hex(0xd4946e) + ) - /// Errors / destructive actions. Kept from the previous palette — works - /// against both cold and warm backgrounds without re-tuning. - static let danger = Color(red: 0.949, green: 0.357, blue: 0.357) // #F25B5B + /// Errors / destructive actions. Single value — works on both + /// palettes with adequate contrast. + static let danger = hex(0xe04848) - // MARK: HTTP method palette — intentionally vivid + // MARK: HTTP method palette - /// Kept saturated for semantic discrimination in the dense traffic - /// table. Brand cohesion takes a back seat to "spot the method in 50ms" - /// for this 5-color set. - static let methodGet = Color(red: 0.392, green: 0.643, blue: 1.000) // #64A4FF - static let methodPost = Color(red: 0.388, green: 0.851, blue: 0.541) // #63D98A - static let methodPut = Color(red: 0.953, green: 0.722, blue: 0.282) // #F3B848 - static let methodDelete = Color(red: 0.949, green: 0.439, blue: 0.439) // #F27070 - static let methodConnect = Color(red: 0.682, green: 0.482, blue: 0.965) // #AE7BF6 + /// HTTP method colors — desaturated slightly vs the original dark-only + /// palette so they read on the cream light background without + /// vibrating, while keeping enough difference between them for the + /// dense traffic table. + static let methodGet = Color.dynamic(light: hex(0x1f6fd1), dark: hex(0x64a4ff)) + static let methodPost = Color.dynamic(light: hex(0x1f8757), dark: hex(0x63d98a)) + static let methodPut = Color.dynamic(light: hex(0xb88128), dark: hex(0xf3b848)) + static let methodDelete = Color.dynamic(light: hex(0xc43d3d), dark: hex(0xf27070)) + static let methodConnect = Color.dynamic(light: hex(0x6e3fbd), dark: hex(0xae7bf6)) // MARK: Shape radii - /// Outer container cards (the 3-column shell). Slightly tighter than - /// the web's 1.5rem to suit desktop information density. + /// Outer container cards (the 3-column shell). static let radiusCard: CGFloat = 14 /// Inner sub-cards inside a Card. static let radiusInner: CGFloat = 10 /// Inputs + small pill buttons. static let radiusInput: CGFloat = 8 } + +// MARK: - Color helpers + +extension Color { + /// Build a SwiftUI Color that resolves to `light` under any aqua-family + /// appearance and `dark` under any dark-aqua-family appearance. Backed + /// by AppKit's dynamic NSColor so it also works when handed to APIs + /// outside SwiftUI (e.g. `NSWindow.backgroundColor`). + static func dynamic(light: Color, dark: Color) -> Color { + Color(nsColor: NSColor(name: nil, dynamicProvider: { appearance in + switch appearance.name { + case .darkAqua, + .vibrantDark, + .accessibilityHighContrastDarkAqua, + .accessibilityHighContrastVibrantDark: + return NSColor(dark) + default: + return NSColor(light) + } + })) + } +} + +/// Hex literal helper — `hex(0xff3d8b)` reads more naturally than the +/// RGB-as-fractions form. Alpha is always 1.0; use `.opacity(...)` for +/// translucent variants. +@inlinable +func hex(_ value: UInt32) -> Color { + Color( + red: Double((value >> 16) & 0xff) / 255.0, + green: Double((value >> 8) & 0xff) / 255.0, + blue: Double(value & 0xff) / 255.0 + ) +} diff --git a/macos/Sources/ReverseAPI/UI/TrafficListView.swift b/macos/Sources/ReverseAPI/UI/TrafficListView.swift index ff1dfad..29f899f 100644 --- a/macos/Sources/ReverseAPI/UI/TrafficListView.swift +++ b/macos/Sources/ReverseAPI/UI/TrafficListView.swift @@ -44,7 +44,7 @@ private struct TrafficListHeader: View { HStack(spacing: 10) { SelectAllCheckbox(visibleIDs: visibleIDs) Text("Traffic") - .font(.system(size: 13, weight: .semibold)) + .font(.fraunces(size: 18, weight: 600)) .foregroundStyle(Theme.textPrimary) Text("\(visibleCount)") .font(.caption.monospacedDigit()) From 43c355d6f2ab286c9aceb7c2db1a70554526aabc Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 17:10:54 +0200 Subject: [PATCH 08/10] fix(macos): register Fraunces in App.init + unset proxy env vars before uv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two follow-up fixes from the first re-theme cut: 1. **Font registration was too late.** Calling BrandFont.bootstrap() in `AppDelegate.applicationDidFinishLaunching` runs *after* the run loop starts — but `App.init() → body → SplashView` materialise their views before that. The first frame resolved `Font.fraunces(...)` while Fraunces wasn't yet registered, picking up SF Italic, and only flipped to Fraunces on the next layout pass. That's the "morph mid-animation" the user saw on the splash + onboarding wordmark. Move the bootstrap call into `ReverseAPIApp.init()` so the font is registered before *any* View body is computed. Leaves a pointer comment in AppDelegate so future readers know where it moved. 2. **Build failed when HTTPS_PROXY pointed at a dead rae port.** uv reads HTTP_PROXY / HTTPS_PROXY / ALL_PROXY (and lowercase variants) from the environment. If the shell had those set pointing at 127.0.0.1: from a prior session, `uv pip install rae-agent` errored with "Connection refused (os error 61)" the moment rae itself wasn't running on that port. Routing the build through a local MITM never made sense anyway — drop every proxy variable just before the uv venv + uv pip install calls in scripts/build-app.sh. Co-Authored-By: Claude Opus 4.7 --- .../Sources/ReverseAPI/App/ReverseAPIApp.swift | 18 +++++++++++++----- macos/scripts/build-app.sh | 9 +++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift index 192688b..db0478f 100644 --- a/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift +++ b/macos/Sources/ReverseAPI/App/ReverseAPIApp.swift @@ -10,6 +10,17 @@ struct ReverseAPIApp: App { /// frame. Flips to false after the timer fires. @State private var isShowingSplash = true + init() { + // Register the bundled Fraunces font *here*, not in + // applicationDidFinishLaunching — `App.init()` runs before any + // View body is computed, while the delegate's launch callback + // fires after the run loop starts. Doing it late means the + // SplashView's first paint resolves `Font.fraunces(...)` to a + // fallback (SF Italic) and only flips to Fraunces on a later + // layout pass, which reads as the wordmark "morphing" mid-anim. + BrandFont.bootstrap() + } + var body: some Scene { Window("rae", id: "main") { ZStack { @@ -91,11 +102,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate { private var signalSources: [DispatchSourceSignal] = [] func applicationDidFinishLaunching(_ notification: Notification) { - // Register the bundled Fraunces italic font BEFORE the first window - // appears — otherwise the onboarding sheet's `*` brand asterisk + - // "rae" wordmark first-paint in SF Italic and only flip to Fraunces - // on a later layout pass, which reads as a layout glitch. - BrandFont.bootstrap() + // Font bootstrap happens in `ReverseAPIApp.init()` so it lands + // before any view body is computed — see the comment there. // `swift run` launches a bare SwiftPM executable with no .app bundle // and no Info.plist, so macOS doesn't treat it as a regular GUI app — diff --git a/macos/scripts/build-app.sh b/macos/scripts/build-app.sh index 9566ecc..45821e2 100755 --- a/macos/scripts/build-app.sh +++ b/macos/scripts/build-app.sh @@ -99,6 +99,15 @@ fi # `uv venv --relocatable` rewrites shebangs + activator so the venv can be # moved to its final path. `uv pip install --python ` targets the # embedded interpreter so deps land inside the bundled venv's site-packages. +# +# Drop any inherited HTTP proxy env vars before `uv` reaches out to PyPI. +# uv reads HTTP_PROXY / HTTPS_PROXY / ALL_PROXY (case both) from the +# environment — if rae was previously set as the system proxy and the +# shell still has them exported pointing at 127.0.0.1:, fetches +# fail with "Connection refused (os error 61)" the moment rae isn't +# running. PyPI itself is reachable directly; routing the build through +# a local MITM never made sense anyway. +unset HTTP_PROXY HTTPS_PROXY ALL_PROXY http_proxy https_proxy all_proxy NO_PROXY no_proxy # --------------------------------------------------------------------------- echo "→ creating embedded Python $PYTHON_VERSION runtime" uv venv --relocatable --python "$PYTHON_VERSION" "$AGENT_RUNTIME" From eacfab8010c663ba32c419099cdba2d1a0ed0d12 Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 17:16:39 +0200 Subject: [PATCH 09/10] style(macos): make composer distinct from panel + pink accent in action bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two targeted fixes from live feedback. **Composer input lost on the panel.** Theme.input dark was #14110e — identical to Theme.surface dark, so the agent composer's rounded input box visually merged with the panel card it sat on. Bump Theme.input so it's clearly distinct in both modes: - light: pure white (lifted from #fef8ee cream-soft) - dark: #211c14 (lifted from #14110e cream-dark) To keep the small status chips in the action bar from getting too loud now that `input` is brighter, move CaptureStateChip + CATrustChip backgrounds from Theme.input → Theme.elevated. Same neutral "subtle pill" feel, no longer competing with the composer. **Action bar lacked any brand pull.** The user asked for a touch of the accent color so the toolbar reads as part of the brand rather than pure chrome: - CaptureStateChip recording dot: was `Theme.success` (mint), now `Theme.brandPink` with a continuous gentle pulse (1.4× scale + 55% opacity + soft pink shadow, easeInOut 1.1s repeatForever) while `isCapturing`. The recording state is the most "action- driven" indicator in the bar, so the brand color lands here. Idle stays neutral. `isWorking` shifts from `.yellow` to `Theme.warn` for consistency with the rest of the palette. - SearchButton: hover state was a neutral pill darkening. Now the magnifying glass icon flips to `Theme.brandPink`, the background becomes `brandPink @ 12%`, and a thin `brandPink @ 35%` outline appears. Search is the only outbound action in the action bar — pulling the eye to it on hover earns its keep. Markdown UI polish is queued separately (user asked us to track it for a later session). Co-Authored-By: Claude Opus 4.7 --- macos/Sources/ReverseAPI/UI/ContentView.swift | 39 ++++++++++++++++--- macos/Sources/ReverseAPI/UI/Theme.swift | 9 +++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/macos/Sources/ReverseAPI/UI/ContentView.swift b/macos/Sources/ReverseAPI/UI/ContentView.swift index d9cf816..b4e7c55 100644 --- a/macos/Sources/ReverseAPI/UI/ContentView.swift +++ b/macos/Sources/ReverseAPI/UI/ContentView.swift @@ -384,12 +384,18 @@ private struct ErrorBanner: View { private struct CaptureStateChip: View { @Environment(AppState.self) private var state + /// Drives the soft pulse animation on the recording dot — bound to a + /// boolean toggle that flips every 1.1s via `repeatForever`. + @State private var pulse = false var body: some View { HStack(spacing: 6) { Circle() .fill(dotColor) .frame(width: 6, height: 6) + .scaleEffect(state.isCapturing && pulse ? 1.4 : 1.0) + .opacity(state.isCapturing && pulse ? 0.55 : 1.0) + .shadow(color: state.isCapturing ? Theme.brandPink.opacity(0.6) : .clear, radius: 4) Text(label) .font(.caption) .foregroundStyle(Theme.textSecondary) @@ -397,13 +403,21 @@ private struct CaptureStateChip: View { } .padding(.horizontal, 9) .padding(.vertical, 4) - .background(Theme.input, in: Capsule()) + .background(Theme.elevated, in: Capsule()) .help("Capture state · 127.0.0.1:\(state.port)") + .onAppear { + withAnimation(.easeInOut(duration: 1.1).repeatForever(autoreverses: true)) { + pulse = true + } + } } + /// Recording uses brand pink so the live state pulls the eye — this + /// is the most action-driven indicator in the toolbar. Idle stays + /// neutral so a quiet app doesn't shout. private var dotColor: Color { - if state.isWorking { return .yellow } - if state.isCapturing { return Theme.success } + if state.isWorking { return Theme.warn } + if state.isCapturing { return Theme.brandPink } return Theme.textTertiary } @@ -428,7 +442,7 @@ private struct CATrustChip: View { } .padding(.horizontal, 9) .padding(.vertical, 4) - .background(Theme.input, in: Capsule()) + .background(Theme.elevated, in: Capsule()) .help(state.caTrustInstalled ? "Root CA installed — HTTPS can be inspected" : "Root CA not trusted — HTTPS will fail") @@ -445,10 +459,23 @@ private struct SearchButton: View { Button(action: action) { Image(systemName: "magnifyingglass") .font(.system(size: 12, weight: .medium)) - .foregroundStyle(Theme.textSecondary) + // Brand pink on hover so the eye picks up the only + // outbound action in the bar; subtle when at rest. + .foregroundStyle(isHovering ? Theme.brandPink : Theme.textSecondary) .padding(.horizontal, 10) .padding(.vertical, 6) - .background(isHovering ? PillStyle.activeBackground : PillStyle.hoverBackground, in: Capsule()) + .background( + isHovering + ? Theme.brandPink.opacity(0.12) + : Theme.elevated, + in: Capsule() + ) + .overlay( + Capsule().stroke( + isHovering ? Theme.brandPink.opacity(0.35) : .clear, + lineWidth: 1 + ) + ) } .buttonStyle(.plain) .onHover { isHovering = $0 } diff --git a/macos/Sources/ReverseAPI/UI/Theme.swift b/macos/Sources/ReverseAPI/UI/Theme.swift index c76614d..145babe 100644 --- a/macos/Sources/ReverseAPI/UI/Theme.swift +++ b/macos/Sources/ReverseAPI/UI/Theme.swift @@ -31,10 +31,13 @@ enum Theme { light: hex(0xf5f2ee), dark: hex(0x1c1814) ) - /// Input fields. `--color-washed`. + /// Input fields. Intentionally distinct from `surface` so a composer / + /// search field sits as its own focused element rather than blending + /// into the panel. Lifted (lighter than surface) in both modes: + /// pure white on light cream, warm brown-bright on dark cream-dark. static let input = Color.dynamic( - light: hex(0xf5f2ee), - dark: hex(0x14110e) + light: hex(0xffffff), + dark: hex(0x211c14) ) /// Scrim behind modal palettes — slightly lighter than pitch black /// so light-mode users still see the underlying surface bleed From 0d92412ba0cf375b2ef64506fea85047db34e82e Mon Sep 17 00:00:00 2001 From: kalil0321 Date: Thu, 21 May 2026 17:41:39 +0200 Subject: [PATCH 10/10] style(macos): brighter composer input + brand-pink send button + splash preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the earlier composer + accent feedback. The previous +13% lift on Theme.input (#211c14) was technically distinct from surface but too subtle to read at a glance; and the send button still rendered cream-on-cream, so the user never saw the brand pink anywhere with the agent panel idle. - Theme.input dark: #211c14 → #2a2418 (~25% lift over surface, clearly its own surface tier now). - Agent composer outer container gains a 1pt `Theme.border` overlay on the rounded rect — the input now reads as a focused field even in still frames, on either color scheme. - Send button background was `Theme.textPrimary` (cream/white) when enabled. Now `Theme.brandPink` — the single highest-frequency action in the agent panel earns the brand color. Icon flips to white for contrast (was Theme.appBackground = dark, which read fine on cream but loses contrast on pink). Disabled state stays on Theme.elevated. SplashView gains an `init()` that also calls `BrandFont.bootstrap()` + a `#Preview` block at the file end. SwiftUI Previews bypass App.init() (where bootstrap normally runs) so without this the wordmark would fall back to SF Italic inside Xcode's canvas. The Core Text registration is idempotent so the double-call is harmless at runtime. Co-Authored-By: Claude Opus 4.7 --- macos/Sources/ReverseAPI/UI/AgentPanel.swift | 17 +++++++++++++++-- macos/Sources/ReverseAPI/UI/SplashView.swift | 15 +++++++++++++++ macos/Sources/ReverseAPI/UI/Theme.swift | 8 +++++--- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/macos/Sources/ReverseAPI/UI/AgentPanel.swift b/macos/Sources/ReverseAPI/UI/AgentPanel.swift index c684391..b7f38d7 100644 --- a/macos/Sources/ReverseAPI/UI/AgentPanel.swift +++ b/macos/Sources/ReverseAPI/UI/AgentPanel.swift @@ -555,10 +555,16 @@ private struct AgentComposer: View { Button(action: { if canSend { onSend() } }) { Image(systemName: "arrow.up") .font(.system(size: 12, weight: .bold)) - .foregroundStyle(canSend ? Theme.appBackground : Theme.textTertiary) + // Cream/dark icon on pink — high contrast, brand-led. + .foregroundStyle(canSend ? Color.white : Theme.textTertiary) .frame(width: 28, height: 28) .background( - canSend ? Theme.textPrimary : Theme.elevated, + // Brand pink while the user has typed something to + // send — the primary action of the entire panel + // earns the brand color. Falls back to neutral + // `Theme.elevated` when disabled so we don't bait + // a click on an empty composer. + canSend ? Theme.brandPink : Theme.elevated, in: Circle() ) } @@ -568,6 +574,13 @@ private struct AgentComposer: View { } .padding(10) .background(Theme.input, in: RoundedRectangle(cornerRadius: 12)) + .overlay( + // 1pt outline so the composer reads as a focused input even + // before the background lift kicks in — works in both + // appearances since `Theme.border` is dynamic. + RoundedRectangle(cornerRadius: 12) + .stroke(Theme.border, lineWidth: 1) + ) .padding(12) .background(Theme.surface) } diff --git a/macos/Sources/ReverseAPI/UI/SplashView.swift b/macos/Sources/ReverseAPI/UI/SplashView.swift index 9e03cfa..d7b8920 100644 --- a/macos/Sources/ReverseAPI/UI/SplashView.swift +++ b/macos/Sources/ReverseAPI/UI/SplashView.swift @@ -17,6 +17,15 @@ struct SplashView: View { /// Wordmark slides in from the asterisk's right. @State private var wordmarkOffset: CGFloat = -18 + init() { + // SwiftUI Previews bypass App.init() where BrandFont.bootstrap() + // normally runs, so the wordmark would fall back to SF Italic in + // Xcode's canvas. Register here too — registration is idempotent + // at the Core Text level and the runtime cost is one dictionary + // lookup on subsequent calls. + BrandFont.bootstrap() + } + var body: some View { ZStack { Theme.appBackground.ignoresSafeArea() @@ -69,3 +78,9 @@ struct SplashView: View { } } } + +#Preview("Splash") { + SplashView() + .frame(width: 720, height: 480) +} + diff --git a/macos/Sources/ReverseAPI/UI/Theme.swift b/macos/Sources/ReverseAPI/UI/Theme.swift index 145babe..931479e 100644 --- a/macos/Sources/ReverseAPI/UI/Theme.swift +++ b/macos/Sources/ReverseAPI/UI/Theme.swift @@ -33,11 +33,13 @@ enum Theme { ) /// Input fields. Intentionally distinct from `surface` so a composer / /// search field sits as its own focused element rather than blending - /// into the panel. Lifted (lighter than surface) in both modes: - /// pure white on light cream, warm brown-bright on dark cream-dark. + /// into the panel. Aggressively lifted in dark (`#2a2418`, ~3 tiers + /// brighter than surface so the contrast is unmistakable) and pure + /// white on light. Pair with a 1pt `Theme.border` outline for extra + /// definition. static let input = Color.dynamic( light: hex(0xffffff), - dark: hex(0x211c14) + dark: hex(0x2a2418) ) /// Scrim behind modal palettes — slightly lighter than pitch black /// so light-mode users still see the underlying surface bleed