Story: Compass environment improvements: port auto-assignment and fleet env-type display

Table of Contents

This page documents a story in Sprint 21. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Improve compass env provision so it never collides with existing environments by scanning all ores_dev_* directories and picking the next available base port. Also improve compass fleet to surface the environment type (full vs light) alongside each worktree entry so the fleet overview is self-documenting.

Status

Field Value
State DONE
Parent sprint Sprint 21
Now All three tasks merged (PRs #1291, #1292).
Waiting on Nothing.
Next Nothing.
Last touched 2026-06-25

Acceptance

  • compass env provision auto-assigns the next available base port by scanning existing ores_dev_* .env files — no manual –base-port needed and no collisions
  • compass fleet shows ORES_PROVISION_TYPE (full/light) for each worktree

Tasks

Task State Start End Description
Auto-assign base port in compass env provision DONE 2026-06-24 2026-06-25 Scan sibling .env files and pick next free port; no –base-port needed.
Init vcpkg submodule in env provision for full environments DONE 2026-06-24 2026-06-25 Auto-init vcpkg after git worktree add for full envs.
compass fleet: show provision type (full/light) per worktree DONE 2026-06-24 2026-06-25 Show ORES_PROVISION_TYPE in fleet output.

Decisions

  • `_scan_ports` lives in `env_init.py` (not `env_create.py`) so both `env configure` and `env provision` share the same port-scanning logic — fresh clones that bypass provision also get collision-free ports.
  • vcpkg submodule init is soft-fail: warning printed, provision continues. The worktree is usable; the user can re-run `git submodule update –init vcpkg` manually if needed.
  • `_worktree_env_value` reads `.env` on each call (one call per worktree in fleet) — acceptable at current scale; factoring out the read would only matter if the number of per-worktree keys grew significantly.

Out of scope

Emacs 29.1 (Org mode 9.6.6)