Changelog

User-facing release notes. For the granular per-commit log of internal milestones, see workplan.md.

The format roughly follows Keep a Changelog; versions follow Semantic Versioning once we ship a tagged release. Pre-release entries below are dated rather than numbered.

Unreleased

Added

  • Documentation set (M12). Auto-generated manifest reference with drift-detection test; conceptual guides for the four principles, project model, and recipe model; per-service-type reference pages for every blessed and generic type; recipe library docs; quickstart; troubleshooting page; Next.js marketing landing page under landing/ (deployed to unibench.app); privacy policy + terms of use; this changelog and a public roadmap.

Changed

  • Nothing user-visible.

Removed

  • Nothing.

2026-05-14 — milestone arc M0–M12

Highlights

The version of Unibench that exists today is the result of twelve sequenced milestones (M0–M12) across the orchestrator core, the SwiftUI shell, the AI agent, the secrets system, the diagnostics + telemetry surface, and the documentation set.

M0–M4 — orchestrator core

  • Workspace bootstrap with Rust + SwiftUI shell + hand-rolled C-ABI FFI.
  • Manifest parser with schema + catalog versioning.
  • Full v1 service catalog: ten service types (Postgres, Redis, Qdrant, Ollama, MinIO, process, task_service, container, compose, remote).
  • Dependency-graph orchestrator: layered topological start, healthcheck retry policy, port registry, mise-driven runtime auto-install from lockfiles.
  • Shared-isolation runtime (Ollama defaults to shared so models load once across projects).

M5–M6 — SwiftUI shell + inspection

  • Single-window app with sidebar + dependency-graph canvas + per- service inspector drawer.
  • Recent-projects list, drop-to-open folder, Global Layout that cross-cuts open projects.
  • Five inspection surfaces: Postgres tables + connection string, Redis keyspace + sample keys, Qdrant collections, Ollama installed + loaded models with VRAM footprint, MinIO buckets + root credentials.
  • External-tool handoff: jump to psql, redis-cli, etc. when they're installed.

M7 — Sandbox modes

  • Resume / Fresh / Seed start modes (decision 2.21).
  • Project-name confirmation prompt for destructive modes.
  • Optional [seed].scripts in the manifest for fixture loading.

M8 — Secrets + Keychain

  • @keychain:<name> references in manifest fields resolve at service start via macOS Keychain.
  • Inline-secret detector + toml_edit-based rewriter for one-click migration of literal passwords into Keychain.
  • MinIO root credentials mirror into Keychain on first-run init.
  • All resolved values are never logged or persisted to disk.

M9 — AI agent (read-only, BYOK)

  • Provider implementations for Anthropic Messages API, OpenAI Chat Completions, and local Ollama.
  • Five-tool read-only catalog: get_manifest, get_service_status, get_service_logs, get_service_config (secrets redacted), get_dependency_graph.
  • Tool-use loop with parallel tool dispatch and a max-rounds cap.
  • BYOK key entry via unibench secret set <provider>.
  • IPC AskAgent request + SwiftUI Diagnose tab on every service with a service-specific pre-filled question.
  • Confidence-badged response rendering and per-response thumbs feedback (captured locally).

M10 — First-run experience + samples

  • Welcome screen with "Open Folder" + "Try a sample" buttons.
  • Sample library with four blessed samples (python-rag-baseline, agent-loop, embedding-experiments, python-rag-customized).
  • Sample picker sheet with HSplit list/detail; "choose a different folder" affordance when the target is non-empty.
  • Add-on recipes (frontend-vite, frontend-nextjs) for additive manifest rewrites that don't generate code.
  • Contextual tooltips with "got it, don't show again" persistence.

M11 — Diagnostics + telemetry

  • Audit log over every project + service lifecycle event, surfaced via unibench audit CLI + an Activity view in the GUI's Views section.
  • Support-bundle generator producing a reviewable zip (redacted manifest, logs, audit log, dependency graph, resolved runtimes). Never auto-uploaded.
  • Known-issues catalog: six seeded entries with case-insensitive signature matching. Inline-rendered in the GUI error banner with a "Show workaround" toggle.
  • Per-service version catalog with unibench versions [<type>]
    • an inspector summary tab section.
  • Sentry crash telemetry, opt-in, with a maximally-defensive PII scrub. Inert without UNIBENCH_SENTRY_DSN set.
  • First-run telemetry dialog with explicit "what's sent / never sent" bullets, opt-out default.

M12 — Documentation set

  • Auto-generated manifest reference from the typed Rust manifest; test fails CI if the committed doc drifts from the code.
  • Quickstart, concept guides, service-type reference (ten pages), recipe library docs, troubleshooting page.
  • Marketing landing page (single-file HTML/CSS, no JS).
  • Privacy policy + terms of use.
  • This changelog + a public roadmap.

Coverage

234+ workspace tests across nine crates plus the Swift shell build. Clippy clean on --workspace --all-targets -- -D warnings.


Earlier history

Pre-M0 design lived in service-manager-architecture.md and techstacks.md. The workplan changelog carries dated entries for every commit-level decision shipped during the M0–M12 arc.