Commit graph

5339 commits

Author SHA1 Message Date
Frank Song
2d21eff780 Fix pending user dedupe current-turn scope
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 11:12:50 +00:00
Frank Song
540d36d0b0 Fix inflight tail merge harness dependency 2026-06-26 11:12:50 +00:00
Frank Song
24b6e87aea Scope active user turn dedupe to current turn 2026-06-26 11:12:50 +00:00
Frank Song
035a2609f1 Harden active user turn dedupe tests 2026-06-26 11:12:50 +00:00
Frank Song
709f133d76 Fix active user turn replay dedupe 2026-06-26 11:12:50 +00:00
nesquena-hermes
42b3ada3f2
Release YE (v0.51.675): bounded state.db tail reads for paginated session loads (#4920, fixes #4918 P1)
Release YE (v0.51.675): bounded state.db tail reads for paginated session loads (#4920, fixes #4918 P1)
2026-06-26 03:57:13 -07:00
nesquena-hermes
fdfed7a0d5 Release YE (v0.51.675): bounded state.db tail reads for paginated session loads (#4920, fixes #4918 P1) 2026-06-26 10:54:13 +00:00
Frank Song
f15f178b5e Guard state db prefix keys with tool calls
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank Song
7a38b09af1 Fix lint for state db prefix key guard
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank Song
fd81b6cb08 Guard state db tail reads by prefix keys
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-26 10:43:28 +00:00
Frank Song
dc9d6275cb Address state db tail-window coordinate guards 2026-06-26 10:43:27 +00:00
Frank Song
91f7e7f816 Address state db tail window review 2026-06-26 10:43:27 +00:00
Frank Song
8bd31891e3 Bound state.db reads for paginated session loads 2026-06-26 10:43:27 +00:00
nesquena-hermes
bb2920180e
Release YD (v0.51.674): process-global request-diagnostics watchdog (#4973)
Release YD (v0.51.674): process-global request-diagnostics watchdog (#4973)
2026-06-26 01:07:25 -07:00
nesquena-hermes
b80d1f1a40 Release YD (v0.51.674): process-global request-diagnostics watchdog (#4973) 2026-06-26 08:04:27 +00:00
nesquena-hermes
2f7c5f01ee fix(#4973): replace per-request diagnostics Timer with a process-global watchdog thread
A threading.Timer per RequestDiagnostics spawns one OS thread per request, held
alive until finish() cancels it. Under sustained /api/sessions poll load this
exhausts the per-process thread cap (RuntimeError: can't start new thread) and
the server stops accepting connections. Replace with a single lazy-init
watchdog daemon thread that scans pending diags every ~1s; public API
unchanged. Caps timeout-tracking at 1 thread/process regardless of request rate.
2026-06-26 07:58:13 +00:00
nesquena-hermes
6dd1c5e0fa
Release YC (v0.51.673): stale local approval card clears instead of dead-ending (#4955, #4948 local variant, #4771 follow-up)
Release YC (v0.51.673): stale local approval card clears instead of dead-ending (#4955)
2026-06-26 00:13:03 -07:00
nesquena-hermes
4331999858 Release YC (v0.51.673): stale local approval card clears instead of dead-ending (#4955, #4948 local variant, #4771 follow-up) 2026-06-26 07:09:27 +00:00
Nathan Esquenazi
1ae73b3949 docs(changelog): add [Unreleased] entry for #4948 local stale-approval fix
AGENTS.md requires a CHANGELOG entry for user-visible behavior changes, and
this is one (a stale approval card went from a stuck "Approval response not
accepted." dead-end to clearing cleanly). The PR shipped the routes.js +
messages.js fix without a changelog note; this adds the [Unreleased] -> Fixed
entry crediting santastabber / b3nw, noting the #527 guard is preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 23:57:11 -07:00
nesquena-hermes
74cee77738 fix(approval): stale local approval card clears instead of dead-ending (#4948 local variant, #4771 follow-up)
On the default local in-process backend, an approval card whose stream
ended while still pending (cancel/fork/provider-error/completion) left the
agent queue entry dropped and the _pending mirror reconciled away. Clicking
Approve/Deny then sent an approval_id that matched nothing, so the handler
returned a bare {ok:false}; since #4771 the frontend surfaces that as
'Approval response not accepted.' with a stuck card (reported by
@santastabber on v0.51.666 and b3nw).

Distinguish a genuinely stale card (no pending approval for the session ->
benign {ok:true, stale_cleared:true} so the UI clears the orphan) from a
stale-id click made while a DIFFERENT approval is live (still ok:false so it
can never resolve the wrong command -- #527 guard preserved). Frontend
clears the orphan card on stale_cleared even if the displayed id drifted.

Co-authored-by: b3nw <b3nw@users.noreply.github.com>
2026-06-26 06:46:22 +00:00
nesquena-hermes
66d0278659
Release YB (v0.51.672): pre-aggregate cron sidebar ordering for missing-index scans (#4962)
Release YB (v0.51.672): pre-aggregate cron sidebar ordering for missing-index scans (#4962)
2026-06-25 20:20:04 -07:00
nesquena-hermes
a58e1c8343 Release YB (v0.51.672): pre-aggregate cron sidebar latest-message ordering for missing-index scans (#4962) 2026-06-26 03:17:11 +00:00
Rod Boev
3979ea6023 fix(sidebar): restrict cron pre-aggregation to missing-index scans 2026-06-26 03:06:40 +00:00
Rod Boev
810707d47a fix(sidebar): gate cron pre-aggregation to large scans 2026-06-26 03:06:40 +00:00
Rod Boev
eb10cecf0b fix(sidebar): keep cron candidate ordering scoped 2026-06-26 03:06:40 +00:00
Rod Boev
709086a29b docs(sidebar): update the index-prime rationale 2026-06-26 03:06:40 +00:00
Rod Boev
814fe56150 perf(#4842): pre-aggregate latest-message ordering for cold CLI scans 2026-06-26 03:06:40 +00:00
nesquena-hermes
a59fb8290e
Release YA (v0.51.671): move CLI sidebar cache rebuild out of the lock (#4952, closes #4842)
Release YA (v0.51.671): move CLI sidebar cache rebuild out of the lock (#4952, closes #4842)
2026-06-25 19:57:10 -07:00
nesquena-hermes
1c7b0b1abe Release YA (v0.51.671): move CLI sidebar cache rebuild out of the lock (SWR+singleflight) (#4952, closes #4842) 2026-06-26 02:54:15 +00:00
Rod Boev
97b551c528 fix(cli): restore all-profiles session scans after the cache rework (#4842) 2026-06-26 02:43:11 +00:00
Rod Boev
0301c8f8d2 fix(cli): keep CLI cache followers from hanging or dropping rows (#4842) 2026-06-26 02:43:11 +00:00
Rod Boev
8f0ede0e8b Make cache invalidation atomic across rebuild stores 2026-06-26 02:43:11 +00:00
Rod Boev
5b29b97993 Keep the retry path valid under ruff 2026-06-26 02:43:11 +00:00
Rod Boev
9130edbc31 Keep CLI cache rebuilds singleflight across invalidation 2026-06-26 02:43:11 +00:00
Rod Boev
6a5a514e8c Keep the review branch publishable 2026-06-26 02:43:11 +00:00
Rod Boev
c1bb1a42e9 fix(#4842): stop lock-held CLI cache rebuild stalls during streaming 2026-06-26 02:43:10 +00:00
nesquena-hermes
443e1063b5
Release XZ (v0.51.670): chronological tool-call rows before final answer incl equal-ts (#4893)
Release XZ (v0.51.670): chronological tool-call rows before final answer incl equal-ts (#4893)
2026-06-25 19:40:45 -07:00
nesquena-hermes
1c0a86f556 Release XZ (v0.51.670): chronological tool-call rows before final answer incl equal-ts (#4893) 2026-06-26 02:37:08 +00:00
nesquena-hermes
20727e142e test(#4893): close Opus coverage gaps — multi-tool equal-ts tie + tool-result block no-split 2026-06-26 02:25:07 +00:00
Frank Song
5b0e409d3b Handle equal-timestamp tool-call tail ordering 2026-06-26 02:18:18 +00:00
Frank Song
7e8834d8ca Fix tool-call tail ordering in session merge 2026-06-26 02:18:18 +00:00
nesquena-hermes
76eb548007
Release XY (v0.51.669): persist OpenAI priority service_tier (#4543, fixes #4536)
Release XY (v0.51.669): persist OpenAI priority service_tier in main-model settings (#4543, fixes #4536)
2026-06-25 19:12:18 -07:00
nesquena-hermes
b22bb85a6a Release XY (v0.51.669): persist OpenAI priority service_tier in main-model settings (#4543, fixes #4536) 2026-06-26 02:09:20 +00:00
nesquena-hermes
b2510efcb9 i18n(#4543): add service_tier keys to the vi locale (added to master after this PR; strict locale parity) 2026-06-26 01:51:59 +00:00
Rod Boev
61ea7360a0 fix(#4536): reject openai-codex provider before empty-model early return 2026-06-26 01:46:57 +00:00
Rod Boev
2f2d36d4eb fix(#4536): gate service tier on effective send model, not saved default 2026-06-26 01:46:57 +00:00
Rod Boev
4d64c18832 fix(#4536): block Codex models from priority service tier 2026-06-26 01:46:57 +00:00
Rod Boev
cae551f4a6 fix(#4536): match service-tier UI gate to backend 2026-06-26 01:46:57 +00:00
Rod Boev
6f9d23eb48 fix(#4536): gate service tier to real OpenAI model ids 2026-06-26 01:46:57 +00:00
Rod Boev
a340c69b08 fix(#4536): clear stale service tier on model switch 2026-06-26 01:46:57 +00:00