Rod Boev
|
b5dc306723
|
test(settings): decouple ranking proofs from insertion order (#5149)
|
2026-06-29 11:18:07 -04:00 |
|
Rod Boev
|
533eaf7c26
|
test(settings): close ranking proof gaps (#5149)
|
2026-06-29 11:04:59 -04:00 |
|
Rod Boev
|
c802c18242
|
test(settings): harden ranking proof coverage (#5149)
|
2026-06-29 10:50:05 -04:00 |
|
Rod Boev
|
782335b62a
|
feat(settings): rank settings search results by match source (#5149)
|
2026-06-29 10:39:08 -04:00 |
|
Rod Boev
|
a98b0551c9
|
test(updates): keep launchd regression proofs faithful (#5175)
|
2026-06-29 04:22:51 +00:00 |
|
Rod Boev
|
a052f390f8
|
fix(updates): resolve git under macOS launchd (#5175)
|
2026-06-29 04:22:51 +00:00 |
|
Rod Boev
|
9d3f26a718
|
refactor(updates): drop unreachable agent restart fallback branch (#5156)
|
2026-06-29 03:44:06 +00:00 |
|
Rod Boev
|
31a443ff88
|
fix(health): preserve restart failure contract and proofs (#5156)
|
2026-06-29 03:44:06 +00:00 |
|
Rod Boev
|
8b22c20061
|
fix(tests): tighten stash reset proof for agent update (#5156)
|
2026-06-29 03:44:06 +00:00 |
|
Rod Boev
|
6d80dd41d6
|
fix(updates): restart gateway after in-app agent update (#5156)
|
2026-06-29 03:44:06 +00:00 |
|
Rod Boev
|
e0f8f61e03
|
test(#5152): anchor resolver assertion to the new helper
|
2026-06-28 19:44:38 -04:00 |
|
Rod Boev
|
4eb77da80e
|
Keep settings-search coverage anchored
|
2026-06-28 19:24:51 -04:00 |
|
Rod Boev
|
dfeb21da98
|
fix(tests): accept Windows venv layout in scripts/test.sh (#5152)
|
2026-06-28 19:17:19 -04:00 |
|
Rod Boev
|
ec00e037f3
|
fix(settings): widen busy-input settings search coverage (#5148)
|
2026-06-28 18:47:42 -04:00 |
|
Rod Boev
|
7153e8d78f
|
fix(extensions): prune malformed browser overrides (#5094)
|
2026-06-28 18:31:43 -04:00 |
|
Rod Boev
|
234fefe6ee
|
fix(#5139): keep timeout capability probes on the unsupported path
|
2026-06-28 18:29:37 -04:00 |
|
Rod Boev
|
aef8e524fd
|
fix(extensions): keep settings-only installs canonical (#5094)
|
2026-06-28 18:25:47 -04:00 |
|
Rod Boev
|
269d2e4d93
|
test(#5139): isolate the 404 warning regression from shared cache state
|
2026-06-28 18:23:20 -04:00 |
|
Rod Boev
|
23b7a7935a
|
fix(#5139): keep older gateways on the unsupported warning path
|
2026-06-28 18:18:47 -04:00 |
|
Rod Boev
|
46d91a7c61
|
fix(extensions): render installed controls from trusted state (#5094)
|
2026-06-28 18:15:36 -04:00 |
|
Rod Boev
|
938f721b16
|
fix(extensions): reload before editing untrusted installs (#5094)
|
2026-06-28 18:07:52 -04:00 |
|
Rod Boev
|
615b023eb0
|
fix(extensions): pin schemas to trusted bootstrap state (#5094)
|
2026-06-28 17:59:36 -04:00 |
|
Rod Boev
|
343a8b50bf
|
fix(#5139): distinguish offline gateway approval warnings
|
2026-06-28 17:53:37 -04:00 |
|
Rod Boev
|
cb96a5cf39
|
fix(extensions): trust only bootstrapped extension ids (#5094)
|
2026-06-28 17:51:42 -04:00 |
|
Rod Boev
|
07ed67a793
|
fix(extensions): keep runtime settings gated on owned storage (#5094)
|
2026-06-28 17:44:02 -04:00 |
|
Rod Boev
|
62be5b02ea
|
fix(#5135): clear stale gateway approval mirrors on stream teardown
|
2026-06-28 17:32:55 -04:00 |
|
Rod Boev
|
a76c794d6d
|
feat(extensions): add browser-local extension settings surface (#5094)
|
2026-06-28 17:28:20 -04:00 |
|
Rod Boev
|
2eeb0f0f53
|
fix(#5130): serialize profile-scoped snapshot repair
|
2026-06-28 16:03:25 -04:00 |
|
Rod Boev
|
fd139132b6
|
fix(#5130): harden cron snapshot repair follow-up
|
2026-06-28 15:56:50 -04:00 |
|
Rod Boev
|
7e806d7194
|
fix(#5130): recompute cron snapshots in selected profile
|
2026-06-28 15:29:40 -04:00 |
|
Rod Boev
|
4763c2a9a4
|
Keep null error fields from tripping replay failure
|
2026-06-28 15:22:33 -04:00 |
|
Rod Boev
|
8fbc3dcc9f
|
Preserve canonical provider error probes in auth terminal turns
|
2026-06-28 15:11:01 -04:00 |
|
Rod Boev
|
3e27a8bafe
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 14:23:08 -04:00 |
|
Rod Boev
|
3fafa3efc6
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 14:00:40 -04:00 |
|
Rod Boev
|
eb886836f5
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 13:37:18 -04:00 |
|
Rod Boev
|
ca4fe4e54b
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 13:26:57 -04:00 |
|
Rod Boev
|
5f02189939
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 13:18:32 -04:00 |
|
Rod Boev
|
6681bef796
|
fix(streaming): surface provider auth failures in chat (#5121)
|
2026-06-28 13:04:27 -04:00 |
|
Rod Boev
|
861c29b35b
|
fix(#4731): enlarge mobile message action tap targets
|
2026-06-28 06:41:16 +00:00 |
|
Rod Boev
|
fca1d4bf2b
|
chore(#5047): retrigger unrelated red shard
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
9b9ff4053f
|
fix(#5047): honor bounded refresh follower latency
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
6649db7041
|
fix(#5047): prevent sync refresh follower hangs
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
4f2bcada31
|
fix(#5047): keep sync refresh followers coalesced
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
8da4c7a334
|
fix(#5047): require live rebuild publication for refresh reuse
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
bcfec68c5c
|
fix(#5047): cover bounded refresh followers
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
53d44d3795
|
fix(#5047): coalesce session-visit refresh followers
|
2026-06-27 13:35:24 +00:00 |
|
Rod Boev
|
f65543f88e
|
fix(#5045): add memory-section hover path titles
|
2026-06-27 06:05:28 -04:00 |
|
Rod Boev
|
e621d7360a
|
test(#5000): keep gateway approval regressions CI-portable
|
2026-06-27 06:03:24 +00:00 |
|
Rod Boev
|
8f0cc7912b
|
fix(#5000): settle mirrored gateway approval cleanup
|
2026-06-27 06:03:24 +00:00 |
|
Rod Boev
|
5f1e308341
|
fix(#5000): relay mirrored gateway approvals after stream loss
|
2026-06-27 06:03:24 +00:00 |
|
Rod Boev
|
88911448ff
|
fix(#4706): keep onboarding picker state aligned after custom clear
|
2026-06-27 04:25:45 +00:00 |
|
Rod Boev
|
d0eb9b57df
|
fix(#4706): reuse the searchable model picker in onboarding
|
2026-06-27 04:25:45 +00:00 |
|
Rod Boev
|
1bff768c74
|
fix(#5021): preserve extra-model label contract
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
288cbb55bc
|
fix(#5021): keep boot model budget across restore paths
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
a18ddae930
|
fix(#5021): retry generic model auth after boot 401
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
7b5941dff9
|
test(#5021): harden boot redirect proof
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
576834a195
|
fix(#5021): keep restored-session boot inside the shared 401 budget
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
df1cb13cd5
|
fix(#5021): keep boot 401 budget out of later dropdown refreshes
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
0b9235c646
|
test(#5021): keep active-profile recovery harness aligned
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
79a92f0e3b
|
fix(#5021): bound boot model 401 recovery
|
2026-06-27 02:52:33 +00:00 |
|
Rod Boev
|
e22ad662b7
|
fix(#5022): keep corrupt auth state from bricking startup
|
2026-06-27 01:58:40 +00:00 |
|
Rod Boev
|
64db24c753
|
fix(#5022): keep malformed session loads fail-open
|
2026-06-27 01:58:40 +00:00 |
|
Rod Boev
|
da3b6666b2
|
test(#5022): cover wrong-type auth warning path
|
2026-06-27 01:58:40 +00:00 |
|
Rod Boev
|
3c4ef72a51
|
fix(#5022): surface auth persistence failures
|
2026-06-27 01:58:40 +00:00 |
|
Rod Boev
|
0aa4f6f8cd
|
fix(#4877): bind ephemeral blank boot workspace
|
2026-06-27 01:15:53 +00:00 |
|
Rod Boev
|
4ebe2980ca
|
fix(#4877): bind default workspace on fresh blank boot
|
2026-06-27 01:15:53 +00:00 |
|
Rod Boev
|
19b3ad0893
|
test(#4999): cover every memory path branch
|
2026-06-26 19:42:03 -04:00 |
|
Rod Boev
|
c4f87f24fb
|
test(#4999): decode node harness output as utf-8
|
2026-06-26 19:26:46 -04:00 |
|
Rod Boev
|
2b2452ba3d
|
test(#4999): skip node harness explicitly when node is unavailable
|
2026-06-26 19:17:25 -04:00 |
|
Rod Boev
|
e2e2182bc0
|
fix(#4999): show on-disk memory file paths
|
2026-06-26 19:14:36 -04:00 |
|
Rod Boev
|
13879cebe9
|
docs(workspace): clarify redirect401 401 contract (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
3722c37eb6
|
fix(boot): preserve api timeouts while deferring 401 redirect (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
4d727c2e24
|
fix(boot): keep active-profile recovery on one redirect path (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
44dacc5cf5
|
test(boot): drive the real recovery redirect guard (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
8c9335c916
|
test(boot): prove recovery redirects abort bootstrap continuation (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
c978bf5ad3
|
test(boot): cover recovery fallback guard branches (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
045bfc8636
|
fix(boot): restore boot-time profile sync after recovery guard (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
47d24524a1
|
fix(boot): recover boundedly from post-upgrade active-profile 401s (#5001)
|
2026-06-26 22:09:09 +00:00 |
|
Rod Boev
|
6cb55b5df8
|
Keep session cache invalidation signals live across the routes extraction
|
2026-06-26 18:36:07 +00:00 |
|
Rod Boev
|
47485b3a82
|
Preserve route-level cache overrides after helper extraction
|
2026-06-26 18:36:07 +00:00 |
|
Rod Boev
|
1bffabbfec
|
refactor(routes): extract session-list cache helpers from api/routes.py (#1907)
|
2026-06-26 18:36:07 +00:00 |
|
Rod Boev
|
9343c7ce6c
|
ci(tests): retrigger blocked checks after unrelated cache-test miss (#4945)
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
846e4f7495
|
test(#4945): exercise the full-table clipboard fallback
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
285f6a2408
|
fix(#4945): keep prose and partial table copies native
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
8c09c8dfde
|
fix(#4945): keep native copy for cell sub-selections
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
0256b98a3e
|
fix(#4945): sanitize mixed table selections during native copy
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
c74b135b99
|
fix(#4945): preserve native copy fallback when clipboard data is missing
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
63435e0523
|
fix(#4945): sanitize enhanced markdown table copy
|
2026-06-26 17:51:31 +00:00 |
|
Rod Boev
|
781223fa18
|
fix(agent): keep real checkouts ahead of pip-style lookalikes (#4700)
|
2026-06-26 17:15:03 +00:00 |
|
Rod Boev
|
998c88a7e1
|
test(#4700): tighten agent discovery regression wording
|
2026-06-26 17:15:03 +00:00 |
|
Rod Boev
|
b4dadc9939
|
fix(#4700): recognize nested pip-style agent roots
|
2026-06-26 17:15:03 +00:00 |
|
Rod Boev
|
b5d462812c
|
fix(#4700): recognize pip-style agent roots for cron imports
|
2026-06-26 17:15:02 +00:00 |
|
Rod Boev
|
f4c0064d16
|
test(providers): force Anthropic fallback tests past cached imports (#4770)
|
2026-06-26 15:34:59 +00:00 |
|
Rod Boev
|
06902d8038
|
fix(providers): detect Anthropic OAuth credentials in WebUI parity paths (#4770)
|
2026-06-26 15:34:59 +00:00 |
|
Rod Boev
|
b914f0bc88
|
test(mobile): anchor dashboard nav scope checks to the sidebar container (#4712)
|
2026-06-26 11:13:58 -04:00 |
|
Rod Boev
|
f36a427872
|
fix(models): make session-index rebuild thread ownership explicit (#3894)
|
2026-06-26 15:13:41 +00:00 |
|
Rod Boev
|
0c7b625104
|
fix(mobile): hide the dashboard rail link on narrow viewports (#4712)
|
2026-06-26 11:05:05 -04:00 |
|
Rod Boev
|
c071da4f5d
|
test(#4759): guard async harness extraction for sidebar refresh
|
2026-06-26 10:35:43 -04:00 |
|
Rod Boev
|
9cae66a1a0
|
test(#4759): keep sidebar harnesses aligned with helper extraction
|
2026-06-26 10:08:28 -04:00 |
|
Rod Boev
|
187931be8e
|
perf(#4759): parallelize fresh sidebar boot fetches
|
2026-06-26 10:08:28 -04:00 |
|