Skip to content

feat: add Vercel deployment monitoring (prototype) - #8

Merged
enderdev01 merged 6 commits into
mainfrom
feat/vercel-deployment-monitoring
Nov 4, 2026
Merged

enderdev01 merged 6 commits into
mainfrom
feat/vercel-deployment-monitoring

Conversation

@enderdev01

Copy link
Copy Markdown
Owner

Linked issue

Closes #7

What and why

  • Adds a VercelMonitor that pairs the desktop app with a Worker, polls the connected integration's production deployments (pagination, rate-limit recovery, disconnect) and notifies once per terminal transition. An initial snapshot never notifies.
  • Adds a collapsed-notch deployment row, deployment rows in the expanded session list, a geometry-derived panel size, the Vercel mascot sprite, a status-menu Connect/Disconnect item and translations.
  • Adds the unreleased Worker, four test suites, and a design note (docs/vercel-notch-ux.md) recording how the notch stays quiet: no collapsed layout delta, agents keep the primary signal, worst state plus count, passive terminal notifications behind a switch.

Changes

File Change
Sources/AgentNotch/Domain/Deployment.swift New value type plus DeploymentTracker deduplication
Sources/AgentNotch/Infrastructure/VercelMonitor.swift New pairing, polling and notification monitor
Sources/AgentNotch/Infrastructure/HookServer.swift Debug endpoints for Vercel simulation
Sources/AgentNotch/App/AppDelegate.swift, StatusMenu.swift Wire the monitor and the Connect/Disconnect menu item
Sources/AgentNotch/UI/NotchRootView.swift, SessionListView.swift, AccentLine.swift, NotchViewModel.swift, MascotSprites.swift Deployment indicator, expanded rows, geometry-derived width, sprite
Sources/AgentNotch/UI/StepViews.swift Removes the collapsed StepStrip in favour of the deployment row
packaging/locales/*/Localizable.strings English, Spanish and German strings
Tests/AgentNotchTests/* Deployment tracking, pagination, unknown states, simulation, layout
docs/vercel-deployment-monitoring.md, docs/vercel-notch-ux.md Plan and UX rules
integrations/vercel-worker/* Cloudflare Worker that holds the client secret

How I tested it

  • swift build -c release passes
  • python3 scripts/check-strings.py passes (88 strings in 3 languages)
  • bash -n bridge/agent-notch-hook scripts/*.sh passes
  • swift test passes (XCTest suites plus 7 Swift Testing tests)
  • No secrets, personal paths or network calls added

Reviewer notes

  • This PR deliberately adds network calls, so the last box is unchecked. CONTRIBUTING.md and the README promise that the app never sends anything anywhere; that invariant needs an explicit exception (and a README update) before merge. The monitor only talks to the configured Worker, never to Vercel directly, and requests no personal token.
  • The Worker URL is unset and the Vercel integration is unregistered, so the feature is inert: the status-menu item stays hidden until credentials exist. This is a prototype, not a release candidate.
  • StepStrip removal is intentional, but it means the collapsed notch no longer shows n/m step progress. Worth confirming that trade-off before merge.
  • The design note lists the remaining interruption gaps (collapsed width delta, .active notification level, missing switch).

Add a VercelMonitor that polls the connected integration's production
deployments, pairs the desktop app with a Worker through a one-time
state, and notifies once per terminal transition. Deployments decode
into Deployment values, the status menu gains a hidden-until-configured
Connect/Disconnect Vercel item, and the Vercel mascot sprite is added.
Replace the collapsed step strip with a live deployment row (project,
state and an indeterminate indicator) while a Vercel deployment runs,
list deployments in the expanded session list, and size the expanded
panel from the current notch geometry instead of a fixed width.

StepStrip is removed; per-step progress stays in the expanded StepList.
Unit tests for authentication state, pagination and rate-limit recovery,
unknown states, missing git metadata and status transitions, a fake
Vercel simulation, and the geometry-derived panel width. Adapt the
session-list test to the new deployments parameter.
Add a Vercel prompt to the mascot generator, a --base-only mode, and an
optional agent argument for the processing step so a single sprite can
be regenerated without touching the others.
Record the integration design, the security requirements that still
gate it (authorization-code exchange, one-time state, revocation), the
manual verification needed, and the unreleased Cloudflare Worker that
holds the client secret, with its own tests and wrangler config.
Record the interruption budget: no collapsed layout delta, agents keep
the primary signal, worst state plus count instead of a carousel,
passive terminal notifications behind an explicit switch, and hover-only
details. List the gaps in the current WIP and the acceptance criteria.
@enderdev01 enderdev01 added the enhancement New feature or request label Nov 4, 2026
@enderdev01
enderdev01 merged commit c64e9b7 into main Nov 4, 2026
1 check passed
@enderdev01
enderdev01 deleted the feat/vercel-deployment-monitoring branch November 4, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vercel deployment monitoring (prototype)

1 participant