fbuild
2026.06.30

Foundation: multi-workspace, real agent execution, security & the 3-repo split

The foundation cycle for the fbuild console β€” the desktop command center for your Egos agents. This is what shipped first, across the three repos (console / hub / runner).

πŸ—‚οΈ Multi-workspace (Slack-style) #

  • Workspace switcher with a cross-workspace notifications tray.
  • Add a workspace by reusing the same login shell; workspace logos are driven from the backend.
  • Per-workspace sessions β€” switching cleanly re-resolves the hub and your session.

πŸ’¬ Chat-first task UI #

  • A code-style chat view: your messages as right-aligned bubbles, the agent's replies as full-width markdown, tool steps grouped and collapsible with per-tool detail, and extended-thinking blocks.
  • Composer aligned to the chat width; a jump-to-turn rail on the left; sticks to the bottom as the agent streams.
  • Agent-generated chat titles, and a running state derived from the persisted event stream so it survives a dropped connection.
  • Early multi-pane grid: drag a task to split, up to four side by side.

βš™οΈ Real execution path (runner ↔ hub ↔ console) #

  • Live streaming of the agent's thinking, tool calls, and text as it works.
  • The session is persisted on the task, so replying resumes the same context β€” even after the runner restarts.
  • Task stage is driven off a persisted completion event (not a droppable live message), so it never gets stuck.
  • Per-project git status sync; end-to-end new-task dispatch verified on real projects.

🏒 Multi-tenant correctness #

  • One physical machine can join many workspaces without collisions (machine identity is now workspace-scoped).
  • The runner reconnects instead of silently dying on a rejected handshake.
  • Per-workspace runner config, so a single runner can serve multiple hubs.

πŸ”’ Security hardening #

  • Runner enrollment tokens are now authenticated β€” only a signed-in member can mint one (previously anyone could join an org).
  • Auto-provisioning matches your email domain exactly (no look-alike domain slipping in).
  • The runner stores its token file with private, owner-only permissions.

πŸ“¦ Repo & deploy #

  • Split into three focused repos: console, hub, and runner, each documented.
  • Console and hub deployed to their first hosted environments.
2026.07.04

Console: tiling panes, drag-to-arrange, persistence & polish

A large iteration on the fbuild desktop console focused on the multi-task workspace β€” how you open, arrange, and live-monitor several agent runs at once.

πŸͺŸ Multi-pane workspace #

  • Open up to 4 tasks side by side. Click a task to focus it, or drag one from the list to open it beside the others.
  • Resizable tiling. Drag the dividers to resize panes horizontally and vertically (2Γ—2 layout). Sizes persist.
  • Terminal as a pane. Dock a project terminal in the grid like any other pane β€” it stays put beside your chats.
  • Rearrange by dragging. Grab a pane by its header and drop it onto another to swap positions ("focus this one here"). A labeled chip follows your cursor; you can't drop a pane onto its own spot.
  • Collapse the task list with ⌘B for more room.

♻️ Full persistence β€” no more "re-running" #

  • Open panes are restored exactly when you leave and return to Tasks.
  • Switching panes or closing one no longer re-runs the others β€” chats and terminals keep their state instead of reconnecting.
  • Task chats paint instantly from cache on reopen, then refresh in the background β€” no loading flash.
  • The New task project picker loads instantly (cached) instead of appearing late.

πŸ’¬ Task detail redesign #

  • One clean header: title, tabs (Chat / Graph / Diff β€” shown only when they exist), and quick actions (Preview, Terminal, branch).
  • Run overview card in the top-right β€” a quiet, collapsible summary (status, tools used, agents, focus, cost) redesigned to a minimal, Codex-style look.
  • Preview and Terminal open as side drawers from the header, so the chat stays visible.
  • Graph view: a node visualization of a run's tool activity.

⌨️ Terminal & chat #

  • Stick to bottom on resize. Shrinking a terminal or chat pane keeps the latest output/prompt in view instead of hiding it.
  • Terminals re-attach to the same live shell when reopened (scrollback preserved).
  • ⌘F opens find only in the pane you're focused on (no more every pane popping a search box at once).
  • Restyled to match the run-overview card; opens with a subtle animation and sits alongside it without overlap.

⚑ Command palette & shortcuts #

  • ⌘T β€” new task from anywhere (opens the composer, even if the sidebar is collapsed).
  • ⌘K β€” command palette; ⌘1…9 β€” jump between workspaces.
  • ⌘B β€” toggle the task sidebar.

🏷️ Dev vs. release #

  • The development build is now clearly labeled "Fbuild β€” Dev Env" (dock badge + in-app marker) so it's never confused with the shipped app.

Under the hood we also filed a set of architecture issues to replace several of these first-pass implementations with more robust foundations (split-tree pane model, unified data/cache layer, hardened API client). More polish coming.

CtrlI