Rod Boev
489728d71f
fix(gateway): scope approval mirror cleanup to live heads ( #6008 )
2026-07-22 12:19:33 -04:00
Rod Boev
39fc169834
fix( #6008 ): route gateway approvals by run ID
2026-07-22 12:19:33 -04:00
Rod Boev
5771a511e7
fix( #6099 ): make transparent stream activity timestamps optional ( #6130 )
...
Add an opt-in setting to hide Transparent Stream's per-event timestamp chips while keeping the response footer time visible, for users who found the per-event chips noisy. Thanks @rodboev. Closes #6099 .
2026-07-18 20:56:44 -07:00
Rod Boev
704e19adfe
fix( #6240 ): fall back when test skills symlink is unavailable ( #6276 )
...
Fall back to a copytree (with read-only handling) when the test-server fixture can't create the skills symlink on native Windows without SeCreateSymbolicLinkPrivilege (WinError 1314). Test-infra only. Thanks @rodboev. Closes #6240 .
2026-07-18 19:56:06 -07:00
Rod Boev
73305706c6
fix( #6108 ): bound SessionDB retries to transient sqlite contention
2026-07-17 05:42:00 -04:00
Rod Boev
2e1867c6e5
fix( #6108 ): keep session_search alive through transient state.db lock races
2026-07-17 03:55:22 -04:00
Rod Boev
ab48096de1
feat( #6033 ): show delegated goal titles for child sessions
2026-07-14 04:01:06 -04:00
Rod Boev
acc63090dd
test( #2147 ): honor english fallback-owned profile concept copy
2026-07-14 03:33:00 +00:00
Rod Boev
d2843d94e7
fix( #2147 ): restore i18n fallback for profile concept copy
2026-07-14 03:33:00 +00:00
Rod Boev
2f95ae7dbb
fix( #2147 ): use stable label keys instead of splitting translated prose
2026-07-14 03:33:00 +00:00
Rod Boev
453b9696e3
fix( #2147 ): add profile_concept keys to all locale blocks and update existing test
2026-07-14 03:33:00 +00:00
Rod Boev
e9b17b1a52
feat( #2147 ): localize profile concept help and add usage examples
2026-07-14 03:33:00 +00:00
Rod Boev
9bd96fb75d
fix( #2422 ): support packaged Hermes Agent discovery
2026-07-14 01:06:49 +00:00
Rod Boev
53348df68d
fix( #2422 ): allow Nix package version generation
2026-07-14 01:06:49 +00:00
Rod Boev
b7f523c3a1
fix( #2422 ): tighten Nix module polish
2026-07-14 01:06:49 +00:00
Rod Boev
243f27e7ed
fix( #2422 ): keep NixOS state private
2026-07-14 01:06:49 +00:00
Rod Boev
72b51a6b78
fix( #2422 ): avoid hardcoded agent site packages
2026-07-14 01:06:49 +00:00
Rod Boev
70514549c4
fix( #2422 ): harden NixOS packaged runtime
2026-07-14 01:06:49 +00:00
Rod Boev
1f505aad88
fix( #2422 ): pin the flake input for reproducible builds
2026-07-14 01:06:49 +00:00
Rod Boev
654a691155
fix( #2422 ): keep the Nix launch path declarative
2026-07-14 01:06:48 +00:00
Rod Boev
5bd940a49b
fix( #2422 ): honor the service-mode host default
2026-07-14 01:06:48 +00:00
Rod Boev
d77d956380
fix( #2422 ): validate env files before user drop
2026-07-14 01:06:48 +00:00
Rod Boev
09003b5e92
feat( #2422 ): add Nix flake package and NixOS module
2026-07-14 01:06:48 +00:00
Rod Boev
37b51803e6
Keep composer focus shortcut easy to reach
2026-07-14 01:06:46 +00:00
Rod Boev
ca5f02bbff
feat( #5759 ): add composer focus shortcut
2026-07-14 01:06:46 +00:00
Rod Boev
001d7985bc
feat( #6006 ): instrument send-to-first-token latency
2026-07-13 17:56:44 -04:00
Rod Boev
3ada146d48
fix( #5989 ): keep colon-suffixed proxy models distinct
2026-07-13 18:57:15 +00:00
Rod Boev
ff89f2ebd6
fix( #5989 ): keep cross-provider live rows selectable
2026-07-13 18:57:15 +00:00
Rod Boev
58725d5de9
fix( #5989 ): separate picker dedup from restore matching
2026-07-13 18:57:15 +00:00
Rod Boev
052effcfc4
fix( #5989 ): deduplicate proxy and catalog model rows in the picker
2026-07-13 18:57:15 +00:00
Rod Boev
064ad82ee6
fix( #5940 ): key pending-turn recovery to exact checkpoints
2026-07-13 03:41:39 +00:00
Rod Boev
0c8f647e9c
fix( #5940 ): drop unused gateway error adapter
2026-07-13 03:41:39 +00:00
Rod Boev
a87977da33
fix( #5940 ): settle gateway terminal errors before emitting apperror
2026-07-13 03:41:39 +00:00
Rod Boev
e6dea2a32e
fix( #5940 ): attach session identity to gateway apperrors
2026-07-13 03:41:39 +00:00
Rod Boev
60ec437393
fix( #5940 ): preserve gateway terminal errors after stream failures
2026-07-13 03:41:39 +00:00
Rod Boev
bc692cc8ac
fix( #5940 ): classify gateway terminal provider errors instead of generic empty turns
2026-07-13 03:41:39 +00:00
Rod Boev
2e39bb8418
fix( #5884 ): focus composer after URL prefill
2026-07-10 11:04:44 -04:00
Rod Boev
4cbc70c778
fix( #4812 ): satisfy replay boundary lint gate
2026-07-10 10:51:34 -04:00
Rod Boev
956c276362
fix( #4812 ): close session SSE replay recovery gaps
2026-07-10 10:46:47 -04:00
Rod Boev
da885659bd
fix(streaming): satisfy session SSE lint gate
2026-07-10 07:37:16 -04:00
Rod Boev
b2a9ca28ad
fix(streaming): harden session SSE replay ( #4812 )
2026-07-10 07:31:00 -04:00
Rod Boev
e592498664
fix(chat): keep live reasoning on one renderer path ( #5720 )
2026-07-09 03:12:37 +00:00
Rod Boev
837a552746
fix(chat): contain streaming code block layout ( #5760 )
2026-07-09 03:08:19 +00:00
Rod Boev
745e0be0df
fix( #5699 ): keep child streams from moving parent sidebar buckets
2026-07-09 02:35:52 +00:00
Rod Boev
f4172f73b0
fix(mcp): preserve config overrides for profile reads ( #5619 )
2026-07-08 16:18:52 +00:00
Rod Boev
3c8d9f851e
fix(mcp): scope list config reads to active profile ( #5619 )
2026-07-08 16:18:52 +00:00
rodboev
8b02a8c260
fix( #5723 ): complete stale-busy cleanup on dead-run recovery (Fable UX-gate)
...
_steerClearCurrentOwnerDeadRun cleared busy/activeStreamId/inflight but left
the status line, elapsed timer, and optimistic streaming badge lingering after
a recovered dead run. Add the rest of the app's stale-busy cleanup idiom
(setStatus/setComposerStatus/_clearActivityElapsedTimer/clearOptimisticSessionStreaming),
still bypassing setBusy(false) so its queue-drain can't clobber the restored draft.
2026-07-07 16:32:26 +00:00
rodboev
56a395c5f3
fix( #5701 ): ignore pinch-zoom scale in keyboard-inset (Fable UX-gate)
...
vv.scale != 1 means the visual-viewport shrinkage reflects zoom, not the
keyboard; on Chromium 'force enable zoom' that produced a large spurious inset
that jittered on pan. Bail out of the inset when |vv.scale-1|>0.05. + test.
2026-07-07 05:07:19 +00:00
Rod Boev
815d06f10f
feat(worklog): show Transparent Stream event timestamps ( #5700 )
2026-07-07 01:05:59 -04:00
rodboev and nesquena-hermes
ae8d0bf3fb
fix( #5701 ): keep the composer above iPad keyboards
...
On touch-primary devices (iPad Safari) the on-screen keyboard shrinks the
visual viewport but not the layout viewport, so the bottom-pinned composer
sits behind the keyboard. Compute a --keyboard-bottom-inset from visualViewport
and pad the composer up by it; clear it when the keyboard closes / on
non-touch / no-visualViewport. Reuses the existing visualViewport + pageshow
hooks; no-op on desktop/fine-pointer.
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com >
2026-07-07 05:05:11 +00:00
Rod Boev
54ce5932f2
fix(streaming): clean up session SSE subscribers on replay disconnect ( #4812 )
2026-07-06 15:49:14 -04:00
Rod Boev
631ec800e7
Stop tracking pr-sweep proof scratch that fought the publish gate every push
2026-07-06 14:47:55 -04:00
Rod Boev
9b3538f1a6
fix(streaming): reject hostile session SSE cursors ( #4812 )
2026-07-06 11:25:59 -04:00
Rod Boev
624e03c60a
refactor( #2695 ): centralize WebUI static asset resolution
2026-07-06 06:45:36 -04:00
Rod Boev
3e53ef505c
Preserve the RFC source anchor while sharing parser logic
2026-07-06 06:26:53 -04:00
Rod Boev
54a6292954
Share the run-journal event cursor parser
2026-07-06 06:23:03 -04:00
Rod Boev
3439bb8a46
Keep session stream source guards pointed at the live handlers
2026-07-06 06:14:03 -04:00
Rod Boev
aba74c762d
Keep session SSE recovery tied to the live handler contract
2026-07-06 06:08:21 -04:00
Rod Boev
4bc405d708
Keep cursorless active SSE backlog from disappearing
2026-07-06 05:42:03 -04:00
Rod Boev
720e4191ad
feat( #4812 ): add resumable session SSE stream
2026-07-06 05:16:18 -04:00
Rod Boev
80ee386827
Preserve lineage authority through serializer and refresh pass
2026-07-06 05:08:23 -04:00
Rod Boev
409be9bcd4
fix( #5598 ): stabilize lineage grouping across live refreshes
2026-07-06 04:49:24 -04:00
Rod Boev
cdcb31a948
docs( #2781 ): document proxy auth PWA update caveat
2026-07-06 04:41:45 -04:00
Rod Boev
e82cb801de
feat( #5665 ): add shared layout-assertion helpers for browser tests
2026-07-06 01:23:21 -04:00
Rod Boev
e19eefbe59
ci( #5658 ): add restore-keys for graceful cache fallback on version bumps
2026-07-05 22:59:37 -04:00
Rod Boev
f09e5d0b33
ci( #5658 ): install Playwright in pytest CI so browser tests run
2026-07-05 22:54:44 -04:00
Rod Boev
9f9ebc9746
fix( #5583 ): keep mobile nav actions visible
2026-07-05 18:40:41 -04:00
Rod Boev
00a6952191
test( #5619 ): carry config path through quota helper state
2026-07-05 17:24:41 -04:00
Rod Boev
b7234ee72a
test( #5619 ): pin named custom helper to active config path
2026-07-05 17:18:07 -04:00
Rod Boev
05e14b6339
test( #5619 ): pin same-path model helper fixtures
2026-07-05 17:13:07 -04:00
Rod Boev
29e9a27299
fix( #5619 ): preserve same-path cfg overrides on reload
2026-07-05 17:08:20 -04:00
Rod Boev
17ee8b5edc
test( #5619 ): pin codex helper to the active config path
2026-07-05 17:01:39 -04:00
Rod Boev
1124fd882a
fix( #5619 ): reload model payloads on profile switch
2026-07-05 16:44:33 -04:00
Rod Boev
c83ccf069a
fix( #5641 ): keep table boundary scoped to spaces
2026-07-05 16:39:54 -04:00
Rod Boev
2f815f040c
fix( #5619 ): clear stale cfg overrides on profile switch
2026-07-05 16:33:01 -04:00
Rod Boev
1075d6e3a1
fix( #5641 ): tolerate edge whitespace in markdown table parsing
2026-07-05 16:25:59 -04:00
Rod Boev
4c3a4e011e
fix( #5619 ): reload config cache on profile switch
2026-07-05 16:22:35 -04:00
Rod Boev
f650b1b725
fix( #5583 ): strip mobile nav mirror handlers
2026-07-04 23:31:37 -04:00
Rod Boev
2c66f7b65f
fix( #5583 ): keep mobile nav actions visible
2026-07-04 21:23:42 -04:00
Rod Boev
f34fd8ed42
test(layout): match resize minima constants exactly ( #5545 )
2026-07-04 20:01:25 -04:00
Rod Boev
33d9b9f2a7
test(layout): keep css contract failures focused on assertions ( #5545 )
2026-07-04 19:55:37 -04:00
Rod Boev
0fc78da5ff
fix( #5545 ): keep center pane readable in three-panel layout
2026-07-04 19:11:05 -04:00
Rod Boev
cc7896cfab
test( #5572 ): prove imported transcript survives clear
2026-07-04 18:39:51 -04:00
Rod Boev
b19f447dd7
test( #5572 ): remove unused messaging coverage import
2026-07-04 18:34:10 -04:00
Rod Boev
1b65794d1a
test( #5572 ): cover messaging clear watermark semantics
2026-07-04 18:07:48 -04:00
Rod Boev
11eed2af54
fix(session): harden cron branch source gate ( #5477 )
2026-07-04 16:41:15 -04:00
Rod Boev
cbc164de0c
feat( #5477 ): fork read-only cron sessions
2026-07-04 16:38:27 -04:00
Rod Boev
bac619e767
fix(i18n): add relative path labels ( #5533 )
2026-07-04 15:47:50 -04:00
Rod Boev
2e27ff64d6
fix(cron): harden preset controls after review
2026-07-04 15:37:10 -04:00
Rod Boev
71a6259c84
Align copied paths with chat references
2026-07-04 15:26:25 -04:00
Rod Boev
ea2dc31c09
fix( #5532 ): prevent clear from replaying state.db history
2026-07-04 15:08:26 -04:00
Rod Boev
9742fd8e60
feat( #5552 ): add time and day controls to cron presets
2026-07-04 14:32:27 -04:00
Rod Boev
670976a280
Prevent duplicate preview path copy requests
2026-07-04 13:55:28 -04:00
Rod Boev
6cf5706f78
test( #5523 ): align persisted anchor status invariant
2026-07-04 13:51:32 -04:00
Rod Boev
0ec29b14ec
test( #5269 ): keep approval docs reads in tests
2026-07-04 13:46:59 -04:00
Rod Boev
3d483d3701
test( #5523 ): harden transparent status regression slice
2026-07-04 13:46:59 -04:00
Rod Boev
7ebd898c5e
feat( #5533 ): make preview file paths copyable
2026-07-04 13:37:39 -04:00
Rod Boev
06764e0924
docs( #5269 ): document gateway approval runs API opt-in
2026-07-04 13:37:39 -04:00
Rod Boev
c85db4f3d7
fix( #5523 ): show running tools as running in Transparent Stream
2026-07-04 13:37:39 -04:00
Rod Boev
0c1bdce023
fix( #5493 ): honor reduced motion for transparent fade
2026-07-04 10:07:34 -04:00