Commit Graph
100 Commits
Author SHA1 Message Date
Rod Boev fcaab02e93 fix(autocomplete): support slash commands after non-ASCII prefix and multiple slashes (#3924) 2026-06-14 19:57:17 +00:00
Rod Boev 8c105bd31d fix(sessions): guard external refresh poll to skip non-external sessions (#3916) 2026-06-14 15:05:10 -04:00
Rod Boev 84990f4a69 fix(sidebar): preserve GitHub issue numbers in session titles (#4154) 2026-06-14 14:59:54 -04:00
Rod Boev 43ec609772 Fix misleading error message in regenerate-title endpoint 2026-06-14 13:50:38 -04:00
Rod Boev 521d4434c9 fix(approval): extract _webui_mirror_token literal into named constant 2026-06-14 17:48:37 +00:00
Rod Boev bd216432b3 fix(approval): stable mirror token via entry.data, guard stale explicit id fallthrough 2026-06-14 17:48:37 +00:00
Rod Boev c789504a0f Avoid CI-only approval mirror regressions 2026-06-14 17:48:37 +00:00
Rod Boev 6cef9d7055 fix(approval): keep mirrored pending state aligned with gateway lifecycle (#4107) 2026-06-14 17:48:37 +00:00
Rod Boev 2db3e046d8 fix(approval): log empty gateway queue entries for diagnostics 2026-06-14 17:48:37 +00:00
Rod Boev 5abe6e9128 fix(tests): align regression test with has_blocking_approval rename 2026-06-14 17:48:37 +00:00
Rod Boev 92e3aac1c5 fix(approval): restore pending fallback reliability (#4107) 2026-06-14 17:48:37 +00:00
Rod Boev 1114fb77ef Update existing test to match materialize-based read-only guard 2026-06-14 13:27:11 -04:00
Rod Boev e0dbbaec82 Materialize CLI/TUI sessions before regenerating title (#4183) 2026-06-14 13:21:32 -04:00
Rod Boev 769fd11f22 fix(#4146): read reasoning_content gateway chunks 2026-06-14 10:22:43 -04:00
Rod Boev 11f50350f0 fix(recovery): prevent duplicate offline soft recovery 2026-06-14 10:20:21 -04:00
Rod Boev 3377aae9f2 test(recovery): align offline banner assertions with probe flow 2026-06-14 10:04:22 -04:00
Rod Boev 85e26705da fix(recovery): verify offline browser state before banner (#4170) 2026-06-14 09:55:43 -04:00
Rod Boev bc5fceb88a fix(streaming): provider-gate title-gen reasoning extra_body (#4161, #2083)
Consolidates #4162 + #3944. Aux path: skip the reasoning-disable inject for
routes that 400 on it via _route_rejects_reasoning_extra — hostname-matched
OpenAI / Azure OpenAI / Azure AI Foundry (+ provider aliases openai*/azure*/
azure-foundry/azure-ai*) and OpenRouter Anthropic mandatory-reasoning; keep it
for local/OpenRouter-non-anthropic/other reasoning routes (#4161). Agent path:
rely on the existing agent.reasoning_config={enabled:False} + _build_api_kwargs()
(route-correct per provider profile) rather than re-injecting a generic disable
on top of it; only MiniMax reasoning_split is added (unchanged from master).

Co-authored-by: Rod Boev <rod.boev@gmail.com>
2026-06-14 05:22:47 +00:00
Rod Boev c98f3c3abf feat(sidebar): nest forked sessions under their parent (#3224)
Re-pushed by rodboev fixing both bounce findings (parent streaming-state
isolation + nested-fork batch-select) plus a select-handler selector fix.
On current master (0 behind); sessions.js byte-identical to PR head.

Co-authored-by: Rod Boev <rod.boev@gmail.com>
2026-06-14 04:21:54 +00:00
Rod Boev 8677a11012 fix(sidebar): restore source_filter passthrough in cache builder (#3791) 2026-06-13 23:27:48 -04:00
Rod Boev 9f86bfee40 fix(sidebar): preserve expired cache entries for stale follower fallback 2026-06-13 22:36:25 -04:00
Rod Boev 43972652e7 fix(sidebar): collapse cache reads so stale-while-rebuilding path is reachable 2026-06-13 22:36:25 -04:00
Rod Boev 3fcb831a68 Restore stale follower reuse during cache rebuilds 2026-06-13 22:36:25 -04:00
Rod Boev 52a030503b Exercise real cache diagnostics instead of source-text checks 2026-06-13 22:36:25 -04:00
Rod Boev 07641dc987 Keep session list singleflight stable for WebUI-only views 2026-06-13 22:36:25 -04:00
Rod Boev f7dbf7df6a Invalidate cached session lists when backing stores change 2026-06-13 22:36:25 -04:00
Rod Boev c3750fe361 perf(sidebar): cache and single-flight /api/sessions payloads (#3791) 2026-06-13 22:36:25 -04:00
Rod Boev 42e85813a3 fix(#4146): preserve gateway reasoning previews on reload 2026-06-13 21:18:43 -04:00
Rod Boev 79cefa736c fix(#4146): accept text-only gateway thinking previews 2026-06-13 19:29:02 -04:00
Rod Boev b9a997ff58 fix(gateway): surface reasoning previews in WebUI (#4146) 2026-06-13 19:07:05 -04:00
Rod Boev d7e8f70423 fix(commands): block transient bundle shadowing 2026-06-13 18:53:46 -04:00
Rod Boev 6a27b414c6 Preserve imported title rework without breaking route invariants 2026-06-13 17:34:22 -04:00
Rod Boev e1ec41b32c fix(session): reload latest imported session before title save (#3987) 2026-06-13 16:47:57 -04:00
Rod Boev bb8d5e9587 fix(providers): claim probe workers under the pool lock (#3787) 2026-06-13 16:42:43 -04:00
Rod Boev e5640a42b9 Keep prompt-attention title badges from breaking title ownership 2026-06-13 15:05:03 -04:00
Rod Boev 4329768288 feat(topbar): badge pending prompts in document title (#4121) 2026-06-13 15:04:20 -04:00
Rod Boev 95bb9ebe66 Keep stale max configs on the supported path 2026-06-13 14:33:26 -04:00
Rod Boev c7c313672c fix(reasoning): hide unsupported max effort (#4119) 2026-06-13 14:33:26 -04:00
Rod Boev 707a19e34c Keep busy-slash regressions aligned with /yolo support 2026-06-13 14:15:35 -04:00
Rod Boev 6c7d551b41 fix(commands): keep slash command ownership ahead of bundles (#4087) 2026-06-13 14:06:35 -04:00
Rod Boev 840f12a74e fix(commands): keep bundle profile scoping strict (#4087) 2026-06-13 14:06:35 -04:00
Rod Boev 5a3c6c6f05 fix(commands): surface skill bundles in WebUI slash commands (#4087) 2026-06-13 14:06:35 -04:00
Rod Boev 61ddf4d21e fix(commands): run /yolo from busy slash intercept (#4117) 2026-06-13 13:59:04 -04:00
Rod Boev 59562e416a fix(#4071): wire /credits through WebUI command dispatch 2026-06-13 07:50:16 -04:00
Rod Boev db2d6eb97a test(pytest): suppress shard nodeid floods in verbose CI 2026-06-12 16:53:03 -04:00
Rod Boev ea05c6f3e8 test(mobile): harden worklog overflow regression parser (#4064) 2026-06-12 13:57:37 -04:00
Rod Boev 028be2fe22 fix(mobile): constrain Worklog summary overflow on narrow viewports (#4064) 2026-06-12 13:33:26 -04:00
Rod Boev 010127d0c0 docs(onboarding): place AIML setup with custom-provider guidance (#4045) 2026-06-12 12:41:43 -04:00
Rod Boev b426067e6f docs(onboarding): document AIML API custom-provider setup (#4045) 2026-06-12 12:35:59 -04:00
Rod Boev 6a1109475b fix(sidebar): count inactive rows through the render path 2026-06-12 12:03:04 -04:00
Rod Boev 65c0864e34 fix(approval): clear stale approval cards while busy 2026-06-12 11:55:43 -04:00
Rod Boev 4d8fa0245e fix(#3928): stabilize the static fallback contract 2026-06-12 11:55:43 -04:00
Rod Boev 0ed902bd05 fix(sidebar): drop the dead WebUI count path 2026-06-12 11:55:43 -04:00
Rod Boev 66a2d577df Keep CLI sidebar regression aligned with bucketed partitioning 2026-06-12 10:05:33 -04:00
Rod Boev dde9f06b03 test(sidebar): avoid shard churn from static regressions 2026-06-12 09:52:49 -04:00
Rod Boev ddce08fd70 docs(skills): pin the local-first search-dir contract 2026-06-12 09:36:10 -04:00
Rod Boev 19448c3267 fix(sidebar): keep rendered source counts on one path 2026-06-12 09:36:10 -04:00
Rod Boev 1f42f3190f fix(skills): categorize flat external skill dirs (#4053) 2026-06-12 09:21:47 -04:00
Rod Boev c507684b10 fix(sidebar): align session source counts with rendered rows (#3966) 2026-06-12 09:14:23 -04:00
Rod Boev 5f8ab6c452 Avoid redundant skill_view calls during forced skill sends 2026-06-12 08:49:56 -04:00
Rod Boev 76f3083223 fix(#3928): keep fallback badge helper out of source-marker tests 2026-06-12 08:43:06 -04:00
Rod Boev 87183b9517 fix(#3928): return a real static catalog when /api/models times out 2026-06-12 08:35:22 -04:00
Rod Boev 80dab6f3eb fix(commands): inject forced skill content for /use (#4044) 2026-06-12 08:34:27 -04:00
Rod Boev 1529dd0841 fix(commands): route /reload-skills through the WebUI allowlists (#4043) 2026-06-12 08:31:11 -04:00
Rod Boev e73cf3d610 test(csp): pin ipc localhost across enforcing coverage (#4040) 2026-06-12 08:18:04 -04:00
Rod Boev 7795f29946 fix(composer): preserve send-button sync under scheduled resize (#4042) 2026-06-12 08:18:04 -04:00
Rod Boev aab43cdaff fix(approval): keep approval polling alive across busy dips (#4041) 2026-06-12 08:12:57 -04:00
Rod Boev 768ea5ee87 fix(composer): coalesce composer auto-resize reflows (#4042) 2026-06-12 07:54:48 -04:00
Rod Boev bad4ec393a fix(titlebar): sync document.title on panel switches (#4039) 2026-06-12 07:52:57 -04:00
Rod Boev 5bffddd9ca fix(#3914): track bootstrap launcher as executable 2026-06-12 07:50:43 -04:00
Rod Boev ddcaf6091c fix(#4040): allow Tauri IPC host in connect-src 2026-06-12 07:50:43 -04:00
Rod Boev 891f392922 test(#3895): drop stale import after review cleanup 2026-06-11 21:17:50 -04:00
Rod Boev 819346304c test(#3895): replace brittle wiring assertions 2026-06-11 21:13:11 -04:00
Rod Boev 6e50e94649 test(#3895): cover credential self-heal runtime resolution 2026-06-11 21:10:48 -04:00
Rod Boev 6e133a4f44 fix(#3895): carry target model through credential self-heal 2026-06-11 21:08:24 -04:00
Rod Boev e62a31e463 fix(#3895): preserve configured base-url fallback through self-heal 2026-06-11 21:06:16 -04:00
Rod Boev 1753cc0c60 fix(commands): hide CLI-only slash collisions from autocomplete (#3969) 2026-06-11 20:58:51 -04:00
Rod Boev a692314acf fix(#3895): honor runtime target model and base_url in WebUI streaming 2026-06-11 20:56:22 -04:00
Rod Boev 220d255d5c fix(#4005): preserve expanded lineage segments during streaming refresh 2026-06-11 20:55:35 -04:00
Rod Boev 9d1e3910ee Scope shutdown i18n assertions to the relevant DOM 2026-06-11 20:45:54 -04:00
Rod Boev f6ed8f7302 Make browser TTS watchdog checks brace-aware 2026-06-11 20:42:51 -04:00
Rod Boev a8137ff21c Guard watchdog recovery from duplicate voice-mode resume 2026-06-11 19:24:57 -04:00
Rod Boev 22f9e5c973 Keep link-label rendering compatible with the autolink source guard 2026-06-11 19:08:28 -04:00
Rod Boev 4ba4f77343 Keep the Edge-branch guard test aligned with branch scope 2026-06-11 19:04:26 -04:00
Rod Boev 12e13d4680 Initialize markdown link-label sanitizing before use 2026-06-11 19:04:26 -04:00
Rod Boev 09f19d1233 Prevent duplicate voice-mode rearm after watchdog recovery 2026-06-11 18:58:12 -04:00
Rod Boev be75d41857 Keep the renderer fixture import lint-clean 2026-06-11 18:58:12 -04:00
Rod Boev 0ff3860186 fix(#4002): split shutdown i18n text from static code spans 2026-06-11 18:53:39 -04:00
Rod Boev e3765a389c fix(#4001): preserve inline code inside markdown link labels 2026-06-11 18:50:54 -04:00
Rod Boev f4a6544121 fix(#3983): re-arm browser voice mode when speechSynthesis drops onend 2026-06-11 18:48:58 -04:00
Rod Boev a82eb1622f fix(#3958): keep reasoning effort status on the active session model 2026-06-11 18:46:17 -04:00
Rod Boev d7133fe4a6 fix(#3930): push source filters into agent session scans 2026-06-11 16:59:18 -04:00
Rod Boev 7d925a324a fix(#3968): autocomplete skill names for /use 2026-06-11 16:55:14 -04:00
Rod Boev 4dc4786aae fix(#3979): treat malformed providers config as unconfigured 2026-06-11 16:55:14 -04:00
Rod Boev 749f97144b fix(#4003): open clicked lineage segments without sid rewrite 2026-06-11 16:28:33 -04:00
Rod Boev 2278867c88 fix(#3987): generate titles for imported sessions 2026-06-11 14:09:14 -04:00
Rod Boev 60570f1fa6 Distinguish closed workers from idle ones in cleanup 2026-06-11 12:19:17 -04:00
Rod Boev 0652cf9b16 fix(providers): treat proc=None as idle, not dead, in cleanup 2026-06-11 12:19:17 -04:00
Rod Boev b5f1965b3c fix(providers): replenish pool after partial cleanup removes stale workers 2026-06-11 12:19:17 -04:00
Rod Boev 40abc0f701 fix(providers): hold probe-worker lock across selector handoff 2026-06-11 12:19:17 -04:00