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
codemanydaemon: 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,statusandservice 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 becomescodemany-2.local. Configure it withbonjourName, 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
codemanydaemon 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/drainandPOST /api/resume, pluscodemany drain [--wait]andcodemany 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.