Skip to content
PortBay

Changelog

Last updated: September 12, 2026

Every PortBay release, newest first — sourced live from GitHub releases, where you can also download any version directly.

PortBay 0.1.9

v0.1.9 · · Release notes on GitHub

Local models won't melt your machine any more

  • **A model that cannot fit is refused, not just ranked lower.** The model catalog's fit badge used to score an over-budget variant down and still let you download it; on a 16 GB machine that means swapping, which on unified memory is a frozen laptop rather than a slow one. An over-budget variant now says in words what it needs and what you have, and the Playground refuses to load weights past the budget.
  • **Off Apple Silicon, PortBay now says "unknown" instead of guessing.** The speed and fit figures were derived from Apple's unified-memory model and were being shown verbatim on machines they do not describe — a Linux box with a discrete GPU saw a 40 GB model badged "Tight fit" when it was 16 GB past the card's ceiling, and every row quoted a prefill speed measured on a Mac Studio. Those rows now report unavailable, and the memory budget is taken from the platform's real constraint or declared unknown.
  • A hand-picked CPU bandwidth constant, wrong in opposite directions for the two populations it covered, is gone rather than corrected.

Databases

  • Connection discovery, environment profiles, and a database navigator panel.

Live editor

  • The pages selector re-reads the page listing when a route appears on disk, so a page an agent creates or imports shows up without reloading.
  • When an agent's change reloads the page, you are put back where you were.

Reliability — builds, dispatch, and verification

Most of this is invisible until it isn't. Each item is a failure that happened.

  • **Two builds could hold the "one build at a time" slot simultaneously.** A slot was published before it was labelled with its owner, and an unlabelled slot read as abandoned — so a second build reclaimed a live one. Fixed in all three places that arbitrate it.
  • **A retention pass could delete Cargo's state out from under a running build**, which surfaced as a compile error in code that was fine. The post-build pass now only scans; deletion happens in a maintenance mode that holds the build slot, and takes it without queueing so it defers instead of starving builds.
  • **`PORTBAY_TARGET_PRUNE_APPLY=0` used to enable destructive pruning** — the variable was tested for being set rather than for its value. Only `1` enables it.
  • **A run that never reached the provider no longer counts as a failed attempt.** A timeout or an exhausted rate limit was charged as though the agent had got an answer and got it wrong, and three of those would fire the escalation path on a run that never happened.
  • **A verification whose checks take longer than the call that asked for them now completes out of band** instead of dying at a watchdog with nothing recorded.
  • **A gate that could not run reports "inconclusive"**, not "failed" — a missing build input is a fact about the machine, not about the change.
  • **A run killed at its limit leaves a short digest of what it had established**, so the next attempt does not rediscover it.
  • A failed cloud turn can rotate to the next provider a card named, and a provider that truncates below the cap we asked for is distinguished from a model that genuinely ran long.

Measurement

  • The smoke evaluation can run a suite N times and gates on measured spread rather than a fixed threshold — on a ten-task suite, one task flipping is ten points, so the previous gate could not tell a regression from noise.
  • Every dispatched run records the shape of its model calls — per call, with token counts and finish reason — rather than only a total.

---

**Install:** download `PortBay_0.1.9_aarch64.dmg` (Apple Silicon), open it, and drag PortBay to Applications. The build is signed, notarized and stapled, so it launches without a Gatekeeper prompt and works offline on first launch.

v0.1.8

v0.1.8 · · Release notes on GitHub

Agent / MCP token cost

PortBay's MCP server was consuming a large share of an agent session's context.

Three fixes, all measured against a real 381-card board:

  • **Tool list at startup: ~39,600 tokens → ~550.** The server now boots with

progressive tool disclosure: `tools/list` returns three discovery tools

instead of all 108. An agent enables the toolset it needs, and only those

tools are loaded.

  • **Reading the board: ~155,000 tokens → ~6,000.** `portbay_tasks_list` had no

limit and returned every card, which could consume most of an agent's context

in a single call. Responses are now bounded server-side. A shortened page

reports `truncated` and `nextOffset` rather than silently omitting cards.

  • **Project learnings cost about half as much** and hold more rules. Entries are

capped at 500 characters, and re-asserting an existing rule promotes it, so

the oldest *least-reinforced* entry is dropped rather than simply the oldest.

Task board

  • **Blocked cards can be picked back up.** An agent can move a card from Blocked

back to In Progress, To Do, or Backlog without needing an approval gate.

Blocked → Done and Blocked → Review remain gated, so a failing verification

check still cannot be self-certified as passing.

  • **Fixed: dispatched runs could be treated as expired the moment they started.**

A run's lease was timestamped before the slow setup work that precedes launch

(repository mapping, model preflight, MCP registration, secret resolution). On

a loaded machine that setup could outlast the lease's own timeout, so a live

run was seen as dead. The lease clock now starts when the lease is written.

Disk

  • **Dispatch worktrees are reclaimed once their commits reach the integration

branch**, instead of waiting a week. Each worktree carries its own build

output and can be many gigabytes; they now clean themselves up as work merges,

with the branch and its commits always left intact.

PortBay 0.1.7

v0.1.7 · · Release notes on GitHub

PortBay 0.1.7

macOS

  • **Apple Silicon (arm64)** — signed, notarized DMG → `PortBay-macos-arm64.dmg`
  • **Intel (x86_64)** — signed, notarized DMG (new this release) → `PortBay-macos-x86_64.dmg`

Both DMGs are Developer ID signed, notarized, and stapled. The download page auto-detects your Mac's chip.

Auto-update

`latest.json` advertises `darwin-aarch64` and `darwin-x86_64`.

Linux

Linux (x86_64 AppImage + deb/rpm) is being finalized and will be attached to this release shortly.

Install

Download the DMG for your Mac, drag **PortBay** into Applications, press **Play** — your first site runs at `https://yourproject.test` with HTTPS. Also available via the Homebrew cask.

PortBay 0.1.5

v0.1.5 · · Release notes on GitHub

Visual editing, screen capture, and a smarter agent runtime. Apple Silicon, macOS 11+. The DMG is signed, notarized, and stapled.

Visual preview editor (Pro, beta)

  • **Edit your UI live** — pick elements in a project's preview, tweak styles and text, and write the changes back to source. Open it from a project's Preview quick action or via "Edit in browser".
  • Behind the **Early Access** toggle in Settings while it's in beta — expect rough edges, and tell us what breaks.

Screen capture & recording (Pro)

  • Capture screenshots and recordings of your running projects — selection overlay, hotkeys, and Quick Access.

Projects & runs

  • **Python** is now a first-class project type.
  • **Mobile runs** — pick a destination (simulator, emulator, or device), follow distinct run phases, and pair Android devices over Wi-Fi with a QR code.
  • **Integrations hub** — a capability hub for connected tools, plus a customizable sidebar.
  • **Fixed: false "Needs attention"** — readiness probes never actually ran, so every project sat in "Starting…" and then flagged unhealthy even while serving. Play → Running now reflects reality within seconds.

Dictation & speech

  • **True streaming ASR** — Parakeet EOU 120M is the new default, with a Nemotron accuracy tier.
  • Faster first dictation after launch (mic-first cold start), per-model recognizer bias for your jargon, and a microphone permission pre-flight with an actionable denied state.
  • Polishing stays off the critical path — pre-flight, cache priming, and background swap.

Agent task board (Pro)

  • Verification gates on completed runs, self-healing edits in the native runtime, a repo-map context engine for dispatch prompts, and teacher escalation that distills failed runs into learnings.

Security & reliability

  • SSH transport, secret handling, and host-key trust (TOFU) hardening — including password-auth tunnels.
  • Model-weight content digests, session-env scrubbing for child processes, and a fail-closed hosts helper.
  • Boot now survives sidecar and port failures.

Updating

Existing users on 0.1.4 update in place via the built-in updater.

PortBay 0.1.4

v0.1.4 · · Release notes on GitHub

On-device AI and speech, expanded. Apple Silicon, macOS 11+. The DMG is signed, notarized, and stapled.

AI page

  • **On-device image generation** — Stable Diffusion via Apple's `ml-stable-diffusion`, plus an Apple Image Playground bridge.
  • **Text-to-speech** — Kokoro voices, on device.
  • **Embeddings & model catalog** — a live model catalog with on-device embeddings.
  • **Playgrounds** — dedicated tabs to try speech-to-text, text-to-speech, embeddings, and image generation.

Speech-to-Text

  • On-device transcription with **Whisper** and **Parakeet** (v2/v3) on the Neural Engine.
  • Resident-engine transport for instant Fn-hold capture, with recognizer bias so your jargon survives.

CLI

  • Install the `portbay` CLI to your PATH from **Advanced** settings.

Updating

Existing users on 0.1.3 update in place via the built-in updater.

PortBay 0.1.3

v0.1.3 · · Release notes on GitHub

  • Smart Dictation: a mic button on task cards and the SSH agent composer

triggers macOS system dictation (no in-app recognizer), with an optional,

off-by-default rewrite pass that cleans up the transcript on-device via

Apple Intelligence (macOS 26+) or a local Ollama model. Push-to-talk via

the Fn (🌐) key.

  • SSH Access redesign: single-pane host workbench (list → detail → form),

interactive terminal with split panes and broadcast input, smart port

detection with one-click forwarding, host-key accept dialog, keyboard-

interactive 2FA, SFTP file manager, remote port-forwarding page.

  • ML remote-host tooling: GPU monitoring panel, quick-forward presets for ML

dashboards, training-run notifications, tmux/screen + SLURM awareness,

large-file transfer progress with resume, remote CUDA/env awareness.

  • Per-project task board with LLM agent dispatch (Claude Code / Codex),

hand-off documents, agent learnings memory, and MCP task tooling.

  • Embedded database client (table browser, query workbench) absorbed into

Databases and project detail.

  • Project-backed certificate settings page; built-in language intelligence

for the IDE surface.

  • Reliability: poison-recovery on all production mutex locks, reference-counted

sidecar status polling, cache-first PATH bootstrap (no login-shell stall on

launch), SSH prompt failures surface as toasts, telemetry path scrubbing

derived at runtime, sync status read without touching the keychain.

What's Changed

  • docs(readme): task board + SSH workspace sections with screenshots by @TribalHouse in https://github.com/portbay-app/portbay/pull/28
  • docs(comparisons): position the agent task board across all comparison pages by @TribalHouse in https://github.com/portbay-app/portbay/pull/29

**Full Changelog**: https://github.com/portbay-app/portbay/compare/v0.1.2...v0.1.3

v0.1.2

v0.1.2 · · Release notes on GitHub

First release fully built, signed, notarized, and stapled by CI. Incorporates

the unpublished 0.1.1 build. Apple Silicon (`aarch64`) only.

Added

  • Zero-config public sharing of dev servers through Cloudflare quick tunnels,

with live reachability status (not just process-alive).

  • CLI and MCP parity with the app: databases, DNS, runtimes, project groups,

tunnel teardown, sidecar status probe, and read-only access to certificates,

logs, and the sandbox.

  • PortBay-managed PHP-FPM runtime; nginx and Apache web-server management with

validated config generation.

  • In-app AI integrations panel: MCP setup as an environment picker with

first-run nudge.

  • First-run smoke project serves a local landing page; static sites get real

play/pause lifecycle.

  • Project avatars show the detected favicon or app icon.
  • Duplicate hostname and port validation on project add/update.
  • macOS polish: appearance-aware Dock icon with a Show-icon-in-Dock toggle,

redesigned menu-bar tray popover, window vibrancy, new app icon with the

macOS 26 Liquid Glass pipeline.

  • Privacy Policy and Terms of Service pages in the docs site.
  • Previously inert settings now work: launch at login, hosts-file management,

certificate auto-renew, and related toggles.

Changed

  • New projects default to HTTPS, and the dashboard shows the ports Caddy

actually bound.

  • The default domain suffix override is part of Pro.
  • Session keychain item renamed to "PortBay Account".
  • Docs: all 58 MCP tools documented; DNS and SSL guides synced to behavior.
  • Dependency upgrades (thiserror 2, x509-parser 0.18, console 0.16, frontend

dev dependencies).

Fixed

  • HTTPS lands on port 443 instead of 8443: the wildcard listener is bind-tested

at boot, TLS terminates via an explicit connection policy, and reconciliation

pins to the boot-chosen port.

  • Public shares no longer fail on origin SNI: tunnels route to the project's

Caddy listener by scheme and serve over the loopback origin.

  • MariaDB is no longer detected as MySQL (shared `mysqld` binary).
  • Workspace projects start and stop reliably (`process_compose_id` parity).
  • Redis data paths containing spaces work (quoted `dir` and `unixsocket`).
  • Bundled Mailpit is detected, dnsmasq is probed over UDP, and port conflicts

on :80 are attributed to the real holder.

  • process-compose receives its environment as a `KEY=value` sequence, fixing a

daemon crash on boot.

  • PortBay never runs competitor binaries (ServBay/Herd/MAMP/XAMPP/FlyEnv) —

discovery stays read-only; importing their projects remains supported.

Release infrastructure

  • CI builds the DMG signed, notarized, and stapled (`.app` and DMG both), with

a CycloneDX SBOM and a <100 MB installer budget guard.

  • Updater signing key rotated to a password-protected key (2026-05-26).

**Full changelog**: https://github.com/portbay-app/portbay/compare/v0.1.0...v0.1.2

v0.1.0

v0.1.0 · · Release notes on GitHub

What's Changed

  • docs: screenshots, READMEs, SEO comparison cluster, theme + icon fixes by @TribalHouse in https://github.com/portbay-app/portbay/pull/15
  • Rotate updater signing key + ignore .secrets/ by @TribalHouse in https://github.com/portbay-app/portbay/pull/16

**Full Changelog**: https://github.com/portbay-app/portbay/compare/preview...v0.1.0

PortBay preview (unsigned test build)

preview · · Release notes on GitHub

Unsigned preview build for testing the latest changes via try.portbay.app. macOS can't verify it on download, so on first launch: right-click PortBay.app → Open (or run: xattr -dr com.apple.quarantine /Applications/PortBay.app). A signed + notarized v0.1.0 will replace this once release signing is enabled.