Releases
v0.8.0
Compare
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
0.8.0 (2026-07-06)
Features
api: add PickerKind::Size (a5c9e9c )
api: local-first connect selection — detect local vs remote (7a6d04c )
api: shared tunnel protocol — the durable, local/remote contract (d3a00e2 )
app: set the darkrun app icon in the bundle (ships via fastlane) (79db09d )
app: web push registration — the client half of notify-on-tick (72a5365 )
app: wire the Firebase web config (login now functional) (2af84d6 )
app: wire the Web Push VAPID key — remote push fully configured (9d0750c )
cli: darkrun login — enable remote access (closes the engine-side loop) (39d99b5 )
cli: engine-data write guard redirects each artifact to its own tool (bf6f206 )
cloud: Firebase-native foundation — Firestore data model, rules, project config (b97cfa4 )
core+mcp: fan the SHA write-guard out to units and briefs (b4fea39 )
core+mcp: SHA optimistic-concurrency guard on artifact writes (knowledge first) (138fb1e )
deeplinks: add iOS associated-domains entitlement (capability now enabled) (0b4cb23 )
deeplinks: fill the AASA appID + wire associated-domains (macOS) (0df6bc4 )
desktop: live per-tick session mirror (a9f565d )
desktop: live per-tick session mirror (#46 ) (ac76fe0 )
desktop: readable question prompts — markdown, text-only cards, real mockups (d71321a )
engine+desktop: questions surface on the run + persist across restarts (598d98e )
engine+desktop: sessions materialize on demand; chrome is not selectable (c3c2395 )
engine: composite runs — multi-factory topology with sync points (adcfef6 )
engine: engine-driven run-setup elicitation (factory/mode/size pickers) (905e8ca )
engine: mode-gate questions + scope interactive sessions per station (e990bd4 )
engine: pull fable from the model selector (Anthropic removed support) (38a4c80 )
engine: reject-escalation up the model ladder (4b7ce33 )
engine: reject-escalation up the model ladder (#49 ) (b63792b )
engine: save_wip clean-tree gate + unit-scope enforcement at completion (603c106 )
engine: session-event stream + OTLP telemetry export (17873e5 )
engine: spawn the host connector + advertise reachability (fab84f3 )
engine: station drop — the keep-or-drop offer at arrival (e55f7fb )
engine: the desktop surfaces with the work, not at the first gate (299011a )
factory: runtime-verifier run reviewer (the predecessor's strongest gate) (08d8e45 )
gates: await_decision primitive + SessionPayload::resolved() (eadcea7 )
git: complete Phase 1 gix reads — ls_tree, unresolved_paths, list_worktrees (b33e131 )
git: gix add_paths + checkout_paths — Phase 2 complete (47ff4b3 )
git: gix create_branch (Phase 2 start) — idempotent ref write (b5d7267 )
git: gix engine-protected three-way merge (Phase 4 — the core safety net) (5346434 )
git: gix linked-worktree create/remove (Phase 3 — first gitoxide gap) (233a16b )
git: gix native fetch (Phase 5) — pure-Rust transport, C-free (6955549 )
git: gix reads — is_ancestor, refs_have_identical_trees, merge_in_progress (c074ed0 )
git: hand-rolled write-tree + gix commit (fork-A internals) (a7e01b6 )
git: scaffold pure-Rust gitoxide backend (Phase 1 foundation) (885462d )
hosting: run-level draft PR with ready-at-seal flip + compare-URL fallback (08d8e45 )
ios: MATCH_NUKE — one-command cert-slot reset (bb82760 )
ios: RC build numbering for TestFlight (increment until release is cut) (d49a487 )
ios: safe-area edge-to-edge (toolbar + drawer) + "Darkrun AI" name (791ceab )
ios: universal app (iPhone/iPad/Mac) with mobile content mode (0db7104 )
login: relay-token broker carries a browser-minted token to the engine (b7e2082 )
mas: Phase 1 — shared data root for the Mac App Store app group (36b51c5 )
mas: Phase 2 — App Sandbox entitlements + macOS .pkg packaging (2a82f53 )
mcp: fall back to the app.darkrun.ai deep link when no desktop can open (29b7830 )
mcp: live-mirror the run payload after every mutating tool (7542bfe )
mcp: local OS notification when a run reaches a gate (8c15fdf )
providers: behavior contracts spliced into prompts + schema-validated settings (99f2687 )
relay: remote-push spine — FCM fan-out + device registration (d3f15c3 )
site: 'Open app' link in the header (#185 ) (8c16e14 )
site+desktop: refreshed desktop screenshots + the harness that makes them reproducible (7df1a90 )
site: add 'Open app' link to the header nav (9cfbf4a )
site: Claude Code's boxed session-start banner on the statusline demo (5963c7c )
site: docs search + JSON-LD structured data (3e0ceaa )
site: left/right stepper on the statusline demo (d9c1c07 )
site: left/right stepper on the statusline demo (#50 ) (27dcedf )
site: render the statusline demo in situ, under Claude Code's prompt box (6c42eab )
site: social card (Open Graph / Twitter) — the factory-line hero (a3a2781 )
site: the terminal panels follow the site theme (4752490 )
statusline+site: phase-track pips + the status line on the website + the fable tier (5a7ae9a )
statusline: explorer chips at Spec + dev launcher freshness (170ea16 )
tunnel: host connector — durably bridge the relay to the local engine (4065891 )
tunnel: host connector pushes a remote notification on gate entry (e294a91 )
ui: shared Sidebar component (#184 ) (b0cb04a )
ui: shared Sidebar component (runs-by-project, actions, identity) (ee7e44b )
web/app: persistent-login Workspace (sidebar repos+runs, run detail) (3a7c09d )
web/server: App-backed workspace + run endpoints (persistent Firebase login) (e3d7873 )
web/server: cover org repos via verified org-membership check (e54c65e )
web: actionable gate + station narrative in the web app (bb6c7a7 )
web: app.darkrun.ai — the Dioxus web client for live remote runs (694e4a4 )
web: client-addressed relay routing — read into a live session on connect (48c1ae5 )
web: Firebase ID-token verifier secures the relay + /darkrun:darkrun-login (23ea0f1 )
web: Firestore-backed device registry — push survives restarts (5411693 )
web: Font Awesome brand icons for sign-in + app iconography (#183 ) (45ce997 )
web: Font Awesome icons — brand icons for sign-in + app iconography (2ebcbd2 )
web: GitHub + GitLab on one account + combined portfolio (#173 ) (80ac32a )
web: Google service-account token source — FCM push goes live (19b60cc )
web: link GitHub + GitLab to one account + combined portfolio (e07aa38 )
web: persistent-login workspace (repos + runs) via GitHub App backend (#193 ) (c6c7d7e )
web: remote-tunnel relay — reverse-WS bridge in darkrun-web (36e512b )
web: surface per-station phase in the run detail (b92569a )
web: web app Firebase Auth sign-in — closes the login chain (11abc83 )
Bug Fixes
api: make openapi.json a fixed point of release-please's rewrite (f3bbf95 )
api: make openapi.json a fixed point of release-please's rewrite (#42 ) (c964465 )
app: defer signInWithRedirect out of the wasm call frame + no-cache assets (#190 ) (82fe605 )
app: defer signInWithRedirect to a macrotask; no-cache all assets (04c6016 )
app: fire-and-forget sign-in redirect + no-cache shell + messaging authDomain (#189 ) (9b95c4a )
app: fire-and-forget the sign-in redirect (stop the hang) (5695a06 )
app: Firebase authDomain = app.darkrun.ai (unhangs sign-in) (6acb2ed )
app: mount the shared theme — kills the white viewport border (0614437 )
app: same-origin Firebase authDomain (unhangs GitHub + GitLab sign-in) (#187 ) (02873d1 )
app: sign in via full-page redirect, not popup (2f91768 )
app: sign in via redirect, not popup (fixes the hang) (#188 ) (dbaa3d2 )
app: sign-in can't hang forever + friendly auth errors (#186 ) (0dd57e8 )
app: spawn sign-in from a persistent scope (the actual hang) (#192 ) (b555379 )
app: spawn sign-in from a persistent scope (the real hang) (67b9c17 )
app: stop sign-in hanging forever; friendly auth errors (47a06b7 )
ci-dist: close CI/release gaps — cross-target check, blocking clippy/audit, release asset guard, plugin hooks+version, Apple Sentry DSN, Firestore rules deploy (03c6d0e )
ci: macOS App Store version on branch pushes (was 'main', now Cargo version) (e0245e0 )
ci: macOS App Store version on branch pushes (was 'main') (#197 ) (f8463c7 )
clear all code-scanning alerts (clippy + CodeQL) (a82d211 )
cli: add migrate subcommand, CSPRNG login nonce, document codex harness (e52a4c9 )
cloud: correct the Firebase model — session registry, NOT a state mirror (52b2fbe )
desktop: a stale dev launch bundle execs the fresher build (042f83b )
desktop: close review-surface gap-report findings (c231e1a )
desktop: drag the window by the toolbar (wry ignores -webkit-app-region) (f96b771 )
desktop: key sidebar run lists by project slug, not display name (14ec652 )
desktop: let the welcome/projects surface fill the main pane (920c2e0 )
desktop: project identity self-heal, --worktree launch, choosable clone path (c0efbbf )
desktop: welcome/projects surface fills the main pane (#166 ) (c1f7bda )
engine: answering an interactive session dismisses it + surfaces the next (5828727 )
engine: close gap-report engine findings (guarantees, atomicity, review data) (558e681 )
engine: raising a question/direction/picker gate launches the desktop (e5586ef )
git: normalize the common dir before deriving the project root (028d2e3 )
http: the Mine predicate checks the run's STABLE branch (ab8eb8f )
ios: bootstrap actually sets the secrets (kill the unbound-var abort) (dba244a )
ios: bootstrap drops the stale Gemfile.lock (bundler 1.17.2 vs Ruby 3.4) (df2affa )
ios: bootstrap prefers a modern Ruby; drop Appfile placeholders (9102bc5 )
ios: bootstrap survives LibreSSL — use real OpenSSL for match (5f04f92 )
ios: build for device (not simulator) + compile the app-icon asset catalog (038e441 )
ios: build from the dx .app, not a phantom Xcode project (055a9f5 )
ios: build with a released (non-beta) Xcode + inject DT* Info.plist keys (6d64c3e )
ios: declare ITSAppUsesNonExemptEncryption=false to stop the export prompt (a9651ce )
ios: disable webpage zoom in the mobile viewport (app feel) (e1b3e3e )
ios: don't apply the desktop window size on mobile (the real layout fix) (5b770de )
ios: find the match profile in Xcode 26's install location (d9a211c )
ios: force device-width viewport so the mobile drawer layout fires (e45a1d0 )
ios: own the mobile index with a clean viewport (drawer + safe area) (40537a5 )
ios: pass App Store binary validation (Info.plist, symlinks, iOS 26 SDK) (5a7aa28 )
ios: pin IPHONEOS_DEPLOYMENT_TARGET=15.0 for the device build (05deaf2 )
ios: pin platform: ios so the upload doesn't prompt in CI (74d6c4a )
ios: setup_ci so codesign doesn't hang on a keychain prompt (8df8501 )
ios: upload_to_testflight option is app_platform, not platform (94cf0d5 )
mas: add network.server (boot) + name bundle 'Darkrun AI.app' (be9ddf4 )
mas: don't let identity lookup trip pipefail + dump identities (28d96bf )
mas: find installer identity under basic policy, not codesigning (0781cfb )
mas: generate_apple_certs:false for the installer cert (dd9e641 )
mas: inject application-identifier entitlement (ITMS-90886) (#164 ) (0fc15c3 )
mas: inject application-identifier entitlement to fix ITMS-90886 (d13894d )
mas: macOS app boot crash (network.server) + name 'Darkrun AI' (#165 ) (9d0d4a3 )
mas: target macOS 12.0 so the arm64-only build passes validation (ee64717 )
mas: unblock Mac App Store .pkg signing + upload (#163 ) (f8e8383 )
mas: upload .pkg binary only, skip first-version metadata upload (071b8d4 )
mcp: unbreak the Windows release build (notify.rs E0282) (1106f18 )
picker UX (chrome, stale selection, auto-close) + same-commit checkout (a085a7d )
propagate the 0.2.0 release bump (unblock all open PRs) (#20 ) (ae45020 )
release: point package.json repository at darkrun-ai/darkrun (#33 ) (0ac2b8f )
review: render markdown artifacts + make the artifact the primary pane (52a193c )
review: render markdown artifacts as a document + widen the artifact pane (#194 ) (9508ccd )
signing: force-regenerate App Store profiles in the certs lanes (cd86b22 )
signing: installer cert has no profile — skip_provisioning_profiles (macos) (9536371 )
site: clay banner box, sized to the panel (50fb85d )
site: correct license, privacy, changelog, and dark-mode copy (23982ad )
site: make the feed-date suggestions compile + emit valid formats (88f4061 )
site: preview question sample sets run_slug (68f3edf )
site: serve /assets/* (OG image, favicon, screenshots) (48cf7a6 )
site: statusline stepper dots use the shared accent pill; drop the redundant slideshow slide (eea29bd )
statusline: read on light terminals — bold default-fg for slug and passed pips (73be50f )
telemetry: authoritative opt-out + unit-testable init decision (7e5c205 )
ui: saturate the tab count pill at 99+ (8f5588a )
vcs-git: bridge stored OAuth token into push/fetch; paginate + refresh; safe self-hosted GitLab (34865cb )
web-server: close server security + correctness gaps (0a43f55 )
web: app wordmark + tab title match the website (#174 ) (fe98d89 )
web: app wordmark matches the website's interactive look (#175 ) (a4faedb )
web: correct app wordmark + tab title (match the website) (2526cea )
web: CORS on /api/repos for the cross-origin dashboard (#176 ) (77e42f2 )
web: CORS on /api/repos so the dashboard can call it cross-origin (d447e69 )
web: dashboard default + both providers + narrower GitLab scope (#182 ) (cb19524 )
web: default to the dashboard, show both providers, narrow GitLab scope (3e7e1c3 )
web: Dioxus.toml [web.resource] needs a dev subtable so dx build works (5a0944f )
web: match the website's interactive wordmark in the app (e5bd8a3 )
web: multi-identity merge, redirect-failure surfacing, run/interactive wiring (675f248 )
web: pin dark theme so the wordmark shows on app.darkrun.ai (#180 ) (19e3caf )
web: pin data-theme=dark so the wordmark renders on the dark app (fdb26e5 )
web: select rust_crypto backend for jsonwebtoken 10 (4ef9cdb )
You can’t perform that action at this time.