Ensemblr 0.1.0-beta.1
Pre-release
Pre-release
·
0 commits
to ed48b06970fc781d6de71054cdf26cadb1088195
since this release
First public build of Ensemblr — a macOS workbench for isolated, multi-agent coding workflows.
This is a beta. Pre-1.0, Apple silicon only.
Install
Download Ensemblr-0.1.0-arm64.dmg, open it, drag Ensemblr to Applications.
The build is code-signed with a Developer ID certificate, hardened-runtime, notarized by Apple, and stapled — so it opens without a Gatekeeper prompt and validates offline.
Requirements
git, the GitHub CLI (gh, authenticated), and at least one agent runtime — the Pi CLI or the Claude Code CLI. Ensemblr checks all of this at first launch and offers a fix per failing check.
Notes
The app reports its version as 0.1.0; the -beta.1 suffix marks the release, not the build.
What's Changed
- chore: disable Claude co-author attribution in project settings by @psoldunov in #91
- feat(icon): shrink wordmark "E" 20% and add borderless social avatar by @psoldunov in #92
- fix(deps): patch tar, tmp, linkify-it to close 10 Dependabot alerts by @psoldunov in #93
- refactor: apply fallow and react-doctor codebase audit fixes by @psoldunov in #94
- docs: add JSDoc blocks to functions across the codebase by @psoldunov in #95
- refactor: organize types into concern-owned type modules by @psoldunov in #96
- Use workspace settings for setup scripts and unblock chat closes by @psoldunov in #97
- Sync base branch before creating workspaces by @psoldunov in #98
- Support pasted image attachments in composer by @psoldunov in #99
- Render inline workspace references as actionable chat chips by @psoldunov in #100
- Redirect archived workspaces to Welcome by @psoldunov in #101
- Restore welcome sidebar toggle and tidy tool UI states by @psoldunov in #102
- Add image previews and file-type icons to file tabs by @psoldunov in #103
- Skip workspace setup when dependencies are current by @psoldunov in #104
- Keep composer drafts scoped to chat tabs by @psoldunov in #105
- Redirect workbench launch to the last active workspace by @psoldunov in #106
- Refresh PR snapshots after GitHub PR creation by @psoldunov in #107
- Add merged PR header actions to continue or archive workspaces by @psoldunov in #108
- Show pending workspaces instantly during creation by @psoldunov in #109
- Fix merged sidebar header purple tint by @psoldunov in #110
- feat(workbench): refresh PR header instantly on created PR URL by @psoldunov in #111
- feat(workbench): draggable session tab ordering by @psoldunov in #112
- Refine Experimental settings and wire auto-run defaults by @psoldunov in #113
- Document current settings wiring status by @psoldunov in #114
- Show true workspace file counts after setup by @psoldunov in #115
- Show dock tab activity for terminal output by @psoldunov in #116
- Sync workspace pull request state in the workbench by @psoldunov in #117
- Show running dock activity on workspace rows by @psoldunov in #118
- Document shipped parity and runtime decisions by @psoldunov in #119
- fix(terminal): inherit shell-derived env for setup and run scripts by @psoldunov in #120
- Use workspace toolchain PATH for scripts by @psoldunov in #121
- Show setup status and bundle terminal font by @psoldunov in #122
- Fix session tab close controls during reorder by @psoldunov in #123
- Fix session tab selection after drag reorder by @psoldunov in #124
- Add draggable workspace dashboard board by @psoldunov in #125
- fix(workspace): address React Doctor findings by @psoldunov in #127
- Add dashboard workspace card action menus by @psoldunov in #128
- Fix dashboard availability while setup is pending by @psoldunov in #129
- Fix dashboard board drop targeting by @psoldunov in #130
- Avoid reusing generated workspace names by @psoldunov in #131
- Restore collapsed sidebar triggers across shell screens by @psoldunov in #132
- Keep dashboard accessible when no workspaces remain by @psoldunov in #133
- Refresh product docs to reflect shipped dashboard updates by @psoldunov in #134
- Add runtime-aware workspace setup state by @psoldunov in #135
- Fix dock tab close overlay border overlap by @psoldunov in #136
- Show live PR check statuses in the Checks panel by @psoldunov in #137
- Persist action prompts and preserve app detection cache by @psoldunov in #138
- Improve pull request editing and collapsed header actions by @psoldunov in #139
- Remove inactive workspace dead ends and stabilize tabs by @psoldunov in #140
- Prevent workspace creation race failures by @psoldunov in #141
- Improve pull request action color contrast by @psoldunov in #142
- Refine workspace services and renderer state handling by @psoldunov in #143
- Fix workspace removal layout animations by @psoldunov in #144
- feat(settings): wire app & repository settings to persistence and live config reload by @psoldunov in #145
- refactor(renderer): extract shared OpenInTargetsSubmenu and PanelMessage by @psoldunov in #146
- feat(renderer): preserve per-chat model, remove Help nav and deferred settings rows by @psoldunov in #147
- feat(build): sign and notarize macOS DMG builds by @psoldunov in #148
- Consolidate session naming and preserve stopped chat tabs by @psoldunov in #149
- THE-152: Rich diff viewer with inline review comments by @psoldunov in #151
- feat(agents): add harness launch and session tabs by @psoldunov in #152
- feat(agents): derive Codex and Vibe conversation titles by @psoldunov in #153
- Add session tab keyboard shortcuts and launcher tooltips by @psoldunov in #154
- Restore agent terminal tabs by @psoldunov in #155
- Serialize exclusive script launches by @psoldunov in #156
- Harden workspace worktree creation by @psoldunov in #157
- fix(models): stabilize startup catalog by @psoldunov in #158
- Fix unavailable summaries in transcript picker by @psoldunov in #159
- Harden Pi RPC startup and workbench recovery by @psoldunov in #160
- Audit install scripts and remove desktop activation by @psoldunov in #161
- Preserve resumable agent sessions and improve tab switching by @psoldunov in #162
- Prevent duplicate app instances during shell environment loading by @psoldunov in #163
- fix(main): harden single-instance lock and quit on last window by @psoldunov in #164
- fix(terminal): restore dock terminal sessions across restart with clean scrollback by @psoldunov in #165
- Add agent-to-app control layer by @psoldunov in #166
- Add role-aware agent orchestration guidance by @psoldunov in #168
- feat(agent-control): support sub-agent naming and board status sync by @psoldunov in #169
- build(deps): bump dompurify from 3.4.11 to 3.4.12 by @dependabot[bot] in #167
- feat(session-tabs): mark subagent tabs with top border instead of background tint by @psoldunov in #170
- feat(session-tabs): distinguish subagent chats with bot icon by @psoldunov in #171
- docs: refresh README, CHANGELOG, and guides for shipped features by @psoldunov in #172
- fix: converge duplicate Claude terminal tabs after restart by @psoldunov in #173
- chore: quiet fallow barrel noise and drop dead exports by @psoldunov in #174
- fix: resolve @electron/node-gyp from npm registry instead of git by @psoldunov in #175
- build: adopt nub toolchain, replacing npm (ADR 0039) by @psoldunov in #176
- revert: drop nub toolchain, restore npm (reverts #176) by @psoldunov in #178
- Recover finished child's last message; untruncated tab-title tooltips by @psoldunov in #179
- feat: prettier workbench error and empty states by @psoldunov in #180
- refactor: align module, type, and doc organization with the AGENTS rules by @psoldunov in #181
- feat: ask_user_question agent-control tool by @psoldunov in #182
- fix: stop long paths overflowing lifecycle dialogs by @psoldunov in #183
- feat: plan mode for Pi conversations by @psoldunov in #184
- refactor: reach react-doctor 100 by removing effect anti-patterns by @psoldunov in #185
- feat: rebuild the chat timeline around tool presentation descriptors by @psoldunov in #186
- feat: collapse skill invocations and rebuild session naming by @psoldunov in #187
- feat: give harnesses their own playbook, title bash tool rows by action by @psoldunov in #188
- feat: keep the active tab in view and land on the last visited tab on close by @psoldunov in #189
- feat: open spawned tabs right of the active tab by @psoldunov in #190
- feat: inherit plan mode in spawned sub-agents by @psoldunov in #191
- feat: narrow the sub-agent surface by role, fix its tab flow by @psoldunov in #192
- feat: let agents read the workspace diff and file review comments by @psoldunov in #193
- feat: audit a sub-agent's transcript, cascade stops, boot-scan placeholder by @psoldunov in #194
- feat: link the sidebar preview button to the deployed build by @psoldunov in #196
- feat: tint the sidebar preview pill from the pull request header tone by @psoldunov in #197
- feat: continue a workspace past its merged pull request by @psoldunov in #198
- refactor: clear three react-doctor findings blocking a 100 score by @psoldunov in #204
- feat: preview a changed image instead of its binary diff by @psoldunov in #205
- feat: keep the transcript still when a timeline row unfolds by @psoldunov in #206
- build(deps): bump ip-address from 10.2.0 to 10.4.0 by @dependabot[bot] in #195
- build(deps): bump brace-expansion by @dependabot[bot] in #199
- build(deps): bump fast-uri from 3.1.4 to 3.1.5 by @dependabot[bot] in #200
- build(deps): bump hono from 4.12.31 to 4.13.0 by @dependabot[bot] in #201
- build(deps): bump postcss from 8.5.16 to 8.5.25 by @dependabot[bot] in #202
- build(deps-dev): bump undici from 7.28.0 to 7.29.0 by @dependabot[bot] in #203
- feat: reuse one ephemeral preview tab when browsing files and diffs by @psoldunov in #207
- fix: keep a PR comment tab open on double click by @psoldunov in #208
- feat: show what a PR comment actually says by @psoldunov in #209
- fix(terminal): open clicked links in the default browser by @psoldunov in #210
- feat: unify the file and diff viewers behind one code surface by @psoldunov in #211
- fix: route code-surface styling through design tokens, pin Node 24 at install by @psoldunov in #212
- Pin Node for Conductor scripts, refresh shadcn, hit react-doctor 100 by @psoldunov in #213
- refactor: clear fallow duplication and complexity findings codebase-wide by @psoldunov in #214
- feat(workbench): surface merge conflicts and unify PR header control height by @psoldunov in #215
- feat(workbench): retarget a workspace's base branch from the header by @psoldunov in #216
- Add markdown preview toggle, fix composer scrollbar and image-read presentation by @psoldunov in #217
- Render the plan review bar as the composer header by @psoldunov in #218
- feat(scripts): multiple named run scripts per repository by @psoldunov in #220
- Fit the PR header pills in a narrow sidebar, plus three workbench fixes by @psoldunov in #221
- feat(settings): add named run scripts for dev, playground, and unsigned by @psoldunov in #222
- feat(agent-control): let agents start a run script by name by @psoldunov in #223
- feat(agent-control): unbounded ask_user_question and canonical argument names by @psoldunov in #224
- Let a workspace take over an existing branch instead of always forking by @psoldunov in #225
- feat(agent-runtime): add Claude Code as a second first-class agent runtime by @psoldunov in #226
- feat(agent-runtime): Claude Code slash commands, MCP roster, and model catalogue by @psoldunov in #228
- feat(agent-runtime): gate branch naming on the branch, and fix the slash-command menu by @psoldunov in #229
- fix(agent-runtime): measure Claude context usage from the live thread by @psoldunov in #230
- fix(chat-tabs): keep a chat tab bound to its own agent session by @psoldunov in #231
- feat(conversation): show a spawned sub-agent's runtime, and pin a chat's thinking level to its session by @psoldunov in #232
- fix(agent-timeline): render Claude tool results as cards, not JSON by @psoldunov in #233
- feat(checks-panel): strike resolved comments through, and bulk-add only unresolved ones by @psoldunov in #234
- feat(agent-runtime): give the context gauge a window before the first turn ends by @psoldunov in #235
- fix(agent-control): pin a spawned child to its caller's agent runtime by @psoldunov in #236
- feat(claude-agent): persist redacted reasoning and open turns on prompt by @psoldunov in #237
- docs: audit every documentation surface against the code by @psoldunov in #238
- fix(claude-agent): stream reasoning prose instead of empty thinking blocks by @psoldunov in #239
- feat(composer): echo a chat's first prompt before its session opens by @psoldunov in #240
- feat(composer): cache the slash catalogue and rank the menu by use by @psoldunov in #241
- fix: name control tool calls from either runtime, soften the PR header pills by @psoldunov in #242
- fix: stop the agent timeline refolding the whole transcript on every token by @psoldunov in #243
- feat(agent-control): give agents gated Linear reads and writes by @psoldunov in #244
- feat(timeline): name skill rows and pin control-tool files as chips by @psoldunov in #245
- feat(i18n): render the app — and its agents — in English, Russian, and Greek by @psoldunov in #246
- feat(onboarding): gate first run behind a setup wizard by @psoldunov in #247
- feat(settings): restructure the settings screens and localize diagnostics by @psoldunov in #248
- feat(i18n): localize the untitled chat tab placeholder by @psoldunov in #249
- feat(i18n): translate every user-facing surface the audit found by @psoldunov in #250
- fix(navigation): hold Welcome when the last workspace or project goes away by @psoldunov in #251
- fix(ask-question): show option descriptions in full by @psoldunov in #252
- feat(timeline): nest a subagent's work inside the call that spawned it by @psoldunov in #253
- feat(workspace-names): add Greek and Cypriot composers to the name pool by @psoldunov in #254
- feat(unread): track unread chats per tab, not per workspace by @psoldunov in #255
- feat(composer): attach files, issues, and directories inline by @psoldunov in #256
- feat(composer): put attachment chips inline in the draft by @psoldunov in #257
- feat(composer): hold follow-ups in a queue the user can see and edit by @psoldunov in #258
- feat(composer): visual pass over composer chrome and markdown previews by @psoldunov in #259
- feat: redesign the prompt queue, and make agent-control terminal reads legible by @psoldunov in #260
- feat(composer): attach review comments as chips instead of pasted context by @psoldunov in #261
- fix(workbench): keep dock empty states on the terminal palette in light mode by @psoldunov in #262
- Lift dark surfaces off black and sharpen the light palette by @psoldunov in #263
- feat(menu): drive the native menu bar from a renderer command bus by @psoldunov in #264
- Retire feature parity as the product target by @psoldunov in #265
New Contributors
- @dependabot[bot] made their first contribution in #167
Full Changelog: https://github.com/ensemblr-hq/ensemblr/commits/v0.1.0-beta.1