Skip to content

Releases: prokopai/prokop

Server 1.23.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 14:55

Added

  • Steer a running agent: A message you send while an agent is working is now delivered into the running turn instead of waiting for the turn to end, and its bubble says "Steering" until the agent receives it. To keep the old behavior, set Settings > Appearance > Messages sent while the agent works to Queue; the choice is kept per device. A queued message has a Steer button, and pressing Enter in an empty message box steers the oldest queued message. Your message then appears in the conversation at the point the agent read it, and the rest of the reply answers it. Prokop agents receive it after their current tool step finishes. Claude Code receives it between tool calls. Codex receives it through its own steering request. If the turn ends first, or the agent cannot take it (Claude Code and Codex Goal runs, a stopped turn), the message stays in the queue and is sent after the turn like any queued message, so it is never lost. In Codex sessions, Undo and Fork work on whole turns: they are available after the reply to a steered message, not between the steered message and the reply before it.

  • Switch harness mid-conversation: When Claude Code or Codex runs out of usage, pick a model from another harness (Prokop, Claude Code or Codex) in the session's model picker and keep working in the same session. Before, the harness was locked after the first message. The new harness starts its own fresh thread and gets a summary of the conversation in its instructions: the first request, the last six turns with each tool call on one line, and the session ID so it can look up earlier details with session search. Nothing from the earlier turns runs again. The conversation shows "Switched to Codex CLI · gpt-5" where the switch happened. Switching works while the session is idle, with no queued messages, pending approvals, running Goal or Compact. After a switch, Fork is unavailable, and Edit and Undo are unavailable in Claude Code and Codex. In Prokop they still work for turns after the switch.

  • Agents can show pages in their replies: Prokop, Claude Code and Codex agents can show a chart, table, diagram or mockup as a page inside their reply, above the text. The page follows your light or dark theme, grows to fit its content, and opens in a new tab from its corner button. It runs sandboxed, with no access to Jean2's stored login or storage. This comes from a new built-in MCP entry, Prokop Visuals, which is on without any setup. Turn it off, or turn off its render_html tool, in MCP settings for all workspaces or for one. Subagents and learning reviews do not get it. A page can be up to 200 KB.

  • Diagrams and math in messages: A ```mermaid block is drawn as a diagram once its closing fence arrives. Until then, and if the diagram has an error, it shows as code; a corner button switches between the diagram and its source. Math between $$ signs, inline or on its own lines, and ```math blocks render with KaTeX. A single $ stays plain text, so prices such as "$5 and $10" are not turned into math.

  • Reorder terminal tabs: Drag a terminal tab to a new position, the same way you reorder dock tabs. The order is kept per workspace on this device, and new terminals open at the end.

Fixed

  • Codex image generation no longer breaks the session: When Codex generated an image larger than about 1.5 MB, Jean2 dropped its connection to Codex mid-turn, and the session stayed stuck on "The turn may have run; it will not be resent until reconciled". Codex sends the whole image in one message, and Jean2 refused messages over 2 MB; the limit is now 64 MB, and long messages are read in linear time. A generated image now shows inline under its row, outside the folded tool calls and in older turns too; click it to open it full size. Jean2 keeps its own copy with the session, so it stays after Codex cleans up its folder. If the image cannot be read, the row says where Codex saved it, and it says when the image limit was reached. Codex is also told that its images reach you this way: Codex hands the image to Jean2 rather than to the model, so before, the model saw an empty result and sometimes replied that it could not show the image.

  • File links in replies open the file: When an agent links a file, such as [report.xlsx](out/report.xlsx) or an absolute path, clicking it now opens the file preview instead of a broken page in a new tab. Relative paths open from the session's checkout. Absolute paths, ~/ paths and file:// links open from anywhere on disk, read-only when outside the workspace. Line references such as #L12 or :42 are ignored. Files the preview cannot show, such as spreadsheets, PDFs or archives, have a Download button, which also appears in the file explorer's preview. A missing file now shows "File not found" instead of a server error.

  • Claude Code and Codex read their own skills without asking: Reading a skill from ~/.claude/skills, ~/.claude/plugins, ~/.codex/skills (including Codex's built-in .system skills), ~/.codex/plugins or ~/.agents/skills no longer asks for outside-workspace access. CLAUDE_CONFIG_DIR and CODEX_HOME are honored. Only reading is allowed: writing there still asks, and so does reading anything else in those homes, such as ~/.codex/auth.json, settings, history or other sessions. A link inside a skill folder is judged by where it points.

  • Claude Code web results stay folded: Claude Code's web search and web fetch rows now show one line ("Searched: …" or "Fetched: …", with the page size) instead of the full results as markdown under the row. The results are still in Show raw data, as with Prokop's own web fetch.

  • Opened attachments cannot run scripts: An attached file opened from the conversation is now shown sandboxed, with no scripts and no access to Jean2's stored login. Before, an attached HTML page opened in a new tab ran as Jean2 and could read the API token. Images still show inline as before.

  • Following the conversation stays at the bottom: While the view follows new output, it now stays at the bottom when you send a message, however long. Before, a long message or a large tool output could leave the view above the end without bringing it back. Sending could also make the conversation flick up for a moment when the message box shrank back, and each new line of a streamed reply showed briefly below the edge before the view caught up. Scrolling up still stops following right away.

  • Stop responds at once: Pressing Stop now switches the session to idle right away: the Stop button turns back into Send, and the running markers in the sidebar, tabs, header and window title clear. Before, they stayed until the agent had fully shut down, which takes about 2 seconds for Claude Code. A message you send in that moment is queued and runs once the stopped turn has ended. It is never steered into the turn you stopped. If the server reports that nothing was stopped, the session shows as running again.

  • Terminal on phones: The terminal sheet now stops above where the on-screen keyboard opens, so typing never hides the prompt, and with the keyboard up it fills the space above it. The tab row no longer stretches into an empty band. A key row under the terminal adds ^C to stop a running process, plus Esc, Tab and arrow keys; tapping them does not open or close the keyboard.

Server 1.22.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 21:11

Changed

  • Markdown previews show the HTML in the file: READMEs that use HTML, such as centered <p align="center"> blocks, <h1 align="center">, badge rows, <img width> and <details>, now look the way they do on GitHub in the file preview and the editor's Preview tab, instead of losing those parts. Images with relative paths like docs/screenshot.webp load from the workspace, and <picture> light and dark screenshots follow Prokop's theme. HTML is cleaned to GitHub's allowlist, so scripts, event handlers and inline styles never run. Agent replies in the conversation are unchanged.

  • Pull requests load faster: Opening a GitHub pull request made about nine GitHub requests, most of them one after another, and each file on the Files tab made three more, so every click waited one to two seconds. A pull request now loads in one request (about 0.8 s), its changed files load at the same time, and opening a file needs no request because its diff comes with the file list. The title, state and branches show right away from the list while the rest loads, and resting the pointer on a pull request in the list starts loading it before you click. Prokop still uses your gh sign-in: it reads the token once and calls GitHub directly instead of starting gh for every request. Signing in with another account through gh auth switch takes effect within 10 seconds. On Azure DevOps, your account is no longer looked up twice for every request.

  • Start pipelines from a pull request: Checks that wait for you now have a button in the pull request's Checks list, so you no longer need to open the provider's website for them. On Azure DevOps, a build policy that blocks completion shows Queue when it has not run yet (manual-only policies), has expired, was built for an older commit, or failed. On GitHub, a failed Actions job shows Re-run, which re-runs only that job. A workflow waiting for approval, such as one from a fork or a first-time contributor, shows Approve and run. A job waiting on a protected environment you can review shows Approve and Reject. Approvals ask for confirmation first because they run or deploy someone's code. Prokop checks that each pipeline belongs to the commit you are reviewing before starting it, and your provider permissions still apply.

  • File and terminal references in the chat box: Picking a file after @ puts a chip in the message instead of @path text, and the chip stays a chip when the message is sent: click it to open the file. Typing @ alone lists the files with Git changes. After that, matching is fuzzy (stok finds sessionToken.ts), files with uncommitted changes rank higher, and search covers the session's worktree instead of the main checkout. Tab on a folder keeps searching inside it. Select text in a terminal and press Add to chat to attach that output as a chip; click the chip to see what was captured. Agents receive files as a markdown link to the path and terminal output in a block at the end of the message, so Prokop, Claude Code and Codex sessions all read them the same way. Copying a sent message gives plain paths with the terminal output in code blocks. Editing a message keeps its terminal output. Session titles ignore captured output. Shift+Enter still starts a new line, and text copied from the chat box pastes back with its chips.

  • Copy pull request comments as markdown: The Activity tab of a pull request has Copy unresolved, which copies every unresolved review thread as one markdown document. Threads are ordered by file and line, each under a src/file.ts:42 heading, with every reply and its author. Paste it into a session to have an agent work through the feedback. Copy all also includes resolved and outdated threads, marked as such, and the general conversation. Each comment also has its own copy button. A comment on a file copies under its src/file.ts:42 heading with its author, and a general comment copies as written.

Fixed

  • Multi-line shell commands get the right permission check: A command whose lines were separate commands was checked as one, so ls followed by rm -rf ~ on the next line was not caught as destructive and could run without asking in Full mode. Each line is now checked as its own command, like commands joined with ;. Heredoc bodies, such as a Python script passed with python3 - <<'EOF', are treated as input instead of commands and paths, so a long script line no longer makes the permission check fail with "name too long". A heredoc fed to a shell (bash <<'EOF') is still checked as the script it runs. If a command ever cannot be analyzed, Prokop now asks you instead of failing the tool call.

  • Deleting a scheduled job deletes its runs: Deleting a scheduled job left every session its runs created in the Scheduled list, with no job to manage them and no way to delete them. Deleting a job now also deletes those sessions, after a confirmation. Runs already left behind by a deleted job show under the job's name, marked "Job deleted", with a "Delete runs" action that removes them.

  • Claude Code questions wait for your answer: When Claude asked a multiple-choice question with its AskUserQuestion tool, Prokop let the tool run with no answer, so Claude carried on without your choice. The question now shows as a question card in the conversation, like questions from Prokop agents, and Claude continues with the options you pick (one, or several for multi-select questions). It appears at every permission mode, including Full. Sessions with no controlling window, such as scheduled runs, refuse the question right away.

  • Approving a command after a minute no longer fails: Time spent waiting for your approval counted against the tool's own time limit, so a shell command approved after more than a minute failed with "Tool execution timed out after 60000ms", and file reads or edits that asked for permission failed even sooner. A tool's time limit now pauses while it waits for your answer and covers only its own work. Approvals still expire after 30 minutes.

  • Sessions created through the API belong to their agent: A session created with POST /api/sessions (or the SDK's sessions.create) as an agent was not recorded as that agent's session, unlike one started from the app. An agent's search across its own sessions in every workspace never found it. Such sessions now belong to the agent they start as, so that search includes them.

  • Refreshing the file tree updates open ignored folders: Ignored folders such as build output load their contents when you open them, and Refresh did not load them again, so new files did not appear and deleted ones stayed until the client was reopened. Refresh now reloads every open ignored folder, adding new files and removing deleted ones.

Server 1.21.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 15:32

Changed

  • Long conversations are easier to follow: Two or more tool calls in a row fold into one line that names the tools and shows failures, lines added and removed, and how long they took. The line stays open while the agent works in it and folds when the reply continues, and clicking it keeps it the way you left it. The agent's progress notes between tool calls stay visible. Finished thinking folds to "Thought for 12s". Each tool shows how long it took, a timer while it runs, why it was stopped, and the first line of its error without opening it. Hovering a reply shows its model, duration, and token count. The prompt map beside the conversation also marks failed turns and compaction points. This works for existing conversations too.
  • Scrolling up during a reply stops following right away: Any scroll up (wheel, trackpad, touch, scrollbar, arrow keys, Page Up, Home, selecting text, or jumping to a find match) stops following on the first move, even while a long reply streams quickly, instead of being pulled back to the bottom. A sideways swipe in a code block no longer stops following. While you read earlier messages, a "Latest" button appears with a dot when new output arrives, and clicking it (or Cmd+Shift+F) follows again. Switching to another session and back returns you to where you were reading.
  • Your prompt appears the moment you send it: The prompt shows in the conversation right away instead of after the agent finishes preparing the turn, which took longest in Claude Code and Codex sessions. If it takes a moment to confirm, a small "Sending" mark appears under it. If it cannot be sent, it stays in the conversation marked Not sent with the reason, plus Retry, Edit (puts the text back in the input), and Discard. Retrying never sends a prompt twice.
  • Images open in the file preview: PNG, JPEG, GIF, WebP, AVIF, BMP, ICO, SVG and other images up to 10 MB show in the preview instead of "Binary file", on a checkerboard so transparency is visible. Click to switch between fitting the window and actual size; small icons are scaled up sharply. Images always open in the preview from the file tree, whatever the default open mode.
  • SVG files can be edited: SVGs open in the editor like other source files, with a Preview tab that shows unsaved changes, and the Changes view shows their text differences.
  • The file tree shows ignored files: Files and folders ignored by Git (and node_modules) appear on a faint tinted background with muted names, as in JetBrains IDEs. node_modules, dist, build and .next are visible again instead of hidden. Ignored folders are not scanned up front: their contents load one level at a time when you open them, so large dependency or build folders do not slow the tree down, and folders that only contain ignored files no longer look changed.
  • Quieter tool rows: Shell commands that succeed no longer show a [0] exit code; failing ones still show theirs.
  • Command approvals show what needs review: The approval card shows the command once, one pipeline stage per line, and highlights the part that needs review (for example rm -rf after xargs), with a plain reason beside it such as "deletes recursively or without confirmation". Stages that need no review are dimmed. Destructive and secret-related commands use an amber card, and red is kept for commands that could wipe the system. Allow Once is the main button, and Block is a quiet button at the end of the row.
  • Usage stays current on its own: While the Usage panel is open, Codex accounts and DeepSeek, Z.AI and MiniMax refresh every minute, and the Claude Code and Codex CLI cards every 5 minutes, so usage spent on another computer with a shared account shows up without clicking refresh. All cards also refresh when a session finishes and when you return to the window. Each card shows how old its numbers are ("just now", "4m ago"). Refreshing pauses while the window is hidden.

Fixed

  • Commands using xargs no longer ask for approval for no reason: Every command containing xargs, such as grep -rl foo src | xargs grep -L bar, was marked Destructive with "dangerous token inside executed xargs arguments" and could only be allowed once, because xargs counted as a dangerous word itself. The command xargs runs is now checked like any other command: searches and counts run without asking, and xargs rm -rf, paths outside the workspace or secret files still ask.

  • GitHub pull requests in renamed or transferred repositories can be merged again: When a checkout's remote still used the repository's old name or owner, the PR list and details loaded, but merging, closing, editing, reviewing, commenting and creating a PR failed with "Provider command failed", because GitHub sends writes to the old name a redirect that GitHub CLI does not follow. Writes now go to the repository's current name, which GitHub reports. If a provider still answers with a redirect, the error says the repository moved and to update the git remote URL.

  • Worktree sessions use the workspace's memory and skills: Sessions in a worktree read memory (MEMORY.md, USER.md) and workspace skills from the worktree folder. Memory there starts empty because it is not in Git, and new memories were saved there and lost with the worktree. Prokop, Claude Code and Codex sessions in a worktree now read and save the main workspace's memory, and Prokop sessions use its skills, so an edit made in any worktree applies to the whole workspace.

  • Claude Code and Codex can be picked in agent homes and Prokop-created workspaces: The model picker hid Claude Code and Codex in agent homes and in workspaces Prokop created for you (such as the first default workspace), and the server refused to switch them. These workspaces have a real folder, so both CLIs are now offered there like in any other workspace. They are only unavailable when the workspace folder no longer exists.

  • Claude Code and Codex sessions get titles without a Prokop model: Without a model set up in Prokop, every finished turn showed "Title generation failed" and the session stayed "New session". Claude Code sessions now use the title Claude Code writes for its own sessions, with no extra model call. When no title is available yet, the first words of your first prompt become the title, and a later turn replaces it once a better title exists. Sessions you renamed are never retitled. A configured Prokop model is still used first. Automatic titling no longer shows errors; only Regenerate title reports a failure.

  • Branches pushed from a terminal no longer stay "Not published": A branch pushed outside the Branches tab (for example git push origin feature without -u, or from another clone) used to show Not published forever, and Fetch and Push could not fix it because there was nothing to push. When the remote has a branch with the same name, the Branches tab now shows "On origin/feature, not tracked" with a Track button. Push review offers Track too when the remote branch already exists. Tracking fetches that one branch first, so it works even if this checkout never fetched it, and it never replaces an upstream that is already set.

  • Pushes with slow pre-push hooks finish, and failures say why: Pushes whose pre-push hook took more than 10 seconds failed in the app with a lost connection while Git kept running on the server. Git actions now wait for Git, which stops a push after 10 minutes instead of 2. While a push runs, the elapsed time is shown. A failed push says whether the pre-push hook failed, the push timed out while the hook was probably still running, or the remote refused it, and a "Git output" section shows the last lines Git and the hook printed (passwords and tokens in URLs are masked). Push review and Commit & push have a "Run pre-push hooks" checkbox, and a hook failure or timeout offers "Push without hooks" for the same reviewed commit.

  • Edit, Undo and Fork work after forking a Claude Code conversation at a prompt: A fork made at one of your prompts ends with that prompt unanswered. Sending another message there used to break Edit, Undo and Fork in that conversation with "Claude conversation cannot be edited at this point". They now work, and the unanswered prompt itself can be edited too. Forks already in that state work again too.

  • Codex and Claude Code sessions keep working after a CLI update: Updating Codex (for example with Homebrew) or Claude Code used to lock every existing session, with "Codex failed during CLI version check" or "Claude turn requires reconciliation or its workspace/CLI changed". Sessions now continue with the updated CLI, including edit, undo, compact, fork and child agents. A changed project folder or an unfinished turn still blocks as before. If the new Codex cannot reopen an older conversation, the error names both versions and suggests starting a new session. Sessions locked by an earlier update work again on their next message. New status notices from newer Claude Code releases (such as a session title change) no longer fail the turn with "Claude CLI event outside turn".

  • Busy database no longer breaks Claude Code sessions: When another process briefly held the database (a sqlite3 shell or a test run), a turn could fail with "database is locked" and leave the session refusing every later prompt with "requires reconciliation". The server now waits up to 5 seconds for the database instead of failing right away. Server tests now run against a temporary data folder and never open your real ~/.prokopai database.

  • Edit opens files changed by Claude Code and Codex: Opening a file from an edit or code preview in the conversation and choosing Edit failed for files changed in Claude Code and Codex sessions, while the preview itself worked. It now opens in the editor, in the same tab as when opened from the file tree.

  • Prompts sent while disconnected are no longer lost: Sendin...

Read more

Server 1.20.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:24

Added

  • Remote access in one place: Settings → Devices → Remote access (or prokop remote) turns network access on or off, sets up Tailscale HTTPS in one click, and saves addresses for other VPNs, proxies, and tunnels. Changes apply immediately without restarting Prokop.
  • One workspace list for all your machines: With two or more machines saved, the workspace switcher lists every machine's workspaces. Picking one switches machines in one step, and offline machines show their last known workspaces.
  • Sessions from several machines side by side: Open a session from another machine as a tab next to this machine's sessions, from its prompt or from the new Other machines section in the Overview. Chat, approvals, and stopping work as usual while it keeps running on its own machine.
  • Never miss an approval on another machine: While you work on one machine, Prokop tells you when a session on another machine needs an approval or an answer, or finishes. Open it from the prompt, or see the count in the workspace switcher.
  • Addresses switch automatically: After connecting once, the client learns each machine's addresses (such as LAN and Tailscale) and switches when one stops answering. Duplicate entries for the same machine are merged. Switching machines reuses the address that already works and loads the other machine's workspace data as soon as you open the workspace switcher, so an unreachable home address no longer slows down every switch.
  • The installed app opens where you left off: Launching Prokop returns to the last view and open tabs on that machine. The window title shows the open session and workspace, with a dot while an agent works or waits for you. Clicking the app icon again focuses the open window instead of opening another, and right-clicking it offers New session and Overview. The app also asks the browser to keep its stored data.
  • Pair your phone or another computer: Open Prokop on the other device and approve it from the prompt on your computer, matching a four-digit code. You can also scan a QR code from Settings → Devices or prokop pair. Paired devices stay signed in for 30 days after their last use, and you can remove any of them in Settings → Devices or with prokop auth revoke.

Changed

  • Local only by default: The server now listens on 127.0.0.1 instead of every network interface, so other devices on your Wi-Fi can no longer reach it unless you choose to share it. To use Prokop from another device, turn on remote access in Settings → Devices or with prokop remote on, then pair the device. Nothing changes when you use Prokop on the same machine.
  • The app feels like a desktop app: Startup and connecting show the app frame instead of a full-window spinner, and opening a conversation no longer flashes a loading spinner. In the installed app with the title bar hidden, the header is the title bar and drags the window. Interface text no longer selects when you drag across it (conversations, code, and errors still do), the browser's own right-click menu stays out of the interface (Shift+right-click still opens it), buttons and menus no longer jump or zoom, and every tooltip uses the same style and delay.
  • Steadier sessions and sidebar: Opening a session shows it in one step, and the session you click is highlighted immediately. Updates from running sessions or other devices no longer re-render the whole workspace. Sessions stay in their place in the list when you open them, and switching workspaces shows the full session list at once instead of an empty list that fills in.
  • Worktrees and finished sessions are easier to spot: Each worktree has its own color, shown as a chip with its name next to the session title and a thin edge along its sessions. Sessions in the main checkout show neither. The session list can group sessions by checkout (Active → … → Group by → Checkout), remembered per workspace. A session that finishes while you are not looking at it stays marked as Finished or Failed, with a bold title, until you open it, instead of a short green flash. Working sessions show a small spinner. In the Overview, each workspace's header stays pinned while you scroll through its sessions, with a guide line running down beside them, and the open session's header shows which workspace it belongs to. Each repository's header in the Overview has a Pull requests button. Pull requests open as one tab per workspace, like files, so several workspaces' pull requests can be open side by side.
  • Switching between projects no longer stalls: Opening a session from another project keeps the file tree, Changes, Branches, and terminals of your last three projects ready instead of rebuilding them, so switching back is immediate and keeps expanded folders, scroll position, and terminal tabs.
  • Code and diffs no longer slow down the interface: Syntax highlighting for code blocks and diffs in conversations, commits, pull requests, and file previews runs in the background instead of blocking scrolling and typing. Scrolling back through a long conversation reuses code that was already highlighted. Commit and pull request diffs now use the same colors as the rest of the app. On the server, showing, uploading, and deleting attached images and files no longer pauses other requests and running sessions, and images sent to Claude are read the same way.
  • Pairing replaces the API token field: Add Server asks only for a name and an address (or a pairing link). A machine that requires pairing shows the pairing screen when you open it. Machines already saved with a token keep working, and PROKOPAI_AUTH_TOKEN remains for scripts and the CLI.

Fixed

  • Deleting a session also deletes its subagent sessions: Subagent sessions used to stay behind after their parent was deleted, out of sight but still taking up space and appearing in session search. Deleting a session now removes its subagents too, and the next start removes the ones left over from earlier deletions (this one-time cleanup can make that start take longer).
  • The selected session no longer flickers when switching sessions: Switching quickly between sessions, in the same project or another one, keeps the one you picked highlighted instead of briefly highlighting the previous one or none.
  • Live alerts and pairing requests stay connected: The streams that report approvals and finished sessions on other machines, and the wait for a pairing approval, are no longer cut every 10 seconds when nothing changes. The browser console no longer fills with ERR_INCOMPLETE_CHUNKED_ENCODING for /api/attention/events.
  • The installed app's title bar keeps the theme color after a reload: Pressing F5 no longer turns the title bar back to the default gray.
  • Opening Prokop over plain HTTP from another device works: The app no longer shows a blank page when opened at a LAN or VPN address without HTTPS. Installing the app and notifications still need HTTPS.

Security

  • Websites can no longer drive your local server: Other websites open in your browser, including DNS-rebinding pages, are refused when they try to call Prokop. The built-in client, local dev servers, the browser extension, and the CLI keep working without a login. A proxy or tailscale serve on the same machine works once its address is added in Remote access; the machine's own Tailscale name is recognized automatically.
  • Other devices need pairing: A server shared on the network no longer accepts other devices without pairing or PROKOPAI_AUTH_TOKEN. Set PROKOPAI_AUTH=off to keep open access on an isolated network.
  • Tokens stay out of URLs: WebSocket connections from paired devices use short-lived single-use tickets instead of a token in the URL.

Server 1.19.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 16:12

Added

  • Pull requests: Browse, create, review, and merge GitHub and Azure DevOps pull requests without leaving your workspace. Open Pull requests beside the workspace selector to review changes, leave inline comments, and check review and build status.
  • Azure DevOps sign-in: Connect to organizations in a different Microsoft tenant from your default Azure sign-in. Missing access now shows the sign-in command you need, and the Azure DevOps CLI extension is no longer required.

Changed

  • Cleaner settings: Settings use consistent controls and compact lists. Agent rows show their selected model, and settings that do not apply to Claude Code or Codex are clearly marked.
  • Notification settings: Sounds and system notifications now have their own Notifications section instead of living under Appearance.

Fixed

  • Agent settings: Unsaved edits survive section switches, selecting a new default agent works, and duplicating an agent preserves its memory and skills settings. Reloading agent data now refreshes memory and skills, and tool selection summaries are clearer.
  • Session headers: Model selectors use the space available in each pane instead of collapsing just because multiple sessions are open.
  • Fewer repeated requests: Claude and Codex model pickers no longer reload on every session update, and navigating within a server avoids repeatedly fetching workspace and settings data.
  • Claude Code background tasks: Sessions wait up to 10 minutes for background commands to finish so Claude can report their results. Starting the next message also no longer fails when a previous session left background tasks behind.
  • Windows console windows: Running Git, Claude, Codex, or opening the browser no longer causes extra console windows to pop up.

Server 1.18.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 15:06

Added

  • Claude Code sessions: Run a session on the installed claude CLI with its existing login. Pick the model and effort in the session picker. Claude's built-in tools, including Agent subagents, run through Prokop permission checks, and subagent activity is saved in linked sessions. Sessions support image uploads, Stop, native /goal, manual compaction, fork, and Edit and Undo. Workspace memory, agent memory, session search, and agent skill management are available as tools, and the selected agent's prompt, home, and memory are added to Claude's system prompt.

  • Codex CLI sessions: Run a session on the installed codex CLI (0.156.0 or newer). Command and file-change approvals go through Prokop asks, and Codex subagents are saved as linked, read-only timelines. Sessions support image uploads, native Goals with a token budget, manual compaction, fork, Edit, and Undo. Workspace memory, agent memory, session search, and agent skill management are available as tools, and the selected agent's instructions and memory are supplied on every thread start and resume.

  • One model picker for every harness: Choose Prokop, Codex, or Claude models from one picker with a harness rail. The first message locks a session's harness; model and effort stay changeable within it. Agents can pin a model from any harness, and a plain New Session follows the default agent's pin.

  • Harness settings: Settings → Server → Harnesses shows each CLI's installed version and lets you disable Codex CLI or Claude CLI for new sessions and scheduled jobs. Existing sessions keep running.

  • Plan usage: Settings → Usage shows the 5-hour, weekly, and per-model limits of the Claude CLI and Codex CLI logins, with reset times. API-key logins show a note instead of bars.

  • Agents out of the box: Every primary agent gets memory, skills, learning, and a home workspace automatically, with no promote step. Settings → Agents manages each agent's capabilities, learning, and home USER.md and MEMORY.md.

  • Learning on any harness: A learner pinned to a Codex or Claude model runs its reviews on that harness. These reviews cannot be undone from history.

  • Branches history: History draws a commit rail that marks commits to push (green), commits to pull (amber), and shared commits, with branch chips, the upstream position, and day headings. The sync line reads "3 to push", "1 to pull", "Diverged", or "Up to date", and its counts open Push and Pull. "Fetched 12m ago" sits next to a fetch button, and counts dim after an hour without a fetch. The branch picker gains a Recent group.

  • Notifications for Claude and Codex: Finished replies and permission asks in Claude Code and Codex CLI sessions now send web-push notifications, following the same rules as Prokop sessions.

  • Session titles for every harness: Claude Code and Codex CLI sessions get generated titles after a turn, like Prokop sessions.

  • Diagnostics: Server logs record each Claude and Codex turn's start, finish, or failure, with the failure phase and the end of the CLI's stderr. Setting PROKOPAI_PERF_DIAGNOSTICS=true also logs event-loop stalls with the requests and events that ran during them. Prompt and reply content is never logged.

Changed

  • Permission modes: Standard, Extended, and Full replace the five-level auto-approve setting for sessions, workspaces, and scheduled jobs. Commands and file operations ask only for a concrete concern: outside the workspace, secrets, destructive, or running unknown code. Asks show that concern and its evidence. Catastrophic commands such as rm -rf /* ask in every mode, and all three harnesses apply the same rules. Paths in the agent's own directory and the workspace's additional paths no longer ask as outside the workspace.

  • Live updates without polling: Git status, the file tree, scheduled jobs, session lists, and running indicators are pushed by the server to every open client, including changes made by subagents and other sessions. The Files refresh button recomputes instead of re-reading a cache. Commits typed in a terminal and edits from an external editor appear on window focus or the next tool call.

  • Faster Claude and Codex sessions: The server no longer stalls while CLI sessions stream, the model picker no longer waits on a CLI start after the first load, and streamed text finishes each part before the next one appears.

  • Built-in tools: The catalog drops from 24 to 18 tools. edit, edit-range, and multiedit merge into one edit tool, todowrite and todoread merge into todo, and ls, apply-patch, and git-worktree are removed.

  • Tool rows: Claude and Codex tool rows use the same names and views as Prokop tools: shell output, diffs, code, file lists, and todo lists. Long tool output scrolls inside its row on screens 640px and wider.

  • Settings layout: Settings group into Preferences, Server, and Prokop. Providers & Models becomes one card per provider with its connection and models. The agent editor collapses its sections, Auto-Approve merges into Permissions, the Files tab moves into Appearance, and Account is renamed System. Memory, Skills, and Session Search merge into one Agent Tools panel, and session search is always on.

  • Model variants: A Prokop session on a model with variants always has a concrete variant; the "Default" option is gone. Providers & Models sets the default variant for the default model.

  • Terminal panel: The terminal opens and closes only from the app header. Running terminals keep running while it is hidden.

  • Agents naming: "Preconfigs" are called "agents" throughout the app.

Fixed

  • Claude and Codex sessions recover from failures: A usage limit, API error, Stop, or failed Edit or Undo no longer leaves a session that refuses every message. Error messages include the CLI's own text, such as the limit reset time, and say how to recover.

  • New sessions open themselves: Creating a session no longer opens a subagent session or a session created on another device at the same moment.

  • Claude model names: Claude Code 2.1 model pickers show model names again instead of their descriptions.

  • Claude turns and transcripts: Turns no longer fail when Claude Code is open in another terminal, and text written after a tool call appears after that tool's row.

  • Agent learning for Claude and Codex: Agent learning now picks up Claude and Codex sessions and actually runs reviews on those harnesses. Learning history links open their sessions.

  • Tool row display: Claude Read rows no longer show the file as an overwrite, and Codex shell rows without output no longer show "".

Removed

  • Provider editing: Providers can no longer be created, renamed, or deleted in the app or through the API (including the SDK createProvider, updateProvider, and deleteProvider methods). Providers come from ~/.prokopai/models.json or a registry Sync. Model editing is unchanged.

  • OpenAI API and plain Z.AI providers: The catalog keeps DeepSeek, MiniMax, Z.AI (Coding Plan), and Codex. Existing OpenAI entries in models.json show as an unsupported provider that can be deleted.

  • Model cost tiers: Budget, standard, and premium badges and the Tier field are gone. Existing models.json files still load.

  • Capability risk levels: Memory, Skills, and Session Search are on or off, with no per-capability risk setting.

  • Agent scheduler tool and Workflow capability: Agents can no longer schedule jobs themselves, and the Workflow and Scheduling workspace capabilities are removed. Scheduling jobs from the app is unchanged.

Operational notes

  • One-time permission migration: On first start, saved permission grants are cleared and existing settings map to the new modes: high to Full, medium to Extended, everything else to Standard.

  • CLI requirements: Claude Code sessions need Claude CLI 2.1.259 or newer, and Codex CLI sessions need Codex CLI 0.156.0 or newer, each already logged in on the server host. CLI sessions accept image attachments only.

  • CLI upgrades: Claude Code and Codex CLI sessions are bound to the CLI version that started them. After the CLI updates, existing sessions refuse new messages. For a Claude session, editing its first message starts it over.

Server 1.17.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 18:01

Changed

  • Pre-experiment context assembly restored: Restored ordinary memory and skill handling and pinned the Čapek runtime to 1.0.13. Existing memory files and conversations are preserved.

Removed

  • JEV context-selection experiment: Removed TypeSafe relevance scoring, experimental settings, automatic memory filtering and skill preloading, per-response context inspection, and the associated API endpoints and dependency. The experimental assembler no longer runs when selection is disabled.

Server 1.17.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 13:26

Added

  • Experimental memory and skill selection: Enable task-aware context selection in Settings → Experimental after configuring a TypeSafe API key under LLM providers. Prokop scores eligible memory entries and skills against the request and bounded conversation context, then includes qualifying memories and preloads selected skill bodies. Preferences and system instructions remain included, and workspace memory access settings still apply. The feature is disabled by default and sends task text, recent conversation, eligible memories, and skill content to TypeSafe when enabled.

  • Configurable relevance acceptance: Choose a minimum relevance level and required probability. Defaults accept candidates with at least a 70% combined probability of level 2 (directly useful) or above, rather than requiring an average score of 2. Qualifying candidates remain subject to separate memory and skill character budgets. Changes apply server-wide to subsequent responses without restarting.

  • Per-response Context details: Inspect the memories, preferences, and skill bodies assembled for a response. Technical details show qualifying probabilities, selection settings, exclusions, and content revisions. Snapshots preserve the content used at assembly time; they do not assert provider delivery or compliance. Historical snapshots remain readable.

  • Expanded memory capacity: Enabling experimental selection raises workspace and agent MEMORY.md capacity to 50,000 characters each, while responses retain a 5,000-character ordinary-memory budget. USER.md remains limited to 1,500 characters. Disabling selection restores the 2,500-character write limit without truncating saved files. Selection failures and timeouts use bounded fallback memory.

Changed

  • DeepSeek Flash image capability: The bundled model configuration now declares image input support alongside text.

Operational notes

  • Selection diagnostics contain private context: Server logs include serialized TypeSafe scoring requests and mapped results for debugging. These can contain conversation text, memories, and skill content. The configured TypeSafe key is redacted, but other secrets within content are not automatically detected. Treat these logs as sensitive.

Server 1.16.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 15:49

Changed

  • Load archived and scheduled sessions on demand: Archived and Scheduled start collapsed when entering a workspace, showing session counts without fetching their lists. Expand either category to load its sessions, with separate pagination and retry controls. Only normal active sessions are listed on initial load, including in Overview. Counts refresh through session events and reconnect handling, without polling. Scheduled-job controls remain available, and archived bulk deletion is labelled Delete loaded sessions to distinguish it from deleting the entire archive.

  • Consistent session category headers: Scheduled now uses the same compact uppercase label, chevron, spacing, and muted inline count as Active and Archived. Its three-dot menu remains visible, including on mobile.

Added

  • Multiple Codex subscriptions: Save several ChatGPT logins under Settings → LLM providers → Account subscriptions. Use Add account to connect another login, then select it to make it active server-wide, with no Save button. Adding an account preserves the current selection. Existing logins are retained, and signing in again with the same ChatGPT account and user identity updates that entry. Switching applies to new Codex runs; ongoing model invocations and their retries stay on the original account. Account changes update other open clients without polling. Removing the active account leaves the others saved but unselected, with no automatic fallback.

  • Per-workspace session ordering: Choose whether tagged groups appear above or below untagged sessions. Change the order immediately from the session panel’s Active → ⋯ menu, or choose Tagged first or Untagged first in Workspace Settings → Sessions and save. The preference is saved per workspace and also applies in the overview. Tagged-first remains the default, and ordering within each group is unchanged.

  • Workspace sorting: Order the workspace selector by name (A to Z or Z to A), newest added, oldest added, or recently active. Change the order with the small sort button beside workspace search or in Settings → Appearance → Workspace order. The preference is saved on this device across servers, with newest added as the default. Workspaces and Agent homes stay in separate groups. Recently active uses the latest user or assistant message, not opening or renaming a session. Activity updates arrive live and refresh after reconnect, without moving rows while the selector is open.

  • Optional commit hooks: The commit form now includes a Run commit hooks checkbox, checked by default. Uncheck it to skip repository hooks for that commit, including when using Commit & push or Commit & force push. The option resets after a successful commit and does not change repository configuration. Commit signing, selected-file safeguards, and unrelated staged changes remain intact.

Server 1.15.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 07:20

Added

  • Automatic update notices: The client checks for a newer server version when connecting, then checks again on browser focus or reconnect when the cached result is over one hour old. Checks do not poll in the background. When an update is available, a small dot appears on the settings cog, its tooltip shows the available version and update command, and the settings dropdown includes instructions accessible without hovering. A quiet, eight-second toast appears once per server and available version per browser tab. Run prokop update in a terminal on the machine hosting the server to update; nothing is installed automatically.
  • Published-release validation: Update checks compare the running server's /api/info version with packages/server/VERSION on the capek-dev/prokop GitHub repository's main branch. The matching server/vX.Y.Z release must be published, non-draft, and non-prerelease before an update is advertised. A version bump without a published release does not trigger a notice. Failed checks remain quiet.
  • Development version behavior: In development, the running server normally reads its version from the local packages/server/VERSION file. Checks compare semantic version numbers, not commits or the client package version. Equal or newer local versions do not trigger notices, and unrecognized versions such as 0.0.0-dev are excluded. These server update notices are separate from the existing PWA refresh flow.

Fixed

  • Separate instance data directories: prokop start now forwards the resolved data directory to the background server using both PROKOPAI_DATA_DIR and the legacy JEAN2_DATA_DIR. Previously, an instance launched with a custom data directory could listen on the requested port while loading the default production database and configuration instead. The background server now uses the same data root as its parent process's PID and log files.