# Release v1.23.0 - Changelog

Released: 2026-03-01

## Overview

Port swap and DRY port references.

## 🔧 Improvements

- **Swap API/UI ports**: Express API server now runs on port 5555 (was 5554), Vite dev UI on 5554 (was 5555). All other ports (5556-5560) unchanged.
- **DRY port references**: New `server/lib/ports.js` module provides single source of truth for `PORTS`, `DEFAULT_PEER_PORT`, and `PORTOS_UI_URL` — eliminates duplicate definitions across 6+ server files.
- **Fix Security page media URLs**: Video and audio streams now use relative paths (`/api/media/video`) instead of hardcoded `hostname:port`, working correctly through Vite proxy in dev and same-origin in production.

## 🐛 Fixes

- **Release workflow**: Changelog archival now commits directly to `main` instead of `release` branch, then fast-forwards `release` to match — prevents branch divergence.

## ⚠️ Migration Notes

- Existing peers in `data/instances.json` have `port: 5554` persisted. Remote instances need the same port swap, or peers need to be re-added with port 5555.
- `data/apps.json` auto-reconciles via `forceSync` on next server start — no manual data migration needed.
