agentbridge-cli 0.1.13__tar.gz → 0.1.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.codex/skills/build-release/SKILL.md +4 -6
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.codex/skills/build-release/scripts/release_build.py +4 -2
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.github/workflows/release.yml +0 -2
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/PKG-INFO +5 -5
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/README.md +4 -4
- agentbridge_cli-0.1.14/agentbridge/_build_info.py +1 -0
- agentbridge_cli-0.1.14/design-qa.md +55 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/README.md +6 -6
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/StatusPopover.swift +1 -2
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/pyproject.toml +1 -1
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/scripts/build_macos_app.sh +5 -5
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/uv.lock +1 -1
- agentbridge_cli-0.1.13/agentbridge/_build_info.py +0 -1
- agentbridge_cli-0.1.13/design-qa.md +0 -58
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.codex/config.toml +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.codex/skills/build-release/agents/openai.yaml +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.env.example +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.github/dependabot.yml +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.github/workflows/ci.yml +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.github/workflows/dependency-review.yml +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.gitignore +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/AGENTS.md +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/CLAUDE.md +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/LICENSE +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/Makefile +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/TODO.txt +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/__init__.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/config.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/dashboard.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/models.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/pool.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/server.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/android-chrome-192.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/android-chrome-512.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/apple-touch-icon.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/favicon-16.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/favicon-32.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/favicon-48.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/favicon.ico +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/favicon.svg +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/site.webmanifest +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/base.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/chat.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/detail.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/page.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/pool.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/requests.html +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/architecture.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/agentbridge-popover-final.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/agentbridge-popover-normalized.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/agentbridge-popover-pass-1.jpeg +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/implementation-header-activity.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-header-activity.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-inactive-menu-icons.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-inactive-telegram-badge-normalized.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-inactive-telegram-badge.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-low-contrast-arrows-normalized.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-low-contrast-arrows.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-panel.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-telegram-badge-normalized.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-telegram-badge.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-active-workers.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-arrow-contrast-comparison.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-badge-comparison.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-inactive-comparison.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-no-workers.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/docs/plans/2026-02-14-dashboard-design.md +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/docs/plans/2026-02-14-dashboard-implementation.md +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/hatch_build.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/apple-store/app-store-icon-1024.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/icon/icon-1024.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/logo/logo-1024.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/manifest.json +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/icon-source-keyed.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/icon-source.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/logo-source-keyed.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/logo-source.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/social-background-source.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/social-source.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/android-chrome-192.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/android-chrome-512.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/apple-touch-icon.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-16.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-32.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-48.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon.ico +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon.svg +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/og-image-1200x630.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/site.webmanifest +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/logo.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Package.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/AgentBridgeMenuBarApp.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/BrandMark.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/HealthClient.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/MenuBarStatusPresenter.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/ServerController.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/ServerLauncher.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/SettingsView.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/StatusModels.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Tests/AgentBridgeMenuBarTests/StatusModelsTests.swift +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/scripts/dashboard_load_test.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/scripts/verify_macos_app.sh +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/fixtures/ocr_test_document.png +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_config.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_dashboard.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_dependency_security.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_image_utils.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_model_mapping.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_models.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_pool.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_server.py +0 -0
- {agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/tests/test_session_logger.py +0 -0
|
@@ -9,7 +9,7 @@ Use the repository-owned GitHub Actions workflow and PyPI Trusted Publishing.
|
|
|
9
9
|
Do not create a local tag or upload with local credentials: pushing a new
|
|
10
10
|
`pyproject.toml` version to `main` triggers `.github/workflows/release.yml`,
|
|
11
11
|
which tests, scans, builds, creates `v<version>`, creates the GitHub Release,
|
|
12
|
-
publishes `agentbridge-cli`, and attaches ad-hoc-signed arm64
|
|
12
|
+
publishes `agentbridge-cli`, and attaches an ad-hoc-signed arm64 DMG.
|
|
13
13
|
|
|
14
14
|
Use the next unused patch version unless the user requests another valid,
|
|
15
15
|
unused semantic version. Treat an untagged version absent from PyPI as pending.
|
|
@@ -54,8 +54,8 @@ The preflight requires macOS. It checks consistent project and lock metadata, an
|
|
|
54
54
|
unused PyPI version and tag, clean patch formatting, a frozen lock, Python 3.12
|
|
55
55
|
and 3.13 tests, Ruff, Swift tests, a self-contained app/DMG build for the current
|
|
56
56
|
Mac architecture, app signature and embedded-runtime smoke tests, wheel and
|
|
57
|
-
sdist audits, and a wheel installation smoke test. CI builds
|
|
58
|
-
|
|
57
|
+
sdist audits, and a wheel installation smoke test. CI builds the arm64 macOS
|
|
58
|
+
artifact with an ad-hoc signature. Stop at the exact failed gate.
|
|
59
59
|
|
|
60
60
|
4. Review and publish the release commit:
|
|
61
61
|
|
|
@@ -92,9 +92,7 @@ python3 .codex/skills/build-release/scripts/release_build.py wait-pypi --version
|
|
|
92
92
|
gh release view v<version> --json url,tagName,assets
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Require
|
|
96
|
-
`AgentBridge-<version>-macos-arm64.dmg` and
|
|
97
|
-
`AgentBridge-<version>-macos-x86_64.dmg` plus their `.sha256` files in the
|
|
95
|
+
Require `AgentBridge-<version>-macos-arm64.dmg` and its `.sha256` file in the
|
|
98
96
|
release assets. Do not report success until PyPI returns exact-version files and
|
|
99
97
|
all required GitHub assets exist. If the workflow fails, inspect
|
|
100
98
|
`gh run view <run-id> --log-failed` and report the failed gate before considering
|
|
@@ -313,8 +313,10 @@ def preflight_macos_app(version: str) -> dict[str, object]:
|
|
|
313
313
|
raise SystemExit("the AgentBridge release preflight requires macOS for app validation")
|
|
314
314
|
|
|
315
315
|
architecture = platform.machine()
|
|
316
|
-
if architecture
|
|
317
|
-
raise SystemExit(
|
|
316
|
+
if architecture != "arm64":
|
|
317
|
+
raise SystemExit(
|
|
318
|
+
f"unsupported macOS release architecture: {architecture}; AgentBridge requires arm64"
|
|
319
|
+
)
|
|
318
320
|
|
|
319
321
|
run(["swift", "test", "--package-path", "macos"])
|
|
320
322
|
run(["scripts/build_macos_app.sh"])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agentbridge-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.14
|
|
4
4
|
Summary: Bridge OpenAI tools to Claude Code SDK, Codex CLI, and OpenRouter
|
|
5
5
|
Project-URL: Homepage, https://github.com/tsilva/agentbridge
|
|
6
6
|
Project-URL: Repository, https://github.com/tsilva/agentbridge
|
|
@@ -46,10 +46,10 @@ It supports streaming and non-streaming responses, image and PDF inputs where th
|
|
|
46
46
|
|
|
47
47
|
### macOS menu-bar app
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
On an Apple silicon Mac, download the arm64 DMG from the GitHub Release, drag
|
|
50
50
|
`AgentBridge.app` to Applications, and open it. The app is ad-hoc signed rather
|
|
51
51
|
than Apple-notarized, so on first launch macOS may require you to Control-click
|
|
52
|
-
the app, choose **Open**, and confirm.
|
|
52
|
+
the app, choose **Open**, and confirm. Intel Macs are not supported.
|
|
53
53
|
|
|
54
54
|
You can also build the app locally on macOS 13 or later. This requires
|
|
55
55
|
[uv](https://docs.astral.sh/uv/) and the Xcode Command Line Tools, but not an
|
|
@@ -185,8 +185,8 @@ Releases use the `Release` GitHub Actions workflow and PyPI Trusted Publishing
|
|
|
185
185
|
for the `agentbridge-cli` project. The publisher is scoped to owner `tsilva`,
|
|
186
186
|
repository `agentbridge`, workflow `release.yml`, and environment `pypi`; no
|
|
187
187
|
PyPI API token is required. GitHub Releases contain the Python distributions
|
|
188
|
-
plus ad-hoc-signed arm64
|
|
189
|
-
|
|
188
|
+
plus an ad-hoc-signed arm64 macOS DMG and SHA-256 checksum. The DMG is not
|
|
189
|
+
Apple-notarized and requires no Apple Developer credentials. Releases
|
|
190
190
|
through `0.1.10` remain available under the previous `agentbridge-py`
|
|
191
191
|
distribution name.
|
|
192
192
|
|
|
@@ -14,10 +14,10 @@ It supports streaming and non-streaming responses, image and PDF inputs where th
|
|
|
14
14
|
|
|
15
15
|
### macOS menu-bar app
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
On an Apple silicon Mac, download the arm64 DMG from the GitHub Release, drag
|
|
18
18
|
`AgentBridge.app` to Applications, and open it. The app is ad-hoc signed rather
|
|
19
19
|
than Apple-notarized, so on first launch macOS may require you to Control-click
|
|
20
|
-
the app, choose **Open**, and confirm.
|
|
20
|
+
the app, choose **Open**, and confirm. Intel Macs are not supported.
|
|
21
21
|
|
|
22
22
|
You can also build the app locally on macOS 13 or later. This requires
|
|
23
23
|
[uv](https://docs.astral.sh/uv/) and the Xcode Command Line Tools, but not an
|
|
@@ -153,8 +153,8 @@ Releases use the `Release` GitHub Actions workflow and PyPI Trusted Publishing
|
|
|
153
153
|
for the `agentbridge-cli` project. The publisher is scoped to owner `tsilva`,
|
|
154
154
|
repository `agentbridge`, workflow `release.yml`, and environment `pypi`; no
|
|
155
155
|
PyPI API token is required. GitHub Releases contain the Python distributions
|
|
156
|
-
plus ad-hoc-signed arm64
|
|
157
|
-
|
|
156
|
+
plus an ad-hoc-signed arm64 macOS DMG and SHA-256 checksum. The DMG is not
|
|
157
|
+
Apple-notarized and requires no Apple Developer credentials. Releases
|
|
158
158
|
through `0.1.10` remain available under the previous `agentbridge-py`
|
|
159
159
|
distribution name.
|
|
160
160
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
GIT_HASH = "0980cbb"
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Design QA
|
|
2
|
+
|
|
3
|
+
**Comparison target**
|
|
4
|
+
|
|
5
|
+
- Source visual truth: `/var/folders/wz/x29jb7_x5rdc_5dcjr4qnhg00000gn/T/codex-clipboard-5d0ece7b-8e7b-489f-8d94-28b6877699ba.png`
|
|
6
|
+
- Implementation screenshot: `/tmp/agentbridge-popover-neutral-20260829.png`
|
|
7
|
+
- Combined comparison: `/tmp/agentbridge-popover-comparison-20260829.png`
|
|
8
|
+
- State: connected, zero active requests, one worker, dark appearance.
|
|
9
|
+
- Viewport: native macOS status popover at its fixed 350-point content width.
|
|
10
|
+
- Source pixels: 818 × 404. Implementation pixels: 752 × 444. Both are native high-density captures; no density normalization was applied because this change is limited to the visible control colors rather than geometry.
|
|
11
|
+
|
|
12
|
+
**Full-view comparison evidence**
|
|
13
|
+
|
|
14
|
+
- The source shows the gear and Open Dashboard control inheriting the green brand tint.
|
|
15
|
+
- The implementation shows both controls in the same neutral secondary-label palette used by the refresh row and supporting text.
|
|
16
|
+
- The native screenshot API renders the vibrancy material with a pink capture artifact; this does not affect the visible verification that the two controls no longer use the green tint.
|
|
17
|
+
|
|
18
|
+
**Focused region comparison evidence**
|
|
19
|
+
|
|
20
|
+
- A separate crop was not needed: the settings icon and dashboard button are large and clearly readable in the combined full-view comparison.
|
|
21
|
+
|
|
22
|
+
**Required fidelity surfaces**
|
|
23
|
+
|
|
24
|
+
- Fonts and typography: unchanged.
|
|
25
|
+
- Spacing and layout rhythm: unchanged.
|
|
26
|
+
- Colors and visual tokens: the popover-wide control tint now uses the native secondary-label color. The logo, connected indicator, and activity fill retain their intentional brand/status colors.
|
|
27
|
+
- Image quality and asset fidelity: unchanged; the existing native brand mark and SF Symbols remain in use.
|
|
28
|
+
- Copy and content: unchanged.
|
|
29
|
+
|
|
30
|
+
**Findings**
|
|
31
|
+
|
|
32
|
+
- No actionable P0, P1, or P2 mismatches remain for the requested control-color change.
|
|
33
|
+
|
|
34
|
+
**Open Questions**
|
|
35
|
+
|
|
36
|
+
- None.
|
|
37
|
+
|
|
38
|
+
**Implementation Checklist**
|
|
39
|
+
|
|
40
|
+
- [x] Remove the green tint from popover controls.
|
|
41
|
+
- [x] Preserve brand and semantic status colors.
|
|
42
|
+
- [x] Build and run the native test suite.
|
|
43
|
+
- [x] Capture and compare the rendered popover.
|
|
44
|
+
|
|
45
|
+
**Comparison History**
|
|
46
|
+
|
|
47
|
+
- Initial source finding: the settings icon and dashboard button inherited the green popover-wide tint.
|
|
48
|
+
- Fix: changed the popover tint to the native secondary-label color.
|
|
49
|
+
- Post-fix evidence: the combined comparison shows both controls rendered in neutral gray, with the brand and status colors preserved.
|
|
50
|
+
|
|
51
|
+
**Follow-up Polish**
|
|
52
|
+
|
|
53
|
+
- None.
|
|
54
|
+
|
|
55
|
+
final result: passed
|
|
@@ -32,15 +32,15 @@ scripts/build_macos_app.sh
|
|
|
32
32
|
|
|
33
33
|
The script builds the Swift executable, embeds a uv-managed Python 3.12 runtime
|
|
34
34
|
and the locked AgentBridge dependencies, applies an ad-hoc signature for local
|
|
35
|
-
use, and creates
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
use, and creates an arm64 DMG under `build/macos/arm64/`. Building and running
|
|
36
|
+
this local app requires an Apple silicon Mac but does not require an Apple
|
|
37
|
+
Developer account.
|
|
38
38
|
|
|
39
39
|
Open the generated DMG and drag `AgentBridge.app` to Applications.
|
|
40
40
|
|
|
41
|
-
GitHub Releases provide the same ad-hoc-signed DMG for
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
GitHub Releases provide the same ad-hoc-signed DMG for Apple silicon Macs. It is
|
|
42
|
+
not Apple-notarized, so macOS may require you to Control-click the app, choose
|
|
43
|
+
**Open**, and confirm on first launch. Intel Macs are not supported.
|
|
44
44
|
|
|
45
45
|
Mutable data stays outside the application bundle:
|
|
46
46
|
|
|
@@ -32,12 +32,11 @@ struct StatusPopover: View {
|
|
|
32
32
|
.padding(.bottom, 16)
|
|
33
33
|
.frame(width: 350)
|
|
34
34
|
.fixedSize(horizontal: false, vertical: true)
|
|
35
|
-
.tint(
|
|
35
|
+
.tint(secondaryTextColor)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
private var header: some View {
|
|
39
39
|
HStack(spacing: 8) {
|
|
40
|
-
AgentBridgeBrandMark(size: 24)
|
|
41
40
|
Text("AgentBridge")
|
|
42
41
|
.font(.system(size: 17, weight: .bold))
|
|
43
42
|
Spacer()
|
|
@@ -23,11 +23,11 @@ with Path("pyproject.toml").open("rb") as file:
|
|
|
23
23
|
PY
|
|
24
24
|
)"
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
if [[ "${architecture}" != "arm64" ]]; then
|
|
27
|
+
echo "Unsupported macOS architecture: ${architecture}; AgentBridge requires arm64" >&2
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
artifact_architecture="arm64"
|
|
31
31
|
|
|
32
32
|
if [[ "${output_root}" != "${repository_root}"/build/macos/* ]]; then
|
|
33
33
|
echo "Refusing to replace unexpected build directory: ${output_root}" >&2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
GIT_HASH = "6918a70"
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Active-worker menu-bar badge and inactive brightness design QA
|
|
2
|
-
|
|
3
|
-
## Evidence
|
|
4
|
-
|
|
5
|
-
- Source visual truths:
|
|
6
|
-
- Badge proportions: `/var/folders/wz/x29jb7_x5rdc_5dcjr4qnhg00000gn/T/codex-clipboard-a88e73a8-8b49-415b-b2ef-9f289e13c5ea.png`
|
|
7
|
-
- Unfocused menu-bar brightness: `/var/folders/wz/x29jb7_x5rdc_5dcjr4qnhg00000gn/T/codex-clipboard-6c362e7b-d087-493b-8d8f-683607e7a420.png`
|
|
8
|
-
- Inner-arrow contrast: `/var/folders/wz/x29jb7_x5rdc_5dcjr4qnhg00000gn/T/codex-clipboard-7fb76339-7c5e-4568-98cf-3c91d8ad0f48.png`
|
|
9
|
-
- Source pixels: 208 × 62 for the badge reference, 3232 × 76 for the unfocused menu-bar reference, and 260 × 58 for the inner-arrow reference, all at Retina density. Focused item crops retain their original 2× scale.
|
|
10
|
-
- Implementation screenshots:
|
|
11
|
-
- Active state: `/Users/tsilva/repos/tsilva/agentbridge/design-qa/status-item-active-workers.png`
|
|
12
|
-
- Zero state: `/Users/tsilva/repos/tsilva/agentbridge/design-qa/status-item-no-workers.png`
|
|
13
|
-
- Implementation pixels: 96 × 62 for a 48 × 31-point native AppKit fixture at 2× density.
|
|
14
|
-
- Viewport: native macOS status-item button, 32 × 22 points inside a 48 × 31-point menu-bar crop.
|
|
15
|
-
- Density normalization: the 64 × 62 source crop was centered on a 96 × 62 canvas without scaling so both sides retain 2× density.
|
|
16
|
-
- State: dark, unfocused-style menu bar with 48 active workers for visual fidelity; running server with zero active workers for empty-state verification.
|
|
17
|
-
- Combined comparisons:
|
|
18
|
-
- Badge proportions: `/Users/tsilva/repos/tsilva/agentbridge/design-qa/status-item-badge-comparison.png`
|
|
19
|
-
- Unfocused brightness: `/Users/tsilva/repos/tsilva/agentbridge/design-qa/status-item-inactive-comparison.png`
|
|
20
|
-
- Inner-arrow contrast before/after: `/Users/tsilva/repos/tsilva/agentbridge/design-qa/status-item-arrow-contrast-comparison.png`
|
|
21
|
-
|
|
22
|
-
## Findings
|
|
23
|
-
|
|
24
|
-
- No actionable P0/P1/P2 differences remain.
|
|
25
|
-
- Fonts and typography: the badge uses a 7.5-point semibold native system font; the two-digit weight and density match the compact Telegram reference without crowding.
|
|
26
|
-
- Spacing and layout rhythm: the 11-point capsule sits at the lower trailing edge of the existing icon, with the source-like overlap and enough of AgentBridge's mark remaining visible.
|
|
27
|
-
- Colors and visual tokens: the badge uses the current semantic label color at 48% opacity and automatically reverses its number color for light and dark appearances. The main mark uses an appearance-aware label-color palette without template dimming, keeping it bright on an unfocused display like Telegram. Filled status symbols now use a contrasting secondary palette layer: translucent black arrows in dark appearance and translucent white detail in light appearance.
|
|
28
|
-
- Image quality and asset fidelity: the existing SF Symbol remains native but is rendered as a non-template, appearance-aware image so AppKit does not mute it with inactive template tinting. The badge is rendered natively at Retina density with no raster replacement or custom icon asset.
|
|
29
|
-
- Copy and content: the visible badge is the exact live active-worker number. The button tooltip and accessibility label include the same count with correct singular/plural wording.
|
|
30
|
-
- Empty state: the zero-state rendering shows only the AgentBridge icon; no empty capsule or numeric badge remains.
|
|
31
|
-
|
|
32
|
-
The full menu-bar reference establishes the inactive-display context and Telegram's brighter mark. The component capture is the complete implementation viewport for this isolated status item. Focused comparisons confirm capsule size, opacity, number weight, overlap, the brighter main-icon treatment, and clear separation between the outer circle and inner arrows.
|
|
33
|
-
|
|
34
|
-
## Comparison History
|
|
35
|
-
|
|
36
|
-
1. The first active-state rendering used a 14-point badge with wider padding. It obscured most of the circular AgentBridge symbol and was visibly larger and lighter than the Telegram badge.
|
|
37
|
-
2. The badge was reduced to 11 points, its type and horizontal padding were tightened, and label opacity was lowered from 68% to 48%. The revised combined comparison shows matching compact proportions and tone, while the zero-state capture confirms complete badge removal.
|
|
38
|
-
3. The inactive-display reference showed AppKit's template tint making AgentBridge materially dimmer than Telegram. The symbol now uses an appearance-aware palette and is explicitly non-template; the revised dark-appearance capture shows the bright main mark while retaining the subdued badge.
|
|
39
|
-
4. The first bright non-template render gave the circle and arrows nearly identical light values, making the arrows hard to perceive. Filled symbols now use a two-color palette with 68%-opaque black inner detail in dark appearance; the before/after comparison shows clear arrow contrast. Outline-only stopped and transitional symbols retain a single semantic label color so they remain visible.
|
|
40
|
-
|
|
41
|
-
## Implementation Checklist
|
|
42
|
-
|
|
43
|
-
- [x] Observe live health-count changes in addition to server-phase changes.
|
|
44
|
-
- [x] Show the exact active-worker count in a compact native badge.
|
|
45
|
-
- [x] Hide the badge at zero.
|
|
46
|
-
- [x] Keep the main icon bright instead of accepting inactive template dimming.
|
|
47
|
-
- [x] Preserve appearance-aware light/dark coloring.
|
|
48
|
-
- [x] Give filled symbols contrasting inner detail without darkening outline-only states.
|
|
49
|
-
- [x] Preserve status-item click behavior.
|
|
50
|
-
- [x] Include the count in tooltip and accessibility text.
|
|
51
|
-
- [x] Verify active and zero states with Retina component captures.
|
|
52
|
-
- [x] Pass Swift unit tests and a release build.
|
|
53
|
-
|
|
54
|
-
## Follow-up Polish
|
|
55
|
-
|
|
56
|
-
- None.
|
|
57
|
-
|
|
58
|
-
final result: passed
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/.codex/skills/build-release/agents/openai.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/android-chrome-192.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/android-chrome-512.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/static/brand/apple-touch-icon.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/detail.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/agentbridge/templates/dashboard/requests.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/agentbridge-popover-normalized.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/implementation-header-activity.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-inactive-menu-icons.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-inactive-telegram-badge.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-low-contrast-arrows.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/reference-telegram-badge-normalized.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-badge-comparison.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/design-qa/status-item-inactive-comparison.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/docs/plans/2026-02-14-dashboard-implementation.md
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/apple-store/app-store-icon-1024.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/icon-source-keyed.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/logo-source-keyed.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/sources/social-background-source.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/android-chrome-192.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/android-chrome-512.png
RENAMED
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-16.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-32.png
RENAMED
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/favicon/favicon-48.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/image-assets/web-seo/og-image-1200x630.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbridge_cli-0.1.13 → agentbridge_cli-0.1.14}/macos/Sources/AgentBridgeMenuBar/BrandMark.swift
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|