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.
