Rod Boev
|
dfeb21da98
|
fix(tests): accept Windows venv layout in scripts/test.sh (#5152)
|
2026-06-28 19:17:19 -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
|
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
|
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 |
|
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 |
|
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 |
|
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 |
|
Rod Boev
|
24cf7069a6
|
fix(#4536): persist OpenAI priority tier in main model settings
|
2026-06-26 01:46:57 +00:00 |
|
Rod Boev
|
3a406512b0
|
Retrigger stalled CI for transparent-stream follow-up
|
2026-06-25 21:11:56 +00:00 |
|
Rod Boev
|
5f1a2a07de
|
Keep settled transparent turns aligned with anchor-scene ownership
|
2026-06-25 21:11:56 +00:00 |
|
Rod Boev
|
bef89969ed
|
fix(chat): preserve recycle harness anchors after prose split (#3397)
|
2026-06-25 21:11:56 +00:00 |
|
Rod Boev
|
b590518cf4
|
fix(chat): preserve transparent stream prose order for mixed turns (#3397)
|
2026-06-25 21:11:55 +00:00 |
|
Rod Boev
|
779d46a1cf
|
fix(#4784): show the reload button outside standalone mode
|
2026-06-25 20:41:46 +00:00 |
|
Rod Boev
|
e67870caa5
|
test(#4771): align approval CI assertions with helper flow
|
2026-06-25 13:09:42 +00:00 |
|
Rod Boev
|
7d617d91f7
|
fix(#4771): block duplicate approval submits
|
2026-06-25 13:09:42 +00:00 |
|
Rod Boev
|
0b12b3b1fb
|
test(#4771): cover both approval rejection paths
|
2026-06-25 13:09:42 +00:00 |
|
Rod Boev
|
528fa72390
|
fix(#4771): keep gateway approval failures actionable
|
2026-06-25 13:09:42 +00:00 |
|
Rod Boev
|
235059265b
|
Remove unused Request import (ruff F401)
|
2026-06-25 04:21:50 +00:00 |
|
Rod Boev
|
ee7ff6ed33
|
fix(extensions): harden gallery against live registry and security review findings
|
2026-06-25 04:21:50 +00:00 |
|
Rod Boev
|
b75065e889
|
fix(extensions): serialize install extraction under lock and add registry cache lock (#4746)
|
2026-06-25 04:21:50 +00:00 |
|
Rod Boev
|
ddd5c8d936
|
feat(extensions): add gallery browse, install, and uninstall (#4746)
|
2026-06-25 04:21:50 +00:00 |
|
Rod Boev
|
b70949f484
|
fix(steer): rename typo, catch retry rejection, update JSDoc (#4749)
|
2026-06-25 03:23:36 +00:00 |
|