v0.1.0-alpha.42026年10月20日
新增 26
- 终端Ctrl+V attaches the picture on the clipboard to your next message, read with what the system already has (AppleScript on macOS, PowerShell on Windows, wl-paste or xclip on Linux), and a picture dragged into the terminal is attached rather than pasted as its path, quoted, escaped or as a file:// address; both go through
/image. - 终端What you send at the prompt is kept for each project folder across sessions (
prompt-history.jsonlin the data folder), so ↑ in a new session reaches yesterday's prompts, and Ctrl+R opens them in a list narrowed as you type, newest first. A recalled paste comes back whole instead of as its placeholder, a recalled/commandno longer traps ↑ in the menu, and changes to a recalled line survive stepping past it; an answer to a question, such as a key, is never brought back by ↑. - 终端Ctrl+G opens what is in the box in your editor (
$VISUAL, then$EDITOR) and puts what you wrote back in the box when you close it. Ctrl+_ undoes the last change to the line, a word or a run of deletes at a time, and Ctrl+Y puts back what Ctrl+U, Ctrl+K or Ctrl+W last cut. - 终端A session is named by a model once its first reply is in, from the first message and the start of the reply: automatically Letronna's quick model, which its server picks, for a chat on the Letronna gateway, checked by Jev, else the side model, else the chat's own;
/model namespicks another or turns naming off, and/renamenames a session yourself, or with nothing after it asks a model now. A chat on your own key, a company's gateway or a model on this computer is named on its own gateway, never sent elsewhere. - 终端A line starting with
!runs as a command in the session's folder, as in a shell, without asking since you typed it; what it prints shows as a tool's output does, Esc stops it, and the model is told what was run and what came of it with the next prompt. Typed while it works, such a line waits for the turn to end, as commands do. The footer says where it will run while you type it. - 终端
?on an empty line shows the keys over the box until the next key./helplists the commands under headings (sessions, model, modes, tools, memory, background work, account) with every row cut to the window, lists every key, and/help <command>says what one does and the words the menu knows for it. While a command's words are typed, the footer keeps what it does. - 终端The box's bottom edge says how full the session's context is once there is a reply, from what the latest request carried, as the window's status bar does: quiet while there is room, amber from 70%, pointing to
/compactfrom 85% and red from 90%./contextshows what fills it, part by part: the system prompt, tools, MCP, memory, skills and the conversation. - 终端The box's top edge names the session and where its folder stands in git (branch, what is changed, how far from upstream), and the window's title leads with the session's name, turns while it works and says "waiting for you" while a card or question waits; the title the terminal had comes back on leaving where the terminal keeps one. Names taken from a prompt's first lines show on one line there and in
/resume. - 终端
/rewind,/undoor Esc twice on an empty box lists every message you sent, newest first and narrowed by typing, and going back to one asks whether to restore the code and the conversation, the conversation alone or the code alone, or to summarize up to it or branch from it there;/undono longer only takes back the last exchange. Putting the code back alone tells the model which files went back, and a rewind further back still puts them back to how they were first. - 全部A Claude subscription is a provider you sign in to, beside the Anthropic API key: the models your plan includes, no key to paste.
- 全部A Custom endpoint that names the Messages route, such as a proxy's
https://proxy.example/v1/messages, works: it is spoken to in Anthropic's Messages API, as Anthropic's own is, with prompt caching, effort and thinking. It used to be sent chat completions under that route, which no such proxy answers. Its models are asked for at the API's root, as Messages takes the key, so a turn learns the model's window and efforts and setup's check and the model list find them; the same goes for Anthropic's own address pasted with the route. Such a proxy is not taken for Anthropic itself: a cache marker it refuses is dropped for it as for any other gateway, and a subscription token goes to it as a bearer, without the marks of Anthropic's own client and the signed-in account's ids they carry. - 全部A built-in wallet the agent pays from: make one or bring one in from MetaMask, Phantom or any wallet app, on Base, Ethereum, Solana and any EVM chain. Sites that ask to be paid (x402) are paid in USDC within caps you set, asked each time or on their own below a price you choose; sends always ask.
letronna wallet,/wallet, the Wallet page and Settings › Wallet. - 网站A terminal in the browser: the Cloud page opens Letronna itself, running in Letronna Cloud on a new thread or one you have, to type into as on your own computer.
- 终端On a machine that is thrown away after (
LETRONNA_DISPOSABLE=1, as in Letronna Cloud), the terminal takes its server, key and model fromAGENT_BASE_URL,AGENT_API_KEYandAGENT_MODEL, as-pdoes, and saves none of it. - 网站Letronna Cloud takes more servers: admins add a VPS from the admin page with one setup command, and runs and 24/7 bots spread across every server.
- 网站letronna.ai shows Letronna Cloud on the home page and has a Cloud page in the docs; phone apps for iPhone and Android are marked coming soon.
- 全部A shorter README, and a full guide in
docs/: install, the app and terminal, gateways, tools, extending, the cloud, configuration, data, architecture, building and benchmarks. - 全部
letronna -p --output jsonsays which window the run's requests were sized by and where it came from ("window": {"tokens", "source"}), and names the model the run used, also when the environment or--modelchose it. - 全部With no search service chosen, search_web searches through the session's gateway where it sells search, Letronna's from the account's credit or a gateway's cheapest search model, and falls back to DuckDuckGo in the same search when the gateway cannot answer; a gateway that could not answer rests for ten minutes, with DuckDuckGo asked first meanwhile, the approval card names every place the query may go and who pays, auto mode leaves a paid search to the user, and a chosen service is still the only one used, DuckDuckGo chosen alone included.
- 全部write_file can make a new file in the system's temp folder, such as a script that reproduces a bug, and write_file and edit_file can change one the session made there, so scratch work stays out of the project; another program's file there, or one in a folder the session did not make, is still refused, and a command that writes a new file there no longer counts as writing outside the project in a session that read a page.
- 全部A run nobody watches that goes twelve rounds without changing the project is asked, on the end of that round's last result, to say in one line what it has established, its hypothesis and its next step, keeping on reading being a fine answer; again after twenty-four and thirty-six, the last saying to finish if it cannot name a step, and no more than three times a turn. Only an edit that went through starts the count again, never a command.
LETRONNA_PROGRESS_NOTE_ROUNDSsets the rounds, with 0 for never, andletronna -p --output jsonreportsprogress_notes,first_edit_roundandrounds_after_last_edit. - 全部
letronna -p --output jsonsays what the cache did over the run:cache_missescounts the replies the provider served fewer cached tokens than the one before though nothing sent had changed, with the tokens they lost, drops too small for/usageto name included, andhistory_rewritescounts the misses an earlier message changing caused, so a run's cache figures can be read net of the provider's own drops. - 全部A
reasoning_replaysetting, orLETRONNA_REASONING_REPLAYfor one run, set tochunkedsends DeepSeek and Kimi an emptyreasoning_contentwith the turn's older tool calls once their reasoning comes to 8,000 tokens, and then a chunk of that at a time, so the requests in between keep the provider's prompt cache; the newest two calls always carry theirs, the calls before results already cleared go without it in the same rewrite,/usageandletronna -p --output jsoncount a move of the cut as an earlier message changing, and a route that refuses the empty one is sent every call's reasoning instead, across turns, before the field is given up on. The default,full, sends every call of the turn its own, as before. - 应用Rewind to here asks whether to restore the code and the conversation, the conversation alone or the code alone, from any message, with the lines each file changed; Escape twice in an empty composer, or the palette's Go back to an earlier message, steps to your last message to rewind from, and up and down step to the others.
- LinuxWhere commands get fewer CPUs than the machine has, as in a container held to a CPU quota, commands and jobs start with
OMP_THREAD_LIMIT,OMP_NUM_THREADS,OPENBLAS_NUM_THREADSandMKL_NUM_THREADSset to the CPUs they get, unless the user set one of them or another thread-pool size already, and the system prompt says how many they get and names the four when it set them, asOMP_THREAD_LIMITcaps even a count a command sets itself. Where the counts match, the prompt and the commands are as before; the log'smachineevent gives both counts. - 应用A session is named by a model once its first reply is in, from the first message and the start of the reply: automatically Letronna's quick model, which its server picks, for a chat on the Letronna gateway, checked by Jev, else the side model, else the chat's own; a chat on your own key, a company's gateway or a model on this computer is named on its own gateway. Settings › Model › Session names switches it off or picks the chat's own model or one of your own, and Name it again in a session's menu asks for a new name; a name you gave is never replaced.
变更 31
- 终端The screen sends only the rows that changed since the last frame, inside a synchronized update where the terminal knows it, so a streamed reply sends about a third of what it did and flickers less over ssh and on a console; the pointer moving over the window is no longer read or drawn for, and a frame no longer copies the whole conversation.
- 终端A tool's output shows its first twelve rows, counted on screen so one long line cannot fill it, and the rest folds under them: a click or Ctrl+O shows it all and folds it again. An edit that goes ahead without asking shows its diff after it, as one asked about shows it before, and a changed line longer than the window goes on under itself in a diff instead of being cut at the edge.
- 终端A reply's fenced code shows as code: the fences go, the language is named dimly over it, the code is coloured as diffs are, and
**or backticks in it stay as written. Headings show bold without their#s, a bold or coloured run wrapped over rows stays so on each, a reply that opens with bold keeps it, and a resumed session's replies are drawn the same way. - 终端
/clearstarts fresh in a new session on a clean screen, as in Claude Code, with the session left behind in/resume; Ctrl+L clears the screen, which is what/cleardid./statusshows on one screen the version, the session and its file, the folder and where it stands in git, the model, the mode, the account, how full the context is and the MCP servers, and/export [file]writes the conversation as Markdown, by default to a file in the project named after the session, never over one that is there. - 终端A turn's clock runs from its start: the waiting line counts the whole turn rather than starting again at each step, the footer keeps it going after the answer starts streaming, and the caption under the last reply ends with how long the turn took. The waiting line's word changes from one wait to the next, a long command is cut so the time stays in view, and every footer hint is cut to the window instead of wrapping in a narrow pane.
- 终端Shift+Tab steps through asks first, edits without asking, plan only and auto decides (and bypass once chosen), never onto "allowed calls only", which refuses whatever would ask and stays with
/mode dont-ask; Alt+M steps too, and each mode says in the footer for a moment what it lets run. The terminal starts in the window's default mode when no flag picks one, a mode switched while it works holds from its next tool call, and/plantakes on or off and goes back to the mode it was turned on from. - 终端Ctrl+C stops a reply and stays, where it stopped it and left with the conversation; it turns a card or a list down and skips a question as Esc does, clears what is typed, and leaves only when pressed twice on an empty box. A line cleared with Esc comes back with ↑, though never an answer to a question or a secret, and Esc stops a reply in one press after a drag-copy.
- 全部A folder write_file or apply_patch created for a file counts as the session's own, so a session that read a page may delete it without asking, like the files it made, as long as nothing in it was there before it or is a link.
- 全部A model whose window nothing gives is sized as if it held 64,000 tokens when its server takes a key, as a gateway or a LiteLLM proxy does, instead of the smallest window, so old tool results are cleared far later; a server without a key, such as Ollama, keeps the small window, and
LETRONNA_CONTEXT_WINDOWsets it for a keyed proxy in front of a small local model. - 全部Old tool results are cleared only once a request comes near its budget, and then in chunks of half the window rather than every eight results, so the provider's prompt cache keeps serving the requests in between; results under 600 characters are never cleared, and a cleared one reads as cleared from history, with the call to repeat, rather than to save room.
- 全部While the provider's prompt cache serves the session, the window holds up to four times the default cap: once the newest three replies' usage says at least half of their input came from the cache, a model whose window holds twice the cap keeps its history and its old tool results up to 256,000 tokens, or three quarters of its window if that is less, since a miss on everything after a cleared result costs more than the tokens it saves. The places the window can start, the chunks results are cleared in and the share of a tool result sent stay as under the cap, so nothing moves to a new place; a run of misses, an overflow, a route whose usage never counts the cache and a
context_capthe user set keep the cap, and once the cache serves the session again the window and the cleared results stay where the cap left them rather than moving back. The 4,000 tokens kept free for subfolders' instruction files are kept only once a result has touched a folder that has one. - 全部
/usagenames a cache miss that cleared results or reasoning no longer sent back caused as "an earlier message changed", and says of one where nothing Letronna sends changed that the provider served it without the cache. - 全部web_fetch and search_web say why a request got no answer, such as a name that could not be looked up or a connection turned down, and once one to the web could not connect, other than one a page redirected to, both answer at once that they are unavailable for now, naming the host and why, rather than each trying and waiting to fail: for two minutes in a session someone watches and for the rest of a run nobody does, unless a request to the web gets through; pages on this computer or the local network are still fetched.
- 全部
letronna -psends about 600 fewer tokens of tools and prompt with every request: the helpers' and the background jobs' lists are found through find_tools like the other less used tools, and nothing it is sent names what such a run lacks: helpers in the background, wake_me, list_sessions and /resume, or Letronna's own skill on using Letronna, whose index and skill tool go too when no other skill is on. - 全部A run nobody watches, such as
letronna -p, is told the commands on PATH and what its project folder held at the head of its first message rather than in the system prompt, so runs in folders that hold different things send the same system prompt and tools, and a provider's prompt cache serves them across runs; sessions someone watches are unchanged. - 全部Claude models reached over chat completions through any gateway, such as a LiteLLM or Portkey proxy or a company's own, not only OpenRouter and the hosted gateway, mark where Anthropic's prompt cache ends, so each new message is written to the cache once and read from it on the next request instead of paid in full first. A route that turns the request down as bad (400 or 422), in whatever words, is sent it again once without the markers, while the requests beside it keep theirs; if that one is answered, that gateway and model go without them for the rest of the run, if it is turned down too the markers were not at fault and stay, and if it is stopped or never answered nothing is decided.
- 全部The system prompt's rule on checking a change now says to run the check nearest it first, the reproduction and the one test file that covers the changed code, once, and then not to re-run, re-read or diff what passed, and to name a failure the change did not cause rather than prove it pre-existing; a new rule says a bug reported through one example is fixed at the cause its other inputs and entry points share, and what to do when a report does not reproduce as described; and the rule on making calls in one reply names commands and checks alongside reads and searches. A run nobody watches is also told that, with nobody to ask, the task text and the project folder are what it has, so it decides from them rather than searching the computer or the network for what was meant. The new rows are
shared-causeandscope-of-tasktoLETRONNA_PROMPT_RULES. - 全部A call that brings back what an earlier one in the turn brought is told so on the end of its result ("Same result as round 3"), past the spellings that change nothing: a command with its spacing, a
cdinto the project,2>&1,| cator a| head -Nor| tail -Nchanged, a read of the same file starting within the same fifty lines, a search in another case, and a result that differs only in its commit ids, addresses, dates, timings or seeds. A third such result gets the note that already said to change approach, which now counts these too; a run nobody watches is still stopped only by the call spelled the same way five times. Only an edit that went through starts the count again, and a call turned down or made twice in one reply is not counted. - 全部When a call that runs on its own, such as an edit or a command, fails, the calls the same reply queued behind it are answered "Not run: an earlier call in this reply failed; resend it if still wanted" rather than run, so a check sent along with an edit never reads as if it had checked the edit that did not land. A command that ran and exited with a code is no failure here, so two suites sent together each report their own; reads and searches run at once and a miss among them stops nothing, nor does a memory save that fails, as one to a full page does, nor a call the user, the gate or a stop kept from running, such as a save the user did not ask for or a call to a tool there is not.
- 全部read_file says what a page holds (about 7k characters, with
limitleft out) and that reads of several files or regions go in one reply; search says the same of several patterns or folders, and run_command of independent commands, each with its own exit code. Where calls run one at a time, those clauses go as the batching rule does. read_file names its kinds of file in a few words, search no longer spends a sentence on when documents are searched, and search_web's note on snippets is shorter. - 全部A run nobody watches, such as
letronna -p, is told to remove what it made only to test from its outputs' folders before it ends, unless the task asks for it or the project's own build keeps it there, and to write only the answer, in the form asked, to a file meant for one; that leaving inputs alone and not deleting data hold for its own steps, not for what a program it was asked to write should do, which may run on more than the sample in hand; to get a result through the library or tool the task names, calling it correctly when a call fails rather than going around it; and to try a helper that transforms data on a tiny input whose answer it knows, then check the final output with separate code. - 全部A command moved to the background at its time limit names stop_job beside wait and read_job, for a job no longer needed.
- 全部A run nobody watches, such as
letronna -p, that changed no source but made or changed a file its request names, such asout.csv, by any tool or command, is now sent back once to check it against the requirements its request states, as one that changed source is, worded for the file: to check what it holds now with a short new script that reads only it and the task's inputs and reuses none of the code that made it, since a mistake there agrees with itself. A review helper it starts for that check, here or after a change to source, is asked to work out what it checks with code of its own too. Only the paths and file names in the request are looked up, never the whole folder. - 全部At 80% of
LETRONNA_DEADLINEa run is told to remove scratch files, logs and binaries it made only to test from its outputs' folders, unless the project's build keeps them there, before it improves its outputs; so is one whose reply is stopped past that point for thinking too long, and one that begins past it, as a later turn over stdin can. - 全部run_command no longer reads as if every command ran in a sandbox: its
unsandboxedoption says a command ran in one only when its result has a line starting(ran sandboxed, and to use it after such a run failed for the network or a write outside the project, or when an error says the command cannot be sandboxed, so a run whose commands are not confined, such asletronna -p --yes, no longer takes an install or a write outside the project to be refused without trying it. What the sandbox and approvals allow is unchanged. - 全部In a run nobody watches, such as
letronna -p, a schedule or a chat app, auto mode's judge is waited for up to a minute rather than 20 seconds, and may write up to 8,192 tokens with its thinking rather than 2,112, fewer on a model known to take fewer, so a model that thinks at length reaches a verdict instead of having the call refused, or put to the chat, for want of an answer; sessions someone watches keep 20 seconds, the judge still refuses or asks when it cannot answer, and it is never waited for past a run'sLETRONNA_DEADLINE. - 全部A run nobody watches, such as
letronna -p, is told that even opening a file with a program can change it, as sqlite3 can fold a database's write-ahead log into it or delete the log on closing, and, before running such a program on an input it is to recover data from or repair, to copy the input with the files that go with it and try the program on the copy first. On Terminal-Bench 2.0, three runs lost a database's log that way before copying it. - 全部A run nobody may be watching, such as
letronna -p, a schedule or a chat app's, drops a reply with no tool call that goes round on the same few words for 2,000 characters or more, writing almost no line or sentence in its later half it had not written already, or that is still empty after it was asked once to say something, and sends the same request again after a rest of 2, 4 and then 8 seconds, three times a round at most, rather than taking the filler as its answer, carrying it in every later request, or ending on the empty reply. Data that brings a new line every few lines, such as a log, a table or most JSON lists of records, is kept; a long run of lines all alike, such as a grid of zeros, may be asked for again up to three times before the fourth is kept. A reply that spent the run's budget is kept. A dropped reply's tokens still count in the run's token totals and its budget, though not in the cost it reports, as an empty reply's never did. The app shows a chat app's run saying so when a reply it showed is dropped; turns typed in the app or the terminal, and an editor's over ACP, are unchanged. - 全部A run nobody watches, such as
letronna -p, that ends with a path its request names still not there, such assrc/run.jsor/srv/app/report.pdf, is sent back once to weigh it against the request, in the same check that names a missing output underout/, unless it can neither write files nor run commands. A path counts, whatever its kind, when it was not there as the run began and is in the project or its folder is there as the run ends. Only one written with its folder counts, not a name alone; not one in an example, in code or a diff, a placeholder, such as<name>orYYYY-MM-DD, a URL, or one with a line or port after it, such assrc/app.js:42; not what a command the request shows writes, such as the file after-oor>; nor one in a sentence about reading, removing or moving files, or saying not to make it, to make it later or that it is optional or not needed. - 全部On a run given
LETRONNA_DEADLINE, the reply in place of one stopped for thinking without writing anything goes on from that thinking, which comes with the notice to write now, trimmed to its start and end when long; the reply asks for low effort, or the nearest the model offers, never more than the run was set to, and the run's own effort comes back with the next reply. A run on automatic effort whose model was not thinking, such as one on Anthropic's API that thinks only when asked, is not asked for an effort, which there would start it thinking for the rest of the run. The notice says whether the reply reached its output limit or thought past its share of the time left; before, it said it was stopped for thinking either way, and the next reply planned again from nothing. - 全部On a run with a deadline, such as
letronna -pgivenLETRONNA_DEADLINE, a command given longer than the default two minutes carries on in the background, with its output so far, once it has had half of the time left, and two minutes at least, or once past two minutes as soon as a notice such as a background job's exit is waiting, so the model hears it now rather than after the command's own limit. Nothing is stopped; runs with no deadline, helpers and sandboxed commands wait as before.
修复 36
- 终端Chinese, Japanese and Korean text and emoji take the two columns they fill, so replies wrap whole instead of losing the end of every row, and the box, the queued lines, the lists and a selection line up with them. A reply, a file or a command's output can no longer drive the terminal: only colour and style get through, so text carrying sequences that retitle the window, write the clipboard, move the cursor or leave the conversation's screen shows as text without them, even when a reply's sequence is split between the pieces it streams in. Tabs show as four spaces.
- 全部The wallet keeps working when a public RPC refuses it: each built-in network has other free RPCs it moves on to when its own rations, refuses or cannot be reached, starting next time with the one that answered; an address you set is still the only one used. A Solana token's balance is read from the account wallets keep it in, which every RPC serves, where it searched the owner's accounts, which Solana's public RPC rations and other free ones refuse, so USDC there read as none and x402 payments in it failed. A token whose balance could not be read is listed with why, and a price is said to be unpayable because the balance could not be read, not because the wallet holds too little.
- 终端
/thinking,/search,/search keyless,/notify,/voice,/verifyand/memory-reviewtake on or off, where any word flipped them, so/notify offcould turn notifications on; alone they still switch. Enter on a name more than one command starts with, such as/u, fills in the first of them rather than running it,/effortwith a word that is no level says which levels there are instead of switching to auto,/mcpwith a word that is none of its own says so instead of asking which server, an unknown command says how to send it as text, and/jobsheads finished jobs as finished. - 终端A session first named after a message of several lines no longer has a line break in its name, as the window's never had.
- 全部A value after
Authorization:orProxy-Authorization:is hidden again in tool output and logs, as it was before names were read word by word. - 全部A run that read untrusted words may delete only a real crash dump it left (an ELF core, or the JVM's pid-named files), not a project file named like one, such as
app.core. - 全部A job told how to keep a server up past a
-prun is told to start it in a plain command, not as another job, which the run would stop with it. - Linux**, **macOSCommands, jobs, hooks and checks start with Ctrl-C and Ctrl-\\ at their defaults, sandboxed ones included, so one can be interrupted on purpose, as with
kill -INTor^Csent to a terminal job, even when Letronna was started with both ignored, as a script'scmd &starts it. Before, Python run that way raised noKeyboardInterrupt. A Ctrl-C at Letronna's own terminal still never reaches them, and Letronna itself still keeps an ignore it was started with. - 全部A run nobody watches, such as
letronna -p, that was sent back for open items on its checklist and then changed them, ticking, adding or beginning one, is sent back again with what is still open when it would end, unless it was already sent back for that same list, so a run that leaves them as they were, or changes them back, still ends. Before, it was sent back once a run, so one sent back early, on a reply before its last, could later end with items open and hear nothing. - 全部A request a gateway turns down as too big (HTTP 413), as one carrying a few large pictures can be, goes again at once with its oldest pictures left out until it is under the limit the refusal names, or a quarter smaller when it names none, each with a line saying that reading its file again shows it, or for the newest that a smaller copy may fit. A 413 for too many tokens a minute, as Groq sends, through OpenRouter too, is not taken for one. The gateway's limit holds for its later requests in the run, and only a request with no picture left to leave out is cut down as an overflow is, where before the one resend still carried every picture, was refused the same way and ended the turn.
- 全部A tool's result that saved a picture a request no longer carries says so, where before it still said the picture follows: a request sends only the 4 newest, and the result now says to keep what is needed from a picture while it is sent; once a model turns pictures down, each such result says what the picture is and how else to look into it, as an attached one does. Browse's older screenshots, left out by design, say nothing, and the session keeps every result as it was.
- 全部read_file scales a picture down to 1,568 pixels on its long side whenever it is longer, as attaching one does, rather than only when the file is too big to send.
- 全部An error a gateway sends inside a reply it has already begun to stream, such as "every lender we tried refused this request (HTTP 502)" after two minutes of keep-alives, is tried again as the provider's own trouble, and then handed to a fallback model if one is set and none of the reply was shown yet, rather than ending the run as a failure nothing explained. A status its words name is read as the reply's own would be, so a 429 is waited out, a 408 is tried again, a 413 is taken for a request too long for the window and another 4xx ends the turn as a bad request, unless it is one that would blame the key, the credit or the base URL, which the gateway has just accepted. An error whose code or type is the provider's own word on the request, such as a refused prompt or an
invalid_request_error, still ends the turn as before, as does one that gives its status in a field, as TGI's does. - 全部
letronna -p --input-format stream-jsonkeeps toLETRONNA_DEADLINEas a-pquestion does, counted from the run's start: at 80% the turn running is told to write its outputs, at the deadline it stops with a result line whose status isdeadline, and a message sent after that is not run. Before, a run driven over stdin, as Harbor drives one, ran on until the harness killed it, with no result line. - 全部A run nobody watches is told never to look online for a copy of its task, its tests or its answer. Since the scope rule was reworded on 11 October, nothing said so, and on Terminal-Bench 2.0 six of 89 runs searched for their own task, three of them downloading its published solution or tests and running them.
- 终端A session resumed with
-cor-rshows its conversation at once, where it stayed off the screen until a key was pressed, and shows the whole of it, up to its last thousand messages, where it showed the last twelve with no way back to the rest; a replayed tool call names what it ran on, as a live one does./undoand/retryredraw the same way. - 终端Commands work in the open session's folder rather than the one Letronna started in, so after
--worktree, or with a session from another project resumed,/where,/memory,/skills,/help,/undo,/retry,/image,/preview, the/menu and your own commands read and change that session's files./newfrom a session in a worktree of its own gives the new one a worktree too, made from the same checkout, where it used to start in the checkout the worktree was there to spare. - 全部
/goal stop,/goal offand/goal cancelend the goal as/goal cleardoes, where they set a goal of that one word to work towards. - 终端Leaving says which session it was and how to come back to it (
Saved "…" · letronna -r 16), on the screen the terminal is given back. A SIGTERM or a closing terminal ends the session as leaving does, with the terminal given back and jobs and worktrees seen to, where it left the terminal in raw mode on the conversation's screen; a crash leaves the conversation's screen and the mouse before its message, so the message stays readable, and a caught panic in a tool's thread no longer turns raw mode off under the box.NO_COLORtakes the colours away and keeps the box, where it turned the box off. - 终端An approval card or a question from the model that comes up while you type no longer takes your keys: letters go on into the box behind it, an Enter pressed while you are still typing sends your line rather than a yes, and a digit no longer picks "always allow". A line sent while it worked never answers a question asked after it, a secret one included; Esc at the model's own question stops there, and a tall card keeps its choices on screen.
- 终端A message typed with
//to start it with a slash is sent as words again by/retry, and comes back to the box that way, rather than being run as a command. - 全部
letronna -p --input-format stream-jsongivenLETRONNA_DEADLINEis told in its first request how long it has, and a reply that only thinks past its share of the time left is stopped with a notice to write its outputs now, as a-pquestion is. - 全部In
letronna -p,--input-format stream-jsonincluded, a command started in the background, or moved there at its time limit, is told that the run stops its background jobs when it ends, and to start one that must keep running after it detached instead, as withsetsid nohup(nohupon macOS,Start-Processon Windows), and check that it answers. Before, a server started as a job was reported running and then stopped with the run. The jobs are still stopped; the terminal and the app, whose jobs run on after a turn, are unchanged. - 全部A run given
LETRONNA_DEADLINEhears its 80% warning even while a command or a wait holds it: the call comes back then, a command still running carrying on as a job with its output so far, and the warning counts the seconds left as the run reads it rather than as it came due. Past the warning, a call stops waiting shortly before the deadline, so the run sees what it printed before it is stopped; either way the result says the command is still running and offers wait or stop_job. Before, a run inside a long command read the warning only once the command was over, and at the deadline the command was ended unseen. - 全部A tool call whose arguments end before the call is complete, with no output limit reached, tells the model that its output can end where it writes a special token such as
<|endoftext|>whole and, if the content holds one, to build it from parts at run time, before the advice to send less in one call. Before, it was only told to send less, which cannot help a file that holds such a token. - 终端A line typed and entered while Letronna was starting is sent, where its enter used to be lost and the next words joined it.
\then Enter and Ctrl+J start a new line everywhere, and Shift+Enter does too in terminals that can tell it from Enter (they are asked to); the opening screen and/helpname the keys that work in yours. Option+arrows and Alt+B/F move a word instead of typing a letter, Alt+D and Alt+Backspace delete one, Ctrl+P/N step like the arrows, and AltGr types its character on Windows. - 终端Copying a selection reaches the clipboard in terminals that ignore the escape the terminal was asked with, such as Terminal.app and tmux, through the system's own clipboard command (pbcopy, clip, wl-copy, xclip or xsel), and the footer says "copied" only when that took it; over ssh it is left to the terminal, as the command would fill the far machine's clipboard. What is copied is the text as written: a line wrapped over several rows is one line again, without the indent or the mark in front of it.
/copycopies the last reply as written, Markdown and all, and/copy 2the one before it. - 终端Scrolled back, the view stays on what you are reading while a reply streams under it, where every word pulled it to the bottom, or a fold closing under it moved it, and the footer counts how far back it is; sending a message or End goes back to the bottom. In a long prompt the caret sits where you type, on the wrapped row, the box shows the rows around it however long the prompt grows, and ↑ and ↓ move between wrapped rows before stepping through what you sent before. Chinese, Japanese, Korean and emoji take their two columns there, so their rows stay inside the box.
- 全部A model its gateway lists only under another vendor's path, such as
deepseek/deepseek-v4.1-flashlisted asopencode-go/deepseek-v4.1-flash, is sized by that listed window instead of the smallest one, so old tool results are no longer cleared after a few thousand tokens. - 全部A web fetch or search that never reached its server, as when this computer is offline, no longer counts as having read a page, so a session that carries on from its own files is not asked about, or refused, its later deletes and sends; an error that quotes what a server wrote still counts, and the server's words in a failed secure connection, a redirect's address or a file's kind are now fenced as such.
- 全部On DeepSeek and Kimi, the reasoning sent back with the tool calls of the turn in progress counts toward the window, so a long turn clears old results before its requests outgrow the model.
- 全部A gateway that reports what its prompt cache wrote as
prompt_tokens_details.cache_creation_tokens, as some that serve Claude over chat completions do, is read: a reply whose prompt the cache wrote counts it as input, written to the cache, instead of only the few tokens sent fresh, in the usage line, the window's fullness,/usageandletronna -p --output json. - 应用Rewinding to your message puts its text back ahead of what you had typed instead of over it, and its pictures with it, and the composer takes the keys again; Rewind and Retry are off while a run holds the session, where they did nothing, and a rewind something started under says so.
- 应用Undo these and the Changes tab's Revert tell the model which files went back, so it reads them again before changing them, and a rewind further back still puts them back.
- 全部Command output, pages and MCP results no longer hide a line's value as a secret because its name merely holds a word such as key or token: a Python
KeyError: '...'and any other error or warning keep their message, and lines such askeyboard.drv=keyboard.drv,ssh-keygen: generating new host keysandsmtpd_tls_key_file=/etc/ssl/private/x.keyare shown whole. A name one of whose words ends with key, token, secret, password, passwd, credential or auth, with or without an s, asPGPASSWORD,API_KEYSandpassWorddo, still has its value hidden, unless its last word is file, filename, path, dir, url, name or type, with or without an s. - 全部web_fetch trusts the system's certificates as well as its own, read from
SSL_CERT_FILEorSSL_CERT_DIRwhere either is set, so behind a network that re-signs HTTPS with its own authority it reads the pages curl and git read there instead of refusing every one as from an unknown issuer; a certificate there it cannot use is passed over. The gateway's connections keep to the built-in roots.