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