Commit Graph
13214 Commits
Author SHA1 Message Date
yhh 87d20e14b3 fix(studio): on a desktop the settings search results fill the page column beside the category list instead of floating across it and the page behind, with the close button kept above them 2026-11-07 01:32:38 -08:00
yhh 4779d91c5b feat(studio): settings are found by what a person types: search ranks by relevance, takes several words and a sentence, and 23 of 43 everyday phrasings that found nothing now land in the first three, held by a findability test; each page opens with an index of what it holds, so settings folded into it have a visible way in 2026-11-07 01:24:25 -08:00
yhh 07d2d4bdd0 Show the cache hit rate after the cold start, and the output ratio
The session's first executor request pays for the prefix every later one
reuses, so the session-wide hit rate mixes "did the cache work once warm"
with "how much a cold start could reuse". usagereport already records the
cold start, but nothing a live session reads projected it.

The live figures come from the serve ledger, which restarts on /new,
/resume and /fork; usageTally does not, so its ColdStart can belong to an
earlier conversation in the same process. The broadcaster therefore takes
the cold start from the ledger's own population: the first request the
ledger files under the executor (pricing.LedgerSource, the rule Add
already used), split by the same CacheSplit the ledger applies, and reset
with it. SessionUsage carries it as coldStart.

- /status (TUI): "warm cache" row, ledger hit rate with the cold start
  taken out of hit, miss and unknown; "out/in" row, output ÷ input.
- Desktop session overview behind the cache meter: the same two figures,
  computed in state/overview beside cacheRate.
- wire-parity: ColdStartUsage mirrored in port/session.ts.
2026-11-07 09:06:37 +00:00
yhh 2e2566c84d test(studio): the Markdown poll test lets what opening the file left pending land before it takes its baseline, so a slower runner does not count it as a poll render 2026-11-07 00:53:34 -08:00
yhh 1b0fbd8bb1 fix(studio): after a batch selection focus returns to the project menu that started it, which no longer is a single list menu, and the session, workbench and rail tests follow the deliberate changes to the project menu, the scope dropdown, the palette ranking, the dirty-tab prompt and the line-numbered code blocks 2026-11-07 00:53:06 -08:00
yhh 6fd42831e2 fix(studio): opening the model panel reads the model list once, and the settings, composer and plan tests follow the deliberate structure of the settings nav folds, the account page behind its pill, the scope tag, the merged model and effort button and the send button staying beside stop 2026-11-07 00:42:50 -08:00
yhh e386c45525 fix(studio): the structural gates are held to the design as it is: SegChoice and PillButton name their action through a certified prop, the shared Menu row's callback is followed into its parent, the slider, strip scroll, dialogs and plan picker carry action names, keyframes, radii, orphan components, translations and settings rows are brought back in line, and the phone layout no longer hides the branch chip from the hover guard 2026-11-07 00:39:10 -08:00
yhh 0fac934b3f fix(ci): the Windows shell listing joins paths the way the OS it is computed for does, the save allocation check is skipped under the race detector that defeats regexp's pool, and the context-retrieval benchmark whose premise archived folds ended is removed with the surface helper only it used 2026-11-07 00:39:03 -08:00
esengine 48cad29d31 fix(studio): the storage move panel plans once the path stops changing and ignores answers for paths already typed past
Every keystroke sent a plan request that walks the whole root. The panel now waits 400 ms after the last change and drops an answer whose path is no longer the one in the box.
2026-11-06 23:50:40 -08:00
yhh 0f26eda9f4 chore: stop tracking the python bytecode caches that the last commit swept in from two untracked benchmark directories 2026-11-06 23:47:52 -08:00
yhh 14649962fc refactor(provider): remove the summary request flag and what only it served: the Request.Summary field and ErrSummaryToolsUnsupported, the adapters' no-tools branches, the broker's capability probe, and the test doubles and live test written for a summarizer call that no fold makes; the reported-usage effect test now detects a fold by its archive pointer and has a control arm 2026-11-06 23:47:31 -08:00
yhh 0f81082776 refactor(agent): remove the summarizer's bill and request identity, which nothing writes now that a fold is an archive: the spend accumulator, the unset usage and request id on the fold result, and the zero usage carried into telemetry and the receipt 2026-11-06 23:24:39 -08:00
yhh 31db766ff1 test(boot): through the real assembly a hand-asked compact folds again after a little more was said, the report names the fold an archive, and a declined one does not claim a summary 2026-11-06 23:22:14 -08:00
yhh 05c8743f03 fix(agent): a fold is described as the archive it is: the decline wording no longer says a summary is being paid for, /context and the TUI name an archived fold instead of calling it summarized or printing the raw mode, and the codes, modes and translations nothing produces any more are removed 2026-11-06 23:08:04 -08:00
yhh be92796684 test: the coordinator handoff and guardian compaction tests stop scripting a summarizer call, which compaction no longer makes since it archives to a file 2026-11-06 22:51:42 -08:00
yhh 6264845f53 fix(tool): a refusal's remedy names the setting tool by its capability id, tool:setting, now that the tool sits behind use_capability and a bare "setting" is not a name the model can see 2026-11-06 22:51:42 -08:00
esengine 20c2705623 chore: clear the unused agent symbols and the two lines App.tsx is over its ceiling
These block every push through lint and make check; none of them changes behaviour.
2026-11-06 22:49:20 -08:00
esengine 1923e50a34 fix(storage): a move plan proves the nearest existing parent writable instead of creating the target
Planning ran on every keystroke and its write probe called MkdirAll on the target, leaving a folder per typed prefix. The probe now runs in the nearest existing ancestor, free space is read from it, and Move creates the target once the user starts the move.
2026-11-06 22:46:13 -08:00
yhh 7c388628f2 fix(studio): the session-message form's recipient select fills the form instead of the 140px every select in a settings card gets, so its label no longer wraps over two lines 2026-11-06 22:41:24 -08:00
yhh 339f443ffb feat(boot): setting, present_files, compress and context_budget move behind use_capability and are indexed in its description, cutting the first-round tool definitions by another 4 KB 2026-11-06 22:34:44 -08:00
yhh c8afd3be60 feat(boot): the browser tools move behind use_capability, whose description now indexes the deferred tools by id with a short purpose, so a model that could see a browser but not web_fetch no longer opens a page to read a JSON endpoint 2026-11-06 21:59:04 -08:00
yhh 756c6159a6 fix(agent): a compact asked for by hand no longer answers "too little added" after a checkpoint; asking waives how much was added, and an unchanged context is still declined 2026-11-06 21:22:30 -08:00
yhh 26f72585ee fix(control): in yolo mode remember no longer asks for approval either, so neither memory tool prompts under the mode that skips every other approval 2026-11-06 21:13:36 -08:00
yhh 5b80976176 fix(control): in yolo mode forget no longer asks for approval; it archives a memory rather than destroying it, and remember still asks 2026-11-06 21:11:56 -08:00
yhh 044d2ee025 fix(studio): in a narrow conversation the composer's model pill shrinks the model name instead of letting the divider and reasoning level spill out of the pill and onto the send button 2026-11-06 21:11:55 -08:00
yhh 081f35e9dd fix(studio): the settings category strip on a phone can be scrolled with a mouse wheel, brings the chosen category into view, and fades at its edge so a cut-off tab reads as more to the right 2026-11-06 20:20:22 -08:00
yhh 6e56478321 fix(studio): on a phone the settings sheet no longer draws the desktop's nav-column divider and darker strip, which showed as a stray vertical line through the page 2026-11-06 20:18:23 -08:00
yhh 37ec853810 feat(studio): on a phone the settings sheet fills the screen as one column, with the categories as a strip above the page, so rows, titles and the skills list get the whole width instead of a sliver beside a nav column 2026-11-06 20:14:40 -08:00
yhh 73a1b23696 fix(studio): on a phone the composer's more-tools button can be seen (heavier dots inside a ring), and the model pill takes the room its text needs and shows the reasoning level instead of overlapping the button and leaving a dangling dot 2026-11-06 20:00:17 -08:00
yhh 8c71d355b0 feat(studio): the phone's reasoning control is the product's own depth line instead of a look modelled on another product's slider; a thin line in the brand colour with a current flowing along it, a node per level, and a thumb wearing the Reasonix mark. Also fixes the model pill's separator, which had been written as a NUL character 2026-11-06 19:55:42 -08:00
yhh 155ffaa49b feat(studio): the reasoning slider follows the finger continuously and eases onto a level, its stars drift, its light stays inside the card, and it carries a dot and a name for every level with a bloom behind the thumb; the sheet's search box is spaced from the list 2026-11-06 19:52:02 -08:00
yhh ef0ceacf78 feat(studio): the reasoning slider is lit from inside: stars that twinkle out of step, a glow that sweeps along the fill, and a glowing thumb; all of it holds still under reduced motion 2026-11-06 19:45:24 -08:00
yhh 552f48ab7a feat(studio): on a phone the reasoning levels are one gradient slider with the level named above it, chosen when it is let go, and the model rows in the sheet are compact 2026-11-06 19:42:41 -08:00
yhh e8b13d13dd feat(studio): on a phone the model menu is a sheet along the bottom edge instead of two squeezed columns; the model list scrolls by itself while the reasoning levels stay in view as one row of chips 2026-11-06 19:38:53 -08:00
yhh ae46c30d3e feat(studio): on a phone the composer's tool row is add, the model pill and send, with the other controls one tap behind a 'more tools' button; stop is a round pause button, and the pinned control order no longer applies on a phone 2026-11-06 19:27:53 -08:00
yhh 411e19d87e feat(studio): on a phone the title bar keeps the session list, the title with the machine under it and one menu, a lost connection says it is reconnecting, and an approval is two 44px buttons with the other choices behind 'more options' 2026-11-06 19:14:06 -08:00
yhh c155364b3d fix(studio): on a touch screen the select options are finger-sized and the context card's expand control and manage link are tall enough to press 2026-11-06 18:52:04 -08:00
yhh e89b435af9 feat(studio): every select opens the app's own list instead of the system one; one rule in the shared select styles covers all 35, behind a feature guard so engines without styleable selects keep the native list 2026-11-06 18:47:00 -08:00
yhh 0549af617b fix(studio): the context details card is tighter, and its expanded rows keep the card's side margin instead of sitting against the edge; a long tool name is cut with an ellipsis rather than pushing the figure out of the card 2026-11-06 18:39:35 -08:00
yhh ce51afd2dc fix(studio): a code block wraps long lines instead of scrolling sideways; each source line is its own row carrying its number, so the number stays with the first row of a wrapped line 2026-11-06 18:33:23 -08:00
yhh 2bfb7de07a feat(studio): the plan list opens from the height of its bar and leaves again before it is removed; the exit holds the list only while the stylesheet gives it an animation, so reduced motion and a missing animation close at once 2026-11-06 18:29:54 -08:00
yhh 8658f020af fix(studio): the global shortcut setting reads like its neighbours; the chord is shown in the notation people use, the three one-shot actions are pill buttons instead of a selector strip, recording is visible on the field, and the explanatory text wraps instead of being cut off 2026-11-06 18:22:53 -08:00
yhh 0a38f2e47a fix(studio): the open plan is as wide as its collapsed bar, and the transcript gives way to it instead of ending underneath 2026-11-06 18:17:52 -08:00
yhh 7c7e3ff99c perf(session): resuming a long session no longer repeats work; a replay observes each touched path once, event records are framed in bulk, and a load whose ledger agrees with its transcript is a verified baseline so switching away from an untouched session reads nothing back; resume of a 15 MB log goes from about 1.0 s to 0.42 s 2026-11-06 18:17:52 -08:00
yhh 868a14cadc perf(session): a save that finds its files as its own last save left them no longer replays the event log; the prefix is verified by digest in the pass that digests the transcript, cutting a 5000-message save from 137 ms to 50 ms 2026-11-06 17:25:44 -08:00
yhh 63da66261c perf(serve): package init no longer loads the OS mime table, taking Windows startup from 143 ms to 91 ms; page files already carry their own content types 2026-11-06 17:06:12 -08:00
yhh 76ed2566ed feat(context): a fold archives the whole span and keeps nothing: no first-turn pin, recent tail, kept user turns, user-words list, work index or summary; the pointer is one short message and keep, recent_keep, user_turn_keep_tokens and first_turn_pin_tokens are retired 2026-11-06 10:02:32 -08:00
yhh e808b48946 fix(studio): the dev server proxies /terminals to the kernel 2026-11-06 08:36:55 -08:00
yhh 817d78b399 fix(memory): the new save refusals carry wording in the desktop, and the remember freshness effect test states the mode it exercises 2026-11-06 08:28:08 -08:00
yhh 813af4958e feat(memory): the model asks before remembering — remember holds a suggestion the user accepts, edits or dismisses; memory.proactive is ask, auto or off, and YOLO saves directly; the open goal panel joins the composer 2026-11-06 08:17:42 -08:00