Repository navigation
feat(client): unified ArcticRLClient + on-prem Ray transport - #45
Conversation
bf2461f to
3f8ca13
Compare
Add the unified RL client frontend: a single op API (client.py) that lowers every op to a canonical Request(op, job_id, body), a Transport ABC with JobHandles/Request (transport.py), a backend config (config.py), and the shared OnPremTransport base with the in-process Ray transport (onprem.py, onprem_ray.py). ray_server.py accepts (job_id, body) on step/save_checkpoint/reset_prefix_cache so the client can forward uniformly. Includes tests/client/test_client_ops.py covering the op->Request mapping via a FakeTransport (no GPUs/backends needed). Co-authored-by: Cursor <cursoragent@cursor.com>
3f8ca13 to
407e255
Compare
|
Reviewed the whole three-PR stack end-to-end; full write-up on #47. Notes specific to this PR below. Ran the tests on this branch: 13/13 pass. DesignThe three-layer split — client owns op vocab + job resolution, Plan-level work this PR opens (details on #47 as P3 / P4)Merging this stack adds a second client with a different calling convention rather than replacing the first. AST scan: Every existing in-repo caller (the Related: ops present in Branch hygiene
Not blocking
None of these gate merge. |
|
@sfc-gh-mwyatt, I think the |
@sfc-gh-kganesan I think this is your agent doing something wrong because this is not the case. Ignored, but please confirm manually on your side if you think I'm wrong. |
@sfc-gh-kganesan Is there a reason to do reverse order? Has this been a problem with onprem deployments previously? |
Add the unified RL client frontend: a single op API (client.py) that lowers every op to a canonical Request(op, job_id, body), a Transport ABC with JobHandles/Request (transport.py), a backend config (config.py), and the shared OnPremTransport base with the in-process Ray transport (onprem.py, onprem_ray.py). ray_server.py accepts (job_id, body) on step/save_checkpoint/reset_prefix_cache so the client can forward uniformly.
Includes tests/client/test_client_ops.py covering the op->Request mapping via a FakeTransport (no GPUs/backends needed).