Devin AI
df3cdb255f
refactor(redis): move parked spend logs behind a typed store
2026-10-30 22:45:15 +00:00
Devin AI
f969987849
refactor(redis): move the spend update buffers behind a typed store
2026-10-30 22:41:38 +00:00
Devin AI
ffae582a50
refactor(redis): move MCP server manager caches behind a typed store
2026-10-30 22:30:56 +00:00
Devin AI
8907a63d78
test(redis): write the old-pod token fixture as raw wire bytes
2026-10-30 22:30:54 +00:00
Devin AI
35505f5df2
refactor(redis): move MCP per-user OAuth tokens behind a typed store
2026-10-30 22:21:24 +00:00
Devin AI
84adc800f6
refactor(redis): move the auth cache invalidation codec into a store module
2026-10-30 21:53:34 +00:00
Devin AI
2d1d5e92fb
refactor(redis): move config sync pub/sub behind a typed store
2026-10-30 21:51:27 +00:00
Devin AI
47db6b2ead
refactor(redis): move batch charge markers behind a typed store
2026-10-30 21:44:23 +00:00
Devin AI
5733bbc834
refactor(redis): move Claude session router bindings behind a typed store
2026-10-30 21:16:14 +00:00
Devin AI
11befbda31
refactor(redis): move global router usage behind a typed store
2026-10-30 21:16:14 +00:00
Devin AI
d661f655b8
refactor(redis): move scheduler queue snapshots behind a typed store
2026-10-30 21:13:01 +00:00
Devin AI
99f3ec1838
refactor(redis): migrate agent MCP permission links to typed store
2026-10-30 21:13:01 +00:00
Devin AI
e03e42fedd
refactor(redis): migrate user MCP permission links to typed store
2026-10-30 21:13:01 +00:00
Devin AI
06affb432f
refactor(redis): isolate managed object metadata store
2026-10-30 21:13:01 +00:00
Devin AI
90b8da7dca
refactor(redis): isolate managed vector resource metadata store
2026-10-30 21:13:00 +00:00
Devin AI
18ce857411
refactor(redis): isolate managed file metadata store
2026-10-30 21:13:00 +00:00
Devin AI
39d0fcc26c
fix(redis): preserve shared health seconds expiry
2026-10-30 20:28:44 +00:00
Devin AI
69a516138e
refactor(redis): extract shared health store
2026-10-30 19:41:20 +00:00
Devin AI
0b0fcd06de
fix(redis): send MCP marker and refresh lock scripts with plain EVAL
2026-10-30 19:40:36 +00:00
Devin AI
fa70556719
feat(redis): expose existing command batch lifecycle hooks
2026-10-30 19:29:26 +00:00
Devin AI
99726e881d
feat(redis): add explicit non-retrying direct eval transport
2026-10-30 19:29:26 +00:00
Devin AI
50c756de06
fix(redis): preserve failure provenance and strict batch policy
2026-10-30 19:29:26 +00:00
Devin AI
5b7f7125c2
feat(redis): add native seconds transport expiry commands
2026-10-30 19:29:09 +00:00
Devin AI
d373b499df
test(redis): exercise strict import boundaries with Ruff
2026-10-30 19:09:46 +00:00
Devin AI
42e6169dc4
test(redis): retain enqueued reservation codec coverage
2026-10-30 19:09:43 +00:00
Devin AI
f9fa29b0b0
test(redis): retain MCP marker failure and wire compatibility
2026-10-30 18:38:31 +00:00
Devin AI
d73aff25a4
test(redis): retain refresh lock compatibility coverage
2026-10-30 18:35:36 +00:00
Devin AI
d9e1399363
build(redis): guard the redis-py import boundary
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:28 +00:00
Yujong Lee
3c1b5749d2
refactor(redis-store): enqueued-token store encodes and decodes the reservation record
2026-10-30 18:26:28 +00:00
Devin AI
bceb75d727
refactor(redis-store): migrate batch enqueued-token accounting
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:28 +00:00
Devin AI
bb2fe927cd
refactor(redis-store): move session iteration counts behind a store
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:27 +00:00
Yujong Lee
04b9b45914
fix(redis-store): session spend reads keep main's outcome per failure kind
2026-10-30 18:26:26 +00:00
Devin AI
a838a5a503
refactor(redis-store): move session budgets behind a store
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:26 +00:00
Yujong Lee
ca87d4e6e3
refactor(redis-store): login throttle store takes the source group and username, not keys
2026-10-30 18:26:26 +00:00
Devin AI
e0c2ec6522
refactor(redis-store): move login throttling behind a store
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:26 +00:00
Yujong Lee
b8e43df44b
refactor(redis-store): refresh locks take a user and server target, the store owns the key
2026-10-30 18:26:25 +00:00
Devin AI
89d9a7649e
refactor(redis-store): migrate MCP credential refresh locks
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:25 +00:00
Yujong Lee
1e6d4d265b
refactor(redis-store): single-use markers own their keys, callers pass the marker
2026-10-30 18:26:25 +00:00
Devin AI
a42177a644
refactor(redis-store): migrate MCP single-use markers
...
Co-authored-by: Yujong Lee <yujong@berri.ai>
2026-10-30 18:26:25 +00:00
Yujong Lee
01038214d3
fix(redis-store): keep the GET+DEL release fallback when the pod lock script cannot run
2026-10-30 18:26:25 +00:00
Yujong Lee
1bd2ff7e63
refactor(redis-store): move the pod lock keyspace behind a store
...
Cron job locks now go through the shared Redis transport behind TransportPodLockStore, which owns the lock keys, the owner codec and the compare-and-delete release script. PodLockManager.is_held replaces the three direct lock reads in the budget reset, PTU rollup and spend capture-rate jobs and owns the rule that an unreadable lock counts as unheld. Old and new pods respect each other's locks
2026-10-30 18:26:25 +00:00
Yujong Lee
911ddf8ead
fix(redis-store): keep main's polling bytes and per-failure outcomes
2026-10-30 18:26:24 +00:00
Yujong Lee
59b04e1c9f
refactor(redis-store): move response polling state behind a store
...
Background response polling state now goes through the shared Redis transport behind TransportResponsePollingStore, which owns the keys, codec and expiry. The wire format is kept byte for byte so old and new pods read each other's state
2026-10-30 18:26:24 +00:00
Yujong Lee
2a964a58d0
docs(skills): stores take domain inputs, callers keep per-kind failure outcomes
Cost map pins recheck / rerun-cost-map-guard (push) Has been cancelled
LiteLLM Rust DB / db-queries (push) Has been cancelled
LiteLLM Rust / rust-lint (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
2026-10-30 18:26:24 +00:00
Yujong Lee
6a208ed271
feat(redis): cover every Python Redis use on the transport
...
The transport now has every data command Python sends, request-scoped and
explicit batches on the one pipeline engine RedisBatch already used,
MULTI/EXEC batches, pub/sub, and the admin and health commands. RedisBatch
declares onto the same engine, so moved and unmoved callers in one request
still share one round trip. Cluster mget goes through the cache's
mget_nonatomic path instead of a cross-slot MGET.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:26:24 +00:00
Yujong Lee
77129e4f92
refactor(redis): move the response polling store into its own PR
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:26:24 +00:00
Yujong Lee
2c69496b96
docs(skills): inline redis-access migration order
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:26:24 +00:00
Yujong Lee
2db8c2ef94
docs(skills): make redis-access skill standalone
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 18:26:24 +00:00
Devin AI
1b379855c1
test(redis): isolate the no-callback transport case
2026-10-30 18:26:24 +00:00
Devin AI
facaebccb2
fix(redis): register transport tests and pass CI gates
2026-10-30 18:26:23 +00:00