Changelog
All notable changes to this project will be documented in this file.
Unreleased
Breaking Changes
A document task's latexdiff results and missing outputs moved out of its log.
texra run --output-format ndjsonno longer streams them as separate log records; they arrive with the task's documents, in itsplugin.factprogress records, per revision, beside the reply each revision kept. The task panel and the terminal show both under each revision's files. Tasks run by an earlier build are listed as such and are not resumed.The trace viewer refuses a trace an earlier build exported. A trace whose document results this build cannot read is refused as exported by an incompatible TeXRA version, instead of opening or failing while it renders.
SDK: the workflow phase stage is gone. No producer has opened one since the workflow engine left:
openStagetakes no'phase'kind and noindex/total, a task group carries neither, and the transcript has nophaserow. A script'sphase()titles still group its calls. Runs written by an earlier build are listed as such and are not resumed.A prompt's
{% include %}reads no file. Prompts render from their own text alone, so an include fails as "template not found" instead of reading a file relative to the process's working directory.SDK:
harnessBuiltinsis the list itself.harnessBuiltins.allis nowharnessBuiltins, andharnessBuiltins.minimalis gone: for files and the shell alone, keep the plugin whoseidisfile-ops.SDK: a recipe's result is its
structuredvalue;output.documentsis gone. Every run's output is{ response, files, structured? }: a recipe's return value isstructured, which the plugin owning its block reads (AgentBlock.result: the value's schema, its delivery body and the files it changed). A document task's documents, diffs included, are that value, and their diffs are computed when the task proposes, for every launch.texra run --output-format jsonstill reports a document task's documents asoutput.documents. A subagent delivery names its kind by the block key (kind="task", waskind="document-task"). Runs written by an earlier build are listed as such and are not resumed. An older window is refused by a newer service and asked to update.Only a document task's proposed revision carries diffs. Earlier revisions' files no longer have a
diff=attribute in a subagent delivery or an entry intexra run --output-format json'sdocuments.diffs; the proposed revision's diffs are still against the pre-run snapshot.A store this build wrote is refused by an earlier build. Going back to an older build after this one refuses the whole store as newer than that build (
DatabaseStoreNewer) rather than reading it wrong.SDK: a task's options travel with its recipe, not as
toolConfig.AgentConfig.toolConfigis gone: a recipe'sscriptnow names its plugin's block (block) and carries that task'soptions, which only the plugin reads, and a task proposal carriesoptionsin place oftoolConfig.ChildLaunch.task.toolConfigisoptions. Runs written by an earlier build are listed as such and are not resumed. An older window is refused by a newer service and asked to update.SDK: document tasks are TeXRA's, not the harness's. The harness no longer reads an agent file's
task:block: a plugin owns a block of its own (Plugin.agentBlock, anAgentBlockwith its key and schema, read withagentBlockOffrom@texra-ai/harness/plugins), and an agent carrying one is a task, which that plugin launches on its recipe. A session view'sdocumentTaskisrecipe(a run opened on a plugin's recipe), andAgentCatalogServicesnow includesToolRegistry, whose plugins' blocks a catalog scan admits; a file holding a block no listed plugin owns is refused. An older window is refused by a newer service and asked to update.A chat no longer lists output files it never writes. A chat with an agent that also defines a document task with declared outputs (ocr, transcribe_audio, paper2slide, paper2poster) recorded those outputs: a chat export's "Output files:" line and the VS Code toast shown when the progress view cannot open both named them, and a persona prompt that read
OUTPUT_FILESgot them (no bundled persona prompt does; the agent docs reserve it for task templates). Only a document task launch stamps them now; earlier runs keep what they recorded.A document task checks its files at its first revision, whichever surface launched it. A task over input files that no longer exist, or with a context
.bibover 100 KB, fails there; the.bibrefusal now names the file by its absolute path. Launches from the main view, the CLI, the desktop app and VS Code are now checked too, and a missing context file is still skipped. Its Input, Context and template-file cards appear under "Revision 1".SDK: an embedder's setting rows go to its platform, not its composition.
Sessions.layerno longer takessettings; pass them tonodePlatform({ settings }). AConfigProviderof your own must now carrycatalog: build it withsettingsCatalog(rows)from@texra-ai/harness/node, which puts your rows after the harness's. Each composition resolves settings against its own rows, so two in one process no longer share one catalog.SDK: a run whose trace cannot be read says why. A run's
eventsstream fails withTraceUnavailableinstead of ending with no events. Its reason isended(the run finished before anyone read its trace),truncated(the trace outgrew what is kept for a reader that had not attached yet) orremote(the run runs in the TeXRA service, which keeps its trace). The run's result is unaffected.A failed task in the TeXRA service always reports failure, even when the service recorded no error for it.
A VS Code window of the TeXRA service opens no session of its own. Its run actions, the toolbar's pack and clean, and every transcript export (HTML, Markdown, LaTeX) are done by the service, which holds the task while it packs or cleans. An older window is refused by a newer service and asked to update.
The desktop app opens no session of its own for a folder the TeXRA service serves. Its run actions, pack and clean, and transcript exports for that folder are done by the service, as a VS Code window's are. Only the no-folder session, and every folder when the service cannot be reached, run in the app itself.
A window of the TeXRA service keeps its project's settings in the service. A VS Code window or a desktop folder the service serves no longer opens the project's store: project settings are read and written through the service, and a store the service had to move aside (written before 1.0, or damaged) is announced in the project's window. An older window is refused by a newer service and asked to update.
An explicit
--approval-policy yolois an Auto-approve launch, in the TeXRA service too. The flag (orTEXRA_APPROVAL_POLICY=yolo) grants that run, and only that run, every approval it would open, recorded on the run; the project's policy is never changed, and the service no longer ignores it. Any other requested policy only narrows the project's: one more permissive than it (Ask over Block) is refused with a notice where it used to apply in a terminal without the service. A denial's warning names the policy that decided it./approvalintexra chatsets only that chat's policy. It no longer writes the project's policy in service mode; change that with/configor the settings view. The chat's latest run takes the change on its own approval record: Auto-approve turns its grants on, leaving Auto-approve turns them off (so the next message is asked again), and a stricter policy applies to a live run at once, even below the project's policy. Grants given from an approval card still carry across messages.An Auto-approve run asks its questions. A run started with
--approval-policy yoloin a project set to Ask presents a question for you and a model retry past its automatic attempts interactively, where it used to deny them, and denies them in a headless run.texra resumesays that a requested policy does not change the resumed task, and a project's.envno longer passesTEXRA_APPROVAL_POLICYto a nested TeXRA.A goal that grants all agent work also approves its run's plan. A run whose delegated work is granted (a goal's all-agent-work grant, or an Auto-approve launch) is asked nothing, a plan included; a Block policy still denies first.
A run that fails before it starts is reported as a launch error, not listed as a failed task. A task, subagent or background script is recorded together with its first batch of history, so one that fails before it gets there (an agent file that does not render, an attachment that cannot be read, a model that cannot be bound) leaves no entry in the task list: the CLI exits non-zero with the cause, the desktop app and the extension show the error where the task was started,
task.starton the service returns it, and the SDK'sstartfails with aRunFailurethat carries it. A parent whose subagent failed that way still receives the failure as a follow-up. A resume that fails before it reopens the task leaves the task as it was, instead of marking it failed.ProcessServicesno longer includesAgentEngine. An SDK host that builds its own layer overProcessServicesno longer provides it.Plugin tools: a narrower run, and their own services. A plugin's tool reads the run its call works for from
ToolContext, withrequireRun,callerRunand theToolRuntype from@texra-ai/harness/plugins;ToolRuncarries only what plugin tools use, and the files a run read are read-only there. A plugin's tools are typed byPluginToolServices: a tool that requires the harness's own call services no longer compiles. To launch a child agent from a tool, use theChildRunsservice (launch) from the same entry; a script's children stay within its concurrency budget. Plugin authors who importedRunCallor typed tools byToolServicesmove to these. A tool that drives an external agent process as the calling run's child registers it withChildRuns.launchProcess, and a plugin's session layer no longer reaches the session's runs. A host launches a root run withsession.runs.launch({ request, options })under itsSessionOwner, which answers whether it still holds that session withholds;runAgentis gone.SDK tool and plugin contract:
lane,armsandfacts. A tool declares where its calls run withlane: 'parallel' | 'barrier' | 'own', replacingparallelSafeandownsConcurrency. A plugin lists its own row kinds asarmson itsPluginvalue, and a tool states a fact about its run by returning it in its result'sfacts: the fact is committed with the call's result, never apart from it. A task an earlier build saved after it reached the model cannot be opened: the task list,texra history, a resume and a follow-up say it was "written by an earlier build of TeXRA; it can't be opened by this one" instead of calling it damaged or offering to resume it.Some tasks saved by an earlier build can no longer be opened. Fields nothing read were removed from the stored records, and these records are checked strictly: a document task (any run that produced revisions), a
texra run --output/--output-dirrun, and a finished subagent run (the child's own record) now read as damaged: they cannot be opened, resumed or shown in history. Other tasks are unaffected. A launch configuration'seditedFilesis ignored, like any unknown field: the edited file iseditedFile.The built-in agents ship in one directory. The split between
agents/(agents with a document task) andtool_use_agents/came from the old agent categories, and nothing reads that distinction any more: every bundled agent now lives inresources/agents/. The prompt variablesBUILTIN_WORKFLOW_DIRandBUILTIN_TOOLUSE_DIRbecome one,BUILTIN_AGENTS_DIR. A custom agent (for example a customized copy ofcreator) that still names one of the old two renders it empty, like any unknown variable.Agent files no longer inherit from each other. The
inherits:field is gone: an agent file is complete on its own, and customizing a built-in agent already gives you a full copy. A custom agent file that still hasinherits:is not listed; the Agents tab andtexra agentsshow it as an issue naming the unrecognized key. No built-in agent used it./logintakeschatgptorgrokonly. The undocumented spellingscodex,subscription,xaiandsupergrokare gone; one of them now shows the/loginusage instead of signing in.Task history is stored without per-turn snapshots. A task now resumes from the rows that record each fact (its configuration, its messages, its tool results), so a resumed task picks up exactly where its rows left it. Essentially every task saved by an earlier build that called a tool can no longer be resumed or opened. Its saved tool calls, retries and snapshots are in shapes this release no longer reads. Such a task stays in the task list marked as damaged, read-only; start it again to continue the work.
No more "Did it finish before TeXRA stopped?" question after a crash. When TeXRA stops while a command, an edit or another call that is not safe to repeat is running, the resumed task no longer asks you whether to run it again. The call is reported to the model as interrupted with an unknown outcome, and the model checks the result itself, asks you in the chat, or calls it again under the run's approval policy. A subagent left in an inconsistent state after a crash is resumed under its own id, or comes back as an ordinary failed call. An approval this build asked for is still waiting after a restart. A task saved by an earlier build that ever showed the old "Run again / Skip it" question is marked as damaged and cannot be resumed.
A project a newer TeXRA has saved into opens only in that version. When a newer TeXRA version has saved tasks into a project, an older one now refuses to open the project's history ("update TeXRA, or move the store aside") instead of showing those tasks as blocked, and an older window that is already open stops saving into it. A task with any damaged saved step stays in the task list marked as damaged, with a note in the log, and it cannot be opened or resumed, while every other task still works. History from before 1.0 is still set aside on first launch; the copies set aside are now kept until you remove them with
texra doctor --prune-storage, which lists every copy and every project folder that no longer exists before deleting anything.@texra-ai/harness: a run's final answer is no longer a trace event.response.finalizedleft the exportedAgentEventunion, sorun.eventsno longer carries it. It is a row of the run's own history, committed with the turn; read the answer from the run's result or its history.@texra-ai/harness: one process layer for hosts and embedders.Sessions.layernow composes the sameprocessLayerevery TeXRA host builds its runtime from, and the root entry exports it with theSessionOwnerservice,ProcessRuntimeandwithProcessServices.PlatformConflictis gone: the package keeps no process-wide session owner to conflict with, so buildSessions.layeronce per process, as any memoized layer. Releasing the layer closes every session still open.A task's approval grants are saved before they take effect. Turning "approve edits" or "run commands" on or off for a task now records the change first and only then applies it, so a crash can no longer bring back a grant you turned off. A subagent follows its parent's human grants while it is attached; a goal's auto-approval ends when the task that holds it is resumed, for its subagents too. When a display row a task published cannot be saved, the task ends as failed with the real error instead of an "artifact drain" mark; a task an earlier build ended with that mark is shown as damaged and cannot be resumed. Grants a task only inherited under an earlier build are not carried over.
One credential store for every TeXRA app; enter your keys once more. The VS Code extension and the desktop app no longer keep API keys and sign-ins in VS Code's secret storage or the system keychain. Every host, the terminal and the background service included, reads and writes one folder,
~/.texra/secrets/(one file per key), readable by your user alone (0600 files in a 0700 folder) but not keychain-encrypted. The terminal's former~/.texra/secrets.jsonis no longer read. A key saved in any TeXRA app now works in all of them, and in tasks the background service runs. Keys saved before this release are not carried over: add them again from Settings › Models,TeXRA: Set API Keyortexra auth.Agent files are flat. An agent YAML is now
name,description,tools,temperatureandpromptat the top level, plus an optionaltaskblock for an agent that revises documents:task.prefixlays out the documents,task.requestsholds one request per revision (their number is the revision count, soroundsis gone), andtask.rewrite,task.outputsandtask.filesreplaceisRewrite,defaultOutputFilesandrequiredFilesInternal. A chat agent has no request template: your message is its task, so the{{ INSTRUCTION }}boilerplate is gone. Thesettings:/prompts:nesting andagentCategoryare no longer read; a custom agent in the old format is reported as unloadable, naming the unrecognized keys. Every bundled and Lean agent and both creation templates use the new format.Workflow and tool-use agents are now one kind of agent. Every agent can chat with its tools, and one that defines a document task can also revise your files: each revision asks the agent once, then extracts, compiles and diffs its documents, and at the end you accept the revised files as before. The agent menu has Chat and Document task sections, and Settings → Agents is one list with New chat agent and New document task. A lead agent now runs another agent's document task with a separate tool from the one it chats with. In the CLI,
texra agents list --tasksreplaces--category,texra config agents --agentsreplaces--workflowand--tool-use, and bundled agents are namedbuiltIn:<name>. An interrupted document task resumes where it stopped.Outdated tools are removed: the todo list, Crossref search, DOI lookup,
texcount,arxiv_metadataandwolfram. Agents no longer keep a todo list: thetodo_writetool is gone, and with it the Todos panel in the progress view, the CLI's todo rows under the conversation (the plan summary stays, and/planshows the objective), the todo summary in/executions, and thetodosview of its history query. A Codex child's own task list is no longer shown either.crossref_searchand Copilot Chat's#texra_crossref_searchare gone, andzotero_addtakes a URL or manual metadata but no longer a DOI.arxiv_metadatais gone:arxiv_searchhits carry each paper's abstract, authors and dates. Thetexcountandwolframtools are gone; agents runtexcount -inc <file>andwolframscript -code '…'through the shell, and the Wolfram card in Settings › Plugins stays with its install guide. Custom agents that list any of these tools should drop them."Task" and "agent" are the only nouns, and
/psand/sendare gone. What you start is a task and what it starts is an agent, in all three hosts: the CLI's Tab list is the agent list (Tab agents), the exit line reads "Resume this task with:",texra resumeandtexra historyspeak of stored tasks, the Sessions button is Tasks, and the dispatch card reads "3 agents working in the background". The TUI's/psand/sendare cut: the Tab list shows the same agents by title, and typing to a focused agent (Tab or Alt+N) messages it. Raw ids leave the task rows' tooltips and the "Category:" label goes; the header menu's Copy diagnostics, now on every task, replaces Copy run context and is the one place a task's id is shown. The header's "Round 2 · 3 tool calls" chip shows only on workflow tasks, as Pass 2 of 3.Opening TeXRA lists the tasks it left interrupted, and Resume has one home. When a project, the VS Code sidebar or
texra chatopens and finds tasks a closed or crashed TeXRA left unfinished, a notice above the composer lists them by title ("2 tasks were interrupted"), with when each stopped and how many of its agents finished. Resume all continues them, a title opens that task, and Not now hides the notice until the next open; Always resume links to Settings › General. A task that cannot continue says why ("needs the zotero plugin, which is off") with Turn on or Review, which open Settings › Plugins. In the CLI the notice sits above the input and is answered with/resume allor/resume; anything you send hides it. A task's one Resume is now on its ended line: the Resume button on task rows is gone (a row says Interrupted and opens the task), the workflow menu's "Resume from saved outputs" moved to the ended line, and the CLI agent list's· Resumemarker is gone (Enter on that row still resumes). A request card whose task stopped before it was answered carries its own Resume button./resumelists tasks by title, not id.Fork and hand off; "Edit as new task" is gone. A conversation's ended line and header menu offer Fork: a new task holding the conversation, opened and waiting for your message, while the original is left as it was. Each of your messages after the first offers Fork from here (on hover): the fork holds the conversation before that message, and the message waits in its composer to change. A forked task says "Forked from task" in its header and at the top of its transcript, and the source's menu lists its forks. Hand off… in the header menu continues a running task in a fresh context that starts from text you write, or, with Clear without a summary, from your next message. In the CLI:
/fork,/handoff <text>and/reset(/clearstill starts a new task). "Edit as new task" is removed from the ended line (Fork keeps the history it dropped; the composer already starts a new task) and from the delegation row (the agent's own task has Fork).Rename a task. The header menu's Rename… (the CLI's
/rename <title>) gives a task your own title, which a later generated title does not replace.One "Connect a model" card, and one place to grant auto-approval. The welcome card is now the "Connect a model" card, and it is the one place a first install asks for a credential: the no-folder welcome view, the setup command's picker and the API-key banner no longer repeat it. Running setup without a credential opens the card (or brings it back after "Skip for now"), and the banner now shows only when a credential that worked stops working. The desktop app's startup team dialog and its Help › Choose Agent Team command are gone: the setup assistant picks the team, and Settings › Agents changes it. The task header's Auto switches are now read-only chips (Auto: edits, Auto: commands, Auto: agent work) whose × turns a grant off; grants are given on the approval card's ▾. In the CLI,
/approvalsets the policy and lists the task's grants only to turn them off,/statuslists them, and the plan card'saruns the plan as a goal that also approves edits and agent work (the old/approval"Goal: approve all work" toggle).The Multi-Agent Workflow switch is named
multi-agent. Usetexra tools enable multi-agent(ordisable,status). A stored switch under the oldworkflow-scriptname is dropped once, with a warning in the log, and the plugin is back to its default (on).Models are named by their provider's own model ID. Settings, agent files,
--modeland delegation now take names likeanthropic/claude-opus-5-5oropenai/gpt-6.1-sol, optionally with an effort:anthropic/claude-opus-5-5@high, or@noneto turn thinking off where the model allows it. The old short names (opus55,sonnet5T) are still understood when you type them. Thinking and non-thinking versions of a model are one entry now; saved per-model reasoning levels start fresh.Reasoning effort defaults to medium for every model, including Claude Code and Codex subagents, unless you or the agent choose another level. A level a model does not offer is replaced by the nearest one it does, and the run log says so.
History and settings reset once with this update, and later updates keep them. The first time this build runs, session history, saved settings, remembered desktop projects, open inquiry threads, the update-check record and CLI input history start fresh, and TeXRA says so; the old data is kept in a backup beside it and never read again. After this, an update keeps your history: a run a newer TeXRA wrote is listed as blocked ("update TeXRA to open it") instead of being hidden or cleared. Context shared by several runs is stored once per workspace, and another TeXRA process holding the history no longer freezes the window while it waits. Repository settings (the git commit identity, subagent worktrees, the Codex and Claude Code controls, and the enabled agents and teams) are now shared by every worktree of a repository on all three hosts; the CLI reads the git identity from them instead of
.texra/config.json, so set it again with/configor the settings view.TeXRA sign-in is removed from every host.
texra login,texra logout,texra auth statusand/login texraare gone, as are the VS Code sign-in, sign-out and account commands, the Account tab (the General page now opens on Privacy, which keeps the telemetry switch), the desktop sign-in dialog and thetexra://callback handler. Nothing needed the account: every agent ships bundled and model calls run on your own credential. Provider sign-ins are unchanged (texra auth chatgpt login,texra auth grok login,/loginin a chat, GitHub and Copilot).Usage logging is anonymous and needs no account. When on, each batch carries a random install ID in the
X-TeXRA-Install-Idheader instead of a sign-in token; the body is unchanged and never has prompts, paths or document text. The first host you run shows a one-time notice. Opt out withtexra.telemetry.enabled: false,TEXRA_NO_TELEMETRY=1,DO_NOT_TRACK=1(or VS Code's telemetry setting); the ID is one row in~/.texra/v1/global-storage/texra.db, and the guide gives theDELETEthat resets it. A custom agent is reported only as "custom".texra doctorshows the usage-logging row.Every agent ships bundled; hosted agents are gone. The Physicist, Mathematician, and Computer Scientist teams now work fully offline with no TeXRA sign-in: their
generic,devise,apply, andcriticizeworkflow agents are bundled, along withenhance,firstread,logic, andnotation. Each is a YAML file you can read and copy into a custom agent to change. TeXRA no longer fetches agents from an account catalog, so signing in adds no agents, the sign-in prompt for "unavailable TeXRA-hosted members" is gone, andtexra agents, the settings Agents page and the launcher no longer show a "Remote" badge. The researcher-only hosted agentselevate,humanize, andverifyFixare not bundled. Session history from earlier builds is cleared the first time this build opens a workspace; settings are kept.Agent prompt templates lose
{{ MODEL }},{{ ROUNDS }}and{{ DEFAULT_BIB_PATH }}. None of TeXRA's agents used them; a custom agent that does now renders them empty. The default bibliography is named in every tool-use request instead, and follows the setting when it changes. A mid-conversation model switch now updates the tool-call guidance the model gets, and switching off an installed plugin withdraws its skills from the next request. Session history from earlier builds is cleared the first time this build opens a workspace.Session history starts over again with this build. The first time it opens a workspace, the history an earlier build wrote is moved aside into a backup copy and TeXRA says so; runs from those builds cannot be resumed. Project documents and research files are unchanged.
Scripts reading
--output-format ndjsonprogress see each model call's spend on its own. Ausageevent now reports one model call rather than the run's total so far, so a run's cost is the sum of itsusageevents. Therun.endevent no longer repeats the run's usage or a workflow's output files; the final result record still lists the output files.Project instructions come from
AGENTS.md;.texrarulesis no longer read. Every agent's system prompt gets theAGENTS.mdat the workspace root, or~/.texra/AGENTS.mdwhen the workspace has none, the same file other coding agents read. Rename an existing.texrarulestoAGENTS.md.Some models now need OpenRouter instead of a direct vendor key — models reached with a DeepSeek, Kimi/Kimi Code, GLM, DashScope, MiniMax or xAI key use that vendor's newer API. A model the vendor does not offer there is no longer available with the vendor's key; select it through OpenRouter instead. GLM keeps its China (BigModel) and international (Z.AI) regions, and a Coding Plan key reaches the same endpoint as an API key. MiniMax's China region moves to
api.minimax.cn.delegate_agentno longer takesexecution_id— send a subagent follow-up instructions with theexecutionstool instead (action: "send"on/executions/<run id>). A custom agent whose prompt tells it to resume a subagent throughdelegate_agentshould be updated. Session history from earlier builds is cleared the first time this build opens a workspace.TeXRA 1.0 starts with new session history. Earlier conversations and saved runs remain on disk but are not imported or available to resume. Project documents and research files are unchanged. History an older build wrote is moved aside into a backup copy rather than read, and TeXRA says so when it happens; a store written by a newer TeXRA is never opened or deleted by an older one.
Session history from earlier preview builds starts over — the first time this build opens a workspace, the session history an earlier preview wrote is moved aside, as above, and TeXRA says so. Conversations and workflow runs from those builds, finished or interrupted, cannot be resumed; start them again. Project documents and research files are unchanged.
1.0 preview builds start from a clean slate — a preview does not carry over session history or other application state from TeXRA 0.40 or earlier, and going back to 0.40 does not bring what the preview created. Previews ship on their own channel, so nothing changes unless you opt in: enable pre-release versions of the extension in VS Code, install the CLI with
npm install -g @texra-ai/cli@preview, or pick a desktop installer marked pre-release. Project documents and research files are unchanged either way.Four template variables are removed from custom agents —
{{ WORKFLOW_AGENTS }},{{ TOOL_USE_AGENTS }},{% if IS_OPENAI_MODEL %}and{% if IS_GOOGLE_MODEL %}are no longer filled in when an agent's prompts are rendered. A prompt that still uses one renders it as empty, so remove it from your agent YAML.{% if IS_ANTHROPIC_MODEL %}is unchanged, and the delegation agents an agent can see is still listed in the descriptions of its delegation tools.Goal mode is a Tools plugin, and its switch replaces the
texra.goal.enabledsetting — turn Goal Mode on or off on the Tools dashboard, or withtexra tools disable goal/texra tools enable goal. Off, no agent is offered theplantool and runs open no goal turns. The old setting is no longer read, so if you had set it tofalse, Goal Mode is on again (its default) until you switch the plugin off.One streaming toggle instead of one per provider — the per-provider Streaming switches in the Models tab are gone. The global Enable streaming setting now governs every provider.
The OpenAI "Use the Responses API" setting is gone — requests to OpenAI always use the Responses API, and the classic Chat Completions fallback is removed. OpenAI models routed through OpenRouter are unaffected.
The ChatGPT-subscription input budget is now set in thousands of tokens — the setting is
texra.chatgptCodex.contextWindowKand takes272where it used to take272000(up to872). Any value you had set under the old key is not carried over; the default 272K applies until you set the new one. Every budget in play is a round thousand, and the old unit made an off-by-1000 typo land inside the valid range:872entered for 872,000 was a legal 872-token budget that put every request over the limit.TeXRA no longer uses Pandoc — the reasoning scratchpad is rendered by TeXRA's own Markdown conversion on every machine, so installing Pandoc no longer changes how it looks and TeXRA never asks for it.
The Debug mode setting no longer widens the log output —
texra.logger.debugModenow governs transcript verbosity and payload detail only. What the log surface shows is owned by the surface: the VS Code Output channel's own level filter, and the desktop log file, which keeps debug entries. The CLI gains a--verboseflag for additional debug diagnostics;--quietsuppresses diagnostics.A subagent can only narrow its parent's tools — a delegated agent that declares an MCP server its parent's run did not load is no longer launched with that server's tools quietly missing: the delegation call fails with a message naming the tools and the server, before the subagent starts. Declare the server on the parent agent to hand it down. A subagent also never gets a tool its parent was withheld because approval prompts were unavailable or the host cannot run it.
Switching off a tool plugin hides all of it — a plugin listed in
texra.tools.disabled(the Tools dashboard switch,texra tools disable) now withholds its bundled skills and bundled agents as well as its tools. Today that covers the Lean 4 plugin's skills and agents, which have no dashboard switch and are withheld only whenlean4is added to the setting. A plugin whose dependency is merely missing keeps its skills and agents listed, so the setup guidance they carry stays reachable.delegate_agent,delegate_workflowanddelegate_multi_agentsare gone;agentandscriptreplace them.agentruns any named agent, workflow or tool-use, with the options of both old delegation tools (agentNameandpromptinstead ofagentandinstruction). A multi-agent workflow is now ascriptwhoseawait agent(...)calls fan out and join in plain JavaScript (Promise.all,try/catch, loops); there are no saved script files,scriptPath,args,files,yield*helpers or per-call Restart. The built-in assistant, orchestrator, engineer, Lean orchestrator, creator and setup agents use the new tools, and the multi-agent orchestration skill and the guide are rewritten for scripts. A custom agent that still lists a removed tool no longer starts: TeXRA names the tool and the agent's file so you can change it toagent(orscriptwithagent). A customized copy of a changed built-in agent shows the usual "newer built-in" notice. The Multi-Agent Workflow switch now holdsagent, so it is on by default; if you had switched it off, switch it back on to let agents delegate.Workflow agents no longer continue a response cut off by the output limit — a round whose response hits the model's max output tokens keeps what the model wrote and processes it as that round's output, and warns that it may be incomplete: in the transcript, in
texra run's text output, and as a notice in the extension and desktop. Raise the model's max output tokens if a long document gets cut off. The extra helper-model call that joined continued pieces is gone with it.OpenRouter models now run through the official OpenRouter SDK, with fewer response details. Requests over the OpenRouter route (
openrouter-chat) now go through@openrouter/sdk. Streaming text, reasoning, tool calls, usage and cost are unchanged. The SDK does not carry some details the previous client read, so:- OpenRouter replies no longer include file annotations (the parsed-PDF cache OpenRouter returns) or URL citations, and earlier annotations are no longer sent back on the next turn, so OpenRouter may parse a PDF again.
- The provider's own finish reason (
native_finish_reason) is no longer recorded. - A stream that is cut off after the model has finished but before the closing
[DONE]marker is accepted as complete, and a usage chunk that never arrived leaves the turn without usage or cost. - An error that arrives mid-stream keeps its message only when its code is a number; a string code or unexpected error details fail the turn as malformed output instead.
- Unknown fields in a streamed chunk are ignored rather than rejected. A chunk that breaks the SDK's schema, such as a
nullwhere it expects an absent field, fails the turn as malformed output.
Saved session history from an earlier build is cleared once, since the stored shape of a model reply changed.
A cloned repository can no longer loosen your approvals. The approval policy and the two approval switches (edits, shell commands) are now read only from your own settings: per workspace, in your TeXRA storage, with a value in your user configuration file as the default for every workspace. A
.texra/config.jsonthat sets one of them is ignored, and each time the project opens the host says so naming the key (a warning dialog in VS Code and the desktop app, a message on stderr and intexra doctorin the terminal), so a project that settexra.approvalPolicy(or a switch) there needs it set again in the settings view or/config.texra initno longer asks for an approval policy or writes one.web_fetchno longer follows a redirect into your network. The connection itself refuses any address that is not public (loopback, private, link-local, cloud metadata), for the first request and every redirect hop; before, a name that resolves to127.0.0.1(such aslocalhost.) or a redirect from a public page to a private address was fetched. Behind anHTTP_PROXY/HTTPS_PROXYthe proxy resolves names, so for a proxied request only a literal IP address is refused; a hostNO_PROXYexempts, or anhttp://URL when onlyHTTPS_PROXYis set, connects directly and gets the full check.Pack archives only the run's folder. Pack copies the run's folder (which holds the run's own copy of its inputs) into
History/, and no longer makes a second pass over the workspace: it does not copy the input document's workspace<name>.pdf/.texor delete that document's LaTeX build files (.aux,.log,.synctex.gz, …). Packing the same run twice within one second now reports an error instead of merging into the first snapshot.Agent SDK: a
Pluginsays what it contributes, not how an app shows it.Pluginkeepsid,tools,availability,toggle,injectedWhen,continuation,prompt,processLayerandsessionLayer. Dashboard copy (name,category,description,setup,hidden,unavailableHosts) and inlinesettingsrows are the app's own record keyed by plugin id; an app passes its plugins' setting rows with its own.toggleableandonByDefaultbecome onetoggle: 'on' | 'off'(the switch's position on a fresh install), andskills/agentsare gone: a plugin's bundled skills and agents are whatever itsresources/plugins/<id>/directory holds. So a plugin id must be lowercase letters, digits and dashes (acme-search, notacme_search);Sessions.layerrefuses any other list with a typedPluginsRefused. An embedder passes its plugins' setting rows asComposition.settings.Agent SDK: a tool reads its own call through
ToolContext. The publicToolContextservice (exported from@texra-ai/agent) has four fields:callId,env(the workspace roots, working directory and the step's read-only roots),requests(ask a person; absent outside a run) andemit(transient card output). The run, its workspace state, and which response and attempt the call belongs to are no longer copied onto every call; the harness's built-in tools read them from its internalRunCallservice.
Features
A dockable desktop workspace. Arrange Agent, Files, editors, terminals, and Browser in movable tab groups. Drag previews show the destination, including columns beside the whole workspace, and layouts survive restarts and project switches. Project and task actions support renaming; shared controls, message headers, settings catalogs, and editor menus use consistent spacing and themes. New task opens a fresh draft; chats with saved history remain open for follow-ups after stopping, failing, or completing. Messages group the author and time, with Copy and collapse controls at the edge. Agent YAML opens in the app's editor, and clean editor tabs refresh when reopened after an external change. Empty groups offer a close action and buttons to open a view. Approval menus explain the active policy, keep selection marks inside the menu, and respect settings that block actions.
Agent SDK: persistent sessions, resume, and approvals.
sessions.open(roots, { persistent: true })keeps a session's history in the same on-disk store the TeXRA apps keep, andsession.resume(runId)continues a run from it in a later process, handing back the same run handlestartdoes (ResumeRefusedsays why a run cannot continue).session.attach({ approve })attaches the embedder's own Effect function for the caller's scope, and it answers the runs' approval requests; the newest attached handler answers, and a handler that fails, throws or does not answer within ten minutes denies the request. Without a handler, every request is still denied. A run killed while it waits for approval is asked the same request again after a restart and a resume, which takes the run's custom tools again. Reopening a root over the other store (persistent or in memory) fails withSessionOptionsConflict. ASession.resumethat meets a resume already under way (a window's) joins it: it sees the run's events from then on, and stopping it leaves that resume running.Agent SDK: an agent can be written inline.
session.start({ agent })takes the persona itself (name,description,prompt,tools,temperature, as an agent file writes them) instead of the name of an agent file. The run records the persona, so nothing is written to disk.inherits,basedOnandtask:are refused.The desktop app runs its tasks in the background service. On macOS and Linux the app starts the TeXRA service (or uses the one already running, the one the CLI and VS Code use) and runs each project's tasks there, so a task keeps running when the app quits and a terminal or a VS Code window can follow it. The app still presents the task's notices and its proposed edits, and its approval policy applies there. If the service cannot start, the app runs its tasks itself.
Windows reconnect to the background service, and it reads settings fresh. When a newer TeXRA build retires the service, or it stops, the desktop app, VS Code windows and
texra chatsay they are offline and reconnect to the next service (starting one if none comes), then list their tasks again. A setting changed in any of them reaches the service's next task and next turn, without a restart.VS Code windows run their tasks in the background service. On macOS and Linux the extension starts the TeXRA service (or uses the one already running) and launches, resumes and steers its tasks there, so a task keeps running when its window closes and other windows and terminals see it live. The window still serves those tasks with its editor (diagnostics, inline criticism, opening a PDF, the editable diff of a proposed edit) and its notifications, and the approval policy set in the window applies there. A newer extension retires an older service. If the service cannot start, the window runs its tasks itself and says so once.
Document tasks can reflect with a critic. Opt in with
texra run <agent> --reflectorreflect: trueondocument_task: after each revision but the last, the bundledcriticagent reads the diff and compile result and returns grounded corrections plus one optional improvement, which the next revision's prompt carries. The revision count is unchanged.A chat shows its project's background-task notices (CLI). A task the TeXRA service runs now tells a window of its own project what it would show on screen (a refused resume, an error with its guide link), and a terminal chat is such a window; before, those notices reached only the service log. The same channel carries what only an editor window can do (diagnostics, inline criticism, opening a PDF, an editable tool-edit preview), which the extension and desktop windows offer as they become service clients. A task never waits on a window that closed: the tool says the window went or did not answer in time, and with no window of the project open the task runs as a headless run does.
texra resumecontinues a conversation the service is running (CLI). Resuming a chat's task that the background service still holds (left waiting when its terminal closed) continues it there, with--handoffand--resetapplied by the service, instead of refusing it as held by another process.TEXRA_NO_SERVICE=1runs a chat in its own process, as on Windows.Every chat is a task of the background service (CLI).
texra chatand a baretexrarun their conversation's runs in the TeXRA service, so another terminal's/taskslists the conversation and attaches to it live, while the chat answers its approvals and edit diffs as before. When the service cannot start (on Windows, for now) the chat runs in its own process and says so once.texra run,-pand--output-format ndjsonstay in their own process. The service now takes itsPATHand keys from your login shell rather than from whichever window started it, so a service started by an app opened from the Dock still findslatexmk./tasksin the chat attaches to a background task (CLI). The chat lists every project's tasks in the TeXRA service; choosing one shows its transcript live, sends it follow-ups, and answers its approvals (commands, edits with their diff, questions) in place. Esc detaches and the task keeps running. A service task that asks for approval now waits for that answer instead of having the tool withheld.One background TeXRA service runs tasks for every terminal (CLI).
texra tasks start <agent> --instruction "…"starts an agent as a task in a per-user service, which starts on its own the first time it is needed and keeps the task running after the terminal closes.texra tasks listshows the tasks of every project,texra tasks attach <id>follows one live from any number of terminals at once (each prints the same transcript; Ctrl-C only detaches), andtexra tasks sendandtexra tasks stopsteer it.texra service status|stop|restartmanage the service andtexra serveruns it in the foreground. Clients reach it through a local socket only your user can open, in~/.texra/run/, and it exits after ten idle minutes.Interrupted tasks when TeXRA opens. When the terminal chat, the desktop app or the extension opens and finds tasks a closed or crashed TeXRA stopped mid-way, Settings › General › Interrupted tasks decides what happens: Ask (the default) leaves them for you to resume, and Resume automatically continues them.
texra runand the agent SDK never resume on their own. A task whose agent is gone, or whose agent comes from a plugin that is off or not trusted, is no longer failed by a resume: it stays interrupted, says what it is waiting for, and continues by itself once that is fixed.Long conversations no longer pause to compact. When a conversation reaches the compaction threshold, TeXRA summarizes the earlier turns in the background while the agent keeps working on the full history, and swaps the summary in at its next model call or when its turn ends, keeping everything that happened since.
/compactstill waits for its summary, and a reset or handoff applies a finished summary first or stops one still running.Fork, reset and hand off a conversation.
texra resume <id> --forkcontinues a new task that holds the conversation as it stood at the end of its last turn (--at <position>picks an earlier turn's end), and leaves the original unchanged.--resetclears what the model sees of the conversation before you continue;--handoff "<text>"clears it and continues from your text alone. A fork records where it came from, and each reset or handoff is recorded where the model's view was cut. A fork inside a turn is refused. A reset or handoff takes effect when the task next waits for you, after any message already queued for it. The agent SDK can fork, reset and hand off too; the progress view and desktop app get their menus for these in a later release.One Plugins page. Settings › Plugins (and
/pluginsin the terminal) lists everything that adds tools or agents: TeXRA's own plugins, installed Claude Code and Codex plugins, and the MCP servers in~/.texra/mcp.json(read-only, with Open mcp.json). Each row says what it adds, whether it is on, whether it is trusted, whether it can run here with the fix when it cannot, and which agents use it. Add plugin takes a GitHub URL or a folder (/plugins add <URL or folder>in the terminal). It replaces the Tools and Integrations sections, the plugin list under Agents › Skills and/config› Tools. The approval policy moved to Settings › General › Approval.A script's card reads as its agents, not its code. The card opens with one line, such as
3 agents · 1 needs you · $0.840, then each phase's calls as plain rows. A finished agent's row shows the first line of its answer, and the CLI shows an agent call's answer underResult:instead of internal delivery markup. Stopping a running agent moves from a Skip button to "Stop this agent" in the row's menu (sin the CLI popup); the separate "Call details" list is now a Log link inside the card; a call shows "retried" only when it ran more than once. An agent's row is the way to talk to it: while the agent takes messages, "Talk to this agent" opens its conversation with the composer addressed to it (Enter in the CLI popup focuses it).Approving a script leads with what it allows. The request asks "Start agents for …?", says that the agents' edits and commands follow your approval settings, and names the first agent and its instruction; the code and the calls so far fold under "Show code (N lines)". "Edit as new task" on this card is now "Change and start myself".
The desktop Subagents pane and its header button are gone. A script's agents live on its card and detached agents on their dispatch card; a workbench layout saved with the pane open starts fresh once.
An agent a call is waiting on resumes with its caller. After a crash, resuming a child run that an open
agentcall was waiting on resumes the run that called it, which picks the child back up; the child no longer runs on its own while its caller stays stopped. A run also no longer records that it finished while a call of it still waits on a child that has not ended; stopping such a run stops the child first.An interrupted call asks one plain question. When a call may have run before a run was interrupted and left no result, the request now names the tool (and the agent run it left, for an
agentcall) and offers Run again or Skip, in the progress view and the terminal alike, instead of a generic question with a run id in its text. It reads "Did the agent finish before TeXRA stopped?" with Run again and Skip it, says what each does, and an agent call's card links that agent's conversation instead of naming its id; the script card's row waiting on it says "Wants a decision: did the agent finish?".scripttool (code mode, first stage). An agent whose configuration listsscriptcan run one JavaScript program that calls its other tools asawait tools.read_file({ path }), withPromise.all, try/catch,phase(title)andconsole.log. The program runs in a QuickJS sandbox on a worker thread. Every call it makes is an ordinary tool call, with the same hooks, approvals and card, nested under the script's stage. If the run is interrupted, the script runs again from the top on resume: calls that finished are handed back from the run's history instead of running twice, and a call that was in flight follows the usual rules (re-run when it is safe, otherwise ask).The
scripttool lists your tools as TypeScript, and finds the rest. Its description declares each tool the agent lists as a typed function (read_file(args: { path: string; … }): Promise<ToolOutput>, a union of branches for a tool with commands), with the first sentence of its description. The text is written once when the run's system text is, so switching a plugin on or off mid-run no longer changes it; the model is told in one line and can call the new tool at once. Inside a script,searchTools(query)ranks every tool the run can call, MCP and plugin tools included, anddescribeTool(name)returns a tool's full declaration with each field's description. Both answers are recorded, so a resumed script gets the same ones.agenttool (code mode, second stage). One tool runs a named agent as a child run, with the options ofdelegate_agent,delegate_workflowand a workflow script'sagent()together; the agent you name decides which apply. In a script,agent(prompt, opts)waits for the child and returns its result ({ response | outputs, structured, outcome, cost }), or{ runId }withbackground: true; a failure rejects asAgentFailed,TimedOut(timeoutMs) orSkipped(you stopped the child). Called directly it runs in the background, as a delegation does. A script'sagentcalls share one approval request that shows the script's source, and run at most the child-run budget at once. A completed call is reused, not run again, by a later call in the same run with the same prompt, options and file contents, so a fixed script re-sent by the model does not pay for finished children twice. If the run is interrupted, a call finds the child it launched: a finished child's answer is read back, and one that was cut short continues under its own run instead of starting over. The tool belongs to the Multi-Agent Workflow plugin.Scripts can run in the background.
scriptwithrun_in_background: truereturns at once with a run ID, and the script runs as a child run of its own (shown as a Script run) with the same tools, model and working directory. When it ends, the parent receives one follow-up with the script's result and a summary line: how many calls succeeded, failed or were skipped, what its agents cost, how long it took, the files its agents wrote with their line counts, and the cause if it failed. If TeXRA exits or crashes while it runs, resuming that run replays the script from its history: finished calls are not run again, and an agent call that was cut short continues its own child. If you stop it, the parent is told which run to resume.executionson the run lists the script's calls by phase, and a one-shot run (texra run) still runs the script in the foreground and says so. A completedagentcall is also reused by the same call in a background script launched by the same run, and the other way round.The
agenttool is a delegation tool everywhere. An agent that offers onlyagentnow sees its available agents and models in the system text, counts as an orchestrator, and a script sees whatagent()resolves to (the child's result, or{ runId }) in the tool's declaration instead of{ output, summary }.A script's result carries the files its calls attached, so an image a nested
read_filereturned reaches the model with the script's answer.Every host shows a script's calls. In VS Code and the desktop app, a script's stage lists its calls by
phase(), with the calls that need a decision, the failed ones and the running ones first; each call says whether it is queued, running, interrupted, finished, reused, skipped, cancelled, failed or not run, with its agent, model, attempt, files, time and cost. Anagentcall opens its child run, Review opens the run waiting on you, and Skip stops a running call's child (the script gets aSkippederror). The calls' full cards fold under Call details. In the terminal, Ctrl-O opens the same list for the focused run (Enter opens,sskips), andtexra runprints a line per call as it changes. The request a script's firstagentcall opens shows the script's title, source and the calls it made so far. A background script's run offers Resume after a stop and Edit as new task, which puts its script into the launcher. A script's card is named by its title (else "Script") and shows its source as JavaScript, and the agents a script calls are listed in its stage alone: not among the run's background tasks, and not as "Subagent started" lines in the parent's transcript. On a run whose process stopped, a call that had not finished reads as interrupted until you resume it, with no Skip and no spinner on the script's card. A call's agent and model stay readable beside Skip, and drop under the call on a narrow panel.Pending approvals survive a restart. When TeXRA exits, crashes or is stopped while a command, an edit, a plan, a delegation or a question waits for you, resuming the run shows you that same request again, and your answer completes the call. Before, the request was cancelled on resume and TeXRA asked instead whether the tool "may have run", even though it never started.
Choose the Codex subagent's model. Codex was fixed to GPT-5.5; a new setting picks any model the Codex backend serves (default GPT-6.1 Sol).
OpenAI fast processing (
model.openaiFastTierin.texra/config.json) sends OpenAI requests on the fast tier where a model offers it, and run costs use the fast-tier prices.Claude Sonnet 5.5 and GPT-6.1 Sol — TeXRA adds Claude Sonnet 5.5 (
sonnet55, thinking always on) and GPT-6.1 Sol (gpt61-), both at $2 / $10 per 1M tokens. GPT-6.1 Sol is the new default model for new chats and the OpenAI setup pick; Sonnet 5.5 replaces Sonnet 5 in the default model list and as the OpenRouter setup pick. Sonnet 5 (sonnet5,sonnet5T) and GPT-6 Sol (gpt6-) are deprecated. GLM-5.3 Flash is now billed at its list price, since the promotional price ended. The Claude Code integration offers Sonnet 5.5 (claude-sonnet-5-5) in place of Sonnet 5 and uses it by default; a saved Sonnet 5 choice falls back to it.Delete a conversation from the desktop sidebar. Hovering or focusing a finished conversation under a project shows an ×; clicking it removes the conversation and its run folder at once. The conversation menu's Delete session no longer asks for confirmation either. A running conversation shows no × until it is stopped, and deleting the one on screen moves to the project's first remaining conversation.
A customized built-in agent tells you when TeXRA ships a newer version. Built-in agents already update with the app; a custom copy with the same name used to override the improved version forever without a word. Customize now records which bundled version the copy started from (a
basedOn:line at the end of the file). When an update changes that agent, the settings Agents page marks the copy and offers View built-in, Reset to built-in, and Keep mine;texra agents listandtexra agents showprint the same notice, and the newtexra agents customize,texra agents reset, andtexra agents keepcommands make, reset, and keep a copy from the terminal. An agent you wrote yourself under a built-in's name is never flagged.Goal mode pauses at a spend cap. An autonomous goal now stops between turns once the run and its subagents have spent
texra.goal.maxCostUsd(default $5;0removes it; on the Tools page and in/config), withdraws its auto-approval, and says why on the transcript. Raise the cap and re-arm the goal to continue.Session history takes several times less disk — long tool output, attached images and PDFs, and long prompts are stored compressed and only once per project: the same image attached in two runs, or a file's text in both a tool's result and the conversation, is kept once, and an attachment takes about its own size on disk instead of several times it. Deleting a run frees what only it used.
Enabling a skill or plugin mid-run no longer re-reads the whole conversation at full price — the agent is told what changed, and the earlier conversation stays cached. Adding or removing a tool still costs one full re-read. OpenAI models also reuse their cache more often across a run.
texra doctor --prune-storageclears history left by deleted projects — it lists each workspace's stored history whose project folder no longer exists (or, for history no current build has opened, that has not changed for 90 days), with its size, and deletes them once you confirm, or at once with--yes. History another TeXRA window has open is kept. It also lists the backup copies left by earlier builds, and any other backup copy over 30 days old, and deletes them with the same confirmation. Nothing is ever deleted automatically: a project on an unplugged drive looks deleted too. Deleting runs now also shrinks the history file on disk, backup copies this build makes are removed after 30 days, and opening one folder under differently cased spellings (on macOS's default case-insensitive disk) no longer keeps two histories for it.Plugins with hooks can be enabled — a Claude Code or Codex plugin that ships hooks now works in TeXRA. Its hooks can add notes to what you ask, block a tool call they object to (the agent is told why), add notes to a tool's result, and act as a quality gate: a
Stophook that blocks keeps the agent going for one more turn, with the hook's reason as its next instruction, even intexra run. The turn after that can end. They cannot approve anything on your behalf: your approval setting still decides. Enabling such a plugin shows each hook and the scripts it runs; anything whose script TeXRA cannot pin down is shown as its exact command, and changing a hook or its scripts asks you to trust the plugin again. Hooks never see your API keys, and one that hangs is stopped. Enabling or disabling a plugin reaches open conversations at their next step.texra plugin show <name>lists a plugin's hooks and the ones TeXRA does not run. Plugins with language servers still cannot be enabled. Session history from earlier builds is cleared the first time this build opens a workspace.Tool changes reach open conversations — switching Memory or a Tools plugin on or off (in the settings, or with
texra tools enable|disablefrom another shell) now takes effect at the conversation's next step instead of only in conversations started afterwards. The conversation's history records each change, and the instructions that go with a tool (such as Memory's) follow it in and out. Calls the model already made finish with the tools they were made against. A resumed conversation keeps the tools that are still compatible; a pending call to a tool that is no longer available is answered as unavailable and the conversation continues. A reworded tool description alone does not interrupt anything. Thetexra runresult no longer reports a tool-composition hash.Workflow scripts get longer default limits and an orchestration skill — the whole-run wall clock defaults to 60 minutes (
meta.timeoutMsup to 24 hours), a run may make 1000 liveagent()calls, andall()takes 4096 items. A script's own code gets 30 seconds of CPU in total, so a loop that never yields stops quickly instead of holding the app until the deadline. The lead reads a new bundledmulti-agent-orchestrationskill for how to shape a run.Agents can message each other — any run in a project can send a message to any other run with the
executionstool'ssendaction, the way you type into another terminal pane: an orchestrator to its subagent, a subagent to its orchestrator, one run to a sibling or to an unrelated run. Who launched whom never limits who may talk. The message is read when the recipient finishes its current turn, an idle run wakes to read it, and a subagent's report now arrives the same way. A one-shot run (a headlesstexra run, or a subagent the orchestrator waits on in band) has no next turn, so a message to it is refused rather than left unread. An orchestrator waiting withexecutions waitwakes as soon as any message reaches it, including its subagent's report. Nothing caps how many messages agents exchange; stop the runs if they talk too long. In the terminal,/pslists the session's runs and/send <id> <text>messages one; in VS Code and the desktop app, a run's row shows how many messages it has not read yet. A GitHub CI or review notice is now shown to the run as information and no longer replaces what it was asked to do.A message you send after stopping a tool is answered first. In 0.40.10, stopping a run while a tool such as
bashwas running ended the turn there. Now the stop is kept on record: the stopped call is reported to the model as skipped (it may have started, and nothing was recorded), and the message you send next arrives in the same request, so the model reads your new instruction before deciding whether to run anything again. Resuming a stopped run without a new message still finishes the stopped turn.texra runresults record what the run ran with — the JSON and NDJSON result carriescompositionHash, the hash of the tool composition the run pinned, andplugins, the enabled plugins installed when it started or resumed, with the commit each fetched plugin is pinned to. A script that compares runs can tell whether two of them had the same tools and plugin skills.Plainer multi-agent workflow screens. The workflow launch row shows its summary alone; the instructions for the model stay in the tool output, and the model is no longer told to wait on a run whose result arrives by itself. In the terminal popup each call shows its full label and status with the failure reason or latest activity beside it, while its agent, model and cost move to a line for the focused call; the popup opens on the active phase, and phases of three calls or fewer are not folded. Status marks no longer look like checkboxes, and plan entries read "planned" rather than "declared".
Install Claude Code and Codex plugins in the terminal, VS Code and the desktop app — install a plugin from GitHub, a git URL or a local folder with
texra plugin install, or from Settings > Agents > Skills; all three apps see the same installed plugins. A plugin stays off until you turn it on: TeXRA shows what it contains and the programs it will run, and asks you to trust it. A new version, or any change to its files or settings, asks again. Once on, its skills, commands and agents appear under the plugin's name (for examplepaper:review), and its tools are available to your agents, including in a conversation already under way. Turning a plugin off removes its tools and agents without uninstalling it, and past conversations keep what it did. Plugins that run code of their own (hooks) are not supported yet and cannot be turned on.The desktop app's settings now live alongside the extension and CLI; desktop-only settings reset once.
Desktop: clearer multiple projects — each open project in the sidebar has one row with a status dot (waiting on you, running, or finished while you were elsewhere), a
+that starts a task in that project, and a×that closes it; tasks are listed under their project and nowhere else. Every sidebar row is one line: a task's agent, branch, age and model are in its hover tooltip, and a project's status is its dot, whose tooltip says it in words. The conversation header is one row: the task, its stop control and⋯. Files, Terminal, Browser and Logs open as tabs from the workbench's+. A run that needs you or finishes in a project you are not looking at raises a system notification that leads back to it, and the dock icon counts decisions waiting across projects. Dialogs a background run opens name its project, and File > Open Recent reopens projects you closed.The orchestrator and the Lean agents ship with TeXRA —
orchestrator,search,simplifier,presenter,progressCheck, and the Lean Project agents (lean,leanSearch,leanSimplifier,leanBlueprint,leanOrchestrator) are now built in, in the VS Code extension, the desktop app and the CLI. They no longer need a TeXRA sign-in, so every team's lead works on a fresh install.presenteris now the interactive deck builder that compiles your slides and checks every page visually; to turn a finished paper into a deck in one pass, use thepaper2slideworkflow agent. A built-in agent now takes precedence over a hosted agent with the same name, so signed-in users run the built-in copies too.A subagent works with the same tool plugins as the run that launched it. Switching a tool plugin on or off in the Tools dashboard applies to runs started afterwards; a delegated agent or workflow-script agent launched by a run already in progress keeps that run's plugins, so one task does not change tools halfway through.
MCP servers — list local stdio MCP servers in
~/.texra/mcp.json(the same shape as Claude Code's.mcp.json), and name their tools in an agent'stools:list asmcp__<server>__<tool>ormcp__<server>__*. Every MCP tool call goes through the same approval as a shell command. A server runs only while a run that uses it is open, does not inherit your API-key environment variables, and a server that fails to start is named in the run's transcript. See the Agent integrations guide.
Bug Fixes
A failed document task now says why in text output.
texra runandtexra resumewith--output-format textprint the run's reply (for example, which documents did not compile and where their logs are) betweenFAILEDand the run-artifacts line. JSON output is unchanged.An awaited sub-agent's report is now kept and viewable.
executions viewon a sub-agent the parent waited for shows its report instead of "No report found".--outputthat can't be written now fails the command, not the recorded run.texra runandtexra resumecopy a document task's output once the task has ended: a copy that fails exits non-zero with its cause, and the task stays recorded as completed.A task that can no longer be read can be deleted from the task list. A task whose saved history is damaged, or was written by an earlier build in a format this one does not read, is listed as unreadable. It used to offer only Open folder, Export and Copy, so it stayed in the desktop and extension task lists for good. It now offers Delete as well, unless another running TeXRA window holds it.
texra chatas a client of the TeXRA service shows the service's tasks in its work-plan reader, as it does in its transcript; it read the terminal's own session before. A chat with or without the service now starts, resumes and stops its tasks the same way, and a Ctrl-C while a resume is still settling stops the resumed task.A task whose end could not be saved no longer stays listed as running. When only its result could not be saved, it ends as it did, its card says "Result lost" with the cause, and the task that started it is told; otherwise it is recorded as failed. A task whose saved history is damaged can still be stopped, and so can the subagents under it.
A subagent's result can no longer be lost to a crash. A background subagent, script or command used to record its result and then, as a second step, queue it for the task that started it; a crash between the two left the result only in the subagent's report until that task was resumed a particular way. Both now commit together, so a task waiting on its subagents always finds the result queued once the subagent reads as done.
/compactis now confirmed only after it is queued, and says so when the conversation takes no more input.A crash no longer leaves half of one write on disk. When TeXRA wrote several related records as one step (a goal and the approval it grants, a run's history with its registration, a request and its answer), each record was saved on its own, so a crash between them could keep one without the other. Each step is now saved whole or not at all.
A model failure that a retry cannot fix no longer offers Retry. When a provider refused a request as invalid or unsupported, or rejected its credentials, without an HTTP status, the retry prompt still offered a Retry that sent the same request and failed again. It now offers one only when the provider's reply says the same request can succeed, or after a used-up plan (where the retry switches to your own key). The offer follows the model's retryable and quota classification rather than the HTTP status, so a 429 or 5xx whose reply says the context overflowed is not offered Retry either.
Reopening the desktop window works with the TeXRA service. When the app used the background service (the macOS default), clicking the Dock icon after closing the window logged "could not be reopened", clicking a notification did not show its task, and a second click could open a second window. The window now reopens once, and a notification shows its task after the window is back.
Read conversations stay read after restarting. Loading older chat history no longer resets the sidebar's read marker. Later activity still makes the conversation unread until it is viewed.
A window shows the files a background task accepts. When a task in the TeXRA service (
texra serve) accepted files into the project, or the setup agent applied an agent team there, the desktop file tree and the editor's file badges and agent lists did not update until you refreshed them. The change is now recorded on the task, and every window that shows the project picks it up.Copilot models work in service tasks again. Since tasks moved into the TeXRA service, a model routed through GitHub Copilot failed there: the service has no editor. A task now runs its Copilot turns through a VS Code window of its project, streaming the reply back and stopping the turn when the task stops; the window's own model error is shown as it is. With no such window open, the task says so: open the project in VS Code with GitHub Copilot, or stop using Copilot for that model.
A project's
.envreaches its tasks again, in every TeXRA app. Since tasks moved into the TeXRA service, a key kept only in the project's.envwas missing there, and a different key from your login shell could be used instead. Each task now reads its project's.envas it starts, over the environment, so an edited or rotated key applies to the next task; its commands see the variables (never a provider key), aDO_NOT_TRACKorTEXRA_NO_TELEMETRYthere turns usage logging off for its tasks, and one project's.envnever reaches another's. The CLI and the desktop app read it too, for their model lists and key checks. A key you set only in the terminal that starts a chat ortexra tasks startdoes not reach a task in the service, and the CLI now says so.MCP servers start with their project's
.env. Each project now runs its own MCP servers, from~/.texra/mcp.jsonand from installed plugins: a server starts with that project's.envvariables over the environment (never a provider key), stays up for the project's next task (30 minutes after the last one used it), and stops when the project closes. In the TeXRA service, one project's server is never shared with another's, and a server no longer starts without its project's variables. An edited.envstarts a fresh server for the next task.The TeXRA service no longer grows with every project it ever opened. A project's session in the service now closes once no window or terminal is attached to it and none of its tasks is running or waiting, for as long as the service's own idle time (10 minutes by default,
texra serve --idle-timeout); the next use reopens it. Streaming text no longer makes the service re-read the task store on every burst: it reads only when something was committed.A task with a damaged saved step is shown as damaged, not as resumable. If any saved step of a task can't be read, not only its start, the task is marked damaged and can't be opened. A task whose start was damaged no longer offers to resume as if it had never begun.
A task whose end could not be saved now reports a failure. Before, it reported the result it had in memory, even though its history did not record that it had ended.
Pausing or finishing a goal ends its auto-approval in the same save. A paused goal can no longer keep approving commands because only half of the change was saved.
A window reconnecting to the TeXRA service no longer restores an old approval policy. The project's saved approval policy is now the only one the service follows: it reads the setting for every request, and a window or terminal changes it only by saving the setting (the settings view,
/config, or/approvalin a chat whose tasks run in the service). Before, each window re-sent the policy it last held whenever it reconnected, so a window left open on Auto-approve could silently undo another window's change to Ask. A launch can still narrow its own task:texra tasks start --approval-policy ask,--no-input, or a chat's stricter--approval-policyor/approvalmakes that task ask (or block) even in an Auto-approve project. A more permissive request is said and ignored; to widen the project's policy, change the setting. A chat run withTEXRA_NO_SERVICE=1still uses its own policy as before.OpenAI models can use tools. A task on an OpenAI model, directly or through OpenRouter, failed on its first request with an "Invalid schema for function 'memory'" (or 'executions') error, because the line-range option of those two tools was described in a form OpenAI does not accept. Every bundled agent offers one of them, so every OpenAI task with tools was affected.
Each of several messages sent together shows only its own attachments. When a text-only message and a message with an image reached a task in the same turn, both rows showed the image badge. Now each row shows the attachments its own message carried. Forking an agent that has no recorded start now says "The agent ... has no recorded start" instead of calling it a task.
Closing a project or quitting no longer hangs when the task history is busy. If another TeXRA process keeps the history locked while a project closes, TeXRA waits a few seconds and then closes anyway, logging the updates it could not save. Before, closing could wait for minutes.
An older TeXRA no longer changes a project that a newer TeXRA has saved into. Before, it still saved typed-message history and removed deleted tasks' files there.
Summaries and helper requests that cannot switch to new credentials now fail, as a task's own model request already does. Before, they were sent again on the old sign-in. A connection that a renewed sign-in has already replaced is no longer replaced a second time.
A model retry that cannot switch credentials now fails instead of resending on the old ones. When you answer a failed request with "retry with my own key" and that key is gone, or a dropped Responses WebSocket cannot reconnect, the task now stops with that error. Before, it logged a warning and sent the request again on the subscription or connection the retry meant to leave.
Approving a request in a long task no longer slows down as the task grows. Each decision now reads only the task's request rows instead of reloading its whole history.
A refused action on an agent names the agent, not "the task". Stopping, deleting, compacting or answering for an agent that could not take the action said "Stop the task before deleting it.", "This task has no conversation to compact." and similar. These messages now say "agent" for an agent and "task" for a task.
An unnamed image in an
.emlfile is named by its standard extension. Reading an email names an image attachment that has no filename after the registered extension of its MIME type, soimage/x-iconbecomesimage-1.icoinstead ofimage-1.x-icon. Known types such as JPEG, SVG and TIFF keep the names they had."Fork from here" keeps the images a message carried. Forking from a message with pasted images put only its text back in the new task's composer, so the menu item was hidden on such messages. The fork's composer now holds the message's images beside its text, and the item is offered on every message after the first again (#13662). A message sent by an earlier build forks with its text only.
A resumed subagent follows its parent's later approval toggles again. When a subagent ran under its parent's goal approval and was resumed on its own, its resume recorded that kind as turned off, as if you had refused it. It now records that the goal ended for it, so turning the kind on (or off) on the parent reaches the subagent while it stays attached (#13839).
"Auto-approve — this task only" now ends with the task it was chosen for. The new-task composer kept the choice after a launch, so the next task (even in a later window) started auto-approved too. A launch now resets it to your approval policy.
Screen readers reach the rail's hover actions. The desktop project row's New task and Close project buttons and a task row's Delete button were removed from the page while the row was not hovered or focused, so a screen reader's browse cursor never found them. They are now visually hidden instead, and appear as before on hover or focus.
An agent's rows say "agent", not "task" or "subagent". An agent row's Delete button and header item read "Delete agent", an agent with no output yet reads "Agent is starting", the
agenttool's transcript row is headed "Agent", and the CLI's/configcategory for these settings reads "Tasks and agents" (it read "Subagents").Stopping a long background request no longer retires it unless the provider confirms the cancel. If the provider reports the request already finished or still running, the task keeps it and a resume collects its answer instead of paying for a new one.
A model retry you approved is not sent again after a crash without asking. If the app stopped while a retry you approved was running, the resumed task now asks again instead of resending a request that may already have been billed. Automatic retries also keep their count across a restart, so a crash no longer grants a fresh set of paid retries, and a denied retry stays denied when the task is resumed. Compaction summaries now leave a record of each billed attempt in the task's history.
Projects that share an API key back off together after a rate limit. The background service runs every project's tasks, but each project waited out a provider's 429 on its own, so a second project kept hitting the limited key. A rate limit on one credential now pauses that credential's calls in every project the process serves (keyed by the API key, or a subscription's current token).
The CLI's progress line no longer goes blank for a task with an empty description. It shows the run's status instead.
A task with an empty description no longer shows a blank title in desktop notifications. The desktop app's "is waiting for you" and finished notices now name the task by its agent, as every other surface already did.
One warning per media file a model can't read. Attaching an image or PDF to a model without vision used to log two warnings: a launch-time "Model has no vision support" summary, repeated on every resume, and then
Skipping <file>for each dropped file. Only the per-fileSkipping <file>: the model does not accept images/documents/audiowarning remains, written where the file is dropped: on a chat's first message, a follow-up, a subagent's opening, and each revision of a document task.A resumed task no longer asks whether a command ran that never started. A task stopped while a command waited for your approval, or just before it asked, used to come back asking "did this run?" about a command that never ran. A command now counts as started only once its approval is given and it begins, so the resume asks for the approval again, or runs the command under the answer you already gave. A task whose tool calls run side by side also no longer stops with an internal error when you answer such a question while another call finishes.
A task saved by an older TeXRA no longer reads as corrupt. A task whose stored shape this version no longer reads now says it was made by an older TeXRA and can't be opened here, instead of calling it corrupt, and the log names the field that did not match.
The background service is retired by build, not by product version. Every TeXRA bundle (the CLI, the VS Code extension, the desktop app) now carries the same build identity, and a newer build retires an older service by it, so a preview extension, whose Marketplace number differs from the CLI's, no longer retires a service of its own build. A service that retired an older one no longer disappears a moment later: the old service's exit could remove the new one's socket. Each service now listens on a socket of its own, which its record names, so an older service that finishes its last task after a newer one started never takes the newer one's socket with it.
Desktop header controls and menus take clicks again. The "+" menu of a side or bottom panel (Files, Terminal, Browser, Logs), a tab's menu, and the task header's controls (the "More" button and its menu, renaming, the parent-task links) ignored the mouse: they sit in or over the window's drag areas, which macOS treated as a place to move the window.
A
/compactor a/modelswitch asked for mid-turn now survives TeXRA being killed. Both are saved the moment you ask, and the resumed task compacts, or switches models, at its next step. A switch that cannot be applied fails that task once, not every resume after it. A message you type while a turn runs is picked up in the same step that ends the turn. Two breaks: an older TeXRA reading a session saved by this version sends/compactor/model …to the model as plain text, and a session an earlier version paused in the middle of a/compactresumes without compacting.The desktop installers build again, and the macOS app is signed and notarized, so macOS opens it without a Gatekeeper warning.
An agent's or a background job's result is no longer lost when TeXRA is killed at the wrong moment. A result from an agent left running in the background, a background script or a background command is saved together with the step that finishes it, and the task that started it picks it up when it resumes. Before, a crash just after the agent finished could drop the result, or leave a background command's result waiting forever.
Document tasks run on a VS Code editor model (Copilot) again. Since document tasks became a recipe, a task launched with an editor model failed at its first step; its revisions now run on that model as before. A script can also run in the background on an editor model. The terminal's progress line names the agent as the progress cards do (
polish, notbuiltIn:polish).Gemini calls work again. After a change on Google's side, every Gemini request failed with a validation error before any output arrived.
Gemini agents can call tools again, and background Gemini runs complete. A Gemini turn that called a tool failed as soon as the call arrived, and a Gemini run in the background failed when its answer was collected.
A crash no longer undoes a Stop, a finished agent or a bypass turned off. A task you stopped mid-turn, killed before it finished stopping, came back as interrupted, and with "Always resume" it carried on the turn and paid for more model calls; a stop is now recorded whole or not at all. An agent that had finished its answer when its task was killed no longer asks whether to run it again: the resumed task reads the answer it left. Turning an approval bypass off is confirmed only once it is saved, for a task held by no window too, so a crash right after cannot bring the bypass back on when the task resumes.
Every surface agrees on which tasks can resume, workflows included. In
texra chat, an interrupted workflow task now offers Resume (Enter on its agent row, or/resume <id>) and continues beside the chat instead of pointing you totexra resume; the exit line lists workflow agents too.texra historymarks a task resumable exactly whentexra resumewould continue it: a task that was killed before its first step is now listed as resumable, and a failed workflow is no longer hidden from/resume.A message to a task that is waking up is no longer refused. A message sent while a task is being resumed, or a second Resume, joins the resume already under way instead of reporting "This run cannot accept messages right now". A GitHub event or an agent's progress note for a task that is not running in this window is kept for its next turn instead of dropped. A message to an agent that is waiting for input now reports "Sent".
Interrupted tasks now resume reliably after a crash at any point. A task, an agent it started or a background script that was killed just after it started now resumes from the beginning instead of showing as finished. A fork never appears empty. An agent that had already answered when its task was killed passes that answer on to the resumed task instead of nothing. A
/compactthat had not run yet still compacts on resume instead of being answered as a message. An answer given just before a crash shows in the transcript and the task history after resume.A task's cost counts every agent it started, on every surface. The progress-view footer showed only the run's own model calls (so a task that ran two agents could read
$0.000), and a script card added its direct agents but not the agents they started. The footer, the script card and its rows now show the total with all agents included, and hovering the footer cost names the run's own share. The CLI status line shows the task's total as it runs, and/statusbreaks it down by agent. The VS Code status-bar tooltip labels subscription usage the way the footer does ("Included in ChatGPT Pro") instead of a raw dollar figure.Adding an API key or enabling an agent mid-run no longer breaks the prompt cache. The agents and models a delegating agent can use were rewritten into its delegation tools' descriptions at every step, so any change re-sent the whole cached prefix at full price. They are now listed once in the system prompt, and a later change reaches the model as one short message, such as "Models for delegation now available: …".
A shell command is named by its description, and a finished background command by its result. The bash tool's
description(a 5-10 word summary the model writes) now heads the command's row in the CLI and the progress view, with the command beneath it, and names a background command's task. A finished background command showed✓ background completed · 2m, with a tick even when it failed; it now reads✓ Run the unit tests · 2m, or✗ $ npm test · exit 1 · 2mfor an undescribed command that failed.A ChatGPT or Grok sign-in that expired early recovers on its own. A run no longer fails with "token is expired" while Settings says the subscription is ready; when the sign-in cannot be renewed, the run asks you to sign in again and the account shows as signed out.
A project file can switch usage logging off without a warning.
"texra.telemetry.enabled": falsein.texra/config.jsonis honoured, and every host no longer reports it as ignored. A project file still cannot switch usage logging on: atruethere is ignored and reported.The removed TeXRA account's saved credentials are deleted. The old sign-in session (with its refresh token) and pending sign-in records stayed in the system keychain or secret store after the account was removed. Each host now deletes them once at startup without reading them.
The CLI, the desktop app and the VS Code extension no longer ship the internal validation model. The canned model the CLI's package validation runs against was bundled into all three; in the desktop app and the extension, environment variables could switch a run onto it. Every shipped build now carries a stub in its place.
A history file cut short no longer stops TeXRA from opening the workspace. A session store truncated inside its first page (a copy that stopped part way) failed every open as "database disk image is malformed"; it is now moved aside to
texra.db.corrupt-<time>, as a file that is not a database at all already was, and a fresh store opens.Long prompts are priced at the provider's long-context rate. OpenAI's 1.05M-context models (GPT-6, GPT-6.1 Sol, GPT-5.6, GPT-5.5 and GPT-5.4) bill a whole request at 2x input and 1.5x output once the prompt passes 272K tokens, and Gemini 3.1 Pro and 2.5 Pro do the same past 200K; a run's cost now counts that, where it had billed only GPT-6 and Grok at the higher rate. Cached input on Gemini 3.1 Pro, 3.1 Flash-Lite, 2.5 Pro and 2.5 Flash is priced at 10% of input, as Google charges, instead of 25%.
A failed model request shows the provider's error again. It had shown "Malformed error payload" with a schema complaint about
rawErrorBodyinstead of the actual failure.Subscription switches are named for the account they route. The four routing switches now read "ChatGPT subscription", "Grok subscription", "Kimi Code subscription" and "GLM Coding Plan" in the chat's
/loginmenu, in/configand in the settings view./logincalled them "Prefer ChatGPT subscription", "Prefer Grok subscription", "Prefer Kimi Code subscription" and "Prefer GLM Coding Plan", and the Kimi switch also read "Prefer Kimi Code" in/configand the settings view. The names also stop promising a preference: a session that cannot be used fails the run and asks you to sign in again, rather than falling back to your API key.The ChatGPT and Grok sign-in link shows up again in
/login. Choosing a sign-in row in the chat's account menu started the sign-in but left the menu on screen, so the sign-in link, one-time code andccopy-link key never appeared. The panel now switches to the sign-in progress as soon as a row is chosen. In VS Code, when browser sign-in can't start, ChatGPT and Grok sign-in offer a one-time code instead of failing.Auto-compaction and the context gauge measure the whole conversation. A tool-use run compacted on the text of its messages alone, so the provider's own token count (which includes the system prompt and tool definitions) never reached the compaction trigger; the trigger, the context gauge and the output-length limit now all read the last response's reported input plus output tokens and add an estimate for what was added since. The gauge therefore counts the model's reply too.
Long histories stay usable. With a few thousand runs in a workspace, starting a session no longer stalls for minutes, and an agent's history query (
executionson/executions) no longer fails with "Invalid string length"; in the copy it queries, a tool input or result longer than 16,384 characters is cut there and marked with its full length. Deleting a run no longer holds up other TeXRA windows writing to the same history while the file shrinks./compactworks on Claude models with a fixed thinking budget (Claude Haiku 4.5): the summary's length is sized to the context left, and it is written without thinking when that leaves no room for the thinking budget, instead of failing.Desktop: a startup failure or unhandled error now shows one reload prompt. The "TeXRA could not start" panel and its "Continue without saved secrets" button are gone (the keychain case is handled before the window loads, so the button only re-ran the same render); a failed first render or a rejected promise now asks whether to reload.
Preferring a ChatGPT or Grok subscription now turns OpenRouter off in the extension and desktop app too. Both subscription routes only apply with "Use OpenRouter for all models" off, so signing in with OpenRouter on left the preference doing nothing. The CLI already cleared OpenRouter; the extension, desktop and CLI now share one rule.
Stopping a run cancels its background response. A workflow turn sent as an OpenAI or Google background response used to keep running, and billing, on the provider after you pressed Stop. An explicit stop (the Stop button, Ctrl-C on a running turn, an agent's kill) now cancels it, and resuming the run sends the turn again instead of waiting on the cancelled one. Quitting TeXRA, a signal, or closing a project still leaves the response running so a resume can pick up its result. If the cancel fails, the run's log says so and the stop goes ahead.
Output failures that were hidden now show as warnings in the run. A failed latexdiff, a workspace dependency latexdiff could not copy, a run workspace that could not be prepared, an output file that could not be processed, and a workflow agent's declared tools not being offered were recorded but never displayed; each is now a warning in the transcript. Headless
--output-format ndjsonprogress no longer carries the undisplayedinternallog lines ormodelRetryLifecycledomain events, andinquiryThreadUpdatedno longer carriesresumeOutcome.Approve-all and "use my own key" behave the same on every host. Turning on "approve all" for a run (the switches in the run header, or "approve all edits" on a prompt) now also approves the requests of that kind already waiting, in the extension and desktop as it did in the terminal; an edit you made in a waiting request's diff view is kept. A retry on your own API key with no key entered stays pending in the terminal, as it does in the extension and desktop, instead of being denied: the card comes back with the reason and you choose again. The desktop now tells you when a file drop skipped items, as the extension does.
Desktop: a hung file list no longer freezes the editor tree. Listing or reading a file on a stalled network or cloud mount now fails after 60 seconds, so Refresh works again instead of waiting until the project closes.
A tool call cut off by a crash no longer runs twice unasked. Resuming a run after the process died mid-call used to re-run any call that could run in parallel, even one with side effects. Now only read-only tools (file reads and searches, web and literature lookups, and MCP tools their server marks read-only or idempotent) re-run on their own. Any other unfinished call asks you "run it again, or skip it?"; with no one to ask, the model is told the outcome is unknown and to check before retrying. A call that never started is reported to the model as not started instead of being run. Session history from earlier builds is cleared the first time this build opens a workspace.
yoloandnevermean the same on every host. The session decides the approval policy when a plan, delegation, question or model-error retry opens, so the extension and desktop now match the terminal:neverdenies them,yoloapproves plans and delegations, andyolodenies a question or a retry rather than answer it for you, so underyolothe extension and desktop no longer show the Retry panel or anask_userquestion. Undernever, tools that need approval are no longer offered to the model on the extension and desktop either, and a policy change made while a request is already waiting leaves that request for you to answer (a headless run denies it).A custom agent you turned off stays off under the default agents — it reappeared in the selector whenever the workspace agents resolved to all, which is the default for a new workspace. Choosing "All agents" still shows it again.
Resuming after a vendor deleted its stored response no longer fails. When a request chained on a stored response (OpenAI, xAI, GLM, DashScope, Google) is refused because the vendor no longer holds it, TeXRA logs a warning and retries once with the full transcript.
An agent you edit is picked up on every host, and one that is listed can launch. The terminal app and the desktop app now watch your custom agents directory as VS Code does, so a saved edit shows in the next run without a restart. The agent list and the launch now read one validated definition, so an agent with a missing parent, an inheritance loop or a bad value is reported as a problem with its file instead of being listed and then failing when you run it. A saved edit is loaded within a third of a second, and a run launched inside that window loads it first. A run that names an agent the catalog could not load says so, rather than that the agent does not exist.
Desktop model requests no longer fail with "Connection error". The desktop app's bundled runtime rejected the proxy-aware connection model calls use, so every request to a model failed with an undici dispatcher error.
GPT-6 models stay on your ChatGPT subscription when the OpenRouter toggle is on — they have no OpenRouter route, so they fell through to the OpenAI API key (and failed without one).
A run's menu offers only what its state allows — "Delete output files" was offered on a workflow run that was still starting, and Delete session on a run another TeXRA window held. Every surface now offers the same actions for the same run state, and an action clicked just as the run changed (it started, or another process took it) is refused with the reason instead of acting on a running run.
Switching to another model of the same provider mid-chat keeps working — after
/modelmoved a chat to another model of the same provider (for example DeepSeek V4.1 Flash to V4 Pro), the next message failed with "Provider content evidence belongs to another model origin" and the chat could not continue. The conversation now carries on with the new model, which sees the earlier replies and tool results.write_filecreates missing folders — writing a new file into a folder that does not exist yet creates the folder inside the workspace, as an editor's save does, instead of failing withNotFound.A subagent's spend is counted once — when an agent delegated to a subagent and waited for it (as
texra rundoes), or ran a workflow script, the child's cost was added to the parent run and counted again on the child's own run, so the session cost shown on exit was too high. Each run now shows only its own model calls, and the session total is their sum. A run'susageintexra run --output-format jsonno longer includes its subagents' cost, matching its token counts. Session history from earlier builds is cleared the first time this build opens a workspace.Ctrl-C in
texra runreports a failed shutdown step — a step that fails while the CLI shuts down after Ctrl-C is now printed on stderr for every command. Before, commands that print their own output,texra runamong them, dropped it.--quietstill hides it.An updated plugin's tools and skills reach an open chat at its next request — after you change an installed plugin and trust it again, the chat's next request uses the plugin as it now is: its tools run the new version and its skills show the new text. A plugin enabled mid-chat brings its skills along with its tools, and the skills on/off setting applies at the next request. A plugin you disable while it is still starting never offers its tools to any request.
A message typed after you stop a chat continues that conversation, in order — the terminal hands it to the session, which queues it on the stopped run and resumes it once the stop has finished; a second message typed meanwhile follows the first. A message the session cannot take goes back to the input with the reason, and one that is queued but could not resume the run stays queued rather than being sent again. A conversation that stopped just after taking your message answers it when resumed, instead of waiting for another one.
A run's failure is reported once, in every app — the desktop app now shows the actionable notice (for example, a missing API key) when a resumed run fails at once, and a failed own-key retry shows the same notice rather than a second, generic warning.
The
creatoragent works in the terminal and the desktop app — it can now see the built-in agents and its reference docs and save the new agent into your custom agents folder, as it already could in VS Code. Before, its instructions named no folders and saving outside the project was refused. An agent it writes can be run right away, in the same session.Your own agents show up in the agent selector without an extra step — a new agent in your custom agents folder is shown even when the workspace uses a team or a hand-picked list of agents. An agent you turn off in the Agents settings stays off, under any team. Choosing "All agents" turns every one back on.
A skill you activate with
/skillsstays readable only while it is allowed — its files stay readable to the chat after a compaction and a resume, stop being readable once its plugin is disabled or loses your trust, and are readable only by the chat that activated or lists it, not by another chat in the same folder.Closing TeXRA or opening many sessions no longer leaves background processes using CPU — the check for which external tools are installed could leave a search running after TeXRA quit, one more for every session opened. A re-check right after installing a tool now finds it, whether from Re-check or from the setup assistant. A tool whose status detail stalls is reported as unknown after 20 seconds instead of holding the whole check, and saving a GitHub token updates the tools offered in every open project, also for apps built on the Agent SDK.
History errors say what went wrong — when reading or saving a workspace's history failed, the error gave no reason; it now includes the underlying cause, such as the history file being locked by another process.
Switching a tool plugin off now also stops what it was running — turning off GitHub PR subscriptions ends its subscriptions and polling once no running conversation still uses them.
Resuming a stopped workflow in the desktop app continues it instead of marking it failed — Resume on a halted workflow run started the run over under its old id, which the app refused, so the run was recorded as failed. A workflow run now resumes from where it stopped, on the same path a conversation resumes on.
A completed workflow is no longer recorded as failed when opening its final output fails — in the VS Code extension and the desktop app, the preview of a workflow's final revised file ran inside the run, so a failure there ended a finished run as failed. The preview now opens after the run has recorded its outcome, and a failure to open it no longer changes that outcome. In the CLI, an
--outputor--output-dircopy that fails still reports the same error and exit code.Approvals you granted for a session survive resuming it after a restart, and
nevernow blocks workflow scripts — resuming an interrupted conversation in a new window or terminal forgot every "approve for session" grant and asked again for commands and edits you had already approved. The run's saved approvals are restored on resume. Approvals an autonomous goal turned on stay off after a resume until you approve a plan again. Separately, under theneverapproval policy a workflow script (delegate_multi_agents) launched its sub-agents anyway; it is now denied, like every other approval request. Session history from earlier builds is cleared the first time this build opens a workspace.OpenAI reasoning models no longer fail with "The terminal snapshot conflicts with completed output items" — when a GPT reasoning model reasoned before answering, OpenAI could send the same reasoning twice with different encrypted contents, and TeXRA rejected the response as malformed, failing every retry. The encrypted reasoning is opaque and is no longer compared; the item's identity and status still are.
Security: one project's skill folders no longer open file access in another project — the desktop app keeps several projects open in one process, and every skill folder a project's run loaded outside its workspace became readable by file tools in every project's sessions, including skills another project had disabled. A skill folder is now readable only from sessions of the project that loaded it.
Security: setup tools ask before they act, and approving a tool call for the session no longer approves every shell command —
update_config,unset_api_key,invoke_commandandinstall_vscode_extensionwere marked as needing approval but ran without a prompt in the VS Code extension and the desktop app; they now ask under theaskpolicy, run underyolo, and are refused undernever, like shell commands. Approving an MCP tool,codex,claude_code,wolframorsend_to_terminalcall went through the shell's approval, so "approve commands for session" on one of them approved every later shell command, and an existing shell grant approved them unasked. Those calls now ask each time (the auto-approve policy and "approve all delegated work" still cover them), their prompt no longer offers a session grant, and a shell grant no longer answers them.A command the agent was running now ends when TeXRA is force-quit or crashes — a shell command kept running after the process that started it was killed (a force-quit, an out-of-memory kill, or a crash), so it could finish its work unwatched, and resuming the session could run it a second time while the first copy was still going. On macOS and Linux each command now carries a link to the TeXRA process that started it and stops the moment that process is gone. Jobs a command leaves running in the background now end with it; use
run_in_backgroundfor work that should keep going.CLI sign-in always shows the sign-in URL —
texra login,/login, and the account panel now print the sign-in link before opening a browser, and keep it on screen while waiting. If the browser that opens is signed in to a different account, or no browser opens, copy the link into another browser. A failed browser launch no longer ends the sign-in, and under WSL the CLI opens the Windows browser.Beamer slides are no longer cut short — when a model left its last output document unclosed, a frame overlay such as
\begin{frame}<beamer>was read as markup and the slides were truncated at that point. The document now runs to the end of the output and overlays stay as LaTeX.No false "Missing output files detected" notice — agents that declare their output file, such as paper2slide and ocr, reported it missing after every round even when the round wrote it.
Polish without an instruction polishes — the polish agent returned the paper unchanged when no instruction was given; it now improves clarity, flow and readability of the whole paper by default.
Read-only path refusals show the full path — the message an agent gets when it tries to write inside a read-only folder no longer drops the leading
/of an absolute path.Waiting on a background run returns its result once. When an agent waited for a subagent or a multi-agent workflow to finish, the result still arrived afterwards as a follow-up message, which started another turn (for a workflow, the wait had already returned the same result). The wait now returns the full result and no follow-up is sent. The workflow's completion card also names the workspace file it edited instead of a path inside run storage.
Turning telemetry off now stops all usage reporting — rounds run on a ChatGPT, Grok, Kimi, or GLM subscription were still sent after you opted out, on the grounds that they metered a plan cap. Nothing has enforced that cap since the relay was removed, so the setting,
TEXRA_NO_TELEMETRY, andDO_NOT_TRACKnow cover every round, andtexra doctorno longer says subscription rounds are still recorded.Tool availability rechecks after a change made during a check. If a credential or setting changed just as a tool-availability check started, the follow-up check could be skipped, leaving a tool shown as missing or available when it no longer was.
The VS Code dashboard shows your agents, teams and saved settings again. The Agents page listed no tool-use or workflow agents and no teams, and several pages showed defaults instead of your saved values (compaction, retries, team coordination, approval, skills, memory, telemetry, LaTeX and commit attribution), because the extension sent those updates in a form the dashboard discarded.
Usage recorded just before quitting is no longer lost — on the desktop app and the CLI, a quit while live runs took more than a few seconds to stop could cut off sending the last usage records. Every host now sends them as the final shutdown step, after runs and sessions have closed.
Workflow agent calls no longer fail after they finish. In a workflow script, an
agent()call could fail with "All fibers interrupted without error" just after it succeeded. In aparallel()group that ended the workflow and cancelled every sibling still running.A stopped subagent records one final outcome. Stopping a subagent while it waited for input, or while its failure was being recorded, could leave the run without a final record. Every run now ends through a single final step, and a waiting subagent no longer holds a concurrency slot.
Stopping a run or subagent as it starts now takes effect. A stop issued in the instant a run or in-band subagent was starting could miss it, and a caller waiting on that subagent could hang. A stop now interrupts the run itself, from its first step.
A run another TeXRA window takes over at the same moment is reported as running elsewhere. When two windows or processes resume or relaunch the same run at once, the one that loses now says the run is held elsewhere, instead of failing with a generic database write error.
A hidden TeXRA view now comes forward for every request, not only file edits (VS Code). A command approval, workflow proposal, plan, question, outside-model inquiry or retry could wait unseen while you were in the editor, and the run stalled. Now the TeXRA icon shows how many requests are waiting, and a new one brings the view forward. It no longer moves keyboard focus there, so you can keep typing in your document.
File tools no longer follow a symlink out of the workspace. A symlink inside the workspace (for example
up -> ..) letwrite_file,edit_fileandread_filereach files outside it, and the approval prompt showed the in-workspace path rather than the real target. Paths are now checked where they physically land; one that leaves the workspace through a symlink is refused like any outside path, and the error names the real target.Skills outside the workspace are readable. With skills enabled, the agent was told to read each skill's
SKILL.mdbut could not open bundled, home-directory, plugin or--sourceskills ("Path must stay within the working directory"). Enabled skills outside the workspace are now readable, and read-only, in every host.texra skills listand/skillsalso say when skills are turned off.Clearer tool and error cards. An edit refused because the file was not read first is no longer labeled like a read, and error details no longer list the internal
userRetryableflag or an empty provider body.The "agent file is missing" warning clears once a launch succeeds. It used to stay above the launcher until the window reloaded.
Workflow agents no longer fail when an intermediate round hits the output length limit. A multi-round (reflection) agent whose response in any round but the last was cut off and continued stopped at the next round with
continuationIndex 0 is below 1. The continuation count now restarts with each round, as the agent always wrote it.A workflow run is counted one way everywhere. The popup title, the phase tabs, the session list, the progress board and the result card all show the same tally, spelled by outcome (
6 ok · 1 failed · 1 not run), and a failed run's card reports what it did instead of0/0 calls. The result card's tick is shown only when every call succeeded, and it lists the workspace files a run changed rather than their run-storage copies.Workflow phases the script never reached stay unopened. A planned call the run never issued reads as "Not run" under a hollow phase, instead of opening that phase and marking the call skipped.
texrareports config settings it cannot use. A setting in.texra/config.jsonor the user config whose value has the wrong type ("texra.model.retry.maxAttempts": "five") now prints a warning that names the key, the value and the default used in its place, andtexra doctorreports it as WARN; before, onlytexra.approvalPolicywarned and every other setting fell back silently.Clearer
texraerrors. An invalid or missing argument prints the error and a pointer to--helpinstead of the full help screen followed by the error, and honors--no-colorandFORCE_COLOR=0. An--outputor--output-dirthe CLI may not create is a usage error that names the path, not a crash report.texra memory showfor a missing memory says so plainly. Mistyped subcommands with swapped letters (texra agents lsit) now get a "did you mean" suggestion.zsh completion completes model and agent names. The completion function no longer shadows
$PATH, which hid thetexraandawkit calls.Bundled skill descriptions no longer name Codex — they read "Use when you need…" in every host.
Credentials stay out of command output and the transcript. Shell commands the agent runs, and the Claude Code and Codex agents, no longer inherit the provider API-key environment variables TeXRA reads (such as
OPENAI_API_KEYorDEEPSEEK_API_KEY). Claude Code still receives its Anthropic key and Codex its OpenAI key. Your other environment variables are passed through unchanged. An Overleaf or ShareLaTeX clone no longer stores your Git token in the project's remote URL, sogit remote -vand.git/configcannot show it. After cloning, TeXRA offers the token to your Git credential helper (the macOS keychain or Git Credential Manager, for example), so later pulls and pushes still sign in. Without a helper, Git asks for the token. For a project cloned by an earlier version, rungit remote set-url origin https://git@git.overleaf.com/<project-id>to remove the stored token. An error about a malformed MCP config file no longer quotes the file's contents, and an MCP server's error output goes to the TeXRA log instead of the transcript. Raw provider error responses are written to the log, not the transcript.The desktop app shuts down cleanly when startup fails early. If startup failed before the project list opened (for example, when the project records could not be read), shutdown reported two errors and left a state store open.
Diff previews for pending tool edits no longer pile up on disk. In VS Code, the temporary files staged for tool edits still awaiting approval when the window closes are now removed at shutdown.
The
texrachat no longer drops some diagnostics silently — if session resources fail to close when you exit a resumable chat, the error is now printed to stderr after the terminal is restored, and a code block whose syntax highlighting fails shows a dim notice under the plain text.Log entries keep their identifying fields when they carry an error. An error's stack is now written last and capped at eight frames, so it can no longer push a run id or key past the log payload's size limit.
An agent can only run the tools it was offered. A model that named a tool the run had not offered it (one you disabled in settings, a tool the agent does not declare, or one that needs an approval prompt the current host cannot show) could still have that tool run. Such a call now fails as an unknown tool.
A resumed run keeps the tools it was offered. Each tool-use run now records the tools it started with. When you resume it, it is offered those tools that are still available and never gains one it was not offered; a tool that has since been disabled or removed is named in the run's transcript, and a call the model still makes to it returns a
tool_unavailableerror the model can work around. Session history saved by an earlier build is cleared the first time this build opens a workspace, because the stored format changed to hold the offered tools.GPT-5.6 works on a ChatGPT subscription again. Selecting GPT-5.6 sent an abbreviated model name the Codex service does not recognise, and it answered that the model "is not supported when using Codex with a ChatGPT account" — which reads as a problem with your plan rather than with the name. The full model name is sent now.
Windows: TeXRA finds git again. Git installed while TeXRA was running — including from the "Run in Terminal" button on our own "Git not found in PATH" message — is now picked up on the next command instead of only after a restart. Git installed with the "Use Git from Git Bash only" option is found as well. On some machines an unusual
SCOOPorMSYS2_HOMEsetting could make every external command fail; it no longer does.A model call covered by a subscription no longer reports itself as "free" — the run footer and session summary name the plan that covered it (ChatGPT Pro, ChatGPT Plus), falling back to ChatGPT subscription when the account's plan is not known.
Generated agent definitions, session titles and helper answers no longer inherit document text-replacement rules.
Messages you queue for a run are no longer lost when you stop the run or TeXRA exits unexpectedly: they stay queued and are delivered once the run resumes.
A run whose final save failed can be resumed again in the same session; before, it stayed marked as busy until TeXRA restarted.
Resuming a run in VS Code or the desktop app returns as soon as the run has taken your message and is waiting, instead of holding the Resume request until the whole run ends.
A run whose model request you retried successfully no longer resumes as failed if TeXRA exits before the turn ends.
Key changes show up everywhere at once. When the setup agent removes an API key, or a key is changed in another window, the Settings profile and model tabs, the launcher's key banner and the model pickers now update right away instead of showing the old key until something else repaints them. In the CLI, saving or removing the GitHub token under
/configre-checks tool availability, so the GitHub tools are no longer reported as unavailable for the next run.Desktop: Pack also copies the source PDF. The toolbar's Pack action now copies the source document's own files (its PDF) into
History/and sweeps its build files, as the VS Code extension already did, instead of packing only the run's outputs.Deleting a team that no longer exists says so. In the VS Code settings, deleting a team preset that is already gone now reports "Unknown custom team" instead of doing nothing, as the desktop app does. Double-clicking Delete on a custom agent in the desktop app no longer asks twice.
One failed read of a workspace's session history (for example while another TeXRA window holds it busy) no longer stops that window from seeing runs the other windows write; it recovers and logs a warning. A workspace whose close outlived its budget is also released once its runs settle, even when one of their stops failed, instead of refusing new runs until a restart.
The Settings view's tool dashboard no longer spins forever when it cannot be loaded; it shows an empty dashboard and logs why.
The "💸 Premium API pricing" warning follows a model's price instead of its name: GPT-5.6 Pro ($4/$20 per million tokens) no longer carries it, and o1 Pro and o3 Pro now do.
Desktop: tool availability is checked per project. With several projects open, one project's tool check (for example, whether it is a git repository, which the GitHub tools need) no longer decides which tools a run in another project gets or what that project's Tools tab shows.
Desktop: signing in shows your team's agents. After you sign in, the desktop app now fetches the remote agents your account can use. Before, it kept showing the catalog it loaded while signed out until you restarted it.
Saving a custom agent no longer re-downloads the remote catalog. In VS Code, editing an agent YAML in your agent directories rescans only the local agents and keeps the remote ones already loaded. A run that names an agent the catalog has not seen yet rescans the local directories once before it reports the agent as missing.
A plan's summary is its first line of prose, not a raw heading. A plan that opened with a markdown heading such as
### Objectiveshowed that heading, hash marks included, as its one-line summary in the terminal's plan panel and in the plan notice an orchestrator receives. A heading is used only when the plan has no other text, without its marks.
Extension (VS Code)
Breaking Changes
- The Create agent with AI wizard is removed — the Agents tab's Create agent button and the
texra.createAgentWithAIcommand are gone. To have an agent drafted for you, run the built-increatoragent, which writes and tests the YAML in a recorded run; Create from template in the Agents tab still starts a new agent file. - Removed: the Agent Review panel in Source Control — the Find Issues section, its commands, the
changeRevieweragent and the "Automatically review your changes after each commit" setting are gone. To review a change, ask thecodeRevieweragent in the TeXRA panel. - "Clean All LLM Output Files (Workspace-wide)" is removed — it is gone from the command palette, the Progress toolbar and the getting-started walkthrough. Clean in the Progress toolbar now clears the selected run's output folder.
- A shorter command palette and a quieter first run — the palette lists what an author reaches for, in the panel's own words: New Task (
Ctrl+Alt+M, replacing Show Launcher and New Session), Show Sessions (Ctrl+Alt+P), Open Sessions in Editor, Open Settings, and Format Current LaTeX File. The per-tab settings commands, Execute Agent, View Profile, Sign Out and Remove API Key stay bound (to keys, buttons and links) but leave the palette; Settings owns them. Removed: Toggle Sessions Drawer and itsCtrl+Alt+Tkey (the panel's Sessions button does it), Indent All LaTeX Files, Import or Create LaTeX Project, and Sign In with Grok Subscription (Settings has it). TeXRA: Sign In is now Sign In to TeXRA Account (Remote Agents), since model access never needed it. The panel's title bar no longer swaps in workspace-wide Indent and Clean buttons over a conversation. Delete All build/ Folders in Workspace (formerly Clean All Build Files) now lists the folders and asks before deleting them, then says what it did. On first run only the welcome card in the TeXRA panel opens; the walkthrough no longer opens beside it and is down to four accurate steps, and the Get Started status pill opens the welcome card. The tasks pill shows only while something is running. - The LaTeX settings page is shorter — it now shows your LaTeX dependencies, the recommended VS Code settings, and the compile, diff, formatter and inline-criticism switches, using the same names as the CLI's
/config. The replacement-engine groups and custom replacement maps, and the two millisecond timeouts, are no longer on the page; they keep their defaults. Replacement rules can still be set in.texra/config.json, and both timeouts in the CLI's/config. The per-row "customized" markers and Reset buttons are gone: set a switch back by flipping it. Open the compiled PDF and Repair failed compiles are greyed out while auto-compile is off, since they only act on its result. - Settings has six pages instead of thirteen (extension and desktop): Models, Agents, Tools, LaTeX, Memory and General, in one row. Connecting a model happens on Models, which now holds ChatGPT, Grok and Copilot sign-in next to the API keys; Kimi Code and GLM Coding Plan usage shows on their key rows. Teams and Skills are sections of Agents, with compaction, retries and team coordination under Advanced. Integrations are a section of Tools. Account sign-in, telemetry and Git are on General. The Goals page is gone; a run's goal shows in its header. OpenAI background responses, parallel tool calls, the GPT-5 reasoning summary and Google background responses keep their defaults and are set in
.texra/config.json. - Settings pages show one section at a time (extension and desktop): a page with several sections gets a second row of sub-tabs (Models: API keys, Subscriptions, Models; Agents: Library, Teams, Skills, Advanced; Tools: Approval, Tools, Integrations; LaTeX: Dependencies, Compile & diff, Formatting, and VS Code settings in VS Code; General: Account, Git), so a long page like Agents no longer scrolls through everything. Each page remembers its sub-tab while Settings stays open, and commands such as Agent Team Settings or Git Settings open the matching sub-tab.
Changes
- Settings has a gear in the TeXRA panel header, next to New task, in every state and in the editor tab; the hover-only gear in the view's title bar is gone. Editor tabs read "TeXRA Sessions" and "TeXRA Settings", a session row says "2 background tasks · 1 running" and "Needs approval" instead of bare number badges, and the run header's chip reads "3 tool calls" rather than "t1, 3 tool calls".
- The TeXRA panel is calmer. A run shows one header row with one Stop and one ⋯ menu instead of two stacked headers. A new project shows one card at a time (setup, then "No LaTeX files yet") and at most one warning above the composer; the "TeXRA account — Sign in" card is gone (sign in from Settings). A missing tool is named in one sentence that says what TeXRA can't do without it. Open dashboard and Attach TeX Count left the ⋯ menu (the header's Settings gear and the Input file menu have them). The desktop app no longer draws a second header, Sessions button and New task inside its own window.
- Restored: the auto-approve switches in the run header. A live run's header has switches for edits, commands and agent work again, so you can turn auto-approval on mid-run before stepping away instead of waiting for the next approval card. In the narrow sidebar they are checkable items at the top of the run's ⋯ menu.
- Deleting a session asks first. The × on a Sessions row, which deleted the conversation in one click, is gone. Delete now lives at the end of the run's ⋯ menu, asks for confirmation, and is not offered while the run is still going.
- A finished session says what to do next. Where the message box stood, an ended session now shows "This session has ended." with an Edit as new task button (it opens New task with the same agent and instruction), plus Resume when the session was interrupted. Workflow runs get the same line. Edit as new task left the ⋯ menu. The run board calls steps it has not reached "Not started" instead of "Declared".
- Run and diff buttons say what they do. A delegated agent's row reads "Subagent: lint" with Copy to new task (was "Delegate agent" and "Restore setup"); the multi-agent proposal names its model in the first line; and the LaTeXDiffs buttons are Diff vs. edited, Diff vs. commit, Move to Diffs folder (was "Pack") and Delete diff files, with refresh icons on the two refresh buttons.
Bug Fixes
- Clearing the agent commit name or email in Settings resets it to the default. The field used to go blank while the old value stayed in use.
- The selected session row is readable on desktop. It drew dark text on a black background.
- Cancelling TeXRA sign-in no longer counts as signing in. In a single-folder window, the sign-in prompt that setup, a team launch or the remote agent catalog opens reported success even when you closed it without signing in, so TeXRA went on as if you had. It now reports the cancellation.
CLI and Agent SDK
Breaking Changes
- One word for saved teams. The CLI, settings, setup assistant and guide say "team" for a saved set of agents with an optional lead, and "agents" for the set a workspace shows; "roster" and "multi-agent preset" are gone from
texra config agents, the/configform and the docs. The names under the words changed to match:texra multi-agent list|show|runis nowtexra team list|show|run(no alias). Machine-readable NDJSON kinds are renamed:agent-roster(fieldroster) isworkspace-agents(fieldagents),multi-agent-resultisteam-result,multi-agent-presetisteam, andmulti-agent-preset-inspectionisteam-inspection; update any script that reads them. Atexra historyJSON/NDJSON entry names its team inteamId(wasteamPresetId), andtexra team show|runhelp calls the argument<TEAM>. The VS Code commandtexra.showMultiAgentis nowtexra.showTeamSettings, so a custom keybinding on the old id stops working. The saved agent selection and saved custom teams moved to the state keystexra.workspaceAgentsandtexra.customTeams; a selection or custom team saved under the old keys is not read, so choose or save it again. - Fewer chat slash commands —
/api,/authand/logoutfold into/login, whose form already signed you in and out and set subscription preferences;/login statusprints what/authdid. The typed preference shortcuts/api chatgpt,/api grok,/api kimi-codeand/api glm-codeare gone with it: set which subscription serves a provider's models from the/loginform or/config./login chatgptand/login grokstill sign in./yoloand/goalfold into/approval, which also gains per-session Auto-approve commands and Auto-approve edits toggles (the same grant as answering a prompt with "approve for session")./toolslives under/config→ Tools. texra history shownames the saved checkpointcheckpointPresent— the--json/--ndjsonfield washasFlowRecord, and the text output printsCheckpoint: presentinstead ofFlow record: present. The session's stored rows are renamed with it (run.snapshot,run.position), so session history from earlier builds starts over once.- Esc no longer stops the running agent — it closes panels and returns to the parent session. Stop a run with Ctrl-C, or with
kin the session list. - A quieter status bar — the key row names keys only (
Tab,Ctrl-T,/for commands,Ctrl-C) and no longer repeats the open panel's own keys; "API keys" and the chat turn counter are no longer shown, and the auto-approve policy readsauto-approveinstead ofyolo. defineToolreturns a tool object, not a class —@texra-ai/agent'sdefineToolnow takesexecutein its definition and returns the tool itself, ready to pass intools. Subclassing it and callingnewno longer apply —class Echo extends defineTool({...}) { protected execute(i) {...} }withnew Echo()becomesconst Echo = defineTool({ ..., execute }). The exportedDefinedToolClasstype is replaced byDefinedTool, and a tool'sdescriptionis a plain string.texra tools listandtexra skills listJSON changed shape — both now print the same records the Tools and Skills settings tabs show. Each tool record gainsdescription,tools,installActions,configNotesandauthNote, and dropsdetected,note,installCommandandauthCommand(statussays whether the dependency was found; the commands are entries ininstallActions). Each skill record renamessourceLabeltolabelandsourcetosourcePath, and gainsenabled. The text output of both commands is unchanged.texra run --output-format jsonresult changed shape — the result (and the NDJSONresult/agent-resultrecord) now carries the run's output underoutput:output.category, andoutput.outputs,output.compileFailuresandoutput.diffsfor a workflow run, oroutput.responseandoutput.filesfor a tool-use run.executionIdandstreamIdare replaced byrunId, andtotalCostUsdbyusage.totalCost, beside the run's other token totals inusage.outcome,workingDirectory,runDirectory,copiedOutputandcopiedOutputsare unchanged. A workflow run'soutput.diffslists the text diff of each output against its original, written underdiffs/in the run directory.- Node.js 22.19.0 or later in 22.x, or Node.js 24 or later is required.
texra orchestrateis gone, and baretexranow opens chat — the launcher menu that sat in front of every interactive command is retired. Baretexrastarts a chat session when stdin and stdout are both terminals, and prints help when either is not. What the launcher offered lives in that session:/agentfor the root agent,/modelfor its model,/resumefor history,/loginfor sign-in and keys,/configfor settings. Start a team withtexra team run <team>; a resumed team session still carries its scoped agents. The launcher's team step was the one way to start a preset-scoped team in the interactive TUI, and that path is removed rather than replaced — usetexra team run, or/agentin a chat for an unscoped session with the team's lead.texra history show --export htmlno longer takes--assets-dir— the shared-assets export mode, which staged the trace viewer into a directory and wrote only the trace JSON to stdout, is gone. The default single-file HTML export is unchanged.texra chatno longer starts on the last run's model — the chat model comes from your workspace or user config, and otherwise from the CLI's built-in default. Set a model in config if you relied on the previous run's choice carrying over.texra agents runis gone — usetexra run. One headless run command now serves both agent categories:texra run <agent>runs a workflow agent or a tool-use agent, picking the run shape from the agent itself. There is no alias or deprecation shim.--output/--output-dirstay workflow-only and a tool-use agent still needs an instruction —--instruction,--instruction-file, or both; using one on the wrong category is a usage error that names the flag and the agent's category.--inputis no longer a required flag, because a tool-use run may take none. A name carried by both categories is refused rather than resolved to one of them: the error names both candidates and their source-qualified spellings.@texra-ai/harnessexports the platform's ports and a request's refusals. The root entry now exports the port types anAgentPlatformimplements, the failures its stores answer with, the services a plugin's code reads them as, the request errorsSession.requestfails with, and the availability contract;@texra-ai/harness/nodeexports the Node building blocksnodePlatformis made of.- A plugin can own one request kind's decisions (
Plugin.decision). The harness runs the owning plugin's hook before a decision on a pending request of that kind commits.installProcessRuntimehas nosetupoption: a host passes its setup capabilities with its plugin list.
Bug Fixes
/agentshows workflows again. Once teams joined the picker its list overflowed at every terminal height, and the Workflows section with itstexra run <name>hint was dropped. The picker now scrolls its agents and teams inside the rows left after the Workflows section, which folds to one summary row on short terminals instead of disappearing. The status bar names a Block policy "Block", as/approvaldoes, and/confignames its two agent categories "Subagents" and "Codex and Claude Code"./approvalshows its auto-approve toggles as unavailable until the chat's run can take the grant, instead of offering toggles that were then refused.Slash-command results no longer read as the model speaking. In the terminal chat, what a command reports (
/model,/approval,/login, …) is a dim row led by», failures are red!errors instead of plain text, and a refusal that only needs a hint ("Finish the active response before switching models") shows in the notice line instead of the transcript. Sign-out and account results keep one fact per line, and a failed sign-in shows its link on its own line./helpand/memoryecho the command they answer, and a direct/login chatgptno longer leaves a permanent row for each status line./forms span the full terminal width —/login,/config,/agentand the other slash-command panels were capped at 80 columns and cut their option labels off at 24 ("Prefer ChatGPT subscrip…"). They now fill the terminal like the readers and approval cards, and a label may take up to 40% of the row before it is truncated.No more
DEBUG Runtime event:lines on stderr — a run in text mode printedDEBUG Runtime event: requestOpenFile(and the same forrequestEnsureProgressView) for events that render nothing.An
Escnumber chord no longer types its number — pressing Esc, a short pause, then1–9focused that session and also put the digit into the chat draft, so the next prompt went out as, say,3In ONE response….The edit approval card opens on the edit — when the changed text sits on a long line that wraps over several rows, the diff opened on the untouched rows before the change, with the edited words scrolled out of view; it now opens where the new text differs from the old. The card's title names the file relative to the workspace instead of wrapping its absolute path over several lines.
[0.40.10] - 2026-09-06
Shared (all surfaces)
Bug Fixes
- Unwritable
--outputand--output-dirpaths are usage errors — a path the CLI may not create or write (permission denied, operation not permitted, read-only file system, a missing parent) is reported with the path and exit code 2, before the model is called, instead of as a crash to report. An existing target file you cannot write is caught up front too. - A workflow that fails its LaTeX compile says so —
texra runnames the document that failed to compile and its log file on stderr instead of ending on a bare "Error". - Cleaner headless stderr — run notices no longer carry a log timestamp, an invalid value in
.texra/config.jsonis reported once instead of twice, andtexra doctorlists config warnings only in its Config row. - No run description after the run ends — stopping a run with Ctrl-C no longer lets its generated description arrive after the final
run.endrecord in--output-format ndjson. - The "use your own API key" retry works the same everywhere — when a Kimi Code or GLM Coding Plan quota runs out and the matching provider key is already saved, every app now retries on that key by itself, including runs with nobody watching and subagents, and says so in the run. Before, only the terminal app did this. When the key is not saved yet, pressing
kin the terminal app now asks for it instead of telling you to use/keyfirst, and a key whose account ran out of credit can be replaced from the terminal app's retry prompt too. - Google image uploads fail visibly — a missing or failed Gemini attachment now stops the request instead of sending it without the file.
- Finished and crashed runs are no longer treated as still running — TeXRA no longer infers that a run is live just because it has no stored outcome, so a run another process owns or one that died is reported accurately.
- Workflows cannot read storage files by raw path — a workflow step that names a workspace-storage file that is not a declared child-run output is refused.
Extension (VS Code) and Desktop
Changes
- The agent you pick decides the run type — the Mode chip (Interactive / Workflow) is gone from the New task composer. The Agent menu lists interactive agents, document passes and teams as sections, and the composer keeps one draft instead of one per mode, so switching agents no longer swaps out what you typed. A draft saved by an earlier build is cleared once.
- A quieter New task composer — the paragraph of guidance under the composer is gone, the narrow sidebar shows the Agent and Model chips instead of one combined Setup menu, and the follow-up line names its target only when you can send the message to a parent run instead.
- The run view shows each fact once — a context compaction is one row that also says how many tokens it freed, instead of two, the workflow board leaves spend to the usage footer and elapsed time to the header, its footer appears only when a call failed, and "Kill run" is gone from the board because the header's Stop does the same. The Tasks panel names the task in progress in its summary and stays open or closed as you left it when you switch runs.
- Every request the agent makes is one card with the same buttons. Edits, commands, proposals, plans, questions, outside-model inquiries and failed model calls now open with one sentence saying what the agent wants, and end with the same row: the main action on
y(Approve, Submit or Retry), an optional ▾ Approve all edits / commands / agent work in this run ona, and Reject, Skip or Stop run onn, which answers in one click. Add a note… attaches an optional note for the agent. Esc no longer answers anything; on a failed model call it used to end the run. - "Skip proposals this session" is removed. Despite its name it approved the workflow and switched on auto-approval for every later task, edit and command in the run. The Approve ▾ menu's Approve all agent work in this run is the one place that grant lives.
- Closing the VS Code diff tab no longer rejects the edit. The diff tab only shows the change; the request stays on its card, where Open diff reopens it. This matches the desktop app.
- The outside-model inquiry card leads with the question and the answer box. Context, earlier turns and chat links move under More, and the links now open ChatGPT and Gemini chats instead of their pricing pages. Skipping an inquiry no longer offers a note the agent would never see.
Bug Fixes
- File lists no longer look used when the agent ignores them — the Input and Context lists and the auto-extract and TeX Count options now appear only for a document-pass agent. An interactive agent never read them, so a file added there was silently dropped.
- The session transcript uses the full panel width.
- Selected conversation tabs and settings cards are readable — selected-row text now contrasts against the highlight instead of blending into it.
- The follow-up composer is easier to use — extra empty space above the placeholder is gone, and focus stays on the composer card.
[0.40.9] - 2026-09-06
Shared (all surfaces)
Features
First run in the terminal opens the chat with a "Connect a model" panel. Before, a fresh install showed a three-option picker; choosing "Skip for now" exited with a missing-API-key error and saved the skip, so every later
texraprinted that error and quit. Now the chat always opens, and when no model is connected the panel offers a ChatGPT or Grok subscription, a provider API key (including Kimi Code and GLM), or device-code sign-in for SSH. Esc leaves you in the chat with "No model connected · /login" in the status bar; a message you type meanwhile is held and sent as soon as a model is connected. On a first run the chat then goes to the setup assistant and opens/agent./agentcan start a team. Alongside single agents, now shown with their descriptions, it lists the team presets (Lean Project, Physicist, Mathematician, Computer Scientist, Software Engineer and your custom teams) with any unavailable members. Picking one sets the team's lead as the root agent with the team's agents, the same way the extension and desktop launch a team. Before, a team could only be started withtexra team run./logingains an Add a provider API key row.GPT-6 Astra is available — OpenAI's most capable model joins the model list with a 1M-token context window, reasoning effort up to Max, and vision, and it works with Codex subscriptions on Pro, Enterprise, and Business Premium plans.
[0.40.8] - 2026-09-03
Shared (all surfaces)
Features
- GPT-5.6 is now the default model — new conversations start with GPT-5.6 instead of Sonnet 5, and it leads the model picker. Existing selections are unchanged.
- Gemini 3.8 Flash is available — the new Flash model replaces Gemini 3.7 Flash in the default model list with improved reasoning and coding at the same introductory price. Existing selections of Gemini 3.7 Flash keep working while Google serves them.
- Muse Spark 1.3 is available — Meta's latest standard model joins the default model list with a 1M-token context window, multimodal input, prompt caching, web search, and configurable reasoning. Existing selections of Muse Spark 1.1 keep working while Meta serves them.
- Claude Fable 5.1 is available — Fable 5.1 replaces Fable 5 in the default model list, and the Claude Code agent tool now selects Fable 5.1. Existing Fable 5 selections keep working while Anthropic serves them.
Improvements
- Font Awesome Free icons are properly attributed — the shipped products now carry the required CC BY 4.0 attribution in their NOTICE files.
Bug Fixes
- Prevent crashes in long-running sessions — sessions that run many subagents no longer exhaust memory and crash. Finished child agents now release their records on the CLI as well as in the extension and desktop app.
- Voice recordings transcribe reliably — finishing a recording no longer risks an empty or failed transcription when the audio file takes a moment to finish writing.
- A failed start no longer blocks later runs — when a run fails to launch, its slot is released so later starts on the same conversation work instead of being refused.
- Explain failed external-tool checks — the Tools dashboard now distinguishes a broken availability check from a tool that is simply not installed.
Extension (VS Code)
Bug Fixes
- Archive custom-agent output on Windows — packing generated files into the History folder now works for custom agents.
Extension (VS Code) and Desktop
Bug Fixes
- Resuming a run explains failures — when TeXRA refuses to resume a run, the extension and desktop app now show the reason instead of failing silently.
CLI
Bug Fixes
- Exiting an idle run no longer cancels it —
/exitnow follows the same quit policy as Ctrl-C, so leaving an idle conversation keeps it resumable instead of cancelling it and clearing pending approvals. - Unavailable runs explain why they cannot accept input — the composer now shows when another TeXRA process holds the run or its saved state is unreadable.
[0.40.7] - 2026-08-31
Shared (all surfaces)
Breaking Changes
- Inquiry threads do not transfer to older TeXRA versions — TeXRA 0.40.0-0.40.5 cannot read threads created in current builds or deliver their answers. TeXRA 0.40.6 can read the threads, but cannot deliver answers across versions. Finish or drop open inquiries before switching.
- Approve a multi-agent workflow as a whole — reviewing each call, or the first call of each phase, is no longer an option. Skip or retry individual agents from live progress. Restart any 0.40.6 run you left waiting on that review.
Features
- Use longer ChatGPT subscription context windows — the CLI, extension, and desktop app now let you raise the input token budget for supported GPT models while keeping the standard limit by default.
- Choose skills per workspace — the extension, desktop app, and CLI now let you enable or disable individual skills and skill source groups from one consolidated skills display. Skills are off by default until you enable the master skills switch.
- See the whole workflow plan while it runs — phases that have not started yet stay visible, running agents show what they are doing, and work that needs you is listed first. The progress view and CLI show the same picture.
- Run more workflow agents in parallel — multi-agent workflows follow the same parallel-work limit as other child agents. That limit now defaults to this computer's CPU count instead of four; you can still set a number.
Bug Fixes
- Google model runs no longer hang — they time out instead of waiting forever, and a brief background glitch no longer fails the turn.
- Workflow resumes and compile checks stay trustworthy — completed work is reused after you edit or reorder the script, and a workflow that rejects uncompilable output now fails on the last round instead of adding an extra one.
- A restarted workflow shows only the current attempt — tasks from an earlier try no longer mix into live progress.
- GLM Coding Plan and custom GLM URLs apply where you configured them — running a model and checking usage now use the same connection.
- A bad key lookup no longer hides your other providers — TeXRA keeps checking the rest and reports the failure instead of looking unconfigured.
- You cannot continue a finished run that still has child agents — TeXRA refuses the follow-up instead of taking a message it cannot run.
- Long sessions stay stable — TeXRA no longer keeps growing memory as a session continues.
- Elapsed time only counts active work — waiting time is no longer included after you resume.
- Sign-in copy says “TeXRA account” — remaining Researcher Access wording on sign-in, setup, and the CLI now uses that name.
Extension (VS Code) and Desktop
Bug Fixes
- Polish results return to the view you started from — they no longer appear in a different progress view.
- Approval cards show the model's usual name — not a raw model id.
- Delete actions for generated files say what they remove — including latexdiff copies.
- Settings and progress stay usable in a small pane — tabs wrap, keyboard and screen-reader labels are accurate, and reduced-motion and right-to-left layouts work.
- Starting a run and walkthrough buttons keep working — an info message no longer blocks desktop launch, and walkthrough steps that need a folder now say so.
Desktop
Bug Fixes
- You can see pending approvals with the sidebar closed — a badge appears, and an approval on another task opens the sidebar once. Setup dialogs have buttons you can click, and the Tasks count matches the list you see.
CLI
Features
- Inspect a running workflow without leaving the conversation — Enter opens it as phase tabs over the chat. Switch phases, jump to failures, skip or retry a call, or open that agent; Esc returns you to the parent.
- Account and model access are one list — the launcher and
/api,/login, and/logoutall open it. /goalchooses what Goal may auto-approve — commands only, or all agent work. Finished to-dos collapse so current work stays visible, and the terminal tab stops spinning when the session is idle.
Bug Fixes
- Saving a GLM key explains the Coding Plan — the row is labelled for both regular GLM and the Coding Plan, and a note tells you how to turn the plan on.
- The status bar stays readable and the running cost stays correct — the queued-input warning is not squeezed out on a narrow terminal, and long conversations keep an accurate spend.
[0.40.6] - 2026-08-28
Shared (all surfaces)
Breaking Changes
- Saved multi-agent workflow checkpoints must be restarted — checkpoints created by TeXRA 0.40.5 use an older journal format that 0.40.6 no longer loads. New checkpoints remain reusable when calls are inserted, removed, or reordered.
Features
- Review multi-agent work one phase or call at a time — before an issued call starts, you can inspect its resolved agent, model, files, and output contract, then approve, reject with feedback, or skip it. Approving all delegated work still admits the remaining calls at once.
- Live workflow progress distinguishes plans from actual calls — declared plan labels, queued calls, active work, cached results, retries, and phase totals now have distinct states instead of appearing as one flat list.
- GLM reasoning controls match each model — supported effort levels, including Minimal where available, are shown per model; GLM-5.3 keeps its required reasoning enabled, and GLM-5.3 Flash joins the preferred list.
Bug Fixes
- Multi-agent resumes reuse the right completed work — unchanged calls are recovered after script edits or reordering, remain visible across repeated resumes, and no longer depend on their previous list position.
- Workflow phases keep accurate status and timing — completed phases retain their own finish times, failures do not mark earlier successful phases as failed, and phases that never ran no longer appear as active work.
- Interrupted and high-volume runs preserve their state reliably — an abort during startup no longer destroys an existing checkpoint, snapshot flushing cannot spin indefinitely, and large history deletions use bounded work.
- Model requests retain provider-specific controls — Grok honors the chosen temperature, GLM reasoning survives compaction, and OpenRouter reasoning details are replayed exactly once across tool follow-ups.
- LaTeX replacements preserve operators and document text — math-operator subscripts, escaped spacing and delimiter commands, rho notation, and TikZ content containing replacement markers are no longer corrupted.
- Agent output and previews fail less mysteriously — single-document XML output parses normally, between-round LaTeX diffs no longer depend on an unrelated base file, and stale approval previews are not substituted for unreadable files.
- Tool calls tolerate provider-compatible optional fields — Plan, inquiry, memory, media, and other multi-command tools now accept the nullable fields emitted by OpenAI-compatible providers without rejecting the selected action.
- Tool results point to the right next step — execution details advertise their result view, paginated search no longer links to an empty page, figure extraction reports the full discovered count, and Lean errors give host-appropriate setup guidance.
- Polling and launch failures retain useful state — malformed GitHub comment data no longer hides the next issue close or reopen, Lean startup failures reach the dashboard, and agent-launch errors keep their underlying cause.
- Storage and rendering failures are reported instead of hidden — TeXRA now surfaces failed transcript writes, workspace preparation, credential reads, and cleanup while preserving work that already completed successfully.
Extension (VS Code) and Desktop
Bug Fixes
- Team launches no longer wait for informational messages — partial-team and launch-error notifications cannot hold the run until their message is dismissed.
- Progress controls and answers stay tied to the right run — deleting one stream no longer resets proposal ordering for every stream, running Codex turns show an active indicator, and typed question responses preserve checked options.
- Round output refreshes and compares correctly — deleted files disappear from the current round, and “Compare with previous round” is available when the rounds differ.
- Credential-probe failures no longer look like an empty setup — transient credential errors are reported instead of permanently completing onboarding with the wrong answer or blanking the launcher.
Desktop
Bug Fixes
- The interface fully recovers after an initial renderer failure — workspace files, keyboard shortcuts, and the command palette are restored when startup succeeds on retry.
- Settings actions cannot fail silently — unavailable Git actions now report an error, and subscription usage colors use desktop-compatible theme tokens.
Extension (VS Code)
Bug Fixes
- Getting-started actions work before a folder is open — walkthrough buttons now explain the workspace requirement and offer to open a folder or create a sample project instead of silently doing nothing.
- Grok sign-in is available from the Command Palette — the command is now exposed whenever TeXRA is active.
CLI
Features
- Workflow dashboard rows read like the board's — each phase shows
done/total · N running · N failedplus one marker per call, the panel heading's tally is labelled as the whole run, a call's status word no longer gets clipped by its metadata, and phase and task rows line up in one column.
Bug Fixes
- Queued follow-ups survive a root run ending early — a submission waiting for its stream assignment is retained instead of being silently discarded.
- Account changes recover cleanly — cancelling a coding-plan credential update restores the prior setting, and Grok appears in the login and logout pickers.
- The focused subagent list gets the available space — the to-do and plan panel stays hidden while the child-session list has focus.
- Commands validate before opening external pages — GitHub Action setup finishes its local checks before opening the GitHub App installer, and narrow terminal layouts reserve enough room for the full TeXRA header.
- Shutdown and export failures are visible — transcript, usage, lifecycle, and trace-viewer read failures are reported with their actual cause.
- The terminal shows the same run the progress view does — a workflow agent's transcript no longer hides its reasoning, replies, and prompts, a relaunched workflow keeps its earlier attempt on screen as a closed group, and phases are the phases the run actually opened rather than rows grouped by a repeated label.
- Workflow review prompts remain clear and reliable — review keys stay visible in narrow terminals, cards show readable model names and approval scope, failed inquiry persistence no longer crashes the CLI, and prompt failures are reported instead of being mistaken for feedback-free rejection.
- Configuration and help commands follow their documented inputs — approval policies tolerate surrounding whitespace and case differences, global flags no longer confuse
texra help, and unreadable setup paths are reported instead of being treated as absent. - Live transcript ordering remains stable after repainting — completed tool and file rows keep the same order after a resize, label update, or scrollback trim.
[0.40.5] - 2026-08-26
Shared (all surfaces)
Bug Fixes
- Google background responses are off by default — Gemini workflow generations stay on the live request unless you turn them on in the Google provider settings. OpenAI's background setting is unchanged.
- Codex runs use the installed runtime consistently — TeXRA recognizes the current Codex installation layout, honors Extra high reasoning when that runtime accepts it, and retains the High fallback for older installs.
- Stopped and failed runs remain resumable — stopping a waiting run, a failed child run, an early setup failure, or a missing structured submission no longer discards or strands saved progress.
- Corrupted conversation state fails with a clear validation error — invalid saved provider messages are rejected during resume instead of causing a confusing failure later in the model request.
Extension (VS Code) and Desktop
Features
- Separate AUTO-EDIT, AUTO-BASH, and AUTO-TASK run controls — the extension and desktop run toolbar now matches the CLI: file edits and shell commands each have their own auto-approve toggle, and AUTO-TASK remains the complete grant for delegated agent work.
Bug Fixes
- Team badges show the team actually in use — Settings restores the active team when opened, does not mark cancelled or blocked team changes as active, and refreshes when the agent roster changes.
Extension (VS Code)
Bug Fixes
- Follow-up results return to the view that sent them — switching progress views while attachments are being saved no longer applies a submission result to another view's draft.
CLI
Features
- Terminal tabs use compact live titles — tab titles keep the project and run state visible under truncation, with distinct running and approval-needed markers.
Bug Fixes
- Work plans survive partial history-load failures — live plan and to-do updates no longer disappear when another saved workflow artifact cannot be loaded.
- Ignored chat defaults explain why — malformed user configuration, invalid agent or model defaults, and misspelled
chatkeys now produce a warning unless--quietis active.
[0.40.4] - 2026-08-23
Shared (all surfaces)
Features
- DeepSeek V4 Flash Vision (Exp) is available —
deepseekvisionaccepts image attachments alongside text.
Improvements
- TeXRA's client software is now open source under Apache 2.0 — the extension, desktop app, CLI, and published libraries now carry the same license and attribution notices. The hosted service remains governed by its Terms of Service. The Researcher Access Program name has been retired, but academic access to the hosted agent catalog is unchanged.
- The website and user guide have been rewritten and expanded — setup, model, tool, and CLI guidance now matches the current product, a new multi-agent workflows guide explains scripted orchestration and resumable runs, and the site foregrounds theory work with clearer navigation and consistent examples.
Bug Fixes
- Google and VS Code models can tell attachments apart — Google models now receive each attachment's filename, and VS Code-hosted models receive a label for every image, so models can match their analysis to the correct file.
- Refused follow-ups keep their drafts — text and attachments are cleared only after the session accepts them, so a failed submission can be retried.
- Interrupted runs remain safely resumable — valid recovery state is preserved after failures, stops, and restarts, while a run active in another window stays read-only instead of being taken over.
- Delayed inquiry answers return only to the run that asked — a late answer can no longer be delivered to a newer run in the same conversation.
- OpenAI authentication failures use the normal recovery path — a rejected connection now reports the credential or access problem instead of surfacing as an unhandled or generic connection failure.
- Delegation errors use current model-access guidance — an unavailable model no longer prompts you to switch the retired API mode and instead points you to the configured model access that needs attention.
Extension (VS Code)
Bug Fixes
- Editor sign-in callbacks are bound to the sign-in attempt that created them — stale, mismatched, expired, duplicate, and replayed callbacks are rejected, while a valid callback can still complete after a restart or in another editor window.
- OAuth sign-in returns to Antigravity IDE — the browser callback now recognizes Antigravity and opens the TeXRA extension there to finish sign-in.
CLI
Features
- Reliability controls are available in
texra config— command-line users can now configure the compaction threshold and automatic retry limit without opening the extension or desktop settings.
[0.40.3] - 2026-08-20
Shared (all surfaces)
Breaking Changes
- TeXRA-hosted "included" model access has been retired — model calls now run on your own provider API key, a ChatGPT or Grok sign-in subscription, or the API key for a Kimi Code or GLM Coding Plan subscription. Signing in with GitHub or Google still unlocks the hosted remote-agent catalog, including the orchestrator, and remains free for academics through the Researcher Access Program — but the agents it unlocks run on your configured model credential, so sign-in alone is no longer enough to start a run. Onboarding and setup guidance now reflect that distinction.
Features
- Export a conversation from the progress toolbar — Markdown, HTML, and PDF export now lives on the run toolbar in the progress view, so you can still save a transcript after the History tab was retired.
- Gemini 3.7 Flash is available — the new Flash model replaces Gemini 3.6 Flash in the default model list at half the price. Existing selections of older Flash models keep working while Google serves them.
- GLM-5.3 is available — Zhipu's new flagship coding model replaces GLM-5.2 in the default model list, with a 1M-token context, reasoning-effort tiers, and prompt caching. Existing GLM-5.2 selections keep working while the provider serves them.
- Lean Project remotes are available after sign-in — the hosted Lean agents no longer need a special access group.
- Grok subscription quota can fall back to an xAI API key — when a SuperGrok plan hits its usage limit, the retry prompt can turn off the Grok preference and continue on a saved xAI key, the same way ChatGPT, Kimi Code, and GLM Coding Plan already do.
Bug Fixes
- Subagent stop preferences follow you between projects — "Keep subagents running" and "Allow orchestrator cancellation" are your preferences, not a property of one folder, so they are now stored once per user and honored everywhere. A value saved before this change is not carried over: set it again if you had changed it, and the log says so when it finds one.
- GPT-5.6 ChatGPT-subscription sessions use the same 272k input budget as GPT-5.5 — matching the current Codex catalog, so history is compacted before the unofficial backend rejects a turn.
- A missing helper model falls back to DeepSeek V4 Flash — disabling or removing the helper no longer silently switches auxiliary tasks to the first picker model.
- An unknown agent name is reported once, with next-step guidance — the error no longer appears twice, and command-line users now get the same "agent not found" hint as the other surfaces.
- Custom agents that fail to load now say why — invalid YAML or retired settings no longer vanish from Settings → Agents. The tab lists the skipped files, and
texra agents listwrites the same reasons to stderr. - Long Grok prompts report their true cost — xAI raises per-token rates once a prompt crosses the model's long-context threshold; usage costs for those requests no longer underreport.
- Cached Grok tokens bill at xAI's real discount — the cache rebate previously never applied, and xAI models without documented long-context rates now warn instead of silently billing flat. Rare request edge cases also no longer drop a request's body, headers, or cancellation.
- latexdiff no longer rewrites citations as changed prose —
\citealp,\citeauthor,\citeyear,\supercite,\smartcite,\nocite, and their capitalized forms are now recognized wherever citations are, so a diff marks up the surrounding sentence instead of the bibliography key, and citation-key extraction sees the same macros latexdiff does. - A placeholder API key is rejected everywhere — pasting a masked or example value such as
sk-xxxxxxoryour-api-keyinto Settings → Profile is now refused with an explanation, the waytexraalready refused it. A failed key save or removal is also shown in the desktop app instead of only reaching the console. - Delegating to a tool-use agent no longer fails on newer Node.js — launching a subagent no longer dies immediately with a request-body error.
- Command rejections preserve the user's actual instructions — rejecting a shell-backed action without a note no longer presents generated retry guidance to the agent as though the user had written it.
- Read-only completion checks stay focused — end-of-session review no longer asks to inspect project plans, Git history, or pull requests when the current task and its delegated results already contain the evidence needed.
- Tool-use chats no longer show misleading round jumps — internal model and tool calls no longer appear as skipped user-visible rounds after a chat continues or resumes.
- Concurrent app starts refresh bundled agents safely — simultaneous TeXRA processes sharing one data directory no longer fail while updating built-in agent definitions.
- Claude Code forks leave the original conversation unchanged — an incomplete fork now stops instead of continuing the original conversation.
Extension (VS Code) and Desktop
Features
- The model picker now starts with Sonnet 5 (Thinking) — Gemini is no longer the first entry. New installs and chats without a saved picker choice use Sonnet; an already-chosen model is left as-is.
- Background tasks start collapsed in Sessions — a new sub-agent or nested run no longer opens the parent row; expand it to inspect children. Selecting a child, or a pending approval on one, still reveals the ancestor path.
- Remote agent prompts are available to every signed-in account — Settings → Agents no longer hides View prompt behind an Ultra plan, and remote agents no longer show a Remote badge or access-group labels.
Improvements
- Subscription usage no longer repeats the same percentages — plan meters show each window once, without a disclosure header that restates the same 5-hour and 7-day figures.
- Workflow runs trade the Follow-up chat panel for a Copy button — the panel that started a tool-use chat from a workflow's outputs (agent picker, model picker, note box) is gone. In its place the run's header toolbar has a Copy button that puts the run, its output paths, and any compile failures on the clipboard as plain text, to paste into whichever chat you want. Running latexFixer on a compile failure is unchanged.
Bug Fixes
- The last enabled model cannot be switched off — Settings locks the toggle on your final active model and explains why, so a chat can never be left with no model to run on.
- Bold Greek letters render in the progress view — shortcuts such as bold alpha, eta, and sigma now display as the intended symbols instead of unknown commands.
- The Progress terminal uses the host integrated terminal colors — background and text follow the dedicated terminal tokens instead of the generic surface palette.
- Every max-style shortcut now resolves in the progress view — math operators, text labels, mathcal/mathbb letters, and tilde/hat/ differential shortcuts render as intended instead of unknown commands.
- Max-style shortcuts no longer shadow KaTeX built-ins — the section sign and the legacy bold switch render as intended,
\labelno longer errors in rendered math, decorated-H effective-Hamiltonian forms keep their accents, and equilibrium/steady-state eq/st subscripts no longer turn into superscripts. - Delegation approvals state their full run-wide scope — approval controls no longer imply that later automatic approvals are limited to tasks requested by one agent.
Desktop
Bug Fixes
- Usage telemetry is actually delivered — the desktop app never started its usage-log service, so the toggle in Settings collected entries that were dropped at quit whenever fewer than ten had accumulated, and every entry lacked its app name and version. Desktop now starts and drains the service like the other surfaces.
- Retired models are swept from the desktop model list — the startup reconciliation the extension and CLI already ran now runs on desktop too, so retired models leave the enabled list and stale Copilot route preferences are cleared instead of failing later.
- Follow-up polish revises text again — the desktop polish action no longer silently returns the original draft; it now applies the same bundled prompt template the extension uses.
- Temporary diff files are cleaned up — viewing a diff in an external editor no longer leaves temporary files behind after the window closes.
CLI and Desktop
Bug Fixes
- Unused Lean language servers no longer accumulate — a CLI or desktop Lean session stops when the agent run that was using it ends, and at the latest after it sits unused, so later Lean work is not disrupted by leftover servers from earlier worktrees.
CLI
Features
/statuslists the skills in effect — a tool-use session now shows which agent skills were loaded for the run, the same fact the transcript already recorded./configcan toggle orchestrator cancellation — "Allow orchestrator cancellation" joins "Keep subagents running" in the CLI settings panel instead of being editable only in the GUI surfaces./configcan store a GitHub token — set, replace, or remove the personal access token used by GitHub subscriptions without leaving the CLI.texra agents showomits access-group tags — remote agent details no longer print visibility labels.- Nested sessions name the phase and the way back — a focused subagent shows its workflow phase in the header and status bar, Esc is labeled
parent, and the session list says that Esc stays in this view. - A retried workflow no longer keeps the failed first attempt on screen — the live transcript drops superseded task cards and their leftover log lines when a new attempt starts, matching the session list.
Bug Fixes
- Interrupted workflows keep provisional files in run storage — cancelling a workflow no longer copies unfinished rounds to
--outputor--output-dirdestinations. - Multi-agent transcripts show the user's request — team runs keep internal orchestration guidance out of history and resumed chat messages.
- Completed workflow tasks can be retried without restarting chat — a new workflow attempt may reuse its saved task identity after the previous attempt has delivered its result.
- CLI tables preserve long mathematical expressions — narrow columns wrap LaTeX formulas and other indivisible values instead of replacing their tails with an ellipsis.
- CLI transcripts preserve compact TeX inequalities — expressions such as
0<p<1no longer cause intervening mathematical text to disappear. - Delegation approvals distinguish one task from chat-wide access — proposal cards now state that
yapproves only the visible task, whileaalso approves later agent tasks, file edits, and commands in the chat. - Direct approval prompts reveal complete proposals and edits — when a compact preview hides instruction or diff lines, press
vto inspect the full content before approving or rejecting it. - Session status reports active delegated work —
/statusnow shows the number of active background tasks while retaining the focused session's own status. - Interrupted multi-agent chats can be resumed immediately — leaving a cancelled team session no longer leaves its printed resume command temporarily unavailable.
- Workflow footers show only usable controls — focused workflows and background processes no longer advertise slash commands while their chat input is hidden.
- Session views show recognizable model names — headers,
/status, and background-task rows use catalog labels instead of internal model IDs. - Workflow task progress shows recognizable model names — focused dashboards, interactive transcripts, and headless progress use catalog labels instead of internal model IDs.
- Workflow reruns show current task progress — retrying a saved workflow no longer counts completed or failed task states from earlier attempts in the live dashboard.
- Workflow dashboards identify blocked tasks — a task waiting for approval now shows the pending approval kind on its own row.
- Interrupted headless agent runs show how to resume — stopping a tool-use agent or multi-agent team now prints a command that preserves its workspace, approval policy, and skill sources while reopening the interactive session required for continuation.
- Headless team progress identifies delegated tasks — direct multi-agent runs show what the active child is checking, not only its generic agent name.
[0.40.2] - 2026-08-12
CLI
Features
/planshows the full work plan — unfinished todos stay visible after a run waits or finishes, and/planopens the objective and todo list.- Coding-plan quota appears in the status bar — when a Kimi or GLM coding plan is in use, the bar shows how much remains.
- Terminal tabs show when a session is running — an active run is visible from the tab without switching to it.
Bug Fixes
- Interrupted workflows resume right away — a stopped workflow appears in history as resumable immediately. If resume fails, you get an explanation instead of a silent exit.
- Narrow terminals still show every approval choice — including the option to approve all agent work in this chat.
- Follow-up input appears only when it will work — background tasks that cannot take a follow-up no longer show a follow-up box.
Extension (VS Code) and Desktop
Features
- Each run shows the skills it is using — a collapsible list on the session.
- Session rows say what they are doing — running, waiting, completed, failed, cancelled, or waiting for approval, not only a colored bar.
- Workflow approvals name the workflow and its scale — the workflow name, how many tasks it will run, and a cost warning.
- Failed workflow tasks show up in the status line — even if the workflow itself finished.
Bug Fixes
- Deleted sessions no longer keep their background tasks — those tasks remain as their own sessions instead of staying nested under a session you removed.
- Long session histories stay responsive — large workspaces no longer hitch when you change theme or browse history.
- Background-task status uses the same words as the rest of the view — Running, Idle, Completed, Stopped, and Error. Rejection notes no longer leave empty space.
- Session names stay correct after a reload — they no longer go blank or revert to a stale title.
Shared (all surfaces)
Features
- Subscription usage is visible — Settings and the CLI show remaining ChatGPT, Kimi Code, and GLM Coding Plan quota. You cannot choose Included Access when that allowance is used up. An exhausted coding plan switches back to your API key.
- Context compaction is visible — the transcript shows when a conversation is being compacted and how it finished.
- Payment labels are shorter in tight spaces — "Included" and "API keys", with the full names still available to assistive technology.
- Claude Code background work is visible — and its cost is included in usage.
- Writing and review agents sound more human — they drop generic AI phrasing. Agents that only edit or check files are unchanged.
Bug Fixes
- OpenAI overload errors retry automatically — instead of failing the run.
- Withdrawn models leave your enabled list — on the next launch, without turning other models back on.
- Deleted sessions no longer leave leftover files behind — leftover run data is cleaned up on the next launch.
[0.40.1] - 2026-08-08
CLI
Features
- The TUI exit summary shows session cost and payment route — leaving a chat session now reports how much it cost and how it was paid for.
- The model catalog is reachable from the TUI — browse and enable models without leaving the chat interface.
- The transcript reader pages with
PgUp/PgDn— the Ctrl-T full-output view scrolls a page at a time instead of one line per keypress. - The status bar reports how many sessions are running — while background sessions are in flight, the status bar declares the count (e.g. "3 running sessions") alongside the Tab sessions hint.
- GLM Coding Plan access — GLM models can be used through a GLM Coding Plan subscription, with the access mode and picker status shown in the CLI.
Bug Fixes
- Live transcript updates are restored and Ctrl-T is closable — the transcript viewer no longer goes stale while a run streams, and the full tool-output view can be dismissed again.
- TUI blocking UX defects are fixed — approval, retry, and login flows no longer block the interface, and nested runs are consistently described as "background tasks".
- TUI polish — doubled blank rows between transcript entries are gone, retired streams no longer re-activate after
/clear, hints are truthful, links are reachable, and errors and warnings have a non-colour cue. - The approval-denied exit code is retired — a denied approval gate is no longer reported as a failed run; the CLI warns once on stderr instead.
- Grok follow-ups work from the TUI — Grok subscription sessions handle follow-up messages correctly.
- CLI approval modes govern Bash commands and file edits consistently —
neverdenies them even when a prompt setting or stream bypass would allow them, while automatic approval permits them without opening a prompt.
Extension (VS Code) and Desktop
Features
- Desktop renderer accessibility and copy fixes — icon-only buttons are named, tab strips follow APG keys, terminal focus and screen-reader mode are wired, the command palette is a proper combobox, and high-contrast colours and placeholder contrast are repaired.
Bug Fixes
- New Subscriptions settings tab — ChatGPT subscription, Copilot in VS Code, and Kimi Code setup now live together under Account instead of being split across Account and Providers & Models.
- Settings status indicators share one visual language — a green check for set values and a neutral "Not set" tag everywhere, with shared styles and icons across all tabs.
- The sidebar tabs are now "New" and "Sessions" — the redundant "Sessions" heading is gone, and an idle session reads "Idle" instead of "Waiting for follow-up".
- The session view is decluttered — stray blank bands are removed, the close button is quieter, the redundant subscription tooltip is dropped, and session rows are more compact.
- The Copilot section no longer shows a wall of buttons — per-model route controls collapse behind a "Manage Copilot routes" disclosure.
- Session reliability controls moved to the Agents tab — compaction threshold and automatic retries now live with agent configuration, and tool-use agents list before workflow agents.
- Nested runs are named "background tasks" — one consistent name across the extension, desktop, and CLI, with session labels declared from RunIdentity.
- Review follow-ups and approvals are fixed — file-row clicks dispatch correctly, approvals are labelled with their run, and Approve/Reject stay on screen in a dedicated approval dock.
- Accessibility is restored — every control is named and exposes its state, the shared focus ring is back, non-colour status cues are added, and the WorktreeChip uses the shared visually-hidden helper.
- Token and colour fixes — variant contrast, the light-terminal palette, muted/border tokens, resolving custom properties, and opacity stacking are repaired.
- The composer sizes from its content — the follow-up input rests at two lines and grows with the draft, and the Followup collapsible is restored on VS Code.
- The approval policy is re-seeded on rollback/reset — workspace transitions re-read the effective persisted policy instead of leaving a stale value.
- Optional tools and Lean inspection — missing optional external tools stay quiet, and
lean_inspectfailures surface instead of being dropped. - LaTeX and retry polish — custom LaTeX replacements reuse the canonical Zod schema, and long retry error messages are no longer clipped.
- Model access has one name in every host — the CLI, extension, and desktop describe model access consistently, and Vite 8 build warnings are resolved.
Shared (all surfaces)
Features
- Sign in with Grok (xAI SuperGrok) (Experimental) — a new OAuth login flow lets you use an xAI SuperGrok subscription for Grok models, alongside the existing ChatGPT and Kimi Code subscription options.
- GitHub App OIDC for Actions reviews — code-review workflows can now authenticate through a GitHub App using OpenID Connect token exchange, so reviews post as the app instead of requiring a personal access token.
- Per-stream call counts and subscription equivalent cost — usage tracking now records how many model calls each stream made and prices subscription rounds at their list-price equivalent.
- DeepSeek V4 Flash (Thinking) joins the default model list — the thinking variant of DeepSeek V4 Flash is now available by default in the model picker.
- GLM-5.2 joins the default model list — GLM-5.2 is now available by default in the model picker alongside the other provider flagships.
Breaking Changes
- The multi-agent orchestration tool is now
delegate_multi_agents— the tool formerly nameddelegate_workflow_scripthas been renamed with no compatibility alias. Custom agent YAML files that listdelegate_workflow_scriptin their tool list must use the new name. - Retired Claude model selections now use the current default — saved Opus 4.7 or 4.8 selections are no longer translated to Opus 5.
Bug Fixes
- Transient-HTTP-status classification is shared with arxivProcessor — arXiv downloads and LaTeX processing now agree on which HTTP statuses are transient, so retries behave consistently.
delegate_multi_agentsdescribes both workflow and tool-use agents — the tool's description and call guidance now cover both agent types it drives.- Legacy agent roster selection is repaired in place — the old pair-shaped roster format no longer warns on every CLI startup; it is detected and normalized immediately.
- Duplicate side-effect tool calls share one result — identical side-effect calls in one batch execute once and share the result, so the model does not see skip errors or re-run the same side effect.
[0.40.0] - 2026-08-02
CLI
Breaking Changes
- Final JSON results now use
outcomeas their only terminal-state field — the deprecatedstatus,terminalStatus, andendGroupStatusfields have been removed with explicit maintainer approval. Streamed NDJSON progress records are unchanged.
Features
- Workflow runs have a phase-and-task dashboard — the terminal shows canonical workflow progress, task status, model, elapsed time, generated tokens, and cost. Wide terminals provide separate navigable phase and task panes, while narrow terminals retain source order in one pane.
Bug Fixes
- Account status is concise and unambiguous —
/authand/api statusnow show model preferences, account identities, personal keys, and included usage once each instead of repeating the same access in several forms. - Automatic CLI runs stop after their model retry limit — automatic approval mode no longer restarts another full retry sequence when every configured attempt has failed.
- Escape backs out of nested agents one level at a time — leaving a child now returns to its immediate parent before Escape can interrupt the root run.
- Background workflow task lists start collapsed — background plans take up less terminal space until their task details are needed.
Extension (VS Code) and Desktop
Features
- The follow-up composer is larger and resizable — it starts at six lines and can be resized vertically for longer instructions.
Desktop
Breaking Changes
- The Codex and Claude Code CLIs are now installed separately — the desktop app no longer ships its own copies, which accounted for well over half of its download size. If you used either integration from the desktop app without installing its CLI yourself, it will show as Not Found after upgrading until you install it once from Dashboard → Integrations → Install in Terminal. Anyone who already has the CLI — including every VS Code and terminal user, which never bundled them — is unaffected and needs no setup.
Shared (all surfaces)
Features
- The CLI, extension, and desktop app now share TeXRA settings — project settings follow the project across all three surfaces, and user-wide desktop settings are shared with the CLI and extension. New releases use the shared defaults without importing older host-specific settings. Skills, telemetry, tool approvals, and LaTeX replacement rules now have native controls in the TeXRA settings view.
- OpenAI Fast models use the priority service tier — their requests now ask OpenAI for priority processing instead of the standard service tier.
- Workflow scripts are available to the software-engineering and Lean team leads — after enabling Workflow Script in the Tools panel, these teams can run predetermined parallel and sequential agent pipelines that resume safely after interruption.
Breaking Changes
- Agent reviews now choose their own scope and depth — the saved controls for including untracked files or submodules and choosing a quick or thorough approach have been removed. Reviews inspect the relevant change set directly.
- File discovery now uses fixed product rules — the removed
texra.files.included.*andtexra.files.ignored.*settings no longer change which workspace files TeXRA discovers. Remove those keys from project config files and old VS Code settings. - Agent definitions use only the current schema — custom definitions must use
assistantinstead of the retiredchatname and must remove obsolete settings such asoutputExt,documentTag,endTag,prefills,requiredFiles, andfilePatternsContain. TeXRA no longer translates or silently discards these historical fields when loading an agent. - Google sessions now use the current conversation service exclusively — the obsolete Google compatibility toggle has been removed. Some Google sessions saved by earlier versions remain readable but cannot be resumed; start a new session to continue with a Google model.
- Tool-use flow results use
responseandfilesconsistently — consumers of@texra-ai/agentand CLI JSON output should replacelastResponsewithresponseandtouchedFileswithfiles. - A run that ends over the model context window now reports its own error kind — consumers of
@texra-ai/agentthat switch exhaustively over a result event'serror.kindmust handle the newcontext-windowvalue, which previously arrived asunexpected. - Execution conversation pagination now uses messages rather than rendered lines — callers of
/executions/{id}/conversationshould replaceview_rangewithoffsetandlimit. Responses report the returned message interval and next offset.
Bug Fixes
- Failed latexdiff builds no longer flood the workflow log — the visible warning identifies the affected diff file without dumping the LaTeX compiler transcript; the full diagnostic remains available in debug data.
- Google models handle prompts and tool-enabled tasks reliably — requests no longer fail when a prompt has no prefix or when complex tool sets are enabled.
- Google background interactions resume across transient retries — TeXRA reconnects to the existing interaction instead of losing its in-progress response.
- OpenAI background responses keep one polling deadline across retries — reconnecting to the same response no longer restarts its three-hour polling window. Once that window expires, TeXRA stops automatic retries and permits an explicit retry to start a new response.
- Automatic model retry settings are bounded — the retry setting now accepts zero to five additional attempts after the initial request. Invalid stored values fall back to the documented default instead of creating an arbitrarily long automatic retry sequence.
- Stop requests are not lost between runtime stages — interrupting as one stage finishes now also cancels the next model or tool operation instead of allowing the run to continue.
- Runs that overflow the model context window say so — instead of a generic failure message, the run now reports that the conversation exceeds the model's context window and suggests starting a new session or reducing attached files and tool output.
- A missing OpenRouter API key offers the same setup prompt as every other provider — it was reported as an unexpected failure rather than an actionable "set your API key" notice.
- Compiled PDF artifact paths are correct on Windows — diff PDFs generated from files in round subdirectories no longer repeat the round directory in their saved path.
- Failed agent starts no longer look like successful runs — when a new launch cannot start on a previously completed task, the status update is now identified as a rollback rather than a fresh completion.
- Agent failures retain their partial result — the original error is now reported together with any partial response and affected files.
- Long-running sessions use less memory after recovering interrupted runs — transcript history loaded only to repair stale run state is released again after the repair is saved, instead of remaining in memory for the rest of the session.
- Workspace switches apply settings and storage together — a session can no longer observe the new workspace with stale settings or storage from the previous one during the transition.
- Snapshot save failures surface without losing queued updates — writes stop after bounded retries and report the failure while preserving pending updates and their order for recovery.
- Install in Terminal now offers a command your machine can run — the Codex and Claude Code cards offer the Homebrew command where Homebrew is present and Claude Code's Windows installer on Windows, instead of a global npm install that fails without Node. The desktop app's terminal also picks up Homebrew and
~/.local/binnow, so a command it suggests no longer fails withcommand not foundwhen the app was launched from the Dock or Finder. - Claude Code installed by its native installer is found again — the desktop app now looks in
~/.local/bin, where the installer recommended by Anthropic's docs puts it, instead of reporting the CLI as missing. - Claude Code on Windows is no longer detected as a broken install — a global npm install leaves only shell shims that TeXRA cannot run, so it is now reported as not installed, with setup instructions, rather than appearing available and failing when an agent calls it.
[0.39.11] - 2026-07-29
Shared (all surfaces)
Bug Fixes
- Fixed a crash on startup — the CLI no longer exits with a module loading error before running any command; the same defect would have crashed the VS Code extension on activation and the desktop app on launch. The 0.39.10 CLI release is affected; please upgrade.
[0.39.10] - 2026-07-29
Shared (all surfaces)
New Features
- Embeddable agent package — Node applications can install
@texra-ai/agent, load agents from a chosen directory, stream run events, and await the final result. - Predictable embedded model output — the agent package now returns provider text unchanged and joins continued responses deterministically, while TeXRA applications retain their LaTeX-aware processing.
Bug Fixes
- Consistent workflow progress — workflow rounds and task states now use the same numbering and wording in the terminal, desktop, and VS Code.
- Visible headless workflow progress — workflow scripts launched by non-interactive runs now print phase, task, and completion progress; workflow task cards open their child runs directly without a duplicate background-task panel.
- Concise workflow results — completed workflow scripts now render one shared summary of phases, tasks, generated files, cost, duration, and rerun instructions instead of repeating the full run log.
- Interrupted runs no longer look stuck — runs cut off by a crash or force-quit are marked as interrupted when the session reopens, instead of appearing to run forever.
- Accurate usage totals — a malformed usage update can no longer silently reset a run's accumulated token and cost totals to zero.
CLI
New Features
- First-run handoff explained — after the initial credential setup, the chat session explains that the setup assistant is guiding the first run and that
/agentswitches to another agent anytime, using the same wording as the setup card in VS Code and the desktop app.
Bug Fixes
- Leftover runs are cleaned up — opening a CLI session removes runs left behind by earlier interrupted sessions, matching the VS Code and desktop behavior.
Extension (VS Code) and Desktop
New Features
- Tidier progress view — stream tabs are denser and the follow-up input is larger, with the unused tab filter and clear-input controls removed; the multi-agent settings now show a single combined Teams block.
Bug Fixes
- Clearer account status — an expired sign-in no longer shows as "Connected"; the Account settings tab now shows a "Session expired" warning with a sign-in prompt and surfaces server spending-check failures.
Desktop
Bug Fixes
- Every session appears in the sidebar — sessions no longer disappear from the desktop sidebar because of a category filter saved in the progress view.
- Missing agents are flagged — the desktop app now shows a banner when a task references an agent that is not configured.
- Unsaved edits are protected — the desktop app asks for confirmation before closing the window or switching workspaces with unsaved file changes, and canceling the close no longer loses those changes.
- Reloading the window no longer leaks sessions — terminal and browser sessions are cleaned up across reloads instead of being left behind.
[0.39.9] - 2026-07-26
Shared (all surfaces)
New Features
- Agent skills controls — enable or disable TeXRA and imported skills from the CLI, VS Code, or desktop settings.
- Claude Opus 5 support — Opus 5 is now available and replaces Opus 4.8 as the default Anthropic model.
- Live background command output — agents can inspect a command's output while it is still running.
- Workflow phase progress — running workflow scripts show their current phase in the CLI and progress view.
Bug Fixes
- Correct Claude effort levels — effort choices now match each model's supported tiers.
- Accurate workflow task costs — each task now shows its own cost rather than the workflow's cumulative cost.
- Custom team compatibility — teams with older icon data no longer disappear from the catalog.
- Long Claude sessions recover automatically — when a session reaches its context limit, TeXRA compacts the conversation and continues the run.
- Reliable large command output — long foreground shell commands no longer consume unbounded memory.
Extension (VS Code) and Desktop
Bug Fixes
- Bounded terminal scrollback — long terminal-mode logs retain recent complete lines and indicate when older output has been removed.
Desktop
New Features
- The desktop app now centers every task around its conversation — projects and task history stay in a quiet sidebar, while files, terminals, browser pages, logs, and settings open in a resizable workbench without replacing the task.
- The launcher and transcripts use a unified desktop design — the new neutral theme, compact activity cards, persistent composers, consistent controls, and stroke icons make setup, execution, and follow-up feel like one coherent application.
- The starter-team chooser now opens in the task canvas at startup — it no longer blocks the app as a modal, and users can save a preference to hide it on later launches.
- Project files now follow their folder hierarchy in the sidebar — nested folders expand in place, keep their open state while the list refreshes, and show concise file names instead of flattened paths.
- Settings now use a responsive top navigation — account identity, sign-in, included usage, and credential access have a dedicated Account & Usage page, while a compact category-and-page hierarchy keeps the remaining settings reachable without an overflowing row of tabs. Every page now follows the same heading, section, banner, control-row, and responsive layout.
- Desktop keyboard shortcuts are now customizable — users can search, reassign, clear, and restore bindings from a dedicated settings page, with changes applied immediately.
- The task toolbar now includes an environment summary — a compact floating panel shows workspace changes, branch status, active agents, background terminal state, and attached sources without duplicating their controls.
- Requested file changes now open in a Review workbench — changed files are grouped by folder beside an in-app diff, with per-file and total line counts for inspecting an agent's proposed edits.
- Desktop logs now provide an itemized live viewer — entries refresh automatically, remain independently expandable, and keep refresh, copy, export, and folder actions in one toolbar.
Bug Fixes
- The desktop development command launches the complete app — it builds the Electron entry points, starts the renderer on an available local port, and opens Electron instead of leaving only a browser development server running.
- The launcher no longer appears blank while startup state loads — a visible loading canvas bridges startup, and send controls stay unavailable until the request, model, and agent or team are ready.
- The desktop canvas now follows window resizing — expanding the Electron window no longer leaves a fixed-size interface surrounded by empty space, and the project sidebar and workbench remain resizable.
- Switching project folders no longer opens a blank desktop window — the current app window restarts into the selected workspace while the development renderer remains available.
- The startup chooser now hands off to a ready launcher — skipping setup no longer leaves the task canvas on an empty loading state.
- Project files appear as soon as a workspace opens — the sidebar now loads text source files at startup instead of reporting an empty project until the editor is opened.
- Desktop chrome behaves consistently on macOS — the brand and task header align with the traffic-light controls, the collapsed-sidebar button stays clear of them, and development windows no longer follow every Space.
- Workbench controls use one consistent hover shape — panel shortcuts and editor, terminal, and browser tabs no longer show nested or mismatched hover backgrounds.
- The task composer stays organized as its panel narrows — session and runner choices, agent and model selectors, tools, and the centered send button now form clear responsive groups instead of colliding or drifting.
- Files changed outside TeXRA refresh before editing — switching back to a clean editor tab no longer risks saving an older cached copy over newer project changes.
- Desktop editor access stays inside the open project — linked paths can no longer be used to read or write files outside the workspace.
- Desktop startup and narrow layouts remain usable — onboarding adapts to split panes, tool information appears immediately while refreshing, and macOS window controls no longer collide with navigation.
- Desktop sign-in stays in the system browser — cancelling authorization returns safely to TeXRA instead of opening an embedded sign-in window or terminating the app.
- The project tree and terminal match the surrounding workspace — hovering a file no longer highlights every parent folder, tree icons sit close to their labels, and the terminal no longer has nested borders or a mismatched black container.
CLI
New Features
- Workflow phase views — focused workflow runs group agents by phase and show per-phase task progress.
- Clear workflow task states — task rows distinguish planned, running, completed, skipped, and failed work.
- Visible media inputs — loaded images and PDFs appear in the terminal transcript.
Bug Fixes
- Independent access preferences — ChatGPT, Kimi Code, and API fallback choices no longer change one another unexpectedly.
- Reliable post-launcher prompts — sign-in and team availability prompts remain interactive after leaving the launcher.
- Cleaner child list — removed background-process rows that were always empty.
[0.39.8] - 2026-07-24
Shared (all surfaces)
New Features
- The Mathematician team includes the critique workflow — mathematical team runs can delegate a dedicated critical review directly.
- The orchestrator agent can run scripted multi-agent pipelines — the built-in Orchestrator supports planned fan-out, pipeline, and join runs. Workflow Script is an opt-in integration in the Tools dashboard and CLI
/tools; disabling it applies to every agent. - Workflow scripts can start from selected files — launch files are separated into editable inputs, read-only context, and media, then exposed to the script as immutable launch context for its workflow-agent calls.
- Workflow scripts can route each task to a suitable model — individual calls may select an available model, allowing routine work to use a cheaper model while difficult steps retain a stronger one.
Bug Fixes
- Kimi Code usage is recorded as subscription usage — membership-backed requests now appear with the other subscription usage instead of personal API-key usage.
- Parallel agents resume reliably after model connection failures — concurrent runs recover without overwhelming the provider, while unattended approved retries continue until success or cancellation.
- Brief network interruptions no longer stop model turns immediately — requests retry automatically when a provider connection drops unexpectedly.
- Expired OpenAI connections no longer crash long-running sessions — when a connection expires between turns, the next turn reconnects instead of terminating TeXRA.
- Parallel runs finish reliably after long pauses — several agents can save their final results without TeXRA exiting early.
- PDF attachments work with ChatGPT subscriptions — documents can be sent directly to supported models.
- Parent agents can inspect generated workflow files directly — delegated workflows make every output available for follow-up review.
- Nested orchestrators respect delegated-task auto-approval — enabling automatic delegation on a parent now lets its suborchestrators continue delegating without additional permission prompts.
- Starting a subagent no longer changes the active view — new and resumed child runs stay in the background until selected.
- Personal-key and subscription sessions avoid unnecessary reconnects — model connections no longer rebuild repeatedly because an unrelated included-access sign-in is nearing renewal.
- Latexdiff files with short commit hashes stay protected — generated comparisons with 4-5-character hashes are recognized correctly during editing, cleanup, packaging, and follow-up runs.
Extension (VS Code) and Desktop
New Features
- Preset teams can run from the main launcher — interactive sessions can switch between an individual agent and a team, choose a preset, and handle unavailable members before launch.
- Codex runs show per-turn progress — the progress view displays the thread ID, live turn status, elapsed time, and failures.
- Workflow scripts can show their complete task plan — declared tasks appear before execution and update in place as they run, finish, fail, or are skipped.
Bug Fixes
- Completed background tasks leave the session list — finished shell tasks are removed after their results are saved instead of leaving stale tabs.
- Workflow-script sessions show their own identity — scripted orchestration runs display the script name and type instead of appearing as the default worker agent.
Extension (VS Code)
Bug Fixes
- Display equations render next to surrounding text — bracketed and dollar-delimited display mathematics no longer require blank lines before or after the equation in agent responses.
- Kimi K3 stays easy to find when its route changes — the model remains under Moonshot while showing whether requests use Moonshot, Kimi Code, or OpenRouter.
CLI
New Features
- Overleaf projects can be cloned from the terminal —
texra cloneaccepts an Overleaf or ShareLaTeX project URL or project ID, securely stores the Git token, and can create an optional destination directory. - Context compaction is visible while it runs — the terminal status bar shows a compacting indicator while conversation history is being summarized.
- Kimi Code subscription joins model access — the launcher and
/apinow offer Kimi Code alongside ChatGPT subscription, included TeXRA access, and personal API keys. Selecting it routes Kimi models through your Kimi Code membership while other models use the independently selected included or personal fallback. ChatGPT and Kimi Code preferences can both be enabled, and status views report each preference separately from the API fallback. - API keys and provider routing can be managed from
/config— masked key status and secure entry are available for every provider, with Kimi Code, provider region, and GLM Coding Plan preferences under "Models and providers". - Nested subagents remain visible — a focused subagent reports how many direct subagents it owns, including completed work that remains available in its child list.
- Focused workflow agents show concise live activity — selecting a workflow child shows input and context counts, phase changes, tool calls, and errors without filling the conversation with raw model prose.
Bug Fixes
- Kimi Code access is labeled as a subscription — model pickers and running-session status no longer describe Kimi Code membership usage as personal API-key access.
- Model failures show their reason — failed model requests now include a concise provider message and are no longer labeled as tool failures.
- Large multi-agent runs use substantially less memory — inactive subagent transcripts remain available without accumulating in the CLI.
- Escape stops only the focused agent — other running agents continue, and navigation returns to the owning session after a subagent is stopped.
- Background shell rows no longer claim a model — Bash sessions omit the parent agent's model while agents actually named
bashstill show theirs. - API-key retries use the current saved key — retrying after a relay or subscription limit rechecks the selected provider key before switching. If no key is available, the CLI directs you to
/key. If a replacement client cannot be prepared, the CLI restores the previous settings and reports any setting whose persistence cannot be confirmed. - Retry prompts keep their transcript available — switching away from an agent waiting for a retry no longer causes the CLI to exit when that agent writes its next update.
Desktop
New Features
- Window titles show session activity — desktop windows indicate when agents are running or waiting for approval, including after a macOS reopen.
[0.39.7] - 2026-07-20
Shared (all surfaces)
Breaking Changes
- Crossref DOI lookups moved to
crossref_search— use itsdoicommand and update custom agents that still list the temporarycrossref_doialias. - Custom agents should replace
apply_path— useedit_fileandwrite_file; existing configurations still load but lose patch support.
New Features
- Lean proofs reuse successful patterns — Lean agents can build on proof techniques that worked in earlier sessions.
- Custom agents can return validated data — require a structured JSON result from an agent or workflow step.
Bug Fixes
- Parallel tools keep generated files available — all generated attachments are returned to the agent after parallel calls.
- Delegated approval shows its full scope — prompts now state that approval covers current and later tasks, edits, and commands in the run.
- Invalid saved goals no longer disrupt Settings — TeXRA reports the error, preserves the goal data, and loads the remaining settings.
- Agent reviews report unreadable untracked files — reviews now fail clearly instead of silently producing incomplete findings.
- File searches report unreadable matches — inaccessible matching files no longer appear as ordinary results.
- Accepted workflow files remain editable — agents can continue editing accepted output without interruption.
- Accepting LaTeX edits removes only obsolete comparisons — old
_difffiles for the replaced original are removed without affecting other files. - Between-round LaTeX comparisons work for current runs — comparisons now work for both saved runs and active agent sessions.
- Failed progress clearing preserves the run — progress remains intact when an active session cannot be stopped.
- Retried workflow agents show as running — retrying one step updates its visible status correctly.
CLI
Breaking Changes
- Model access now uses
/api— use/api chatgpt,/api included, or/api personal;/subscriptionand/subhave been removed.
New Features
- Cancel sign-in immediately — press Esc or Ctrl-C in an account form to stop browser or device-code sign-in.
- Use arrow keys to move between chat and subagents — Up and Down move to the subagent list when input history ends, while Tab still works both ways.
- Account forms keep chat history clean — sign-in, sign-out, and access progress updates in place, leaving only the final result in the conversation.
- Reference commands open outside chat history —
/help,/goalhelp, and memory views use a temporary pane or searchable scrollback for long output. - Manage model access and accounts separately —
/apichooses ChatGPT, included, or personal access;/authshows sessions and routing;/logoutsigns out of one or both accounts. - Skip or retry one workflow agent — restart or bypass an individual step without restarting the full workflow.
- Terminal titles show run status — supported terminals show when a project is running or awaiting approval, then restore the idle title.
- Focused workflows show more detail — each phase lists agent models, elapsed time, tool calls, token use, and cost.
Bug Fixes
- Generated-file history reports inaccessible files — unreadable artifacts now produce an error instead of appearing as empty files.
- ChatGPT limits no longer switch credentials silently — the CLI shows the limit and reset time before offering to retry with a personal OpenAI key.
- Edit previews open at the first change — long context no longer hides the proposed edit below the fold.
- Run activity stays visible throughout a turn — the elapsed-time indicator remains animated for all active agent work.
Extension (VS Code)
New Features
- Workflow phases show their plan position — headers display the current and total phase number.
Bug Fixes
- Moonshot key links match the selected region — key actions open the China or international console for the configured endpoint.
Desktop
Bug Fixes
- Packaged Desktop starts successfully — the app can save its startup state without failing on the state file.
[0.39.6] - 2026-07-18
Shared (all surfaces)
New Features
- Kimi Code membership models — use a Kimi Code key for both coding models, and optionally route Kimi K3 through Kimi Code without a duplicate picker entry.
- Conversation history is shared across TeXRA apps — project sessions from the CLI, Desktop, and VS Code extension appear in the same history.
- Kimi K3 — Moonshot's flagship model with a 1M-token context window, vision, and always-on reasoning joins the default model list.
- GPT-5.6 Pro — OpenAI's pro reasoning mode is available through direct API access for demanding tasks where latency is less important.
- Custom agents can run resumable multi-agent workflows — scripted workflows keep completed steps after interruptions and show session progress.
Bug Fixes
- Credential setup stays private and app-specific — setup distinguishes all access methods and collects API keys through the current app's protected input.
- Relay failures support private diagnostics — support can trace failures without recording request content.
- Active sessions are protected across TeXRA apps — clearing history or progress in one app no longer removes or fails a run active in another.
- Saved app logs redact provider credentials — credentials are removed from saved extension and app logs without changing local CLI output.
- Tool setup notices appear in every relevant session — one active session no longer hides dependency guidance from another.
- Subagent follow-ups arrive exactly once — messages reach waiting and resumed subagents without being delayed, repeated, or falsely marked failed.
- Auto-approval stays synchronized across agents — CLI approval persists across turns, and parent changes reach delegated agents immediately.
- Resumable workflows are easier to fix — clearer file guidance and failure details help agents reject missing inputs and preserve completed steps on retry.
CLI
New Features
- Add provider keys from CLI chat —
/keyopens masked key entry and switches to personal API access after saving. - Subagent rows show elapsed time and generated tokens — see each child's progress at a glance, with a compact layout in narrow terminals.
- Todo panels are easier to distinguish — a blank row separates the todo or plan checklist from adjacent content.
- Subagent rows show their latest message — each row previews the latest response, or the current instruction while running.
- Workflow rows show each agent's round — session rows and the status bar display progress such as
r2/3without requiring focus. - Waiting agents show what they need — rows display the request type and queue count, and selecting one brings its request forward.
- Workflow progress remains in scrollback — delegated phases, log messages, and step costs stay beneath the workflow call.
- Full tool output stays in scrollback — press Ctrl-T for the focused session or
von a selected child to print searchable output. - Navigate all child work from one list — Tab selects sessions and processes, Enter opens them, finished entries remain available, and completed children return focus to their parent.
Bug Fixes
- Clipped tool output keeps its status — shortened rows retain their preview, error styling, and state cues.
- CLI hints no longer appear twice — shortcuts stay in the status bar and
/help, while queued follow-ups stay in their own panel. - Long approval plans are scrollable — use arrow keys or PgUp and PgDn to review the full plan before approving it.
- Chat messages stay visually separated — a blank line now follows every user message.
- Ctrl+C clears dialog text first — press it once to clear typed text and again to stop the response or exit.
- Slash-command pickers work consistently in small terminals — lists share compact navigation, and shortcuts typed while loading apply when ready.
Extension (VS Code)
New Features
- Moonshot API regions — choose the China or international endpoint in provider settings.
- VS Code language models support images and tool context — models can receive images and show clearer context while using TeXRA tools.
Bug Fixes
- Extension history survives live-refresh failures — reopening Settings refreshes history without disrupting the extension.
Desktop
Bug Fixes
- Desktop history survives live-refresh failures — manual refresh continues working without closing the app.
[0.39.5] - 2026-07-15
Shared (all surfaces)
Bug Fixes
- OpenAI-compatible streams accept response metadata — conversations no longer stop when a provider sends harmless metadata during a response.
- Stored conversation inspection retains provider-native content — Google message parts and OpenAI tool calls no longer disappear from conversation output, and long entries remain bounded for readability.
- Run completion storage failures are no longer hidden — if TeXRA cannot save a completed or failed run safely, it reports the problem and avoids offering stale work as an ordinary resumable session.
Extension (VS Code) and Desktop
Bug Fixes
- Approve-all settles queued delegated work — approving the rest of a delegated session now resolves its waiting tasks, file edits, and commands, and the menu explains the full scope before applying it.
- Pending external inquiries restore reliably — reopening or moving the progress view reloads every open inquiry and its thread before the view is ready, even when another request was already visible.
Extension (VS Code)
New Features
- Use GitHub Copilot models in VS Code (Experimental) — compatible models from the user's existing Copilot subscription can now be selected in the Models tab without adding a provider API key. If Copilot usage is exhausted, TeXRA can retry with a saved key for the same provider.
CLI
New Features
- Configure agents and defaults from one place —
texra config, the launcher's Settings screen, and/confignow provide the same controls for the available-agent roster, default team, and default chat agent. Scripts can usetexra config agentswithout opening the interactive interface. - Approve all remaining delegated work at once — press
ato approve the current task and avoid further task, file-change, and command prompts for that delegated session.
Bug Fixes
- Ctrl+C clears unfinished chat input before stopping or exiting — pressing Ctrl+C with a non-empty draft now clears the draft; pressing it again keeps the existing response-stop or exit behavior.
- Session navigation uses one persistent list —
Tabopens the vertical list for the main and delegated sessions; arrow keys select a session,Enterfocuses it, and reopening the list restores the previous selection. - Nested settings lists remain responsive after going back — returning from a
/configsubsection no longer leaves the parent list unable to accept keyboard input. - Retry prompts no longer ask for discarded feedback — choosing “give up” now cancels immediately instead of opening a rejection note that the retry flow cannot use.
- Concurrent team runs keep their own agent choices — starting or stopping one team no longer changes which agents are available to another session or rewrites the workspace's agent settings.
[0.39.4] - 2026-07-13
Shared (all surfaces)
Breaking Changes
- Minimum supported VS Code version raised to 1.125 — the extension's
engines.vscoderequirement moved from 1.106 to 1.125; users on older VS Code releases must update before installing this version.
New Features
- Optional ChatGPT sign-in for compatible OpenAI models — the CLI and extension can use supported ChatGPT subscription models as an alternative to configuring an OpenAI API key, with availability refreshed after sign-in.
- Experimental Meta (Muse Spark) provider — Muse Spark 1.1 can be tried with your own Meta Model API key (dev.meta.ai). The experimental integration supports reasoning, tool calling, vision, and PDF input through Meta's Responses-compatible API surface.
- OpenAI parallel function calls are enabled by default — supported OpenAI models can plan independent tool calls together, while TeXRA continues to preserve ordering for edits and other side-effectful actions.
- Free relay accounts can run four requests concurrently — the free-tier concurrency allowance has doubled from two while existing rate and spending limits remain unchanged.
Bug Fixes
- Corrupt local state is preserved for recovery — malformed CLI and desktop state, settings, credentials, and stream snapshots now fail visibly instead of being treated as empty data and overwritten by the next update.
- Incomplete teams are decided before roster changes — TeXRA now offers sign-in, explicit partial-team continuation, or cancellation before applying or launching a team whose TeXRA-hosted members are unavailable.
- Grok models keep a medium reasoning-effort selection — the xAI effort clamp no longer converts
mediumtohigh; current Grok reasoning models (grok-4.3, grok-4.5) support low/medium/high. - ChatGPT subscription compaction keeps streamed summaries — when the subscription backend leaves the completed response body empty, TeXRA now rebuilds the summary from streamed text so long conversations still compact.
- OpenAI context checks use the final request size and current model limits — GPT-5.6 requests now use the correct input and output allowances, and an overflow that provider compaction cannot recover is surfaced without futile automatic retries.
- Usage accounting preserves unsettled relay batches — transient failures and partial acknowledgements retain the same batch for retry, while permanent rejection is reported instead of being treated as successful delivery.
- Agent runs no longer start with unavailable transcript persistence — headless CLI, desktop, and extension execution now fail initialization when persistent transcripts cannot be opened. Interactive CLI fallback sessions are clearly marked as ephemeral and are not advertised as resumable.
- Resumed sessions restore their visible outputs — workflow outputs, missing-output notices, and compile-failure details are replayed after hydration instead of disappearing from the resumed conversation.
- Approvals remain tied to the current session and proposal — stale or unreadable diff fallbacks cannot be approved, and concurrent sessions no longer share pending approval state.
- YOLO approval carries across parallel tool calls — approving the first command or file edit for a stream now lets the remaining queued calls observe that decision instead of prompting one by one.
- Background work reconnects more reliably — waiting parents wake when a background shell task finishes, and Claude-agent sessions can recover their resume state from disk after a reload or crash.
- Anthropic web-fetch results retain source details — fetched titles, URLs, and page content remain available to the agent instead of being flattened into an incomplete result.
Extension (VS Code)
New Features
- Team application offers Researcher Access when remote members are missing — applying a team while signed out now offers sign-in, reloads remote agents after authentication, and reapplies the complete roster.
Bug Fixes
- Lean project commands wait for the Lean extension to become ready — cache fetching and other project actions no longer fail with a missing-command error while the Lean client is still activating.
- Progress entries keep disclosure controls on the left — assistant, thinking, tool, and file entries use Web Awesome's native left-side disclosure placement consistently.
- Agent Review stops cleanly from its owning execution — stopping a review now releases its in-progress state instead of leaving later reviews blocked.
- Pasted images stay with the conversation that accepted them — switching streams while an image is being prepared no longer delivers it to the wrong follow-up input.
- AI-agent settings reflect current routing and models — Claude Code now defaults to Sonnet 5, and the ChatGPT tool-use-only option no longer cites an outdated Codex background-mode limitation.
Desktop
Bug Fixes
- Running sessions stay connected after reopening the desktop window — active runs, later turns, subagents, status updates, and pending interactions are rebound to the replacement window instead of continuing without visible progress or controls.
- Desktop update checks follow the window lifecycle — checks are serialized so closing or replacing a window cannot leave overlapping update requests or stale notifications behind.
- Approvals survive window replacement — closing and reopening the desktop window no longer rejects or loses an approval requested by a session that is still running.
CLI
New Features
- Model access can be changed from the startup launcher — choose a ChatGPT subscription, included TeXRA access, or personal API keys before starting a session.
- Startup and settings lists are easier to scan — resumable sessions, agents, and teams now live behind one entry each; the launcher also provides account sign-in and sign-out controls.
/configgroups settings by subject.
Bug Fixes
- Interrupted chats retain context and queued follow-ups — pressing Escape during an active response preserves the resumable conversation; messages submitted during teardown or a failed restore remain in order for the next retry instead of being silently dropped.
- Model access choices apply to the launched session — switching access at startup overrides an earlier command-line mode, and selecting ChatGPT turns off OpenRouter routing so requests use the chosen subscription.
- Terminal status stays readable during long sessions — history omits internal process bookkeeping, completed transcripts repaint after resizing, and the Ctrl-C hint follows whether a run is actually active.
[0.39.3] - 2026-07-10
Shared (all surfaces)
Bug Fixes
- TikZ extraction handles wide and unlabeled figures correctly —
figure*environments are now detected, and an unlabeled figure can no longer borrow a later figure's label. - Background result delivery handles generated ids safely — subagent background-command results are now escaped before being sent back to the orchestrator, so ids containing XML-sensitive characters no longer corrupt the delivered result.
- More provider API keys are redacted from logs — desktop and other redacting log sinks now cover the key formats used by all configurable model providers, including Google auth keys.
- Setup no longer reports expired or revoked relay tokens as signed in — authentication status now verifies configured CI relay tokens while still preserving valid Supabase sessions and direct API-key-only setup.
- Workflow LaTeX compilation resolves source directories consistently — compile checks and latexdiff PDF builds now share one workspace-source resolver, and a real workspace folder named
r1,r2, and so on is no longer mistaken for a run-storage round folder. - OpenRouter transient server errors no longer stall a request for up to an hour — the OpenRouter SDK's built-in retry window is now capped at 30 seconds, so a persistent 5XX surfaces through TeXRA's visible retry/failure path instead of backing off invisibly inside a single attempt.
- Retry-attempt defaults are now consistent across hosts — with
texra.model.retry.maxAttemptsunset, CLI and desktop runs previously fell back to 1 flow-managed retry while VS Code used the documented default of 0; all hosts now use the documented default. Set the option explicitly to restore extra automatic retries. - Web search/fetch links now block dangerous URL schemes — a link surfaced from a web search result or fetched page can no longer use a
javascript:/data:/vbscript:/file:URL to become a live, script-executing link; onlyhttp:,https:, andmailto:links render as clickable, in both the Progress View and exported HTML chats. - ChatGPT-subscription (Codex) models now compact long conversations — this backend requires
store: false, so OpenAI's stateful compaction endpoint never had a stored response to act on and long runs just grew until they hit the context ceiling. Both the automatic threshold-based compaction and the manual "compact now" action now summarize the conversation locally and resend a shorter history instead. - Anthropic and Google tool-use sessions keep agent instructions consistent across turns — persona, tool-use instructions, and delegation policy are now resupplied on every model call, matching the continuity already provided by providers that carry those instructions in message history.
Improvements
- Updated model catalog —
llm-zoo1.14 adds the GPT-5.6 model family, which now fills the default OpenAI picks in the model list in place of the deprecated GPT-5.4; ChatGPT-subscription sign-in and long-conversation compaction continue using GPT-5.5, the generation Codex still serves. - Read-only tool calls in one model response now run in parallel — contiguous batches of side-effect-free tools (file reads, grep/glob, web fetch/search, arXiv/Crossref/Zotero/Loogle lookups, texcount) execute concurrently, while editing tools keep their strict order. Interrupting a run now also cancels in-flight web fetches/searches, Loogle and Zotero requests, grep subprocesses, and glob walks immediately; arXiv/Crossref lookups stop at their next cancellation point (their client libraries are not mid-request abortable).
- Duplicate parallel tool calls no longer waste a model turn — identical calls in one batch (including accidental GPT re-emissions of bash/write) execute once and share that result with the duplicates, so the model does not see skip errors or re-run the same side effect.
- Faster subagent result delivery — the orchestrator wakes as soon as a subagent finishes instead of waiting for report persistence, and consecutive maintenance follow-ups batch into a single turn.
settings.documentTag/endTagare no longer configurable in custom agents — every agent now emits the standard unified output container, matching what every bundled agent already used. These fields no longer affect custom agent behavior.- Subagent runs record a structured result manifest — outputs, line-diff references, outcome, and cost are readable as JSON via the executions tool (
/executions/{id}/result), so follow-on agents can chain on data instead of parsing prose.
Extension (VS Code) and Desktop
Bug Fixes
- Provider API keys are saved without surrounding spaces — keys entered or pasted with accidental whitespace are normalized before storage.
Extension (VS Code)
Bug Fixes
- Bundled skills are available in installed extensions — VSIX packages now include the built-in skill definitions, so enabling runtime skills exposes the same bundled catalog in installed extensions as in development.
CLI
Bug Fixes
- Ctrl-C reliably cancels queued-follow-up auto-resume — stopping while an automatic resume is still loading configuration or session data no longer allows that stale preparation to restart the cancelled stream.
- NDJSON records preserve their emission order under stdout backpressure — progress, command results, doctor output, and structured error/instruction records now share one queued stdout writer.
- Shell-backed tool approvals use command-neutral wording — Wolfram and other command-backed tools no longer appear as Bash actions in the prompt, session shortcut, status details, headless summary, or rejection message.
Desktop
Bug Fixes
- Desktop asks before deleting provider API keys — removing a stored model provider key now uses the same confirmation step as the VS Code extension.
- HTML chat export works in packaged desktop builds — desktop packaging now includes the standalone trace-viewer template used to create self-contained HTML exports.
Improvements
- Runtime skills are available in desktop agent runs — desktop now loads project, user, and bundled skills through the same shared Node-host defaults as the CLI.
[0.39.2] - 2026-07-03
Shared (all surfaces)
Improvements
- Agent output recovery is more forgiving — multi-file workflow output can now be recovered even when the model omits the expected XML or percent-header filename markers, as long as the generated sections can still be matched safely.
- Provider API keys can be supplied through familiar environment variables — provider-style variables such as
ANTHROPIC_API_KEYare now recognized by the same paths that read stored keys.
Bug Fixes
- OpenAI streaming falls back when the SDK sees a new event type — if the OpenAI SDK throws on an unrecognized response-stream event, TeXRA falls back to polling instead of failing the run.
- Anthropic stream failures are labelled more accurately — failures after
message_startare no longer misreported as pre-message-start failures. - The text editor tool preserves dollar signs —
str_replaceedits no longer corrupt replacement text containing$sequences. - Model and stream failures get clearer annotations — stream failures, retry handoffs, and API-key status labels now report the relevant state more directly.
Extension (VS Code) and Desktop
Bug Fixes
- The launcher selects team root agents correctly — choosing a multi-agent team now selects its orchestrating/root agent in the run launcher instead of leaving the previous agent selected.
- Desktop repairs orphaned streams on startup — after a restart, desktop streams that were left running or waiting are reconciled instead of staying in a stale in-flight state.
Extension (VS Code)
Improvements
- The GitHub integration accepts CLI-style token variables — the GitHub subscription tool now recognizes the token environment aliases users commonly configure for command-line GitHub tools.
CLI
Improvements
- Tool integrations appear in the config catalogue — CLI configuration now exposes tool-integration settings alongside the other shared settings.
Bug Fixes
- Headless run history is more complete — non-interactive CLI runs now keep the durable progress metadata expected by resume and history tools.
- API access labels are clearer — model availability output distinguishes relay, subscription, and local-key states more plainly.
[0.39.1] - 2026-06-30
Shared (all surfaces)
Improvements
- Claude Sonnet 5 support
- Gemini now uses Google's Interactions API by default
- ChatGPT subscription: tool-use-only scope and a context cap
- latexFixer repairs more bibliography and hyperlink failures
- The
lstool is gone
Bug Fixes
- latexFixer no longer overwrites your workspace files with generated output
- Retired models are clearly marked unavailable
- Clearer message for models from keyless providers
- Workflow compile and LaTeX diff resolve inputs in subfolders
- Workflow outputs are recovered from percent filename headers
- Streaming output no longer hangs or gets double-cleaned on errors
Extension (VS Code) and Desktop
Improvements
- The "fix LaTeX" actions run on the helper model
- Sign in with ChatGPT from a non-default browser
- First-run setup no longer launches itself
- The usage panel shows how each run is billed
- One place to manage provider keys in Settings
- Consistent tooltips on icon-only buttons
Bug Fixes
- No stray whitespace in terminal output
Extension (VS Code)
Features
- Agents can leave inline comment threads
Improvements
- The setup assistant can audit your stored API keys
CLI
Improvements
- The terminal starts with every agent enabled, not a single discipline
assistantis the default chat agent- Switch teams from the launcher
- The launcher header shows the CLI version
- One command to inspect a team
- The CLI auto-switches to your saved API key on a usage limit
- Clearer
texra initguidance when your model isn't usable - Clearer session-wide approval labels
/configexposes more settings/configvalidates as you edit- No redundant "add a provider key" hint
Bug Fixes
- Memory and goal tools now reach CLI agents
- History list shows chat descriptions
- Headless multi-agent runs reject the "ask" approval policy
- More CLI commands honor
--output-format - Unsupported Copilot models are hidden from the CLI
- Finished replies no longer print twice
- No stray rows after display-math replies
[0.39.0] - 2026-06-28
Shared (all surfaces)
Improvements
- Switch from your ChatGPT subscription to an API key when the quota runs out — when a Codex model driven through your ChatGPT subscription hits its plan usage limit, the error now says so clearly (plan and how long until it resets) and offers a one-click switch to your own OpenAI API key. Accepting turns off "prefer ChatGPT subscription" and retries the same request on your key. In the VS Code progress view press Use your own API key (or
k); in the CLI presskon the retry prompt or run/subscription off. Auto-retry no longer hammers an exhausted subscription. - Clearer validation error messages — when a configuration value, stored session, or API response fails schema validation, the error now reads as a concise human-readable summary of what was wrong instead of a raw JSON dump of the validation internals.
Bug Fixes
- Delegation launches the agent it validated — when a custom or remote agent shares a name with a built-in agent of the other type (e.g. a custom workflow
assistantnext to the built-in tool-useassistant), delegating no longer resolves a different agent at launch than the one shown and validated, which previously failed with a spurious "is a workflow agent but was launched as tool-use" error. The agent's identity is now resolved once when the delegation is validated and carried through to launch, so the same agent runs even when you swap the agent during approval. - Unavailable model overrides fail fast — approving a delegation after switching the model to one that isn't available in the active API mode now reports it immediately, instead of reporting the subagent as launched and then failing asynchronously. The approve path uses the same availability check as the initial delegation.
- Windows: cancelling or timing out a shell command now stops its child processes — when a
bash-tool command was stopped or hit its timeout on Windows, only the top-level shell was terminated and any piped or background child processes (e.g.find | head) were left running. They are now torn down with the rest of the command tree. - ChatGPT subscription: no more HTTP 400, and the WebSocket transport works — running a Codex model through your ChatGPT subscription failed with
HTTP 400 Bad Requestwhenever the background-responses toggle was on, and the experimental OpenAI WebSocket transport returned nothing (empty output, dropped tool calls). The Codex backend has no background mode and signals completion with an empty body, so background mode is now skipped for it and the WebSocket path rebuilds the response from the streamed items. Workflow and tool-use agents now run end-to-end over WebSocket on the subscription, and a keepalive holds the connection open through long reasoning — the steadier transport when a model thinks for a long time (the subscription always talks to ChatGPT directly, never through the relay). Headless runs also exit cleanly instead of lingering on an open socket. - "Use your own API key" no longer re-prompts when a key is already saved — accepting the switch after a relay or ChatGPT-subscription usage limit now reuses your stored OpenAI key and retries immediately, instead of popping the key-input prompt for a key you already have. It only asks when no usable key exists; the case where the stored key itself is the exhausted credential still asks for a new one.
- Google (Gemini) completions are no longer discarded as cancellations — a Google Interactions run that finished normally could be misread as a user cancellation, throwing away the output it had already produced. Its terminal status is now mapped to the canonical finish reason, so completed and truncated Google runs are finalized the same way as the other providers.
- A run that produces no extractable files now warns instead of silently "completing" — when the model returns output that cannot be split into the expected files (e.g. it did not wrap each document in the required tags), TeXRA surfaces a warning that points at the kept raw output, rather than finishing as if it succeeded while writing nothing.
CLI
Features
/configsettings panel — view and change settings from the chat TUI without leaving the terminal./config(alias/settings) lists each setting with its current value and where it is stored; press Enter to toggle a switch, pick from a choice list, or edit a value inline. Covers the git commit-author identity (applied to agent commits and worktrees) and the workflow auto-compile options the CLI uses fortexra workflow/texra run. Settings come from the same shared catalog the VS Code extension uses, so the two surfaces stay in sync instead of drifting apart.texra latexdiffcommand — generate round-aware LaTeX diffs for an agent run's outputs straight from the terminal, the same capability the VS Code extension offers. Point it at a run withtexra latexdiff <agent> -m <model> -i <file>; add--between-roundsto also diff consecutive rounds,--run-idto target a specific execution, and--output-format json|ndjsonfor scripting.
Improvements
- Leaner, non-overlapping CLI options — trimmed redundant choices so the same thing has one spelling:
--api-modenow accepts justincluded/personal(plus therelay/byokshorthands) instead of seven near-synonyms, the duplicatetexra agents inspectis gone in favor oftexra agents show, andtexra loginnow rejects--devicetogether with--no-browser(they are different sign-in transports) instead of silently ignoring one. --websocket/--no-websocketflag — turn the experimental OpenAI WebSocket transport on or off for a single run (texra run … --websocket,texra chat --no-websocket, etc.) instead of only through the stored setting; omit it to use your saved preference. The negated form is also recognized for routing and shell completion.- External Inquiry is now VS Code / desktop only — the human-in-the-loop "ask an external chat subscription" tool relies on the long-lived progress-view panel for pasting answers back, which the terminal does not provide, so it is hidden from every CLI run (interactive chat and headless commands alike) and no longer listed under
texra tools. Agents running in the CLI will not attempt to dispatch external inquiries.
Extension (VS Code)
Features
- TeXRA research tools in Copilot Chat — when running on a VS Code build that supports the Language Model Tool API, TeXRA's arXiv search, web fetch, and Crossref search are available in Copilot Chat as
#texra_arxiv_search,#texra_web_fetch, and#texra_crossref_search, so agents can pull papers, web pages, and citations without leaving chat. Hosts without the API simply don't show them. - Live usage in the status bar — hovering the TeXRA status bar item now shows a running cost and input/output token total for active streams, so you can keep an eye on spend without opening the task board.
Improvements
- Clearer pickers — file, credential, review, and tool-selection menus now keep an explanatory hint visible as you type (on VS Code 1.108+): the latexdiff math-markup and review pickers show your saved default, the API-key picker reminds you keys are stored encrypted, the "Accept edits" picker keeps the edited filename in view, and the review flow echoes your focus text. Entering an API key offers a one-click "Get API key" button inline (VS Code 1.109+).
- "Yolo (this session)" right on the approval prompt — edit and bash approval prompts now offer a Yolo (this session) option under the Approve button's ▾ menu (keyboard shortcut
a), mirroring the CLI's "approve session". It approves the current action and turns off approval prompts for edits and bash commands for the rest of that stream — the same effect as the toolbar shield, but discoverable at the moment you're asked. Previously the only way to enable auto-approval was the shield icon in the progress-view toolbar, which first-time users could easily miss.
Bug Fixes
- Tool-edit approval no longer hangs when you close the diff — closing the proposed-edit diff tab now rejects the edit instead of leaving the agent waiting indefinitely.
- More precise diff cleanup — finishing a tool-edit approval now only closes that exact diff, never an unrelated diff that happens to share a file.
[0.38.10] - 2026-06-23
Shared (all surfaces)
Features
- Experimental: use your own ChatGPT subscription for Codex models — sign in with your ChatGPT Plus/Pro/Team account and route Codex models through your subscription instead of a separate API key. In the CLI, sign in with
texra auth chatgpt loginand toggle it with/subscription on|off(alias/sub); in the VS Code extension, sign in from Settings → Models. Turn it on with the "chatgptCodex.preferSubscription" setting. The login opens your browser or, on a headless shell, shows a one-time device code; check or end the session withtexra auth chatgpt statusandlogout. Off by default and clearly marked experimental and personal-use: it relies on an unofficial OpenAI endpoint that can change or stop working without notice, and it only ever uses your own signed-in session. - Workflow round counts — workflow progress now reports how many rounds are planned, so you can see how far a multi-round run has to go.
Improvements
- More reliable Lean theorem search — Loogle queries now retry automatically when the server times out, drops the connection, or returns a transient server error, so a brief hiccup no longer surfaces as a failed search; genuine bad requests still fail fast.
- Proofreading preserves math style — the Correct agent now keeps your existing math formatting intact while fixing the surrounding prose.
Bug Fixes
- Cleaner history previews — provider "thinking" / reasoning text no longer leaks into the previews shown when browsing past conversations.
- OpenRouter setup mismatch — when a configured model isn't available on OpenRouter, setup now surfaces the mismatch before prompting for credentials instead of after.
Features
- Use Google's Interactions API for Gemini — TeXRA can now talk to Gemini models through Google's newer Interactions API instead of Generate Content. Turn it on with the
model.useGoogleInteractionsAPIsetting (off by default; Generate Content stays the default and fallback). When enabled, conversation state is kept on Google's servers by default so each turn sends only the new message (smaller, faster requests) — Google retains the conversation for a limited period to make this work. To keep conversations off Google's servers and resend the full transcript each turn instead, turn offmodel.useGoogleInteractionsServerState.
CLI
Improvements
- Smoother terminal redraws — the chat TUI now repaints atomically (synchronized output) when you resize the window or switch between the main transcript and a focused sub-agent, so resizing and view switches no longer flicker or leave stray fragments on terminals that support it.
Bug Fixes
- Discoverable hidden models and agents — hidden CLI models, launchable agents, and JSON agent listings now surface their entries (with hints) instead of appearing empty, and shell completion offers the right agents and
--modelvalues for zsh. - Tidier agent and child pickers — the agent picker and child-stream picker now keep their labels, rows, and copy within the frame instead of overflowing in narrow terminals.
- Multi-agent launcher polish — clearer launcher hint, completions scoped to the launch category, zero-count categories omitted, and a more stable multi-agent run validator.
- Correct workflow output handling — workflows write nested output paths and directories correctly, use stable filenames for stdin input, persist copied outputs in history, and preserve file lineage when inputs share a basename.
- Better history defaults —
texra historywith no subcommand now lists your history, and history details show the team identity and the workflow's output files; runs hidden because they belong to another working directory now explain why instead of silently vanishing. - Friendlier errors and hints — unknown commands are rejected before help is shown, model names are normalized, model-recovery hints appear when a model is unavailable, rejected interactive flags are reported precisely, and the personal-API status label is clearer.
- Smaller transcript and approval fixes — the inquiry tool's raw syntax is hidden in the transcript, edit-approval hunk counts are pluralized correctly, quiet-agent visibility notices are suppressed, and the active-response follow-up tip is shown.
- Correct status and credentials — the
/statusview shows the right working directory, CLI credentials are stored under your configured storage root (so a custom storage location keeps its own sign-in), and an invalid workflow input is reported clearly instead of surfacing as an unrelated model error. agents inspectalias —texra agents inspectis now accepted as an alias.- Local software-engineer team — the built-in software-engineer team now completes correctly when run locally.
Desktop
Features
- Real onboarding state — the desktop app now derives its onboarding funnel state from your actual credentials and setup instead of always reporting "done".
Bug Fixes
- More secure, more reliable sign-in — desktop OAuth callbacks are bound to a per-attempt nonce and the auth-bridge deep link is locked to the TeXRA publisher, and sign-in is relayed through an https bridge so Linux/Firefox can complete the flow.
- No stale display after close — a disposed desktop window no longer briefly shows restored content.
Extension (VS Code)
Features
- Sign in with ChatGPT in Settings → Models — the extension adds a ChatGPT-subscription sign-in control alongside the GitHub-token status, with a matching sign-in/sign-out round-trip.
- Improved onboarding actions — clearer first-run onboarding with more direct setup actions.
Bug Fixes
- Clearer onboarding flow — credential onboarding is shown first, entry points are clarified, the walkthrough is aligned with credential setup, ChatGPT onboarding is prioritized, and onboarding refreshes after a setup action.
- Stable task rows — stopped task rows stay in place instead of jumping.
[0.38.9] - 2026-06-18
Shared (all surfaces)
Bug Fixes
- Crash-safe run state — run and flow progress is now written atomically, so an unexpected shutdown can no longer leave a corrupted file that makes a resumed run silently restart from scratch and lose applied edits.
- API keys kept out of saved transcripts — when you set a provider API key, the key is no longer written in cleartext to the on-disk run transcript or reloaded through history.
- Contained run-file reads — reading a file from a run's stored files now rejects paths that try to escape the run's storage directory, keeping reads contained.
- GitHub tools work in the CLI and desktop app — the GitHub token is now read the same way across surfaces, so GitHub commands and checks that previously did nothing outside the VS Code extension now work everywhere.
- Safer and more correct code search — search patterns that begin with a dash now match literally instead of being treated as options, closing a path where a crafted pattern could run a command during search.
- Wolfram runs now ask for approval — running Wolfram Language code through the agent now goes through the same approval prompt as other commands instead of executing without asking, and it backs off when you have asked the agent not to use external computation.
- Reliable undo with subagents — when a subagent and its parent edit the same file at once, undoing an edit no longer reverts the wrong run's change or writes a stale version to disk.
- Steadier long-running sessions — fixed a leak that kept output-decoder state for finished background processes alive until the session ended.
- No more stalling after a tool runs — when the model returns an empty turn right after a tool result, the agent now nudges it to keep going and deliver the answer instead of ending the turn with nothing.
- No more doubled subagent reports — when you wait on a subagent, its result is delivered once to the parent instead of appearing twice.
- More forgiving shell tool — agents can attach a short description to a command without the tool call failing; the description is ignored when running the command.
- Cleaner Google model output — stray control characters that Google models emit right before a tool call no longer leak into the visible response text, including when they are split across streaming chunks.
- Cleaner command rejections — when you decline a command an agent wants to run, it now moves on instead of repeatedly asking to run the same approval-gated command.
- Cleaner workflow output files — files written from multi-document workflow output now end with a single trailing newline, so generated LaTeX matches the usual file convention.
- Proofreading stays out of the math — the built-in Correct agent now leaves equations, theorem statements, and factual claims untouched, fixing only typos, grammar, and LaTeX formatting, so it no longer silently rewrites mathematical content.
- Truncated text no longer breaks emoji and other characters — one-line summaries and tool-error previews that get shortened with an ellipsis now keep emoji, CJK, and math characters whole instead of leaving a broken glyph at the cut.
Improvements
- Faster Lean detection — checking whether Lean's build tool is installed is now an instant lookup on your path instead of launching the tool, so Lean tool availability resolves faster and without a slow startup spawn.
- Faster, less fussy reviews — the review agent now checks elementary facts by hand instead of reaching for external computation, so reviews spend less time on trivial verifications.
- More faithful subagent summaries — when a coordinating agent reports back a subagent's result, it now keeps the subagent's stated evidence, tool names, and caveats accurately instead of paraphrasing or inventing different methods.
- Delegated agents respect your limits — when the agent hands work to a subagent, it now passes along your tool, network, file, approval, and output constraints, and the subagent reports a conflict instead of guessing when an instruction clashes with them. When you reject a delegation without a reason, the agent is told to stop retrying the same request and either continue with what it has or ask you a clarifying question.
- No looping on plan pause or complete in chat — in ordinary turn-by-turn chat, pausing or completing a plan now returns plain guidance and the agent answers you directly, instead of repeatedly calling the plan controls when no autonomous goal is running.
CLI
Features
- One-command code-review setup — run
texra install-github-actionto scaffold the TeXRA code-review GitHub workflow into your repository and commit it on a branch, then push the branch and open the pull-request page so you review the diff and create the PR yourself, with graceful fallbacks when the GitHub CLI or a remote is missing. - Goal details in status — the status view now shows the current goal's state and objective when a goal run is active, so you can see what the agent is working toward at a glance.
Bug Fixes
- Cleaner subagent results in the chat — long or still-streaming subagent output no longer floods your conversation log with raw protocol markup, half-written tags, or an entire dumped response. A finished subagent now shows a short, readable summary (with todo progress, turns, and current activity), a long result shows a preview with a pointer to open the full transcript, and a running subagent's live output stays within a bounded live region with full history in the transcript viewer.
- Cleaner CLI transcripts — HTML tags like bold, italics, code, and blockquotes that appear in model output now render as styled text in the terminal instead of showing raw markup.
- Gemini conversations in CLI history — browsing past conversations now shows the full transcript for Gemini-driven runs, including the assistant's replies, tool calls, and tool results, instead of leaving them blank.
- Faster feedback on the wrong chat agent — starting a chat with an unknown agent, a workflow agent, or a team preset now fails immediately with guidance on the right command, instead of only erroring after you send your first message.
- Clearer configuration errors — running an agent or workflow with an invalid setting, such as an unknown model, now shows a readable "invalid configuration" message and exits cleanly, instead of crashing with an internal error and a bug-report prompt.
- Resume keeps your context — the resume command the CLI prints now includes your non-default approval policy and the session's working directory when it differs from your current shell, so copy-pasting it resumes the right project with the same approval behavior instead of silently dropping to the default.
- Piped LaTeX input — feeding LaTeX to the CLI through stdin no longer fails when LaTeX writes its auxiliary files, because the temporary input is no longer given a hidden name that TeX could reject. These temporary files are also removed when the CLI shuts down, so interrupting a run no longer leaves stray files behind.
- Accurate status on interrupt — stopping the CLI mid-run with Ctrl-C now records the run as interrupted instead of leaving it in a stale or misleading state.
- Workflow
--outputhandling — running a workflow with--outputno longer renames the agent's working file to your copy target; the requested output file is written correctly while the workflow keeps its own filenames. - Stopped subagents no longer flagged as errors — manually stopping a subagent now shows a neutral status instead of a red error dot, matching the other surfaces.
- Focused stream tab shows when it errors or finishes — the active stream tab now displays an error or ready status, so a focused stream that fails or completes is no longer indistinguishable from one still running.
- Accurate context-window gauge — the status bar now measures context-window usage from input tokens only, so the percentage and its warning colors no longer jump prematurely after a long response.
- Cleaner machine-readable output — the CLI no longer emits stray progress lines after a run has finished, keeping
--output-format ndjsonoutput well-formed. - Skills available in the CLI — the terminal client now ships with its built-in skills, so they appear and run after a normal install.
- Running a plan as a goal no longer skips edit review — choosing Run as Goal now auto-approves only the plan's shell commands; file edits keep going through the normal diff approval so you still review every change.
- Tidier model and tool pickers — the model and tool lists now reserve room for their key hints, so the footer and bottom rows stay visible instead of being pushed off-screen in short terminals.
- Smoother approval policy picker — choosing an approval policy from the picker now closes the menu before applying your choice, so the new setting takes effect cleanly without the picker lingering.
Improvements
- Live workflow progress — the elapsed-time status line now keeps ticking during quiet workflow runs instead of freezing when there are no active sub-tasks, so you can tell a long run is still working. When a run processes several input files, the progress line shows the first filename with a compact "+N" so the extra inputs are no longer hidden.
- Readable elapsed times — the status bar and subagent timers now show compact durations like
1m 15sand2h 5minstead of raw seconds. - Less clutter during goal runs — the todo and plan panel now hides once every item is finished, so a stale completed checklist no longer lingers while the next turn is running.
- Clearer plan approval — the autonomous plan action is now called Run as Goal, and its prompt explains that the agent keeps working across turns until it finishes or needs input. It also states that only Bash commands are auto-approved, while edits and other actions still require review.
- Clearer subagent panel navigation — the Escape hint in the subagent panel now reads "back" when you are viewing a task's detail and "close" otherwise, matching what the key actually does.
/goalhelp — typing/goal(or\goal) now shows a quick explanation of autonomous goal mode instead of starting an agent turn.- Clearer team hints — when a multi-agent team is unavailable, the CLI now points you to
texra multi-agent inspect <team-id>so it is obvious which value to supply.
Desktop
Bug Fixes
- Reliable PDF reopen — quickly reopening a PDF while the previous one is still closing no longer leaves the viewer blank.
- GitHub updates reach the right window — GitHub subscription follow-ups now route to the session that created them, so polling updates are no longer misrouted or dropped when more than one window is open.
- Command palette shows when nothing matches — filtering to no results now displays "No matching commands" instead of an empty box that looked broken or still loading.
Extension (VS Code)
Bug Fixes
- Output files in remote workspaces — when working over SSH, remote, or web workspaces, agent output files no longer split between the remote filesystem and the local disk; every chunk of a file now lands in the same place.
- Markdown chat export — exported conversations no longer break when tool output or fetched pages contain triple-backtick code fences; the rest of the document now renders correctly.
- Diff view recovers from a failed load — if the diff editor fails to load once, reopening a diff now retries instead of staying stuck on an error message for the rest of the session.
- Unavailable models can no longer be enabled by mistake — in Settings, models you cannot use (missing API key or not allowed) now have their checkbox properly disabled, so you cannot silently add an unusable model to your enabled set. An already-enabled model whose key was removed can still be turned off.
- Clearer empty states — a history search with no matches now shows a "no matches" message, and a just-started terminal-mode run shows a starting placeholder, instead of a confusing blank panel.
- Token counts read correctly — usage and context figures in the 100k to 1M range now show as, for example, "200k" instead of being shrunk to a nonsensical "0.2M".
- Tidier approval buttons — the approve, reject, and diff buttons on a tool edit request now stay inside the panel and shorten long labels with an ellipsis instead of spilling over and breaking the layout in narrow views.
- Keyboard-activatable progress-view links — file links, generated and proposed file links, diff results, LaTeX references, and the proposal Setup link in the progress view can now be reached with Tab and opened with Enter or Space, so keyboard-only and screen-reader users can open them, not just mouse users.
- UI styling polish — fixed several broken visual references: the working-directory line in approval prompts regained its spacing and muted color, desktop log and editor text use the correct monospace font, the goal panel's in-flight arrow now displays instead of a blank glyph, and the credit usage meter's colored bands render correctly again so the normal, warning, and exhausted states are visually distinct.
Improvements
- Consistent icons — progress log severities, cloud and local agent badges, and the multi-agent team marker now use the same crisp icon set as the rest of the interface instead of mixed-in emoji.
- Cleaner screen-reader experience — decorative icons in the main panel and toolbar are now hidden from screen readers so labeled buttons are announced once by their name, error and warning icons in the progress view carry text labels so their severity is announced, and icon-only remote and custom agent badges in settings now carry their own accessible name.
[0.38.8] - 2026-06-14
Shared (all surfaces)
Features
- Guided first-run onboarding — first-time users now get a setup funnel that walks through signing in, confirming model access, and seeding a starter agent team, presented consistently in the CLI and the VS Code extension.
Bug Fixes
- Stopping a run kills its running command — stopping a run now aborts the in-progress foreground
bashcommand instead of leaving it (and its child processes) running in the background. - Killing a run honors your subagent preference — terminating a run now also respects the "Keep agents running if I stop the orchestrator" setting, instead of always tearing down still-running subagents.
- Subagents follow a mid-session model switch — after you change models during a session, delegated subagents and tools now inherit your current model instead of the one the session started with.
- Bash approvals show the working directory — command approval prompts now display the directory the command will run in, so a relative command is no longer ambiguous about where it executes.
- Queued follow-ups survive a failed resume — if resuming a run fails, the follow-up messages you queued are kept and re-sent instead of being silently dropped.
Improvements
- Default model is now DeepSeek V4 Pro (Thinking) — new chats and runs default to DeepSeek V4 Pro (Thinking) instead of V4 Flash (Thinking), at the same price (~$0.14/$0.28 per MTok); the model list drops the now-redundant Flash (Thinking) entry and existing model lists reconcile automatically. Pick any other model from the Models settings tab or the
texramodel picker. - TeXRA is now "an AI theorist" — the product description shown in the VS Code Marketplace, the CLI, and the welcome view is updated from "LaTeX research assistant" to "24/7 AI theorist," reflecting that TeXRA now spans research, computation, and code beyond LaTeX.
- Fable 5 for Claude Code delegation — Claude Fable 5 is now selectable in the Claude Code integration's model dropdown and the
claude_codedelegation tool's model options, alongside Sonnet 4.6, Opus 4.8, and Haiku 4.5. - Cleaner prompts in non-git workspaces — when a workspace is not a git repository, agents are told so up front and stop attempting git history and status checks that would only fail.
- Subagents return substantive results — delegated tool-use subagents now hand back their actual findings and answer to the orchestrator instead of bare status notes like "done," so the orchestrator has something real to act on.
CLI
Features
- Device-code sign-in and CI relay tokens — sign in to the CLI by approving a short code in a browser with
texra login --device(recommended automatically on SSH sessions, and the path to use on WSL2 or inside containers where a local browser redirect cannot complete), and mint long-lived relay tokens for headless CI withtexra setup-token— list and revoke them withtexra auth token, and supply one via theTEXRA_RELAY_TOKENenvironment variable. - Give a reason when rejecting an approval — at a raw (non-TUI) CLI approval prompt you can now type a reason after
n(for example,n try a smaller change), or be prompted for one, and it is passed back to the agent instead of a bare rejection.
Bug Fixes
- One-shot runs stop asking unanswerable questions — single-agent and team
texra runinvocations now know the session ends after the final response, so they complete the task or state the next command to run instead of finishing with a follow-up question no one can answer. - Honest Ctrl-C footer — the status bar shows "stop" versus "exit" based on whether the run can actually be stopped, instead of offering to stop a run that cannot be.
- Resume command hints corrected — the CLI points you to
texra resume <id>(the supported public command) rather than the removed--resumeflag form, andtexra resume --helpno longer lists headless-only flags (--print,--output-format) that do not apply to interactive resume. - Workflow runs accept instruction files —
texra workflow runnow supports--instruction-file, matching the other run commands. - Accurate chat guidance — idle sessions no longer show the queued-follow-up tip, and
/helpnow describes whatCtrl-Cdoes correctly. - Full history transcripts —
texra history show --fullprints the complete stored conversation instead of only the final preview. - Slash palette recovers after Escape — closing the slash command palette with
Escapeand retyping no longer sends a stray double-slash chat message; the command form reopens as expected. - Steadier approval prompts — long plan objectives in the approval prompt now wrap to the terminal width and clear cleanly on redraw, and the subagent-proposal box no longer changes width as you scroll through it.
- Consistent "idle" subagent label — the subagent panel and child-control pickers now show a waiting subagent as
idle, matching the rest of the CLI, instead ofwaiting. - Clearer stopped-subagent input — when a subagent is stopped, the disabled input explains why instead of going silently inert, and
Escapeno longer swallows your keyboard shortcuts. - No more spurious resize warning — the chat TUI no longer prints a stray runtime warning to your terminal when many panels are open.
- Idle exits report success — leaving an idle chat session with
Ctrl+Cafter a completed turn now exits with a success code instead of the interrupt code (130). - Bundled agents refresh on upgrade — upgrading the CLI now refreshes its bundled workflow and tool-use agent definitions instead of leaving stale copies in place.
- Homebrew installs get the right upgrade command — the in-session update prompt now recognizes a Homebrew install (the
texra-ai/tapformula) and offersbrew update && brew upgrade texrainstead of misdetecting it as an npm global and suggestingnpm install -g, which would have clashed with the brew-managed copy. - Live tool rows stay with your prompt — in-flight tool activity now renders grouped under the prompt that triggered it instead of detaching while the turn streams.
- Subagent headers show the subagent model — focusing a subagent in the CLI now shows that subagent's own model in the scrollback header instead of reusing the parent chat model.
Improvements
- Auto-approval state in the status bar — when an auto-approval bypass is on, the status bar shows a badge for it (
YOLO,AUTO-BASH, orAUTO-EDIT) so the active safety policy is visible at a glance. - Cleaner queued follow-up status — the status bar summarizes queued subagent follow-ups instead of showing their raw message markup.
- Helpful hints for unknown presets — naming an unknown multi-agent preset now suggests the available presets instead of failing silently.
- Clearer remote team loading — when a preset pulls in relay-served agents, the CLI explains what happened and points you to
texra multi-agent inspectto see the resolved team.
Extension (VS Code)
Features
- Local Agent Review — a new Agent Review section in the TeXRA sidebar reviews your working-tree changes against the main branch with an AI agent and lists potential issues in both the Agent Review view and Problems panel. You can dismiss findings, hand one or all findings to a fixing agent, review automatically after each commit, include submodules and untracked files, choose a quick or thorough pass, and pin a dedicated review model.
Bug Fixes
- Progress board header fits narrow panels — the toolbar actions in a stream's header no longer overflow when the progress view is docked narrow.
Improvements
- Sharper Marketplace icon — the extension icon is now shipped at 512×512 instead of 128×128, so it no longer looks blurry on the Marketplace listing and high-DPI displays.
- Tidier webview controls — the LaTeX diff operations move out of cramped icon rows into labeled button groups beneath the file they act on, main-view actions gain hover tooltips, settings actions use consistent buttons, and the sign-in and workflow banners are laid out more clearly.
Extension (VS Code)
Features
- Agent Review in the Source Control panel — the agent review that scans your changes for issues now lives as a Find Issues section right in VS Code's Source Control (git) view, next to Changes and Commits (it moved out of the TeXRA sidebar). A new Find Issues with Options… action opens quick prompts to set optional free-text instructions, the review approach (Quick / Thorough) for this run, and the branch to diff against — so you can target a one-off review without changing your saved settings. Findings still stream into the panel and the Problems view with the same Fix-with-Agent and Dismiss actions.
[0.38.7] - 2026-06-11
Shared (all surfaces)
Features
- Claude Fable 5 — Anthropic's most capable widely released model is now available as a selectable model and is added to the default model list. It runs with always-on adaptive thinking and summarized reasoning, supports the full effort range up to Extra High, and is eligible for context compaction in tool-use mode.
- Software Engineer team — a new built-in multi-agent team for the code that accompanies a project (simulations, numerics, data pipelines, scripts, and small libraries). An
engineerlead plans the work and delegates to specialists:coder(implementation, edits, and bug fixes),codeReviewer(correctness/security/style review),testEngineer(write and maintain tests),codeSimplifier(behaviour-preserving cleanup for clarity and reuse), andprogressCheck(an outside-the-loop audit of what landed versus the goal). Pick it from the Multi-Agent settings tab, or launch it from the CLI withtexra multi-agent run software-engineer. The local lead and specialists run offline;progressCheckloads aftertexra login.
Bug Fixes
- Stopping a run is no longer recorded as an error — interrupting an agent (stop button, Ctrl+C, closing an idle chat) now consistently records the run as interrupted instead of error: history shows the right status, the transcript group ends neutral instead of red, orchestrators see a cancelled subagent as cancelled rather than failed, and the CLI exits with the interrupt code (130) instead of the error code (1).
- Fix LaTeX Compilation Errors works on latexdiff output — running the fixer on a generated
latexdifffile is no longer blocked. Sincelatexdiffitself often emits non-compiling markup (DIF commands inside math, citations, or macro definitions), the fixer now treats the file as a diff artifact: it repairs broken DIF markup in place while keeping the change annotations, and when an error traces back to the original source it fixes the source too so a regenerated diff stays fixed. - Orchestrators manage their team reliably — stopping an orchestrator now stops the entire delegation chain, including subagents of subagents, instead of leaving them running; a waiting orchestrator now learns that a subagent finished without you having to send another message; and when a subagent's output diffs cannot be computed, the orchestrator is told so instead of assuming nothing changed.
- Goal records are cleaned up with their conversations — deleting a conversation (or a run from CLI history) now also removes its goal record, so the Goal tab no longer accumulates entries for conversations that no longer exist.
- Relay streams survive transient hiccups — a brief transient error on the included relay no longer cuts off an in-flight response.
- Safer LaTeX cleanup — inline fenced LaTeX blocks now distinguish environment names like
alignandalignedcorrectly, and\mathrm{Tr}/\mathrm{tr}cleanup now leaves command definitions intact while still rewriting ordinary usages.
Improvements
chatis nowassistant, a general-purpose scientific assistant — the built-inchatagent was renamed toassistantand upgraded with the broadest toolset of any built-in agent: web search and fetch, Zotero reference management, Wolfram computation, Lean 4 proof tools, word counts (texcount), linter diagnostics, PDF opening, persistent memory, planning and todo tracking, full delegation (delegate_workflow,executions,accept_run_files), external AI coding agents (codex,claude_code), and opt-in GitHub activity subscription — alongside its existing file editing and arXiv/Crossref tools. Its system prompt takes a holistic view of the research workflow, with guidance organized by phase (orient, research, compute, formalize, write, verify, delegate) on top of the established mathematical writing rules. The oldchatname still resolves to the renamed agent, so existing configs and histories keep working; it remains the CLI's default chat agent under its new name.- Stronger Computer Scientist team — the CS team now bundles the
coderandtestEngineerspecialists, so its orchestrator can delegate implementing experiment code, fixing bugs in training and ablation scripts, and pinning results down with tests — work the team previously had no dedicated lane for despite its focus on experiments and reproducibility. Theresearchagent also joins the roster for analytical derivations (convergence bounds, complexity analysis) with Wolfram-backed verification, matching the Physicist and Mathematician teams. - Cheaper default helper model — the built-in helper model used for auxiliary tasks (session descriptions, instruction polishing, AI-assisted agent creation, and merges) now defaults to DeepSeek V4 Flash (~$0.14/$0.28 per MTok) instead of Sonnet 4.6, cutting the cost of these background calls by roughly 20×. Override it any time from the Models settings tab.
- Odyssey is now on by default — Odyssey, the autonomous-continuation mode that lets an agent keep working toward a stated objective across turns until it reports the goal complete, has graduated from experimental and is enabled out of the box. The setting moved from
texra.experimental.odyssey.enabledtotexra.odyssey.enabled; if you previously set the old key, your choice is still honored. Settexra.odyssey.enabledtofalseto require manual continuation.
CLI
Features
- Suspend the chat with Ctrl+Z — press
Ctrl+Zto drop back to your shell mid-session andfgto return; the terminal is handed back cleanly on suspend and the screen repaints on resume. - Screen-reader support — with the
INK_SCREEN_READERenvironment variable set, menus and pickers announce their options with selected and disabled states, the chat input reads as a text box, and decorative glyphs are hidden from the reader.
Bug Fixes
- Terminal always restored on exit — a crash or unexpected exit can no longer leave your shell stuck in raw mode with a hidden cursor or mouse reporting left on.
- Stopping honors your subagent preference — stopping an orchestrator now respects the "Keep agents running if I stop the orchestrator" setting instead of always interrupting running subagents.
Improvements
- Plans are now objective documents — plans describe the goal, approach, and stopping condition; step tracking lives in todos. Old step-list plans are hidden, goal cost caps are removed, and auto-paused goals now print a CLI notice.
- Thinking indicator — while the model is in its reasoning phase, the chat TUI now shows an animated
Thinking…row in the conversation area instead of sitting silent. The phase is detected from provider stream signals where available, so it also works for models whose reasoning never streams any text (e.g. GPT-5 with reasoning summaries disabled). - Honest history statuses — runs that never reached a terminal state (e.g. the process was killed) now show
unknownintexra historyinstead of being reported ascompleted, and interrupted chat sessions are checked for a resumable record like unfinished ones. - Calmer transcript layout — your messages now render as an inset band with a blank line above and below, tool rows sit directly under the prompt that triggered them, stray blank rows at startup and between turns are gone, and on narrow terminals the status bar shortens its segments (context usage degrades to a bare percentage) before dropping anything.
- Forgiving slash-command matching — when nothing starts with what you typed, the palette falls back to substring matches (
/odelstill finds/model) and then to the closest typo suggestion (/hlpsuggests/help) instead of going blank; only exact prefix matches run without preview, so a pasted line never triggers a command you didn't see./helpnow also lists the text-editing shortcuts from the active keymap and the chords for the tasks and subagents panels. - Lighter streaming redraws — while a response streams, only the row that changed re-renders, reducing CPU usage during long responses.
Desktop
Improvements
- Project settings shared with the CLI — the desktop app now stores project-level settings in the same
.texra/config.jsonthe CLI uses, so configuring a project once applies to both; existing desktop workspace settings migrate automatically.
Extension (VS Code)
Bug Fixes
- In-editor GitHub sign-in works again — signing in with GitHub through the editor's account flow had been failing with a server configuration error and silently falling back to browser sign-in; it now completes again. Long-standing existing sessions may ask you to sign in one more time.
[0.38.6] - 2026-06-07
CLI
Features
- Switch between compatible models during a chat — use
/modelmid-session to switch to another model from the same provider (e.g., one Anthropic model to another); the change takes effect immediately and persists on resume. Models with a different conversation format are disabled in the picker with a note to start a new chat, and the picker explains when no models are available in the current API mode. - Focused subagent view — focusing a subagent shows only its own transcript; scroll back through earlier output with normal terminal scrolling, search, and mouse wheel. The header names the subagent and its parent, newly started subagents can be focused right away, and tool calls and file reads no longer flood the main conversation while a subagent runs.
- Skills in chat — a new
/skillscommand lists available skills from your configured sources; picking one applies its instructions to your next request. Any agent run can pull in extra skill folders with--source, and--include-interopbrings in.agents,.claude,.codex, and.geminiskills. - Startup launcher shows auth and API status — the launcher now shows your API mode, sign-in status, and a next-step hint at session start so you can see your account state before choosing how to begin.
- Interactive provider choice on login — running
texra loginwithout naming a provider now lets you pick GitHub or Google interactively instead of silently defaulting. - Limit history list length —
texra history listnow accepts--limit(or-n) to show only the most recent executions. - Copy an agent's question from the inquiry prompt — the inquiry prompt now offers
Ctrl+Yto copy the agent's full question to your clipboard, with a brief copied or copy-failed indicator.
Bug Fixes
- Reliable multi-line input —
Shift+EnterandCtrl+Jinsert a newline without submitting, and no longer lose text, add a stray line break, or fail in terminals that report these keys in alternate forms. Enter and keypad Enter now submit predictably across more terminals, and pasting multi-line text keeps every line break instead of collapsing lines or submitting early. - Escape reliably closes menus and dialogs — pressing
Escapenow consistently cancels the slash palette, selection menus, approval cards, and other dialogs even in terminals that report Escape differently. - Image paste recognizes
Ctrl+V—Ctrl+Vnow triggers image paste in the chat input across terminals that send the raw control code. - Teams that cannot launch are blocked clearly — a team no longer silently starts behind a specialist that cannot delegate or degrades to a single agent; teams missing their orchestrator show as unavailable across the list, launcher, and run output and refuse to start with a clear explanation. Read-only context files you provide are now included in the instruction the team receives.
- Steadier terminal resize — resizing the terminal no longer causes the chat view to flicker or repaint repeatedly.
- Resume hint stays on exit — the
texra --resume <id>line shown when you leave a chat session no longer flashes and disappears in Ghostty, iTerm2, or Terminal.app; it stays in your terminal scrollback so you can read and copy it. - Resilient chat transcript — a single malformed chat entry now shows a short inline error instead of crashing the whole chat session.
- Record interrupted subagent runs as interrupted — a subagent run you interrupt is now saved with an interrupted status in history instead of being marked as completed.
- Anchored headless inputs — headless agent runs now reliably read the input and context files you provide and reject files outside the working directory with a clear error.
- Honor no-color mode — the interactive chat, setup, init, and orchestration screens now drop colors and styling when you run with
NO_COLORor otherwise disable color, instead of emitting color codes anyway. - Launcher list shows the right runs — the recent and resume lists now show only the runs you started yourself (not subagent sessions spawned by team runs), and resumable runs with no input file show their saved description instead of listing no input.
- Init wizard disables unavailable models — the
texra initwizard now greys out models you cannot currently use so you can only select one that will actually run. - Bare auth command shows status — running
texra authon its own now reports your account status and accepts flags like--output-format json, matchingtexra auth status. - Prefer your local skills — when skills share a name, your project and user skills now take precedence over the bundled ones.
- Guard the model after changing API mode — starting a chat after switching between the included relay and personal API keys now checks that your model is available and tells you how to recover if it is not.
Improvements
- Clearer team status and recovery hints — the launcher now describes each team's status in plain language (ready or unavailable) with readable agent counts, and when a team cannot start because its root cannot delegate, it says the team root is not a delegating agent. The list and inspect output point you to inspecting a preset to see which agents are missing, and suggest signing in to load relay-served agents when a built-in team is incomplete.
- Clearer agent and team labels — the agent picker now titles its list by what is available, calls out orchestrator and tool-use agents, labels orchestrators as delegating agents, and refers to the root agent in its guidance. Multi-agent run help, completions, and inspect output now consistently refer to the team root agent, and the status bar and rotating tips point you to
/agentfor choosing the root agent while it can still be changed. - Escape hints match what Escape does — the status bar now shows the correct Escape action for the open panel (skip, cancel, or close), the approval menu labels Escape as cancel, and the slash command palette shows an Escape hint.
- Tidier slash pickers — the
/modeland/agentpickers no longer stretch across the full width of wide terminals and now share a consistent bordered frame. - Readable diff colors — added and removed lines now use lighter backgrounds with explicit text colors so they stay legible on both light and dark terminals.
- Cleaner inquiry transcript — answered and dropped inquiry notices now appear as quiet cyan summary lines instead of looking like a message you typed; question and answer previews collapse to a single line so embedded code blocks no longer break the layout, with each notice pointing to the command for reading the full thread.
- Root active indicator — when you focus a stopped subagent while the main run continues, the status bar now shows that the root is still active.
- Show your account email plainly in doctor — the
texra doctorreport now displays your signed-in account email in full instead of masking it, while still hiding email addresses that appear elsewhere in the diagnostics. - Clearer manual sign-in guidance — the
--no-browserlogin flow now explains that the printed URL must open in a browser that can reach your terminal session, and notes that remote SSH or container users may need to forward the callback port.
Desktop
Features
- Resume runs from a previous session — the desktop app can now continue a run started in an earlier session instead of asking you to start over.
Extension (VS Code)
Features
- Review pasted images before sending — interactive agents now show pasted images in a Files group so you can review or remove them, and warn you when the selected model cannot read attached images.
Bug Fixes
- Sign-in works from Codespaces and the web — signing in from GitHub Codespaces or vscode.dev now completes instead of failing partway through.
- Tidier inline banners — the sign-in banner and other inline banners no longer render oversized, and the sign-in banner reads more clearly.
- Mixed image-and-text paste keeps your text — pasting an image together with text in the webview no longer drops the text.
Shared (all surfaces)
Features
- Repair workflow rounds when compilation fails — when a LaTeX compile check fails, the workflow uses the next round to repair the output from the compile log; a new setting lets you turn this on or off.
- Free relay request size limit — requests through the included free model access are now capped at 2 MiB, with a clear message suggesting your own API keys for larger requests.
Improvements
- Cleaner session labels — the short AI-generated session labels shown in the stream tab, history, and progress views are now based on your actual instruction rather than internal prompt scaffolding, so they describe the task more accurately.
[0.38.5] - 2026-06-04
Features
- Independent subagent history in CLI chat — each subagent in a team run now keeps its own scoped transcript that persists across sessions, so you can focus into a child or subagent stream, jump between them, and review their separate histories. Resuming a subagent continues it where it left off instead of starting over, and interactive team chats are tagged so you always know which run you're in.
- First-run auth onboarding — starting a session without credentials now walks you through signing in instead of failing, and new
/loginand/logoutchat commands (with options like--no-browser,--select-account, and--login-hint) let you manage access without leaving chat. - Paste images and large text into chat — paste a screenshot or other image straight into the chat input and it attaches as a thumbnail chip; large text pastes collapse into a compact chip so the input stays readable. Attachments clear with the draft when you reset.
- Pipe input into a run —
texra runnow reads--input -from stdin, so you can pipe a file or another command's output straight into a run and compose it with other tools. - Filter agents by category —
texra agentscan now filter the agent list by category, so you can quickly narrow to the kind of agent you want.
Bug Fixes
- In-session updates take effect immediately — accepting the "a new version is available" prompt now restarts
texraon the freshly installed version, so the session you land in (and its header//status) runs the update instead of silently continuing on the old build until you quit and relaunch by hand. - Chat API mode is reported consistently — the model is now resolved against the same API mode shown in the header and
/status(an explicit--api-mode/env override, otherwise your account default), so a session can no longer pick a model as if in one mode while the UI reports another. The--api-modeflag also rejects invalid values, and the model picker only offers models valid for the active mode. - Unknown CLI flags are rejected — mistyped command options and missing values for file flags now fail before the command runs, so typos surface immediately and structured CLI output stays clean for scripts.
- File-backed multi-agent prompts —
texra multi-agent runnow accepts--instruction-filefor long scripted team prompts, matchingtexra agents run. - Full CLI command paths in help — nested command help now shows the complete
texra ...command in usage banners, so commands liketexra multi-agent run --helpandtexra history show --helpare directly copyable. - Your approval policy survives
--no-input— passing an explicit--approvalchoice together with--no-inputnow keeps the policy you set instead of silently forcing a default, so non-interactive and scripted runs honor exactly what you asked for. The default approval policy is applied consistently acrosstexra initand chat, and negated login flags are honored too. - Resume and history pickers only list resumable runs — already-completed runs no longer clutter the resume/history pickers, so the list shows just the runs you can actually continue, with conversation previews to help you find the right one.
- CLI chat redraws cleanly on resize — the terminal now fully repaints on a width change, so resizing no longer leaves stray residue from reflowed lines, and long input wraps at word boundaries.
- Color honors your environment everywhere —
--no-colorandNO_COLORare now respected in help text and Markdown rendering as well, and run progress for--output-format jsonis written to stderr so the machine-readable stdout stays clean. - Agent and model lookup is more forgiving — hidden agents now show in
texra agents listand the chat picker,texra agents showprefers listed agents, thetool_usecategory alias is accepted, and empty model lists explain why instead of showing nothing. - Failed runs are clearly marked — failed background agents and failed child rows now show as errors rather than looking stuck or successful, and a focused stopped stream shows its real status.
- Clearer guidance when something is blocked —
texranow warns when multi-agent delegation can't run and when a team preset's availability is degraded, validates skill source paths with readable errors, and gates the included-access launcher behind sign-in.
Improvements
- Better defaults and guidance when starting a run — multi-agent launches show a task example to guide what to type, the simplifier agent is no longer offered as a default team root, buffered menu hotkeys are handled correctly on startup, and setup/auth errors point you to
texra auth status. - Consistent user chat defaults — CLI user
config.jsonchat defaults now honor the samechatsection andtexra.*keys as workspace.texra/config.jsonfiles. - User turns stand out in chat — your messages now render as a full-width reverse-video band that adapts to your terminal's light/dark theme and reflows on resize, making them easy to pick out from the assistant's output when scrolling back.
- Clearer
texra doctordiagnostics — Node.js version reporting and the supported-version check are aligned and consistent across messages. - Quieter, more predictable model selection — the CLI no longer prints noise when it implicitly falls back to a default model, and personal-account model recovery hints are clearer when a configured model isn't available.
[0.38.4] - 2026-06-01
Features
- Run agent teams from CLI chat — multi-agent orchestration is now first-class in the terminal. Focus into any child or subagent stream and jump between them with shortcuts, browse active and finished runs in a task picker, and inspect a multi-agent run's plan before it executes. Child streams show their own progress, elapsed time, descriptions, and Ctrl-C stop scope, and the team's identity is shown in chat.
- Pipe input into workflows —
texranow accepts content on stdin for workflow input, so you can pipe a file or another command's output straight into a run. - Pick the model right after the agent in CLI chat — choosing the root agent with
/agentbefore the first message now flows straight into the model picker, so you set the agent and model together in one step instead of remembering to run/modelseparately. Pressing Esc on the model picker keeps the agent you chose. - See remote agents in the CLI — running remote agents now appear in the CLI instead of being hidden.
Bug Fixes
- Ctrl-C always exits cleanly — pressing Ctrl-C on an idle chat, after a response, or on an interrupt signal now exits cleanly and stops the right scope (root run vs. focused child stream) instead of hanging, and the footer hint stays aligned with the live status.
- Color respects your environment — color output is gated per output stream and honors
NO_COLOR,FORCE_COLOR, and--no-color, the pager environment is routed correctly, and the--output-format json|ndjsonstream stays clean for scripts and CI. - Edit approvals show their diffs — edit and tool approval prompts now display the diff, scroll when it's long, and stay readable on cramped terminals so you can see exactly what you're approving.
- Readable in narrow and compact terminals — approvals, pickers, task detail, status bars, slash-command forms, and todo panels stay readable and keep their controls visible when the terminal is small, instead of clipping content or pushing the input off-screen.
- Queued follow-ups stay visible — follow-ups you queue while a run is active show up in the status bar and a dedicated panel with previews and counts, and idle messages no longer accidentally start a run.
- Mistyped subcommands get a suggestion — typo a subcommand and
texrasuggests the closest match instead of just erroring. - Privacy in CLI output — the API account email is redacted, and Gemini function-call debug text is hidden from the transcript.
- Progress board never silently hides a run's groups — a run's stage groups always render in the transcript instead of occasionally vanishing, and one run's progress can no longer show up nested under another.
Improvements
- Easier crash reports — a crash now prints a pre-filled report link, and root-level examples and docs ship alongside the CLI.
- Clearer
texra doctordiagnostics — access diagnostics and recovery hints are clearer and stay reachable on small terminals. - History shows more context — the history view now includes a conversation preview and the workspace files involved in each run.
- Transcript viewer wraps tool output — long tool output wraps in the Ctrl-T transcript viewer and one-line tool rows render compactly instead of overflowing.
[0.38.3] - 2026-05-29
Features
- "Max" reasoning effort for Opus 4.8 — pick the new top Max tier (above Extra High) in the Models tab for the hardest, longest-horizon tasks; it maps to Anthropic's
maxeffort, with Extra High remaining as thexhightier. - Live elapsed timer in the CLI chat — the status bar now shows the seconds elapsed next to
running, so a long "thinking" turn that streams no text still reads as alive instead of looking frozen.
Bug Fixes
- CLI chat redraws cleanly on resize — fixed leftover Ink live-region residue when the terminal is resized, and cut idle repaint churn.
- LaTeX math survives in the transcript — inline
$…$/\(…\)spans are now preserved verbatim in the CLI's Markdown rendering instead of being mangled. - Markdown tables size to their content in the CLI chat, instead of stretching to the full terminal width.
- Wolfram results always show a summary — runs that returned only structured data no longer render as an empty line.
- Clean
--output-formatoutput — usage text is routed to stderr on errors so the JSON / NDJSON stream on stdout stays parseable for scripts and CI. - Drag-and-drop file selection works — files dragged from the workspace explorer now land in the workflow Input / Context / Media buckets.
- Subagent progress boards show their rounds again — a subagent run's transcript was blank except for the instruction: the round groups (Init, r0/r1) and everything nested under them — scratchpad, statistics, latexdiff results, loaded files — failed to render. The run's root stage was inheriting the orchestrator's active stage as a cross-trace parent, orphaning the whole group tree in the subagent's own stream.
Improvements
- Install the CLI straight from the Dashboard — the TeXRA CLI integration card now shows the
npm install -g @texra-ai/clicommand and an npm link, for running the same agents on your.texprojects without an editor.
[0.38.2] - 2026-05-27
Features
Claude Opus 4.8 support — the latest Opus 4.8 models (
opus48,opus48T) are available for demanding research and engineering tasks, replacing Opus 4.7 as the default Anthropic model. Opus 4.8 keeps the full 1M context window, adaptive thinking, and native server-side compaction.Stay on the latest CLI —
texranotices when a newer version is on npm and offers to update for you.Shift+Enter for newlines in the CLI chat input — write multi-line prompts without leaving the input.
Easier-to-read diffs — added and removed lines show as full-width green and red bands in the terminal, matching the editor view.
See the full output anytime — press Ctrl+T in the CLI chat to view a tool's complete output when it's shown shortened.
Tables render in the terminal — Markdown tables now show as proper bordered tables in the CLI chat.
Bug Fixes
Workflow rounds no longer overwrite the workspace — past round 0, a workflow agent's emitted documents were being written through a symlink chain that ended at your live workspace file. The round directory's outputs are now real files owned by the round, and the workspace is unreachable from the backend.
Ctrl+C works on modern terminals again — cancel a run or exit
texra chaton kitty, WezTerm, and Ghostty.Approval prompts stay compact — they no longer stretch to fill the terminal and push the input off-screen.
No more empty "(no output)" lines in the chat transcript for tools that intentionally hide their output.
Readable text in high-contrast themes — user messages no longer blend into the background.
[0.38.1] - 2026-05-27
Features
- CLI tools, memory, and init — new
texra tools(list,show,enable,disable,install,auth) andtexra memory(list,show) command groups, plus atexra initwizard that writes.texra/config.jsonand gitignores it. The TUI gets a matching/toolsslash command.
Bug Fixes
- Bug fixes on settings tabs loading, "Compare with base" diffing against the live workspace file, and progress-log replay preserving initial entries.
Improvements
- Cleaner history rows — restructured layout with metadata on top, inline Context/Config, and collapsible long prompts.
- Merge shows up on the progress board — runs now appear as a normal task and save their result under the input filename.
- CLI auth grouped under
texra auth—login,logout,status, andusagenow live undertexra auth(top-leveltexra login/texra logoutkept as shortcuts). Clearer--approval-policyhelp, safer defaults, and disambiguated--outputvs--output-dir.
[0.38.0] - 2026-05-24
Features
- Export chat history as a shareable webpage — Settings → History gets a new HTML export button alongside Markdown and PDF. The export uses the same markdown / KaTeX / syntax-highlighting pipeline as the in-app webview, ships its own CSS + fonts, and opens straight in your browser so you can share or demo a project run with anyone.
[0.37.10] - 2026-05-23
Features
- Approve & Run a plan — plan approval cards have a new Approve & Run button (in Odyssey mode) that approves the plan and lets the agent work through every step on its own.
- Orchestrators can hand off to Claude Code — built-in orchestrator agents can delegate a sub-task to Claude Code when that's the better tool for the job.
Improvements
- Quota shown as a percentage — Settings → Models tells you how much of your monthly included-model quota you've used as a percentage rather than a dollar amount.
- Less prominent Odyssey settings tab — the Odyssey tab now sits at the end of Settings so the everyday tabs come first.
Bug Fixes
- Sensible defaults when something is missing — empty model lists and missing-agent sessions fall back to a working default.
- More reliable tool calls — fixes tool-call failures on Anthropic, Gemini, and OpenAI (including GPT reasoning models) for tools with complex arguments.
- Old workflow outputs load correctly — outputs saved by older versions open again.
- Stopping a run isn't an error — interrupting an agent is treated as a cancellation.
- Welcome walkthrough stays reachable — easy to find again from the editor's walkthrough list.
[0.37.9] - 2026-05-18
Features
- See your relay quota at a glance — Settings → Models shows how much of your monthly included-model quota you've used. When it runs out, TeXRA quietly switches to your own API keys so runs don't fail mid-task.
Improvements
- Cleaner Settings view — tighter layouts across tabs, and the README now opens directly inside the extension.
- Simpler launcher — the input and output file panels are easier to read at a glance.
- See your workflow PDF — when a workflow run produces a PDF, you can open it directly from the run.
[0.37.8] - 2026-05-17
Breaking Changes
- Sessions and agent configurations from very old extension versions may not load — TeXRA no longer migrates them on the fly. If a saved session or agent config refuses to load after upgrading, recreate it.
Features
- Odyssey mode — let an agent run a long task to completion on its own. A budget auto-pauses the run for your approval before going further, and a dedicated panel shows progress so you can step in any time.
- Integrations settings tab — a new Settings → Integrations tab groups external agent integrations (Codex CLI, Claude Code CLI, External Inquiry) in one place, with reasoning-effort and adaptive-thinking controls for Claude Code CLI.
- Ask-user-question tool — agents can now ask you a multiple-choice question mid-run instead of guessing.
- Ink-based CLI TUI is the default —
texra chatnow uses the Ink TUI for interactive sessions, with a multi-pane layout, structured slash forms, persistent input history, and shared key hints. Deprecated renderer flags are still accepted for compatibility. - Non-blocking inquiries — when an agent sends you to ChatGPT/Gemini/etc. for outside help (now called Inquiry), the run no longer freezes waiting for your reply. The agent keeps working and is woken with a follow-up when you submit the answer — even after closing the tab or reloading. Inquiry threads appear in Background tasks with full transcripts and saved drafts per thread.
- Open PDF from an agent — agents can open a finished PDF in your viewer.
- LaTeXdiff focuses on changed pages — generated diff PDFs now show only the pages that actually changed.
- Worktree chip on stream tabs — when an agent runs in a git worktree, its stream tab shows the branch name and a dirty-status indicator.
Improvements
- General performance and reliability improvements.
- Bash runs in Executions — shell commands run by an agent now show up as their own process with a dedicated stream tab instead of being folded into the calling agent's output.
- Single-slot workflow output keeps the original filename — edit-style workflows write back to the input file's name instead of generating a duplicate under a generic name.
- Pack and Clean show what each input is for — input slots in the launcher are labeled instead of unnamed.
- Settings polish — more compact retry details and dropdowns, longer memory previews, reliability controls now live on the Models tab, and agent proposal instructions render as markdown.
- Long shell commands wrap — tool-use titles no longer truncate long commands with an ellipsis.
- Progress view first-run state — with no runs yet, the progress view shows direct actions to open the Launcher or Dashboard instead of an empty board.
Bug Fixes
- Recover from retryable tool errors — when a tool call fails with a resumable error, you can now send a follow-up to nudge the agent past it instead of being stuck.
- LaTeXdiff doesn't litter your workspace — intermediate sources stay in run storage instead of appearing next to your files.
- CLI workflow output paths —
texra runnow prints the final workflow output path from run storage, so multi-round workflow output remains unambiguous. - Cleaner progress summaries — long bash output no longer floods the rolling summary at the top of a run.
- Current DeepSeek V4 pricing — V4 Flash and Pro now use DeepSeek's current cache-hit and discounted rates.
- Codicon font packaging — toolbar and settings icons render correctly in installed builds instead of fallback squares.
[0.37.7] - 2026-05-01
Features
- GitHub subscription for repos and issues — ask an agent to watch a repository or issue and it will receive activity (comments, state changes, CI results) as follow-ups while it works. Use
owner/repoto monitor a whole repo, orowner/repo/issues/Nfor a specific issue — the same way PR subscriptions already work. Open Settings → Git to see what's being watched and stop any subscription. - Compile & Diff settings in the UI — LaTeX compile and diff options (auto-compile after each round, timeouts, latexdiff math-markup mode, formatter choice) can now be configured in Settings → LaTeX under Compile & Diff without touching
settings.json. Settings are per-workspace and take effect immediately. - Working directory shown on delegation proposals — when a delegated agent will run in a specific directory, that path now appears on the proposal and permission cards before you approve, so you can confirm it's correct.
- Send follow-ups freely during delegation — you can now queue multiple messages while a delegated agent is working; they are delivered in order once it's ready, instead of later messages being silently dropped.
Bug Fixes
- Workflow outputs stay out of your workspace until accepted — generated files remain in run storage and your source files are not marked as modified until you explicitly accept the output.
- Disk-full errors show an actionable message — a full disk now produces a clear "free up disk space" notification instead of a raw error, and no retry is attempted.
- Various smaller fixes — stable toggle icons; reliable DeepSeek reasoning output; LaTeX fixer button always enabled when appropriate; AI responses no longer silently drop tool calls; no extra approval prompt between orchestrator and delegated subtask; follow-up input wraps long URLs, paths, and pasted log output instead of overflowing the panel; progress board recovers from corrupted or outdated saved state instead of crashing on startup.
[0.37.6] - 2026-04-27
Features
- GPT-5.5 Pro — OpenAI's GPT-5.5 Pro (
gpt55pro) is now available in the model catalog as an opt-in choice for the hardest planning, long-horizon, and large-codebase tasks. It extends GPT-5.5 with a 1.05M-token context window andxhighdefault reasoning effort. Premium pricing ($30/M input, $180/M output); available on premium plans — enable it from Settings → Models when GPT-5.5 isn't enough. - Computer Scientist multi-agent preset — a new built-in team preset tuned for empirical computer science work pairs a numerics agent for code-driven experiments with a search agent for literature and a review/criticize agent for methodology and baseline scrutiny.
- Setup assistant can run terminal commands — the setup wizard can now hand off sudo prompts and interactive installers to your VS Code terminal instead of stalling on them.
Improvements
- Premium-pricing advisory for GPT Pro models —
gpt5pro,gpt52pro, andgpt55pronow show a warning in the model dropdown tooltip and the Settings → Models tab pointing users to the External Inquiry tool, which lets agents ask you to paste an answer from your own ChatGPT subscription instead of paying per-token API rates for these flagship Pro models. - Friendlier first-run experience — the status bar now shows a "Get Started" button that opens the setup assistant for both sign-in and API-key flows; if agents fail to load you get a dismissible notification with Retry and View Logs actions; and the welcome view lists numbered next steps instead of a generic message.
- Model labels in selection lists — model labels (e.g. "Fastest", "Balanced") now appear alongside model names in the Settings → Models selection list so you can tell at a glance what each choice is optimised for.
- Recent runs shown first — the progress board now lists your most recent runs at the top.
- Scrollable command output — long command output in the progress board scrolls independently, and you can copy it in formatted or plain-text form.
- More reliable follow-ups during delegation — messages sent while a delegated agent is still working are queued and delivered once it's ready, instead of being dropped.
- Settings UI polish — model and agent dropdowns are wider; model labels appear in run tab headers; the GitHub tools section shows prerequisite hints; and the Multi-Agent tab layout is more compact and consistent.
- API setup guidance in Models tab — a hint banner appears in Settings → Models when no API key is detected, giving users a direct path to configuration.
- External Inquiry quick-links — the External Inquiry panel now includes direct links to documentation so users know when and how to use it.
Bug Fixes
- Progress board fails to open after a crash — TeXRA now recovers cleanly if its saved state was corrupted by an unexpected shutdown, so the progress board always opens on startup.
- Agent panels stuck open after delegation — panels from completed delegated work now close properly and can no longer get stuck mid-initialisation.
- GitHub status stale in Settings — the GitHub connection status now refreshes each time you open Settings instead of showing outdated information.
[0.37.5] - 2026-04-24
Breaking Changes
- Workflow outputs stay in task storage — generated workflow files no longer appear directly beside your source files. Review them from the progress view, open the run's task storage folder, accept selected outputs, or pack the run into
History/.
Features
- GPT-5.5 — OpenAI's GPT-5.5 (
gpt55) is now the flagship OpenAI model in the default lineup. It reaches strong results with fewer reasoning tokens, follows instructions more literally, is more precise on large tool surfaces, and produces more polished and concise answers by default. The default reasoning effort is medium — raise tohigh/xhighonly when it makes a measurable difference. Image inputs preserve more visual detail by default, improving figure and screenshot understanding. The TeXRA CLI integration usesgpt-5.5for delegated Codex turns. GPT-5.4 (gpt54,gpt54-,gpt54--) remains available as a lower-cost option. - Terminal-quality command output — command-heavy runs are much easier to read, especially during builds, installs, and diagnostics.
- Clearer pull-request awareness — GitHub-related work is easier to monitor and return to from the settings and progress views.
- DeepSeek V4 models — DeepSeek V4 Flash and DeepSeek V4 Pro are now available in the model catalog.
Improvements
- More guided first run — the welcome banner now surfaces the setup walkthrough so new users can step through environment, tools, and model access without hunting for it.
- More dependable long-running work — extended agent sessions recover more smoothly from interruptions and ambiguous turns.
- Sharper model defaults — new and upgrading users get a cleaner default model lineup while advanced options remain available.
- Sharper literature workflows — agents are better at turning full-paper context into focused, usable research guidance.
- More helpful guidance — setup, orchestration, Git, LaTeX, and Lean workflows now present clearer next steps.
- More polished progress UI — streams, controls, and dropdowns are more compact, consistent, and easier to scan, and session hints dismiss with a subtler control.
- Quieter diagnostics — routine messages stay out of the way, and user-facing errors focus on recovery.
Bug Fixes
- More reliable workflow history — older workflow tabs recover their context more consistently.
- Settings refresh fixes — API key, agent, model, and GitHub changes now update related UI state more reliably.
- More robust PR workflows — temporary GitHub failures are handled more gracefully.
- Restored output and diff displays — generated outputs and diff views display correctly again.
- Cleaner command-stream labels — background command streams no longer show irrelevant labels.
- More complete chat exports — exported conversations preserve more of the visible interaction.
- DeepSeek cache reporting — DeepSeek V4 Flash and DeepSeek V4 Pro usage now distinguishes prompt-cache hits and misses more clearly.
- Fuller Anthropic responses — prefilled content now reaches the final output instead of being dropped.
- Crisper terminal-style logs — command output is easier to scan and no longer runs together.
- Smarter delegation choices — the orchestrator reaches for a real agent when one fits the task.
[0.37.4] - 2026-04-21
Breaking Changes
- Workflow outputs now live in run history — workflow results are kept with the run that produced them, giving you a cleaner workspace and a clearer review path through the progress view.
Features
- Guided first-run setup — TeXRA can now walk users through environment checks, missing tools, and model access with a more guided setup experience.
- Higher-confidence workflow review — generated LaTeX opens naturally, is easier to inspect, and is checked more consistently before acceptance.
- A more capable team experience — multi-agent workflows now feel more like coordinated teams, with clearer proposals and better handoffs.
- Richer project awareness — TeXRA surfaces more useful context across the sidebar, Explorer, and progress view while agents work.
- Pull-request collaboration support — agents can help keep PR work moving with less manual monitoring.
- Claude Opus 4.7 support — the latest Opus 4.7 models are available for demanding research and engineering tasks.
- Better isolation for advanced delegation — larger multi-agent runs can keep parallel work better separated when configured.
Improvements
- Smoother Codex orchestration — Codex-backed work fits more naturally into long multi-agent sessions.
- Safer workspace activation — TeXRA now waits for trusted workspaces before enabling agent features.
- Cleaner first-run defaults — optional integrations that need extra setup are quieter for new users.
- More durable long workflows — long-running model work is handled more robustly.
- More readable progress surfaces — workflow instructions, selected tabs, history, and webview styling are easier to scan.
Bug Fixes
- More reliable workflow builds — assets and related files are handled better during workflow review.
- Better compact layouts — child streams collapse and reopen more predictably.
- Persistent sidebar placement — VS Code restores the TeXRA sidebar location more reliably.
- Cleaner command palette behavior — TeXRA commands no longer appear before the extension is ready.
- More reliable GitHub updates — CI and review activity are tracked more consistently.
- Clearer cancellation behavior — cancelled requests no longer become generic provider errors.
- More reliable relay routing — provider-prefixed model IDs route correctly through relay.
- Proposal and toolbar polish — stream toolbar state and proposal-card layout behave more consistently.
- More reliable follow-ups — messages sent during delegated work are handled more gracefully.
- Thinking-model display fixes — reasoning summaries are visible again for supported thinking models.
- More robust Codex effort handling — higher effort settings no longer break Codex sessions.
- Helper-agent loading fixes — built-in helper agents validate and load properly again.
[0.37.3] - 2026-04-15
Features
- Better multi-file paper support — workflow agents handle papers with shared files and bibliographies more reliably.
- More flexible arXiv downloads — downloaded papers can be saved where they fit your project organization.
- Remote-agent transparency — premium users can inspect the prompt sent to a remote agent.
- Settings import — settings can now be loaded from a saved file.
Improvements
- Long-paper handling is more reliable — large documents are processed more smoothly.
- More careful orchestration — the orchestrator asks for clarification more often when a request is ambiguous.
- Dismissed banners stay dismissed — onboarding and info banners respect your choices across sessions.
Bug Fixes
- Fixed stale run state sometimes affecting new agent runs.
[0.37.2] - 2026-04-09
Features
- Orchestrator-first onboarding — new users are guided toward the orchestrator as the default starting point.
- Codex effort setting — Codex runs can now use configurable reasoning effort.
- More responsive follow-ups — follow-up messages interrupt waiting agents more reliably.
- New Codex skill presets — additional ready-made Codex workflows are available for research and Lean work.
Improvements
- Clearer labels and terminology — agent modes, approvals, settings, and warnings are easier to understand.
- Improved orchestrator UX — orchestrator guidance and mode-specific instructions are more consistent.
- Richer Codex display — Codex activity is easier to inspect in the progress view.
- Better error messages — common setup and agent errors now include clearer next steps.
- Tighter stream tabs — progress tabs use space more efficiently.
Bug Fixes
- Fixed an activation issue that could prevent TeXRA from starting correctly.
[0.37.0] - 2026-04-04
Features
- External AI consultations — agents can help coordinate questions to external AI services from within a TeXRA session.
- Redesigned Codex experience — Codex work is easier to follow, continue, and review inside TeXRA.
- Expanded model routing — OpenRouter support is now more deeply integrated.
Improvements
- Better organization for concurrent work — related background activity and delegated work are easier to follow in the progress view.
- More responsive long-running output — background command output appears more naturally while work is still running.
- Improved performance with many streams — the sidebar stays responsive with large active sessions.
- Tool toggles — individual tools can now be enabled or disabled from the Tools settings tab.
- More self-contained document outputs — generated documents are easier to understand without reading the full conversation.
Bug Fixes
- Fixed Codex sessions occasionally hanging or duplicating work.
- Stopping background work is more reliable.
- Resolving one external consultation no longer changes the active response unexpectedly.
[0.36.10] - 2026-03-28
Features
- OpenRouter provider — new toggle in model settings to route all API calls through OpenRouter, letting you use a single API key for any supported model.
Improvements
- Updated dependencies (KaTeX, Codex SDK, OpenRouter SDK).
[0.36.9] - 2026-03-26
Features
- Context compactization for OpenAI-compatible models — DeepSeek, Kimi, GLM, and MiniMax models now support automatic context compactization, preventing long tool-use sessions from hitting context window limits. The model summarizes older messages when token usage exceeds 75% of the context window.
- Wait for specific background executions — the
executionstool's wait action now accepts an optionalidsparameter to monitor specific background tasks instead of waiting for any active execution. - MiniMax reasoning split — MiniMax thinking models now return structured reasoning content instead of embedded
<think>tags, improving display and downstream processing.
Bug Fixes
- Fixed Codex CLI not being detected for WSL users.
- Fixed tool-use agent errors ending the conversation instead of allowing follow-up messages to retry.
- Fixed workflow delegation losing extract-figure flags when the LLM omitted them, now inheriting from the parent agent.
Improvements
- Extract figure badges in delegation UI — workflow proposals now show labeled badges for auto-extract figure and TikZ flags in the approval panel and log entries.
- Better Codex tool display — Codex processes show a robot icon in the background tasks panel and display structured prompt details in the progress view.
- Updated VS Code engine requirement to 1.105.0.
- Updated dependencies (Supabase, Hono, MCP SDK, fast-xml-parser, KaTeX, OpenAI, Vite, and others).
[0.36.8] - 2026-03-23
Features
- MiniMax and GLM model providers — added MiniMax and Zhipu AI (GLM) as model providers, with region toggles for China and international endpoints.
- Zotero collections browser — agents can now browse your Zotero collection folders to discover and organize references before adding papers.
- Email file support — attach or read
.emlemail files directly; TeXRA extracts headers, body text, and image attachments into readable content. - Git author attribution — new option in the Git settings tab to mark commits made by TeXRA with a custom author name and email, so agent-authored changes are easy to identify.
- LaTeX asset extraction in workflows — workflow agents can automatically extract referenced figures and TikZ diagrams when delegating tasks, with toggles in the delegation UI.
- Paginated listings — history, memory, and tool execution lists now paginate instead of loading everything at once, keeping the interface responsive with large collections.
Bug Fixes
- Fixed git settings checkbox staying disabled after reopening the settings panel.
- Fixed rare crash during agent conversations.
- Fixed agents occasionally launching in the wrong execution mode.
- Fixed background agents continuing to run after closing their stream tabs.
Improvements
- Helper model validation — TeXRA now checks credentials before starting a task, showing clear messages like "API key missing" instead of failing mid-run.
- File tracking in multi-agent workflows — the orchestrator now reports which files each sub-task edited, so you can review changes at a glance.
- arXiv paper organization — downloaded arXiv papers are saved into a
References/subdirectory instead of the workspace root. - Cleaner stream switching — plan and todo sections collapse when switching between stream tabs to reduce clutter.
- Execution timing — terminal and sub-task results now show how long they took to run.
- Better resource cleanup — closing the extension properly stops background processes to prevent memory leaks.
- Updated dependencies.
[0.36.7] - 2026-03-17
Features
- LaTeX error fixer — new title bar button for
.texfiles that automatically compiles, diagnoses, and fixes errors, warnings, and overfull boxes. - OpenAI Codex tool — agents can use OpenAI's Codex CLI for sandboxed code execution with streaming output.
- Pinnable memories — pin up to 10 memories per workspace so they are always included at session start.
- Memory attachments for delegated tasks — attach memory files to sub-tasks so agents inherit project conventions and knowledge.
- Short model names — toggle in the Models tab to use unpinned identifiers (e.g.,
gpt-5.4instead ofgpt-5.4-2026-03-05), useful for proxies that don't accept dated names. - DashScope China region (Bailian) — toggle in DashScope settings to switch between international and China endpoints.
- Copy user messages — copy-to-clipboard button on hover for user messages in the Progress Board.
- Output diffs in multi-agent workflows — changed files from completed sub-tasks are shown as diffs for quick review.
- Project context in bash —
$PROJECT_DIRand$PROJECT_NAMEenvironment variables available in agent bash sessions. - Selection descriptions — agent and model selectors now show a brief description below the dropdowns.
Bug Fixes
- Fixed latexdiff failing with files in subdirectories.
- Fixed Codex CLI errors on first use and during long sessions.
- Fixed history view showing empty file fields for tool-use sessions.
- Fixed editor tabs stealing focus when agents open files.
- Fixed retry logic misclassifying non-retryable Anthropic errors (e.g.,
invalid_request_error) as retryable.
Improvements
- Markdown in history and memories — instructions and memory previews render as formatted markdown with syntax highlighting.
- Overleaf Git token setup — prompts and error messages now link to Overleaf's token documentation.
- Session descriptions for all agents — delegated agents now show auto-generated descriptions in their progress tabs.
- Lower Anthropic costs — Opus 4.6 and Sonnet 4.6 use native 1M context without a long-context premium. PDF limit raised to 600 pages.
- Terminal respects your theme — terminal output uses VS Code theme colors, fixing readability in light themes.
- Agents stay on track in long sessions — todo list and plan are preserved when the conversation is compacted.
- Scrollable panels — long plans, bash commands, and permission panels scroll instead of pushing buttons off screen. Panels auto-expand when new information arrives.
- Removed Wolfram provider key configuration (the WolframScript tool remains).
- Improved writing quality and consistency across agents.
- Updated dependencies (
@google/genai1.46.0,llm-zoo1.1.4,openai6.32.0).
[0.36.6] - 2026-03-12
Features
- Background tasks panel — a new collapsible panel in the Progress Board shows running background processes and subagents with real-time terminal output streaming, so you can monitor what's happening without switching tabs.
- Office document attachments — attach Word, Excel, PowerPoint, and other office documents directly in file attachments alongside images and PDFs.
- WebSocket mode for OpenAI — enable persistent WebSocket connections (
texra.model.useWebSocket) for lower-latency streaming with OpenAI models, especially in multi-turn tool-use workflows. - Session descriptions in stream tabs — each agent session now generates a short description from your instruction, shown in the stream tab for easier identification. Cancelled or errored sessions get descriptions too.
- Multi-provider chat export — chat export now works correctly with Google GenAI, OpenAI, and Anthropic conversations.
Bug Fixes
- Fixed pending approvals being dropped when the editor panel closed and fell back to the sidebar.
Improvements
- Lower costs with Anthropic models — prompt caching is now handled more efficiently, reducing token usage in long conversations.
- Agents stay aware during long conversations — after context is compacted in long sessions, agents now retain a summary of running subagents and background processes instead of losing track of them.
- Updated dependencies.
[0.36.5] - 2026-03-08
Features
- GPT-5.4 — added OpenAI's GPT-5.4 (
gpt54) and GPT-5.4 Pro (gpt54pro) to the default model list. GPT-5.4 is OpenAI's most capable model, with 1M token context, native computer-use, and improved professional-task performance. GPT-5.4 Pro offers maximum performance for complex workloads. - GPT-5.2 and GPT-5.2 Pro have been removed from the default list (still usable if manually added). GPT-5.3 Codex remains as the recommended coding model.
- Chat export — export agent conversations to Markdown or LaTeX/PDF formats.
- Approval indicators — stream tabs now show a pulsing orange border when an approval is pending, and auto-focus to the requesting tab.
Bug Fixes
- Bug fixes in diff view focus, custom endpoint resolution, approval toggle state, and Anthropic web tool handling.
Improvements
- Updated dependencies.
[0.36.4] - 2026-03-02
Features
- Reasoning level overrides — configure the reasoning effort (Low / Medium / High) per model in the Models settings tab, overriding each provider's default.
- GPT-5.3 Codex — added OpenAI's GPT-5.3-Codex (
gpt53codex) to the default model list.
Bug Fixes
- Fixed incomplete Anthropic responses not being detected — truncated streams are now caught and retried automatically.
- Fixed image uploads rejected when the configured resize dimension exceeded 8000 px — the limit is now capped to stay within API bounds.
- Fixed approval and instruction panels disappearing or not appearing in the progress board — diff previews, subagent launches, and stream switches no longer dismiss pending approvals or drop instruction data.
- Fixed Google GenAI retry multiplication — the configured retry count is now respected instead of being silently multiplied.
Improvements
- Inline base64 fallback for tool attachments — images and PDFs from tool results are now embedded inline when routed through providers (e.g., OpenRouter) that lack file-upload support, so the model can see visual content.
- Clearer delegation feedback — the orchestrator now receives more accurate status signals, rejection details, and approval metadata when delegating to subagents, improving multi-agent coordination.
[0.36.3] - 2026-02-23
Features
- Resume agent tool — the orchestrator can now send follow-up instructions to paused subagents, continuing where they left off without starting over.
- LaTeX settings tab — new Settings tab showing recommended LaTeX configuration with one-click apply, plus dependency status for LaTeX Workshop and latexdiff.
- Gemini 3.1 Pro — added as default Google model, replacing the deprecated Gemini 3 Pro.
- Parallel tool call limits — configure how many tools OpenAI models can call at once in Multi-Agent settings.
- Orchestrator kill toggle — control whether the orchestrator can terminate subagent runs from Multi-Agent settings.
- Tool availability checks — missing dependencies (Wolfram, Lean) are detected automatically with one-click install prompts instead of confusing errors.
- leanBlueprint agent — new Lean 4 agent for blueprint-driven formalization, available in the lean-project and mathematician presets.
- Presenter bash support — the presenter agent can now run bash commands for building and previewing slides.
Bug Fixes
- Fixed user messages appearing out of order in tool-use conversations instead of interleaving chronologically with tool outputs.
- Fixed arXiv fetcher not reporting already-downloaded papers and incorrectly rejecting PDF-only papers.
Improvements
- Progress Board is noticeably faster — streaming updates, tab switching, and large conversations all render more smoothly.
- Keyboard accessibility — added focus indicators, hover states on interactive elements, and a confirmation dialog before API key removal.
- Better tool error messages — clearer installation guides and actionable steps when external tools are missing.
- Updated dependencies.
[0.36.2] - 2026-02-17
Features
- Agent management — save/load/delete custom agent presets from the Multi-Agent tab, create agents via a guided wizard, and customize or delete them directly in Settings > Agents with per-source bulk toggles.
- Tool Dashboard — new settings tab showing which external tools (LaTeX, Git, Lean, Zotero, etc.) are installed and available on your system.
- Live subagent visibility — agent sessions are auto-summarized, and the orchestrator sees real-time cost, tool-call, and file-interaction updates from running subagents.
- Orchestrator memory — orchestrator agents record experience gathered during sessions, improving results across future runs.
- New agents — added leanSearch, leanSimplifier, and presenter for Lean 4 research, proof simplification, and interactive Beamer presentation building.
- Terminal output rendering — bash and shell output in the Progress Board now renders with full ANSI color and formatting support.
- Beamer theme — paper2slide now uses the modern metropolis theme.
- Added Claude Sonnet 4.6 (
sonnet46,sonnet46T) with server-side context compaction and 1M context window beta support.
Bug Fixes
- Fixed stream tab animations not playing and message updates being dropped for grouped messages in multi-agent scenarios.
- Agents no longer crash when hitting the PDF page limit — instead they receive a helpful message suggesting compaction.
- arXiv sources are no longer re-downloaded when the files already exist locally.
- Fixed context window detection for OpenAI Responses API models.
- Fixed a crash in environments without a home directory (e.g., Docker containers).
- Fixed LaTeX path detection — auto-detects TeX installation paths across macOS, Linux, and Windows; non-workspace files now resolve project-local
.sty,.cls, and.bibfiles correctly. - Fixed several Windows / WSL issues — line-ending normalization and path handling now work correctly.
- Fixed agents not stopping properly — no longer run extra rounds after a failure or ignore the interrupted status.
- Authentication errors no longer trigger repeated retries; only transient network failures are retried.
- Fixed keyboard shortcuts sometimes being routed to the wrong panel.
- Fixed model dropdown not appearing for users with personal API keys but no TeXRA account.
- Fixed interrupted sessions losing their conversation history — previous messages are now preserved so you can review what happened.
Improvements
- Multi-agent UI is noticeably faster — switching between agents and receiving updates stays responsive even with many concurrent streams.
- Pack and Clean discoverability — renamed commands to be more descriptive, added keyboard shortcuts (Ctrl+Alt+Shift+C/B), and made them accessible from editor title menus, context menus, and the getting-started walkthrough.
- Memory tool safety — agents must now view a memory file before deleting or renaming it.
- Error messages from tools are now clearer and suggest concrete next steps.
- Updated dependencies.
[0.36.1] - 2026-02-13
Bug Fixes
- Fixed model dropdown availability.
[0.36.0] - 2026-02-12
Features
- Added review agent for manuscript verification — checks mathematical correctness, derivation soundness, notation consistency, and code-manuscript consistency.
- Added Super YOLO mode for auto-approving agent proposals without user interaction, with per-stream toggle and settings in the Multi-Agent tab.
- Subagent model inheritance — delegated agents now default to the parent agent's model.
- Added reliability settings (compaction threshold, retry attempts, retry backoff) to the Multi-Agent tab.
- Added parent agent breadcrumbs on subagent stream tabs with clickable navigation back to the parent stream.
- Added modification timestamps and column headers to memory tool directory listings.
- Added execution management — orchestrator agents can now wait for, inspect, and terminate subagent runs.
- Added active process badges in the progress view.
Bug Fixes
- Fixed Kimi tool-use causing API errors on parallel tool calls.
- Fixed manual compaction trigger not being honored.
- Fixed gzip-only arXiv sources not decompressing correctly for single-file downloads.
- Fixed Overleaf/ShareLaTeX project URLs — clone dialog now accepts standard project URLs; auth failures show a "Get Token" button.
- Fixed Super YOLO toggle not syncing state on stream switch or webview reload.
- Fixed parent stream link persistence across extension restarts.
- Fixed stream-switch events from parent breadcrumb links not working in split layout.
- Fixed stream diagnostics showing when no events were processed.
Improvements
- Removed deprecated models (sonnet45, opus46, kimi25, qwen3max) from the default model list.
- Suppressed file lineage display for non-rewrite agents.
- Updated dependencies.
[0.35.10] - 2026-02-10
Features
- Added agent browser in settings view with split-panel layout, visibility config, and keyboard navigation.
- Added context-aware "New Agent" button matching the current agent category.
- Added simplifier and presenter tool-use agents for scientific code/LaTeX cleanup and Beamer presentations.
- Main view agent/model buttons now open settings view tabs directly.
- Added model dropdown and sync/async mode badges on agent proposals.
- Added execution status badges on orchestrator and runs tool.
- Added live tool timers with timeout display and real-time bash output.
- Added reject-with-feedback for bash command approvals.
- Added manual conversation compaction for tool-use agents.
- Added memory tool display in progress view.
- Added subagent output capture for orchestration.
- Added remote agent tools shown in agent proposals.
- Added batched Lean loogle queries.
- Added accept_run_files tool for orchestrator to accept workflow outputs.
- Added PDF page limit handling — agents receive guidance instead of errors.
- Added structured fields (title, author, year) to the
zotero_searchtool. - Added Terms of Service and Providers pages to the documentation site.
Bug Fixes
- Fixed context window overflow during long sessions.
- Fixed cache invalidation causing unnecessary re-sends.
- Fixed thinking model token limits being too low in tool-use mode.
- Fixed compaction size reporting inaccuracy.
- Fixed auto-scroll when switching stream tabs.
- Fixed stream tab delete button clipped at narrow widths.
- Fixed agent proposals racing with model options loading.
- Fixed agent visibility not handling new agents correctly.
- Fixed bash processes not cleaning up on timeout (Windows included).
- Fixed background polling reliability.
- Fixed path traversal and workspace boundary validation.
- Fixed Windows path normalization throughout.
- Fixed Lean 4 file lookup and syntax highlighting.
- Fixed agent status icon not updating after successful retry.
- Fixed LaTeX diff dropdowns opening in the wrong direction.
- Fixed Zotero search results not displaying correctly.
Improvements
- Added tool timeouts across all tools.
- Optimized progress view performance.
- Migrated agent settings to the Settings View.
- Removed deprecated agents (tex_linter_fix, xml_validator).
- Restricted tool-use agents from out-of-workspace filesystem access.
- Updated dependencies.
[0.35.9] - 2026-02-06
Features
- Added Claude Opus 4.6 (
opus46,opus46T). - Added model selection UI in Models tab with provider grouping, deprecation toggles, and tier indicators.
- Added polish model dropdown in the model selection section.
- Added inline provider API key management in the Models tab.
- Added unified Dashboard consolidating history, memory, and profile views with a searchable, collapsible history list.
- Added diff display for edit tool in progress view with inline line numbers and file links.
- Added live tool commands in progress view, shown immediately before execution completes.
- Task Progress section now collapsed by default for a cleaner UI.
- Increased default session retention to 2 weeks.
- Added server compaction support with summaries shown in progress view.
- Migrated streaming & endpoint settings to the Settings View.
- Enabled 1M context window beta for Claude Opus 4.6.
Bug Fixes
- Fixed sign-in timeout when auth provider fails, and auth errors no longer block unrelated initialization.
- Fixed agent output leaking internal reasoning into files.
- Fixed
$in replacement strings being interpreted during edit operations. - Fixed GPT-5 token counting fallback when counting fails.
- Fixed Windows compatibility for paths and line endings in graphicspath parsing.
- Fixed context overflow in tool-use agents.
- Fixed token counting accuracy and inflated history after compaction.
- Fixed LaTeX diff UI regression.
- Fixed error message titles not being selectable/copyable.
- Fixed duplicate media file listing in progress view.
Improvements
- More native VS Code look with codicon toolbar buttons across settings and progress views.
- Updated dependencies.
[0.35.8] - 2026-02-02
Features
- Added Kimi K2.5 models with thinking and temperature support, and DeepSeek thinking parameter.
- Added accurate token counting for OpenAI Response API.
- Added syntax highlighting in bash command approval prompts.
Bug Fixes
- Fixed token usage stats not displaying for tool-use agents in progress view.
- Fixed display math
\[...\]inline rendering rule.
Improvements
- Internal refactoring for improved maintainability.
- Updated dependencies.
[0.35.7] - 2026-01-24
Features
- Added Zotero integration tools (
zotero_search,zotero_export,zotero_add) for literature management. - Added ShareLaTeX git support in the clone command for self-hosted Overleaf instances.
- Added bib path setting (
texra.defaultBibPath) to configure the default bibliography file location. - Added apply agents for implementing review suggestions, and attach agent outputs option in follow-up mode.
- Added bash command approval system with per-stream YOLO mode bypass. YOLO mode is now per-stream with a distinct visual indicator.
- Added grep offset parameter for paginating through large search results.
- Progress view improvements: syntax highlighting for tool output and bash commands, and selectable tool use headers.
- Agent and model dropdowns now sync between progress view and main webview.
- User messages can now be sent while tools are executing without ending the turn.
- Added automatic token refresh for improved session continuity.
Bug Fixes
- Fixed tool display issues: edit tool not showing deletions, grep error handling for empty results, and Wolfram error messages missing details.
- Fixed progress view rendering: nested scrollbars in code blocks and math causing duplicate text.
- Fixed retry and auth handling: background response reliability and token refresh loops.
- Fixed session persistence: first user message disappearing and stale content when switching agents.
- Fixed diff naming producing incorrect labels when input file contains round numbers.
- Fixed merge agent not respecting multiple outputs setting.
- Fixed OpenAI Responses API not completing background responses.
Improvements
- Improved tool error recovery suggestions.
- Optimized progress view performance.
- Updated dependencies.
[0.35.6] - 2026-01-19
Features
- Added Orchestrator tool-use agent for multi-agent workflow coordination with proposal review system.
- Added Runs tool for accessing agent execution history.
- Added Workflow agent proposal system with frontend UI for reviewing and approving delegated tasks.
- Added Lean agent to default tool-use agents with VS Code integration, real-time diagnostics, and dedicated tools.
- Added LaTeXdiff changed pages only option for tool edit proposals.
- Added pasted arXiv URL support in download source command.
- Added New button with mode-specific clearing for workflow/tool-use views.
- Added always-visible YOLO mode toggle button in the header.
- Added literal matching option to grep tool for fixed string searches.
- Added reference-agents folder with example agent definitions.
Bug Fixes
- Fixed agent/model dropdowns to open upward for better visibility.
- Fixed extension activation error.
- Fixed progress view theming.
- Fixed LaTeX tool detection reliability.
- Fixed empty chat display and stale log content between tabs.
- Fixed chat resume validation to support flat message format.
- Fixed range parameter handling in read_file tool.
- Fixed context window updates during streaming.
- Fixed diff naming to prevent incorrect labels when comparing same-round files.
[0.35.5] - 2026-01-15
Features
- Added Followup Task feature for workflow continuation directly in the Progress View, with chat mode and support for multiple file merges.
- Added a Lean Proof tool-use agent for informal-to-formal Lean 4 verification workflows.
- Added a Merge Multiple agent for batch merge operations.
- Added LaTeXdiff preview button in tool edit approval dropdown for comparing proposed changes.
- Added expandable error details to retry dialog UI.
- Relay errors are now retryable with clearer error messaging.
- Added setting to control thinking block clearing (
texra.model.enableThinkingClearing). - VS Code GitHub login is now hidden behind a config flag.
Bug Fixes
- Fixed duplicate workflow launches.
- Fixed agent cancellation responsiveness.
- Fixed multiple output filename handling.
- Fixed temp file cleanup.
- Fixed relay error recovery.
- Fixed tooltip and dropdown clipping issues.
- Fixed bash tool error messages to include stdout.
- Fixed queued follow-up messages not being combined.
- Fixed context state display accuracy.
[0.35.4] - 2026-01-10
Features
- Added Memory View for browsing and managing agent memory entries with delete controls.
- Added context utilization display showing percentage of context window used on each API call.
- Added automatic conversation compaction for long sessions.
- Added button to open progress view in a separate editor tab.
- Chat mode is now the default session type with a simplified UI.
- Memory tool is now enabled by default with a toolbar toggle.
- Added diff syntax highlighting in tool output display.
- Added cache token display (read and creation) in usage statistics.
- Token counts now format as millions (M) when >= 100K for readability.
- Model is now informed when users modify or reject suggested edits.
Bug Fixes
- Fixed canceling rejection by pressing Escape on feedback input.
- Fixed memory list not refreshing after deletion failure.
- Fixed thinking block clearing not triggering properly.
- Fixed LaTeX math delimiters not rendering correctly in markdown output.
- Fixed conversation messages not syncing after tool-use cycles.
- Fixed log content clearing when falling back to default session kind.
- Fixed chat history clearing on follow-up after extension reload.
- Fixed memory checkbox not being clickable.
- Fixed thinking blocks clearing prematurely.
- Fixed agent dropdown not syncing with session toggle.
- Fixed cached tokens not being included in context measurement.
Improvements
- Improved tool use display to distinguish user feedback from errors.
- Unified header styles across dashboard views.
- Simplified run selector dropdown to show only timestamp.
- Updated dependencies.
[0.35.3] - 2026-01-05
Features
- Added monthly spending limits for relay users.
Bug Fixes
- Improved progress board layout with better log grouping and reduced whitespace.
- Fixed relay authentication expiring during long-running sessions.
[0.35.2] - 2025-12-30
Bug Fixes
- Fixed symlink handling in workspace path resolution and file dialogs.
- Fixed OAuth callback handling for web environments.
- Fixed status tooltip clipping.
- Fixed clean auxiliary files button icon.
- Added resuming status styling and changed stopped status to neutral gray.
[0.35.1] - 2025-12-29
Features
- Added Gemini 3 Flash (
gemini3f) to the default models list. - Chat and tool-use agents can now be hosted as remote agents.
- Introduced premium plans with access to flagship models for subscribers.
- Added Researcher Access Program with complimentary access to budget models including GPT-5 Mini and Nano.
- Added access expiration system for researcher access program.
Bug Fixes
- Fixed LaTeX-style backtick quotes in document name extraction.
- Fixed dropdown option selection not updating visually.
- Fixed cloud icon sizing in agent dropdown.
- Fixed tool name handling in tool definitions.
- Fixed absolute path handling in file location creation.
- Fixed agent and model selection reverting to defaults.
- Fixed missing usage info in OpenAI Responses API streaming.
- Disabled automatic retries by default to give users explicit control.
- Added tooltips to toolbar buttons across all webviews.
- Clarified reference and auxiliary file selector tooltips.
- API Access toggle now visible for all authenticated users.
Improvements
- Updated core dependencies.
[0.35.0] - 2025-12-16
Bug Fixes
- Fixed OpenAI streaming with web search results.
- Fixed Google model response handling.
- Fixed LaTeX replacement rules causing formatting issues.
- Fixed latexdiff output causing compilation errors.
- Fixed model dropdown resetting media selection when changed.
- Fixed stream list not auto-refreshing when status changes.
- API key banner now hides when the model no longer requires a key.
Improvements
- Updated core dependencies.
[0.34.10] - 2025-12-13
Features
- Added GPT-5.2 (
gpt52,gpt52pro) to the default model list. - Introduced flexible user groups with permission-based access control and subscription tiers for remote agents.
- Added a todo list UI in the progress view for tool-use agents.
- Added Research agent for analytical derivations and scientific research.
- Added Search agent to the default tool-use agents for web search workflows.
- Profile view now displays a multi-output support indicator.
Bug Fixes
- Resolved duplicate sign-in messages.
- Fixed profile view agent selection reliability when switching between remote agents.
- Fixed OpenAI streaming missing reasoning items with web search.
- Fixed agent selection when switching session types.
[0.34.9] - 2025-12-10
Features
- Added native web search support for Anthropic and OpenAI models, with real-time search results displayed in the progress view.
- Introduced a new Web Search tool-use agent optimized for research queries.
- Added OpenAI deep research models (
o3-deep-research,o4-mini-deep-research). - Updated DeepSeek models to V3.2 with streaming reasoning support.
- Added getting started guidance that appears when opening an empty folder.
Bug Fixes
- Fixed Windows path handling in progress view stream tabs.
- Agent selection now persists correctly when switching between sessions.
- Remote agents with multiple output variants now group correctly.
- Fixed Anthropic streaming with interleaved thinking and text blocks.
- Fixed figure path resolution for input files in subdirectories.
- Fixed
\inputpath compatibility by normalizing leading./prefixes. - User-cancelled requests no longer trigger automatic retries.
- Fixed banner display issues when refreshing the webview.
Improvements
- Updated core dependencies.
[0.34.8] - 2025-12-04
Features
- Added DeepSeek V3.2 Speciale (
deepseekT+) with 163k context. - Enabled tool calling for DeepSeek thinking models.
Bug Fixes
- Improved tool detection on Unix-like systems for
latexdiffand related utilities.
Improvements
- Updated core dependencies.
[0.34.7] - 2025-11-30
Bug Fixes
- Fixed packing and cleaning operations not working correctly.
[0.34.6] - 2025-11-30
Features
- Introduced Remote Agents, letting you browse and run cloud-hosted agents directly from the new Profile view.
- Added manual retry controls so you can retry failed API requests on demand.
- Display provider icons in the model dropdown.
Improvements
- Added Claude Opus 4.5 (
opus45,opus45T) to the default model catalog. - Widened agent and model dropdowns and added descriptive tooltips.
- Footer dropdowns now open upward to prevent clipping.
- Stream tab close buttons are always visible.
- File selection lists are now sorted alphabetically.
- History view displays the session kind (workflow vs tool use) for each entry.
Bug Fixes
- Resolved duplicate agent names appearing in the dropdown.
- The API key banner displays reliably on initial webview load.
- arXiv search queries with multiple terms now return more relevant results.
[0.34.5] - 2025-11-21
Bug Fixes
- Fixed support for the Kimi 2 Thinking model so it streams reliably again.
[0.34.4] - 2025-11-14
Features
- Added a Collect references helper that gathers the BibTeX entries your project cites and calls out anything missing.
- Added GPT-5.1 (
gpt51) to the model catalog.
Improvements
- The progress board now loads conversations faster and keeps stream updates responsive.
- Run reviews feel smoother with persistent run context, clearer timestamps, and a ready input box.
- Workspace cleanup is less disruptive: generated artifacts stick around, TeX files are detected more reliably, and
\input{}paths stay intact.
Bug Fixes
- Workflow controls once again behave as expected — resume, restart, and stop actions reliably reflect the state of your run.
- Progress board summaries stay in sync with agent defaults and usage totals.
- Tool calls are steadier across providers, avoiding duplicate uploads and missing workflow outputs.
- Bibliography parsing now handles complex citation files without crashing.
[0.34.3] - 2025-11-07
Features
- Added Clone Overleaf Project command to initialize a local workspace from an Overleaf project.
- Added tool edit approvals from the progress board with a pending approvals queue, unified diffs, and rejection-to-follow-up flow.
- Added workflow output capture so orchestrated workflows can reuse generated artifacts.
- Added dedicated arXiv metadata/search and Crossref DOI lookup tools.
- Added Kimi K2 thinking variants to the model catalog.
Improvements
- Expanded the progress board empty state with a shortcut to the Overleaf clone flow.
- Improved Overleaf initialization validation and error reporting.
- Updated Kimi K2 naming and pricing.
Bug Fixes
- Fixed Google Gemini tool call reliability.
- Fixed arXiv metadata tools returning stale results.
- Fixed progress board errors when reviewing runs.
- Fixed duplicated LaTeX environment tags producing malformed output.
- Fixed tool-use cost tracking and edit approval sync.
- Fixed OpenAI file upload fallback on timeout.
[0.34.2] - 2025-10-31
Features
- Redesigned the Progress Board with a resizable split layout, persistent instruction panel, and inline follow-up controls.
- Streamlined the main command view with toolbar-based file pickers and a radio-group session selector.
Improvements
- Improved
read_filetool with line numbers and ranged reads up to 2,000 lines. - Expanded LaTeX cleanup to handle more HTML entities and legacy equation macros.
Bug Fixes
- PDFs and images from the
read_filetool are now returned as proper attachments instead of corrupted text.
[0.34.1] - 2025-10-24
Bug Fixes
- Fixed toolbar controls and automatic log scrolling in progress view.
- Fixed Claude Haiku 4.5T thinking mode not working correctly.
- Fixed dropdown menus being cut off at container edges.
Improvements
- Show inline progress display when polishing instructions.
- Cleaner progress board stream tabs.
- More compact model selection dropdown.
- Updated core dependencies.
[0.34.0] - 2025-10-19
Features
- Added an interactive VS Code walkthrough that guides first-time users through model setup, file selection, and the progress board.
- Added Claude Haiku 4.5 (
haiku45T,haiku45) to the model catalog.
Improvements
- Streamlined custom agent prompt handling with automatic migration of older entries.
- Model picker now waits for options to load so newly enabled models appear reliably.
- Added Magic Polish and microphone recording controls to the progress view follow-up input.
- Updated CoT agent icon for clearer visual distinction.
Bug Fixes
- Fixed scratchpad exports to reopen the named document when agents generate multiple files.
- Fixed tool-use session migration so saved runs load and resume without errors.
- Improved OpenAI thinking summaries with clearer spacing.
- Fixed workflow outputs disappearing from the progress board when no new files were written.
- Progress board timestamps now show in your local timezone instead of UTC.
[0.33.10] - 2025-10-10
Features
- Added GPT-5 Pro (
gpt5pro) to the model catalog. - Prompt for latexdiff math markup before each run.
- Added
extract_figuresandextract_tikz_figurestools for returning referenced images and compiled TikZ PDFs. - Added ranged reads to
read_filetool.
Improvements
- Added one-click Generate diff controls with auto-selected comparison commit.
- Refreshed the Progress Board with copy buttons, native status styling, and a cleaner layout.
- Updated Progress Board empty state with quick links.
Bug Fixes
- Fixed agent error logs detaching from the latest run in the Progress Board.
- Fixed background responses generating stray streaming updates.
- Fixed agent runs launching when initialization fails.
- Fixed workflow-only responses showing in the Progress Board.
- Improved LaTeX fenced-block parsing for inline math and
alignedenvironments. - Fixed default agent selection in new workspaces.
- Fixed arXiv downloads leaving files outside their staging folder.
[0.33.9] - 2025-10-03
Features
- Added
apply_pathanddownload_arxiv_sourcetools for patches and arXiv source fetching. - Default workflow and tool-use pickers now use curated presets.
- Added Open storage button in the progress view for inspecting run outputs.
- Added between-round
latexdiffcontrols and Texcount mode selection. - Added Claude Sonnet 4.5 (
sonnet45,sonnet45T) to the model catalog.
Bug Fixes
- Fixed Anthropic PDF uploads on follow-up requests.
- Fixed PDF filename handling for nested paths.
- Fixed tool-use session resume so follow-ups, execution state, and multi-output agents restore reliably.
- Respect
.gitignorerules acrossglob,grep, and file listings. - Fixed custom agent directory initialization and default agent visibility.
- Fixed Google model errors not surfacing clearly.
[0.33.8] - 2025-09-30
Features
- Split the agent picker into workflow and tool-use sessions with a toggle.
- Updated Gemini 2.5 Flash to the September 2025 release.
- Updated Qwen-Max and Qwen Plus with new pricing and thinking support.
Bug Fixes
- Improved scratchpad markdown fallbacks when Pandoc is unavailable.
- Fixed prompt exports not resolving paths correctly.
- Fixed progress view state corruption.
- Fixed history entries not restoring correctly.
- Capped
read_filetool responses at 400 lines to prevent oversized outputs. - Redesigned agent selector footer with compact session toggle and per-session dropdowns.
- Trimmed default tool-use agent list to conversational presets.
- Fixed history view toggle state not persisting across versions.
- Fixed stale state resurfacing after failed initialization.
- Fixed model options not rendering reliably on successive updates.
[0.33.7] - 2025-09-22
Features
- Added install and re-check actions to the dependency banner.
- Separate tool-use streams in the Progress Board with All / Workflow / Tool Use filters.
- Show tool-use hints in the agent dropdown.
- Added a copy button to each model response entry.
- Persist tool-use sessions across restarts with a resume command.
- Added workspace-aware
glob,grep, andlstools to the default registry. - Added a
web_fetchtool for downloading and converting web pages to Markdown. - Added
read_file,write_file, andedit_filetools for workspace editing. - Added a built-in read-only
askagent for safe project inspection. - Show the active instruction at the top of the Progress Board.
- Allow DeepSeek chat models to call tools.
Bug Fixes
- Fixed HTML entities in follow-up messages so languages like Chinese render correctly.
- Fixed legacy tool configuration keys breaking after cleanup.
- Fixed LaTeX replacements for beamer column layouts and special characters.
- Fixed empty model response logs showing in the Progress Board.
- Fixed workflow toolbar actions running on tool-use streams.
- Fixed empty user messages causing API errors.
- Fixed tool-use runs not visible when a workflow starts in another stream.
- Fixed agent errors not surfacing in the Progress Board timeline.
- Fixed
.gitignore_globalrules not honored in workspace listings. - Fixed OpenAI Responses dropping parts of assistant replies.
Improvements
- Summarize tool-use logs with clearer titles and expandable sections for long outputs.
[0.33.6] - 2025-09-14
Features
- Show a banner when required dependencies are missing and check tools before running.
- Added
kimi2to the model list. - Clarified output file controls in the webview.
Bug Fixes
- Fixed Ghostscript detection on Windows and ImageMagick false positive.
- Fixed tool-use agents not appearing in the dropdown when enabled.
- Fixed model API key banner behavior and multi-file toggle labels.
- Fixed file selection notification showing for non-input files.
- Fixed empty thinking logs showing in model reasoning display.
Improvements
- Updated AI SDK packages.
- Improved file dialog helpers for better cross-platform compatibility.
[0.33.5] - 2025-09-07
Features
- Replaced Qwen Max with Qwen3 Max for improved reasoning and 256k context.
- Updated Qwen Plus with hybrid reasoning and 1M context.
- Updated Moonshot Kimi models to K2 0905 preview and added turbo variant.
- Added setting to enable/disable GPT-5 reasoning summaries.
- Added configuration banner for missing agent files with quick setup actions.
- Added visual indicator for agents with multiple output support.
- Replaced "(no key)" with a cleaner symbol in model dropdown.
[0.33.4] - 2025-09-03
Features
- Support round-specific reflection prompts and iteration across multiple rounds.
- Highlight missing API keys with provider-specific banner and setup links.
- Added model metadata tooltips showing provider, context window, and cost.
Bug Fixes
- Fixed output handling to work with any round count.
- Consolidated API key setup alerts into a single banner.
- Fixed unnecessary escape characters in LaTeX references.
[0.33.3] - 2025-08-29
Features
- Include
.bblfiles when searching for reference files. - Guide new users through API key setup with links to provider pages.
- Show persistent "Set API Key" banner until a key is configured.
Bug Fixes
- Restrict GPT OSS models to OpenRouter only.
- Improved API key detection to check environment variables.
[0.33.2] - 2025-08-25
Features
- Added sample project command to help new users get started with a complete example.
- Added chat tool-use agent for interactive document-based conversations.
- Stream model responses separately from reasoning for better visibility into agent thinking.
- Show helpful empty-state placeholder in progress view with quick links.
- Added interactive launch page to documentation site.
Bug Fixes
- Fixed welcome dialog not displaying properly on first launch.
- Fixed pack and clean operations using wrong task output.
- Fixed placeholder visibility when clearing progress view logs.
[0.33.1] - 2025-08-22
Features
- Detect arXiv source file type and handle plain
.texdownloads without extraction. - Added descriptive tooltips for Input, Reference, Auxiliary and Media file selectors.
- Show onboarding tooltips on first use with a "Never remind again" option.
- Added real-time streaming display for model reasoning/thinking processes.
Bug Fixes
- Restrict extension to single workspace folder to prevent initialization issues.
- Fixed welcome dialog flag set before dialog displays.
[0.33.0] - 2025-08-19
Features
- Show TeXRA task status in the VS Code status bar.
- Automatically resize large images (> 2000px) for better performance.
- Allow disabling LaTeX formatting and silencing missing
latexindentwarnings. - Added
texra.maxImageDimensionsetting to control the maximum image size. - Added "New" button in main view to reset all fields.
- Prompt users to install LaTeX Workshop extension with "Never remind again" option.
Bug Fixes
- Fixed status bar command registration and task cancellation handling.
- Fixed
latexdiffnot finding Perl on Windows with MSYS2. - Fixed first task being marked as error when progress view loads.
- Fixed DeepSeek and Google model streaming issues.
- Fixed LaTeX Workshop configuration being overwritten.
Improvements
- Improved streaming stability across model providers.
- Improved LaTeX extraction from agent responses.
[0.32.10] - 2025-08-13
Bug Fixes
- Prompt users to open a workspace folder when none is active.
[0.32.9] - 2025-08-09
Bug Fixes
- Fixed PDF uploads to OpenAI.
[0.32.8] - 2025-08-09
Features
- Enabled model streaming & response APIs by default.
[0.32.7] - 2025-08-08
Features
- Added Claude Opus 4.1 (
opus41,opus41T). - Added GPT OSS 120B and 20B reasoning models (
gptoss,gptoss-). - Added GPT-5 family models (
gpt5,gpt5-,gpt5--).
Bug Fixes
- Updated OpenAI, Anthropic, and Gemini SDKs.
[0.32.6] - 2025-08-03
Features
- Follow-up Chat — continue conversations with tool-use agents directly in the progress view with multi-line input support.
- Code Syntax Highlighting — code blocks in progress view now adapt to your VS Code theme.
[0.32.5] - 2025-07-31
Features
- Added syntax highlighting for code blocks in the progress view.
- Introduced tool-use agents with support for web search and code execution.
- Added stream sorting option in progress view settings.
Bug Fixes
- Fixed duplicate agents appearing in the dropdown menu.
- Fixed theme switching for code highlighting.
- Fixed various issues with file list button interactions.
[0.32.4] - 2025-07-25
Features
- Right-click on YAML agent files in Explorer to quickly add them to your agent list.
- Improved agent configuration with better file type handling.
Bug Fixes
- Fixed restoration of agent states when reopening sessions.
[0.32.3] - 2025-07-20
Features
- Improved statistics view UI with cleaner rendering.
[0.32.2] - 2025-07-19
Bug Fixes
- Fixed missing LaTeX diff message rendering in progress view.
[0.32.1] - 2025-07-10
Features
- Default model switched to Gemini 2.5 Pro.
- Added Grok 4 model with extended context window support.
[0.32.0] - 2025-07-07
Features
- Claude Sonnet 4T (Thinking) model set as default.
- Added Grok 4 Beta model with 131k context window.
[0.31.10] - 2025-07-04
Features
- Progress view templates for consistent UI.
- Markdown rendering restored with KaTeX math support.
- Diff errors now displayed as helpful tooltips.
[0.31.9] - 2025-07-01
Features
- Improved file list display in progress view.
- Missing output files now highlighted with direct links.
[0.31.8] - 2025-06-28
Features
- Added diagnostics tool and validation agent.
- KaTeX math rendering in progress view.
- Smoother streaming updates in progress view.
[0.31.7] - 2025-06-25
Features
- Added bulk latexdiff-vc runner for comparing multiple file versions.
- New tool-use agent capabilities.
[0.31.6] - 2025-06-25
Features
- Live reasoning updates displayed in progress view.
- Improved markdown rendering with better styling.
[0.31.5] - 2025-06-23
Features
- Redesigned scratchpad and thinking sections.
- Microphone transcription with ElevenLabs support.
[0.31.4] - 2025-06-17
Features
- Settings and history buttons moved to editor title bar.
- Optional audio notification when agent rounds complete.
- Enhanced agent creator with better YAML template support.
[0.31.3] - 2025-06-15
Features
- Clipboard image pasting in instruction box with automatic cleanup.
- Added arXiv source processor for research papers.
- New deep research model support.
[0.31.2] - 2025-06-08
Features
- Collapsible LaTeX diff sections.
- Automatic detection of TeX tools on all platforms.
- Cleaner error messages throughout the extension.
[0.31.1] - 2025-06-04
Features
- Added GitHub Copilot model support.
- Smoother streaming output display.
- Diff view auto-refresh and quick access to compiled outputs.
[0.31.0] - 2025-06-03
Features
- Google AI thought summaries displayed in progress board.
- Improved diff editor with smart word wrap.
- Dynamic setting updates without restart.
[0.30.9] - 2025-05-24
Features
- Automatic cleanup of output files after housekeeping.
- Simplified log navigation with collapsible sections.
- Unified dropdown interface for tools and auto-extract options.
[0.30.8] - 2025-05-22
Features
- Clickable output filenames for quick file access.
- Improved history browser with better action buttons.
- Refined UI spacing and visual consistency.
[0.30.7] - 2025-05-21
Features
- File progress tracking and diff visualization in progress view.
- Updated API pricing information for all models.
- Round configuration now available in agent settings.
[0.30.6] - 2025-05-19
Features
- Updated SDKs for OpenAI, Anthropic, and Google models.
- Improved error messages and user feedback.
[0.30.5] - 2025-05-13
Features
- New command to apply LaTeX replacements to current file.
- Added Moonshot Kimi and Alibaba Qwen model support.
- Configurable LaTeX diff markup options.
[0.30.2] - 2025-05-06
Improvements
- Updated Gemini model naming for clarity.
[0.30.1] - 2025-05-06
Features
- Updated Gemini 2.5 Pro model configuration.
- Enhanced quick-start documentation.
[0.30.0] - 2025-05-04
Features
- Explorer now hides build directories by default.
- Enhanced DeepSeek model support.
- Improved PDF viewer with better tab management.
[0.29.11] - 2025-05-04
Features
- Added O4 models support.
- Improved DeepSeek integration with official API and OpenRouter.
[0.29.10] - 2025-05-04
Improvements
- Code formatting improvements and stability enhancements.
[0.29.7] - 2025-05-02
Bug Fixes
- Fixed progress view display issues.
[0.29.2] - 2025-04-22
Features
- Added Gemini-2.5-Flash model support.
- Enhanced Unicode character replacements.
[0.29.0] - 2025-04-17
Features
- First public release of TeXRA.