Skip to content

Releases: atimmer/devservers

v0.5.0

28 Apr 09:30

Choose a tag to compare

Changed

  • Repo instructions now require an immediate fresh build after each change so local devservers binaries and any pnpm link setup keep pointing at the newest build artifacts for testing.
  • CLI manager lifecycle commands now live under devservers daemon, replacing devservers bootstrap with devservers daemon start, adding devservers daemon stop to stop the manager tmux windows without touching service windows, devservers daemon restart to reload the manager daemon window, and devservers daemon status to inspect tmux/runtime reachability without changing state.
  • UI log rendering now has regression coverage for trimming trailing blank tmux pane rows without removing intentional blank lines inside output.
  • Desktop UI now uses a right-sidebar navigation model with fuzzy search at the top; started services remain pinned in a dedicated area, sidebar ordering now prioritizes most recently started services/working copies (using lastStartedAt) with stable name fallback ordering, services are organized by working copy, working-copy headers only render when multiple services exist in that group and use slightly larger type, service rows are compact 36px name-only entries with no vertical gaps between adjacent service rows, horizontal overflow is suppressed in the sidebar, extra vertical separation is added between the Started block and non-started service list, list-level card wrappers around sidebar services were removed for a flatter layout, clicking a service focuses that single service in the main pane without transition animation, clicking a working copy shows all services for that working copy, inline service logs now pause follow mode when the user scrolls up and show a bottom-right follow button with a down-arrow icon, offset clear of the scrollbar, to resume automatic scrolling while the selected service is running without snapping back on background service refreshes, inline logs trim trailing blank tmux pane rows before rendering so follow mode stays on short output instead of empty space, the selected service now always shows its inline log panel, including an empty state before any output has been captured, the daemon now automatically unregisters registered projects whose directories no longer exist, stopping any still-running compose-managed services for those projects instead of repeatedly erroring on stale paths, and compose-backed services are now refreshed during catalog resolution so the UI picks up devservers-compose.yml edits even when a filesystem watch event is missed.

v0.4.0

19 Feb 08:52

Choose a tag to compare

Added

  • Compose services can now write resolved env vars into a managed block inside a .env file via managedEnvFile/managed_env_file/managed-env-file, with block delimiters # - Managed by \devservers` - Start, do not edit.and# - Managed by `devservers` - End`; when appending after existing content, devservers inserts two newline characters before the start marker and no blank lines inside the managed marker block.
  • CLI now includes devservers url <service> to print a full local URL for a running service, with optional --scheme, --host, and --path overrides; it also exposes an explicit top-level --help overview flag for agents to list available commands quickly.

Changed

  • UI now shows active services in a compact Started services section at the top, removes those running services from the detailed list, keeps service ordering alphabetical (groups and services) instead of status-driven reordering, removes ViewTransition usage completely, adds service appear/disappear motion for start/stop flows using Motion AnimatePresence with height-based enter/exit transitions (with layout/popLayout) that trigger only after real status changes, tightens started-service action-column spacing, uses compact icon actions for Config/Edit/Logs, keeps Open as the rightmost button with its icon on the right, normalizes larger icon sizing across these controls, moves project unregister actions into each service working-directory label, makes long service edit dialogs scrollable, and caps dependency checklist height so actions remain reachable.
  • Daemon console logging now uses pino-pretty formatting when attached to an interactive terminal while preserving default structured logging in non-interactive environments.

Fixed

  • devservers bootstrap now aligns daemon runtime with UI mode (daemon uses packaged daemon with /ui/, source-mode defaults to Vite hot reload via --ui vite) and auto-recovers local stale daemon sessions that respond on /services but are not serving /ui/.
  • Service add/edit modal failures now render inline inside the modal (including create/delete errors) instead of only in the page-level alert hidden behind the dialog overlay, and daemon JSON error payloads (including validation objects) are now formatted into readable messages instead of raw JSON.

v0.3.0

11 Feb 15:39

Choose a tag to compare

Added

  • Added a muted delete action to the edit service modal.
  • Added service dependencies with auto-start ordering, dependent stops, restart-safe behavior, and env port templates for dependency services (${PORT:service-name}).
  • Added registeredProjects with devservers-compose.yml support, file watching, project references in UI, compose service Config viewing, and automatic <project>_ service-name prefixing so one definition can be reused across checkouts.
  • Added repo grouping plus workspace paths in the UI, backed by workspace/git detection.

v0.2.2

11 Feb 15:38

Choose a tag to compare

Added

  • CLI now supports --version output sourced from package.json.

Changed

  • Logs viewer now renders ANSI color output via xterm.js when requested.
  • Logs dialog is now centered, larger, and the log panel fills the available height.
  • Service form now shows port only when port mode is static, with port mode listed first.
  • Publish workflow now runs automatically when tags are pushed.

Fixed

  • ANSI log stripping regex no longer trips the ESLint control regex rule.
  • Slow-starting services no longer flip to error unless logs show an error.

v0.2.1

11 Feb 15:38

Choose a tag to compare

Changed

  • Release checklist now only documents prep work plus tagging/pushing (publishing handled by GitHub Actions).
  • Condensed the UI header into a compact stats bar with a more prominent Add Service button, flush to the top with squared upper corners.
  • Updated the README UI screenshot.
  • CLI status output now includes service ports when known, with skills/docs noting how to retrieve them.
  • Open button now uses a link targeting a new tab, centered like the other buttons.

Fixed

  • UI build now includes React type definitions for TypeScript.
  • Error boundary now stores caught errors along with component stacks for strict builds.
  • Port registry tests now use bracketed env access to satisfy strict typing.
  • Start failures now clear the start spinner, surface an error badge, and highlight Logs until opened.
  • Dialogs now close on Escape using Radix UI.
  • Modals now sit above view transitions and use higher z-index overlays to prevent background bleed-through.

v0.2.0

11 Feb 15:38

Choose a tag to compare

Added

  • UI now shows a dev-only error boundary message when rendering fails.

Changed

  • Controls now use a shared action button helper and consistent sizing (Stop above Restart, 140x36 buttons).
  • Start/stop/restart actions now show spinners based on refreshed status (stop delayed; restart persists until running).
  • Service cards now animate reordering via React ViewTransition (requires React canary), with slower timing.
  • Clarified changelog guidance to merge follow-up fixes into the original entry.

Fixed

  • Publish workflow now uses pnpm publish --filter to avoid npm workspace publish errors.
  • Bootstrap now starts the daemon from an existing window even if it was left in a different directory.
  • CLI bootstrap now waits for the daemon to become reachable before returning.
  • Stopping a service now removes its tmux window to avoid stale sessions.
  • ViewTransition wrapper now references the runtime React export to avoid undefined component crashes.

v0.1.2

11 Feb 15:38

Choose a tag to compare

Fixed

  • GitHub Actions publish workflow no longer fails during Node setup by avoiding the pnpm cache hook.
  • Publish workflow now uses pnpm publish with OIDC provenance so workspace deps are rewritten for published packages.
  • Package metadata now points to the correct GitHub repository for provenance validation.

v0.1.1

11 Feb 15:38

Choose a tag to compare

Added

  • devservers install-skill --agent <name> to target non-Codex agents, with per-agent skills directories.

Fixed

  • Vite production build now sets base to /ui/ so daemon-served UI assets resolve correctly.

v0.1.0

11 Feb 15:38

Choose a tag to compare

Added

  • Devservers Manager daemon (Fastify) with REST + WebSocket APIs to manage tmux windows and stream logs.
  • Web UI for service controls, logs, edit flow, and quick actions; UI served from the daemon at /ui/.
  • devservers CLI with bootstrap, list/status/add/remove/start/stop/restart; auto-starts daemon/UI if needed.
  • Config schema with service env, optional port, and portMode (static, detect, registry), including log-based port detection.
  • lastStartedAt tracking for service runs.
  • Bundled Codex skills plus install-skill for agent workflows.