Changelog

Source: CHANGELOG.md ↗

1.2.10 (26)

Native title bar again

View release ↗
  • The sidebar toggle is the standard macOS control again, so it matches the rest of the toolbar and the title bar is one continuous surface. Moving it next to the window buttons in 1.2.7 required placing it outside the toolbar, where it could not pick up the system's toolbar styling.
  • Control-Command-S and the remembered sidebar state are unchanged.
  • Stopping a process Station does not own is now offered in the same place for every case. An app running outside Station had the action above the notice while a port conflict had it inside, so the same action moved depending on the state.
  • Stack startup now counts each app as its readiness check finishes, instead of only when a whole dependency layer completes. Starting an app with seven independent dependencies jumped straight from "Starting 8 apps." to "Starting 7 of 8 apps."; it now counts up one at a time.

1.2.9 (25)

Reliable stack lifecycle

View release ↗
  • Station now recognises its own already-running Docker containers as valid dependencies, so a separately started es-odin no longer blocks the first web-next start.
  • Stopping a process Station does not own now acts on the exact process identity shown in the confirmation, instead of re-scanning the port afterwards. A process that exits between the confirmation and the stop can no longer hand its port to a replacement that Station would then stop by mistake.
  • Stopping an occupying process is offered only when its working directory could be verified.
  • Cancelling an in-progress start now rolls back only the resources started by that operation, without touching existing or separately started services.
  • Stop actions now clear stale failed states, explain separately started shared dependencies, and disable themselves when nothing remains to stop.
  • Global stop can explicitly include verified external processes after confirmation, while preserving any process whose identity cannot be safely verified.
  • Group start and stop are now enabled independently, so a partially running group can still be stopped.

1.2.8 (24)

Aligned title bar

View release ↗
  • The sidebar toggle and the Station title now sit level with the window buttons. They were drawn 12pt too high in 1.2.7.

1.2.7 (23)

Fixes where you see the problem

View release ↗
  • Port mismatch and port conflict warnings on an app's detail view now carry their own actions: stop the process holding the port, or open the editor to change the app's port. Previously the warning explained the problem but offered no way to resolve it, and the only working control was an unlabeled icon in the toolbar.
  • A disabled stop action now explains that runtime actions are locked until Station is activated, instead of being greyed out without a reason.
  • The sidebar toggle and the Station title now sit next to the window buttons instead of drifting in by the width of the sidebar.
  • The sidebar can be toggled with Control-Command-S, and its collapsed or expanded state is remembered between launches.
  • Startup failures caused by a dependency now name the dependencies that did not become ready, instead of reporting a generic message that read the same for every app.
  • The status pill in Command Center now opens the app that needs attention when the overall status is a failure, port mismatch, or port conflict.
  • Port mismatches and port conflicts now stay visible in the Command Center status and the menu bar icon while other apps are running. A single running app previously masked them.
  • The app toolbar's icon-only buttons now have tooltips, so the stop button says whether it stops Station's own process or a foreign one.
  • The restart tooltip no longer says "Restart the app" while the button is disabled because the app runs outside Station.

1.2.6 (22)

Reliable Docker ownership

View release ↗
  • Docker containers started by Station now retain Station ownership even when the background health monitor observes the container before startup readiness completes.
  • Station continues to own and can stop a container when its process is running but its readiness check fails.

1.2.5 (21)

Reliable runtime ownership

View release ↗
  • Docker containers started by Station now remain Station-owned after the short-lived Docker command exits, so global and per-app stop actions stop the configured container reliably.
  • Startup results now count only apps that actually reached a running state, exclude preserved external apps, and update when a launched app later exits or fails.
  • Docker stop failures are now reported as failures instead of being shown as successful stops.

1.2.4 (20)

Explicit external stops

View release ↗
  • External Docker apps can now be stopped from their app card, detail view, or toolbar after explicit confirmation, even when Docker does not expose a direct port process to Station.
  • The global stop action continues to preserve external processes and reports them separately.

1.2.3 (19)

Reliable concurrent commands

View release ↗
  • Concurrent port, Docker, and diagnostic commands now finish deterministically even when several short-lived processes exit at the same time.
  • Timed commands no longer risk waiting indefinitely after Station has force-stopped an unresponsive child process.

1.2.2 (18)

Live stack progress

View release ↗
  • Stack startup now reports live completed and total app counts, including dependencies that Station safely preserves as external processes.
  • Every pending app keeps its starting indicator until its readiness check has actually completed.
  • Confirmed port takeovers and shared-service force stops now run reliably after their confirmation dialogs close.
  • Docker waiting, recovery, and failure states now stay current in the status banner instead of leaving stale or misleading startup text.

1.2.1 (17)

Fast startup readiness

View release ↗
  • Docker readiness checks no longer leave stack startup waiting after Docker is already available.
  • Already-running configured Docker containers are accepted as ready dependencies only when the exact container and configured port are active.
  • Per-app starting indicators now appear promptly instead of remaining visually stopped behind the stack progress banner.
  • Finder-launched sessions now discover common Node toolchains without loading interactive shell prompts.

1.2.1 (16)

Reliable stack startup

View release ↗
  • Starting a stack now asks before stopping processes that occupy required ports, then revalidates each PID, port, and working directory before Station takes control.
  • Configured Docker containers that are already running are adopted as healthy external dependencies instead of being reported as foreign port conflicts.
  • Apps that share a working directory no longer create false port-mismatch errors for each other.
  • Terminal sessions start at a usable width and no longer load interactive shell startup prompts, preventing broken line wrapping and blocked launches.
  • Keeping a migrated setup is remembered across launches, and a previously exported app setup can now be imported directly during first-time setup.

1.2.0 (15)

Reliable runtimes and flexible setups

View release ↗
  • Fixed Docker detection for apps launched from Finder and added cancellable startup guidance when Docker is unavailable, slow, or not responding.
  • Made grouped stop operations terminate Station-owned process groups, preserve genuinely shared or external services, and report per-app progress and outcomes.
  • Added automatic local troubleshooting after runtime failures, with structured evidence and reviewable AI Doctor configuration proposals that are never saved without approval.
  • Improved app details with labeled, selectable metadata, copy actions, Finder access, readable command formatting, and separate running and health states.
  • Added nested drag-and-drop groups with recursive start and stop behavior.
  • Added four deliberate dependency-display presets: pixel-aligned Trace, a calm curved Flow, line-free Signals, and line-free Highlights.
  • Dependency relationships now stay anchored to the selected app, support both directions and right-to-left layouts, and scale with the app's text zoom without flickering between rows.
  • Made the Settings window resizable and gave every pane a consistent size, so switching tabs no longer resizes the window and taller panes no longer need scrolling at a fixed height.
  • Added a Settings notice when a locally built, unreleased version is running, explaining why update checks still report that Station is up to date.
  • Added user-selected app setup export locations, visible saved paths, Finder reveal, and validated import with a replacement preview and confirmation.
  • Added complete localization for the new runtime, troubleshooting, hierarchy, dependency, and setup-transfer experiences across all 14 supported languages.
  • Kept XCTest hosts hidden and isolated from user catalogs and preferences, and corrected inspector sizing in right-to-left layouts.

1.1.4 (14)

Balanced sidebar search

View release ↗
  • The sidebar search field now follows the panel's rounded top edge with balanced spacing while retaining native live filtering, clearing, focus, and accessibility behavior.

1.1.3 (13)

Activation banner and installer privacy

View release ↗
  • The activation-required notice now reserves space above the sidebar, main view, and inspector instead of covering their content.
  • Installer metadata no longer retains creator-local build paths.

1.1.2 (12)

Deterministic startup failures

View release ↗
  • Apps that exit before becoming ready are now consistently marked as failed.
  • Late terminal callbacks can no longer start dependents or overwrite a failed startup state.

1.1.1 (11)

Reliable shell startup

View release ↗
  • Fixed service and dependency startup on clean macOS accounts that do not yet have a readable .zshrc file.
  • Shell configuration errors no longer prevent Station from launching the configured project command.

1.1 (10)

Safer project workflows

View release ↗
  • Added project discovery and atomic stack import for Node, Python, and Docker Compose projects.
  • Added Quick Open with Command-K for apps, groups, views, and safe runtime commands.
  • Added redacted support reports that can be reviewed, copied, or exported as Markdown or JSON from AI Doctor.
  • Kept existing setups available for inspection when activation is required while locking edits, process control, and repairs.
  • Added explicit confirmation and process identity checks before Station can stop external processes, while Global stop now preserves them.
  • Added an evidence review step before AI Doctor sends redacted diagnostics to the configured provider and tightened repair boundaries.
  • Fixed license activation, device linking, private server errors, and a Keychain read that could block the app during startup.
  • Hardened checkout, webhooks, public license APIs, release metadata, and stable-release promotion against replay, stale events, and inconsistent state.
  • Aligned the macOS app, website, localization catalog, and shared design system, including responsive navigation and clearer support guidance.

1.0 (9)

Polished installer

View release ↗
  • Shipped the hand-tuned DropDMG installer layout for the direct download.
  • The DMG now mounts as Station 1.0 (9) so Finder does not reuse cached window geometry from earlier builds.
  • The installer window shows only Station.app and the Applications drop target on the branded background.
  • No app workflow changes are included in this build.

1.0

Direct distribution launch

View release ↗
  • Released Station as a direct-distribution macOS app for macOS 14 and newer.
  • Added the Command Center for apps, groups, and terminal sessions.
  • Added port conflict detection, external process detection, HTTP checks, and port health checks.
  • Added Dependency Matrix and Dependency Board with ordered start plans.
  • Added Docker daemon control and governed AI Doctor diagnostics with approval-gated repairs.
  • Added direct DMG download, a 7-day local trial, Paddle purchase, Clerk account center, and license activation for up to three Macs.