Changelog¶
Notable changes per release. Versions follow SemVer; the git tag is the single source of truth — the PyPI wheel, the Docker image tag and the app's own __version__ all derive from it. Release artifacts: PyPI, Docker Hub, GitHub Releases.
1.1.6 — 2026-10-02¶
Fixed¶
- A message sent while a Codex
/compactis running now waits and runs once the compaction finishes (as it does on Claude), instead of failing with "ActiveTurnNotSteerable … Failed to send message". Pressing Stop discards the waiting message. - Default permission modes are now kept per provider: choosing Set as default on a Codex tab (e.g. Full access) saves it as Codex's default and new Codex sessions open with it, instead of always falling back to Workspace write. Claude keeps its own default. Each provider's default is also editable under Settings → Providers → New Session Defaults; an existing app-wide default carries over to the providers that support it.
1.1.5 — 2026-10-01¶
Fixed¶
/compactin a Codex session now actually compacts the conversation (with the usual "Conversation compacted" marker) instead of being sent to the model as a prompt. Codex's own automatic compactions now show up in the chat too.
1.1.4 — 2026-10-01¶
Fixed¶
- Codex sessions get rich turn summaries and auto-generated session titles again on newer Codex CLIs (0.159+); the summary fork was being rejected, leaving only the raw journal. Summary-fork failures are now logged as warnings instead of disappearing.
- Markdown links to local files in chat —
[name](/abs/path/file.md),./x.md,file://…, optionally with#L12/:12line targets — open the file preview instead of navigating the browser to a dead server URL.
1.1.3 — 2026-10-01¶
Fixed¶
- Codex sessions now ask for MCP tool approvals with the same in-chat permission card Claude sessions use — Allow / Deny, plus "always allow" for this session or for good. Previously Codex rejected every MCP tool call that needed approval (anything not marked read-only).
- Switching a Codex session's permission mode (e.g. to Full access, the equivalent of
codex --yolo) now takes effect for the existing conversation; before, a resumed Codex thread kept the sandbox it was started with, even across server restarts. - Failed
!bang commands show the stderr explaining the failure instead of a bare "Exit code: N", and output written to both stdout and stderr is no longer cut down to stdout.
1.1.2 — 2026-09-30¶
Added¶
pbcopyin the built-in terminal on Linux and macOS servers:git diff | pbcopycopies to the clipboard of the device you're using (via OSC 52, so it needs Settings → Terminal → "Terminal apps may write to clipboard"; inside tmux alsoset -g allow-passthrough on). A server's nativepbcopystill takes priority.
Changed¶
- Claude Sonnet 5.5 replaces Sonnet 5 in the model catalog, and is the new default model for the shadow-git-helper subagent.
1.1.1 — 2026-09-23¶
Added¶
- Claude Opus 5.5 (1M context) in the model catalog, replacing Opus 4.8.
Fixed¶
- Fresh installs show the real app icon — in the browser tab, on the login page and as the installed PWA/home-screen icon — instead of a generic "P" tile, and the service worker no longer fails to install from the login page.
painapple setupno longer forces a container-runtime choice: a Skip option (the default when nothing is configured yet) leaves the runtime and image untouched, and an existing custom runtime path is kept on Enter.
1.1.0 — 2026-09-08¶
Also ships everything listed under 1.0.5 below — that tag was cut but never published.
Added¶
- Long option descriptions in AskUserQuestion cards no longer get silently clipped: a clamped description gets a Show more / Show less toggle, and the option you chose is shown in full on the answered card.
1.0.5 — 2026-09-05 (tagged, never published)¶
CI failed on the tag — a test pinned a model id the catalog change below had just removed — so no PyPI, Docker Hub or GitHub Release artifacts exist for 1.0.5. The tag stays; its changes ship in the next release.
Added¶
- Turns now credit files that Claude edits or reads through Bash (
sed -i, heredocs,tee,mv, …), not only through the Edit/Write/Read tools: the file pills, the Shadow DBturn_filestable, recent-files ranking and the per-session/changesrescan all see them. The staged diff at commit time is used as a final catch-all for anything else that touched the tree (generators,npm install).
Changed¶
- Model catalog: Fable 5 replaced by Fable 5.1.
Fixed¶
- The self-signed TLS certificate now lists the actual bind address in its SAN, so browsers connecting by IP stop rejecting it.
1.0.4 — 2026-08-31¶
Added¶
- Every container start logs the image version it is running (
org.opencontainers.image.version), so a stuck:latestis never silent. - "Port already in use" now offers a concrete free
--portand a ready-made named profile;painapple setupno longer defaults to a port that is taken.
Fixed¶
--project/--no-projectnow also steer the mount mode picked by--in-docker.- Raw
docker runexamples in the docs use the right scheme and pass--tls offexplicitly; Podman example adds the missingmkdir.
1.0.3 — 2026-08-31¶
Added¶
--project/--no-projectworkspace mode with.gitauto-detect: serve one repository as a single pickable project rather than as the workspace root.
Fixed¶
- A wrong bind host is reported as such instead of masquerading as "port already in use".
- The annotate button in the image pan-zoom toolbar was rendered at the wrong size.
1.0.2 — 2026-08-31¶
Changed¶
- "Engines" are now called Providers everywhere: Settings tab, status-bar chip, session setup panel, and the HTTP API —
/api/engines*moved to/api/providers*and theenginefields/query parameters are nowprovider. Saved sessions and configs keep working. - Slash-command autocomplete descriptions clamp to two lines and expand on hover/selection; the full text is available in the tooltip.
Fixed¶
- Autocomplete descriptions no longer paint over the command name on long entries.
- Descriptions of skills embedded in the Claude CLI are extracted correctly when the name and description keys are not adjacent.
- A stale
fetchAgentCommandscall on the connected frame was removed.
1.0.1 — 2026-08-31¶
Removed¶
- The two "plain CLI" fallback drivers: the
claudeline-protocol driver (superseded by the wire-identicalclaude-sdkprovider) and thecodexexec driver (codex exec --jsonhad no stdin protocol — every prompt rode argv, readable viapsby any local account; see SECURITY.md). Saved configs keep working: the legacy provider names alias toclaude-sdkandcodex-app-server, and old Codex exec sessions resume natively through the same$CODEX_HOMEthread store.
Fixed¶
- Docs: TLS opt-in now points at the
[tls]extra instead of a hardcoded dependency pin.
1.0.0 — 2026-08-26¶
First public release.