From 87aed0ffa0b27bcbf60964937fef5eb72433ddd6 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:14:16 -0300 Subject: [PATCH 01/12] =?UTF-8?q?reduce:=20cmux=20leftovers=20=E2=80=94=20?= =?UTF-8?q?stale=20skills,=20dead=20SwiftPM=20manifest,=20broken=20scripts?= =?UTF-8?q?,=20phantom=20submodule=20refs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - skills/ (cmux, cmux-browser, cmux-markdown, cmux-debug-windows, release): every example invokes the nonexistent `cmux` binary, references Sources/cmuxApp.swift or -scheme cmux (neither exists), and skills/release describes the pre-auto-ship release process with a cmux-macos.dmg asset - Package.swift + Package.resolved: root SwiftPM manifest for a package named cmux building Sources/ as a SwiftTerm executable — not referenced by the Xcode project, CI, or any doc; cannot compile - scripts/rebuild.sh: built via that dead Package.swift, violates the no-bare- xcodebuild/no-untagged-launch policy; removed its CONTRIBUTING.md row - scripts/run-e2e.sh: hardcodes REPO=manaflow-ai/cmux (old upstream) — targets the wrong repository entirely; CLAUDE.md documents the direct gh invocation - scripts/generate_dark_icon.py: requires design/cmux-icon-chevron.png; no design/ directory exists anywhere in the repo - scripts/notify_probe.sh, scripts/probe-pure-prompt-duplication.py: one-off cmux-era debug probes for closed investigations - docs/socket-focus-steal-audit.todo.md: completed todo (every item checked) - .claude/commands/pull.md, sync-branch.md: drop phantom homebrew-cmux submodule (only ghostty and vendor/bonsplit exist in .gitmodules) - daemon/remote/README.md: fix stale cmux binary name in one example --- .claude/commands/pull.md | 2 +- .claude/commands/sync-branch.md | 4 +- CONTRIBUTING.md | 1 - Package.resolved | 23 -- Package.swift | 22 -- daemon/remote/README.md | 2 +- docs/socket-focus-steal-audit.todo.md | 83 ------- scripts/generate_dark_icon.py | 229 ------------------ scripts/notify_probe.sh | 36 --- scripts/probe-pure-prompt-duplication.py | 207 ---------------- scripts/rebuild.sh | 18 -- scripts/run-e2e.sh | 101 -------- skills/cmux-browser/SKILL.md | 141 ----------- skills/cmux-browser/agents/openai.yaml | 4 - .../cmux-browser/references/authentication.md | 122 ---------- skills/cmux-browser/references/commands.md | 108 --------- .../cmux-browser/references/proxy-support.md | 64 ----- .../references/session-management.md | 94 ------- .../cmux-browser/references/snapshot-refs.md | 88 ------- .../references/video-recording.md | 52 ---- .../templates/authenticated-session.sh | 18 -- .../templates/capture-workflow.sh | 13 - .../cmux-browser/templates/form-automation.sh | 12 - skills/cmux-debug-windows/SKILL.md | 51 ---- skills/cmux-debug-windows/agents/openai.yaml | 4 - .../scripts/debug_windows_snapshot.sh | 190 --------------- skills/cmux-markdown/SKILL.md | 125 ---------- skills/cmux-markdown/agents/openai.yaml | 4 - skills/cmux-markdown/references/commands.md | 69 ------ .../cmux-markdown/references/live-reload.md | 53 ---- skills/cmux/SKILL.md | 54 ----- skills/cmux/agents/openai.yaml | 4 - .../cmux/references/handles-and-identify.md | 35 --- skills/cmux/references/panes-surfaces.md | 36 --- .../references/trigger-flash-and-health.md | 23 -- skills/cmux/references/windows-workspaces.md | 31 --- skills/release/SKILL.md | 76 ------ skills/release/agents/openai.yaml | 4 - 38 files changed, 4 insertions(+), 2199 deletions(-) delete mode 100644 Package.resolved delete mode 100644 Package.swift delete mode 100644 docs/socket-focus-steal-audit.todo.md delete mode 100755 scripts/generate_dark_icon.py delete mode 100755 scripts/notify_probe.sh delete mode 100755 scripts/probe-pure-prompt-duplication.py delete mode 100755 scripts/rebuild.sh delete mode 100755 scripts/run-e2e.sh delete mode 100644 skills/cmux-browser/SKILL.md delete mode 100644 skills/cmux-browser/agents/openai.yaml delete mode 100644 skills/cmux-browser/references/authentication.md delete mode 100644 skills/cmux-browser/references/commands.md delete mode 100644 skills/cmux-browser/references/proxy-support.md delete mode 100644 skills/cmux-browser/references/session-management.md delete mode 100644 skills/cmux-browser/references/snapshot-refs.md delete mode 100644 skills/cmux-browser/references/video-recording.md delete mode 100755 skills/cmux-browser/templates/authenticated-session.sh delete mode 100755 skills/cmux-browser/templates/capture-workflow.sh delete mode 100755 skills/cmux-browser/templates/form-automation.sh delete mode 100644 skills/cmux-debug-windows/SKILL.md delete mode 100644 skills/cmux-debug-windows/agents/openai.yaml delete mode 100755 skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh delete mode 100644 skills/cmux-markdown/SKILL.md delete mode 100644 skills/cmux-markdown/agents/openai.yaml delete mode 100644 skills/cmux-markdown/references/commands.md delete mode 100644 skills/cmux-markdown/references/live-reload.md delete mode 100644 skills/cmux/SKILL.md delete mode 100644 skills/cmux/agents/openai.yaml delete mode 100644 skills/cmux/references/handles-and-identify.md delete mode 100644 skills/cmux/references/panes-surfaces.md delete mode 100644 skills/cmux/references/trigger-flash-and-health.md delete mode 100644 skills/cmux/references/windows-workspaces.md delete mode 100644 skills/release/SKILL.md delete mode 100644 skills/release/agents/openai.yaml diff --git a/.claude/commands/pull.md b/.claude/commands/pull.md index 06d75255928..a31f370527e 100644 --- a/.claude/commands/pull.md +++ b/.claude/commands/pull.md @@ -5,7 +5,7 @@ Pull latest main and update all submodules to their latest remote main. No commi ## Steps 1. `git pull origin main` -2. For each submodule (ghostty, homebrew-cmux, vendor/bonsplit): +2. For each submodule (ghostty, vendor/bonsplit): - `cd ` - `git fetch origin` - Check if behind: `git rev-list HEAD..origin/main --count` diff --git a/.claude/commands/sync-branch.md b/.claude/commands/sync-branch.md index 7548ef3aea0..f5b7f7c31b9 100644 --- a/.claude/commands/sync-branch.md +++ b/.claude/commands/sync-branch.md @@ -7,7 +7,7 @@ Get the current branch ready: update all submodules to their latest remote main, ## Steps 1. **Update submodules to latest** - - For each submodule (ghostty, homebrew-cmux, vendor/bonsplit): + - For each submodule (ghostty, vendor/bonsplit): - `cd ` - `git fetch origin` - Check if behind: `git rev-list HEAD..origin/main --count` @@ -18,7 +18,7 @@ Get the current branch ready: update all submodules to their latest remote main, 2. **Commit submodule updates on main** - `git checkout main && git pull origin main` - Check if any submodules changed: `git diff --name-only` (look for submodule paths) - - If changed, stage and commit: `git add ghostty homebrew-cmux vendor/bonsplit && git commit -m "Update submodules: "` + - If changed, stage and commit: `git add ghostty vendor/bonsplit && git commit -m "Update submodules: "` - **Do not push.** Ask the user if they want to push. 3. **Rebase current branch on main** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4727b33d297..c8cdaaa1fd7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,7 +38,6 @@ | `./scripts/reload.sh` | Build Debug app (pass `--launch` to also open it) | | `./scripts/reloadp.sh` | Build and launch Release app | | `./scripts/reload2.sh` | Reload both Debug and Release | -| `./scripts/rebuild.sh` | Clean rebuild | ## Rebuilding GhosttyKit diff --git a/Package.resolved b/Package.resolved deleted file mode 100644 index 0572c520dbc..00000000000 --- a/Package.resolved +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pins" : [ - { - "identity" : "swift-argument-parser", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-argument-parser", - "state" : { - "revision" : "c5d11a805e765f52ba34ec7284bd4fcd6ba68615", - "version" : "1.7.0" - } - }, - { - "identity" : "swiftterm", - "kind" : "remoteSourceControl", - "location" : "https://github.com/migueldeicaza/SwiftTerm.git", - "state" : { - "revision" : "0b8d99bd19b694df44e1ccaa3891309719d34330", - "version" : "1.5.1" - } - } - ], - "version" : 2 -} diff --git a/Package.swift b/Package.swift deleted file mode 100644 index ccbc6ab299a..00000000000 --- a/Package.swift +++ /dev/null @@ -1,22 +0,0 @@ -// swift-tools-version:5.9 -import PackageDescription - -let package = Package( - name: "cmux", - platforms: [ - .macOS(.v13) - ], - products: [ - .executable(name: "cmux", targets: ["cmux"]) - ], - dependencies: [ - .package(url: "https://github.com/migueldeicaza/SwiftTerm.git", from: "1.2.0") - ], - targets: [ - .executableTarget( - name: "cmux", - dependencies: ["SwiftTerm"], - path: "Sources" - ) - ] -) diff --git a/daemon/remote/README.md b/daemon/remote/README.md index 0c8eb7d4078..32d5425400a 100644 --- a/daemon/remote/README.md +++ b/daemon/remote/README.md @@ -55,7 +55,7 @@ Release apps download and cache the matching binary locally, verify its SHA-256, To inspect what a given app build trusts, run: 1. `programa remote-daemon-status` -2. `cmux remote-daemon-status --os linux --arch amd64` +2. `programa remote-daemon-status --os linux --arch amd64` The command prints the exact release asset URL, expected SHA-256, local cache status, and a copy-pasteable `gh attestation verify` command for the selected platform. diff --git a/docs/socket-focus-steal-audit.todo.md b/docs/socket-focus-steal-audit.todo.md deleted file mode 100644 index 46b5c6778ae..00000000000 --- a/docs/socket-focus-steal-audit.todo.md +++ /dev/null @@ -1,83 +0,0 @@ -# Socket/CLI No-Focus-Steal Todo - -## Goal -Ensure commands run through the Programa Unix socket/CLI do not steal user focus from the current UI workflow. - -Policy target: -- App activation/window raising from socket commands: **never**. -- In-app focus mutation from socket commands: only for explicit focus-intent commands. -- Non-focus commands must not move workspace/pane/surface focus as a side effect. - -## Task Checklist -- [x] Inventory all v1 + v2 socket command entrypoints. -- [x] Add socket-command focus policy context in `TerminalController`. -- [x] Suppress app activation for socket command path in `AppDelegate` (`focusMainWindow`, `createMainWindow`). -- [x] Gate in-app focus mutation side-effects in v2 handlers. -- [x] Gate in-app focus mutation side-effects in legacy v1 handlers. -- [x] Add explicit CLI `rename-tab` command with env-default targeting. -- [x] Update CLI help/usage/subcommand docs for `rename-tab`. -- [x] Add regression tests for rename-tab and no-unintended-focus-side-effects. -- [x] Run build + targeted tests. -- [x] Open PR. - -## Explicit Focus-Intent Allowlist -These may mutate in-app focus/selection state: - -v1 (historical — the v1 line protocol was removed 2026-07-08; the equivalent v2 methods -below are the only entrypoints left, and `focusIntentV1Commands`/the `isV2: false` policy -branch were deleted along with it): -- `focus_window` -- `select_workspace` -- `focus_surface` -- `focus_pane` -- `focus_surface_by_panel` -- `focus_webview` -- `focus_notification` (debug) -- `activate_app` (debug) - -v2: -- `window.focus` -- `workspace.select` -- `workspace.next` -- `workspace.previous` -- `workspace.last` -- `surface.focus` -- `pane.focus` -- `pane.last` -- `browser.focus_webview` -- `browser.focus` -- `browser.tab.switch` -- `debug.notification.focus` -- `debug.app.activate` - -All other commands should preserve current user focus context. - -## Command Coverage Matrix (All Command Families) - -The `v1 *` rows below are historical: the v1 line protocol was removed 2026-07-08 and -these commands no longer exist. Kept for audit-trail context only; see -`docs/v2-api-migration.md` for the v1 -> v2 name mapping. - -- [x] v1 `ping`, `help` -- [x] v1 window commands (`list_windows`, `current_window`, `focus_window`, `new_window`, `close_window`) -- [x] v1 workspace commands (`move_workspace_to_window`, `list_workspaces`, `new_workspace`, `close_workspace`, `select_workspace`, `current_workspace`) -- [x] v1 surface/pane commands (`new_split`, `list_surfaces`, `focus_surface`, `list_panes`, `list_pane_surfaces`, `focus_pane`, `focus_surface_by_panel`, `drag_surface_to_split`, `new_pane`, `new_surface`, `close_surface`, `refresh_surfaces`, `surface_health`) -- [x] v1 input commands (`send`, `send_key`, `send_surface`, `send_key_surface`, `read_screen`) -- [x] v1 notification/status/log/report commands (`notify*`, `list_notifications`, `clear_notifications`, `set_status`, `clear_status`, `list_status`, `log`, `clear_log`, `list_log`, `set_progress`, `clear_progress`, `report_*`, `ports_kick`, `sidebar_state`, `reset_sidebar`) -- [x] v1 browser commands (`open_browser`, `navigate`, `browser_back`, `browser_forward`, `browser_reload`, `get_url`, `focus_webview`, `is_webview_focused`) -- [x] v1 debug/test commands (shortcut, type, drop/pasteboard, overlay probes, focus checks, screenshots, render/layout/flash/panel snapshot) - -- [x] v2 system methods (`system.*`) -- [x] v2 window methods (`window.*`) -- [x] v2 workspace methods (`workspace.*`) -- [x] v2 surface methods (`surface.*`, `tab.action`) -- [x] v2 pane methods (`pane.*`) -- [x] v2 notification methods (`notification.*`) -- [x] v2 app methods (`app.*`) -- [x] v2 browser methods (full `browser.*` set including tab/network/trace/input) -- [x] v2 debug methods (`debug.*`) - -## CLI Coverage -- [x] Ensure every top-level CLI command routes to non-focus-stealing socket behavior. -- [x] Add/verify `rename-workspace` + `rename-window` behavior remains intact. -- [x] Add explicit `rename-tab` command (defaults to `PROGRAMA_TAB_ID` / `PROGRAMA_SURFACE_ID` / `PROGRAMA_WORKSPACE_ID` when flags omitted). diff --git a/scripts/generate_dark_icon.py b/scripts/generate_dark_icon.py deleted file mode 100755 index b5ea13fe81c..00000000000 --- a/scripts/generate_dark_icon.py +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/env python3 -"""Generate dark mode app icon variants. - -Composites the Figma chevron layer (on transparent background) over a dark -squircle background derived from the light icon's alpha channel. This -preserves the exact chevron colors and glow without any halo artifacts. - -Requires the Figma export at: design/cmux-icon-chevron.png -Falls back to mathematical recomposition if the Figma layer is missing. -""" -import json -import os -import sys - -from PIL import Image, ImageFilter - -REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - -# Apple systemBackground dark -DARK_BG = (28, 28, 30) - -# Figma chevron layer (exported from Figma at native resolution) -FIGMA_CHEVRON = os.path.join(REPO, "design", "cmux-icon-chevron.png") - -# The Figma export is ~25% larger than the repo icon. Scale and offset -# computed by matching the solid chevron (sat>0.5) bounding box center -# between the repo light icon and the scaled Figma chevron layer. -FIGMA_SCALE = 0.7996 -FIGMA_OFFSET = (290, 187) - -SIZES = [ - ("16.png", 16), - ("16@2x.png", 32), - ("32.png", 32), - ("32@2x.png", 64), - ("128.png", 128), - ("128@2x.png", 256), - ("256.png", 256), - ("256@2x.png", 512), - ("512.png", 512), - ("512@2x.png", 1024), -] - - -def make_dark_from_figma(light_1024: Image.Image, chevron: Image.Image) -> Image.Image: - """Create dark icon by compositing Figma chevron over dark background. - - Uses the light icon's alpha channel for the squircle shape mask, - fills it with the dark background color, then composites the - chevron layer on top at the precomputed offset. - """ - size = 1024 - light = light_1024.convert("RGBA") - if light.size != (size, size): - light = light.resize((size, size), Image.LANCZOS) - - # Create dark background with the squircle shape from the light icon - dark_bg = Image.new("RGBA", (size, size), (0, 0, 0, 0)) - light_px = light.load() - dark_px = dark_bg.load() - for y in range(size): - for x in range(size): - _, _, _, a = light_px[x, y] - if a > 0: - dark_px[x, y] = (DARK_BG[0], DARK_BG[1], DARK_BG[2], a) - - # Scale chevron - chev = chevron.convert("RGBA") - cw, ch = chev.size - scaled_w = int(cw * FIGMA_SCALE) - scaled_h = int(ch * FIGMA_SCALE) - chev = chev.resize((scaled_w, scaled_h), Image.LANCZOS) - ox, oy = FIGMA_OFFSET - - # Build enhanced glow: brighten the chevron, blur at two radii - glow_src = chev.copy() - glow_px = glow_src.load() - for y in range(scaled_h): - for x in range(scaled_w): - r, g, b, a = glow_px[x, y] - if a > 0: - glow_px[x, y] = ( - min(255, int(r * 1.2)), - min(255, int(g * 1.2)), - min(255, int(b * 1.2)), - min(255, int(a * 1.1)), - ) - - glow_canvas = Image.new("RGBA", (size, size), (0, 0, 0, 0)) - glow_canvas.paste(glow_src, (ox, oy), glow_src) - - # Wide soft glow + tighter glow - glow_wide = glow_canvas.filter(ImageFilter.GaussianBlur(radius=25)) - glow_tight = glow_canvas.filter(ImageFilter.GaussianBlur(radius=12)) - - # Reduce glow opacity - for glow, factor in [(glow_wide, 0.45), (glow_tight, 0.35)]: - gpx = glow.load() - for y in range(size): - for x in range(size): - r, g, b, a = gpx[x, y] - gpx[x, y] = (r, g, b, int(a * factor)) - - # Composite: dark bg -> wide glow -> tight glow -> sharp chevron - result = Image.alpha_composite(dark_bg, glow_wide) - result = Image.alpha_composite(result, glow_tight) - chev_canvas = Image.new("RGBA", (size, size), (0, 0, 0, 0)) - chev_canvas.paste(chev, (ox, oy), chev) - result = Image.alpha_composite(result, chev_canvas) - - return result - - -def make_dark_fallback(img: Image.Image) -> Image.Image: - """Fallback: mathematical recomposition when Figma layer is unavailable.""" - img = img.convert("RGBA") - w, h = img.size - pixels = img.load() - - for y in range(h): - for x in range(w): - r, g, b, a = pixels[x, y] - if a == 0: - continue - max_dev = max(255 - r, 255 - g, 255 - b) - fg_alpha = min(max_dev / 60.0, 1.0) - bg_factor = 1.0 - fg_alpha - nr = max(0, int(r - bg_factor * (255 - DARK_BG[0]))) - ng = max(0, int(g - bg_factor * (255 - DARK_BG[1]))) - nb = max(0, int(b - bg_factor * (255 - DARK_BG[2]))) - pixels[x, y] = (nr, ng, nb, a) - - return img - - -def update_contents_json(icon_dir: str) -> None: - """Add dark appearance entries to Contents.json.""" - contents_path = os.path.join(icon_dir, "Contents.json") - with open(contents_path) as f: - contents = json.load(f) - - # Remove any existing dark entries to avoid duplicates - images = [ - img for img in contents["images"] - if not any( - ap.get("value") == "dark" - for ap in img.get("appearances", []) - ) - ] - - dark_images = [] - for img in images: - filename = img.get("filename", "") - if not filename: - continue - base, ext = os.path.splitext(filename) - dark_entry = { - "appearances": [ - {"appearance": "luminosity", "value": "dark"} - ], - "filename": f"{base}_dark{ext}", - "idiom": img["idiom"], - "scale": img["scale"], - "size": img["size"], - } - dark_images.append(dark_entry) - - # Interleave: light, dark, light, dark, ... - merged = [] - for i, img in enumerate(images): - merged.append(img) - if i < len(dark_images): - merged.append(dark_images[i]) - - contents["images"] = merged - with open(contents_path, "w") as f: - json.dump(contents, f, indent=2) - f.write("\n") - print(f" Updated {contents_path}") - - -def generate_dark_icons(icon_set: str) -> None: - """Generate dark variants for an icon set.""" - src_dir = os.path.join(REPO, "Assets.xcassets", f"{icon_set}.appiconset") - if not os.path.isdir(src_dir): - print(f"SKIP {icon_set} (not found)") - return - - use_figma = os.path.exists(FIGMA_CHEVRON) - if use_figma: - print(f"\n{icon_set} (using Figma chevron layer):") - chevron = Image.open(FIGMA_CHEVRON) - light_1024_path = os.path.join(src_dir, "512@2x.png") - light_1024 = Image.open(light_1024_path) - dark_1024 = make_dark_from_figma(light_1024, chevron) - else: - print(f"\n{icon_set} (fallback: mathematical recomposition):") - dark_1024 = None - - for filename, pixel_size in SIZES: - src_path = os.path.join(src_dir, filename) - if not os.path.exists(src_path): - print(f" SKIP {filename} (not found)") - continue - - base, ext = os.path.splitext(filename) - dst_path = os.path.join(src_dir, f"{base}_dark{ext}") - - if use_figma: - # Downscale the 1024x1024 Figma composite - dark_img = dark_1024.resize((pixel_size, pixel_size), Image.LANCZOS) - else: - img = Image.open(src_path) - if img.size != (pixel_size, pixel_size): - img = img.resize((pixel_size, pixel_size), Image.LANCZOS) - dark_img = make_dark_fallback(img) - - dark_img.save(dst_path, "PNG") - print(f" {base}_dark{ext} ({pixel_size}x{pixel_size})") - - update_contents_json(src_dir) - - -def main(): - generate_dark_icons("AppIcon") - - -if __name__ == "__main__": - main() diff --git a/scripts/notify_probe.sh b/scripts/notify_probe.sh deleted file mode 100755 index 8b4704a44e1..00000000000 --- a/scripts/notify_probe.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Probe common desktop-notification escape sequences. -# NOTE: cmux suppresses notifications when the app + surface are focused, -# so switch to another app/window while this runs. - -esc=$'\033' -bel=$'\007' -st="${esc}\\" - -send_seq() { - local label="$1" - local seq="$2" - printf '\n[%s]\n' "$label" - printf '%b' "$seq" -} - -sleep_between() { - # Ghostty rate limits notifications (~1/sec) and suppresses identical - # content within a short window, so keep spacing + unique content. - sleep 1.2 -} - -send_seq "OSC 9 (iTerm2) body-only, BEL terminator" "${esc}]9;cmux OSC 9 BEL $RANDOM${bel}" -sleep_between - -send_seq "OSC 9 (iTerm2) body-only, ST terminator" "${esc}]9;cmux OSC 9 ST $RANDOM${st}" -sleep_between - -send_seq "OSC 777 (rxvt) notify, BEL terminator" "${esc}]777;notify;cmux OSC 777 BEL $RANDOM;body ${RANDOM}${bel}" -sleep_between - -send_seq "OSC 777 (rxvt) notify, ST terminator" "${esc}]777;notify;cmux OSC 777 ST $RANDOM;body ${RANDOM}${st}" - -printf '\nDone.\n' diff --git a/scripts/probe-pure-prompt-duplication.py b/scripts/probe-pure-prompt-duplication.py deleted file mode 100755 index e2b69ca1005..00000000000 --- a/scripts/probe-pure-prompt-duplication.py +++ /dev/null @@ -1,207 +0,0 @@ -#!/usr/bin/env python3 -""" -Check whether the current focused terminal surface duplicates a Pure-style -preprompt line when Enter is pressed on an empty prompt. - -Usage: - python3 scripts/probe-pure-prompt-duplication.py - -Run this from a spare cmux pane. The script creates a temporary workspace, -probes the prompt there, and restores your original workspace afterwards. -""" - -from __future__ import annotations - -import argparse -import os -import sys -import time -from pathlib import Path - -sys.path.insert(0, str((Path(__file__).resolve().parents[1] / "tests_v2"))) -from cmux import cmux, cmuxError - - -def _is_prompt_line(line: str) -> bool: - stripped = line.strip() - return stripped.startswith("❯") or stripped.startswith(">") or stripped.startswith("$") - - -def _prompt_block(text: str) -> tuple[list[str], str]: - lines = text.splitlines() - while lines and not lines[-1].strip(): - lines.pop() - - prompt_idx = -1 - for i in range(len(lines) - 1, -1, -1): - if _is_prompt_line(lines[i]): - prompt_idx = i - break - if prompt_idx == -1: - raise cmuxError(f"Could not find prompt line in surface text:\n{text}") - - preprompt: list[str] = [] - i = prompt_idx - 1 - while i >= 0 and lines[i].strip(): - preprompt.append(lines[i]) - i -= 1 - preprompt.reverse() - return preprompt, lines[prompt_idx] - - -def _duplicate_run_length(preprompt: list[str]) -> int: - if not preprompt: - return 0 - last = preprompt[-1] - count = 1 - for line in reversed(preprompt[:-1]): - if line != last: - break - count += 1 - return count - - -def _read_text(client: cmux, workspace_id: str, surface_id: str) -> str: - payload = client._call( - "surface.read_text", - { - "workspace_id": workspace_id, - "surface_id": surface_id, - "scrollback": True, - "lines": 80, - }, - ) or {} - return str(payload.get("text") or "") - - -def _wait_for_prompt_text( - client: cmux, - workspace_id: str, - surface_id: str, - *, - timeout: float, -) -> tuple[str, list[str], str]: - start = time.time() - last_text = "" - last_error = "" - - while time.time() - start < timeout: - last_text = _read_text(client, workspace_id, surface_id) - try: - preprompt, prompt = _prompt_block(last_text) - return last_text, preprompt, prompt - except Exception as exc: - last_error = str(exc) - time.sleep(0.2) - - raise cmuxError( - "Timed out waiting for a prompt block " - f"(last_error={last_error!r}, surface_text={last_text!r})" - ) - - -def main() -> int: - parser = argparse.ArgumentParser() - parser.add_argument("--enters", type=int, default=3) - parser.add_argument("--delay", type=float, default=0.8) - parser.add_argument("--prompt-timeout", type=float, default=15.0) - parser.add_argument("--keep-workspace", action="store_true") - parser.add_argument( - "--socket", - default=os.environ.get("PROGRAMA_SOCKET") or os.environ.get("PROGRAMA_SOCKET_PATH") or "/tmp/programa-debug.sock", - ) - args = parser.parse_args() - - with cmux(args.socket) as client: - current = client._call("workspace.current", {}) or {} - original_workspace_id = str(current.get("workspace_id") or "") - if not original_workspace_id: - raise cmuxError(f"workspace.current returned no workspace_id: {current}") - - created = client._call("workspace.create", {}) or {} - workspace_id = str(created.get("workspace_id") or "") - if not workspace_id: - raise cmuxError(f"workspace.create returned no workspace_id: {created}") - client._call("workspace.select", {"workspace_id": workspace_id}) - - surface_id = "" - probe_text = "" - - start = time.time() - while True: - try: - listed = client._call("surface.list", {"workspace_id": workspace_id}) or {} - surfaces = listed.get("surfaces") or [] - if surfaces: - surface_id = str(surfaces[0].get("id") or "") - if surface_id: - baseline = _read_text(client, workspace_id, surface_id) - probe_text = baseline - break - raise cmuxError("surface not ready yet") - except Exception as exc: - probe_text = str(exc) - if time.time() - start > 10: - raise cmuxError(f"Timed out waiting for readable terminal surface: {probe_text}") - time.sleep(0.2) - - try: - print(f"workspace={workspace_id}") - print(f"surface={surface_id}") - - baseline, preprompt, prompt = _wait_for_prompt_text( - client, - workspace_id, - surface_id, - timeout=args.prompt_timeout, - ) - baseline_run = _duplicate_run_length(preprompt) - print(f"baseline_prompt={prompt!r}") - print(f"baseline_preprompt={preprompt!r}") - print(f"baseline_duplicate_run={baseline_run}") - - if baseline_run > 1: - print("FAIL: surface is already duplicated before probing") - print(baseline) - return 1 - - for step in range(1, args.enters + 1): - client._call( - "surface.send_text", - { - "workspace_id": workspace_id, - "surface_id": surface_id, - "text": "\n", - }, - ) - time.sleep(args.delay) - - text, preprompt, prompt = _wait_for_prompt_text( - client, - workspace_id, - surface_id, - timeout=args.prompt_timeout, - ) - duplicate_run = _duplicate_run_length(preprompt) - print(f"after_enter_{step}_prompt={prompt!r}") - print(f"after_enter_{step}_preprompt={preprompt!r}") - print(f"after_enter_{step}_duplicate_run={duplicate_run}") - - if duplicate_run > 1: - print("FAIL: prompt duplication reproduced") - print(text) - return 1 - - print("PASS: empty Enter did not duplicate the current prompt block") - return 0 - finally: - if not args.keep_workspace: - try: - client._call("workspace.close", {"workspace_id": workspace_id}) - except Exception: - pass - client._call("workspace.select", {"workspace_id": original_workspace_id}) - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/scripts/rebuild.sh b/scripts/rebuild.sh deleted file mode 100755 index 7e545b41bd7..00000000000 --- a/scripts/rebuild.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Rebuild and restart cmux app - -set -e - -cd "$(dirname "$0")/.." - -# Kill existing app if running -pkill -9 -f "cmux" 2>/dev/null || true - -# Build -swift build - -# Copy to app bundle -cp .build/debug/programa .build/debug/Programa.app/Contents/MacOS/ - -# Open the app -open .build/debug/Programa.app diff --git a/scripts/run-e2e.sh b/scripts/run-e2e.sh deleted file mode 100755 index 4d26c4164bf..00000000000 --- a/scripts/run-e2e.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env bash -# Trigger the test-e2e.yml workflow and optionally wait for results. -# -# Usage: -# ./scripts/run-e2e.sh UpdatePillUITests -# ./scripts/run-e2e.sh UpdatePillUITests --wait -# ./scripts/run-e2e.sh UpdatePillUITests/testFoo --ref my-branch -# ./scripts/run-e2e.sh UpdatePillUITests --no-video --timeout 300 -set -euo pipefail - -REPO="manaflow-ai/cmux" -WORKFLOW="test-e2e.yml" - -# Defaults -REF="" -WAIT=false -RECORD_VIDEO=true -TIMEOUT=120 - -usage() { - cat < [options] - -Arguments: - test_filter Test class or class/method (e.g. UpdatePillUITests) - -Options: - --ref Branch or SHA to test (default: current branch) - --wait Wait for the run to complete and print result - --no-video Disable video recording - --timeout Per-test timeout in seconds (default: 120) - -h, --help Show this help -EOF - exit 0 -} - -if [ $# -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then - usage -fi - -TEST_FILTER="$1" -shift - -while [ $# -gt 0 ]; do - case "$1" in - --ref) - REF="$2" - shift 2 - ;; - --wait) - WAIT=true - shift - ;; - --no-video) - RECORD_VIDEO=false - shift - ;; - --timeout) - TIMEOUT="$2" - shift 2 - ;; - *) - echo "Unknown option: $1" >&2 - usage - ;; - esac -done - -# Build workflow dispatch fields -FIELDS=(-f "test_filter=$TEST_FILTER" -f "record_video=$RECORD_VIDEO" -f "test_timeout=$TIMEOUT") -if [ -n "$REF" ]; then - FIELDS+=(-f "ref=$REF") -fi - -echo "Triggering $WORKFLOW with test_filter=$TEST_FILTER ref=${REF:-} video=$RECORD_VIDEO timeout=$TIMEOUT" -gh workflow run "$WORKFLOW" --repo "$REPO" "${FIELDS[@]}" - -# Wait a moment for the run to register -sleep 3 - -# Get the latest run ID -RUN_ID=$(gh run list --repo "$REPO" --workflow "$WORKFLOW" --limit 1 --json databaseId --jq '.[0].databaseId') -RUN_URL="https://github.com/$REPO/actions/runs/$RUN_ID" - -echo "Run: $RUN_URL" - -if [ "$WAIT" = true ]; then - echo "Waiting for run to complete..." - gh run watch --repo "$REPO" "$RUN_ID" --exit-status || true - - STATUS=$(gh run view --repo "$REPO" "$RUN_ID" --json conclusion --jq '.conclusion') - echo "" - echo "Result: $STATUS" - echo "Run: $RUN_URL" - - # Find the issue created for this run (search by run ID in body) - ISSUE_URL=$(gh search issues "$RUN_ID" --repo manaflow-ai/cmux-dev-artifacts --limit 1 --json url --jq '.[0].url' 2>/dev/null || true) - if [ -n "$ISSUE_URL" ]; then - echo "Issue: $ISSUE_URL" - fi -fi diff --git a/skills/cmux-browser/SKILL.md b/skills/cmux-browser/SKILL.md deleted file mode 100644 index aed36c61f83..00000000000 --- a/skills/cmux-browser/SKILL.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -name: cmux-browser -description: End-user browser automation with cmux. Use when you need to open sites, interact with pages, wait for state changes, and extract data from cmux browser surfaces. ---- - -# Browser Automation with cmux - -Use this skill for browser tasks inside cmux webviews. - -## Core Workflow - -1. Open or target a browser surface. -2. Verify navigation with `get url` before waiting or snapshotting. -3. Snapshot (`--interactive`) to get fresh element refs. -4. Act with refs (`click`, `fill`, `type`, `select`, `press`). -5. Wait for state changes. -6. Re-snapshot after DOM/navigation changes. - -```bash -cmux --json browser open https://example.com -# use returned surface ref, for example: surface:7 - -cmux browser surface:7 get url -cmux browser surface:7 wait --load-state complete --timeout-ms 15000 -cmux browser surface:7 snapshot --interactive -cmux browser surface:7 fill e1 "hello" -cmux --json browser surface:7 click e2 --snapshot-after -cmux browser surface:7 snapshot --interactive -``` - -## Surface Targeting - -```bash -# identify current context -cmux identify --json - -# open routed to a specific topology target -cmux browser open https://example.com --workspace workspace:2 --window window:1 --json -``` - -Notes: -- CLI output defaults to short refs (`surface:N`, `pane:N`, `workspace:N`, `window:N`). -- UUIDs are still accepted on input; only request UUID output when needed (`--id-format uuids|both`). -- Keep using one `surface:N` per task unless you intentionally switch. - -## Wait Support - -cmux supports wait patterns similar to agent-browser: - -```bash -cmux browser wait --selector "#ready" --timeout-ms 10000 -cmux browser wait --text "Success" --timeout-ms 10000 -cmux browser wait --url-contains "/dashboard" --timeout-ms 10000 -cmux browser wait --load-state complete --timeout-ms 15000 -cmux browser wait --function "document.readyState === 'complete'" --timeout-ms 10000 -``` - -## Common Flows - -### Form Submit - -```bash -cmux --json browser open https://example.com/signup -cmux browser surface:7 get url -cmux browser surface:7 wait --load-state complete --timeout-ms 15000 -cmux browser surface:7 snapshot --interactive -cmux browser surface:7 fill e1 "Jane Doe" -cmux browser surface:7 fill e2 "jane@example.com" -cmux --json browser surface:7 click e3 --snapshot-after -cmux browser surface:7 wait --url-contains "/welcome" --timeout-ms 15000 -cmux browser surface:7 snapshot --interactive -``` - -### Clear an Input - -```bash -cmux browser surface:7 fill e11 "" --snapshot-after --json -cmux browser surface:7 get value e11 --json -``` - -### Stable Agent Loop (Recommended) - -```bash -# navigate -> verify -> wait -> snapshot -> action -> snapshot -cmux browser surface:7 get url -cmux browser surface:7 wait --load-state complete --timeout-ms 15000 -cmux browser surface:7 snapshot --interactive -cmux --json browser surface:7 click e5 --snapshot-after -cmux browser surface:7 snapshot --interactive -``` - -If `get url` is empty or `about:blank`, navigate first instead of waiting on load state. - -## Deep-Dive References - -| Reference | When to Use | -|-----------|-------------| -| [references/commands.md](references/commands.md) | Full browser command mapping and quick syntax | -| [references/snapshot-refs.md](references/snapshot-refs.md) | Ref lifecycle and stale-ref troubleshooting | -| [references/authentication.md](references/authentication.md) | Login/OAuth/2FA patterns and state save/load | -| [references/authentication.md#saving-authentication-state](references/authentication.md#saving-authentication-state) | Save authenticated state right after login | -| [references/session-management.md](references/session-management.md) | Multi-surface isolation and state persistence patterns | -| [references/video-recording.md](references/video-recording.md) | Current recording status and practical alternatives | -| [references/proxy-support.md](references/proxy-support.md) | Proxy behavior in WKWebView and workarounds | - -## Ready-to-Use Templates - -| Template | Description | -|----------|-------------| -| [templates/form-automation.sh](templates/form-automation.sh) | Snapshot/ref form fill loop | -| [templates/authenticated-session.sh](templates/authenticated-session.sh) | Login once, save/load state | -| [templates/capture-workflow.sh](templates/capture-workflow.sh) | Navigate + capture snapshots/screenshots | - -## Limits (WKWebView) - -These commands currently return `not_supported` because they rely on Chrome/CDP-only APIs not exposed by WKWebView: -- viewport emulation -- offline emulation -- trace/screencast recording -- network route interception/mocking -- low-level raw input injection - -Use supported high-level commands (`click`, `fill`, `press`, `scroll`, `wait`, `snapshot`) instead. - -## Troubleshooting - -### `js_error` on `snapshot --interactive` or `eval` - -Some complex pages can reject or break the JavaScript used for rich snapshots and ad-hoc evaluation. - -Recovery steps: - -```bash -cmux browser surface:7 get url -cmux browser surface:7 get text body -cmux browser surface:7 get html body -``` - -- Use `get url` first so you know whether the page actually navigated. -- Fall back to `get text body` or `get html body` when `snapshot --interactive` or `eval` returns `js_error`. -- If the page is still failing, navigate to a simpler intermediate page, then retry the task from there. diff --git a/skills/cmux-browser/agents/openai.yaml b/skills/cmux-browser/agents/openai.yaml deleted file mode 100644 index bf2485be856..00000000000 --- a/skills/cmux-browser/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "cmux Browser" - short_description: "Automate cmux webview surfaces with snapshot/ref workflows." - default_prompt: "Use this skill for browser automation via cmux CLI: identify target surface, snapshot interactive refs, perform actions, wait for state changes, and re-snapshot to avoid stale refs." diff --git a/skills/cmux-browser/references/authentication.md b/skills/cmux-browser/references/authentication.md deleted file mode 100644 index 5fc43d2ad6a..00000000000 --- a/skills/cmux-browser/references/authentication.md +++ /dev/null @@ -1,122 +0,0 @@ -# Authentication Patterns - -Login flows, session persistence, OAuth, and 2FA patterns for cmux browser surfaces. - -**Related**: [session-management.md](session-management.md), [SKILL.md](../SKILL.md) - -## Contents - -- [Basic Login Flow](#basic-login-flow) -- [Saving Authentication State](#saving-authentication-state) -- [Restoring Authentication](#restoring-authentication) -- [OAuth / SSO Flows](#oauth--sso-flows) -- [Two-Factor Authentication](#two-factor-authentication) -- [Cookie-Based Auth](#cookie-based-auth) -- [Token Refresh Handling](#token-refresh-handling) -- [Security Best Practices](#security-best-practices) - -## Basic Login Flow - -```bash -cmux browser open https://app.example.com/login --json -cmux browser surface:7 wait --load-state complete --timeout-ms 15000 - -cmux browser surface:7 snapshot --interactive -# [ref=e1] email, [ref=e2] password, [ref=e3] submit - -cmux browser surface:7 fill e1 "user@example.com" -cmux browser surface:7 fill e2 "$APP_PASSWORD" -cmux browser surface:7 click e3 --snapshot-after --json -cmux browser surface:7 wait --url-contains "/dashboard" --timeout-ms 20000 -``` - -## Saving Authentication State - -After logging in, save state for reuse: - -```bash -cmux browser surface:7 state save ./auth-state.json -``` - -State includes cookies, localStorage, sessionStorage, and open tab metadata for that surface. - -## Restoring Authentication - -```bash -cmux browser open https://app.example.com --json -cmux browser surface:8 state load ./auth-state.json -cmux browser surface:8 goto https://app.example.com/dashboard -cmux browser surface:8 snapshot --interactive -``` - -## OAuth / SSO Flows - -```bash -cmux browser open https://app.example.com/auth/google --json -cmux browser surface:7 wait --url-contains "accounts.google.com" --timeout-ms 30000 -cmux browser surface:7 snapshot --interactive - -cmux browser surface:7 fill e1 "user@gmail.com" -cmux browser surface:7 click e2 --snapshot-after --json - -cmux browser surface:7 wait --url-contains "app.example.com" --timeout-ms 45000 -cmux browser surface:7 state save ./oauth-state.json -``` - -## Two-Factor Authentication - -```bash -cmux browser open https://app.example.com/login --json -cmux browser surface:7 snapshot --interactive -cmux browser surface:7 fill e1 "user@example.com" -cmux browser surface:7 fill e2 "$APP_PASSWORD" -cmux browser surface:7 click e3 - -# complete 2FA manually in the webview, then: -cmux browser surface:7 wait --url-contains "/dashboard" --timeout-ms 120000 -cmux browser surface:7 state save ./2fa-state.json -``` - -## Cookie-Based Auth - -```bash -cmux browser surface:7 cookies set session_token "abc123xyz" -cmux browser surface:7 goto https://app.example.com/dashboard -``` - -## Token Refresh Handling - -```bash -#!/usr/bin/env bash -set -euo pipefail - -STATE_FILE="./auth-state.json" -SURFACE="surface:7" - -if [ -f "$STATE_FILE" ]; then - cmux browser "$SURFACE" state load "$STATE_FILE" -fi - -cmux browser "$SURFACE" goto https://app.example.com/dashboard -URL=$(cmux browser "$SURFACE" get url) - -if printf '%s' "$URL" | grep -q '/login'; then - cmux browser "$SURFACE" snapshot --interactive - cmux browser "$SURFACE" fill e1 "$APP_USERNAME" - cmux browser "$SURFACE" fill e2 "$APP_PASSWORD" - cmux browser "$SURFACE" click e3 - cmux browser "$SURFACE" wait --url-contains "/dashboard" --timeout-ms 20000 - cmux browser "$SURFACE" state save "$STATE_FILE" -fi -``` - -## Security Best Practices - -1. Never commit state files (they include auth tokens). -2. Use environment variables for credentials. -3. Clear state/cookies after sensitive tasks: - -```bash -cmux browser surface:7 cookies clear -rm -f ./auth-state.json -``` diff --git a/skills/cmux-browser/references/commands.md b/skills/cmux-browser/references/commands.md deleted file mode 100644 index 1f597975512..00000000000 --- a/skills/cmux-browser/references/commands.md +++ /dev/null @@ -1,108 +0,0 @@ -# Command Reference (cmux Browser) - -This maps common `agent-browser` usage to `cmux browser` usage. - -## Direct Equivalents - -- `agent-browser open ` -> `cmux browser open ` -- `agent-browser goto|navigate ` -> `cmux browser goto|navigate ` -- `agent-browser snapshot -i` -> `cmux browser snapshot --interactive` -- `agent-browser click ` -> `cmux browser click ` -- `agent-browser fill ` -> `cmux browser fill ` -- `agent-browser type ` -> `cmux browser type ` -- `agent-browser select ` -> `cmux browser select ` -- `agent-browser get text ` -> `cmux browser get text ` -- `agent-browser get url` -> `cmux browser get url` -- `agent-browser get title` -> `cmux browser get title` - -## Core Command Groups - -### Navigation - -```bash -cmux browser open # opens in caller's workspace (uses PROGRAMA_WORKSPACE_ID) -cmux browser open --workspace # opens in a specific workspace -cmux browser goto -cmux browser back|forward|reload -cmux browser get url|title -``` - -> **Workspace context:** `browser open` targets the workspace of the terminal where the command is run (via `PROGRAMA_WORKSPACE_ID`), even if a different workspace is currently focused. Use `--workspace` to override. - -### Snapshot and Inspection - -```bash -cmux browser snapshot --interactive -cmux browser snapshot --interactive --compact --max-depth 3 -cmux browser get text body -cmux browser get html body -cmux browser get value "#email" -cmux browser get attr "#email" --attr placeholder -cmux browser get count ".row" -cmux browser get box "#submit" -cmux browser get styles "#submit" --property color -cmux browser eval '' -``` - -### Interaction - -```bash -cmux browser click|dblclick|hover|focus -cmux browser fill [text] # empty text clears -cmux browser type -cmux browser press|keydown|keyup -cmux browser select -cmux browser check|uncheck -cmux browser scroll [--selector ] [--dx ] [--dy ] -``` - -### Wait - -```bash -cmux browser wait --selector "#ready" --timeout-ms 10000 -cmux browser wait --text "Done" --timeout-ms 10000 -cmux browser wait --url-contains "/dashboard" --timeout-ms 10000 -cmux browser wait --load-state complete --timeout-ms 15000 -cmux browser wait --function "document.readyState === 'complete'" --timeout-ms 10000 -``` - -### Session/State - -```bash -cmux browser cookies get|set|clear ... -cmux browser storage local|session get|set|clear ... -cmux browser tab list|new|switch|close ... -cmux browser state save|load -``` - -### Diagnostics - -```bash -cmux browser console list|clear -cmux browser errors list|clear -cmux browser highlight -cmux browser screenshot -cmux browser download wait --timeout-ms 10000 -``` - -## Agent Reliability Tips - -- Use `--snapshot-after` on mutating actions to return a fresh post-action snapshot. -- Re-snapshot after navigation, modal open/close, or major DOM changes. -- Prefer short handles in outputs by default (`surface:N`, `pane:N`, `workspace:N`, `window:N`). -- Use `--id-format both` only when a UUID must be logged/exported. - -## Known WKWebView Gaps (`not_supported`) - -- `browser.viewport.set` -- `browser.geolocation.set` -- `browser.offline.set` -- `browser.trace.start|stop` -- `browser.network.route|unroute|requests` -- `browser.screencast.start|stop` -- `browser.input_mouse|input_keyboard|input_touch` - -See also: -- [snapshot-refs.md](snapshot-refs.md) -- [authentication.md](authentication.md) -- [session-management.md](session-management.md) diff --git a/skills/cmux-browser/references/proxy-support.md b/skills/cmux-browser/references/proxy-support.md deleted file mode 100644 index 92a96608bf3..00000000000 --- a/skills/cmux-browser/references/proxy-support.md +++ /dev/null @@ -1,64 +0,0 @@ -# Proxy Support - -How proxy behavior works for cmux browser automation. - -**Related**: [commands.md](commands.md), [SKILL.md](../SKILL.md) - -## Contents - -- [User-Configured Proxy (browser.proxy)](#user-configured-proxy-browserproxy) -- [Remote Relay Proxy (precedence)](#remote-relay-proxy-precedence) -- [What Is Not Exposed via CLI](#what-is-not-exposed-via-cli) -- [Verification](#verification) - -## User-Configured Proxy (browser.proxy) - -Add a `browser.proxy` block to `~/.config/cmux/settings.json` (or the path shown in Settings > General) to route all embedded WebView traffic through a proxy: - -```json -{ - "browser": { - "proxy": { - "host": "127.0.0.1", - "port": 1080, - "type": "socks5" - } - } -} -``` - -### Properties - -| Key | Type | Required | Description | -|--------|---------|----------|-------------| -| `host` | string | yes | Proxy host name or IP address. | -| `port` | integer | yes | Port number (1–65535). | -| `type` | string | no | `"socks5"` (default) or `"httpConnect"`. | - -- `"socks5"` — SOCKSv5 proxy (`ProxyConfiguration(socksv5Proxy:)`). -- `"httpConnect"` — HTTP CONNECT tunneling (`ProxyConfiguration(httpCONNECTProxy:)`). - -Config-file only this release; no Settings UI panel. - -### Relay Precedence - -When a remote workspace relay endpoint is active, the relay proxy always wins — the user-configured proxy is ignored until the relay disconnects. This preserves SSH-relay browser routing for remote workspaces. - -## Remote Relay Proxy (precedence) - -Remote browser panels use an SSH relay. When the relay endpoint is set via `setRemoteProxyEndpoint(_:)`, `WKWebsiteDataStore.proxyConfigurations` is populated with both SOCKSv5 and HTTP CONNECT entries pointing at the relay. The user proxy is not applied while the relay is active. - -When the relay endpoint is cleared, the user proxy (if configured) is applied; otherwise `proxyConfigurations` is reset to `[]`. - -## What Is Not Exposed via CLI - -There is no first-class `cmux browser proxy ...` socket command for per-surface proxy routing. `browser.proxy` is config-file only. - -## Verification - -```bash -cmux browser open https://httpbin.org/ip --json -cmux browser surface:7 get text body -``` - -Compare the returned IP against your expected proxy egress address. diff --git a/skills/cmux-browser/references/session-management.md b/skills/cmux-browser/references/session-management.md deleted file mode 100644 index ec682d2a76e..00000000000 --- a/skills/cmux-browser/references/session-management.md +++ /dev/null @@ -1,94 +0,0 @@ -# Session Management - -cmux uses isolated browser contexts per surface. Treat each browser surface as its own session. - -**Related**: [authentication.md](authentication.md), [SKILL.md](../SKILL.md) - -## Contents - -- [Surface-Based Sessions](#surface-based-sessions) -- [Isolation Properties](#isolation-properties) -- [State Persistence](#state-persistence) -- [Common Patterns](#common-patterns) -- [Cleanup](#cleanup) -- [Best Practices](#best-practices) - -## Surface-Based Sessions - -```bash -# session A -cmux browser open https://app.example.com/login --json -# -> surface:7 - -# session B -cmux browser open https://example.com --json -# -> surface:8 - -cmux browser surface:7 get url -cmux browser surface:8 get url -``` - -## Isolation Properties - -Each surface has independent: -- cookies -- localStorage/sessionStorage -- tab list and active tab -- navigation history - -## State Persistence - -### Save State - -```bash -cmux browser surface:7 state save /tmp/auth-state.json -``` - -### Load State - -```bash -cmux browser surface:8 state load /tmp/auth-state.json -cmux browser surface:8 goto https://app.example.com/dashboard -``` - -## Common Patterns - -### Reuse Auth Across New Surface - -```bash -cmux browser open https://app.example.com/login --json -# login on surface:7 ... -cmux browser surface:7 state save /tmp/auth.json - -cmux browser open https://app.example.com --json -# assume surface:8 -cmux browser surface:8 state load /tmp/auth.json -cmux browser surface:8 goto https://app.example.com/dashboard -``` - -### Parallel Multi-Site Tasks - -```bash -cmux browser open https://site-a.example --json -cmux browser open https://site-b.example --json -cmux browser open https://site-c.example --json - -cmux browser surface:11 get text body > /tmp/a.txt -cmux browser surface:12 get text body > /tmp/b.txt -cmux browser surface:13 get text body > /tmp/c.txt -``` - -## Cleanup - -```bash -cmux close-surface --surface surface:7 -cmux close-surface --surface surface:8 -rm -f /tmp/auth-state.json -``` - -## Best Practices - -1. Name/log surfaces in your script output so actions stay attributable. -2. Keep one task per surface to avoid ref churn. -3. Save state after successful auth milestones. -4. Re-snapshot after switching tabs/pages inside a surface. diff --git a/skills/cmux-browser/references/snapshot-refs.md b/skills/cmux-browser/references/snapshot-refs.md deleted file mode 100644 index a9b8bf95772..00000000000 --- a/skills/cmux-browser/references/snapshot-refs.md +++ /dev/null @@ -1,88 +0,0 @@ -# Snapshot and Refs - -Element refs from snapshots make browser automation compact and reliable. - -**Related**: [commands.md](commands.md), [SKILL.md](../SKILL.md) - -## Contents - -- [How Refs Work](#how-refs-work) -- [The Snapshot Command](#the-snapshot-command) -- [Using Refs](#using-refs) -- [Ref Lifecycle](#ref-lifecycle) -- [Best Practices](#best-practices) -- [Troubleshooting](#troubleshooting) - -## How Refs Work - -Classic flow: - -```text -full DOM/HTML -> selector guessing -> action -``` - -cmux flow: - -```text -snapshot -> refs (e1/e2/...) -> direct action -``` - -## The Snapshot Command - -```bash -cmux browser surface:7 snapshot -cmux browser surface:7 snapshot --interactive -cmux browser surface:7 snapshot --interactive --compact --max-depth 3 -``` - -## Using Refs - -```bash -cmux browser surface:7 click e6 -cmux browser surface:7 fill e10 "user@example.com" -cmux browser surface:7 fill e11 "password123" -cmux browser surface:7 click e12 -``` - -## Ref Lifecycle - -Refs are invalidated when page structure changes. - -```bash -cmux browser surface:7 snapshot --interactive -# e1 is "Next" - -cmux browser surface:7 click e1 - -# page changed, take a fresh snapshot -cmux browser surface:7 snapshot --interactive -``` - -## Best Practices - -1. Snapshot before interacting. -2. Re-snapshot after navigation/modal/open-close flows. -3. Use `--snapshot-after` on mutating actions. -4. Scope snapshots with `--selector` for very large pages. - -## Troubleshooting - -### not_found / stale ref - -```bash -cmux browser surface:7 snapshot --interactive -``` - -### Element missing due visibility/timing - -```bash -cmux browser surface:7 wait --selector "#target" --timeout-ms 10000 -cmux browser surface:7 scroll --dy 400 -cmux browser surface:7 snapshot --interactive -``` - -### Too many elements - -```bash -cmux browser surface:7 snapshot --selector "form#checkout" --interactive -``` diff --git a/skills/cmux-browser/references/video-recording.md b/skills/cmux-browser/references/video-recording.md deleted file mode 100644 index f0f96a43427..00000000000 --- a/skills/cmux-browser/references/video-recording.md +++ /dev/null @@ -1,52 +0,0 @@ -# Video Recording - -Status and alternatives for capturing browser automation evidence in cmux. - -**Related**: [commands.md](commands.md), [SKILL.md](../SKILL.md) - -## Contents - -- [Current Status](#current-status) -- [Recommended Alternatives](#recommended-alternatives) -- [Use Cases](#use-cases) -- [Best Practices](#best-practices) - -## Current Status - -`cmux browser` currently does not expose a built-in video recording command. - -Why: cmux browser automation runs on WKWebView, and the agent-browser style recording pipeline is Chrome/CDP-specific. - -## Recommended Alternatives - -### 1. Step Screenshots - -```bash -cmux browser surface:7 screenshot > /tmp/step1.b64 -cmux browser surface:7 click e3 --snapshot-after --json -cmux browser surface:7 screenshot > /tmp/step2.b64 -``` - -### 2. Snapshot Timeline - -```bash -cmux browser surface:7 snapshot --interactive > /tmp/snap-1.txt -cmux browser surface:7 click e3 --snapshot-after --json > /tmp/action-1.json -cmux browser surface:7 snapshot --interactive > /tmp/snap-2.txt -``` - -### 3. macOS Window Capture (external) - -Use an external screen recorder if full-motion capture is required. - -## Use Cases - -- Debug flaky browser automation. -- Produce artifacts for CI logs. -- Document flow changes between releases. - -## Best Practices - -1. Capture snapshot before and after each mutating action. -2. Add `--snapshot-after` on clicks/fills/types that change state. -3. Keep artifacts grouped by timestamp/run id. diff --git a/skills/cmux-browser/templates/authenticated-session.sh b/skills/cmux-browser/templates/authenticated-session.sh deleted file mode 100755 index 284b77af8f5..00000000000 --- a/skills/cmux-browser/templates/authenticated-session.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -SURFACE="${1:-surface:1}" -STATE_FILE="${2:-./auth-state.json}" -DASHBOARD_URL="${3:-https://app.example.com/dashboard}" - -if [ -f "$STATE_FILE" ]; then - cmux browser "$SURFACE" state load "$STATE_FILE" -fi - -cmux browser "$SURFACE" goto "$DASHBOARD_URL" -cmux browser "$SURFACE" get url -cmux browser "$SURFACE" wait --load-state complete --timeout-ms 15000 -cmux browser "$SURFACE" snapshot --interactive - -echo "If redirected to login, complete login flow then run:" -echo " cmux browser $SURFACE state save $STATE_FILE" diff --git a/skills/cmux-browser/templates/capture-workflow.sh b/skills/cmux-browser/templates/capture-workflow.sh deleted file mode 100755 index e4728dcf9ac..00000000000 --- a/skills/cmux-browser/templates/capture-workflow.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -SURFACE="${1:-surface:1}" -OUT_DIR="${2:-./browser-artifacts}" -mkdir -p "$OUT_DIR" - -TS="$(date +%Y%m%d-%H%M%S)" -cmux browser "$SURFACE" snapshot --interactive > "$OUT_DIR/snapshot-$TS.txt" -cmux browser "$SURFACE" screenshot > "$OUT_DIR/screenshot-$TS.b64" - -echo "Wrote: $OUT_DIR/snapshot-$TS.txt" -echo "Wrote: $OUT_DIR/screenshot-$TS.b64" diff --git a/skills/cmux-browser/templates/form-automation.sh b/skills/cmux-browser/templates/form-automation.sh deleted file mode 100755 index 0c50d15e944..00000000000 --- a/skills/cmux-browser/templates/form-automation.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -URL="${1:-https://example.com/form}" -SURFACE="${2:-surface:1}" - -cmux browser "$SURFACE" goto "$URL" -cmux browser "$SURFACE" get url -cmux browser "$SURFACE" wait --load-state complete --timeout-ms 15000 -cmux browser "$SURFACE" snapshot --interactive - -echo "Now run fill/click commands using refs from the snapshot above." diff --git a/skills/cmux-debug-windows/SKILL.md b/skills/cmux-debug-windows/SKILL.md deleted file mode 100644 index 885c5f49df4..00000000000 --- a/skills/cmux-debug-windows/SKILL.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: cmux-debug-windows -description: Manage cmux debug windows and related debug menu wiring for Sidebar Debug, Background Debug, and Menu Bar Extra Debug. Use this when the user asks to open/tune these debug controls, add or adjust Debug menu entries, or capture/copy a combined debug config snapshot. ---- - -# cmux Debug Windows - -Keep this workflow focused on existing debug windows and menu entries. Do not add a new utility/debug control window unless the user asks explicitly. - -## Workflow - -1. Verify debug menu wiring in `Sources/cmuxApp.swift` under `CommandMenu("Debug")`. - - Menu path in app: `Debug` → `Debug Windows` → window entry. - - The `Debug` menu only exists in DEBUG builds (`./scripts/reload.sh --tag ...`). - - Release builds (`reloadp.sh`, `reloads.sh`) do not show this menu. -2. Keep these actions available in `Menu("Debug Windows")`: -- `Sidebar Debug…` -- `Background Debug…` -- `Menu Bar Extra Debug…` -- `Open All Debug Windows` -3. Reuse existing per-window copy buttons (`Copy Config`) in each debug window before adding new UI. -4. For one combined payload, run: -```bash -skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh --copy -``` -5. After code edits, run build + tagged reload: -```bash -xcodebuild -project GhosttyTabs.xcodeproj -scheme cmux -configuration Debug -destination 'platform=macOS' build -./scripts/reload.sh --tag -``` - -## Key Files - -- `Sources/cmuxApp.swift`: Debug menu entries and debug window controllers/views. -- `Sources/AppDelegate.swift`: Menu bar extra debug settings payload and defaults keys. - -## Script - -- `scripts/debug_windows_snapshot.sh` - -Purpose: -- Reads current debug-related defaults values. -- Prints one combined snapshot for sidebar/background/menu bar extra. -- Optionally copies it to clipboard. - -Examples: -```bash -skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh -skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh --copy -skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh --domain --copy -``` diff --git a/skills/cmux-debug-windows/agents/openai.yaml b/skills/cmux-debug-windows/agents/openai.yaml deleted file mode 100644 index 39e648dd09b..00000000000 --- a/skills/cmux-debug-windows/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "cmux Debug Windows" - short_description: "Tune cmux debug windows and copy snapshots." - default_prompt: "Use this skill to manage cmux sidebar/background/menu-bar debug windows, keep Debug menu wiring clean, and capture copyable debug snapshots." diff --git a/skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh b/skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh deleted file mode 100755 index 7798e8e7ac1..00000000000 --- a/skills/cmux-debug-windows/scripts/debug_windows_snapshot.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -usage() { - cat <<'USAGE' -Usage: debug_windows_snapshot.sh [--domain ] [--copy] - -Collect Sidebar Debug, Background Debug, Menu Bar Extra, and Browser DevTools debug values -from macOS defaults and print a combined payload. Use --copy to also copy the payload. - -Examples: - debug_windows_snapshot.sh - debug_windows_snapshot.sh --copy - debug_windows_snapshot.sh --domain dev.manaflow.cmux --copy -USAGE -} - -domain="" -copy_flag=0 - -while [[ $# -gt 0 ]]; do - case "$1" in - --domain) - shift - [[ $# -gt 0 ]] || { echo "Missing value for --domain" >&2; exit 1; } - domain="$1" - ;; - --copy) - copy_flag=1 - ;; - -h|--help) - usage - exit 0 - ;; - *) - echo "Unknown argument: $1" >&2 - usage >&2 - exit 1 - ;; - esac - shift -done - -discover_domain() { - defaults domains 2>/dev/null \ - | tr ',' '\n' \ - | tr -d ' ' \ - | grep -E 'cmux' \ - | head -n1 || true -} - -read_value() { - local key="$1" - local fallback="$2" - local value - value=$(defaults read "$domain" "$key" 2>/dev/null || true) - if [[ -z "$value" ]]; then - printf '%s' "$fallback" - else - printf '%s' "$value" - fi -} - -format_number() { - local raw="$1" - local precision="$2" - if [[ "$raw" =~ ^-?[0-9]+([.][0-9]+)?$ ]]; then - printf "%.*f" "$precision" "$raw" - else - printf "%.*f" "$precision" 0 - fi -} - -if [[ -z "$domain" ]]; then - domain="$(discover_domain)" -fi - -if [[ -z "$domain" ]]; then - echo "Could not auto-detect a cmux defaults domain. Pass --domain ." >&2 - exit 1 -fi - -if ! defaults domains 2>/dev/null | tr ',' '\n' | tr -d ' ' | grep -Fxq "$domain"; then - echo "Defaults domain '$domain' was not found on this machine." >&2 - exit 1 -fi - -sidebarPreset="$(read_value sidebarPreset nativeSidebar)" -sidebarMaterial="$(read_value sidebarMaterial sidebar)" -sidebarBlendMode="$(read_value sidebarBlendMode behindWindow)" -sidebarState="$(read_value sidebarState followWindow)" -sidebarBlurOpacity="$(format_number "$(read_value sidebarBlurOpacity 0.79)" 2)" -sidebarTintHex="$(read_value sidebarTintHex '#101010')" -sidebarTintOpacity="$(format_number "$(read_value sidebarTintOpacity 0.54)" 2)" -sidebarCornerRadius="$(format_number "$(read_value sidebarCornerRadius 0.0)" 1)" -sidebarActiveTabIndicatorStyle="$(read_value sidebarActiveTabIndicatorStyle solidFill)" -shortcutHintSidebarXOffset="$(format_number "$(read_value shortcutHintSidebarXOffset 0.0)" 1)" -shortcutHintSidebarYOffset="$(format_number "$(read_value shortcutHintSidebarYOffset 0.0)" 1)" -shortcutHintTitlebarXOffset="$(format_number "$(read_value shortcutHintTitlebarXOffset 4.0)" 1)" -shortcutHintTitlebarYOffset="$(format_number "$(read_value shortcutHintTitlebarYOffset 0.0)" 1)" -shortcutHintPaneTabXOffset="$(format_number "$(read_value shortcutHintPaneTabXOffset 0.0)" 1)" -shortcutHintPaneTabYOffset="$(format_number "$(read_value shortcutHintPaneTabYOffset 0.0)" 1)" -shortcutHintAlwaysShow="$(read_value shortcutHintAlwaysShow 0)" - -bgGlassEnabled="$(read_value bgGlassEnabled 1)" -bgGlassMaterial="$(read_value bgGlassMaterial hudWindow)" -bgGlassTintHex="$(read_value bgGlassTintHex '#000000')" -bgGlassTintOpacity="$(format_number "$(read_value bgGlassTintOpacity 0.05)" 2)" - -menubarDebugPreviewEnabled="$(read_value menubarDebugPreviewEnabled 0)" -menubarDebugPreviewCount="$(read_value menubarDebugPreviewCount 1)" -menubarDebugBadgeRectX="$(format_number "$(read_value menubarDebugBadgeRectX 5.38)" 2)" -menubarDebugBadgeRectY="$(format_number "$(read_value menubarDebugBadgeRectY 6.43)" 2)" -menubarDebugBadgeRectWidth="$(format_number "$(read_value menubarDebugBadgeRectWidth 10.75)" 2)" -menubarDebugBadgeRectHeight="$(format_number "$(read_value menubarDebugBadgeRectHeight 11.58)" 2)" -menubarDebugSingleDigitFontSize="$(format_number "$(read_value menubarDebugSingleDigitFontSize 6.70)" 2)" -menubarDebugMultiDigitFontSize="$(format_number "$(read_value menubarDebugMultiDigitFontSize 6.70)" 2)" -menubarDebugSingleDigitYOffset="$(format_number "$(read_value menubarDebugSingleDigitYOffset 0.60)" 2)" -menubarDebugMultiDigitYOffset="$(format_number "$(read_value menubarDebugMultiDigitYOffset 0.60)" 2)" -legacySingleDigitX="$(read_value menubarDebugTextRectXAdjust '')" -if [[ -n "$legacySingleDigitX" ]]; then -menubarDebugSingleDigitXAdjust="$(format_number "$legacySingleDigitX" 2)" -else - menubarDebugSingleDigitXAdjust="$(format_number "$(read_value menubarDebugSingleDigitXAdjust -1.10)" 2)" -fi -menubarDebugMultiDigitXAdjust="$(format_number "$(read_value menubarDebugMultiDigitXAdjust 2.42)" 2)" -menubarDebugTextRectWidthAdjust="$(format_number "$(read_value menubarDebugTextRectWidthAdjust 1.80)" 2)" - -browserDevToolsIconName="$(read_value browserDevToolsIconName 'wrench.and.screwdriver')" -browserDevToolsIconColor="$(read_value browserDevToolsIconColor bonsplitInactive)" - -payload="$(cat </dev/null 2>&1; then - printf '%s' "$payload" | pbcopy - echo "Copied debug snapshot to clipboard." - else - echo "pbcopy not available; skipped clipboard copy." >&2 - fi -fi diff --git a/skills/cmux-markdown/SKILL.md b/skills/cmux-markdown/SKILL.md deleted file mode 100644 index 56a7fe10d56..00000000000 --- a/skills/cmux-markdown/SKILL.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -name: cmux-markdown -description: Open markdown files in a formatted viewer panel with live reload. Use when you need to display plans, documentation, or notes alongside the terminal with rich rendering (headings, code blocks, tables, lists). ---- - -# Markdown Viewer with cmux - -Use this skill to display markdown files in a dedicated panel with rich formatting and live file watching. - -## Core Workflow - -1. Write your plan or notes to a `.md` file. -2. Open it in a markdown panel. -3. The panel auto-updates when the file changes on disk. - -```bash -# Open a markdown file as a split panel next to the current terminal -cmux markdown open plan.md - -# Absolute path -cmux markdown open /path/to/PLAN.md - -# Target a specific workspace -cmux markdown open design.md --workspace workspace:2 -``` - -## When to Use - -- Displaying an agent plan or task list alongside the terminal -- Showing documentation, changelogs, or READMEs while working -- Reviewing notes that update in real-time (e.g., a plan file being written by another process) - -## Live File Watching - -The panel automatically re-renders when the file changes on disk. This works with: - -- Direct writes (`echo "..." >> plan.md`) -- Editor saves (vim, nano, VS Code) -- Atomic file replacement (write to temp, rename over original) -- Agent-generated plan files that are updated progressively - -If the file is deleted, the panel shows a "file unavailable" state. During atomic replace, the panel attempts automatic reconnection within its short retry window. If the file returns later, close and reopen the panel. - -## Agent Integration - -### Opening a plan file - -Write your plan to a file, then open it: - -```bash -cat > plan.md << 'EOF' -# Task Plan - -## Steps -1. Analyze the codebase -2. Implement the feature -3. Write tests -4. Verify the build -EOF - -cmux markdown open plan.md -``` - -### Updating a plan in real-time - -The panel live-reloads, so simply overwrite the file as work progresses: - -```bash -# The markdown panel updates automatically when the file changes -echo "## Step 1: Complete" >> plan.md -``` - -### Recommended AGENTS.md instruction - -Add this to your project's `AGENTS.md` to instruct coding agents to use the markdown viewer: - -```markdown -## Plan Display - -When creating a plan or task list, write it to a `.md` file and open it in cmux: - - cmux markdown open plan.md - -The panel renders markdown with rich formatting and auto-updates when the file changes. -``` - -## Routing - -```bash -# Open in the caller's workspace (default -- uses PROGRAMA_WORKSPACE_ID) -cmux markdown open plan.md - -# Open in a specific workspace -cmux markdown open plan.md --workspace workspace:2 - -# Open splitting from a specific surface -cmux markdown open plan.md --surface surface:5 - -# Open in a specific window -cmux markdown open plan.md --window window:1 -``` - -## Deep-Dive References - -| Reference | When to Use | -|-----------|-------------| -| [references/commands.md](references/commands.md) | Full command syntax and options | -| [references/live-reload.md](references/live-reload.md) | File watching behavior, atomic writes, edge cases | - -## Rendering Support - -The markdown panel renders: - -- Headings (h1-h6) with dividers on h1/h2 -- Fenced code blocks with monospaced font -- Inline code with highlighted background -- Tables with alternating row colors -- Ordered and unordered lists (nested) -- Blockquotes with left border -- Bold, italic, strikethrough -- Links (clickable) -- Horizontal rules -- Images (inline) - -Supports both light and dark mode. diff --git a/skills/cmux-markdown/agents/openai.yaml b/skills/cmux-markdown/agents/openai.yaml deleted file mode 100644 index 0ce42fe4296..00000000000 --- a/skills/cmux-markdown/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "cmux Markdown Viewer" - short_description: "Open markdown files in a formatted panel with live reload alongside the terminal." - default_prompt: "Use this skill to display markdown plans, docs, or notes in a cmux panel: write to a .md file, run 'cmux markdown open ', and the panel auto-updates when the file changes." diff --git a/skills/cmux-markdown/references/commands.md b/skills/cmux-markdown/references/commands.md deleted file mode 100644 index eb58f5b8b5d..00000000000 --- a/skills/cmux-markdown/references/commands.md +++ /dev/null @@ -1,69 +0,0 @@ -# Command Reference (cmux Markdown) - -## Opening a Markdown Panel - -```bash -cmux markdown open -cmux markdown # shorthand (implicit "open") -``` - -### Options - -| Flag | Description | Default | -|------|-------------|---------| -| `--workspace ` | Target workspace | `$PROGRAMA_WORKSPACE_ID` | -| `--surface ` | Source surface to split from | Focused surface | -| `--window ` | Target window | Current window | - -### Output - -``` -OK surface=surface:8 pane=pane:3 path=/absolute/path/to/file.md -``` - -With `--json`: - -```json -{ - "window_id": "...", - "workspace_id": "...", - "pane_id": "...", - "surface_id": "...", - "path": "/absolute/path/to/file.md" -} -``` - -## Path Resolution - -- Relative paths are resolved against the caller's current working directory. -- `~` is expanded to the home directory. -- The resolved absolute path is returned in the output. - -```bash -# These are equivalent when run from /Users/me/project -cmux markdown open plan.md -cmux markdown open ./plan.md -cmux markdown open /Users/me/project/plan.md -``` - -## Panel Behavior - -- The panel opens as a **horizontal split** to the right of the source surface. -- The tab title shows the filename (e.g., `plan.md`). -- The tab icon is a document icon. -- Content is **read-only** with text selection enabled. -- The file path is displayed as a breadcrumb at the top of the panel. - -## Session Persistence - -Markdown panels are saved and restored across sessions. On restore, the panel re-reads the file from disk. If the file no longer exists at restore time, the panel is not recreated. - -## Help - -```bash -cmux markdown --help -cmux markdown -h -``` - -See also: -- [live-reload.md](live-reload.md) diff --git a/skills/cmux-markdown/references/live-reload.md b/skills/cmux-markdown/references/live-reload.md deleted file mode 100644 index ca0ba724221..00000000000 --- a/skills/cmux-markdown/references/live-reload.md +++ /dev/null @@ -1,53 +0,0 @@ -# Live Reload Behavior - -The markdown panel watches the file on disk and automatically re-renders when it changes. This enables real-time plan tracking as agents or editors update the file. - -## How It Works - -The panel uses a kernel-level file system watcher (`DispatchSource` with `O_EVTONLY`) that monitors the file for: - -- **Write events** -- content was modified in place -- **Extend events** -- content was appended -- **Delete events** -- file was removed (atomic replace step 1) -- **Rename events** -- file was moved or renamed - -## Supported Write Patterns - -| Pattern | Supported | Notes | -|---------|-----------|-------| -| Direct write (`echo >>`) | Yes | Triggers write/extend event | -| Editor save (vim, nano) | Yes | Most editors use atomic write (see below) | -| Atomic replace (write tmp + rename) | Yes | Handled via delete/rename recovery | -| `sed -i` | Yes | Uses atomic replace internally | -| VS Code / IDE save | Yes | Uses atomic replace | -| Agent progressive writes | Yes | Each write triggers a re-render | - -## Atomic File Replacement - -Many editors and tools write files atomically: write to a temporary file, then rename it over the original. This shows up as a **delete** event followed by a new file appearing at the same path. - -The panel handles this by: - -1. Detecting the delete/rename event -2. Attempting to re-read the file immediately (in case the rename already happened) -3. If the file is missing, wait 500 ms and check again (the new file may not yet be in place) -4. Reconnecting the file watcher to the new inode - -## File Unavailable State - -If the file is deleted and does not reappear within the retry window, the panel shows a "file unavailable" state with the original path. The panel does not close automatically -- the user must close it manually. - -If the file later reappears at the same path (e.g., the user recreates it), the panel does NOT automatically reconnect. Close and reopen the panel to pick up the new file. - -## Performance - -- Re-reads are dispatched to the main thread and run synchronously. -- Large files (100KB+) may cause brief UI hitches during re-render. For extremely large markdown files, consider splitting into smaller documents. -- The file watcher runs on a low-priority background queue and has negligible CPU impact. - -## Tips for Agents - -- **Write the full plan file first, then open it.** This avoids the panel showing a partially written file. -- **Append-style updates work well.** Adding sections to the end of a file triggers a smooth re-render. -- **Overwriting the entire file is fine.** The atomic replace handling ensures no data is lost. -- **Don't delete and recreate rapidly.** If writing a new version, prefer overwriting in place or using atomic replacement. diff --git a/skills/cmux/SKILL.md b/skills/cmux/SKILL.md deleted file mode 100644 index 515315ccf98..00000000000 --- a/skills/cmux/SKILL.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -name: cmux -description: End-user control of cmux topology and routing (windows, workspaces, panes/surfaces, focus, moves, reorder, identify, trigger flash). Use when automation needs deterministic placement and navigation in a multi-pane cmux layout. ---- - -# cmux Core Control - -Use this skill to control non-browser cmux topology and routing. - -## Core Concepts - -- Window: top-level macOS cmux window. -- Workspace: tab-like group within a window. -- Pane: split container in a workspace. -- Surface: a tab within a pane (terminal or browser panel). - -## Fast Start - -```bash -# identify current caller context -cmux identify --json - -# list topology -cmux list-windows -cmux list-workspaces -cmux list-panes -cmux list-pane-surfaces --pane pane:1 - -# create/focus/move -cmux new-workspace -cmux new-split right --panel pane:1 -cmux move-surface --surface surface:7 --pane pane:2 --focus true -cmux reorder-surface --surface surface:7 --before surface:3 - -# attention cue -cmux trigger-flash --surface surface:7 -``` - -## Handle Model - -- Default output uses short refs: `window:N`, `workspace:N`, `pane:N`, `surface:N`. -- UUIDs are still accepted as inputs. -- Request UUID output only when needed: `--id-format uuids|both`. - -## Deep-Dive References - -| Reference | When to Use | -|-----------|-------------| -| [references/handles-and-identify.md](references/handles-and-identify.md) | Handle syntax, self-identify, caller targeting | -| [references/windows-workspaces.md](references/windows-workspaces.md) | Window/workspace lifecycle and reorder/move | -| [references/panes-surfaces.md](references/panes-surfaces.md) | Splits, surfaces, move/reorder, focus routing | -| [references/trigger-flash-and-health.md](references/trigger-flash-and-health.md) | Flash cue and surface health checks | -| [../cmux-browser/SKILL.md](../cmux-browser/SKILL.md) | Browser automation on surface-backed webviews | -| [../cmux-markdown/SKILL.md](../cmux-markdown/SKILL.md) | Markdown viewer panel with live file watching | diff --git a/skills/cmux/agents/openai.yaml b/skills/cmux/agents/openai.yaml deleted file mode 100644 index 8c8f26dfa1d..00000000000 --- a/skills/cmux/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "cmux Core" - short_description: "Control windows/workspaces/panes/surfaces and routing with cmux CLI." - default_prompt: "Use this skill to inspect and manipulate cmux topology: identify context, target handles, create/focus/move/reorder windows/workspaces/panes/surfaces, and use trigger-flash for visual confirmation." diff --git a/skills/cmux/references/handles-and-identify.md b/skills/cmux/references/handles-and-identify.md deleted file mode 100644 index 83493f3251d..00000000000 --- a/skills/cmux/references/handles-and-identify.md +++ /dev/null @@ -1,35 +0,0 @@ -# Handles and Identify - -Use `identify` and short handles for deterministic automation targeting. - -## Handle Inputs - -Most v2-backed commands accept: -- UUID -- short ref (`window:N`, `workspace:N`, `pane:N`, `surface:N`) -- index (where legacy/index-based commands still allow it) - -## Self Identify - -```bash -cmux identify --json -``` - -Returns current focused topology plus optional caller resolution. - -## Caller Override - -```bash -cmux identify --workspace workspace:2 -cmux identify --workspace workspace:2 --surface surface:8 -``` - -Useful for agents that need to route relative actions from a known caller anchor. - -## Output Shaping - -```bash -cmux --json identify # refs-first output -cmux --json --id-format both identify -cmux --json --id-format uuids identify -``` diff --git a/skills/cmux/references/panes-surfaces.md b/skills/cmux/references/panes-surfaces.md deleted file mode 100644 index faab563c150..00000000000 --- a/skills/cmux/references/panes-surfaces.md +++ /dev/null @@ -1,36 +0,0 @@ -# Panes and Surfaces - -Split layout, surface creation, focus, move, and reorder. - -## Inspect - -```bash -cmux list-panes -cmux list-pane-surfaces --pane pane:1 -``` - -## Create Splits/Surfaces - -```bash -cmux new-split right --panel pane:1 -cmux new-surface --type terminal --pane pane:1 -cmux new-surface --type browser --pane pane:1 --url https://example.com -``` - -## Focus and Close - -```bash -cmux focus-pane --pane pane:2 -cmux focus-panel --panel surface:7 -cmux close-surface --surface surface:7 -``` - -## Move/Reorder Surfaces - -```bash -cmux move-surface --surface surface:7 --pane pane:2 --focus true -cmux move-surface --surface surface:7 --workspace workspace:2 --window window:1 --after surface:4 -cmux reorder-surface --surface surface:7 --before surface:3 -``` - -Surface identity is stable across move/reorder operations. diff --git a/skills/cmux/references/trigger-flash-and-health.md b/skills/cmux/references/trigger-flash-and-health.md deleted file mode 100644 index 97dfc71e4b4..00000000000 --- a/skills/cmux/references/trigger-flash-and-health.md +++ /dev/null @@ -1,23 +0,0 @@ -# Trigger Flash and Surface Health - -Operational checks useful in automation loops. - -## Trigger Flash - -Flash a surface or workspace to provide visual confirmation in UI: - -```bash -cmux trigger-flash --surface surface:7 -cmux trigger-flash --workspace workspace:2 -``` - -## Surface Health - -Use health output to detect hidden/detached/non-windowed surfaces: - -```bash -cmux surface-health -cmux surface-health --workspace workspace:2 -``` - -Use this before routing focused input if UI state may be stale. diff --git a/skills/cmux/references/windows-workspaces.md b/skills/cmux/references/windows-workspaces.md deleted file mode 100644 index bde07d49ec2..00000000000 --- a/skills/cmux/references/windows-workspaces.md +++ /dev/null @@ -1,31 +0,0 @@ -# Windows and Workspaces - -Window/workspace lifecycle and ordering operations. - -## Inspect - -```bash -cmux list-windows -cmux current-window -cmux list-workspaces -cmux current-workspace -``` - -## Create/Focus/Close - -```bash -cmux new-window -cmux focus-window --window window:2 -cmux close-window --window window:2 - -cmux new-workspace -cmux select-workspace --workspace workspace:4 -cmux close-workspace --workspace workspace:4 -``` - -## Reorder and Move - -```bash -cmux reorder-workspace --workspace workspace:4 --before workspace:2 -cmux move-workspace-to-window --workspace workspace:4 --window window:1 -``` diff --git a/skills/release/SKILL.md b/skills/release/SKILL.md deleted file mode 100644 index c654fbb0bfa..00000000000 --- a/skills/release/SKILL.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -name: release -description: "Prepare and ship a cmux release end-to-end: choose the next version, curate user-facing changelog entries, bump versions, open and monitor a release PR, merge, tag, and verify published artifacts. Use when asked to cut, prepare, publish, or tag a new release." ---- - -# Release - -Run this workflow to prepare and publish a cmux release. - -## Workflow - -1. Determine the version: -- Read `MARKETING_VERSION` from `GhosttyTabs.xcodeproj/project.pbxproj`. -- Default to a minor bump unless the user explicitly requests patch/major/specific version. - -2. Create a release branch: -- `git checkout -b release/vX.Y.Z` - -3. Gather user-facing changes and contributors since the last tag: -- `git describe --tags --abbrev=0` -- `git log --oneline ..HEAD --no-merges` -- Keep only end-user visible changes (features, bug fixes, UX/perf behavior). -- **Collect contributors:** For each PR, get the author with `gh pr view --repo darkroomengineering/programa --json author --jq '.author.login'`. Also check linked issue reporters with `gh issue view --json author --jq '.author.login'`. -- Build a deduplicated list of all contributor `@handle`s. - -4. Update changelogs: -- Update `CHANGELOG.md`. -- Do not edit a separate docs changelog file; `web/app/docs/changelog/page.tsx` renders from `CHANGELOG.md`. -- Use categories `Added`, `Changed`, `Fixed`, `Removed`. -- **Credit contributors inline** (see Contributor Credits below). -- If no user-facing changes exist, confirm with the user before continuing. - -5. Bump app version metadata: -- Prefer `./scripts/bump-version.sh`: - - `./scripts/bump-version.sh` (minor) - - `./scripts/bump-version.sh patch|major|X.Y.Z` -- Ensure both `MARKETING_VERSION` and `CURRENT_PROJECT_VERSION` are updated. - -6. Commit and push branch: -- Stage release files (changelog + version updates). -- Commit with `Bump version to X.Y.Z`. -- `git push -u origin release/vX.Y.Z`. - -7. Create release PR: -- `gh pr create --title "Release vX.Y.Z" --body "..."` -- Include a concise changelog summary in the PR body. - -8. Watch CI and resolve failures: -- `gh pr checks --watch` -- Fix failing checks, push, and wait for green. - -9. Merge and sync `main`: -- `gh pr merge --squash --delete-branch` -- `git checkout main && git pull --ff-only` - -10. Create and push tag: -- `git tag vX.Y.Z` -- `git push origin vX.Y.Z` - -11. Verify release workflow and assets: -- `gh run watch --repo darkroomengineering/programa` -- Confirm release exists in GitHub Releases and includes `cmux-macos.dmg`. - -## Changelog Rules - -- Include only user-visible changes. -- Exclude internal-only changes (CI, tests, docs-only edits, refactors without behavior changes). -- Write concise user-facing bullets in present tense. - -## Contributor Credits - -Credit the people who made each release happen: - -- **Per-entry:** Append `— thanks @user!` for community code contributions. Use `— thanks @user for the report!` for bug reporters (when different from PR author). No callout for core team (`lawrencecchen`, `austinywang`) — core work is the baseline. -- **Summary:** Add a `### Thanks to N contributors!` section at the bottom of each release with an alphabetical list of all `[@handle](https://github.com/handle)` links (including core team). -- **GitHub Release body:** Include the same "Thanks to N contributors!" section with linked handles. diff --git a/skills/release/agents/openai.yaml b/skills/release/agents/openai.yaml deleted file mode 100644 index ea4bcfb9782..00000000000 --- a/skills/release/agents/openai.yaml +++ /dev/null @@ -1,4 +0,0 @@ -interface: - display_name: "cmux Release" - short_description: "Prepare and publish cmux releases from version bump to tag." - default_prompt: "Use this skill to run the cmux release workflow: choose version, generate user-facing changelog updates, bump versions, open and monitor release PRs, merge, tag, and verify release artifacts." From 653f10a9c8a802deedbb26ca58e401fbfc4b0e6d Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:16:39 -0300 Subject: [PATCH 02/12] =?UTF-8?q?reduce:=20dead=20Swift=20code=20=E2=80=94?= =?UTF-8?q?=20SwiftTerm=20prototype=20view,=20orphaned=20toolbar=20control?= =?UTF-8?q?ler,=20pre-rename=20debug=20flags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sources/TerminalView.swift (96 lines): pre-Ghostty SwiftTerm prototype (TerminalContainerView/FocusableTerminalView/SwiftTermView). Not referenced anywhere and not even compiled — the only Sources file with no PBXBuildFile entry. Superseded by GhosttyTerminalView. - Sources/WindowToolbarController.swift (89 lines): NSToolbarDelegate class never instantiated anywhere; its start(tabManager:) has no call site. Removed with its four pbxproj entries. - GhosttyTerminalView.swift backgroundLogEnabled: drop GHOSTTYTABS_DEBUG_BG / GhosttyTabsDebugBG fallbacks — pre-rename flag names with zero writers in the repo, superseded by PROGRAMA_DEBUG_BG / PROGRAMA_DEBUG_LOG / programaDebugBG (which reload.sh and tests_v2 actively use) --- GhosttyTabs.xcodeproj/project.pbxproj | 4 - Sources/GhosttyTerminalView.swift | 8 +- Sources/TerminalView.swift | 287 -------------------------- Sources/WindowToolbarController.swift | 285 ------------------------- 4 files changed, 1 insertion(+), 583 deletions(-) delete mode 100644 Sources/TerminalView.swift delete mode 100644 Sources/WindowToolbarController.swift diff --git a/GhosttyTabs.xcodeproj/project.pbxproj b/GhosttyTabs.xcodeproj/project.pbxproj index cc71d23b352..f17feb34968 100644 --- a/GhosttyTabs.xcodeproj/project.pbxproj +++ b/GhosttyTabs.xcodeproj/project.pbxproj @@ -81,7 +81,6 @@ A500120D /* UpdateLogStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001223 /* UpdateLogStore.swift */; }; A5001207 /* UpdatePopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001217 /* UpdatePopoverView.swift */; }; A5001208 /* UpdateTitlebarAccessory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001218 /* UpdateTitlebarAccessory.swift */; }; - A5001209 /* WindowToolbarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001219 /* WindowToolbarController.swift */; }; A5001240 /* WindowDecorationsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001241 /* WindowDecorationsController.swift */; }; A5001610 /* SessionPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001611 /* SessionPersistence.swift */; }; A5001640 /* RemoteRelayZshBootstrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5001641 /* RemoteRelayZshBootstrap.swift */; }; @@ -304,7 +303,6 @@ A5001224 /* UpdateTestURLProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Update/UpdateTestURLProtocol.swift; sourceTree = ""; }; A5001217 /* UpdatePopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Update/UpdatePopoverView.swift; sourceTree = ""; }; A5001218 /* UpdateTitlebarAccessory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Update/UpdateTitlebarAccessory.swift; sourceTree = ""; }; - A5001219 /* WindowToolbarController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowToolbarController.swift; sourceTree = ""; }; A5001222 /* WindowAccessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowAccessor.swift; sourceTree = ""; }; A5001223 /* UpdateLogStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Update/UpdateLogStore.swift; sourceTree = ""; }; A5001241 /* WindowDecorationsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowDecorationsController.swift; sourceTree = ""; }; @@ -574,7 +572,6 @@ A5001223 /* UpdateLogStore.swift */, A5001217 /* UpdatePopoverView.swift */, A5001218 /* UpdateTitlebarAccessory.swift */, - A5001219 /* WindowToolbarController.swift */, A5001241 /* WindowDecorationsController.swift */, A5001222 /* WindowAccessor.swift */, A5001611 /* SessionPersistence.swift */, @@ -904,7 +901,6 @@ A500120D /* UpdateLogStore.swift in Sources */, A5001207 /* UpdatePopoverView.swift in Sources */, A5001208 /* UpdateTitlebarAccessory.swift in Sources */, - A5001209 /* WindowToolbarController.swift in Sources */, A5001240 /* WindowDecorationsController.swift in Sources */, A500120C /* WindowAccessor.swift in Sources */, A5001610 /* SessionPersistence.swift in Sources */, diff --git a/Sources/GhosttyTerminalView.swift b/Sources/GhosttyTerminalView.swift index cf2dc6a82ec..f766dd1b47c 100644 --- a/Sources/GhosttyTerminalView.swift +++ b/Sources/GhosttyTerminalView.swift @@ -1339,13 +1339,7 @@ class GhosttyApp { if ProcessInfo.processInfo.environment["PROGRAMA_DEBUG_LOG"] != nil { return true } - if ProcessInfo.processInfo.environment["GHOSTTYTABS_DEBUG_BG"] == "1" { - return true - } - if UserDefaults.standard.bool(forKey: "programaDebugBG") { - return true - } - return UserDefaults.standard.bool(forKey: "GhosttyTabsDebugBG") + return UserDefaults.standard.bool(forKey: "programaDebugBG") }() private let backgroundLogURL = GhosttyApp.resolveBackgroundLogURL() private let backgroundLogStartUptime = ProcessInfo.processInfo.systemUptime diff --git a/Sources/TerminalView.swift b/Sources/TerminalView.swift deleted file mode 100644 index 932e5dd3e5d..00000000000 --- a/Sources/TerminalView.swift +++ /dev/null @@ -1,287 +0,0 @@ -import SwiftUI -import SwiftTerm -import AppKit - -// Helper to create SwiftTerm Color from hex -extension SwiftTerm.Color { - convenience init(hex: String) { - var hexSanitized = hex.trimmingCharacters(in: .whitespacesAndNewlines) - hexSanitized = hexSanitized.replacingOccurrences(of: "#", with: "") - - var rgb: UInt64 = 0 - Scanner(string: hexSanitized).scanHexInt64(&rgb) - - let r = UInt16((rgb & 0xFF0000) >> 16) - let g = UInt16((rgb & 0x00FF00) >> 8) - let b = UInt16(rgb & 0x0000FF) - - // Convert 8-bit to 16-bit - self.init(red: r * 257, green: g * 257, blue: b * 257) - } -} - -struct TerminalContainerView: View { - @ObservedObject var tab: Tab - let config: GhosttyConfig - - init(tab: Tab, config: GhosttyConfig = GhosttyConfig.load()) { - self.tab = tab - self.config = config - } - - var body: some View { - SwiftTermView(tab: tab, config: config) - .background(Color(config.backgroundColor)) - } -} - -// Custom wrapper to handle first responder and layout -class FocusableTerminalView: NSView { - var terminalView: LocalProcessTerminalView? - private var scroller: NSScroller? - private var fadeTimer: Timer? - private var scrollMonitor: Any? - private var lastScrollerValue: Double = 0 - - override var acceptsFirstResponder: Bool { true } - - override func becomeFirstResponder() -> Bool { - if let tv = terminalView { - DispatchQueue.main.async { - self.window?.makeFirstResponder(tv) - } - } - return true - } - - override func mouseDown(with event: NSEvent) { - window?.makeFirstResponder(terminalView) - super.mouseDown(with: event) - } - - override func layout() { - super.layout() - if let tv = terminalView, bounds.size.width > 0, bounds.size.height > 0 { - tv.setFrameSize(bounds.size) - setupScrollerTracking(in: tv) - } - } - - override func viewDidMoveToWindow() { - super.viewDidMoveToWindow() - if window != nil, let tv = terminalView, bounds.size.width > 0 { - tv.setFrameSize(bounds.size) - setupScrollerTracking(in: tv) - setupScrollMonitor() - } - } - - override func viewWillMove(toWindow newWindow: NSWindow?) { - super.viewWillMove(toWindow: newWindow) - if newWindow == nil, let monitor = scrollMonitor { - NSEvent.removeMonitor(monitor) - scrollMonitor = nil - } - } - - private func setupScrollerTracking(in view: NSView) { - if scroller == nil { - for subview in view.subviews { - if let s = subview as? NSScroller { - scroller = s - s.alphaValue = 0 // Start hidden - lastScrollerValue = s.doubleValue - break - } - } - } - } - - private func setupScrollMonitor() { - guard scrollMonitor == nil else { return } - - // Monitor scroll wheel events - scrollMonitor = NSEvent.addLocalMonitorForEvents(matching: .scrollWheel) { [weak self] event in - if let self = self, - let window = self.window, - event.window == window { - self.showScrollerTemporarily() - } - return event - } - } - - func showScrollerTemporarily() { - guard let scroller = scroller else { return } - - // Show scroller - NSAnimationContext.runAnimationGroup { context in - context.duration = 0.15 - scroller.animator().alphaValue = 1 - } - - // Cancel existing timer - fadeTimer?.invalidate() - - // Fade out after 1.5 seconds of no scrolling - fadeTimer = Timer.scheduledTimer(withTimeInterval: 1.5, repeats: false) { [weak self] _ in - NSAnimationContext.runAnimationGroup { context in - context.duration = 0.3 - self?.scroller?.animator().alphaValue = 0 - } - } - } -} - -struct SwiftTermView: NSViewRepresentable { - @ObservedObject var tab: Tab - let config: GhosttyConfig - - func makeNSView(context: Context) -> FocusableTerminalView { - let containerView = FocusableTerminalView() - containerView.wantsLayer = true - - let terminalView = LocalProcessTerminalView(frame: CGRect(x: 0, y: 0, width: 800, height: 600)) - - // Use autoresizingMask instead of Auto Layout for SwiftTerm compatibility - terminalView.autoresizingMask = [.width, .height] - - // Apply Ghostty config colors - terminalView.nativeForegroundColor = config.foregroundColor - terminalView.nativeBackgroundColor = config.backgroundColor - - // Set cursor color to match Ghostty - terminalView.caretColor = config.cursorColor - terminalView.caretTextColor = config.cursorTextColor - - // Set selection colors - terminalView.selectedTextBackgroundColor = config.selectionBackground - - // Apply ANSI palette colors - applyPalette(to: terminalView, config: config) - - // Configure font from config - if let font = NSFont(name: config.fontFamily, size: config.fontSize) { - terminalView.font = font - } else { - terminalView.font = NSFont.monospacedSystemFont(ofSize: config.fontSize, weight: .regular) - } - - // Set terminal delegate (only processDelegate, not terminalDelegate which breaks input) - terminalView.processDelegate = context.coordinator - context.coordinator.terminalView = terminalView - context.coordinator.containerView = containerView - - containerView.addSubview(terminalView) - containerView.terminalView = terminalView - - // Get shell path - let shell = ProcessInfo.processInfo.environment["SHELL"] ?? "/bin/zsh" - - // Determine working directory - let workingDir = config.workingDirectory ?? FileManager.default.homeDirectoryForCurrentUser.path - - // Build environment with working directory - var env = ProcessInfo.processInfo.environment - env["PWD"] = workingDir - - // Start the shell process - terminalView.startProcess( - executable: shell, - args: [], - environment: env.map { "\($0.key)=\($0.value)" }, - execName: "-" + (shell as NSString).lastPathComponent - ) - - // Change to working directory - terminalView.feed(text: "cd \"\(workingDir)\" && clear\n") - - - // Make first responder after a delay to ensure window is ready - DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { - containerView.window?.makeFirstResponder(terminalView) - } - - return containerView - } - - func updateNSView(_ nsView: FocusableTerminalView, context: Context) { - // When this view becomes visible (tab switch), make it first responder - DispatchQueue.main.async { - if let terminalView = nsView.terminalView { - nsView.window?.makeFirstResponder(terminalView) - } - } - } - - func makeCoordinator() -> Coordinator { - Coordinator(tab: tab) - } - - private func applyPalette(to terminalView: LocalProcessTerminalView, config: GhosttyConfig) { - // SwiftTerm uses installColors to set the ANSI color palette - // Build the color array (16 ANSI colors) - - // Default Monokai Classic palette hex values - let defaultPaletteHex: [String] = [ - "#272822", // 0 - black - "#f92672", // 1 - red - "#a6e22e", // 2 - green - "#e6db74", // 3 - yellow - "#fd971f", // 4 - blue (orange in Monokai) - "#ae81ff", // 5 - magenta - "#66d9ef", // 6 - cyan - "#fdfff1", // 7 - white - "#6e7066", // 8 - bright black - "#f92672", // 9 - bright red - "#a6e22e", // 10 - bright green - "#e6db74", // 11 - bright yellow - "#fd971f", // 12 - bright blue - "#ae81ff", // 13 - bright magenta - "#66d9ef", // 14 - bright cyan - "#fdfff1", // 15 - bright white - ] - - var colors: [SwiftTerm.Color] = [] - for i in 0..<16 { - colors.append(SwiftTerm.Color(hex: defaultPaletteHex[i])) - } - - // Install the ANSI colors - terminalView.installColors(colors) - } - - class Coordinator: NSObject, LocalProcessTerminalViewDelegate { - var tab: Tab - weak var terminalView: LocalProcessTerminalView? - weak var containerView: FocusableTerminalView? - - init(tab: Tab) { - self.tab = tab - } - - func sizeChanged(source: LocalProcessTerminalView, newCols: Int, newRows: Int) { - // Handle size change - } - - func setTerminalTitle(source: LocalProcessTerminalView, title: String) { - DispatchQueue.main.async { - if !title.isEmpty { - self.tab.applyProcessTitle(title) - } - } - } - - func hostCurrentDirectoryUpdate(source: TerminalView, directory: String?) { - if let dir = directory { - DispatchQueue.main.async { - self.tab.currentDirectory = dir - } - } - } - - func processTerminated(source: TerminalView, exitCode: Int32?) { - // Could close tab or show message - } - } -} diff --git a/Sources/WindowToolbarController.swift b/Sources/WindowToolbarController.swift deleted file mode 100644 index 7bee2d1a8cc..00000000000 --- a/Sources/WindowToolbarController.swift +++ /dev/null @@ -1,285 +0,0 @@ -import AppKit -import Combine -import SwiftUI - -@MainActor -final class WindowToolbarController: NSObject, NSToolbarDelegate { - private let commandItemIdentifier = NSToolbarItem.Identifier("programa.focusedCommand") - - private weak var tabManager: TabManager? - - private var commandLabels: [ObjectIdentifier: NSTextField] = [:] - private var observers: [NSObjectProtocol] = [] - private let focusedCommandUpdateCoalescer = NotificationBurstCoalescer(delay: 1.0 / 30.0) - private var lastKnownPresentationMode: WorkspacePresentationModeSettings.Mode = WorkspacePresentationModeSettings.mode() - private var minimalModeMouseMonitor: Any? - - override init() { - super.init() - } - - deinit { - for observer in observers { - NotificationCenter.default.removeObserver(observer) - } - if let monitor = minimalModeMouseMonitor { - NSEvent.removeMonitor(monitor) - } - } - - func start(tabManager: TabManager) { - self.tabManager = tabManager - attachToExistingWindows() - installObservers() - scheduleFocusedCommandTextUpdate() - } - - private func installObservers() { - let center = NotificationCenter.default - observers.append(center.addObserver( - forName: .ghosttyDidSetTitle, - object: nil, - queue: .main - ) { [weak self] _ in - Task { @MainActor [weak self] in - self?.scheduleFocusedCommandTextUpdate() - } - }) - - observers.append(center.addObserver( - forName: .ghosttyDidFocusTab, - object: nil, - queue: .main - ) { [weak self] _ in - Task { @MainActor [weak self] in - self?.scheduleFocusedCommandTextUpdate() - } - }) - - observers.append(center.addObserver( - forName: NSWindow.didBecomeMainNotification, - object: nil, - queue: .main - ) { [weak self] notification in - guard let window = notification.object as? NSWindow else { return } - Task { @MainActor in - self?.attach(to: window) - } - }) - - observers.append(center.addObserver( - forName: UserDefaults.didChangeNotification, - object: nil, - queue: .main - ) { [weak self] _ in - Task { @MainActor [weak self] in - self?.updateToolbarVisibilityIfNeeded() - } - }) - } - - private func updateToolbarVisibilityIfNeeded() { - let currentMode = WorkspacePresentationModeSettings.mode() - guard currentMode != lastKnownPresentationMode else { return } - lastKnownPresentationMode = currentMode - let isMinimal = currentMode == .minimal - for window in NSApp.windows { - if isMinimal { - window.toolbar = nil - } else { - attach(to: window) - } - } - updateMinimalModeMouseMonitor(isMinimal: isMinimal) - // After toolbar changes, force titlebar accessories to recalculate. - // Toolbar removal/re-addition changes the titlebar geometry, and - // accessories hidden via isHidden need a layout pass to reappear. - if !isMinimal { - DispatchQueue.main.async { - for window in NSApp.windows { - for accessory in window.titlebarAccessoryViewControllers { - if !accessory.isHidden { - accessory.view.needsLayout = true - accessory.view.superview?.needsLayout = true - } - } - window.contentView?.needsLayout = true - window.contentView?.superview?.needsLayout = true - window.invalidateShadow() - } - } - } - } - - private func attachToExistingWindows() { - for window in NSApp.windows { - attach(to: window) - } - } - - private func attach(to window: NSWindow) { - guard window.toolbar == nil else { return } - guard !WorkspacePresentationModeSettings.isMinimal() else { return } - let toolbar = NSToolbar(identifier: NSToolbar.Identifier("programa.toolbar")) - toolbar.delegate = self - toolbar.displayMode = .iconOnly - toolbar.sizeMode = .small - toolbar.allowsUserCustomization = false - toolbar.autosavesConfiguration = false - toolbar.showsBaselineSeparator = false - window.toolbar = toolbar - window.toolbarStyle = .unifiedCompact - window.titleVisibility = .hidden - } - - private func scheduleFocusedCommandTextUpdate() { - focusedCommandUpdateCoalescer.signal { [weak self] in - self?.updateFocusedCommandText() - } - } - - private func updateFocusedCommandText() { - guard let tabManager else { return } - let text: String - if let selectedId = tabManager.selectedTabId, - let tab = tabManager.tabs.first(where: { $0.id == selectedId }) { - let title = tab.title.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) - text = title.isEmpty ? "Cmd: —" : "Cmd: \(title)" - } else { - text = "Cmd: —" - } - - for label in commandLabels.values { - if label.stringValue != text { - label.stringValue = text - } - } - } - - // MARK: - Minimal Mode Mouse Pass-Through - - /// In minimal mode the Bonsplit tab bar occupies the native titlebar zone, - /// but AppKit's NSTitlebarContainerView sits above the SwiftUI hosting view - /// and consumes mouse events, making tabs non-clickable and non-hoverable (#2633). - /// Walk the window hierarchy and make the titlebar container pass-through when - /// minimal mode is enabled, excluding the traffic light buttons themselves. - private func updateMinimalModeMouseMonitor(isMinimal: Bool) { - if let monitor = minimalModeMouseMonitor { - NSEvent.removeMonitor(monitor) - minimalModeMouseMonitor = nil - } - - for window in NSApp.windows { - configureTitlebarPassThrough(window: window, passThrough: isMinimal) - } - - // Observe new windows becoming main so we configure them too. - guard isMinimal else { return } - minimalModeMouseMonitor = NotificationCenter.default.addObserver( - forName: NSWindow.didBecomeMainNotification, - object: nil, - queue: .main - ) { [weak self] notification in - guard let window = notification.object as? NSWindow else { return } - Task { @MainActor in - guard WorkspacePresentationModeSettings.isMinimal() else { return } - self?.configureTitlebarPassThrough(window: window, passThrough: true) - } - } - } - - private func configureTitlebarPassThrough(window: NSWindow, passThrough: Bool) { - // Find the titlebar container view by walking the theme frame's subviews. - // This is the standard view that intercepts mouse events in the titlebar zone. - guard let themeFrame = window.contentView?.superview else { return } - for subview in themeFrame.subviews { - let className = String(describing: type(of: subview)) - if className.contains("NSTitlebarContainerView") { - // Make the container's non-button subviews transparent to hit testing - // by installing/removing a pass-through overlay. - if passThrough { - installTitlebarPassThrough(on: subview, window: window) - } else { - removeTitlebarPassThrough(from: subview) - } - break - } - } - } - - private func installTitlebarPassThrough(on titlebarContainer: NSView, window: NSWindow) { - // Already installed? - guard !titlebarContainer.subviews.contains(where: { $0 is TitlebarHitTestPassThroughView }) else { return } - let passView = TitlebarHitTestPassThroughView(window: window) - passView.frame = titlebarContainer.bounds - passView.autoresizingMask = [.width, .height] - titlebarContainer.addSubview(passView, positioned: .above, relativeTo: nil) - } - - private func removeTitlebarPassThrough(from titlebarContainer: NSView) { - titlebarContainer.subviews - .compactMap { $0 as? TitlebarHitTestPassThroughView } - .forEach { $0.removeFromSuperview() } - } - - // MARK: - NSToolbarDelegate - - func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { - [commandItemIdentifier, .flexibleSpace] - } - - func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { - [commandItemIdentifier, .flexibleSpace] - } - - func toolbar(_ toolbar: NSToolbar, itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier, willBeInsertedIntoToolbar flag: Bool) -> NSToolbarItem? { - if itemIdentifier == commandItemIdentifier { - let item = NSToolbarItem(itemIdentifier: itemIdentifier) - let label = NSTextField(labelWithString: "Cmd: —") - label.font = NSFont.systemFont(ofSize: 12, weight: .medium) - label.textColor = .secondaryLabelColor - label.lineBreakMode = .byTruncatingMiddle - label.setContentHuggingPriority(.defaultHigh, for: .horizontal) - item.view = label - commandLabels[ObjectIdentifier(toolbar)] = label - scheduleFocusedCommandTextUpdate() - return item - } - - - return nil - } - -} - -/// Transparent overlay installed above the NSTitlebarContainerView in minimal mode. -/// Returns `nil` from `hitTest` for all points except the traffic light buttons, -/// allowing clicks to fall through to the SwiftUI-hosted Bonsplit tab bar beneath. -private final class TitlebarHitTestPassThroughView: NSView { - private weak var targetWindow: NSWindow? - - init(window: NSWindow) { - self.targetWindow = window - super.init(frame: .zero) - } - - @available(*, unavailable) - required init?(coder: NSCoder) { fatalError() } - - override var isOpaque: Bool { false } - override var acceptsFirstResponder: Bool { false } - - override func hitTest(_ point: NSPoint) -> NSView? { - // Let traffic light buttons receive their events normally. - let buttonTypes: [NSWindow.ButtonType] = [.closeButton, .miniaturizeButton, .zoomButton] - for type in buttonTypes { - guard let button = targetWindow?.standardWindowButton(type) else { continue } - let pointInButton = button.convert(point, from: self) - if button.bounds.contains(pointInButton) { - return button - } - } - // Pass through everything else so the SwiftUI tab bar can receive events. - return nil - } -} From dc961ae13ca5708252db88c6cc70c1bcceca3cb2 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:18:44 -0300 Subject: [PATCH 03/12] reduce: dead availability fallbacks below the macOS 14.0 deployment target MACOSX_DEPLOYMENT_TARGET is 14.0 for every target and configuration, so guards for macOS 11.0/13.0/13.3/14.0 are tautologies and their else branches are unreachable: - Backport.swift: onKeyPress #available(macOS 14) wrapper and its no-op macOS 13 fallback - ContentView.swift: ClearScrollBackground #available(macOS 13.0) fork - BrowserPopupWindowController.swift + BrowserPanel.swift: two #available(macOS 13.3) guards around webView.isInspectable - BrowserPanel.swift: guard #available(macOS 14.0) in applyRemoteProxyConfigurationIfAvailable - ProgramaWebView.swift: #available(macOS 11.0) around UTType(mimeType:) Left alone: #available(macOS 15/26) guards (above target, live) and the compound 'if preferAsync, #available(macOS 11.0, *)' in TerminalController+BrowserAutomation.swift whose else branch is reachable via preferAsync == false --- Sources/Backport.swift | 17 ++++++----------- Sources/ContentView.swift | 11 +++-------- Sources/Panels/BrowserPanel.swift | 6 +----- .../Panels/BrowserPopupWindowController.swift | 4 +--- Sources/Panels/ProgramaWebView.swift | 6 ++---- 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/Sources/Backport.swift b/Sources/Backport.swift index b6a1ec3b440..3f2cbbc8450 100644 --- a/Sources/Backport.swift +++ b/Sources/Backport.swift @@ -41,19 +41,14 @@ extension Backport where Content: View { #endif } - /// Backported onKeyPress that works on macOS 14+ and is a no-op on macOS 13. func onKeyPress(_ key: KeyEquivalent, action: @escaping (EventModifiers) -> BackportKeyPressResult) -> some View { #if canImport(AppKit) - if #available(macOS 14, *) { - return content.onKeyPress(key, phases: [.down, .repeat], action: { keyPress in - switch action(keyPress.modifiers) { - case .handled: return .handled - case .ignored: return .ignored - } - }) - } else { - return content - } + return content.onKeyPress(key, phases: [.down, .repeat], action: { keyPress in + switch action(keyPress.modifiers) { + case .handled: return .handled + case .ignored: return .ignored + } + }) #else return content #endif diff --git a/Sources/ContentView.swift b/Sources/ContentView.swift index e293a53ca6d..050a594db5b 100644 --- a/Sources/ContentView.swift +++ b/Sources/ContentView.swift @@ -12852,14 +12852,9 @@ enum SidebarSelection { private struct ClearScrollBackground: ViewModifier { func body(content: Content) -> some View { - if #available(macOS 13.0, *) { - content - .scrollContentBackground(.hidden) - .background(ScrollBackgroundClearer()) - } else { - content - .background(ScrollBackgroundClearer()) - } + content + .scrollContentBackground(.hidden) + .background(ScrollBackgroundClearer()) } } diff --git a/Sources/Panels/BrowserPanel.swift b/Sources/Panels/BrowserPanel.swift index 56000d05845..8fae96ae0c0 100644 --- a/Sources/Panels/BrowserPanel.swift +++ b/Sources/Panels/BrowserPanel.swift @@ -2528,9 +2528,7 @@ final class BrowserPanel: Panel, ObservableObject { let webView = ProgramaWebView(frame: .zero, configuration: config) webView.allowsBackForwardNavigationGestures = true - if #available(macOS 13.3, *) { - webView.isInspectable = true - } + webView.isInspectable = true // Match only the unpainted/loading background so newly-created browsers don't flash // white before content loads. Do not force page appearance or inject color-scheme CSS; // websites must keep control of their own theme. @@ -2790,8 +2788,6 @@ final class BrowserPanel: Panel, ObservableObject { } private func applyRemoteProxyConfigurationIfAvailable() { - guard #available(macOS 14.0, *) else { return } - let store = webView.configuration.websiteDataStore // Relay endpoint takes precedence: when active, configure both SOCKS and diff --git a/Sources/Panels/BrowserPopupWindowController.swift b/Sources/Panels/BrowserPopupWindowController.swift index e3e4e0a7f6c..3bba5d56d04 100644 --- a/Sources/Panels/BrowserPopupWindowController.swift +++ b/Sources/Panels/BrowserPopupWindowController.swift @@ -107,9 +107,7 @@ final class BrowserPopupWindowController: NSObject, NSWindowDelegate { // shared cookie/storage scope and opener linkage. let webView = ProgramaWebView(frame: .zero, configuration: configuration) webView.allowsBackForwardNavigationGestures = true - if #available(macOS 13.3, *) { - webView.isInspectable = true - } + webView.isInspectable = true webView.underPageBackgroundColor = GhosttyBackgroundTheme.currentColor() webView.customUserAgent = BrowserUserAgentSettings.safariUserAgent BrowserThemeSettings.apply(openerPanel?.currentBrowserThemeMode ?? BrowserThemeSettings.mode(), to: webView) diff --git a/Sources/Panels/ProgramaWebView.swift b/Sources/Panels/ProgramaWebView.swift index 86595925967..b4b810af6c8 100644 --- a/Sources/Panels/ProgramaWebView.swift +++ b/Sources/Panels/ProgramaWebView.swift @@ -519,10 +519,8 @@ final class ProgramaWebView: WKWebView { private static func filenameExtension(forMIMEType mimeType: String?) -> String? { guard let mimeType, !mimeType.isEmpty else { return nil } - if #available(macOS 11.0, *) { - if let preferred = UTType(mimeType: mimeType)?.preferredFilenameExtension, !preferred.isEmpty { - return preferred - } + if let preferred = UTType(mimeType: mimeType)?.preferredFilenameExtension, !preferred.isEmpty { + return preferred } switch mimeType.lowercased() { case "image/jpeg": From c09730736beda677f8a139308572e41ea5829442 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:20:44 -0300 Subject: [PATCH 04/12] =?UTF-8?q?reduce:=20orphaned=20resources=20?= =?UTF-8?q?=E2=80=94=2051=20dead=20localization=20keys,=20unused=20icon=20?= =?UTF-8?q?bundle,=20vestigial=20bridge=20header,=20handler-less=20URL=20s?= =?UTF-8?q?cheme=20registration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Localizable.xcstrings: remove 51 of 944 keys with zero String(localized:) references anywhere in the repo. Mix of cmux-branded leftovers (dialog.quitCmux.*, menu.quitCmux, browser.proceedInCmux, menu.app.openCmuxSettingsFile) and keys superseded by renamed successors (alert.moveTab.* replaced dialog.moveTab.*, resetPalette.subtitleV2 replaced .subtitle, sidebar.remote.subtitleFallback replaced .subtitle, etc.). Independently re-verified each key before removal; cli.claude-teams.usage was a false positive and stays. - AppIcon.icon/: Icon Composer bundle present only as an inert Xcode navigator file reference — no PBXBuildFile, no Resources build phase entry; ASSETCATALOG_COMPILER_APPICON_NAME points at Assets.xcassets appiconsets - ghostty.h: 4-line wrapper from the pre-GhosttyKit bridging approach; the live bridge is programa-Bridging-Header.h (@import GhosttyKit) and nothing includes this file - Info.plist: drop CFBundleURLTypes registering Programa as a Default-rank http/https handler — the only URL entry point filters to isFileURL and silently drops web URLs, so selecting Programa as default browser would swallow links; registration has had no handler since the cmux-era commit that added it --- AppIcon.icon/Assets/programa-terminal.png | Bin 607652 -> 0 bytes AppIcon.icon/icon.json | 35 -- GhosttyTabs.xcodeproj/project.pbxproj | 4 - Resources/Info.plist | 16 - Resources/Localizable.xcstrings | 561 ---------------------- ghostty.h | 8 - 6 files changed, 624 deletions(-) delete mode 100644 AppIcon.icon/Assets/programa-terminal.png delete mode 100644 AppIcon.icon/icon.json delete mode 100644 ghostty.h diff --git a/AppIcon.icon/Assets/programa-terminal.png b/AppIcon.icon/Assets/programa-terminal.png deleted file mode 100644 index 85fa5c43635dc0c0331414d03acaf4a95974dc91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607652 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 z 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[WZnhCX&&4$tngP(sSFnNYNB2$T`$8Es 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Ⓢ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℘VYnpO_V8m>2J#)R@1PP37f;(H@pL_w2dbSQip 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 L{an^LB{Ts5lvW&k diff --git a/AppIcon.icon/icon.json b/AppIcon.icon/icon.json deleted file mode 100644 index b667b8dc1f7..00000000000 --- a/AppIcon.icon/icon.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "fill" : "automatic", - "groups" : [ - { - "layers" : [ - { - "glass" : false, - "image-name" : "programa-terminal.png", - "name" : "programa-terminal", - "position" : { - "scale" : 1, - "translation-in-points" : [ - 0, - 0 - ] - } - } - ], - "shadow" : { - "kind" : "neutral", - "opacity" : 0.5 - }, - "translucency" : { - "enabled" : false, - "value" : 0 - } - } - ], - "supported-platforms" : { - "circles" : [ - "watchOS" - ], - "squares" : "shared" - } -} diff --git a/GhosttyTabs.xcodeproj/project.pbxproj b/GhosttyTabs.xcodeproj/project.pbxproj index f17feb34968..949895fa9ab 100644 --- a/GhosttyTabs.xcodeproj/project.pbxproj +++ b/GhosttyTabs.xcodeproj/project.pbxproj @@ -255,7 +255,6 @@ A5001544 /* TerminalImageTransfer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalImageTransfer.swift; sourceTree = ""; }; A5001545 /* TerminalSSHSessionDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSSHSessionDetector.swift; sourceTree = ""; }; A5001016 /* GhosttyKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = GhosttyKit.xcframework; sourceTree = ""; }; - A5001017 /* ghostty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ghostty.h; sourceTree = ""; }; A5001018 /* programa-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "programa-Bridging-Header.h"; sourceTree = ""; }; A5001019 /* TerminalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalController.swift; sourceTree = ""; }; A5FF0004 /* TerminalController+BrowserAutomation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TerminalController+BrowserAutomation.swift"; sourceTree = ""; }; @@ -318,7 +317,6 @@ C0B4D9B1A1B2C3D4E5F60718 /* UpdatePillUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdatePillUITests.swift; sourceTree = ""; }; E6FA9085A1B2C3D4E5F60718 /* WorkspaceDescriptionUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkspaceDescriptionUITests.swift; sourceTree = ""; }; A5001101 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - IC000002 /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder; path = AppIcon.icon; sourceTree = ""; }; B2E7294509CC42FE9191870E /* xterm-ghostty */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ghostty/terminfo/78/xterm-ghostty"; sourceTree = ""; }; C1ADE00001A1B2C3D4E5F719 /* claude */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "Resources/bin/claude"; sourceTree = SOURCE_ROOT; }; D1BEF00001A1B2C3D4E5F719 /* open */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "Resources/bin/open"; sourceTree = SOURCE_ROOT; }; @@ -489,9 +487,7 @@ B9000003A1B2C3D4E5F60719 /* CLI */, 087C454FFF74443AB06942C3 /* Resources */, A5001101 /* Assets.xcassets */, - IC000002 /* AppIcon.icon */, A5001016 /* GhosttyKit.xcframework */, - A5001017 /* ghostty.h */, A5001018 /* programa-Bridging-Header.h */, 3196C9C2D01F054C1D3385DD /* programaUITests */, F1000003A1B2C3D4E5F60718 /* programaTests */, diff --git a/Resources/Info.plist b/Resources/Info.plist index 0765fb74ffe..97ae3a790b8 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -47,22 +47,6 @@ A program running within Programa would like to use your microphone. NSCameraUsageDescription A program running within Programa would like to use your camera. - CFBundleURLTypes - - - CFBundleTypeRole - Viewer - CFBundleURLName - $(PRODUCT_BUNDLE_IDENTIFIER).web - LSHandlerRank - Default - CFBundleURLSchemes - - http - https - - - NSPrincipalClass NSApplication NSAppleScriptEnabled diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 1bed922097d..36c9efc5177 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -606,17 +606,6 @@ } } }, - "browser.action.newTab": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "new tab" - } - } - } - }, "browser.addressBar.placeholder": { "extractionState": "manual", "localizations": { @@ -771,17 +760,6 @@ } } }, - "browser.error.frameLoadInterrupted": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Frame load interrupted" - } - } - } - }, "browser.error.insecure.message": { "extractionState": "manual", "localizations": { @@ -859,17 +837,6 @@ } } }, - "browser.goToURL": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "go to URL" - } - } - } - }, "browser.import.additionalData": { "extractionState": "manual", "localizations": { @@ -1112,17 +1079,6 @@ } } }, - "browser.import.destinationProfile.help": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Imported data goes into the selected Programa profile." - } - } - } - }, "browser.import.destinationProfile.mergeHelp": { "extractionState": "manual", "localizations": { @@ -1717,17 +1673,6 @@ } } }, - "browser.proceedInCmux": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Proceed in Programa" - } - } - } - }, "browser.profile.buttonHelp": { "extractionState": "manual", "localizations": { @@ -1860,17 +1805,6 @@ } } }, - "browser.search.placeholder": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Search" - } - } - } - }, "browser.stop": { "extractionState": "manual", "localizations": { @@ -3609,17 +3543,6 @@ } } }, - "common.dontSave": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Don't Save" - } - } - } - }, "common.installAndRelaunch": { "extractionState": "manual", "localizations": { @@ -4214,50 +4137,6 @@ } } }, - "dialog.closeLastTabWindow.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "This will close the last tab and close the window." - } - } - } - }, - "dialog.closeLastTabWorkspace.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "This will close the last tab and close its workspace." - } - } - } - }, - "dialog.closeOtherTabs.message.one": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "This will close 1 tab in this pane:\n%@" - } - } - } - }, - "dialog.closeOtherTabs.message.other": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "This will close %1$lld tabs in this pane:\n%2$@" - } - } - } - }, "dialog.closeOtherTabs.title": { "extractionState": "manual", "localizations": { @@ -4434,17 +4313,6 @@ } } }, - "dialog.cmuxConfig.confirmCommand.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Are you sure you want to run this command?" - } - } - } - }, "dialog.cmuxConfig.confirmCommand.run": { "extractionState": "manual", "localizations": { @@ -4566,149 +4434,6 @@ } } }, - "dialog.moveFailed.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Programa could not move this tab to the selected destination." - } - } - } - }, - "dialog.moveFailed.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Move Failed" - } - } - } - }, - "dialog.moveTab.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose a destination for this tab." - } - } - } - }, - "dialog.moveTab.move": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Move" - } - } - } - }, - "dialog.moveTab.newWorkspaceCurrentWindow": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "New Workspace in Current Window" - } - } - } - }, - "dialog.moveTab.selectedWorkspaceNewWindow": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Selected Workspace in New Window" - } - } - } - }, - "dialog.moveTab.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Move Tab" - } - } - } - }, - "dialog.quitCmux.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "This will close all windows and workspaces." - } - } - } - }, - "dialog.quitCmux.quit": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Quit" - } - } - } - }, - "dialog.quitCmux.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Quit Programa?" - } - } - } - }, - "dialog.renameTab.message": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Enter a custom name for this tab." - } - } - } - }, - "dialog.renameTab.placeholder": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Tab name" - } - } - } - }, - "dialog.renameTab.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Rename Tab" - } - } - } - }, "dialog.renameWorkspace.message": { "extractionState": "manual", "localizations": { @@ -4852,17 +4577,6 @@ } } }, - "menu.app.openCmuxSettingsFile": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Open settings.json" - } - } - } - }, "menu.app.reloadConfiguration": { "extractionState": "manual", "localizations": { @@ -5358,28 +5072,6 @@ } } }, - "menu.quitCmux": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Quit Programa" - } - } - } - }, - "menu.showNotifications": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Notifications" - } - } - } - }, "menu.updateLogs.copyFocusLogs": { "extractionState": "manual", "localizations": { @@ -5996,39 +5688,6 @@ } } }, - "settings.app.fadeButtons": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Fade Buttons" - } - } - } - }, - "settings.app.fadeButtons.subtitleOff": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Keep action buttons always visible." - } - } - } - }, - "settings.app.fadeButtons.subtitleOn": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show action buttons only on hover." - } - } - } - }, "settings.app.hideAllSidebarDetails": { "extractionState": "manual", "localizations": { @@ -6575,39 +6234,6 @@ } } }, - "settings.app.showWorkspaceTitlebar": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Workspace Title Bar" - } - } - } - }, - "settings.app.showWorkspaceTitlebar.subtitleOff": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Hide the folder and active title above pane tabs." - } - } - } - }, - "settings.app.showWorkspaceTitlebar.subtitleOn": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show the folder and active title above pane tabs." - } - } - } - }, "settings.app.sidebarBranchLayout": { "extractionState": "manual", "localizations": { @@ -7081,28 +6707,6 @@ } } }, - "settings.browser.emptyImport.choose": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Choose What to Import…" - } - } - } - }, - "settings.browser.emptyImport.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Import browser data" - } - } - } - }, "settings.browser.externalPatterns": { "extractionState": "manual", "localizations": { @@ -8159,17 +7763,6 @@ } } }, - "settings.sidebarAppearance.tintColorDark.picker": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Dark tint" - } - } - } - }, "settings.sidebarAppearance.tintColorDark.subtitle": { "extractionState": "manual", "localizations": { @@ -8192,17 +7785,6 @@ } } }, - "settings.sidebarAppearance.tintColorLight.picker": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Light tint" - } - } - } - }, "settings.sidebarAppearance.tintColorLight.subtitle": { "extractionState": "manual", "localizations": { @@ -8291,17 +7873,6 @@ } } }, - "settings.workspaceColors.customColors": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Custom Colors" - } - } - } - }, "settings.workspaceColors.customEntry": { "extractionState": "manual", "localizations": { @@ -8346,28 +7917,6 @@ } } }, - "settings.workspaceColors.noCustomColors": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Custom colors: none yet. Use \"Choose Custom Color...\" from a workspace context menu." - } - } - } - }, - "settings.workspaceColors.paletteNote": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Customize the workspace color palette used by Sidebar > Workspace Color. \"Choose Custom Color...\" entries are persisted below." - } - } - } - }, "settings.workspaceColors.remove": { "extractionState": "manual", "localizations": { @@ -8401,17 +7950,6 @@ } } }, - "settings.workspaceColors.resetPalette.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Restore built-in defaults and clear all custom colors." - } - } - } - }, "settings.workspaceColors.resetPalette.subtitleV2": { "extractionState": "manual", "localizations": { @@ -8929,28 +8467,6 @@ } } }, - "sidebar.indicator.leftRail": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Left Rail" - } - } - } - }, - "sidebar.indicator.solidFill": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Solid Fill" - } - } - } - }, "sidebar.metadata.showLess": { "extractionState": "manual", "localizations": { @@ -9083,17 +8599,6 @@ } } }, - "sidebar.remote.badge": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "SSH" - } - } - } - }, "sidebar.remote.help.connected": { "extractionState": "manual", "localizations": { @@ -9160,17 +8665,6 @@ } } }, - "sidebar.remote.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "SSH • %@" - } - } - } - }, "sidebar.remote.subtitleFallback": { "extractionState": "manual", "localizations": { @@ -9435,17 +8929,6 @@ } } }, - "tab.untitled": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Untitled Tab" - } - } - } - }, "terminalContextMenu.copy": { "extractionState": "manual", "localizations": { @@ -10358,50 +9841,6 @@ } } } - }, - "workspace.tooltip.newBrowser": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "New Browser" - } - } - } - }, - "workspace.tooltip.newTerminal": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "New Terminal" - } - } - } - }, - "workspace.tooltip.splitDown": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Split Down" - } - } - } - }, - "workspace.tooltip.splitRight": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Split Right" - } - } - } } }, "version": "1.0" diff --git a/ghostty.h b/ghostty.h deleted file mode 100644 index 97abfd6d7f2..00000000000 --- a/ghostty.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CMUX_GHOSTTY_BRIDGE_HEADER_H -#define CMUX_GHOSTTY_BRIDGE_HEADER_H - -// Keep the Swift bridge on Ghostty's canonical C API header so Xcode and the -// bundled GhosttyKit stay ABI-aligned across submodule upgrades. -#include "ghostty/include/ghostty.h" - -#endif From 2d3d048aa4e4a0fd52ad129fc2521fbba70a6d52 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:23:22 -0300 Subject: [PATCH 05/12] reduce: vestigial pre-Minimal-Mode settings enums WorkspaceTitlebarSettings and WorkspaceButtonFadeSettings predate WorkspacePresentationModeSettings (Minimal Mode), which replaced them. WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded() and isEnabled() have no call sites; WorkspaceTitlebarSettings.isVisible() was only called from that uncalled migration path. No UI surfaces either enum. Their orphaned localization keys (settings.app.fadeButtons.*, settings.app.showWorkspaceTitlebar.*) went in the previous commit; the resetAllSettings() lines that scrubbed their legacy UserDefaults keys go here. --- Sources/ProgramaApp.swift | 65 --------------------------------------- 1 file changed, 65 deletions(-) diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index 4a4f770c385..51f7590d663 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -4,18 +4,6 @@ import Darwin import Bonsplit import UniformTypeIdentifiers -enum WorkspaceTitlebarSettings { - static let showTitlebarKey = "workspaceTitlebarVisible" - static let defaultShowTitlebar = true - - static func isVisible(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: showTitlebarKey) == nil { - return defaultShowTitlebar - } - return defaults.bool(forKey: showTitlebarKey) - } -} - enum WorkspacePresentationModeSettings { static let modeKey = "workspacePresentationMode" @@ -39,54 +27,6 @@ enum WorkspacePresentationModeSettings { } } -enum WorkspaceButtonFadeSettings { - static let modeKey = "workspaceButtonsFadeMode" - static let legacyTitlebarControlsVisibilityModeKey = "titlebarControlsVisibilityMode" - static let legacyPaneTabBarControlsVisibilityModeKey = "paneTabBarControlsVisibilityMode" - - enum Mode: String { - case enabled - case disabled - } - - static let defaultMode: Mode = .disabled - - static func mode(for rawValue: String?) -> Mode { - Mode(rawValue: rawValue ?? "") ?? defaultMode - } - - static func isEnabled(defaults: UserDefaults = .standard) -> Bool { - mode(for: defaults.string(forKey: modeKey)) == .enabled - } - - static func initializeStoredModeIfNeeded(defaults: UserDefaults = .standard) { - guard defaults.string(forKey: modeKey) == nil else { return } - - if let migratedMode = migratedLegacyMode(defaults: defaults) { - defaults.set(migratedMode.rawValue, forKey: modeKey) - return - } - - let initialMode: Mode = WorkspaceTitlebarSettings.isVisible(defaults: defaults) ? .disabled : .enabled - defaults.set(initialMode.rawValue, forKey: modeKey) - } - - private static func migratedLegacyMode(defaults: UserDefaults) -> Mode? { - let legacyValues = [ - defaults.string(forKey: legacyTitlebarControlsVisibilityModeKey), - defaults.string(forKey: legacyPaneTabBarControlsVisibilityModeKey), - ] - - if legacyValues.contains(where: { $0 == "onHover" || $0 == "hover" || $0 == "enabled" }) { - return .enabled - } - if legacyValues.contains(where: { $0 == "always" || $0 == "disabled" }) { - return .disabled - } - return nil - } -} - enum PaneFirstClickFocusSettings { static let enabledKey = "paneFirstClickFocus.enabled" static let defaultEnabled = false @@ -6018,11 +5958,6 @@ struct SettingsView: View { alwaysShowShortcutHints = ShortcutHintDebugSettings.defaultAlwaysShowHints newWorkspacePlacement = WorkspacePlacementSettings.defaultPlacement.rawValue workspacePresentationMode = WorkspacePresentationModeSettings.defaultMode.rawValue - let defaults = UserDefaults.standard - defaults.removeObject(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.modeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) closeWorkspaceOnLastSurfaceShortcut = LastSurfaceCloseShortcutSettings.defaultValue paneFirstClickFocusEnabled = PaneFirstClickFocusSettings.defaultEnabled workspaceAutoReorder = WorkspaceAutoReorderSettings.defaultValue From 30aae424d64fd1116bf68e6cc4fc04f2dc82276d Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 11:47:08 -0300 Subject: [PATCH 06/12] =?UTF-8?q?restore:=20ghostty.h=20bridge=20header=20?= =?UTF-8?q?=E2=80=94=20CI=20contract,=20not=20dead=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scripts/ensure-ghosttykit.sh validates that the root ghostty.h re-exports ghostty/include/ghostty.h and fails the GhosttyKit source-build fallback without it (compat-tests and ui-regressions both went red when the prebuilt xcframework download 404'd and the fallback ran). No Swift/C file includes it, but the build system treats it as a contract. Reclassified as Deferred: removing it means also removing the guard, which is a maintainer call. --- GhosttyTabs.xcodeproj/project.pbxproj | 2 ++ ghostty.h | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100644 ghostty.h diff --git a/GhosttyTabs.xcodeproj/project.pbxproj b/GhosttyTabs.xcodeproj/project.pbxproj index 949895fa9ab..5ba0f619fc7 100644 --- a/GhosttyTabs.xcodeproj/project.pbxproj +++ b/GhosttyTabs.xcodeproj/project.pbxproj @@ -255,6 +255,7 @@ A5001544 /* TerminalImageTransfer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalImageTransfer.swift; sourceTree = ""; }; A5001545 /* TerminalSSHSessionDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSSHSessionDetector.swift; sourceTree = ""; }; A5001016 /* GhosttyKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = GhosttyKit.xcframework; sourceTree = ""; }; + A5001017 /* ghostty.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ghostty.h; sourceTree = ""; }; A5001018 /* programa-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "programa-Bridging-Header.h"; sourceTree = ""; }; A5001019 /* TerminalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalController.swift; sourceTree = ""; }; A5FF0004 /* TerminalController+BrowserAutomation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TerminalController+BrowserAutomation.swift"; sourceTree = ""; }; @@ -489,6 +490,7 @@ A5001101 /* Assets.xcassets */, A5001016 /* GhosttyKit.xcframework */, A5001018 /* programa-Bridging-Header.h */, + A5001017 /* ghostty.h */, 3196C9C2D01F054C1D3385DD /* programaUITests */, F1000003A1B2C3D4E5F60718 /* programaTests */, A5001042 /* Products */, diff --git a/ghostty.h b/ghostty.h new file mode 100644 index 00000000000..97abfd6d7f2 --- /dev/null +++ b/ghostty.h @@ -0,0 +1,8 @@ +#ifndef CMUX_GHOSTTY_BRIDGE_HEADER_H +#define CMUX_GHOSTTY_BRIDGE_HEADER_H + +// Keep the Swift bridge on Ghostty's canonical C API header so Xcode and the +// bundled GhosttyKit stay ABI-aligned across submodule upgrades. +#include "ghostty/include/ghostty.h" + +#endif From 48506c74926c0a8a0e3d78e3f4a38dc87c7657af Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:00:13 -0300 Subject: [PATCH 07/12] reduce: tests of the deleted WorkspaceButtonFade/WorkspaceTitlebar enums Follow-up to 2d3d048a, which removed the vestigial pre-Minimal-Mode settings enums but missed their unit tests (the programa scheme doesn't compile programaTests, so the local build stayed green while compat-tests went red). - Delete the four tests that exercised the removed WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded migration - Strip legacy-key save/restore hygiene from the three surviving Minimal Mode tests; their assertions are unchanged Verified with build-for-testing on the programa-unit scheme. --- .../AppDelegateShortcutRoutingTests.swift | 116 ------------------ 1 file changed, 116 deletions(-) diff --git a/programaTests/AppDelegateShortcutRoutingTests.swift b/programaTests/AppDelegateShortcutRoutingTests.swift index 08474c6e924..0d20299d8dd 100644 --- a/programaTests/AppDelegateShortcutRoutingTests.swift +++ b/programaTests/AppDelegateShortcutRoutingTests.swift @@ -1551,12 +1551,9 @@ final class AppDelegateShortcutRoutingTests: XCTestCase { let defaults = UserDefaults.standard let savedMode = defaults.object(forKey: WorkspacePresentationModeSettings.modeKey) - let savedLegacyTitlebar = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) defaults.set(WorkspacePresentationModeSettings.Mode.minimal.rawValue, forKey: WorkspacePresentationModeSettings.modeKey) - defaults.removeObject(forKey: WorkspaceTitlebarSettings.showTitlebarKey) defer { restoreDefaultsValue(savedMode, forKey: WorkspacePresentationModeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebar, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) } let windowId = appDelegate.createMainWindow() @@ -1587,12 +1584,9 @@ final class AppDelegateShortcutRoutingTests: XCTestCase { let defaults = UserDefaults.standard let savedMode = defaults.object(forKey: WorkspacePresentationModeSettings.modeKey) - let savedLegacyTitlebar = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) defaults.set(WorkspacePresentationModeSettings.Mode.standard.rawValue, forKey: WorkspacePresentationModeSettings.modeKey) - defaults.removeObject(forKey: WorkspaceTitlebarSettings.showTitlebarKey) defer { restoreDefaultsValue(savedMode, forKey: WorkspacePresentationModeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebar, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) } let windowId = appDelegate.createMainWindow() @@ -1621,124 +1615,14 @@ final class AppDelegateShortcutRoutingTests: XCTestCase { ) } - func testWorkspaceButtonFadeModeDefaultsOffWhenTitlebarVisible() { - let defaults = UserDefaults.standard - let savedMode = defaults.object(forKey: WorkspaceButtonFadeSettings.modeKey) - let savedTitlebarVisibility = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - let savedLegacyTitlebarMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - let savedLegacyPaneMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defer { - restoreDefaultsValue(savedMode, forKey: WorkspaceButtonFadeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedTitlebarVisibility, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebarMode, forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyPaneMode, forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey, defaults: defaults) - } - - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.modeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defaults.set(true, forKey: WorkspaceTitlebarSettings.showTitlebarKey) - - WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded(defaults: defaults) - - XCTAssertEqual( - defaults.string(forKey: WorkspaceButtonFadeSettings.modeKey), - WorkspaceButtonFadeSettings.Mode.disabled.rawValue - ) - } - - func testWorkspaceButtonFadeModeDefaultsOnWhenTitlebarHidden() { - let defaults = UserDefaults.standard - let savedMode = defaults.object(forKey: WorkspaceButtonFadeSettings.modeKey) - let savedTitlebarVisibility = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - let savedLegacyTitlebarMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - let savedLegacyPaneMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defer { - restoreDefaultsValue(savedMode, forKey: WorkspaceButtonFadeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedTitlebarVisibility, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebarMode, forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyPaneMode, forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey, defaults: defaults) - } - - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.modeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defaults.set(false, forKey: WorkspaceTitlebarSettings.showTitlebarKey) - - WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded(defaults: defaults) - - XCTAssertEqual( - defaults.string(forKey: WorkspaceButtonFadeSettings.modeKey), - WorkspaceButtonFadeSettings.Mode.enabled.rawValue - ) - } - - func testWorkspaceButtonFadeModeMigratesLegacyHoverVisibilityPreference() { - let defaults = UserDefaults.standard - let savedMode = defaults.object(forKey: WorkspaceButtonFadeSettings.modeKey) - let savedTitlebarVisibility = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - let savedLegacyTitlebarMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - let savedLegacyPaneMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defer { - restoreDefaultsValue(savedMode, forKey: WorkspaceButtonFadeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedTitlebarVisibility, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebarMode, forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyPaneMode, forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey, defaults: defaults) - } - - defaults.removeObject(forKey: WorkspaceButtonFadeSettings.modeKey) - defaults.set(true, forKey: WorkspaceTitlebarSettings.showTitlebarKey) - defaults.set("always", forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - defaults.set("onHover", forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - - WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded(defaults: defaults) - - XCTAssertEqual( - defaults.string(forKey: WorkspaceButtonFadeSettings.modeKey), - WorkspaceButtonFadeSettings.Mode.enabled.rawValue - ) - } - - func testWorkspaceButtonFadeModePreservesExistingStoredMode() { - let defaults = UserDefaults.standard - let savedMode = defaults.object(forKey: WorkspaceButtonFadeSettings.modeKey) - let savedTitlebarVisibility = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - let savedLegacyTitlebarMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - let savedLegacyPaneMode = defaults.object(forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - defer { - restoreDefaultsValue(savedMode, forKey: WorkspaceButtonFadeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedTitlebarVisibility, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebarMode, forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyPaneMode, forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey, defaults: defaults) - } - - defaults.set(WorkspaceButtonFadeSettings.Mode.disabled.rawValue, forKey: WorkspaceButtonFadeSettings.modeKey) - defaults.set(false, forKey: WorkspaceTitlebarSettings.showTitlebarKey) - defaults.set("onHover", forKey: WorkspaceButtonFadeSettings.legacyTitlebarControlsVisibilityModeKey) - defaults.set("onHover", forKey: WorkspaceButtonFadeSettings.legacyPaneTabBarControlsVisibilityModeKey) - - WorkspaceButtonFadeSettings.initializeStoredModeIfNeeded(defaults: defaults) - - XCTAssertEqual( - defaults.string(forKey: WorkspaceButtonFadeSettings.modeKey), - WorkspaceButtonFadeSettings.Mode.disabled.rawValue - ) - } - func testWorkspaceMinimalModeDefaultsToMinimalPresentation() { let defaults = UserDefaults.standard let savedMode = defaults.object(forKey: WorkspacePresentationModeSettings.modeKey) - let savedLegacyTitlebar = defaults.object(forKey: WorkspaceTitlebarSettings.showTitlebarKey) - let savedLegacyFade = defaults.object(forKey: WorkspaceButtonFadeSettings.modeKey) defer { restoreDefaultsValue(savedMode, forKey: WorkspacePresentationModeSettings.modeKey, defaults: defaults) - restoreDefaultsValue(savedLegacyTitlebar, forKey: WorkspaceTitlebarSettings.showTitlebarKey, defaults: defaults) - restoreDefaultsValue(savedLegacyFade, forKey: WorkspaceButtonFadeSettings.modeKey, defaults: defaults) } defaults.removeObject(forKey: WorkspacePresentationModeSettings.modeKey) - defaults.set(false, forKey: WorkspaceTitlebarSettings.showTitlebarKey) - defaults.set(WorkspaceButtonFadeSettings.Mode.enabled.rawValue, forKey: WorkspaceButtonFadeSettings.modeKey) XCTAssertEqual( WorkspacePresentationModeSettings.mode(defaults: defaults), From 40d6d14ecf9b8c251a7764609663638e6bb85d93 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:29:21 -0300 Subject: [PATCH 08/12] =?UTF-8?q?reduce(settings):=20remove=20App=20Icon?= =?UTF-8?q?=20picker=20=E2=80=94=20icon=20always=20tracks=20system=20appea?= =?UTF-8?q?rance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved removal. AppIconMode/AppIconSettings enums, the AppIconPickerRow, the settings.json app.appIcon key (parse + template + schema), five localization keys, and the AppIconSettingsTests class go; the automatic behavior (AppIconAppearanceObserver) stays and is now the only path. ensureApplicationIcon() clears any stale appIconMode override once at launch so the cross-process dock-tile plugin falls back to automatic too. --- Resources/Localizable.xcstrings | 55 ------ Resources/settings.schema.json | 6 - Sources/AppDelegate.swift | 7 +- .../KeyboardShortcutSettingsFileStore.swift | 12 -- Sources/ProgramaApp.swift | 182 ------------------ .../NotificationAndMenuBarTests.swift | 68 ------- 6 files changed, 5 insertions(+), 325 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 36c9efc5177..2e725b419bc 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -408,39 +408,6 @@ } } }, - "appIcon.automatic": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Automatic" - } - } - } - }, - "appIcon.dark": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Dark" - } - } - } - }, - "appIcon.light": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Light" - } - } - } - }, "appearance.auto": { "extractionState": "manual", "localizations": { @@ -5578,28 +5545,6 @@ } } }, - "settings.app.appIcon": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "App Icon" - } - } - } - }, - "settings.app.appIcon.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Dock and app switcher" - } - } - } - }, "settings.app.closeWorkspaceOnLastSurfaceShortcut": { "extractionState": "manual", "localizations": { diff --git a/Resources/settings.schema.json b/Resources/settings.schema.json index daeee73ebdd..a2ba730c4bc 100644 --- a/Resources/settings.schema.json +++ b/Resources/settings.schema.json @@ -36,12 +36,6 @@ "default": "system", "description": "App appearance mode." }, - "appIcon": { - "type": "string", - "enum": ["automatic", "light", "dark"], - "default": "automatic", - "description": "Dock and app switcher icon style." - }, "newWorkspacePlacement": { "type": "string", "enum": ["top", "afterCurrent", "end"], diff --git a/Sources/AppDelegate.swift b/Sources/AppDelegate.swift index ce3b55e3e89..806971c67d4 100644 --- a/Sources/AppDelegate.swift +++ b/Sources/AppDelegate.swift @@ -9704,8 +9704,11 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent } private func ensureApplicationIcon() { - let mode = AppIconSettings.resolvedMode() - AppIconSettings.applyIcon(mode) + // Manual light/dark override removed; the icon always tracks system + // appearance. Clear any stale pre-removal override so the dock-tile + // plugin (which reads the raw key cross-process) falls back too. + UserDefaults.standard.removeObject(forKey: "appIconMode") + AppIconAppearanceObserver.shared.startObserving() } private func scheduleLaunchServicesBundleRegistration( diff --git a/Sources/KeyboardShortcutSettingsFileStore.swift b/Sources/KeyboardShortcutSettingsFileStore.swift index 6632aefd7d5..3cc8d209134 100644 --- a/Sources/KeyboardShortcutSettingsFileStore.swift +++ b/Sources/KeyboardShortcutSettingsFileStore.swift @@ -338,13 +338,6 @@ final class ProgramaSettingsFileStore { } snapshot.managedUserDefaults[AppearanceSettings.appearanceModeKey] = .string(normalized) } - if let raw = jsonString(section["appIcon"]) { - guard let mode = AppIconMode(rawValue: raw) else { - logInvalid("app.appIcon", sourcePath: sourcePath) - return - } - snapshot.managedUserDefaults[AppIconSettings.modeKey] = .string(mode.rawValue) - } if let raw = jsonString(section["newWorkspacePlacement"]) { guard let placement = NewWorkspacePlacement(rawValue: raw) else { logInvalid("app.newWorkspacePlacement", sourcePath: sourcePath) @@ -1120,8 +1113,6 @@ final class ProgramaSettingsFileStore { case LanguageSettings.languageKey: let language = AppLanguage(rawValue: UserDefaults.standard.string(forKey: defaultsKey) ?? "") ?? .system LanguageSettings.apply(language) - case AppIconSettings.modeKey: - AppIconSettings.applyIcon(AppIconSettings.resolvedMode()) default: break } @@ -1162,8 +1153,6 @@ final class ProgramaSettingsFileStore { case LanguageSettings.languageKey: let language = AppLanguage(rawValue: UserDefaults.standard.string(forKey: defaultsKey) ?? "") ?? .system LanguageSettings.apply(language) - case AppIconSettings.modeKey: - AppIconSettings.applyIcon(AppIconSettings.resolvedMode()) default: break } @@ -1284,7 +1273,6 @@ final class ProgramaSettingsFileStore { "app": [ "language": LanguageSettings.defaultLanguage.rawValue, "appearance": AppearanceSettings.defaultMode.rawValue, - "appIcon": AppIconSettings.defaultMode.rawValue, "newWorkspacePlacement": WorkspacePlacementSettings.defaultPlacement.rawValue, "minimalMode": WorkspacePresentationModeSettings.defaultMode == .minimal, "keepWorkspaceOpenWhenClosingLastSurface": !LastSurfaceCloseShortcutSettings.defaultValue, diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index 51f7590d663..45f3feee1bf 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -3593,94 +3593,6 @@ enum LanguageSettings { }() } -enum AppIconMode: String, CaseIterable, Identifiable { - case automatic - case light - case dark - - var id: String { rawValue } - - var displayName: String { - switch self { - case .automatic: return String(localized: "appIcon.automatic", defaultValue: "Automatic") - case .light: return String(localized: "appIcon.light", defaultValue: "Light") - case .dark: return String(localized: "appIcon.dark", defaultValue: "Dark") - } - } - - var imageName: String? { - switch self { - case .automatic: return nil - case .light: return "AppIconLight" - case .dark: return "AppIconDark" - } - } -} - -enum AppIconSettings { - static let modeKey = "appIconMode" - static let defaultMode: AppIconMode = .automatic - private static let dockTileIconDidChangeNotification = Notification.Name("com.darkroom.programa.appIconDidChange") - - struct Environment { - let imageForMode: (AppIconMode) -> NSImage? - let setApplicationIconImage: (NSImage) -> Void - let startAppearanceObservation: () -> Void - let stopAppearanceObservation: () -> Void - let notifyDockTilePlugin: () -> Void - - static func live() -> Self { - Self( - imageForMode: { mode in - guard let imageName = mode.imageName else { return nil } - return NSImage(named: imageName) - }, - setApplicationIconImage: { icon in - NSApplication.shared.applicationIconImage = icon - }, - startAppearanceObservation: { - AppIconAppearanceObserver.shared.startObserving() - }, - stopAppearanceObservation: { - AppIconAppearanceObserver.shared.stopObserving() - }, - notifyDockTilePlugin: { - DistributedNotificationCenter.default().postNotificationName( - AppIconSettings.dockTileIconDidChangeNotification, - object: nil, - userInfo: nil, - deliverImmediately: true - ) - } - ) - } - } - - static func resolvedMode(defaults: UserDefaults = .standard) -> AppIconMode { - guard let raw = defaults.string(forKey: modeKey), - let mode = AppIconMode(rawValue: raw) else { - return defaultMode - } - return mode - } - - static func applyIcon(_ mode: AppIconMode, environment: Environment = .live()) { - switch mode { - case .automatic: - environment.startAppearanceObservation() - case .light: - environment.stopAppearanceObservation() - guard let icon = environment.imageForMode(.light) else { return } - environment.setApplicationIconImage(icon) - case .dark: - environment.stopAppearanceObservation() - guard let icon = environment.imageForMode(.dark) else { return } - environment.setApplicationIconImage(icon) - } - - environment.notifyDockTilePlugin() - } -} final class AppIconAppearanceObserver: NSObject { static let shared = AppIconAppearanceObserver() @@ -3998,7 +3910,6 @@ struct SettingsView: View { @AppStorage(LanguageSettings.languageKey) private var appLanguage = LanguageSettings.defaultLanguage.rawValue @AppStorage(AppearanceSettings.appearanceModeKey) private var appearanceMode = AppearanceSettings.defaultMode.rawValue - @AppStorage(AppIconSettings.modeKey) private var appIconMode = AppIconSettings.defaultMode.rawValue @AppStorage(WorkspacePresentationModeSettings.modeKey) private var workspacePresentationMode = WorkspacePresentationModeSettings.defaultMode.rawValue @AppStorage(SocketControlSettings.appStorageKey) private var socketControlMode = SocketControlSettings.defaultMode.rawValue @@ -4560,16 +4471,6 @@ struct SettingsView: View { SettingsCardDivider() - AppIconPickerRow( - selectedMode: appIconMode, - onSelect: { mode in - appIconMode = mode.rawValue - AppIconSettings.applyIcon(mode) - } - ) - - SettingsCardDivider() - SettingsPickerRow( String(localized: "settings.app.newWorkspacePlacement", defaultValue: "New Workspace Placement"), subtitle: selectedWorkspacePlacement.description, @@ -5921,8 +5822,6 @@ struct SettingsView: View { showLanguageRestartAlert = true } appearanceMode = AppearanceSettings.defaultMode.rawValue - appIconMode = AppIconSettings.defaultMode.rawValue - AppIconSettings.applyIcon(.automatic) socketControlMode = SocketControlSettings.defaultMode.rawValue claudeCodeHooksEnabled = ClaudeCodeIntegrationSettings.defaultHooksEnabled customClaudePath = "" @@ -6494,87 +6393,6 @@ private struct ThemePickerRow: View { } } -private struct AppIconPickerRow: View { - let selectedMode: String - let onSelect: (AppIconMode) -> Void - - private let iconSize: CGFloat = 48 - private let autoIconSize: CGFloat = 36 - - var body: some View { - HStack(alignment: .top, spacing: 12) { - VStack(alignment: .leading, spacing: 3) { - Text(String(localized: "settings.app.appIcon", defaultValue: "App Icon")) - .font(.system(size: 13, weight: .medium)) - Text(String(localized: "settings.app.appIcon.subtitle", defaultValue: "Dock and app switcher")) - .font(.caption) - .foregroundColor(.secondary) - } - .frame(maxWidth: .infinity, alignment: .leading) - - HStack(spacing: 8) { - ForEach(AppIconMode.allCases) { mode in - let isSelected = selectedMode == mode.rawValue - Button { - onSelect(mode) - } label: { - VStack(spacing: 4) { - Group { - if mode == .automatic { - ZStack { - Image("AppIconLight") - .resizable() - .interpolation(.high) - .frame(width: autoIconSize, height: autoIconSize) - .clipShape(RoundedRectangle(cornerRadius: autoIconSize * 0.22, style: .continuous)) - .offset(x: -10) - Image("AppIconDark") - .resizable() - .interpolation(.high) - .frame(width: autoIconSize, height: autoIconSize) - .clipShape(RoundedRectangle(cornerRadius: autoIconSize * 0.22, style: .continuous)) - .offset(x: 10) - } - .frame(width: iconSize, height: iconSize) - } else { - Image(mode.imageName ?? "AppIconLight") - .resizable() - .interpolation(.high) - .frame(width: iconSize, height: iconSize) - .clipShape(RoundedRectangle(cornerRadius: iconSize * 0.22, style: .continuous)) - } - } - - Text(mode.displayName) - .font(.system(size: 10)) - .foregroundColor(isSelected ? .primary : .secondary) - } - .padding(.vertical, 8) - .padding(.horizontal, 10) - .contentShape(Rectangle()) - .background( - RoundedRectangle(cornerRadius: 8, style: .continuous) - .fill(isSelected - ? Color.accentColor.opacity(0.12) - : Color.clear) - ) - .overlay( - RoundedRectangle(cornerRadius: 8, style: .continuous) - .stroke(isSelected ? Color.accentColor : Color.clear, lineWidth: 2) - ) - } - .buttonStyle(.plain) - .focusable(false) - .accessibilityAddTraits(isSelected ? .isSelected : []) - } - } - .layoutPriority(1) - } - .padding(.horizontal, 14) - .padding(.vertical, 9) - .frame(maxWidth: .infinity, alignment: .leading) - } -} private struct ShortcutSettingRow: View { let action: KeyboardShortcutSettings.Action diff --git a/programaTests/NotificationAndMenuBarTests.swift b/programaTests/NotificationAndMenuBarTests.swift index ffcafd415ac..8c05f766cf2 100644 --- a/programaTests/NotificationAndMenuBarTests.swift +++ b/programaTests/NotificationAndMenuBarTests.swift @@ -13,74 +13,6 @@ import UserNotifications @testable import Programa #endif -@MainActor -final class AppIconSettingsTests: XCTestCase { - func testApplyDarkSetsRuntimeIconAndNotifiesDockTilePlugin() { - let expectedIcon = NSImage(size: NSSize(width: 16, height: 16)) - var receivedRuntimeIcon: NSImage? - var dockTileNotificationCount = 0 - var startObservationCallCount = 0 - var stopObservationCallCount = 0 - - let environment = AppIconSettings.Environment( - imageForMode: { mode in - XCTAssertEqual(mode, .dark) - return expectedIcon - }, - setApplicationIconImage: { icon in - receivedRuntimeIcon = icon - }, - startAppearanceObservation: { - startObservationCallCount += 1 - }, - stopAppearanceObservation: { - stopObservationCallCount += 1 - }, - notifyDockTilePlugin: { - dockTileNotificationCount += 1 - } - ) - - AppIconSettings.applyIcon(.dark, environment: environment) - - XCTAssertTrue(receivedRuntimeIcon === expectedIcon) - XCTAssertEqual(dockTileNotificationCount, 1) - XCTAssertEqual(startObservationCallCount, 0) - XCTAssertEqual(stopObservationCallCount, 1) - } - - func testApplyAutomaticStartsObservationAndNotifiesDockTilePlugin() { - var dockTileNotificationCount = 0 - var startObservationCallCount = 0 - var stopObservationCallCount = 0 - - let environment = AppIconSettings.Environment( - imageForMode: { mode in - XCTFail("Automatic mode should not request a manual icon image: \(mode.rawValue)") - return nil - }, - setApplicationIconImage: { _ in - XCTFail("Automatic mode should delegate live updates to the appearance observer") - }, - startAppearanceObservation: { - startObservationCallCount += 1 - }, - stopAppearanceObservation: { - stopObservationCallCount += 1 - }, - notifyDockTilePlugin: { - dockTileNotificationCount += 1 - } - ) - - AppIconSettings.applyIcon(.automatic, environment: environment) - - XCTAssertEqual(dockTileNotificationCount, 1) - XCTAssertEqual(startObservationCallCount, 1) - XCTAssertEqual(stopObservationCallCount, 0) - } -} - @MainActor final class NotificationDockBadgeTests: XCTestCase { private final class NotificationSettingsAlertSpy: NSAlert { From ea41005ab05acbaacc6b29b87d5437b6f09de82c Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:34:43 -0300 Subject: [PATCH 09/12] =?UTF-8?q?reduce(settings):=20remove=20Language=20p?= =?UTF-8?q?icker=20=E2=80=94=20app=20always=20follows=20system=20language?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved removal. The 19-way AppLanguage picker, restart dialog, relaunchApp(), the settings.json app.language plumbing (parse/apply/restore/ template/schema), and six localization keys go. Localization infrastructure and all translations stay untouched. Not purely subtractive: LanguageSettings wrote the native AppleLanguages UserDefaults override, which persists across launches with no UI left to undo it. A one-time version-gated migration (matching the existing migrateCmuxDefaultsToProgramaIfNeeded idiom) clears AppleLanguages and the stale appLanguage key so previously overridden installs return to the system language. --- Resources/Localizable.xcstrings | 66 -------- Resources/settings.schema.json | 6 - .../KeyboardShortcutSettingsFileStore.swift | 24 --- Sources/ProgramaApp.swift | 146 ++---------------- 4 files changed, 13 insertions(+), 229 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 2e725b419bc..b7fd298a3b9 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -4478,17 +4478,6 @@ } } }, - "language.system": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "System" - } - } - } - }, "markdown.fileUnavailable.message": { "extractionState": "manual", "localizations": { @@ -5666,61 +5655,6 @@ } } }, - "settings.app.language": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Language" - } - } - } - }, - "settings.app.language.restartDialog.confirm": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Restart Now" - } - } - } - }, - "settings.app.language.restartDialog.later": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Later" - } - } - } - }, - "settings.app.language.restartDialog.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Restart to apply language change?" - } - } - } - }, - "settings.app.language.restartSubtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Restart Programa to apply" - } - } - } - }, "settings.app.minimalMode": { "extractionState": "manual", "localizations": { diff --git a/Resources/settings.schema.json b/Resources/settings.schema.json index a2ba730c4bc..3557664adbd 100644 --- a/Resources/settings.schema.json +++ b/Resources/settings.schema.json @@ -24,12 +24,6 @@ "type": "object", "additionalProperties": false, "properties": { - "language": { - "type": "string", - "enum": ["system", "en", "ar", "bs", "zh-Hans", "zh-Hant", "da", "de", "es", "fr", "it", "ja", "ko", "nb", "pl", "pt-BR", "ru", "th", "tr"], - "default": "system", - "description": "Preferred app language." - }, "appearance": { "type": "string", "enum": ["system", "light", "dark"], diff --git a/Sources/KeyboardShortcutSettingsFileStore.swift b/Sources/KeyboardShortcutSettingsFileStore.swift index 3cc8d209134..ebe3b029b7a 100644 --- a/Sources/KeyboardShortcutSettingsFileStore.swift +++ b/Sources/KeyboardShortcutSettingsFileStore.swift @@ -322,13 +322,6 @@ final class ProgramaSettingsFileStore { sourcePath: String, snapshot: inout ResolvedSettingsSnapshot ) { - if let raw = jsonString(section["language"]) { - guard let language = AppLanguage(rawValue: raw) else { - logInvalid("app.language", sourcePath: sourcePath) - return - } - snapshot.managedUserDefaults[LanguageSettings.languageKey] = .string(language.rawValue) - } if let raw = jsonString(section["appearance"]) { let normalized = AppearanceSettings.mode(for: raw).rawValue let accepted = Set(AppearanceMode.allCases.map(\.rawValue)) @@ -1108,14 +1101,6 @@ final class ProgramaSettingsFileStore { defaults.set(next, forKey: defaultsKey) } } - - switch defaultsKey { - case LanguageSettings.languageKey: - let language = AppLanguage(rawValue: UserDefaults.standard.string(forKey: defaultsKey) ?? "") ?? .system - LanguageSettings.apply(language) - default: - break - } } private func restoreUserDefaultsBackup(_ backup: BackupValue, for defaultsKey: String) { @@ -1148,14 +1133,6 @@ final class ProgramaSettingsFileStore { case .stringDictionary(let value): defaults.set(value, forKey: defaultsKey) } - - switch defaultsKey { - case LanguageSettings.languageKey: - let language = AppLanguage(rawValue: UserDefaults.standard.string(forKey: defaultsKey) ?? "") ?? .system - LanguageSettings.apply(language) - default: - break - } } private func loadBackups() -> [String: BackupValue] { @@ -1271,7 +1248,6 @@ final class ProgramaSettingsFileStore { return [ [ "app": [ - "language": LanguageSettings.defaultLanguage.rawValue, "appearance": AppearanceSettings.defaultMode.rawValue, "newWorkspacePlacement": WorkspacePlacementSettings.defaultPlacement.rawValue, "minimalMode": WorkspacePresentationModeSettings.defaultMode == .minimal, diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index 45f3feee1bf..1b8c17e27a7 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -106,8 +106,10 @@ struct programaApp: App { Self.configureGhosttyEnvironment() _ = KeyboardShortcutSettings.settingsFileStore - // Apply saved language preference before any UI loads - LanguageSettings.apply(LanguageSettings.languageAtLaunch) + // The in-app language picker was removed; the app always follows the + // system language. Clear any previously chosen per-app override once, + // since no UI can undo it anymore. + Self.migrateLanguageOverrideRemovalIfNeeded(defaults: .standard) let startupAppearance = AppearanceSettings.resolvedMode() Self.applyAppearance(startupAppearance) @@ -228,6 +230,15 @@ struct programaApp: App { defaults.set(targetVersion, forKey: migrationKey) } + private static func migrateLanguageOverrideRemovalIfNeeded(defaults: UserDefaults) { + let migrationKey = "programaLanguageOverrideRemovalVersion" + let targetVersion = 1 + guard defaults.integer(forKey: migrationKey) < targetVersion else { return } + defaults.removeObject(forKey: "AppleLanguages") + defaults.removeObject(forKey: "appLanguage") + defaults.set(targetVersion, forKey: migrationKey) + } + private func migrateSidebarAppearanceDefaultsIfNeeded(defaults: UserDefaults) { let migrationKey = "sidebarAppearanceDefaultsVersion" let targetVersion = 1 @@ -3526,72 +3537,6 @@ enum AppearanceSettings { } } -enum AppLanguage: String, CaseIterable, Identifiable { - case system - case en - case ar - case bs - case zhHans = "zh-Hans" - case zhHant = "zh-Hant" - case da - case de - case es - case fr - case it - case ja - case ko - case nb - case pl - case ptBR = "pt-BR" - case ru - case th - case tr - - var id: String { rawValue } - - var displayName: String { - switch self { - case .system: return String(localized: "language.system", defaultValue: "System") - case .en: return "English" - case .ar: return "\u{200E}العربية (Arabic)" - case .bs: return "Bosanski (Bosnian)" - case .zhHans: return "简体中文 (Chinese Simplified)" - case .zhHant: return "繁體中文 (Chinese Traditional)" - case .da: return "Dansk (Danish)" - case .de: return "Deutsch (German)" - case .es: return "Español (Spanish)" - case .fr: return "Français (French)" - case .it: return "Italiano (Italian)" - case .ja: return "日本語 (Japanese)" - case .ko: return "한국어 (Korean)" - case .nb: return "Norsk (Norwegian)" - case .pl: return "Polski (Polish)" - case .ptBR: return "Português (Brasil)" - case .ru: return "Русский (Russian)" - case .th: return "ไทย (Thai)" - case .tr: return "Türkçe (Turkish)" - } - } -} - -enum LanguageSettings { - static let languageKey = "appLanguage" - static let defaultLanguage: AppLanguage = .system - - static func apply(_ language: AppLanguage) { - if language == .system { - UserDefaults.standard.removeObject(forKey: "AppleLanguages") - } else { - UserDefaults.standard.set([language.rawValue], forKey: "AppleLanguages") - } - } - - static var languageAtLaunch: AppLanguage = { - let stored = UserDefaults.standard.string(forKey: languageKey) - guard let stored, let lang = AppLanguage(rawValue: stored) else { return .system } - return lang - }() -} final class AppIconAppearanceObserver: NSObject { @@ -3908,7 +3853,6 @@ struct SettingsView: View { private let notificationSoundControlWidth: CGFloat = 280 private let shortcutChordsDocsURL = URL(string: "https://github.com/darkroomengineering/programa/tree/main/docs")! - @AppStorage(LanguageSettings.languageKey) private var appLanguage = LanguageSettings.defaultLanguage.rawValue @AppStorage(AppearanceSettings.appearanceModeKey) private var appearanceMode = AppearanceSettings.defaultMode.rawValue @AppStorage(WorkspacePresentationModeSettings.modeKey) private var workspacePresentationMode = WorkspacePresentationModeSettings.defaultMode.rawValue @@ -4003,8 +3947,6 @@ struct SettingsView: View { @State private var notificationCustomSoundStatusIsError = false @State private var showNotificationCustomSoundErrorAlert = false @State private var notificationCustomSoundErrorAlertMessage = "" - @State private var showLanguageRestartAlert = false - @State private var isResettingSettings = false @State private var workspaceTabPaletteEntries = WorkspaceTabColorSettings.palette() @State private var trustedDirectoriesDraft: String = ProgramaDirectoryTrust.shared.allTrustedPaths.joined(separator: "\n") @@ -4431,37 +4373,6 @@ struct SettingsView: View { VStack(alignment: .leading, spacing: 14) { SettingsSectionHeader(title: String(localized: "settings.section.app", defaultValue: "App")) SettingsCard { - SettingsCardRow( - String(localized: "settings.app.language", defaultValue: "Language"), - subtitle: appLanguage != LanguageSettings.languageAtLaunch.rawValue - ? String(localized: "settings.app.language.restartSubtitle", defaultValue: "Restart Programa to apply") - : nil, - controlWidth: pickerColumnWidth - ) { - Picker("", selection: $appLanguage) { - ForEach(AppLanguage.allCases) { lang in - Text(lang.displayName).tag(lang.rawValue) - } - } - .labelsHidden() - .pickerStyle(.menu) - .onChange(of: appLanguage) { newValue in - guard !isResettingSettings else { return } - DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [self] in - // Re-check current value to handle rapid changes - let current = appLanguage - if let lang = AppLanguage(rawValue: current) { - LanguageSettings.apply(lang) - } - if current != LanguageSettings.languageAtLaunch.rawValue { - showLanguageRestartAlert = true - } - } - } - } - - SettingsCardDivider() - ThemePickerRow( selectedMode: appearanceMode, onSelect: { mode in @@ -5776,16 +5687,6 @@ struct SettingsView: View { } message: { Text(String(localized: "settings.automation.openAccess.dialog.message", defaultValue: "This disables ancestry and password checks and opens the socket to all local users. Only enable when you understand the risk.")) } - .confirmationDialog( - String(localized: "settings.app.language.restartDialog.title", defaultValue: "Restart to apply language change?"), - isPresented: $showLanguageRestartAlert, - titleVisibility: .visible - ) { - Button(String(localized: "settings.app.language.restartDialog.confirm", defaultValue: "Restart Now")) { - relaunchApp() - } - Button(String(localized: "settings.app.language.restartDialog.later", defaultValue: "Later"), role: .cancel) {} - } .alert( String( localized: "settings.notifications.sound.custom.error.title", @@ -5800,27 +5701,7 @@ struct SettingsView: View { } } - private func relaunchApp() { - let bundlePath = Bundle.main.bundlePath - let task = Process() - task.executableURL = URL(fileURLWithPath: "/bin/sh") - task.arguments = ["-c", "sleep 1 && open -n -- \"$RELAUNCH_PATH\""] - task.environment = ["RELAUNCH_PATH": bundlePath] - do { - try task.run() - } catch { - return - } - NSApplication.shared.terminate(nil) - } - private func resetAllSettings() { - isResettingSettings = true - appLanguage = LanguageSettings.defaultLanguage.rawValue - LanguageSettings.apply(.system) - if appLanguage != LanguageSettings.languageAtLaunch.rawValue { - showLanguageRestartAlert = true - } appearanceMode = AppearanceSettings.defaultMode.rawValue socketControlMode = SocketControlSettings.defaultMode.rawValue claudeCodeHooksEnabled = ClaudeCodeIntegrationSettings.defaultHooksEnabled @@ -5891,7 +5772,6 @@ struct SettingsView: View { WorkspaceTabColorSettings.reset() reloadWorkspaceTabColorSettings() shortcutResetToken = UUID() - DispatchQueue.main.async { isResettingSettings = false } } private func baseTabColorHex(for name: String) -> String? { From fb496363b06e5166595d229766f7b51babde00fc Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:38:12 -0300 Subject: [PATCH 10/12] =?UTF-8?q?reduce(settings):=20remove=20notification?= =?UTF-8?q?=20emphasis=20toggles=20and=20Send=20Test=20button=20=E2=80=94?= =?UTF-8?q?=20always=20on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved removal. Dock Badge, Unread Pane Ring, and Pane Flash toggles go from Settings, settings.json (parse/template/schema), and their backing enums; the behaviors are hardcoded on (today's defaults). The Send Test button and sendSettingsTestNotification() go; the Desktop Notifications permission row and Enable button stay. Two tests of the removed preference plumbing and six orphaned localization keys go with them. --- Resources/Localizable.xcstrings | 66 ------------------- Resources/settings.schema.json | 15 ----- .../KeyboardShortcutSettingsFileStore.swift | 12 ---- Sources/Panels/BrowserPanel.swift | 1 - Sources/Panels/MarkdownPanel.swift | 1 - Sources/Panels/TerminalPanel.swift | 1 - Sources/Panels/TerminalPanelView.swift | 4 +- Sources/ProgramaApp.swift | 48 -------------- Sources/TerminalNotificationStore.swift | 65 +----------------- .../NotificationAndMenuBarTests.swift | 38 ----------- 10 files changed, 2 insertions(+), 249 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index b7fd298a3b9..36039c4e375 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -5600,28 +5600,6 @@ } } }, - "settings.app.dockBadge": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Dock Badge" - } - } - } - }, - "settings.app.dockBadge.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show unread count on app icon (Dock and Cmd+Tab)." - } - } - } - }, "settings.app.hideAllSidebarDetails": { "extractionState": "manual", "localizations": { @@ -7125,50 +7103,6 @@ } } }, - "settings.notifications.paneFlash.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Briefly flash a blue outline when Programa highlights a pane." - } - } - } - }, - "settings.notifications.paneFlash.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Pane Flash" - } - } - } - }, - "settings.notifications.paneRing.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show a blue ring around panes with unread notifications." - } - } - } - }, - "settings.notifications.paneRing.title": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Unread Pane Ring" - } - } - } - }, "settings.notifications.sound.custom.choose.button": { "extractionState": "manual", "localizations": { diff --git a/Resources/settings.schema.json b/Resources/settings.schema.json index 3557664adbd..fc44264a6db 100644 --- a/Resources/settings.schema.json +++ b/Resources/settings.schema.json @@ -84,26 +84,11 @@ "type": "object", "additionalProperties": false, "properties": { - "dockBadge": { - "type": "boolean", - "default": true, - "description": "Show the unread count in the Dock tile." - }, "showInMenuBar": { "type": "boolean", "default": true, "description": "Show the menu bar extra." }, - "unreadPaneRing": { - "type": "boolean", - "default": true, - "description": "Highlight panes with unread notifications." - }, - "paneFlash": { - "type": "boolean", - "default": true, - "description": "Flash the focused pane when requested." - }, "sound": { "type": "string", "enum": ["default", "Basso", "Blow", "Bottle", "Frog", "Funk", "Glass", "Hero", "Morse", "Ping", "Pop", "Purr", "Sosumi", "Submarine", "Tink", "custom_file", "none"], diff --git a/Sources/KeyboardShortcutSettingsFileStore.swift b/Sources/KeyboardShortcutSettingsFileStore.swift index ebe3b029b7a..6330e82d6cd 100644 --- a/Sources/KeyboardShortcutSettingsFileStore.swift +++ b/Sources/KeyboardShortcutSettingsFileStore.swift @@ -370,18 +370,9 @@ final class ProgramaSettingsFileStore { sourcePath: String, snapshot: inout ResolvedSettingsSnapshot ) { - if let value = jsonBool(section["dockBadge"]) { - snapshot.managedUserDefaults[NotificationBadgeSettings.dockBadgeEnabledKey] = .bool(value) - } if let value = jsonBool(section["showInMenuBar"]) { snapshot.managedUserDefaults[MenuBarExtraSettings.showInMenuBarKey] = .bool(value) } - if let value = jsonBool(section["unreadPaneRing"]) { - snapshot.managedUserDefaults[NotificationPaneRingSettings.enabledKey] = .bool(value) - } - if let value = jsonBool(section["paneFlash"]) { - snapshot.managedUserDefaults[NotificationPaneFlashSettings.enabledKey] = .bool(value) - } if let raw = jsonString(section["sound"]) { let allowed = Set(NotificationSoundSettings.systemSounds.map(\.value)) guard allowed.contains(raw) else { @@ -1262,10 +1253,7 @@ final class ProgramaSettingsFileStore { ], [ "notifications": [ - "dockBadge": NotificationBadgeSettings.defaultDockBadgeEnabled, "showInMenuBar": MenuBarExtraSettings.defaultShowInMenuBar, - "unreadPaneRing": NotificationPaneRingSettings.defaultEnabled, - "paneFlash": NotificationPaneFlashSettings.defaultEnabled, "sound": NotificationSoundSettings.defaultValue, "customSoundFilePath": NotificationSoundSettings.defaultCustomFilePath, "command": NotificationSoundSettings.defaultCustomCommand, diff --git a/Sources/Panels/BrowserPanel.swift b/Sources/Panels/BrowserPanel.swift index 8fae96ae0c0..84cc8c5f2a6 100644 --- a/Sources/Panels/BrowserPanel.swift +++ b/Sources/Panels/BrowserPanel.swift @@ -2970,7 +2970,6 @@ final class BrowserPanel: Panel, ObservableObject { func triggerFlash(reason: WorkspaceAttentionFlashReason) { _ = reason - guard NotificationPaneFlashSettings.isEnabled() else { return } focusFlashToken &+= 1 } diff --git a/Sources/Panels/MarkdownPanel.swift b/Sources/Panels/MarkdownPanel.swift index b7de8899810..96caeb93397 100644 --- a/Sources/Panels/MarkdownPanel.swift +++ b/Sources/Panels/MarkdownPanel.swift @@ -100,7 +100,6 @@ final class MarkdownPanel: Panel, ObservableObject { func triggerFlash(reason: WorkspaceAttentionFlashReason) { _ = reason - guard NotificationPaneFlashSettings.isEnabled() else { return } focusFlashToken += 1 } diff --git a/Sources/Panels/TerminalPanel.swift b/Sources/Panels/TerminalPanel.swift index f625d12043b..89886871781 100644 --- a/Sources/Panels/TerminalPanel.swift +++ b/Sources/Panels/TerminalPanel.swift @@ -215,7 +215,6 @@ final class TerminalPanel: Panel, ObservableObject { } func triggerFlash(reason: WorkspaceAttentionFlashReason) { - guard NotificationPaneFlashSettings.isEnabled() else { return } switch TmuxOverlayExperimentSettings.target() { case .bonsplitPane: diff --git a/Sources/Panels/TerminalPanelView.swift b/Sources/Panels/TerminalPanelView.swift index 32820d282c0..0be49fdef7a 100644 --- a/Sources/Panels/TerminalPanelView.swift +++ b/Sources/Panels/TerminalPanelView.swift @@ -6,8 +6,6 @@ import Bonsplit /// View for rendering a terminal panel struct TerminalPanelView: View { @ObservedObject var panel: TerminalPanel - @AppStorage(NotificationPaneRingSettings.enabledKey) - private var notificationPaneRingEnabled = NotificationPaneRingSettings.defaultEnabled let paneId: PaneID let isFocused: Bool let isVisibleInUI: Bool @@ -28,7 +26,7 @@ struct TerminalPanelView: View { isVisibleInUI: isVisibleInUI, portalZPriority: portalPriority, showsInactiveOverlay: isSplit && !isFocused, - showsUnreadNotificationRing: hasUnreadNotification && notificationPaneRingEnabled, + showsUnreadNotificationRing: hasUnreadNotification, inactiveOverlayColor: appearance.unfocusedOverlayNSColor, inactiveOverlayOpacity: appearance.unfocusedOverlayOpacity, searchState: panel.searchState, diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index 1b8c17e27a7..ff3121bbdc0 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -3882,9 +3882,6 @@ struct SettingsView: View { @AppStorage(NotificationSoundSettings.customFilePathKey) private var notificationSoundCustomFilePath = NotificationSoundSettings.defaultCustomFilePath @AppStorage(NotificationSoundSettings.customCommandKey) private var notificationCustomCommand = NotificationSoundSettings.defaultCustomCommand - @AppStorage(NotificationBadgeSettings.dockBadgeEnabledKey) private var notificationDockBadgeEnabled = NotificationBadgeSettings.defaultDockBadgeEnabled - @AppStorage(NotificationPaneRingSettings.enabledKey) private var notificationPaneRingEnabled = NotificationPaneRingSettings.defaultEnabled - @AppStorage(NotificationPaneFlashSettings.enabledKey) private var notificationPaneFlashEnabled = NotificationPaneFlashSettings.defaultEnabled @AppStorage(MenuBarExtraSettings.showInMenuBarKey) private var showMenuBarExtra = MenuBarExtraSettings.defaultShowInMenuBar @AppStorage(QuitWarningSettings.warnBeforeQuitKey) private var warnBeforeQuitShortcut = QuitWarningSettings.defaultWarnBeforeQuit @AppStorage(ScrollbackPersistenceSettings.persistScrollbackKey) private var sessionPersistScrollback = ScrollbackPersistenceSettings.defaultPersistScrollback @@ -4458,16 +4455,6 @@ struct SettingsView: View { .controlSize(.small) } - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.dockBadge", defaultValue: "Dock Badge"), - subtitle: String(localized: "settings.app.dockBadge.subtitle", defaultValue: "Show unread count on app icon (Dock and Cmd+Tab).") - ) { - Toggle("", isOn: $notificationDockBadgeEnabled) - .labelsHidden() - .controlSize(.small) - } SettingsCardDivider() @@ -4483,33 +4470,6 @@ struct SettingsView: View { ) } - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.notifications.paneRing.title", defaultValue: "Unread Pane Ring"), - subtitle: String(localized: "settings.notifications.paneRing.subtitle", defaultValue: "Show a blue ring around panes with unread notifications.") - ) { - Toggle("", isOn: $notificationPaneRingEnabled) - .labelsHidden() - .controlSize(.small) - .accessibilityLabel( - String(localized: "settings.notifications.paneRing.title", defaultValue: "Unread Pane Ring") - ) - } - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.notifications.paneFlash.title", defaultValue: "Pane Flash"), - subtitle: String(localized: "settings.notifications.paneFlash.subtitle", defaultValue: "Briefly flash a blue outline when Programa highlights a pane.") - ) { - Toggle("", isOn: $notificationPaneFlashEnabled) - .labelsHidden() - .controlSize(.small) - .accessibilityLabel( - String(localized: "settings.notifications.paneFlash.title", defaultValue: "Pane Flash") - ) - } SettingsCardDivider() @@ -4527,11 +4487,6 @@ struct SettingsView: View { handleNotificationPermissionAction() } .controlSize(.small) - - Button("Send Test") { - notificationStore.sendSettingsTestNotification() - } - .controlSize(.small) } } @@ -5726,9 +5681,6 @@ struct SettingsView: View { showNotificationCustomSoundErrorAlert = false notificationCustomSoundErrorAlertMessage = "" notificationCustomCommand = NotificationSoundSettings.defaultCustomCommand - notificationDockBadgeEnabled = NotificationBadgeSettings.defaultDockBadgeEnabled - notificationPaneRingEnabled = NotificationPaneRingSettings.defaultEnabled - notificationPaneFlashEnabled = NotificationPaneFlashSettings.defaultEnabled showMenuBarExtra = MenuBarExtraSettings.defaultShowInMenuBar warnBeforeQuitShortcut = QuitWarningSettings.defaultWarnBeforeQuit sessionPersistScrollback = ScrollbackPersistenceSettings.defaultPersistScrollback diff --git a/Sources/TerminalNotificationStore.swift b/Sources/TerminalNotificationStore.swift index 1f568b353f7..48ba6baf0ea 100644 --- a/Sources/TerminalNotificationStore.swift +++ b/Sources/TerminalNotificationStore.swift @@ -549,35 +549,6 @@ enum NotificationSoundSettings { } } -enum NotificationBadgeSettings { - static let dockBadgeEnabledKey = "notificationDockBadgeEnabled" - static let defaultDockBadgeEnabled = true - - static func isDockBadgeEnabled(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: dockBadgeEnabledKey) == nil { - return defaultDockBadgeEnabled - } - return defaults.bool(forKey: dockBadgeEnabledKey) - } -} - -enum NotificationPaneRingSettings { - static let enabledKey = "notificationPaneRingEnabled" - static let defaultEnabled = true -} - -enum NotificationPaneFlashSettings { - static let enabledKey = "notificationPaneFlashEnabled" - static let defaultEnabled = true - - static func isEnabled(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: enabledKey) == nil { - return defaultEnabled - } - return defaults.bool(forKey: enabledKey) - } -} - enum TaggedRunBadgeSettings { static let environmentKey = "PROGRAMA_TAG" private static let maxTagLength = 10 @@ -688,7 +659,6 @@ final class TerminalNotificationStore: ObservableObject { private enum AuthorizationRequestOrigin: String { case notificationDelivery = "notification_delivery" case settingsButton = "settings_button" - case settingsTest = "settings_test" } @Published private(set) var notifications: [TerminalNotification] = [] { @@ -827,39 +797,6 @@ final class TerminalNotificationStore: ObservableObject { notificationSettingsURLOpener(url) } - func sendSettingsTestNotification() { - logAuthorization("settings test tapped state=\(authorizationState.statusLabel)") - ensureAuthorization(origin: .settingsTest) { [weak self] authorized in - guard let self, authorized else { return } - - let content = UNMutableNotificationContent() - content.title = "cmux test notification" - content.body = "Desktop notifications are enabled." - content.sound = NotificationSoundSettings.sound() - content.categoryIdentifier = Self.categoryIdentifier - - let request = UNNotificationRequest( - identifier: "programa.settings.test.\(UUID().uuidString)", - content: content, - trigger: nil - ) - - self.center.add(request) { error in - if let error { - NSLog("Failed to schedule test notification: \(error)") - self.logAuthorization("settings test schedule failed error=\(error.localizedDescription)") - } else { - self.logAuthorization("settings test schedule succeeded") - NotificationSoundSettings.runCustomCommand( - title: content.title, - subtitle: content.subtitle, - body: content.body - ) - } - } - } - } - func handleApplicationDidBecomeActive() { logAuthorization("app became active deferred=\(hasDeferredAuthorizationRequest)") if hasDeferredAuthorizationRequest { @@ -1418,7 +1355,7 @@ final class TerminalNotificationStore: ObservableObject { private func refreshDockBadge() { let label = Self.dockBadgeLabel( unreadCount: unreadCount, - isEnabled: NotificationBadgeSettings.isDockBadgeEnabled(), + isEnabled: true, runTag: TaggedRunBadgeSettings.normalizedTag() ) NSApp?.dockTile.badgeLabel = label diff --git a/programaTests/NotificationAndMenuBarTests.swift b/programaTests/NotificationAndMenuBarTests.swift index 8c05f766cf2..8feeffe2835 100644 --- a/programaTests/NotificationAndMenuBarTests.swift +++ b/programaTests/NotificationAndMenuBarTests.swift @@ -71,44 +71,6 @@ final class NotificationDockBadgeTests: XCTestCase { ) } - func testNotificationBadgePreferenceDefaultsToEnabled() { - let suiteName = "NotificationDockBadgeTests.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { - defaults.removePersistentDomain(forName: suiteName) - } - - XCTAssertTrue(NotificationBadgeSettings.isDockBadgeEnabled(defaults: defaults)) - - defaults.set(false, forKey: NotificationBadgeSettings.dockBadgeEnabledKey) - XCTAssertFalse(NotificationBadgeSettings.isDockBadgeEnabled(defaults: defaults)) - - defaults.set(true, forKey: NotificationBadgeSettings.dockBadgeEnabledKey) - XCTAssertTrue(NotificationBadgeSettings.isDockBadgeEnabled(defaults: defaults)) - } - - func testNotificationPaneFlashPreferenceDefaultsToEnabled() { - let suiteName = "NotificationPaneFlashSettingsTests.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { - defaults.removePersistentDomain(forName: suiteName) - } - - XCTAssertTrue(NotificationPaneFlashSettings.isEnabled(defaults: defaults)) - - defaults.set(false, forKey: NotificationPaneFlashSettings.enabledKey) - XCTAssertFalse(NotificationPaneFlashSettings.isEnabled(defaults: defaults)) - - defaults.set(true, forKey: NotificationPaneFlashSettings.enabledKey) - XCTAssertTrue(NotificationPaneFlashSettings.isEnabled(defaults: defaults)) - } - func testMenuBarExtraPreferenceDefaultsToVisible() { let suiteName = "MenuBarExtraVisibilityTests.\(UUID().uuidString)" guard let defaults = UserDefaults(suiteName: suiteName) else { From 4f4dc8ada3fce62a4dfefdaf4dea70413cc53759 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:45:44 -0300 Subject: [PATCH 11/12] reduce(settings): hardcode React Grab version and import-hint style MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved removals. React Grab: the free-text version field goes from Settings, settings.json, and the schema; the version is pinned to 0.1.29. This also closes a real gap: a version not in knownHashes silently skipped the SHA-256 integrity check, contradicting the settings copy — with the pin, the check always runs against a known hash. Import hint: the blank-tab hint always renders as the toolbar chip (the production default). The variant enum, its debug-only picker window, the inlineStrip/floatingCard render paths, and the settingsOnly state collapse away; the user-facing show/hide toggle stays. The five browser-import UI tests, which forced the removed inlineStrip variant via a launch-env hook, now exercise the real chip-then-popover flow instead. Verified with build-for-testing on the programa scheme (compiles app, unit, and UI test targets). --- Resources/Localizable.xcstrings | 33 --- Resources/settings.schema.json | 5 - Sources/AppDelegate.swift | 6 - .../KeyboardShortcutSettingsFileStore.swift | 4 - Sources/Panels/BrowserPanel.swift | 45 +--- Sources/Panels/BrowserPanelView.swift | 70 ------ Sources/Panels/ReactGrab.swift | 10 +- Sources/ProgramaApp.swift | 238 ------------------ programaTests/BrowserImportMappingTests.swift | 13 - .../BrowserImportProfilesUITests.swift | 9 +- 10 files changed, 9 insertions(+), 424 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 36039c4e375..80b63502cfa 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -6784,17 +6784,6 @@ } } }, - "settings.browser.import.hint.note.settingsOnly": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Blank tabs are currently using Settings only mode from the debug window." - } - } - } - }, "settings.browser.import.hint.note.visible": { "extractionState": "manual", "localizations": { @@ -6872,28 +6861,6 @@ } } }, - "settings.browser.reactGrabVersion": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "React Grab Version" - } - } - } - }, - "settings.browser.reactGrabVersion.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Pinned npm version of react-grab injected by the toolbar button (Cmd+Shift+G). Only versions with a known integrity hash are accepted." - } - } - } - }, "settings.browser.searchEngine": { "extractionState": "manual", "localizations": { diff --git a/Resources/settings.schema.json b/Resources/settings.schema.json index fc44264a6db..404a54d4326 100644 --- a/Resources/settings.schema.json +++ b/Resources/settings.schema.json @@ -386,11 +386,6 @@ "default": true, "description": "Show the browser import hint on blank tabs." }, - "reactGrabVersion": { - "type": "string", - "default": "0.1.29", - "description": "Pinned react-grab version for the browser toolbar helper." - }, "proxy": { "type": "object", "additionalProperties": false, diff --git a/Sources/AppDelegate.swift b/Sources/AppDelegate.swift index 806971c67d4..72285c20bed 100644 --- a/Sources/AppDelegate.swift +++ b/Sources/AppDelegate.swift @@ -2721,12 +2721,6 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent // In UI tests, `WindowGroup` occasionally fails to materialize a window quickly on the VM. // If there are no windows shortly after launch, force-create one so XCUITest can proceed. if isRunningUnderXCTest { - if let rawVariant = env["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_VARIANT"] { - UserDefaults.standard.set( - BrowserImportHintSettings.variant(for: rawVariant).rawValue, - forKey: BrowserImportHintSettings.variantKey - ) - } if let rawShow = env["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_SHOW"] { UserDefaults.standard.set( rawShow == "1", diff --git a/Sources/KeyboardShortcutSettingsFileStore.swift b/Sources/KeyboardShortcutSettingsFileStore.swift index 6330e82d6cd..b398ac92177 100644 --- a/Sources/KeyboardShortcutSettingsFileStore.swift +++ b/Sources/KeyboardShortcutSettingsFileStore.swift @@ -701,9 +701,6 @@ final class ProgramaSettingsFileStore { if let value = jsonBool(section["showImportHintOnBlankTabs"]) { snapshot.managedUserDefaults[BrowserImportHintSettings.showOnBlankTabsKey] = .bool(value) } - if let raw = jsonString(section["reactGrabVersion"]) { - snapshot.managedUserDefaults[ReactGrabSettings.versionKey] = .string(raw) - } if let proxyRaw = section["proxy"] { guard let proxyDict = proxyRaw as? [String: Any] else { logInvalid("browser.proxy", sourcePath: sourcePath) @@ -1320,7 +1317,6 @@ final class ProgramaSettingsFileStore { "urlsToAlwaysOpenExternally": [String](), "insecureHttpHostsAllowedInEmbeddedBrowser": BrowserInsecureHTTPSettings.defaultAllowlistPatterns, "showImportHintOnBlankTabs": BrowserImportHintSettings.defaultShowOnBlankTabs, - "reactGrabVersion": ReactGrabSettings.defaultVersion, ], ], [ diff --git a/Sources/Panels/BrowserPanel.swift b/Sources/Panels/BrowserPanel.swift index 84cc8c5f2a6..90a97983bf9 100644 --- a/Sources/Panels/BrowserPanel.swift +++ b/Sources/Panels/BrowserPanel.swift @@ -212,26 +212,14 @@ enum BrowserThemeSettings { } } -enum BrowserImportHintVariant: String, CaseIterable, Identifiable { - case inlineStrip - case floatingCard - case toolbarChip - case settingsOnly - - var id: String { rawValue } -} - enum BrowserImportHintBlankTabPlacement: Equatable { case hidden - case inlineStrip - case floatingCard case toolbarChip } enum BrowserImportHintSettingsStatus: Equatable { case visible case hidden - case settingsOnly } struct BrowserImportHintPresentation: Equatable { @@ -239,55 +227,26 @@ struct BrowserImportHintPresentation: Equatable { let settingsStatus: BrowserImportHintSettingsStatus init( - variant: BrowserImportHintVariant, showOnBlankTabs: Bool, isDismissed: Bool ) { - if variant == .settingsOnly { - blankTabPlacement = .hidden - settingsStatus = .settingsOnly - return - } - if !showOnBlankTabs || isDismissed { blankTabPlacement = .hidden settingsStatus = .hidden return } - switch variant { - case .inlineStrip: - blankTabPlacement = .inlineStrip - case .floatingCard: - blankTabPlacement = .floatingCard - case .toolbarChip: - blankTabPlacement = .toolbarChip - case .settingsOnly: - blankTabPlacement = .hidden - } + blankTabPlacement = .toolbarChip settingsStatus = .visible } } enum BrowserImportHintSettings { - static let variantKey = "browserImportHintVariant" static let showOnBlankTabsKey = "browserImportHintShowOnBlankTabs" static let dismissedKey = "browserImportHintDismissed" - static let defaultVariant: BrowserImportHintVariant = .toolbarChip static let defaultShowOnBlankTabs = true static let defaultDismissed = false - static func variant(for rawValue: String?) -> BrowserImportHintVariant { - guard let rawValue, let variant = BrowserImportHintVariant(rawValue: rawValue) else { - return defaultVariant - } - return variant - } - - static func variant(defaults: UserDefaults = .standard) -> BrowserImportHintVariant { - variant(for: defaults.string(forKey: variantKey)) - } - static func showOnBlankTabs(defaults: UserDefaults = .standard) -> Bool { if defaults.object(forKey: showOnBlankTabsKey) == nil { return defaultShowOnBlankTabs @@ -304,14 +263,12 @@ enum BrowserImportHintSettings { static func presentation(defaults: UserDefaults = .standard) -> BrowserImportHintPresentation { BrowserImportHintPresentation( - variant: variant(defaults: defaults), showOnBlankTabs: showOnBlankTabs(defaults: defaults), isDismissed: isDismissed(defaults: defaults) ) } static func reset(defaults: UserDefaults = .standard) { - defaults.set(defaultVariant.rawValue, forKey: variantKey) defaults.set(defaultShowOnBlankTabs, forKey: showOnBlankTabsKey) defaults.set(defaultDismissed, forKey: dismissedKey) } diff --git a/Sources/Panels/BrowserPanelView.swift b/Sources/Panels/BrowserPanelView.swift index a5b613ca833..46aeeaa45e1 100644 --- a/Sources/Panels/BrowserPanelView.swift +++ b/Sources/Panels/BrowserPanelView.swift @@ -651,54 +651,6 @@ private struct BrowserImportHintContentView { let onOpenSettings: () -> Void let onDismiss: () -> Void - var cardOverlay: some View { - VStack { - Spacer(minLength: 22) - - hintBody - .padding(12) - .frame(maxWidth: 360, alignment: .leading) - .background( - RoundedRectangle(cornerRadius: 12, style: .continuous) - .fill(Color(nsColor: .windowBackgroundColor).opacity(0.9)) - ) - .overlay( - RoundedRectangle(cornerRadius: 12, style: .continuous).stroke( - Color(nsColor: .separatorColor).opacity(0.45), - lineWidth: 1 - ) - ) - .shadow(color: Color.black.opacity(0.08), radius: 8, y: 3) - - Spacer() - } - .padding(.horizontal, 18) - } - - var inlineStrip: some View { - VStack(alignment: .leading, spacing: 0) { - hintBody - .padding(.horizontal, 12) - .padding(.vertical, 10) - .frame(maxWidth: 520, alignment: .leading) - .background( - RoundedRectangle(cornerRadius: 12, style: .continuous) - .fill(Color(nsColor: .windowBackgroundColor).opacity(0.84)) - ) - .overlay( - RoundedRectangle(cornerRadius: 12, style: .continuous).stroke( - Color(nsColor: .separatorColor).opacity(0.35), - lineWidth: 1 - ) - ) - .shadow(color: Color.black.opacity(0.05), radius: 6, y: 2) - - Spacer(minLength: 0) - } - .padding(.horizontal, 18) - .padding(.top, 14) - } - var popover: some View { hintBody .padding(12) @@ -790,7 +742,6 @@ struct BrowserPanelView: View { @AppStorage(BrowserProfilePopoverDebugSettings.verticalPaddingKey) private var browserProfilePopoverVerticalPaddingRaw = BrowserProfilePopoverDebugSettings.defaultVerticalPadding @AppStorage(BrowserThemeSettings.modeKey) private var browserThemeModeRaw = BrowserThemeSettings.defaultMode.rawValue - @AppStorage(BrowserImportHintSettings.variantKey) private var browserImportHintVariantRaw = BrowserImportHintSettings.defaultVariant.rawValue @AppStorage(BrowserImportHintSettings.showOnBlankTabsKey) private var showBrowserImportHintOnBlankTabs = BrowserImportHintSettings.defaultShowOnBlankTabs @AppStorage(BrowserImportHintSettings.dismissedKey) private var isBrowserImportHintDismissed = BrowserImportHintSettings.defaultDismissed @ObservedObject private var keyboardShortcutSettingsObserver = KeyboardShortcutSettingsObserver.shared @@ -862,13 +813,8 @@ struct BrowserPanelView: View { BrowserThemeSettings.mode(for: browserThemeModeRaw) } - private var browserImportHintVariant: BrowserImportHintVariant { - BrowserImportHintSettings.variant(for: browserImportHintVariantRaw) - } - private var browserImportHintPresentation: BrowserImportHintPresentation { BrowserImportHintPresentation( - variant: browserImportHintVariant, showOnBlankTabs: showBrowserImportHintOnBlankTabs, isDismissed: isBrowserImportHintDismissed ) @@ -1035,10 +981,6 @@ struct BrowserPanelView: View { if browserThemeModeRaw != resolvedThemeMode.rawValue { browserThemeModeRaw = resolvedThemeMode.rawValue } - let resolvedHintVariant = BrowserImportHintSettings.variant(for: browserImportHintVariantRaw) - if browserImportHintVariantRaw != resolvedHintVariant.rawValue { - browserImportHintVariantRaw = resolvedHintVariant.rawValue - } let resolvedToolbarAccessorySpacing = BrowserToolbarAccessorySpacingDebugSettings.resolved(browserToolbarAccessorySpacingRaw) if browserToolbarAccessorySpacingRaw != resolvedToolbarAccessorySpacing { browserToolbarAccessorySpacingRaw = resolvedToolbarAccessorySpacing @@ -1496,18 +1438,6 @@ struct BrowserPanelView: View { setAddressBarFocused(false, reason: "placeholderContent.tapBlur") } } - .overlay(alignment: .topLeading) { - if shouldShowEmptyStateImportOverlay, - browserImportHintPresentation.blankTabPlacement == .inlineStrip { - browserImportHintContent.inlineStrip - } - } - .overlay { - if shouldShowEmptyStateImportOverlay, - browserImportHintPresentation.blankTabPlacement == .floatingCard { - browserImportHintContent.cardOverlay - } - } } } .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) diff --git a/Sources/Panels/ReactGrab.swift b/Sources/Panels/ReactGrab.swift index 9e2385ba6a7..38f66535aa4 100644 --- a/Sources/Panels/ReactGrab.swift +++ b/Sources/Panels/ReactGrab.swift @@ -9,7 +9,6 @@ import Bonsplit // MARK: - Settings enum ReactGrabSettings { - static let versionKey = "reactGrabVersion" static let defaultVersion = "0.1.29" /// Known versions and their SHA-256 integrity hashes. @@ -21,11 +20,6 @@ enum ReactGrabSettings { static func scriptURL(for version: String) -> URL { URL(string: "https://unpkg.com/react-grab@\(version)/dist/index.global.js")! } - - static var configuredVersion: String { - let stored = UserDefaults.standard.string(forKey: versionKey)?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "" - return stored.isEmpty ? defaultVersion : stored - } } struct ReactGrabShortcutPanelSnapshot: Equatable { @@ -94,7 +88,7 @@ enum ReactGrabScriptLoader { private static var prefetchTask: Task? static func prefetch() { - let version = ReactGrabSettings.configuredVersion + let version = ReactGrabSettings.defaultVersion // Invalidate cache if version changed. if cachedVersion != version { cachedScript = nil @@ -110,7 +104,7 @@ enum ReactGrabScriptLoader { } static func fetch() async -> String? { - let version = ReactGrabSettings.configuredVersion + let version = ReactGrabSettings.defaultVersion if cachedVersion == version, let cached = cachedScript { return cached } prefetch() return await prefetchTask?.value diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index ff3121bbdc0..599202a9533 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -440,9 +440,6 @@ struct programaApp: App { Button("Background Debug…") { BackgroundDebugWindowController.shared.show() } - Button("Browser Import Hint Debug…") { - BrowserImportHintDebugWindowController.shared.show() - } Button( String( localized: "debug.menu.browserProfilePopoverDebug", @@ -1093,7 +1090,6 @@ struct programaApp: App { } private func openAllDebugWindows() { - BrowserImportHintDebugWindowController.shared.show() BrowserProfilePopoverDebugWindowController.shared.show() SettingsAboutTitlebarDebugWindowController.shared.show() SidebarDebugWindowController.shared.show() @@ -1725,9 +1721,6 @@ private struct DebugWindowControlsView: View { GroupBox("Open") { VStack(alignment: .leading, spacing: 8) { - Button("Browser Import Hint Debug…") { - BrowserImportHintDebugWindowController.shared.show() - } Button( String( localized: "debug.menu.browserProfilePopoverDebug", @@ -1749,7 +1742,6 @@ private struct DebugWindowControlsView: View { MenuBarExtraDebugWindowController.shared.show() } Button("Open All Debug Windows") { - BrowserImportHintDebugWindowController.shared.show() BrowserProfilePopoverDebugWindowController.shared.show() SettingsAboutTitlebarDebugWindowController.shared.show() SidebarDebugWindowController.shared.show() @@ -1954,40 +1946,6 @@ private struct DebugWindowControlsView: View { } } -private final class BrowserImportHintDebugWindowController: NSWindowController, NSWindowDelegate { - static let shared = BrowserImportHintDebugWindowController() - - private init() { - let window = NSPanel( - contentRect: NSRect(x: 0, y: 0, width: 380, height: 420), - styleMask: [.titled, .closable, .utilityWindow], - backing: .buffered, - defer: false - ) - window.title = "Browser Import Hint Debug" - window.titleVisibility = .visible - window.titlebarAppearsTransparent = false - window.isMovableByWindowBackground = true - window.isReleasedWhenClosed = false - window.identifier = NSUserInterfaceItemIdentifier("programa.browserImportHintDebug") - window.center() - window.contentView = NSHostingView(rootView: BrowserImportHintDebugView()) - AppDelegate.shared?.applyWindowDecorations(to: window) - super.init(window: window) - window.delegate = self - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - func show() { - window?.center() - window?.makeKeyAndOrderFront(nil) - } -} - private final class BrowserProfilePopoverDebugWindowController: NSWindowController, NSWindowDelegate { static let shared = BrowserProfilePopoverDebugWindowController() @@ -2187,178 +2145,6 @@ private struct BrowserProfilePopoverDebugView: View { } } -private struct BrowserImportHintDebugView: View { - @AppStorage(BrowserImportHintSettings.variantKey) - private var variantRaw = BrowserImportHintSettings.defaultVariant.rawValue - @AppStorage(BrowserImportHintSettings.showOnBlankTabsKey) - private var showOnBlankTabs = BrowserImportHintSettings.defaultShowOnBlankTabs - @AppStorage(BrowserImportHintSettings.dismissedKey) - private var isDismissed = BrowserImportHintSettings.defaultDismissed - - private var selectedVariant: BrowserImportHintVariant { - BrowserImportHintSettings.variant(for: variantRaw) - } - - private var variantSelection: Binding { - Binding( - get: { selectedVariant.rawValue }, - set: { variantRaw = BrowserImportHintSettings.variant(for: $0).rawValue } - ) - } - - private var showOnBlankTabsBinding: Binding { - Binding( - get: { showOnBlankTabs }, - set: { newValue in - showOnBlankTabs = newValue - if newValue { - isDismissed = false - } - } - ) - } - - private var presentation: BrowserImportHintPresentation { - BrowserImportHintPresentation( - variant: selectedVariant, - showOnBlankTabs: showOnBlankTabs, - isDismissed: isDismissed - ) - } - - var body: some View { - ScrollView { - VStack(alignment: .leading, spacing: 14) { - Text("Browser Import Hint") - .font(.headline) - - Text("Try lighter blank-tab import surfaces and dismissal states without touching the permanent Browser settings home.") - .font(.caption) - .foregroundStyle(.secondary) - - GroupBox("Variant") { - VStack(alignment: .leading, spacing: 10) { - Picker("Blank Tab Style", selection: variantSelection) { - ForEach(BrowserImportHintVariant.allCases) { variant in - Text(title(for: variant)).tag(variant.rawValue) - } - } - .pickerStyle(.menu) - - Text(description(for: selectedVariant)) - .font(.caption) - .foregroundStyle(.secondary) - .fixedSize(horizontal: false, vertical: true) - } - .padding(.top, 2) - } - - GroupBox("State") { - VStack(alignment: .leading, spacing: 10) { - Toggle("Show on blank browser tabs", isOn: showOnBlankTabsBinding) - Toggle("Pretend the user dismissed it", isOn: $isDismissed) - - Text("Current blank-tab placement: \(placementTitle(presentation.blankTabPlacement))") - .font(.caption) - .foregroundStyle(.secondary) - Text("Settings status: \(settingsStatusTitle(presentation.settingsStatus))") - .font(.caption) - .foregroundStyle(.secondary) - } - .padding(.top, 2) - } - - GroupBox("Quick Actions") { - VStack(alignment: .leading, spacing: 8) { - HStack(spacing: 10) { - Button("Open Browser Settings") { - AppDelegate.presentPreferencesWindow(navigationTarget: .browser) - } - Button("Open Import Dialog") { - DispatchQueue.main.async { - BrowserDataImportCoordinator.shared.presentImportDialog() - } - } - } - - Button("Reset Hint Debug State") { - BrowserImportHintSettings.reset() - } - } - .padding(.top, 2) - } - - GroupBox("Ideas") { - VStack(alignment: .leading, spacing: 6) { - Text("Inline strip: default candidate, visible but quieter than the old floating card.") - Text("Floating card: strongest nudge, useful when we want more explanation.") - Text("Toolbar chip: most subtle, best when the hint should stay out of the content area.") - Text("Settings only: no in-browser nudge, Browser settings becomes the only permanent home.") - } - .font(.caption) - .foregroundStyle(.secondary) - .padding(.top, 2) - } - - Spacer(minLength: 0) - } - .padding(16) - .frame(maxWidth: .infinity, alignment: .topLeading) - } - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) - } - - private func title(for variant: BrowserImportHintVariant) -> String { - switch variant { - case .inlineStrip: - return "Inline Strip" - case .floatingCard: - return "Floating Card" - case .toolbarChip: - return "Toolbar Chip" - case .settingsOnly: - return "Settings Only" - } - } - - private func description(for variant: BrowserImportHintVariant) -> String { - switch variant { - case .inlineStrip: - return "Shows a thin hint bar at the top of blank browser tabs." - case .floatingCard: - return "Shows the fuller callout card inside blank browser tabs." - case .toolbarChip: - return "Moves the hint into a small toolbar chip beside the browser controls." - case .settingsOnly: - return "Hides the blank-tab hint and leaves Browser settings as the only home." - } - } - - private func placementTitle(_ placement: BrowserImportHintBlankTabPlacement) -> String { - switch placement { - case .hidden: - return "Hidden" - case .inlineStrip: - return "Inline Strip" - case .floatingCard: - return "Floating Card" - case .toolbarChip: - return "Toolbar Chip" - } - } - - private func settingsStatusTitle(_ status: BrowserImportHintSettingsStatus) -> String { - switch status { - case .visible: - return "Visible" - case .hidden: - return "Hidden" - case .settingsOnly: - return "Settings Only" - } - } -} - private final class AboutWindowController: NSWindowController, NSWindowDelegate { static let shared = AboutWindowController() @@ -3867,10 +3653,8 @@ struct SettingsView: View { @AppStorage(BrowserSearchSettings.searchEngineKey) private var browserSearchEngine = BrowserSearchSettings.defaultSearchEngine.rawValue @AppStorage(BrowserSearchSettings.searchSuggestionsEnabledKey) private var browserSearchSuggestionsEnabled = BrowserSearchSettings.defaultSearchSuggestionsEnabled @AppStorage(BrowserThemeSettings.modeKey) private var browserThemeMode = BrowserThemeSettings.defaultMode.rawValue - @AppStorage(BrowserImportHintSettings.variantKey) private var browserImportHintVariantRaw = BrowserImportHintSettings.defaultVariant.rawValue @AppStorage(BrowserImportHintSettings.showOnBlankTabsKey) private var showBrowserImportHintOnBlankTabs = BrowserImportHintSettings.defaultShowOnBlankTabs @AppStorage(BrowserImportHintSettings.dismissedKey) private var isBrowserImportHintDismissed = BrowserImportHintSettings.defaultDismissed - @AppStorage(ReactGrabSettings.versionKey) private var reactGrabVersion = ReactGrabSettings.defaultVersion @AppStorage(BrowserLinkOpenSettings.openTerminalLinksInProgramaBrowserKey) private var openTerminalLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenTerminalLinksInProgramaBrowser @AppStorage(BrowserLinkOpenSettings.interceptTerminalOpenCommandInProgramaBrowserKey) private var interceptTerminalOpenCommandInProgramaBrowser = BrowserLinkOpenSettings.initialInterceptTerminalOpenCommandInProgramaBrowserValue() @@ -4033,13 +3817,8 @@ struct SettingsView: View { ) } - private var browserImportHintVariant: BrowserImportHintVariant { - BrowserImportHintSettings.variant(for: browserImportHintVariantRaw) - } - private var browserImportHintPresentation: BrowserImportHintPresentation { BrowserImportHintPresentation( - variant: browserImportHintVariant, showOnBlankTabs: showBrowserImportHintOnBlankTabs, isDismissed: isBrowserImportHintDismissed ) @@ -4113,8 +3892,6 @@ struct SettingsView: View { return String(localized: "settings.browser.import.hint.note.visible", defaultValue: "Blank browser tabs can show this import suggestion. Hide or re-enable it here.") case .hidden: return String(localized: "settings.browser.import.hint.note.hidden", defaultValue: "The blank-tab import hint is hidden. Turn it back on here any time.") - case .settingsOnly: - return String(localized: "settings.browser.import.hint.note.settingsOnly", defaultValue: "Blank tabs are currently using Settings only mode from the debug window.") } } @@ -5401,19 +5178,6 @@ struct SettingsView: View { SettingsCardDivider() - SettingsCardRow( - String(localized: "settings.browser.reactGrabVersion", defaultValue: "React Grab Version"), - subtitle: String(localized: "settings.browser.reactGrabVersion.subtitle", defaultValue: "Pinned npm version of react-grab injected by the toolbar button (Cmd+Shift+G). Only versions with a known integrity hash are accepted.") - ) { - TextField("", text: $reactGrabVersion) - .textFieldStyle(.roundedBorder) - .frame(width: 100) - .font(.system(.body, design: .monospaced)) - .accessibilityIdentifier("SettingsReactGrabVersionField") - } - - SettingsCardDivider() - SettingsCardRow(String(localized: "settings.browser.history", defaultValue: "Browsing History"), subtitle: browserHistorySubtitle) { Button(String(localized: "settings.browser.history.clearButton", defaultValue: "Clear History…")) { showClearBrowserHistoryConfirmation = true @@ -5582,7 +5346,6 @@ struct SettingsView: View { BrowserHistoryStore.shared.loadIfNeeded() notificationStore.refreshAuthorizationStatus() browserThemeMode = BrowserThemeSettings.mode(defaults: .standard).rawValue - browserImportHintVariantRaw = BrowserImportHintSettings.variant(for: browserImportHintVariantRaw).rawValue browserHistoryEntryCount = BrowserHistoryStore.shared.entries.count browserInsecureHTTPAllowlistDraft = browserInsecureHTTPAllowlist refreshDetectedImportBrowsers() @@ -5665,7 +5428,6 @@ struct SettingsView: View { browserSearchEngine = BrowserSearchSettings.defaultSearchEngine.rawValue browserSearchSuggestionsEnabled = BrowserSearchSettings.defaultSearchSuggestionsEnabled browserThemeMode = BrowserThemeSettings.defaultMode.rawValue - browserImportHintVariantRaw = BrowserImportHintSettings.defaultVariant.rawValue showBrowserImportHintOnBlankTabs = BrowserImportHintSettings.defaultShowOnBlankTabs isBrowserImportHintDismissed = BrowserImportHintSettings.defaultDismissed openTerminalLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenTerminalLinksInProgramaBrowser diff --git a/programaTests/BrowserImportMappingTests.swift b/programaTests/BrowserImportMappingTests.swift index 2842eefda03..17dc3acf58d 100644 --- a/programaTests/BrowserImportMappingTests.swift +++ b/programaTests/BrowserImportMappingTests.swift @@ -158,7 +158,6 @@ final class BrowserImportMappingTests: XCTestCase { func testBrowserImportHintPresentationHidesBlankTabHintWhenDismissed() { let presentation = BrowserImportHintPresentation( - variant: .floatingCard, showOnBlankTabs: true, isDismissed: true ) @@ -169,7 +168,6 @@ final class BrowserImportMappingTests: XCTestCase { func testBrowserImportHintPresentationUsesToolbarChipWhenEnabled() { let presentation = BrowserImportHintPresentation( - variant: .toolbarChip, showOnBlankTabs: true, isDismissed: false ) @@ -178,17 +176,6 @@ final class BrowserImportMappingTests: XCTestCase { XCTAssertEqual(presentation.settingsStatus, .visible) } - func testBrowserImportHintPresentationSettingsOnlyVariantStaysInSettings() { - let presentation = BrowserImportHintPresentation( - variant: .settingsOnly, - showOnBlankTabs: true, - isDismissed: false - ) - - XCTAssertEqual(presentation.blankTabPlacement, .hidden) - XCTAssertEqual(presentation.settingsStatus, .settingsOnly) - } - @MainActor func testRealizePlanCreatesMissingDestinationProfilesOnlyWhenRequested() throws { let suiteName = "BrowserImportMappingTests-\(UUID().uuidString)" diff --git a/programaUITests/BrowserImportProfilesUITests.swift b/programaUITests/BrowserImportProfilesUITests.swift index 5cebcf3ed9c..e7f2b020e1d 100644 --- a/programaUITests/BrowserImportProfilesUITests.swift +++ b/programaUITests/BrowserImportProfilesUITests.swift @@ -158,7 +158,6 @@ final class BrowserImportProfilesUITests: XCTestCase { app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_DESTINATIONS"] = #"["Default"]"# app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_MODE"] = "capture-only" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_CAPTURE_PATH"] = capturePath - app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_VARIANT"] = "inlineStrip" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_SHOW"] = "1" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_DISMISSED"] = "0" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_OPEN_BLANK_BROWSER"] = "1" @@ -170,7 +169,6 @@ final class BrowserImportProfilesUITests: XCTestCase { private func launchAppForBlankImportHint() -> XCUIApplication { let app = XCUIApplication() app.launchEnvironment["PROGRAMA_UI_TEST_MODE"] = "1" - app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_VARIANT"] = "inlineStrip" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_SHOW"] = "1" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_DISMISSED"] = "0" app.launchEnvironment["PROGRAMA_UI_TEST_BROWSER_IMPORT_HINT_OPEN_BLANK_BROWSER"] = "1" @@ -187,10 +185,15 @@ final class BrowserImportProfilesUITests: XCTestCase { } private func waitForBlankImportHint(_ app: XCUIApplication) { + // The hint renders as a toolbar chip whose actions live in a popover. + let chip = app.buttons["BrowserImportHintToolbarChip"] + let chipAppeared = browserImportPollUntil(timeout: 5.0) { chip.exists } + XCTAssertTrue(chipAppeared, "Expected the blank browser import hint chip to appear") + chip.click() let hintOpened = browserImportPollUntil(timeout: 5.0) { app.buttons["BrowserImportHintImportButton"].exists } - XCTAssertTrue(hintOpened, "Expected the blank browser import hint to appear") + XCTAssertTrue(hintOpened, "Expected the import hint popover to open") } private func openImportWizardFromBlankImportHint(_ app: XCUIApplication) { From bf814304fe0300de74eac01dbfc7f24bcfd1efb9 Mon Sep 17 00:00:00 2001 From: arzafran Date: Thu, 9 Jul 2026 12:52:37 -0300 Subject: [PATCH 12/12] =?UTF-8?q?reduce(settings):=20remove=20the=20sideba?= =?UTF-8?q?r=20detail-visibility=20cluster=20=E2=80=94=20details=20always?= =?UTF-8?q?=20show?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Approved removal of the biggest option sprawl in Settings: the 'Hide All Sidebar Details' master toggle and its 11 dependents (branch layout, notification message, branch+directory, pull requests, PR/port link routing, SSH, ports, log, progress, custom metadata). All collapse to today's defaults: every detail visible, vertical branch layout, sidebar links open in the Programa browser. The collapse point is SidebarTabItemSettingsSnapshot.init — TabItemView (typing-latency protected) only reads that precomputed snapshot, so zero lines inside it change. SidebarBranchLayoutSettings and SidebarWorkspaceDetailSettings enums, the settings.json sidebar section (parse/template/schema), the debug-window branch-layout toggle (would have become a lying no-op), five dead test blocks, and 30 orphaned localization keys go with it. Socket-driven features (report_meta pills, git polling, port scanning) are untouched — only the visibility toggles existed here. Kept as instructed: sidebar tint/appearance cluster, workspace colors, search engine picker. --- Resources/Localizable.xcstrings | 330 ------------------ Resources/settings.schema.json | 69 ---- Sources/ContentView.swift | 61 +--- .../KeyboardShortcutSettingsFileStore.swift | 68 ---- Sources/Panels/BrowserPanel.swift | 20 -- Sources/ProgramaApp.swift | 191 ---------- Sources/TabManager.swift | 69 ---- programaTests/BrowserConfigTests.swift | 12 - programaTests/SidebarOrderingTests.swift | 29 -- programaTests/WorkspaceUnitTests.swift | 88 ----- 10 files changed, 15 insertions(+), 922 deletions(-) diff --git a/Resources/Localizable.xcstrings b/Resources/Localizable.xcstrings index 80b63502cfa..4fda42eab4c 100644 --- a/Resources/Localizable.xcstrings +++ b/Resources/Localizable.xcstrings @@ -5600,39 +5600,6 @@ } } }, - "settings.app.hideAllSidebarDetails": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Hide All Sidebar Details" - } - } - } - }, - "settings.app.hideAllSidebarDetails.subtitleOff": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show secondary workspace details as controlled by the toggles below." - } - } - } - }, - "settings.app.hideAllSidebarDetails.subtitleOn": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show only the workspace title row. Overrides the detail toggles below." - } - } - } - }, "settings.app.minimalMode": { "extractionState": "manual", "localizations": { @@ -5677,72 +5644,6 @@ } } }, - "settings.app.openSidebarPRLinks": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Open Sidebar PR Links in Programa Browser" - } - } - } - }, - "settings.app.openSidebarPRLinks.subtitleOff": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Clicks open in your default browser." - } - } - } - }, - "settings.app.openSidebarPRLinks.subtitleOn": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Clicks open inside Programa browser." - } - } - } - }, - "settings.app.openSidebarPortLinks": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Open Sidebar Port Links in Programa Browser" - } - } - } - }, - "settings.app.openSidebarPortLinks.subtitleOff": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Port clicks open in your default browser." - } - } - } - }, - "settings.app.openSidebarPortLinks.subtitleOn": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Port clicks open inside Programa browser." - } - } - } - }, "settings.app.paneFirstClickFocus": { "extractionState": "manual", "localizations": { @@ -5893,28 +5794,6 @@ } } }, - "settings.app.showBranchDirectory": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Branch + Directory in Sidebar" - } - } - } - }, - "settings.app.showBranchDirectory.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display the built-in git branch and working-directory row." - } - } - } - }, "settings.app.showInMenuBar": { "extractionState": "manual", "localizations": { @@ -5937,215 +5816,6 @@ } } }, - "settings.app.showLog": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Latest Log in Sidebar" - } - } - } - }, - "settings.app.showLog.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display the latest imperative log/status message." - } - } - } - }, - "settings.app.showMetadata": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Custom Metadata in Sidebar" - } - } - } - }, - "settings.app.showMetadata.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display custom metadata from report_meta/set_status and report_meta_block." - } - } - } - }, - "settings.app.showNotificationMessage": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Notification Message in Sidebar" - } - } - } - }, - "settings.app.showNotificationMessage.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display the latest notification message below the workspace title." - } - } - } - }, - "settings.app.showPorts": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Listening Ports in Sidebar" - } - } - } - }, - "settings.app.showPorts.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display detected listening ports for the active workspace." - } - } - } - }, - "settings.app.showProgress": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Progress in Sidebar" - } - } - } - }, - "settings.app.showProgress.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display the built-in progress bar from set_progress." - } - } - } - }, - "settings.app.showPullRequests": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Pull Requests in Sidebar" - } - } - } - }, - "settings.app.showPullRequests.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display review items (PR/MR/etc.) with status, number, and clickable link." - } - } - } - }, - "settings.app.showSSH": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Show SSH in Sidebar" - } - } - } - }, - "settings.app.showSSH.subtitle": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Display the SSH target for remote workspaces in its own row." - } - } - } - }, - "settings.app.sidebarBranchLayout": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Sidebar Branch Layout" - } - } - } - }, - "settings.app.sidebarBranchLayout.inline": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Inline" - } - } - } - }, - "settings.app.sidebarBranchLayout.subtitleInline": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Inline: all branches share one line." - } - } - } - }, - "settings.app.sidebarBranchLayout.subtitleVertical": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Vertical: each branch appears on its own line." - } - } - } - }, - "settings.app.sidebarBranchLayout.vertical": { - "extractionState": "manual", - "localizations": { - "en": { - "stringUnit": { - "state": "translated", - "value": "Vertical" - } - } - } - }, "settings.app.theme": { "extractionState": "manual", "localizations": { diff --git a/Resources/settings.schema.json b/Resources/settings.schema.json index 404a54d4326..351cd4777f4 100644 --- a/Resources/settings.schema.json +++ b/Resources/settings.schema.json @@ -107,75 +107,6 @@ } } }, - "sidebar": { - "title": "sidebar", - "description": "Sidebar content and metadata visibility from Settings > Sidebar.", - "type": "object", - "additionalProperties": false, - "properties": { - "hideAllDetails": { - "type": "boolean", - "default": false, - "description": "Hide all per-workspace detail rows." - }, - "branchLayout": { - "type": "string", - "enum": ["vertical", "inline"], - "default": "vertical", - "description": "Show git branch details stacked vertically or inline." - }, - "showNotificationMessage": { - "type": "boolean", - "default": true, - "description": "Show the latest notification text in the sidebar." - }, - "showBranchDirectory": { - "type": "boolean", - "default": true, - "description": "Show the workspace working directory." - }, - "showPullRequests": { - "type": "boolean", - "default": true, - "description": "Show pull request metadata in the sidebar." - }, - "openPullRequestLinksInCmuxBrowser": { - "type": "boolean", - "default": true, - "description": "Open sidebar pull request links in the embedded cmux browser." - }, - "openPortLinksInCmuxBrowser": { - "type": "boolean", - "default": true, - "description": "Open sidebar port links in the embedded cmux browser." - }, - "showSSH": { - "type": "boolean", - "default": true, - "description": "Show SSH connection details." - }, - "showPorts": { - "type": "boolean", - "default": true, - "description": "Show listening ports." - }, - "showLog": { - "type": "boolean", - "default": true, - "description": "Show recent log snippets." - }, - "showProgress": { - "type": "boolean", - "default": true, - "description": "Show progress indicators." - }, - "showCustomMetadata": { - "type": "boolean", - "default": true, - "description": "Show custom metadata pills." - } - } - }, "workspaceColors": { "title": "workspaceColors", "description": "Workspace tab and badge colors from Settings > Workspace Colors.", diff --git a/Sources/ContentView.swift b/Sources/ContentView.swift index 050a594db5b..e17214dc0e9 100644 --- a/Sources/ContentView.swift +++ b/Sources/ContentView.swift @@ -1862,8 +1862,6 @@ struct ContentView: View { private var commandPaletteRenameSelectAllOnFocus = CommandPaletteRenameSelectionSettings.defaultSelectAllOnFocus @AppStorage(CommandPaletteSwitcherSearchSettings.searchAllSurfacesKey) private var commandPaletteSearchAllSurfaces = CommandPaletteSwitcherSearchSettings.defaultSearchAllSurfaces - @AppStorage(BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowserKey) - private var openSidebarPullRequestLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenSidebarPullRequestLinksInProgramaBrowser @State private var commandPaletteShouldFocusWorkspaceDescriptionEditor = false @FocusState private var isCommandPaletteSearchFocused: Bool @FocusState private var isCommandPaletteRenameFocused: Bool @@ -7651,19 +7649,10 @@ struct ContentView: View { guard !pullRequests.isEmpty else { return false } var openedCount = 0 - if openSidebarPullRequestLinksInProgramaBrowser { - for pullRequest in pullRequests { - if tabManager.openBrowser(url: pullRequest.url, insertAtEnd: true) != nil { - openedCount += 1 - } else if NSWorkspace.shared.open(pullRequest.url) { - openedCount += 1 - } - } - return openedCount > 0 - } - for pullRequest in pullRequests { - if NSWorkspace.shared.open(pullRequest.url) { + if tabManager.openBrowser(url: pullRequest.url, insertAtEnd: true) != nil { + openedCount += 1 + } else if NSWorkspace.shared.open(pullRequest.url) { openedCount += 1 } } @@ -8775,39 +8764,19 @@ private struct SidebarTabItemSettingsSnapshot: Equatable { defaultValue: ShortcutHintDebugSettings.defaultAlwaysShowHints ) showsGitBranch = Self.bool(defaults: defaults, key: "sidebarShowGitBranch", defaultValue: true) - usesVerticalBranchLayout = SidebarBranchLayoutSettings.usesVerticalLayout(defaults: defaults) + usesVerticalBranchLayout = true showsGitBranchIcon = Self.bool(defaults: defaults, key: "sidebarShowGitBranchIcon", defaultValue: false) - showsSSH = Self.bool(defaults: defaults, key: "sidebarShowSSH", defaultValue: true) - openPullRequestLinksInProgramaBrowser = BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowser( - defaults: defaults - ) - openPortLinksInProgramaBrowser = BrowserLinkOpenSettings.openSidebarPortLinksInProgramaBrowser( - defaults: defaults - ) - - let hidesAllDetails = SidebarWorkspaceDetailSettings.hidesAllDetails(defaults: defaults) - let showsNotificationMessageSetting = SidebarWorkspaceDetailSettings.showsNotificationMessage( - defaults: defaults - ) - showsNotificationMessage = SidebarWorkspaceDetailSettings.resolvedNotificationMessageVisibility( - showNotificationMessage: showsNotificationMessageSetting, - hideAllDetails: hidesAllDetails - ) - - let showsMetadata = Self.bool(defaults: defaults, key: "sidebarShowStatusPills", defaultValue: true) - let showsLog = Self.bool(defaults: defaults, key: "sidebarShowLog", defaultValue: true) - let showsProgress = Self.bool(defaults: defaults, key: "sidebarShowProgress", defaultValue: true) - let showsBranchDirectory = Self.bool(defaults: defaults, key: "sidebarShowBranchDirectory", defaultValue: true) - let showsPullRequests = Self.bool(defaults: defaults, key: "sidebarShowPullRequest", defaultValue: true) - let showsPorts = Self.bool(defaults: defaults, key: "sidebarShowPorts", defaultValue: true) - visibleAuxiliaryDetails = SidebarWorkspaceAuxiliaryDetailVisibility.resolved( - showMetadata: showsMetadata, - showLog: showsLog, - showProgress: showsProgress, - showBranchDirectory: showsBranchDirectory, - showPullRequests: showsPullRequests, - showPorts: showsPorts, - hideAllDetails: hidesAllDetails + showsSSH = true + openPullRequestLinksInProgramaBrowser = true + openPortLinksInProgramaBrowser = true + showsNotificationMessage = true + visibleAuxiliaryDetails = SidebarWorkspaceAuxiliaryDetailVisibility( + showsMetadata: true, + showsLog: true, + showsProgress: true, + showsBranchDirectory: true, + showsPullRequests: true, + showsPorts: true ) activeTabIndicatorStyle = SidebarActiveTabIndicatorSettings.current(defaults: defaults) diff --git a/Sources/KeyboardShortcutSettingsFileStore.swift b/Sources/KeyboardShortcutSettingsFileStore.swift index b398ac92177..8a8859aafb6 100644 --- a/Sources/KeyboardShortcutSettingsFileStore.swift +++ b/Sources/KeyboardShortcutSettingsFileStore.swift @@ -292,9 +292,6 @@ final class ProgramaSettingsFileStore { if let notificationsSection = root["notifications"] as? [String: Any] { parseNotificationsSection(notificationsSection, sourcePath: sourcePath, snapshot: &snapshot) } - if let sidebarSection = root["sidebar"] as? [String: Any] { - parseSidebarSection(sidebarSection, sourcePath: sourcePath, snapshot: &snapshot) - } if let workspaceColorsSection = root["workspaceColors"] as? [String: Any] { parseWorkspaceColorsSection(workspaceColorsSection, sourcePath: sourcePath, snapshot: &snapshot) } @@ -389,55 +386,6 @@ final class ProgramaSettingsFileStore { } } - private func parseSidebarSection( - _ section: [String: Any], - sourcePath: String, - snapshot: inout ResolvedSettingsSnapshot - ) { - if let value = jsonBool(section["hideAllDetails"]) { - snapshot.managedUserDefaults[SidebarWorkspaceDetailSettings.hideAllDetailsKey] = .bool(value) - } - if let raw = jsonString(section["branchLayout"]) { - switch raw { - case "vertical": - snapshot.managedUserDefaults[SidebarBranchLayoutSettings.key] = .bool(true) - case "inline": - snapshot.managedUserDefaults[SidebarBranchLayoutSettings.key] = .bool(false) - default: - logInvalid("sidebar.branchLayout", sourcePath: sourcePath) - } - } - if let value = jsonBool(section["showNotificationMessage"]) { - snapshot.managedUserDefaults[SidebarWorkspaceDetailSettings.showNotificationMessageKey] = .bool(value) - } - if let value = jsonBool(section["showBranchDirectory"]) { - snapshot.managedUserDefaults["sidebarShowBranchDirectory"] = .bool(value) - } - if let value = jsonBool(section["showPullRequests"]) { - snapshot.managedUserDefaults["sidebarShowPullRequest"] = .bool(value) - } - if let value = jsonBool(section["openPullRequestLinksInProgramaBrowser"]) { - snapshot.managedUserDefaults[BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowserKey] = .bool(value) - } - if let value = jsonBool(section["openPortLinksInProgramaBrowser"]) { - snapshot.managedUserDefaults[BrowserLinkOpenSettings.openSidebarPortLinksInProgramaBrowserKey] = .bool(value) - } - if let value = jsonBool(section["showSSH"]) { - snapshot.managedUserDefaults["sidebarShowSSH"] = .bool(value) - } - if let value = jsonBool(section["showPorts"]) { - snapshot.managedUserDefaults["sidebarShowPorts"] = .bool(value) - } - if let value = jsonBool(section["showLog"]) { - snapshot.managedUserDefaults["sidebarShowLog"] = .bool(value) - } - if let value = jsonBool(section["showProgress"]) { - snapshot.managedUserDefaults["sidebarShowProgress"] = .bool(value) - } - if let value = jsonBool(section["showCustomMetadata"]) { - snapshot.managedUserDefaults["sidebarShowStatusPills"] = .bool(value) - } - } private func parseWorkspaceColorsSection( _ section: [String: Any], @@ -1256,22 +1204,6 @@ final class ProgramaSettingsFileStore { "command": NotificationSoundSettings.defaultCustomCommand, ], ], - [ - "sidebar": [ - "hideAllDetails": SidebarWorkspaceDetailSettings.defaultHideAllDetails, - "branchLayout": SidebarBranchLayoutSettings.defaultVerticalLayout ? "vertical" : "inline", - "showNotificationMessage": SidebarWorkspaceDetailSettings.defaultShowNotificationMessage, - "showBranchDirectory": true, - "showPullRequests": true, - "openPullRequestLinksInProgramaBrowser": BrowserLinkOpenSettings.defaultOpenSidebarPullRequestLinksInProgramaBrowser, - "openPortLinksInProgramaBrowser": BrowserLinkOpenSettings.defaultOpenSidebarPortLinksInProgramaBrowser, - "showSSH": true, - "showPorts": true, - "showLog": true, - "showProgress": true, - "showCustomMetadata": true, - ], - ], [ "workspaceColors": [ "indicatorStyle": SidebarActiveTabIndicatorSettings.defaultStyle.rawValue, diff --git a/Sources/Panels/BrowserPanel.swift b/Sources/Panels/BrowserPanel.swift index 90a97983bf9..74a5fc349c9 100644 --- a/Sources/Panels/BrowserPanel.swift +++ b/Sources/Panels/BrowserPanel.swift @@ -481,12 +481,6 @@ enum BrowserLinkOpenSettings { static let openTerminalLinksInProgramaBrowserKey = "browserOpenTerminalLinksInProgramaBrowser" static let defaultOpenTerminalLinksInProgramaBrowser: Bool = true - static let openSidebarPullRequestLinksInProgramaBrowserKey = "browserOpenSidebarPullRequestLinksInProgramaBrowser" - static let defaultOpenSidebarPullRequestLinksInProgramaBrowser: Bool = true - - static let openSidebarPortLinksInProgramaBrowserKey = "browserOpenSidebarPortLinksInProgramaBrowser" - static let defaultOpenSidebarPortLinksInProgramaBrowser: Bool = true - static let interceptTerminalOpenCommandInProgramaBrowserKey = "browserInterceptTerminalOpenCommandInProgramaBrowser" static let defaultInterceptTerminalOpenCommandInProgramaBrowser: Bool = true @@ -502,20 +496,6 @@ enum BrowserLinkOpenSettings { return defaults.bool(forKey: openTerminalLinksInProgramaBrowserKey) } - static func openSidebarPullRequestLinksInProgramaBrowser(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: openSidebarPullRequestLinksInProgramaBrowserKey) == nil { - return defaultOpenSidebarPullRequestLinksInProgramaBrowser - } - return defaults.bool(forKey: openSidebarPullRequestLinksInProgramaBrowserKey) - } - - static func openSidebarPortLinksInProgramaBrowser(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: openSidebarPortLinksInProgramaBrowserKey) == nil { - return defaultOpenSidebarPortLinksInProgramaBrowser - } - return defaults.bool(forKey: openSidebarPortLinksInProgramaBrowserKey) - } - static func interceptTerminalOpenCommandInProgramaBrowser(defaults: UserDefaults = .standard) -> Bool { if defaults.object(forKey: interceptTerminalOpenCommandInProgramaBrowserKey) != nil { return defaults.bool(forKey: interceptTerminalOpenCommandInProgramaBrowserKey) diff --git a/Sources/ProgramaApp.swift b/Sources/ProgramaApp.swift index 599202a9533..b03ce611818 100644 --- a/Sources/ProgramaApp.swift +++ b/Sources/ProgramaApp.swift @@ -1588,7 +1588,6 @@ private enum DebugWindowConfigSnapshot { sidebarTintHexDark=\(stringValue(defaults, key: "sidebarTintHexDark", fallback: "(nil)")) sidebarTintOpacity=\(String(format: "%.2f", doubleValue(defaults, key: "sidebarTintOpacity", fallback: 0.18))) sidebarCornerRadius=\(String(format: "%.1f", doubleValue(defaults, key: "sidebarCornerRadius", fallback: 0.0))) - sidebarBranchVerticalLayout=\(boolValue(defaults, key: SidebarBranchLayoutSettings.key, fallback: SidebarBranchLayoutSettings.defaultVerticalLayout)) sidebarActiveTabIndicatorStyle=\(stringValue(defaults, key: SidebarActiveTabIndicatorSettings.styleKey, fallback: SidebarActiveTabIndicatorSettings.defaultStyle.rawValue)) sidebarDevBuildBannerVisible=\(boolValue(defaults, key: DevBuildBannerDebugSettings.sidebarBannerVisibleKey, fallback: DevBuildBannerDebugSettings.defaultShowSidebarBanner)) shortcutHintSidebarXOffset=\(String(format: "%.1f", doubleValue(defaults, key: ShortcutHintDebugSettings.sidebarHintXKey, fallback: ShortcutHintDebugSettings.defaultSidebarHintX))) @@ -2522,7 +2521,6 @@ private struct SidebarDebugView: View { @AppStorage("sidebarState") private var sidebarState = SidebarStateOption.followWindow.rawValue @AppStorage("sidebarCornerRadius") private var sidebarCornerRadius = 0.0 @AppStorage("sidebarBlurOpacity") private var sidebarBlurOpacity = 1.0 - @AppStorage(SidebarBranchLayoutSettings.key) private var sidebarBranchVerticalLayout = SidebarBranchLayoutSettings.defaultVerticalLayout @AppStorage(ShortcutHintDebugSettings.sidebarHintXKey) private var sidebarShortcutHintXOffset = ShortcutHintDebugSettings.defaultSidebarHintX @AppStorage(ShortcutHintDebugSettings.sidebarHintYKey) private var sidebarShortcutHintYOffset = ShortcutHintDebugSettings.defaultSidebarHintY @AppStorage(ShortcutHintDebugSettings.titlebarHintXKey) private var titlebarShortcutHintXOffset = ShortcutHintDebugSettings.defaultTitlebarHintX @@ -2684,16 +2682,6 @@ private struct SidebarDebugView: View { .padding(.top, 2) } - GroupBox("Workspace Metadata") { - VStack(alignment: .leading, spacing: 8) { - Toggle("Render branch list vertically", isOn: $sidebarBranchVerticalLayout) - Text("When enabled, each branch appears on its own line in the sidebar.") - .font(.caption) - .foregroundColor(.secondary) - } - .padding(.top, 2) - } - HStack(spacing: 12) { Button("Reset Tint") { sidebarTintOpacity = 0.62 @@ -2785,7 +2773,6 @@ private struct SidebarDebugView: View { sidebarTintHexDark=\(sidebarTintHexDark ?? "(nil)") sidebarTintOpacity=\(String(format: "%.2f", sidebarTintOpacity)) sidebarCornerRadius=\(String(format: "%.1f", sidebarCornerRadius)) - sidebarBranchVerticalLayout=\(sidebarBranchVerticalLayout) sidebarActiveTabIndicatorStyle=\(sidebarActiveTabIndicatorStyle) sidebarDevBuildBannerVisible=\(showSidebarDevBuildBanner) shortcutHintSidebarXOffset=\(String(format: "%.1f", ShortcutHintDebugSettings.clamped(sidebarShortcutHintXOffset))) @@ -3681,28 +3668,12 @@ struct SettingsView: View { @AppStorage(PaneFirstClickFocusSettings.enabledKey) private var paneFirstClickFocusEnabled = PaneFirstClickFocusSettings.defaultEnabled @AppStorage(WorkspaceAutoReorderSettings.key) private var workspaceAutoReorder = WorkspaceAutoReorderSettings.defaultValue - @AppStorage(SidebarWorkspaceDetailSettings.hideAllDetailsKey) - private var sidebarHideAllDetails = SidebarWorkspaceDetailSettings.defaultHideAllDetails - @AppStorage(SidebarWorkspaceDetailSettings.showNotificationMessageKey) - private var sidebarShowNotificationMessage = SidebarWorkspaceDetailSettings.defaultShowNotificationMessage - @AppStorage(SidebarBranchLayoutSettings.key) private var sidebarBranchVerticalLayout = SidebarBranchLayoutSettings.defaultVerticalLayout @AppStorage(SidebarActiveTabIndicatorSettings.styleKey) private var sidebarActiveTabIndicatorStyle = SidebarActiveTabIndicatorSettings.defaultStyle.rawValue @AppStorage("sidebarSelectionColorHex") private var sidebarSelectionColorHex: String? @AppStorage("sidebarNotificationBadgeColorHex") private var sidebarNotificationBadgeColorHex: String? - @AppStorage("sidebarShowBranchDirectory") private var sidebarShowBranchDirectory = true - @AppStorage("sidebarShowPullRequest") private var sidebarShowPullRequest = true - @AppStorage(BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowserKey) - private var openSidebarPullRequestLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenSidebarPullRequestLinksInProgramaBrowser - @AppStorage(BrowserLinkOpenSettings.openSidebarPortLinksInProgramaBrowserKey) - private var openSidebarPortLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenSidebarPortLinksInProgramaBrowser @AppStorage(ShortcutHintDebugSettings.showHintsOnCommandHoldKey) private var showShortcutHintsOnCommandHold = ShortcutHintDebugSettings.defaultShowHintsOnCommandHold - @AppStorage("sidebarShowSSH") private var sidebarShowSSH = true - @AppStorage("sidebarShowPorts") private var sidebarShowPorts = true - @AppStorage("sidebarShowLog") private var sidebarShowLog = true - @AppStorage("sidebarShowProgress") private var sidebarShowProgress = true - @AppStorage("sidebarShowStatusPills") private var sidebarShowMetadata = true @AppStorage("sidebarTintHex") private var sidebarTintHex = SidebarTintDefaults.hex @AppStorage("sidebarTintHexLight") private var sidebarTintHexLight: String? @AppStorage("sidebarTintHexDark") private var sidebarTintHexDark: String? @@ -4402,156 +4373,6 @@ struct SettingsView: View { ) } - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.hideAllSidebarDetails", defaultValue: "Hide All Sidebar Details"), - subtitle: sidebarHideAllDetails - ? String(localized: "settings.app.hideAllSidebarDetails.subtitleOn", defaultValue: "Show only the workspace title row. Overrides the detail toggles below.") - : String(localized: "settings.app.hideAllSidebarDetails.subtitleOff", defaultValue: "Show secondary workspace details as controlled by the toggles below.") - ) { - Toggle("", isOn: $sidebarHideAllDetails) - .labelsHidden() - .controlSize(.small) - } - - SettingsCardDivider() - - SettingsPickerRow( - String(localized: "settings.app.sidebarBranchLayout", defaultValue: "Sidebar Branch Layout"), - subtitle: sidebarBranchVerticalLayout - ? String(localized: "settings.app.sidebarBranchLayout.subtitleVertical", defaultValue: "Vertical: each branch appears on its own line.") - : String(localized: "settings.app.sidebarBranchLayout.subtitleInline", defaultValue: "Inline: all branches share one line."), - controlWidth: pickerColumnWidth, - selection: $sidebarBranchVerticalLayout - ) { - Text(String(localized: "settings.app.sidebarBranchLayout.vertical", defaultValue: "Vertical")).tag(true) - Text(String(localized: "settings.app.sidebarBranchLayout.inline", defaultValue: "Inline")).tag(false) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showNotificationMessage", defaultValue: "Show Notification Message in Sidebar"), - subtitle: String(localized: "settings.app.showNotificationMessage.subtitle", defaultValue: "Display the latest notification message below the workspace title.") - ) { - Toggle("", isOn: $sidebarShowNotificationMessage) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showBranchDirectory", defaultValue: "Show Branch + Directory in Sidebar"), - subtitle: String(localized: "settings.app.showBranchDirectory.subtitle", defaultValue: "Display the built-in git branch and working-directory row.") - ) { - Toggle("", isOn: $sidebarShowBranchDirectory) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showPullRequests", defaultValue: "Show Pull Requests in Sidebar"), - subtitle: String(localized: "settings.app.showPullRequests.subtitle", defaultValue: "Display review items (PR/MR/etc.) with status, number, and clickable link.") - ) { - Toggle("", isOn: $sidebarShowPullRequest) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.openSidebarPRLinks", defaultValue: "Open Sidebar PR Links in Programa Browser"), - subtitle: openSidebarPullRequestLinksInProgramaBrowser - ? String(localized: "settings.app.openSidebarPRLinks.subtitleOn", defaultValue: "Clicks open inside Programa browser.") - : String(localized: "settings.app.openSidebarPRLinks.subtitleOff", defaultValue: "Clicks open in your default browser.") - ) { - Toggle("", isOn: $openSidebarPullRequestLinksInProgramaBrowser) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.openSidebarPortLinks", defaultValue: "Open Sidebar Port Links in Programa Browser"), - subtitle: openSidebarPortLinksInProgramaBrowser - ? String(localized: "settings.app.openSidebarPortLinks.subtitleOn", defaultValue: "Port clicks open inside Programa browser.") - : String(localized: "settings.app.openSidebarPortLinks.subtitleOff", defaultValue: "Port clicks open in your default browser.") - ) { - Toggle("", isOn: $openSidebarPortLinksInProgramaBrowser) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showSSH", defaultValue: "Show SSH in Sidebar"), - subtitle: String(localized: "settings.app.showSSH.subtitle", defaultValue: "Display the SSH target for remote workspaces in its own row.") - ) { - Toggle("", isOn: $sidebarShowSSH) - .labelsHidden() - .controlSize(.small) - } - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showPorts", defaultValue: "Show Listening Ports in Sidebar"), - subtitle: String(localized: "settings.app.showPorts.subtitle", defaultValue: "Display detected listening ports for the active workspace.") - ) { - Toggle("", isOn: $sidebarShowPorts) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showLog", defaultValue: "Show Latest Log in Sidebar"), - subtitle: String(localized: "settings.app.showLog.subtitle", defaultValue: "Display the latest imperative log/status message.") - ) { - Toggle("", isOn: $sidebarShowLog) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showProgress", defaultValue: "Show Progress in Sidebar"), - subtitle: String(localized: "settings.app.showProgress.subtitle", defaultValue: "Display the built-in progress bar from set_progress.") - ) { - Toggle("", isOn: $sidebarShowProgress) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) - - SettingsCardDivider() - - SettingsCardRow( - String(localized: "settings.app.showMetadata", defaultValue: "Show Custom Metadata in Sidebar"), - subtitle: String(localized: "settings.app.showMetadata.subtitle", defaultValue: "Display custom metadata from report_meta/set_status and report_meta_block.") - ) { - Toggle("", isOn: $sidebarShowMetadata) - .labelsHidden() - .controlSize(.small) - } - .disabled(sidebarHideAllDetails) } SettingsSectionHeader(title: String(localized: "settings.section.workspaceColors", defaultValue: "Workspace Colors")) @@ -5455,22 +5276,10 @@ struct SettingsView: View { closeWorkspaceOnLastSurfaceShortcut = LastSurfaceCloseShortcutSettings.defaultValue paneFirstClickFocusEnabled = PaneFirstClickFocusSettings.defaultEnabled workspaceAutoReorder = WorkspaceAutoReorderSettings.defaultValue - sidebarHideAllDetails = SidebarWorkspaceDetailSettings.defaultHideAllDetails - sidebarShowNotificationMessage = SidebarWorkspaceDetailSettings.defaultShowNotificationMessage - sidebarBranchVerticalLayout = SidebarBranchLayoutSettings.defaultVerticalLayout sidebarActiveTabIndicatorStyle = SidebarActiveTabIndicatorSettings.defaultStyle.rawValue sidebarSelectionColorHex = nil sidebarNotificationBadgeColorHex = nil - sidebarShowBranchDirectory = true - sidebarShowPullRequest = true - openSidebarPullRequestLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenSidebarPullRequestLinksInProgramaBrowser - openSidebarPortLinksInProgramaBrowser = BrowserLinkOpenSettings.defaultOpenSidebarPortLinksInProgramaBrowser showShortcutHintsOnCommandHold = ShortcutHintDebugSettings.defaultShowHintsOnCommandHold - sidebarShowSSH = true - sidebarShowPorts = true - sidebarShowLog = true - sidebarShowProgress = true - sidebarShowMetadata = true sidebarTintHex = SidebarTintDefaults.hex sidebarTintHexLight = nil sidebarTintHexDark = nil diff --git a/Sources/TabManager.swift b/Sources/TabManager.swift index 6b2e5c245a7..cae341e10c8 100644 --- a/Sources/TabManager.swift +++ b/Sources/TabManager.swift @@ -74,46 +74,6 @@ enum LastSurfaceCloseShortcutSettings { } } -enum SidebarBranchLayoutSettings { - static let key = "sidebarBranchVerticalLayout" - static let defaultVerticalLayout = true - - static func usesVerticalLayout(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: key) == nil { - return defaultVerticalLayout - } - return defaults.bool(forKey: key) - } -} - -enum SidebarWorkspaceDetailSettings { - static let hideAllDetailsKey = "sidebarHideAllDetails" - static let showNotificationMessageKey = "sidebarShowNotificationMessage" - static let defaultHideAllDetails = false - static let defaultShowNotificationMessage = true - - static func hidesAllDetails(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: hideAllDetailsKey) == nil { - return defaultHideAllDetails - } - return defaults.bool(forKey: hideAllDetailsKey) - } - - static func showsNotificationMessage(defaults: UserDefaults = .standard) -> Bool { - if defaults.object(forKey: showNotificationMessageKey) == nil { - return defaultShowNotificationMessage - } - return defaults.bool(forKey: showNotificationMessageKey) - } - - static func resolvedNotificationMessageVisibility( - showNotificationMessage: Bool, - hideAllDetails: Bool - ) -> Bool { - showNotificationMessage && !hideAllDetails - } -} - struct SidebarWorkspaceAuxiliaryDetailVisibility: Equatable { let showsMetadata: Bool let showsLog: Bool @@ -121,35 +81,6 @@ struct SidebarWorkspaceAuxiliaryDetailVisibility: Equatable { let showsBranchDirectory: Bool let showsPullRequests: Bool let showsPorts: Bool - - static let hidden = Self( - showsMetadata: false, - showsLog: false, - showsProgress: false, - showsBranchDirectory: false, - showsPullRequests: false, - showsPorts: false - ) - - static func resolved( - showMetadata: Bool, - showLog: Bool, - showProgress: Bool, - showBranchDirectory: Bool, - showPullRequests: Bool, - showPorts: Bool, - hideAllDetails: Bool - ) -> Self { - guard !hideAllDetails else { return .hidden } - return Self( - showsMetadata: showMetadata, - showsLog: showLog, - showsProgress: showProgress, - showsBranchDirectory: showBranchDirectory, - showsPullRequests: showPullRequests, - showsPorts: showPorts - ) - } } enum SidebarActiveTabIndicatorStyle: String, CaseIterable, Identifiable { diff --git a/programaTests/BrowserConfigTests.swift b/programaTests/BrowserConfigTests.swift index d22224a6e61..f94f8082ef3 100644 --- a/programaTests/BrowserConfigTests.swift +++ b/programaTests/BrowserConfigTests.swift @@ -3132,18 +3132,6 @@ final class BrowserLinkOpenSettingsTests: XCTestCase { XCTAssertTrue(BrowserLinkOpenSettings.openTerminalLinksInProgramaBrowser(defaults: defaults)) } - func testSidebarPullRequestLinksDefaultToProgramaBrowser() { - XCTAssertTrue(BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowser(defaults: defaults)) - } - - func testSidebarPullRequestLinksPreferenceUsesStoredValue() { - defaults.set(false, forKey: BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowserKey) - XCTAssertFalse(BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowser(defaults: defaults)) - - defaults.set(true, forKey: BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowserKey) - XCTAssertTrue(BrowserLinkOpenSettings.openSidebarPullRequestLinksInProgramaBrowser(defaults: defaults)) - } - func testOpenCommandInterceptionDefaultsToProgramaBrowser() { XCTAssertTrue(BrowserLinkOpenSettings.interceptTerminalOpenCommandInProgramaBrowser(defaults: defaults)) } diff --git a/programaTests/SidebarOrderingTests.swift b/programaTests/SidebarOrderingTests.swift index 012be2f74e5..535a5b9038c 100644 --- a/programaTests/SidebarOrderingTests.swift +++ b/programaTests/SidebarOrderingTests.swift @@ -48,35 +48,6 @@ final class SidebarActiveForegroundColorTests: XCTestCase { } -final class SidebarBranchLayoutSettingsTests: XCTestCase { - func testDefaultUsesVerticalLayout() { - let suiteName = "SidebarBranchLayoutSettingsTests.Default.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { defaults.removePersistentDomain(forName: suiteName) } - - XCTAssertTrue(SidebarBranchLayoutSettings.usesVerticalLayout(defaults: defaults)) - } - - func testStoredPreferenceOverridesDefault() { - let suiteName = "SidebarBranchLayoutSettingsTests.Stored.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { defaults.removePersistentDomain(forName: suiteName) } - - defaults.set(false, forKey: SidebarBranchLayoutSettings.key) - XCTAssertFalse(SidebarBranchLayoutSettings.usesVerticalLayout(defaults: defaults)) - - defaults.set(true, forKey: SidebarBranchLayoutSettings.key) - XCTAssertTrue(SidebarBranchLayoutSettings.usesVerticalLayout(defaults: defaults)) - } -} - - final class SidebarActiveTabIndicatorSettingsTests: XCTestCase { func testDefaultStyleWhenUnset() { let suiteName = "SidebarActiveTabIndicatorSettingsTests.Default.\(UUID().uuidString)" diff --git a/programaTests/WorkspaceUnitTests.swift b/programaTests/WorkspaceUnitTests.swift index c3e04417438..471eb4fedf4 100644 --- a/programaTests/WorkspaceUnitTests.swift +++ b/programaTests/WorkspaceUnitTests.swift @@ -1747,94 +1747,6 @@ final class WorkspaceAutoReorderSettingsTests: XCTestCase { } -final class SidebarWorkspaceDetailSettingsTests: XCTestCase { - func testDefaultPreferencesWhenUnset() { - let suiteName = "SidebarWorkspaceDetailSettingsTests.Default.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { defaults.removePersistentDomain(forName: suiteName) } - - XCTAssertFalse(SidebarWorkspaceDetailSettings.hidesAllDetails(defaults: defaults)) - XCTAssertTrue(SidebarWorkspaceDetailSettings.showsNotificationMessage(defaults: defaults)) - XCTAssertTrue( - SidebarWorkspaceDetailSettings.resolvedNotificationMessageVisibility( - showNotificationMessage: SidebarWorkspaceDetailSettings.showsNotificationMessage(defaults: defaults), - hideAllDetails: SidebarWorkspaceDetailSettings.hidesAllDetails(defaults: defaults) - ) - ) - } - - func testStoredPreferencesOverrideDefaults() { - let suiteName = "SidebarWorkspaceDetailSettingsTests.Stored.\(UUID().uuidString)" - guard let defaults = UserDefaults(suiteName: suiteName) else { - XCTFail("Failed to create isolated UserDefaults suite") - return - } - defer { defaults.removePersistentDomain(forName: suiteName) } - - defaults.set(true, forKey: SidebarWorkspaceDetailSettings.hideAllDetailsKey) - defaults.set(false, forKey: SidebarWorkspaceDetailSettings.showNotificationMessageKey) - - XCTAssertTrue(SidebarWorkspaceDetailSettings.hidesAllDetails(defaults: defaults)) - XCTAssertFalse(SidebarWorkspaceDetailSettings.showsNotificationMessage(defaults: defaults)) - XCTAssertFalse( - SidebarWorkspaceDetailSettings.resolvedNotificationMessageVisibility( - showNotificationMessage: SidebarWorkspaceDetailSettings.showsNotificationMessage(defaults: defaults), - hideAllDetails: false - ) - ) - XCTAssertFalse( - SidebarWorkspaceDetailSettings.resolvedNotificationMessageVisibility( - showNotificationMessage: true, - hideAllDetails: SidebarWorkspaceDetailSettings.hidesAllDetails(defaults: defaults) - ) - ) - } -} - - -final class SidebarWorkspaceAuxiliaryDetailVisibilityTests: XCTestCase { - func testResolvedVisibilityPreservesPerRowTogglesWhenDetailsAreShown() { - XCTAssertEqual( - SidebarWorkspaceAuxiliaryDetailVisibility.resolved( - showMetadata: true, - showLog: false, - showProgress: true, - showBranchDirectory: false, - showPullRequests: true, - showPorts: false, - hideAllDetails: false - ), - SidebarWorkspaceAuxiliaryDetailVisibility( - showsMetadata: true, - showsLog: false, - showsProgress: true, - showsBranchDirectory: false, - showsPullRequests: true, - showsPorts: false - ) - ) - } - - func testResolvedVisibilityHidesAllAuxiliaryRowsWhenDetailsAreHidden() { - XCTAssertEqual( - SidebarWorkspaceAuxiliaryDetailVisibility.resolved( - showMetadata: true, - showLog: true, - showProgress: true, - showBranchDirectory: true, - showPullRequests: true, - showPorts: true, - hideAllDetails: true - ), - .hidden - ) - } -} - - final class WorkspaceReorderTests: XCTestCase { @MainActor func testReorderWorkspaceMovesWorkspaceToRequestedIndex() {