changelog

What's new in Codemany.

Every release, newest first. The app shows the same notes when it updates. Built from CHANGELOG.md on every release.

0.3.0

Features

  • daemon: opt-in public repositories with fork-approval safeguards
  • daemon: serve multiple repositories with demand-aware runners
  • logo v2 — Mac mini with agent grid
  • macos: prefetch repositories and sort by recent activity
  • site: landing animation shows backend jobs alongside Apple ones

Fixes

  • macos: one Keychain vault so Codemany asks for access at most once
  • macos: register the daemon with SMAppService so macOS shows "Codemany"

0.2.0

Features

  • infra: lock origins to Cloudflare (Cloud Armor), internal-LB ingress, budget
  • licensing: API abuse hardening, per-identity limits, server-side promotion codes
  • licensing: live subscriptions; checkout skips the card when nothing is due (100%-off codes, trials)
  • licensing: the free trial is tied to your GitHub account, one per account and Mac
  • macos: GitHub-first onboarding, one-tap trial, real setup gating
  • macos: guided 5-step onboarding with a 14-day free trial, no card needed
  • release: release notes in the update dialog and on every GitHub Release, with automatic version numbers
  • release: the DMG opens to a designed drag-to-Applications window
  • site: new landing page, a 3-step demo and a sample workflow to try Codemany in minutes

Fixes

  • daemon: harden LAN dashboard, admin token, signatures, redaction; Go 1.26
  • macos: isolate test and preview data from the real app
  • site: plain http:// links now redirect to https instead of failing

0.1.0

The first public release: a signed and notarized DMG at codemany.com.

Features

  • codemany daemon: keeps a fixed number of ephemeral GitHub Actions runner slots per pool. Each job gets a fresh just-in-time (JIT) runner.
  • Slot isolation: runner directories are APFS clones of a verified (checksummed) runner download. Each runner runs in its own process group and is fully torn down after its job.
  • Self-healing supervision: exponential backoff, an offline watchdog, stale-runner cleanup on GitHub and churn events.
  • JSON API (/api/status, recycle) and an embedded LAN dashboard.
  • CLI: setup, serve, status and service install|uninstall, with the GitHub token stored in the macOS Keychain and a launchd agent.
  • codemany.local: the LAN dashboard is advertised over Bonjour at http://codemany.local:8825. If another Mac already uses that name, this one becomes codemany-2.local. Configure it with bonjourName, or turn it off with "bonjour": false.
  • Open on your phone: a QR code for the dashboard address, available from Overview ("View on phone"), the menu bar ⋯ menu, Settings › Fleet and View › Show QR Code for Phone (⇧⌘D).
  • Codemany.app: a native macOS app (macOS 14+) with a main window (Overview, Slots, Runs, History, Updates, License and Settings) and a menu bar extra; it is a regular Dock app. The app bundles the codemany daemon and manages its LaunchAgent, so there is a single thing to install.
  • Onboarding: first-launch cards that walk you through connecting GitHub and sizing your fleet.
  • Automatic updates through Sparkle 2, on by default. Before an update installs, the daemon drains: it stops taking new jobs and lets running jobs finish. After the update it resumes. A running GitHub Actions job is never interrupted.
  • Daemon drain and resume: POST /api/drain and POST /api/resume, plus codemany drain [--wait] and codemany resume. Drain state survives restarts.
  • Licensing: a $20/month subscription with a free trial through Stripe Checkout. Licenses are verified offline and keep working for up to 7 days without a network connection. The Billing Portal is one click away.
  • In-app bug reports go straight to the issue tracker.
  • Distribution: a signed and notarized DMG at codemany.com.