Changelog

What shipped in the desktop app, newest first. Each release keeps a permanent page of its own, and the feed carries the whole note rather than a teaser.

Releases

Newest first.

subscribe via RSS
v0.179.1Release

Public documentation talks about the product, not its source tree

The MCP tool reference is generated automatically from the definitions registered by the Pekan server, which keeps the public documentation aligned with the tools an agent can actually call. The page previously explained that guarantee by publishing the internal repository path of the source file used by the site generator. That path was useful to a contributor working inside the Pekan codebase, but it was an implementation detail with no value to someone connecting an agent.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.179.0Release

Refine now shows its work and lets you stop it

Refining a Triage capture is now an explicit workflow instead of a spinner that can sit unchanged for two minutes. Pekan offers only agent providers whose command is available on this computer, lets you choose which one to use, and remembers the last provider that successfully produced a proposal. Before any evidence is disclosed, Pekan verifies the provider command, the project workspace, and the desktop bridge. A missing command or moved project is therefore reported immediately on the capture that needs attention, before any process starts.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.178.0Release

Twenty faint tints that were never actually there

The pale outline that made the Refine button look permanently focused had a cause worth chasing, and it turned out to affect a lot more than one button. Pekan's colours are defined once as theme variables, so a single set of screens can render in light, ember, midnight, sepia, and sakura. Tailwind, the styling layer, could read those variables perfectly well for a solid colour, but not for a translucent one: to make a colour 40 percent transparent it needs to take the colour apart into its red, green, and blue components first, and a variable is opaque to it. Faced with that, it did not fall back to the solid colour. It threw the whole instruction away and emitted nothing.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.177.1Release

Provider cards line up, and Refine looks like the button next to it

The provider cards in the agent action dialog no longer bounce. Each card was a plain button, and a button centres its contents, so a provider with a longer description pushed its own logo and name down while a shorter one sat higher. With four providers side by side the names landed at four different heights. Every card is now built as a column with the logo and name pinned to the top, and the description sits in a reserved three-line area below it, so no single verbose provider can set the height for the whole row. Text that does not fit is still available: a card whose description is clipped reveals the full version on hover and, unlike a browser tooltip, on keyboard focus too. The row also fits its space properly now. Instead of four columns squeezing ever narrower, the cards wrap onto a second line when the window gets small, so nothing overflows sideways and no card shrinks below a comfortable click target.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.177.0Release

OpenCode joins the provider lineup, and agent activity moves to the task header

OpenCode is now a first-class coding provider alongside Claude Code, Codex CLI, and Mistral Vibe. It appears everywhere a provider can be chosen: agent actions, action generation, task decomposition, project planning, provider mixes, recovery and redispatch, and interactive terminal launches. Tracked runs use the documented non-interactive interface and read its JSON event stream, so live output arrives as a readable transcript rather than raw protocol noise, and the per-step token counts OpenCode reports are added up into one honest run total instead of only the last step being recorded. Where OpenCode reports no model identity, the cost stays unknown rather than being guessed. Project setup registers Pekan as a local MCP server in your OpenCode config, writing only its own entry and leaving the rest of the file, comments included, exactly as you had it. If that file cannot be written, Agent setup shows the snippet to paste in yourself.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.176.0Major release

Capture work by describing it, with screenshots and recordings

Triage capture is now a single natural-language composer instead of a title field and a note. Describe the issue, the idea, or the work in your own words, and attach whatever evidence you already have. You can paste a screenshot straight from the clipboard, paste files copied in the file manager, drag and drop images, videos, logs, and documents, or pick them from a file dialog. Every attachment shows its name, type, size, and upload state, with a progress bar for large files, plus a retry for a failed upload and a cancel for one still in flight. Videos are first-class evidence: MP4, WebM, and MOV are accepted up to 200 MB each, streamed to storage rather than held in memory, and served with range support so a recording plays and seeks in place while you review it.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.175.3Release

Reliable delivery checks on Windows

Isolated agent work can now complete its delivery checks reliably on Windows. Pekan previously tried to launch the npm command shim as if it were a native executable. Newer Node.js releases reject that process launch with an EINVAL error, so a clean branch could be retained as undelivered even when its translation catalog check passed. Pekan now routes that fixed verification command through the Windows command interpreter while keeping the worktree path outside the command string. This preserves safe handling for project paths that contain spaces or shell metacharacters.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.175.2Release

Reliable run capture from isolated worktrees

Automatic usage capture now works when Claude Code, Codex, or Mistral Vibe runs inside a Pekan-created isolated worktree. Pekan installs a small ignored launcher that delegates to the source checkout's current recorder, so provider lifecycle hooks no longer fail because record-run.mjs is missing. The launcher points the recorder to the source project's durable state without copying its MCP credential, endpoint configuration, or retry queue into the disposable worktree. A changed local port or rotated token is picked up the next time the hook runs, and pending telemetry remains available after worktree cleanup.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.175.1Release

Worktree cleanup protects every checkout

Cleaning up an isolated agent worktree on Windows is now guarded against npm workspace junctions that point into another checkout. Git for Windows can follow those directory links while removing a worktree, which means a link left in node_modules could make cleanup traverse into the primary project directory. Pekan now finds and safely detaches every directory link that resolves outside the worktree before Git is allowed to remove anything. The link itself is removed while its target and all source files remain untouched.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.175.0Release

Theme-aware status colors across Pekan

Status and emphasis colors throughout the desktop app now follow the active theme. Alerts, validation messages, priority badges, delivery states, destructive actions, informational callouts, and success indicators no longer rely on Tailwind's fixed light palette. Each state instead uses a semantic background, border, and text color defined by the current theme, removing pale blocks and bright outlines from Ember and Midnight while retaining clear distinctions between outcomes such as cancelled and failed, or delivered and needs attention.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.174.0Release

One Activity home for everything new

Activity is now the single place to find work that needs attention, active and completed agent runs, updates, and everything that has changed since your last visit. The separate newspaper button and its slide-over have been removed, leaving one clear header control with one badge. That badge gives urgent actions first priority, followed by active runs, unseen changes, and unread updates, and its screen-reader label explains which state is currently being shown.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.173.3Release

Agent run status chips follow your theme

The status chips on agent runs used fixed light colours. Running, Paused, Succeeded, Failed and Stopped, along with the delivery and review chips beside them, were written with the same kind of hardcoded pale palette that made the Stop button's border look wrong in dark themes. In a dark theme their borders read as bright outlines and their fills as light blocks, none of which belonged to the surrounding surface. They now use the same theme-defined colours as the rest of the app, so every chip is legible and in keeping whichever theme you run.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.173.2Release

Stop controls that belong in every theme

The Stop button in Activity now uses Pekan’s theme-aware destructive colors instead of a fixed pale red border. That fixed border looked almost white against dark themes, making the compact control feel disconnected from the rest of the interface. Its border and text now come from the same semantic palette as other destructive actions, while its resting background stays aligned with the surrounding surface.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.173.0Major release

Watch an agent work, see who owns the task, and know where the branch goes

Three things about running an agent from Pekan have been quietly unsatisfying, and they turn out to be the same story told three times: the app knew something useful and did not show it. A run was streaming and looked frozen. A run had started and the card looked idle. A branch was pushed and it was not clear what to do next. All three are fixed in this release.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.172.0Release

Worktree cleanup you can verify before it runs

The Worktrees panel now makes age, activity, and cleanup safety visible before you remove anything. Every worktree shows a relative activity time with its exact local date and time available to assistive technology and on hover. New worktrees track meaningful activity from preparation, agent output and completion, delivery attempts, refreshes, folder reveals, and interactive reopens. Older records fall back to their record update or creation time with honest wording, so a metadata timestamp is never presented as proof that someone worked in the branch.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.171.0Release

A calmer close, and sessions that get time to finish

Closing Pekan while an agent was working used to produce a grey Windows message box, and confirming it killed every child process on the spot. Both halves of that have changed.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.170.1Release

Agent Actions stay in the modal, not on the move

Opening an Agent Actions launch dialog from a board card now temporarily locks dragging for that card. Previously, the dialog lived inside the same interface tree as the draggable card, so pressing, selecting text, opening technical details, choosing a provider, or confirming a run could also wake the board drag handler behind the overlay. In the worst case, a task could move while you were still configuring its agent run. The card now remains fixed in its original position and column for the complete lifetime of the dialog, and those interactions do not send a task update request. Cancel the dialog, close it, or successfully launch the action and normal dragging returns immediately. The lock is local to the card whose dialog is open, so every other task on the board remains draggable. Existing overlay click protection is unchanged, which means modal interactions still cannot open the task detail view underneath.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.170.0Major release

Documentation, and a tool reference that cannot go stale

Pekan.cloud now has documentation. Until today the site could tell you what Pekan was and what had shipped in it, but nothing on it explained how to actually do anything: how to install it, how to wire a coding agent to a board, or what any of the views were for. Seven pages at pekan.cloud/docs.html close that gap.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.168.0Release

Sakura, a cherry blossom light theme

Sakura joins Light, Ember, Midnight, and Sepia as a built-in theme, and it is light only. It takes its cue from cherry blossom rather than from a tinted grey: page, window chrome, panels, columns, and cards sit on soft blossom neutrals, hover and selection surfaces warm gently toward rose, and text is a deep warm plum that stays crisp on every one of those surfaces. The accent is a muted rose gold, restrained enough to read as chrome rather than decoration, so buttons, the active navigation item, focus rings, and the terminal cursor all stay recognisable without turning the workspace candy pink.

Full noteCo-authored by AI · Human-reviewed and published by Pekan
v0.167.2Release

Custom actions that follow your prompt

Custom agent actions no longer have to pretend that every job ends as a task update, a new task, or a project-context change. New actions now default to Not specified (follow prompt), which adds no result-target instruction and lets the action prompt define the work. Project actions can also explicitly target Repository changes when the intended result is code, configuration, a version bump, or Git work. The distinction between result and permission remains visible: Propose produces a reviewable answer without changing the board, files, or Git, while Apply permits only the changes the prompt requests. The action editor now explains Context, Result target, and Behavior directly beneath each choice, and launch confirmation calls out repository and open-ended permissions before a run starts.

Full noteCo-authored by AI · Human-reviewed and published by Pekan