Skip to content

v0.15.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Oct 23:00

Downloads

Features

  • Sessions
    • Task archive proposals: Agents can propose archiving tasks with goddard-agent archive, naming one or more tasks in their project and a reason; the proposal shows as an approval card on the agent's own task and nothing is archived until you approve it — approving archives the tasks, closes their side chats, and stops their runtimes like a manual archive.
  • Composer
    • New Settings → General toggle "Enter steers the running turn" swaps the composer's Enter chords: Enter steers the draft into the running turn and ⌘Enter queues it. Shift+Enter still inserts a line break.
  • Providers
    • OpenCode 2.0: OpenCode tasks now run on OpenCode 2.0 — the provider adopts the shared opencode background service instead of starting a per-project server, turns survive service restarts, and tasks created under the earlier OpenCode 2 beta provider keep their history and composer preference.
  • Transcript
    • Mermaid code fences in the transcript now render as diagrams; invalid or oversized diagrams keep their selectable source code.
  • Keyboard
    • Press ⌘L (Ctrl+L on other platforms) to switch focus between the main composer and the open side-chat composer.
    • ⌘= / ⌘− now step the interface, code, and terminal font sizes together wherever the focus is, and ⌘0 resets all three to their defaults. Big Picture moved from ⌘0 to ⌃`.
  • Platform
    • External task links: On macOS, other apps and scripts can open goddard:// links: goddard://new-task?prompt=<text> lands on a new task with the prompt already in the composer — it never sends itself — and goddard://task/<id> links now open that task from outside the app too.
    • Signed-in browser profiles: Computer Use tasks can ask to attach to a browser's real signed-in profile, so agents can work in pages where the user is already logged in; attaching needs its own approval and the exact app window. Computer Use remains an experimental opt-in.
    • Host resource queues: Agents can queue native builds, virtual devices, and shared desktop input with goddard-agent resource, using shared capacity across Goddard projects under the same OS account; raw launches still require cooperative coordination. Queued requests leave spare capacity available to other work while preserving earlier requests’ priority.
    • Memory pressure recovery: The daemon now sheds idle, resumable task runtimes when the operating system reports memory pressure — on macOS, Linux, and Windows — instead of only evicting them after 30 idle minutes. Running turns and queued work are never evicted, and shed tasks reopen on demand.
    • Transcript search: Opening a transcript search result — a message match in the command palette, or a goddard://task/<id>?message=<id> link — now scrolls the task's transcript to the matched message and flashes it, instead of landing on the latest turn and leaving the hit to find by hand.
    • Bounded browser tasks: Agents can run bounded browser tasks from a URL, goal, and supplied field values using Jev-selected scrolling, clicks, and text entry. Runs use a new isolated browser profile and report verified completion only when declared checks pass; missing inputs are handed back.

Experiments

  • Boss
    • Boss experiment: Turn on Boss and employee tasks in Settings → Experiments. The experiment is on in development builds and off in release builds unless enabled. Employee avatars recover from a failed or evicted raster instead of staying on the initials fallback. Employee chats omit Jev turn-status markers.
    • Planning wireframes: Turn on Wireframes in Settings → Experiments to let planning sessions emit low-fidelity screen wireframes beside the plan document. The file viewer previews .wireframe.json files as theme-aware elements — they follow the selected theme like real UI. Emitted files are kept while the experiment is off. On in development builds, off in release builds unless enabled.
    • The default Boss now delegates execution and long-running work to employees, tracks what is in flight, and checks their committed work before reporting it complete.
    • Boss session rotation: Boss chats automatically continue in a fresh session after context exceeds 80% and the provider prompt cache goes cold. A transcript marker identifies both sessions; the previous conversation remains archived, and rotation can be disabled in daemon settings. Previous conversations stay in chat scrollback, with older sessions loaded on demand and turn navigation spanning the loaded history.
    • Employees working on an approved plan now wake their supervisor when they finish, including successful goal work, with the plan queue and blockers needed to continue.
    • Open a queued employee from the sidebar to read the prompt waiting for dispatch, then send the boss a message with that employee attached as context.
    • Archiving a chat whose employee worktree still holds uncommitted work is now refused with the worktree's path instead of silently discarding it; clean worktrees archive as before.
    • Prompt or steer an expired employee to resume its session and transcript. If its name has already been assigned to someone else, Goddard explains that you need to summon a new employee.
    • Boss speech: Added canned speech for the Boss: the speak operation voices a message through connected clients while the voice briefings experiment is on, splitting utterances into reusable fragments so generated clips play instantly on repeat. Spoken text is also recorded in the selected session transcript in conversation order. Saved clips stay live for a month after their last replay; once the library grows past a few hundred clips, expired and least-replayed clips are pruned. Pause playback or replay the last utterance from the Boss row in the sidebar.
    • Boss voice consent: Boss voice messages no longer talk over you or play while you're elsewhere in the app. Outside the boss chat, a message waits for you to say "Go ahead" aloud, choose Open boss chat and play on the notification, or open the boss chat; while speaking, Goddard listens on-device and pauses between clips until you finish talking. Microphone and speech recognition are used locally only — if permission is denied, messages play as before.
    • Offline Piper voices: Voice briefings and Boss speak can now run fully offline with Piper neural voices on macOS and Windows, with short pauses between sentences. In Settings → Experiments → Voice briefing, choose Piper as the voice model, then pick a Piper voice; the voice model downloads to your data directory on first use and synthesis runs locally afterward. Hosted voices remain the default, and Piper clips reuse the same caching and fragment reuse as hosted speech.
    • Finished employees leave the sidebar and release their names after an hour if the boss has not assigned them another prompt.
    • Persona icons: Assign an icon to each Boss persona to show beside its employees' job titles in the sidebar and top bar; a custom employee icon takes precedence. The bot icon stays exclusive to custom commands — it can't be assigned to employees or personas.
    • Fresh employee summons prefer initials not already used by current or recently finished employees.
    • Boss references: Typing @ in a boss chat or planning-session composer now offers the roster's employees with their avatars, the planning sessions with a compass, and non-session references — projects, personas, deliverables, memory buckets and documents, and automations — that insert as labeled chips naming the target in the prompt. Sent prompts render serialized references as chips labeled with the target’s short name instead of showing paths and reference syntax.
    • Boss send button: Composers whose drafts go to the Boss — the Boss chat, its planning sessions, and employee or deliverable pages — style the send button with the designed chrome artwork; it appears dimmed until the draft can be sent. Other chats keep the plain filled button.
    • Employee workspace chips: An employee working in a project shows the same project, workspace, and branch chips below its composer as a regular task; the worker's avatar and name now stand in only when there are no chips to show, as on the boss chat.
    • The composer's @ suggestions no longer include employee sessions; project, file, and other reference suggestions remain available.
    • A planning session's composer no longer shows project, workspace, and branch chips — plans always run in the boss's own workspace, so the pickers' slot now carries the boss's avatar and name instead.
    • Change an employee’s model while it is running by interrupting its turn; same-provider changes keep the existing conversation and apply in place when supported.
    • Employee merge submissions: Employees working in daemon-managed Git worktrees can submit their completed commits to the configured QA branch with goddard-agent merge submit; submissions wait for serialized access, rebase onto the latest tip, run verification, and report the landed SHA. Unrelated untracked files in the QA checkout are preserved; blocked submissions identify the checkout and affected files or Git operation.
    • The boss can retarget a single project's QA branch with the setProjectQaBranch operation — employee merge submit landings and the review queue for that project use it instead of the daemon-wide setting until the override is cleared.
    • Employee merge submit is now opt-in per project: a worktree employee's submission fails with "submissions not enabled for this project" until the boss enables it with the setProjectSubmissions operation.
    • Boss messages in employee transcripts and task previews now show the Boss avatar and name above the message.
    • Employee report markers: Boss chat now shows a quiet marker at the top of a turn naming which employee report woke it — a finish, failure, or blocker — and several reports arriving together collapse into one expandable row. Clicking a marker opens the reporting employee's transcript. Replies to employee messages resolve file links and commit references in that employee’s checkout, with the project’s primary checkout as the fallback when its worktree is gone. Employee updates wait for the employee’s message stream to finish before waking the boss.
    • The boss's own chat and boss planning sessions no longer show turn status markers (Complete, Aligned, Awaiting input, and friends) in the transcript or the floating pill; the verdict chips still appear on ordinary tasks and employee transcripts.
    • Employee transcript reads preserve command and file-read evidence for at least 48 hours after expiry, and long tool arguments no longer hide the output.
    • Returning to a long transcript — most noticeably a busy Boss chat — no longer stalls while settled turns are re-folded.
    • Employee completion updates stay in the boss's context without appearing as system messages in the chat transcript.
    • Interruption causes: Interrupted turns now name who ended them — a turn cut short by the daemon, provider, or an expiring employee reads "Interrupted after Ns" instead of "You stopped after Ns", and an interrupted expiry leaves a notice naming the cause.
    • Transcript reference chips have equal padding on both edges and a slightly wider gap between their icon or employee avatar and label, including chips that open a sent prompt.
    • Boss terminal shortcut: ⌘T over the boss chat now asks which project the new terminal belongs to — pick a registered project and the terminal opens at its root with keyboard focus. With no registered projects the shortcut keeps its usual directory guess.
    • A terminal the boss opens now appears only in the app window you asked it from, not every connected client.
    • Ask the boss to open a pinned terminal for a dev server or watcher; if its requested directory is unavailable, Goddard uses the selected project or home directory and reports the fallback.
    • Unread completion navigation: ⌘D "Go to next unread completion" now covers the Boss surfaces too: an unread planning session or an unviewed deliverable can be the jump's target, and a boss chat with unseen replies joins the queue — always last, below every unread task, plan, and deliverable.
    • Cmd+C now copies selected text from Markdown deliverable previews and file previews.
    • Scroll position: Added a "Keep scroll position when sending" toggle in Settings > General — when on, sending a prompt leaves a scrolled-up transcript where you left it instead of jumping to the new message. Boss chat and other transcripts retain that position even when the last row is offscreen or being remeasured.
    • Boss and employee sessions no longer appear in Settings → Archived chats.
    • Saving a task no longer reverts daemon-owned project fields — a project's Boss submissions opt-in, QA-branch override, and Friends marker now survive client saves.
    • Use goddard-agent commands with positional IDs and flags for common task and Boss work. Long prompts and file content can come directly from UTF-8 files or stdin; run any command with --help or --schema to discover its inputs.
    • Archive planning sessions: Abandoned planning sessions can now be dismissed: right-click a plan's sidebar row and choose Archive, or select the session and press ⌘⇧A — it leaves the sidebar and stays out of Settings → Archived chats like other Boss sessions.
    • Archived employee sessions now show a muted "Archived" chip in the window's top bar when opened from history or search — viewing one no longer restores it, so the roster stays unchanged.
    • Manage scheduled automations from the Boss: list schedules and recent run status, create or edit automations, pause or resume them, and delete them.
    • Boss memory browser: The Boss's Brain button now opens the last section you visited. Browse Memory in an expandable tree of named buckets — documents render as Markdown previews, and a read-only Records view lists each named bucket's notes and summaries. Use Ask Boss to correct to send a selected memory to the Boss as a correction request; memory remains Boss-managed.
    • Boss Brain library: The Boss's Brain sections read first now: Personas show rendered instructions and quiet grant metadata with editing behind an explicit Edit action, Employees split into Active and History with inline queue reasons and model details, Plans become one library under Active/Approved/Archived, and Deliverables list the full library under All/Pinned/Dormant/Archived. The Brain header moves rename and new-face into a labeled Identity menu.
    • Unread deliverables: Deliverable rows in the sidebar's Recent deliverables group show an unread dot — the same marker a task gets for an unseen completion — when a deliverable is new or an employee re-published it since you last opened it. Clicking the deliverable clears the dot.
    • Publish deliverables: The boss can publish files and folders its employees produce as deliverables with goddard-agent boss publishDeliverable; deliverables appear in a Recent deliverables section above Pinned for twelve hours. Clicking one opens its task — the boss chat with the deliverable attached as context — and a previewable file also opens in the in-app file viewer. Each row carries its age at the right edge like a task row's timestamp, and deliverables can be pinned, moved to dormant, archived, revealed in Finder, or removed from the sidebar through their hover buttons and right-click menu.
    • Boss-directed composer: Typing while viewing an employee's task — or after clicking a published deliverable in the sidebar — now commands the boss instead: the composer reads "Use the boss to control this employee..." or "Use the boss to edit this deliverable..." and names the boss next to the model picker, and the message lands in the boss chat with the employee or file attached.
    • Live project overview: The Boss now keeps a live map of your projects, tasks, employees, and automations: every message you send it carries a compact overview of what is live in each project, and it can fetch the full snapshot itself with the new context operation. With an evaluation backend configured, a context router also attaches that full snapshot automatically to messages that need it, tracking which project holds your attention across the chat. When a routed message had a project in focus, that project shows in the sent message's hover footer beside the timestamp.
    • Opened the continuous Boss chat directly from the sidebar, with a private automatic workspace, the shared composer, and an avatar greeting without a project picker.
    • Cross-project search: The Boss's search now spans every project's task transcripts instead of only its own, project: filters may name any registered project, and each hit reports its project — so the Boss can find and read tasks anywhere on the daemon, not just in the project a chat happens to live in.
    • Delegated waits: The Boss now delegates waits to employees instead of polling itself — watching a task, waiting on an employee, or rechecking a condition is summoned work, and its own goddard-agent resource acquires are refused — so the Boss stays available for your next request.
    • A deliverable's preview page offers the same right-click menu as a chat message — Copy Selection, Search with Google, Copy Message, and Send to Friend — acting on the published document's text.
    • Deliverable naming: Boss-published files are now called deliverables: the sidebar section reads Recent deliverables, row menus and composer context use the same name, and the boss's publishBundle/dismissBundle operations are publishDeliverable/dismissDeliverable (pin, sweep, archive, and mark-viewed renamed to match). Saved bundles carry over automatically.
    • Employee assignments: Employee tasks show a ⋮ button after the job title in the top bar that opens the Assignment popover — the brief, persona, model, workspace, access, and resource state the summon recorded — and queued or starting employees show their assignment card instead of the new-task empty state.
    • Employee publishing: Employees can publish their own work as deliverables with goddard-agent boss deliverable publish — the file or folder must live inside the employee's assigned workspace, and it lands in the sidebar's deliverables section like boss-published ones. Deliverable management (pin, dismiss, archive) stays boss-only.
    • Employee role icons: Boss employee icons now describe the job: summon accepts an icon override and personas carry a default from an expanded icon set, while titles without either choice match work categories — bug fixing, localization, packaging, infrastructure, database — and fall back to a brain glyph instead of a generic person.
    • Let the boss switch an employee's provider, model, and reasoning effort for its next turn while keeping the same employee and transcript.
    • Resume employees: Supervisors can revive an interrupted employee with goddard-agent boss resume EMPLOYEE_ID (or the resume(sessionId) eval binding): the employee requeues with its transcript, workspace, and provider cursor intact plus a "verify and continue" prompt, behind whatever follow-ups parked before it expired.
    • Boss scripts: The boss can run Rhai scripts inside the daemon with the new eval operation — one goddard-agent boss call batches operations and chains their results, and variables persist between evals for the session. goddard-agent schema documents the bound functions.
    • Goals panel: The Boss chat opens Goals by default: five recent finishes with Show more directly below, then work in progress and queued assignments. Finished goals leave the list after 24 hours while task history stays available. Each compact two-line row opens its task, where blocked reasons remain available, and preview rows stay fully visible at different UI font sizes.
    • Employee job titles: Added job titles beneath Boss and employee names; employees receive stable human names from Goddard while the boss chooses their job titles. Distinct role icons — researcher, developer, bug investigator, reviewer, tester, and more — mark employees in the sidebar and window header; the boss's own entries stay icon-free.
    • Deliverable pages: Clicking a previewable deliverable now opens the file on its own page — the in-app file viewer fills the column instead of the boss chat's side panel — with the composer showing the boss's avatar and name, so a message sent from the page lands on the boss chat with the bundle attached. Employee pages keep their composer after the employee finishes: sending there still commands the boss with the employee as context, replacing the "chat with boss" footer. ⌘N now goes to whichever was used most recently — a boss chat you messaged, or the New Task page — and pressing it on the boss chat opens the project switcher, which lists the boss like a project so picking it returns to the chat.
    • Plan annotations: Planning-session plan documents now take annotations: select text in the plan tab, choose "Add to chat" (or press ⌘L), and the comment ships with your next message as a quoted @plans/<name>.md passage with its line range — the same annotation format chat selections already use.
    • Finalize plan: In a planning session, the Finalize plan chip above the composer finalizes the plan in one click — or press ⌘⏎ while the composer is empty; the planning agent's own request to finalize still asks for your approval. Once approval goes out, the session's composer becomes a read-only status card.
    • Approving a planning session's design returns you to its boss chat, where a "finalized its design" notice names the approved plan and links back to the planning session while it's still open.
    • Ordered plan work: Plans now carry an ordered work breakdown the Goals panel groups on: finalization seeds the list from the approved document's course of work, and the Boss reshapes it through new updatePlanItems, setPlanItemState, and setPlanOutcome operations. Completed and abandoned plans record audited outcomes (who, when) and reopen to approved; done and dropped items reopen to to-do. summon and employee control's new setPlan tag assignments to a plan and work item — unknown or finished references fail rather than landing untagged.
    • Planning sessions: The boss can open dedicated planning sessions through a new createPlan operation: each session works like a product designer — thinking through the user experience, flows, edge cases, and tradeoffs — and drafts a design doc under memory/plans/ in the boss's files, leaving implementation specifics to the employees who build it. Planning sessions run Codex's GPT-6.1-Sol model at medium effort by default. Several plans can run at once, and finalizePlan asks the user to approve before freezing the document — the session then stays active for a one-hour grace window, during which it implements the approved design by summoning and coordinating employees, before archiving like any managed task. Pending employee reports no longer block chat history when opening a boss, employee, or existing task from the sidebar.
    • Project memory targeting: Boss memory operations now address projects directly: goddard-agent boss memory accepts a registered project name or absolute path via --project instead of requiring the opaque project-<hash> bucket id, and employees omit the bucket entirely to reach their assigned project's shared bucket.
    • Steer employee prompts: Supervisor prompts to a running employee now steer into its open turn instead of waiting for the turn to finish — goddard-agent boss prompt and goddard-agent prompt default to interrupt delivery; pass --delivery queue (or delivery: "queue" on the control op) to park a message behind the current work.
    • Boss file search: ⌘P file search now works in the Boss chat — it lists the boss's own files (plans, memory, personas) and opens the pick in a file preview. Planning-session documents also moved out of memory/ into a top-level plans/ folder in the boss's files; existing documents migrate on the next daemon start.
    • The boss can send a finished employee another prompt to bring it back on duty — the employee reappears in the sidebar's working group while it runs, instead of needing a fresh summon for every follow-up.
    • Check employee status quickly with roster; use view when you need the full boss state and employee details.
    • Employee workspace changes: The Boss can move a live employee between the primary checkout and a fresh managed Git worktree in one action: control with setWorkspace stops the employee's current turn, rebinds its workspace (local for the project checkout, worktree with baseBranch for a new worktree), and resumes the same transcript there. A failed switch leaves the employee running in its old workspace.
    • Employee status icons: Boss and employee rows in the sidebar now show the same status icons as tasks — except the blue unread dot, which employees never carry since a finished turn is their steady state — finished employees report their name and finish time in the fold row, the pickers' slot shows the boss or employee's avatar and name, and employee names in the boss's transcript paint as avatar chips that open the employee's chat.
    • Dedicated employee rows: Boss and employee sessions no longer duplicate as ordinary tasks in the sidebar — they live only in the boss section and highlight when selected like tasks. Hold ⌥ on an employee row to see its provider logo, model, and reasoning effort; clicking the boss also folds an expanded finished-employee list back up.
    • Silent employee completion: Boss employees now finish silently: a clean completion updates the employee's status in view and context instead of delivering a prompt that spends a boss turn. Employee turns do not play the completion sound, including when their queued follow-ups finish. Employees can flag a blocker with reportBlocker to interrupt their supervisor mid-work and make their finish report — and a new "Always report when finished" persona grant restores prompted finishes per persona.
    • Retitle assignments: A Boss steer that redirects an employee's assignment can now retitle the job in the same action — pass jobTitle with the steer and the sidebar row, task header, transcript, and employee list all relabel without queueing an extra prompt or adding a transcript message.
    • Live summon cards: When the boss summons an employee, its transcript now shows a live card with the employee's name, job title, current status, and their freshest reply line — updating as the employee works, and opening the employee's chat on click.
    • Boss summons can pin an employee's reasoning effort with reasoningEffort, validated against the resolved model's supported efforts — an unsupported id fails the summon instead of silently running at another effort.
    • Boss summon accepts per-field permissions overrides for named memory bucket IDs, integrations, delegation, and Computer Use; control gains setPermissions to revise a live employee's grants without editing the persona.
    • Summon queue: Summons no longer fail when model capacity is full: a valid summon is admitted as a durable queued ticket and dispatched in per-boss FIFO order as slots free. Boss-configured setResourcePolicy limits now cap each provider+model pair (liveLimit, with a hardCap reachable only by summons that explicitly ask for burst), and dispatch takes model and host resources atomically through the host broker, so queued employees hold no worktree, runtime, or device claims until they start. Prompts sent to a queued or finished employee park on its ticket and replay when it dispatches. Hold Option over a queued or starting employee in the sidebar or summon card to reveal the model and reasoning effort assigned to its ticket. Cancelling an employee while it is queued keeps the Boss chat quiet.
    • Summon resources: Boss summons can now declare the host resources an employee needs up front — resources: {"native_builds": 1} for a device build, named ios:/android: devices with resident_devices, or desktop_input — and a contested set queues the ticket instead of erroring, so jobs that need a simulator or a build slot can be staffed in one step. The new setResources control changes the set on an employee that is already summoned: a queued ticket re-enters admission on it, and a running employee swaps to it once capacity frees without interrupting its turn.
    • Employee waves: A boss can group employee summons into a wave by passing the same groupId: the daemon reports once when every member finishes, fails, or is cancelled — including waves cancelled entirely — instead of leaving the boss to track each employee's finish.
    • Worker top bar: Boss and employee sessions show a top bar with the worker's avatar, name, and job title — double-click the name to rename it or the avatar for a new face — and their right panel offers just file previews, Browser tabs, and side chats.
    • Made the Boss brain page easier to scan with clearer file controls, editor fields, and permission toggles.
    • Adopt employee worktrees: Summon can now hand a finished employee's worktree to a new employee: workspace: "adopt" with adoptWorktree naming the path runs the new employee — a different persona and model are fine — in that checkout with its uncommitted work intact, so a dead employee's work in progress no longer requires resurrecting the same session. Adoption only succeeds while the owning employee is finished, failed, or cancelled; a live owner's worktree is refused.
    • Dedicated employee worktrees: Boss employees can now be summoned into a dedicated Git worktree — summon accepts workspace: "worktree" and baseBranch, so delegated work runs in its own checkout instead of the project's primary directory. Bosses are instructed to rely on those summon fields and never create worktrees themselves with git worktree.
    • Added Boss after Terminals: a persistent boss delegates work to temporary employees, with recent employee chats and a brain page for editing compartmentalized memory, personas, and their permissions.
    • Summoned employees now have a larger pool of human names, and Goddard adds an initial when a name is already in use.
    • Deliverable navigation: A deliverable's preview page now joins back/forward history like chats and pages — Back or Escape returns to the boss chat underneath — and the boss top bar and prompt queue no longer render over it. The queued prompts reappear unchanged when you return to the chat. The deliverable composer hides the boss turn's stop control and queues prompts behind an active turn, including when you use the steer shortcut. ⌘N from the page lands on the boss chat instead of opening the project picker over the file.
    • Ask the boss to open an http or https page in the boss chat’s right panel; the browser tab appears for the user there.
    • Shared project memory: Employees can use their project's shared memory bucket through explicit bucket operations, with agent-written summaries and durable original notes; Boss can inspect and add legacy memory files to a named bucket with a dry-run migration command that preserves every source file.
    • Planning sidebar: Planning sessions the boss starts now show in the sidebar directly beneath the boss row — above employees — with the idea being planned as the title and a compass "Planning" subtitle. Opening one puts its plan document in a read-only preview tab, a banner offers to finalize the plan, generic suggested-action chips stay off the planning composer's suggestion lane, and approved plans leave the sidebar immediately and stay readable under a new Plans tab on the boss's page.
    • Bosses can build a reusable library of purpose-specific employee personas and refine existing roles as recurring work patterns emerge.
    • Remote Boss rows now show the configured machine name beneath the Boss name, so you can tell which machine owns each Boss and its employees.
    • Agent memory commands: Employees and ordinary task agents can now use goddard-agent memory — overview, scan, zoom, record, summary, and buckets — against their session's shared project memory, and new sessions receive a bounded overview of it with their startup context. Boss-only create and migrate stay under goddard-agent boss memory.
    • The summon card a Boss chat leaves in its transcript keeps the employee's avatar, name, job title, and icon after the employee retires or its task is archived.
    • Boss and employee avatars no longer render with jagged pixel edges — the sidebar, top bar, and @-mention chips now rasterize each face near the size it displays.
    • Employees on a large roster now keep their generated avatars instead of settling on letter placeholders once the roster outgrew the avatar cache.
    • Boss and employee avatars retry temporary rendering failures instead of immediately staying on a letter placeholder.
    • Deliverable preview: Polished the deliverable preview page: its top bar shows the deliverable's title with the file's type icon and filename and stays clear of the window's traffic-light buttons when the sidebar is hidden, markdown documents center like the maximized file preview, the boss's avatar and name show once below the composer instead of repeating next to the model picker, and content scrolling under the composer dissolves into the surface like the transcript does.
    • Archived boss chats keep their tool and command output instead of being stripped to skeletons after a week — rotations no longer erase the output context recent boss chats still reference.
    • Placed the brain control inside the Boss sidebar button, sharing its row highlight while keeping memory navigation separate.
    • New Bosses receive clearer default guidance for correcting active work, queuing follow-ups, and summoning a fresh employee for new jobs or employees that are finishing.
    • A deliverable's preview page now keeps its own composer draft — typing on a deliverable page no longer overwrites the boss chat's draft, and each surface restores its own text when you return to it.
    • Deliverable composer context: Returning to the boss chat from a deliverable's preview page — via Back, Escape, or clicking the boss row — no longer keeps the file attached to the next message; the deliverable only rides along while its page is on screen.
    • Durable deliverables: Deliverables published from an employee's workspace now keep working after that workspace is cleaned up — publish stores a copy of the file or folder instead of pointing at the original path, so archiving the employee's chat no longer breaks its sidebar entries.
    • While a deliverable's preview page is open, the sidebar's Boss row no longer stays highlighted as selected — the deliverable's own row carries the selection instead.
    • The sidebar's Recent deliverables section now shows the five newest entries and folds the rest behind a Show more row, the same fold project groups use — pinned deliverables still lead the list.
    • Fixed Boss employees expiring in the middle of a tool call when a follow-up landed right as their turn ended — the finish now waits for the running turn to settle instead of cutting it short.
    • Summoned employees draw randomly from the curated name pool instead of following alphabetical order, while keeping names unique on the live roster and reusing retired names.
    • Boss employees in the sidebar now list newest summon first and hold their position — a row no longer jumps as the employee works or finishes; completed employees still fold behind Show more.
    • An employee's page now shows the follow-up prompt and the live "Working" indicator when the boss revives a finished employee — previously the transcript stayed stuck on the finished turn until it was reloaded.
    • Employee resource acquisition: Boss employees no longer dead-lock when their work needs a native build slot or a device — a summon admission that declared no host resources used to block the employee's first resource call instead of letting it acquire capacity.
    • Added Japanese and Simplified Chinese translations for Boss and aligned its smaller brain button with the sidebar’s right edge.
    • Employee mood avatars are now generated locally instead of fetched from an external service — they appear while offline and no avatar seeds leave the machine.
    • Clicking the Boss chat while a previous Boss request is still in flight now navigates instead of silently doing nothing.
    • Approving a plan now hands implementation to the boss: finalizing reports the approved design to the boss chat, which coordinates the work there — the planning session stays open briefly for questions instead of building it itself.
    • A planning session no longer opens its side panel on a loading screen the moment it starts — the plan tab now appears once the session has written real content to its plan document.
    • Planning navigation: A planning session the boss starts with createPlan no longer pulls you away from the task you're viewing: the new plan appears under the boss in the sidebar and only opens automatically while you're already in the boss chat.
    • Queueing a follow-up for a Boss employee that is finishing its turn no longer loses the message — it now delivers first when the employee is resumed.
    • Removing a queued follow-up in the Boss chat now sticks — the chip no longer reappears when you return to the conversation.
    • Queued follow-ups in the Boss chat no longer send a second time after restarting the app — a delivered message now leaves the prompt queue for good.
    • Boss employees waiting in the summon queue no longer look finished in the sidebar and on summon cards — they show an hourglass whose tooltip names the wait reason, such as a full model slot limit.
    • Boss employees start and resume without sending "started working" notices, and follow-ups queued while they wait to resume arrive together in order. Expiry notices no longer quote blocker text already reported to the supervisor.
    • A retired employee's task no longer reappears in the sidebar's task list when it leaves the boss's employee roster; it stays reachable from the boss transcript instead.
    • Made the Boss row its own sidebar heading, indented employees beneath it, and collapsed completed employees behind Show more.
    • Employees that failed or expired no longer keep showing a working spinner in the sidebar; the row now reflects that the session ended.
    • Returning to a Boss chat no longer re-loads every employee transcript it has ever summoned; live status and commentary stream for the most recent summon cards, and older cards still show their name and status.
    • The boss chat's top bar no longer shows the 'Open project in…' button or the environment info button; those controls target employee workspaces, not the boss's own session.
    • Fixed goddard-agent commands hanging for up to two minutes when the daemon could not decode the request — e.g. a boss operation newer than the running daemon build — which now gets an immediate error naming the failure.
    • Opening the Boss chat stays fast no matter how long it has been used — switching to it no longer resaves and reships the whole transcript on every visit.
    • The plan preview no longer flashes a loading screen on every boss update — the document now stays on screen while it refreshes and only repaints when the plan actually changes.
    • Boss branch sync: ⌘S in a boss chat no longer opens "Sync branch…" on a "not a repository" error — a resolved workspace that isn't a Git checkout now asks which project to sync, same as having no repository context at all.
    • Employee instructions now reserve supervisor interruptions for blockers that require supervisor or human action, and direct recoverable failures and non-blocking findings to normal work and finish reports.
    • Boss chat transcripts now show a brief session rotation notice while rotation diagnostics stay in daemon logs.
    • Option-click a block in a Markdown deliverable to open its annotation editor and attach the comment to your next chat message.
    • Employee sessions now offer the same right-panel tabs as regular tasks, while Goals stays exclusive to boss chat.
    • Large Markdown previews: Large Markdown files and deliverables open much faster in the file viewer and deliverable page — the preview renders only the part of the document on screen instead of laying out the whole file up front, which also makes scrolling big documents smoother.
  • Sidebar
    • With the experimental quick-action dock on, the sidebar's bottom-left strip shows a cluster of mini dock orbs instead of the settings and keyboard-shortcut buttons while the dock is hidden; hovering the strip still raises it.
    • With the experimental quick-action dock on, its button artwork and glyphs are decoded at startup, so the first raise paints instantly instead of popping images in as they load.
    • Enable Composer dictation in Settings → Experiments to record up to 30 seconds and insert an offline Whistle transcription at the caret on Apple silicon Macs; the first use downloads the model. Disabled by default.
    • Voice briefings now default to a single sentence under 20 words stating the agent's current status; saved custom instructions stay unchanged.
  • Composer
    • Voicepad: A VP mic button beside send in the composer starts a voice scratchpad: speak and a live transcript builds paragraph by paragraph in place of the chat, with "okay next" starting a new paragraph and clicking a written line or bullet opening an annotation box whose dictation lands as bullets under it — clicking elsewhere commits the open annotation, and clicking a line with nothing on it yet marks where dictation lands next. The transcript is editable in place — drag-select text anywhere in it and it takes the keyboard, typing replaces the selection or Delete cuts it, and arrows or a Tab landing walk a caret that only marks where dictation lands; click back into open space or the composer to type a prompt again. Each chat keeps its own scratchpad: switching chats pauses the one you left and the VP button opens the chat you're viewing, where unmuting resumes it — clicking VP while the scratchpad is up cancels the session. Mute — or ⌥M while the scratchpad is up — turns off the microphone and closes the transcription stream until unmute reconnects, landing any half-dictated phrase as solid text; Hide keeps dictating in the background of the same chat, and Enter sends the whole transcript as one message. Dictation streams the microphone to the microsoft/mai-transcribe-2-streaming model through the AI gateway, so it needs a gateway credential and microphone permission. If the stream drops or the service pauses transcription mid-session, the scratchpad reconnects on its own and keeps the transcript. Left silent for four minutes a pad stops on its own — muted, transcript kept — and unmuting resumes it.
    • Voicepad cleanup: Finished sentences in the voice scratchpad now pass through the alibaba/qwen3.8-27b text model for light cleanup — filler words, false starts, and stutters drop out — once the next sentence starts, so the line you are still dictating is never rewritten. Text you edited by hand is left alone, and the raw words stay whenever the gateway cannot answer. Interim dictation also no longer shows periods in the gray live text; sentence punctuation appears when the text finalizes.
    • Voicepad recording indicators: The voice scratchpad now marks sentences being cleaned with a small spinner at the end of their paragraph, the recording dot breathes while dictation is live, the hint line bolds "enter", and the Mute pill holds a fixed width across the toggle.
    • The composer's send button now sends the voice scratchpad's transcript, lighting up as soon as the scratchpad holds speech just as it does for a typed draft — previously only Enter could send it.
    • Voicepad shortcuts: In the VoicePad scratchpad, ⌥M now opens or resurfaces the pad when it is closed or hidden and keeps its mute-toggle meaning once the pad is up. Escape peels off the discard confirmation, a selection or caret, and an open annotation box first, then hides the pad — the transcript keeps, and the former Cancel pill is now Discard, still the only destructive path. While the pad is up, the suggestion chips and floating action buttons above the composer stay out of its way.
    • Voicepad paragraph edits: In the VoicePad voice scratchpad, saying "okay, let's make an edit" while annotating a paragraph turns the rest of that box's dictation into a rewrite instruction — commit with "okay next" or by clicking away and the alibaba/qwen3.8-27b cleanup model rewrites the paragraph in place; the instruction never lands as a bullet, and the paragraph stays as-is if it changed since or the call fails. Annotating a bullet now opens a box whose dictation lands as nested sub-bullets under it, up to nine levels deep.
    • Hovering a suggested-action chip above the composer — including a voicing briefing's pause/resume — no longer turns the chip transparent; it darkens slightly in light themes and lightens in dark themes.
  • Platform
    • Clicking out of a VoicePad note box commits it and moves dictation to a fresh paragraph instead of resuming the annotated one, and ⌥M pauses capture without losing an open note.
    • Voicepad live text: In the VoicePad scratchpad, dictating no longer flickers or ghosts when partial words resolve into final text — provisional and settled words are now a single laid-out line — and annotation and bullet text wrap inside their boxes instead of running off the edge.
    • Voicepad selection editing: In the VoicePad scratchpad, deleting a transcript selection now leaves a live caret — typing continues right where the cut happened, space included, and Backspace/Delete cut beside it. Enter always sends the scratchpad while it's up — a Mute pill click or a focused row no longer eats it — and drag-selecting with an empty annotation box open cancels the box so the selection can edit, while a box holding dictated text keeps the gesture from selecting.
    • Voicepad paragraph indicators: In the VoicePad scratchpad, the divider for the next paragraph and the red record dot appear the moment dictation moves on ("okay next" or clicking out of a note box) — the dot sits on the blank line where the next words land, and the line fills in as they arrive.
    • Voicepad controls: In the VoicePad scratchpad, the composer's VP button now hides while the pad is open and returns when it closes, hides, cancels, or sends; the annotation box wraps dictated text at its edge instead of running off-screen; and the paragraph dividers follow the Border intensity setting and read a bit more clearly by default.
    • Typing an edit into the VoicePad transcript no longer jumps to the composer mid-word — pressing Space at the edit caret kept ending the edit and diverting the rest of what you typed into the draft.
    • Unmuting the VoicePad scratchpad now reliably restarts the microphone and transcription — including after switching chats, after the pad paused itself, or after mic permission was granted in System Settings since a denial.
    • Missing icons: Fixed icons that rendered blank: the sidebar's Automations row, the voice-briefing headphones in the command palette and transcript footer, the composer pause button while a briefing plays, the composer-drafts experiment card, and the Cloudflare and OpenRouter provider logos in Settings.
  • Git
    • The Git panel in a standalone terminal follows its current directory, showing the nearest repository's branch, history, and staging area, or an empty state outside a repository.
  • Settings
    • Set voice briefing volume and a daily do-not-disturb window in Settings → Experiments → Voice briefings. Automatic playback waits during the window; manual replay stays available.
    • Choose a speaker for the LibriTTS Piper voice in Settings → Experiments → Voice briefings; new briefings use your saved choice. (macOS and Windows — the Piper engine isn't built for Linux yet.)
  • Transcript
    • The response footer's "Generate voice briefing" button and a handful of other controls now draw their icons — the SVGs shipped on disk but were never registered in the app's embedded icon set, so they rendered as blank space.
    • Voice briefing transport: Voice briefing controls sit beside the context gauge, with restart, pause/resume, skip, and a ticking duration. When playback and its queue finish, the transport buttons stay visible but disabled and faded, and the duration hides. Automatic briefings follow the visible idle chat with one waiting clip, and message headphones replay any completed reply and mark the reply being spoken. Briefings no longer keep message footers visible when the message is not hovered.

Fixed

  • Sessions
    • Manually renaming a task now revokes the standing "always allow" agent-rename grant, so a human-chosen title stays human-owned and the next goddard-agent rename asks for permission again.
    • Goal reminders: Goal reminders from /goal no longer appear in the follow-up queue or the transcript. A prompt you queue now always sends ahead of an automatic goal reminder, and the app only evaluates goal progress once the task is actually idle.
    • Managed goals no longer add unread completion markers or play completion sounds for off-screen intermediate turns.
  • Sidebar
    • Projects that share a folder name no longer render identically in the sidebar and project pickers — two dev directories now read goddard/dev and text-coral/dev, extending to more of the path when still ambiguous.
    • Hovering the window's left edge to peek the hidden sidebar no longer shifts the top-row icons — the sidebar toggle, bell, and back/forward buttons now hold the same position they occupy in the header.
    • Sidebar task rows and the selected task's title bar no longer show a Planning phase chip, and the "Hide Planning chips on task rows" setting is gone.
    • Sweeping the task you're viewing into the sidebar's Dormant group now selects the next task in the list instead of leaving the shelved task open.
  • Composer
    • Inline chips in the composer and sent messages — session mentions and collapsed pastes — no longer draw their leading icon over the label's first letter when the interface font lacks em and en space glyphs.
    • The chips and command/mention suggestions that float above the composer no longer cover parked follow-ups; while prompts are queued they rest above the queue card instead.
    • Hovering a queued follow-up above the composer no longer paints its highlight past the queue card's rounded top corners.
    • The chat composer's send arrow stays legible over its chrome button artwork in light and dark themes — the designed light underlay now sits beneath the dark arrow instead of recoloring a single icon per state.
    • When a task can no longer accept an immediate steer, the composer keeps the prompt in the draft instead of silently adding it to the follow-up queue.
  • Git
    • Worktree controls: The composer no longer offers "New worktree" or "Move to worktree" for projects whose folder is not a Git repository, where those choices would fail when the task starts. The workspace and branch chips drop out of the composer's footer, and a draft that was already planning a worktree there falls back to the project folder.
    • "Sync branch…" no longer does nothing when it has no repository to work with — run it with no task or project selected and it asks which project to sync, then opens that project's branch picker.
  • Transcript
    • Markdown copying: Copying part of a message or other markdown text now puts the rendered text on the clipboard; markdown syntax such as ** or ## is included only when the selection covers a whole block like a paragraph or list item.
    • Long transcripts scroll more smoothly — the app was rescanning the whole session once per visible row on every frame; it now scans once per frame.
    • Returning to a chat you had scrolled up in — while a turn finished in the meantime — now reliably shows the jump-to-bottom button above the composer instead of leaving it hidden.
    • Ordered lists in transcripts keep the numbers the author typed — a prompt or message that lists "3, 7, 9" no longer renumbers itself to "1, 2, 3".
    • Keep queued prompts' Steer action available while text streams, and show a steered prompt in the transcript until it is delivered.
  • Panels
    • The right panel's + add-tab menu now closes when the pointer leaves both the button and the menu, instead of staying open until a click or Escape.
    • Browser loading performance: The built-in browser no longer redraws the whole window at the display's refresh rate for the duration of a page load; the progress bar updates at about 30 fps while loading and stops scheduling frames once the load finishes or the tab unmounts.
    • Sidebar panel animation: Toggling the sidebar with a right panel open no longer snaps the panel narrower at the start of the animation or wider at the end. The panel keeps its width while the chat column gives way, and only yields once the chat reaches its minimum — growing back just as smoothly when the sidebar hides.
  • Terminals
    • Running a project script with the sidebar's Terminals group folded no longer hides the new terminal — the group now expands and scrolls to the new row whenever a terminal is created.
    • Terminals that announce a localhost URL stay visible in the Terminals group, including when the group is folded.
    • Selecting terminal text now scrolls through history while you hold the pointer near the top or bottom edge.
  • Keyboard
    • Fixed Escape sometimes failing to close the command palette or file finder when it was pressed before the picker's search field had taken focus.
  • Settings
    • The built-in “Sharpen complex answers” auto-prompt now starts disabled and is disabled on load if its shipped settings are untouched; edited rules are preserved.
    • Microphone selection: Voice dictation no longer loses the microphone when Bluetooth devices connect or disconnect. Settings → General → Voice → Microphone now pins dictation and voice consent to a specific input device; if it disappears, capture waits for it to return instead of silently switching mics.
  • Platform
    • Agent command recovery: Fixed new tasks losing their goddard-agent commands when the daemon's own build or install directory was replaced or cleaned while it kept running — for example a build-cache cleanup; the daemon now keeps private copies of the binaries it hands to agents and tells the session when the surface can't start.
    • Fixed a "Broken pipe" failure that could stop a Computer Use task when its native helper restarted between actions; the action now transparently resumes on a fresh helper when it is certain nothing ran.
    • Dev channel downloads keep using the last published signed build while a new build is being packaged and published.
    • Projects → Activity rows line up: the header, release titles, and status/date columns no longer misalign or repeat titles.
    • Daemon launch configuration: Launching the app with GODDARD_DAEMON_ADDRESS set but GODDARD_DAEMON_TOKEN missing no longer panics — the launch reports the incomplete pair and exits cleanly, and the dev watcher now starts a local daemon instead of adopting an external daemon it has no token for.
    • Daemon recovery: A daemon that stops answering but is still running no longer restarts itself — running tasks keep their provider processes while Goddard reconnects. If it stays unresponsive, a banner explains the state and offers a "Restart daemon" action that first confirms the restart interrupts running work.
    • Bounded reconnection: Reconnecting to an unresponsive daemon and spawning a replacement are now bounded operations instead of hanging on a stalled socket or a slow boot, and the daemon outage log records one "unreachable" entry per continuous outage — including whether recovery kept the same daemon alive rather than restarting it.
    • Codex tasks no longer log startup failures for the ChatGPT desktop app's bundled node_repl and cua_repl MCP servers on machines without the app installed.
    • Side chats now show the pending follow-up queue above their composer, like the main chat — a queued message can be steered into the running turn, pulled back into the lane's composer for editing, or removed.
    • The three-finger trackpad swipe for back/forward navigation now works when the pointer is over a maximized right panel — the gesture previously did nothing there.
    • Keep composer and transcript chips together when text wraps, so chip labels remain readable on narrow lines.