Description Already Opened PRs
Miles
Fix typo environment variable and unbuffer python outputs #1895 Fix typo environment variable and unbuffer python outputs
Add a shell launch script test harness for future protection #1896 Add a shell launch script test harness for future protection
Fix various launch scripts errors about missing line concatenations or paths #1897 Fix various launch scripts errors about missing line concatenations or paths
Derive the miles checkout location instead of hardcoding it in launch scripts #1898 Derive the miles checkout location instead of hardcoding it in launch scripts
Snapshot the external commands of every shell launch script #1899 Snapshot the external commands of every shell launch script
Read the slurm allocation when the train config is built #1900 Read the slurm allocation when the train config is built
Snapshot the commands and generated configs of every python launch script #1901 Snapshot the commands and generated configs of every python launch script
Cover the public surface of command_utils with unit tests #1902 Cover the public surface of command_utils with unit tests
Rename exec_command by the resource its command needs #1903 Rename exec_command by the resource its command needs
Move the shell exec helpers next to their only consumers #1904 Move the shell exec helpers next to their only consumers
Remove non-reproducible file arguments by supporting inline base64 payloads #1905 Remove non-reproducible file arguments by supporting inline base64 payloads
Snapshot the launchers that build their own command line #1906 Snapshot the launchers that build their own command line
Fix p2p profile's rotary_base not reaching the model script it configures #1907 Fix p2p profile's rotary_base not reaching the model script it configures
Snapshot test the argv of all model scripts #1908 Snapshot test the argv of all model scripts
Expand the model args in python before building the command #1909 Expand the model args in python before building the command
Replace the model config shell scripts with python #1910 Replace the model config shell scripts with python
Quote the model args miles inlines into the launch command #1911 Quote the model args miles inlines into the launch command
Run the launch script snapshot tests by hand instead of in CI #2279 Run the launch script snapshot tests by hand instead of in CI
[~] Add a cli.py for the miles-workbench chart #2195 Add a cli.py for the miles-workbench chart (closed without merging)
[~] Compute a served worker's ctor kwargs inside its own actor #2312 Compute a served worker's ctor kwargs inside its own actor (closed without merging)
remove duplicated field in actor group, unify dashboard hook guard, and change init order #1838 remove duplicated field in actor group, unify dashboard hook guard, and change init order
Clear the new-engine flag from the driver #1839 Clear the new-engine flag from the driver
Extract future inference engine hooks on generation and eval #1840 Extract future inference engine hooks on generation and eval
Make the CI fault injection wait asynchronously to avoid long blocking #1841 Make the CI fault injection wait asynchronously to avoid long blocking
Split RolloutManager into InferenceController and RolloutExecutor #1842 Split RolloutManager into InferenceController and RolloutExecutor
Wire up InferenceController and RolloutExecutor and make the controller API async #1843 Wire up InferenceController and RolloutExecutor and make the controller API async
Rename RolloutExecutor.generate to get for future async and multi trainer scenarios #1844 Rename RolloutExecutor.generate to get for future async and multi trainer scenarios
Support saving and loading for rollout functions and add a BaseRolloutFn base class #1845 Support saving and loading for rollout functions and add a BaseRolloutFn base class
Fix data source being loaded without saved #1846 Fix data source being loaded without saved
Delete the rollout health monitor ahead of its rewrite #1847 Delete the rollout health monitor ahead of its rewrite
Drop the node_rank guards and access only node-0 engines #1848 Drop the node_rank guards and access only node-0 engines
Extract the router registration into SGLangRouterApiClient #1849 Extract the router registration into SGLangRouterApiClient
Move mechanically the http-forwarding code out of SGLangEngine into SGLangApiClient #1850 Move mechanically the http-forwarding code out of SGLangEngine into SGLangApiClient
Make SGLangApiClient a real client and SGLangEngine a thin shell over it #1851 Make SGLangApiClient a real client and SGLangEngine a thin shell over it
Add a general httpx client provider to http_utils #1852 Add a general httpx client provider to http_utils
Make SGLangApiClient an async worker handle over httpx #1853 Make SGLangApiClient an async worker handle over httpx
Make the rollout-side offload/onload fan-out async to avoid blocking sync code #1854 Make the rollout-side offload/onload fan-out async to avoid blocking sync code
Add the sync-to-async bridge for fire-then-rendezvous call sites #1855 Add the sync-to-async bridge for fire-then-rendezvous call sites
Extract the engine url formatting for reusing #1856 Extract the engine url formatting for reusing
Avoid infinite engine teardown blocking orchestration logic #1857 Avoid infinite engine teardown blocking orchestration logic
Avoid using SGLangEngine actor to call SGLang APIs and directly call in rollout process #1858 Avoid using SGLangEngine actor to call SGLang APIs and directly call in rollout process
Pass concrete values into SGLangApiClient instead of reading them from args #1859 Pass concrete values into SGLangApiClient instead of reading them from args
Pause health monitoring before snapshotting the updatable engines to fix racing condition #1860 Pause health monitoring before snapshotting the updatable engines to fix racing condition
Directly call SGLang engines instead of via ray actors in trainers and remove SGLangEngine shells #1861 Directly call SGLang engines instead of via ray actors in trainers and remove SGLangEngine shells
Synchronize disk-delta baseline reloads across trainer ranks #2500 Synchronize disk-delta baseline reloads across trainer ranks
Register the engines with the router from the rollout process instead of ray actors #1862 Register the engines with the router from the rollout process instead of ray actors
Remove dead ServerGroup.onload_weights_from_disk #1863 Remove dead ServerGroup.onload_weights_from_disk
Introduce ServerCell and store the group's engines as cells #1864 Introduce ServerCell and store the group's engines as cells
Make ServerGroup callers cell-aware and drop the all_engines property #1865 Make ServerGroup callers cell-aware and drop the all_engines property
Move vanilla methods onto ServerCell #1866 Move vanilla methods onto ServerCell
Move engine teardown into ServerCell.stop #1867 Move engine teardown into ServerCell.stop
Extract the Ray actor construction into launch_sglang_ray_actor #1868 Extract the Ray actor construction into launch_sglang_ray_actor
Drive the recover offload off the engines that actually started #1869 Drive the recover offload off the engines that actually started
Switch cell start/stop/recover from engine indices to cell indices #1870 Switch cell start/stop/recover from engine indices to cell indices
Rename PortCursors to PortAllocator and key it by the node's ip #1871 Rename PortCursors to PortAllocator and key it by the node's ip
Add PortAllocator.alloc and thread the shared allocator through allocation #1872 Add PortAllocator.alloc and thread the shared allocator through allocation
Serve HTTP from the mock engine on its allocated port #1873 Serve HTTP from the mock engine on its allocated port
Raise for external rollout mode before launching actors #1874 Raise for external rollout mode before launching actors
Refactor to remove allocate_rollout_engine_addr_and_ports_normal #1875 Refactor to remove allocate_rollout_engine_addr_and_ports_normal
Make start_engines async and await engine init inside it #1876 Make start_engines async and await engine init inside it
Restructure start_engines into per-cell blocks and assume engines in one cell have same lifecycle #1877 Restructure start_engines into per-cell blocks and assume engines in one cell have same lifecycle
Move per-cell engine startup into ServerCell.start_engines #1878 Move per-cell engine startup into ServerCell.start_engines
Sink the startup config from ServerGroup into ServerCell #1879 Sink the startup config from ServerGroup into ServerCell
Address workers by cell index and let the cell describe itself to the router #1880 Address workers by cell index and let the cell describe itself to the router
Move per-cell recovery into ServerCell.recover #1881 Move per-cell recovery into ServerCell.recover
Move has_new_engines to RolloutServer #1882 Move has_new_engines to RolloutServer
Delete ServerGroup and let RolloutServer own a flat list of cells #1883 Delete ServerGroup and let RolloutServer own a flat list of cells
Extract the rollout cell state machine into cell_state.py #1884 Extract the rollout cell state machine into cell_state.py
Drive the cell state machine through whole-cell transitions #1885 Drive the cell state machine through whole-cell transitions
Lift the state machine onto ServerCell and delete ServerEngine #1886 Lift the state machine onto ServerCell and delete ServerEngine
Key a server's cells by a globally unique string id instead of numerical indices #1887 Key a server's cells by a globally unique string id instead of numerical indices
Start the rollout engines without blocking the caller #1888 Start the rollout engines without blocking the caller
Probe every node of a cell concurrently to avoid serialized initialization #1889 Probe every node of a cell concurrently to avoid serialized initialization
Update the mechanical-refactor-verify skill to the latest sglang version #1890 Update the mechanical-refactor-verify skill to the latest sglang version
Store per-token weight version spans per generation call on Sample #1891 Store per-token weight version spans per generation call on Sample
Load rollout dumps written before per-call weight version spans #1892 Load rollout dumps written before per-call weight version spans
Temporarily publish the weight version when no weight update can carry it #1893 Temporarily publish the weight version when no weight update can carry it
Add assertions to reject training data generated under the sglang default weight version #1894 Add assertions to reject training data generated under the sglang default weight version
Give every launch a machine-readable run uuid #1970 Give every launch a machine-readable run uuid
Make the structured log prefix a caller-supplied tag #1940 Make the structured log prefix a caller-supplied tag
Move load_function into miles.utils.function_registry #1941 Move load_function into miles.utils.function_registry
Implement a worker RPC server that submits a call and polls for its outcome #1942 Implement a worker RPC server that submits a call and polls for its outcome
Implement a typed RPC client handle #1943 Implement a typed RPC client handle
Support sync worker methods on per-group executor threads #1944 Support sync worker methods on per-group executor threads
Retry a submit only when it provably never reached the server #1945 Retry a submit only when it provably never reached the server
Long-poll from the client and tolerate a blip mid-poll #1946 Long-poll from the client and tolerate a blip mid-poll
Refuse a duplicate call id with 409 instead of running it twice #1947 Refuse a duplicate call id with 409 instead of running it twice
Pin a client to one server process with a boot uuid #1948 Pin a client to one server process with a boot uuid
Carry rich argument and result types and refuse ambiguous signatures #1949 Carry rich argument and result types and refuse ambiguous signatures
Support non-finite floats across the wire #1950 Support non-finite floats across the wire
Support worker env vars before importing the server #1951 Support worker env vars before importing the server
Expire finished calls that were never retrieved #1952 Expire finished calls that were never retrieved
Add a FIFO ticket lock over a torch.distributed store #2143 Add a FIFO ticket lock over a torch.distributed store
Guard the broadcast weight update with a store ticket lock to remove Ray based locks #2144 Guard the broadcast weight update with a store ticket lock to remove Ray based locks
Rename control_server to api_server for general purpose #1971 Rename control_server to api_server for general purpose
Shrink the miles router input from full args to a required-field config #1972 Shrink the miles router input from full args to a required-field config
Avoid session server input using full args #1973 Avoid session server input using full args
Add the config and argv boundaries converter #1974 Add the config and argv boundaries converter
Add launch_bound_subprocess with binding a child's lifetime to its parent #1975 Add launch_bound_subprocess with binding a child's lifetime to its parent
Launch the sgl and miles routers as command-line subprocesses #1976 Launch the sgl and miles routers as command-line subprocesses
Refactor session servers to be launched as command-line subprocesses #1977 Refactor session servers to be launched as command-line subprocesses
Add worker specs describing how each worker kind is launched #1978 Add worker specs describing how each worker kind is launched
Add CommandActor that binds its lifetime to a launched subprocess #1979 Add CommandActor that binds its lifetime to a launched subprocess
Build the dashboard engine topology on the driver instead of the actor #1980 Build the dashboard engine topology on the driver instead of the actor
Delete the external-engine path from SGLangEngine #1981 Delete the external-engine path from SGLangEngine
Add the sglang server argv boundary with a mandatory production roundtrip #1982 Add the sglang server argv boundary with a mandatory production roundtrip
Render the sglang server and router argv through one renderer #2304 Render the sglang server and router argv through one renderer
Dissolve RayActor and probe workers through NodeProbeMixin #1983 Dissolve RayActor and probe workers through NodeProbeMixin
Bracket ipv6 addressing where it is built instead of in engine init #1984 Bracket ipv6 addressing where it is built instead of in engine init
Launch sglang engines as command subprocesses under CommandActor #1985 Launch sglang engines as command subprocesses under CommandActor
Forbid positional arguments when constructing ray actors #1986 Forbid positional arguments when constructing ray actors
Move PortAllocator into miles.utils.workers #1987 Move PortAllocator into miles.utils.workers
Launch the routers and session servers through head-pinned command actors #1988 Launch the routers and session servers through head-pinned command actors
Add a skeleton RayWorkerManager and a wiring entry point #1989 Add a skeleton RayWorkerManager and a wiring entry point
Move sglang config resolution into sglang_config.py #1990 Move sglang config resolution into sglang_config.py
Cover sglang config parsing with unit tests through resolve_sglang_config #1991 Cover sglang config parsing with unit tests through resolve_sglang_config
Resolve the sglang config at construction time instead of mid-run #1992 Resolve the sglang config at construction time instead of mid-run
Parse the raw sglang config into a dedicated pydantic model #1993 Parse the raw sglang config into a dedicated pydantic model
Convert the resolved sglang config to pydantic models #1994 Convert the resolved sglang config to pydantic models
Move needs_offload and overrides into sglang config resolution #1995 Move needs_offload and overrides into sglang config resolution
Drop external router and fixed router ip mode #1996 Drop external router and fixed router ip mode
Add worker specs for the sglang and miles routers #1997 Add worker specs for the sglang and miles routers
Derive session server instance ids from the run uuid and index #1998 Derive session server instance ids from the run uuid and index
Implement a worker spec for the session server #1999 Implement a worker spec for the session server
Use SGLANG_DG_CACHE_DIR_PER_PROCESS instead of hand-built cache dirs #2000 Use SGLANG_DG_CACHE_DIR_PER_PROCESS instead of hand-built cache dirs
Delete the unused get_base_gpu_id function #2001 Delete the unused get_base_gpu_id function
Stop passing a random seed and let each sglang engine pick its own #2002 Stop passing a random seed and let each sglang engine pick its own
Pass node_rank instead of rank when computing the engine launch command #2003 Pass node_rank instead of rank when computing the engine launch command
Extract compute_inference_engine_env_vars and forbid compute_server_args defaults #2004 Extract compute_inference_engine_env_vars and forbid compute_server_args defaults
Derive the engine api key from the model config #2005 Derive the engine api key from the model config
Launch inference engines through the inference engine worker spec #2006 Launch inference engines through the inference engine worker spec
Rename PortAllocator internals and pass the actor positionally #2048 Rename PortAllocator internals and pass the actor positionally
Start dynamic worker ports above Ray's worker range #2501 Start dynamic worker ports above Ray's worker range
Add a worker provider abstraction over RayWorkerManager #2049 Add a worker provider abstraction over RayWorkerManager
Stop checking actor liveness while waiting for a tcp port #2050 Stop checking actor liveness while waiting for a tcp port
Launch the sgl and miles routers through RayWorkerManager #2051 Launch the sgl and miles routers through RayWorkerManager
Support pinning workers to the head node in worker manager #2052 Support pinning workers to the head node in worker manager
Drop support of configurable session server ip and port #2053 Drop support of configurable session server ip and port
Launch session servers through RayWorkerManager #2054 Launch session servers through RayWorkerManager
Let the session servers sit on more than one host #2305 Let the session servers sit on more than one host
Support master-mode ports in RayWorkerManager #2055 Support master-mode ports in RayWorkerManager
Extract the placement group types handed to RayWorkerManager #2056 Extract the placement group types handed to RayWorkerManager
Support placement groups and gpu ids in RayWorkerManager #2057 Support placement groups and gpu ids in RayWorkerManager
Restructure RayWorkerManager around group and cell managers #2058 Restructure RayWorkerManager around group and cell managers
Support stopping a cell in RayWorkerManager #2059 Support stopping a cell in RayWorkerManager
Keep one addr_info per cell and read the engine topology from RayWorkerManager #2060 Keep one addr_info per cell and read the engine topology from RayWorkerManager
Remove temporarily the engine env report #2061 Remove temporarily the engine env report
Remove server liveness check in health waiting #2062 Remove server liveness check in health waiting
Launch inference engines from RayWorkerManager and reduce cells to bookkeeping #2063 Launch inference engines from RayWorkerManager and reduce cells to bookkeeping
Remove rollout engine recovery to be rewritten later #2064 Remove rollout engine recovery to be rewritten later
Remove the unnecessary debug_train_only guard when starting cells #2065 Remove the unnecessary debug_train_only guard when starting cells
Extract the immutable ServerCell metadata to avoid constructing ServerCell later #2066 Extract the immutable ServerCell metadata to avoid constructing ServerCell later
Refactor start semantics to add semantics for cells #2067 Refactor start semantics to add semantics for cells
Change stopping cells to dynamic removal #2068 Change stopping cells to dynamic removal
Remove the now-unused stopped cell state #2069 Remove the now-unused stopped cell state
Rename the remaining cell start and stop wording to add and dispose #2070 Rename the remaining cell start and stop wording to add and dispose
Fix the redundant model_path check when deciding whether a cell takes weights #2081 Fix the redundant model_path check when deciding whether a cell takes weights
Trim ServerCellMetadata down to the fields a cell actually needs #2082 Trim ServerCellMetadata down to the fields a cell actually needs
Add cell watching to the worker provider #2083 Add cell watching to the worker provider
Drive the rollout server cells from reconcile against the worker provider #2084 Drive the rollout server cells from reconcile against the worker provider
Unify the memory release and resume performed when a colocated cell starts #2085 Unify the memory release and resume performed when a colocated cell starts
Inline the router registration helpers and hold the router client on the cell #2086 Inline the router registration helpers and hold the router client on the cell
Remove the always-true is_allocated flag from ServerCell #2087 Remove the always-true is_allocated flag from ServerCell
Restructure the rollout cell states while keeping the current behavior #2088 Restructure the rollout cell states while keeping the current behavior
Rename the update weights window entry points to start and end update weights #2089 Rename the update weights window entry points to start and end update weights
Mark cell weights ready only once the update weights window closes #2090 Mark cell weights ready only once the update weights window closes
Support disposing a rollout cell from any intermediate state #2091 Support disposing a rollout cell from any intermediate state
Extract the weight update connection status into ConnStatusManager #2092 Extract the weight update connection status into ConnStatusManager
Give the fsdp backend its own connection status manager #2093 Give the fsdp backend its own connection status manager
Detect engine reconnection from a snapshot of the rollout cell hashes #2094 Detect engine reconnection from a snapshot of the rollout cell hashes
Allocate an out-of-band gate port for every inference engine cell #2095 Allocate an out-of-band gate port for every inference engine cell
Launch sglang engines gated and release them once they are running #2096 Launch sglang engines gated and release them once they are running
Add a periodic tick sweep over the rollout cells #2097 Add a periodic tick sweep over the rollout cells
Rebuild the rollout cell around an explicit five-state machine #2098 Rebuild the rollout cell around an explicit five-state machine
Initialize colocated engines only inside the weight update window #2099 Initialize colocated engines only inside the weight update window
Wait for the expected fleet before the first rollout starts #2100 Wait for the expected fleet before the first rollout starts
Add a context lock with a with_lock decorator #2101 Add a context lock with a with_lock decorator
Add lock exemption and enforcement checkers to the context lock #2102 Add lock exemption and enforcement checkers to the context lock
Add a requires_lock decorator to ensure lock is being held #2103 Add a requires_lock decorator to ensure lock is being held
Add acquires_lock and releases_lock for split lock windows #2104 Add acquires_lock and releases_lock for split lock windows
Remind periodically while a context lock acquisition is blocked #2105 Remind periodically while a context lock acquisition is blocked
Reject context lock decorators on classes that forgot enforce_lock_discipline #2106 Reject context lock decorators on classes that forgot enforce_lock_discipline
Support temporarily releasing the context lock #2107 Support temporarily releasing the context lock
Track the context lock grant by generation instead of identity #2306 Track the context lock grant by generation instead of identity
Guard the inference controller and its servers with ContextLock #2108 Guard the inference controller and its servers with ContextLock
Reuse SimpleHealthCheckerConfig for the rollout health check arguments #2109 Reuse SimpleHealthCheckerConfig for the rollout health check arguments
Drive health checking from a pulled activeness predicate #2110 Drive health checking from a pulled activeness predicate
Give each rollout cell a health checker driven by its own state #2111 Give each rollout cell a health checker driven by its own state
Add start and stop of individual cells to RayWorkerManager #2112 Add start and stop of individual cells to RayWorkerManager
Extract the health condition mapping onto CellCondition #2113 Extract the health condition mapping onto CellCondition
Let the controller report cell status #2114 Let the controller report cell status
Serve rollout cells over the api server #2115 Serve rollout cells over the api server
Resolve api server cells per request instead of at startup #2116 Resolve api server cells per request instead of at startup
Open the api server and the healing loop with --use-fault-tolerance #2307 Open the api server and the healing loop with --use-fault-tolerance
Delete the pre-reconcile engine recovery #2117 Delete the pre-reconcile engine recovery
Let a rollout cell be crashed on demand #2118 Let a rollout cell be crashed on demand
Generalize the ft soak harness beyond trainer cells #2119 Generalize the ft soak harness beyond trainer cells
Crash rollout engines from the soak harness instead of the controller #2120 Crash rollout engines from the soak harness instead of the controller
Discard stale health probe results instead of cancelling them #2308 Discard stale health probe results instead of cancelling them
Restructure the v1 train group around one keyword dispatch path #2146 Restructure the v1 train group around one keyword dispatch path
Dispatch to trainer actors with keyword arguments only #2147 Dispatch to trainer actors with keyword arguments only
Fail fast and preserve the cause when no trainer cell can recover #2148 Fail fast and preserve the cause when no trainer cell can recover
Report lifecycle failures instead of silently continuing without cells #2149 Report lifecycle failures instead of silently continuing without cells
Return one train step output type from every trainer backend and scenario #2150 Return one train step output type from every trainer backend and scenario
Return one train result per worker from the cell based train group #2151 Return one train result per worker from the cell based train group
Support external data in the cell based train group #2152 Support external data in the cell based train group
Support multi-LoRA adapter reconciliation in trainer v2 #2153 Support multi-LoRA adapter reconciliation in trainer v2
Make the cell based train group the only trainer implementation #2154 Make the cell based train group the only trainer implementation
Assign the trainer master address from the driver instead of rank zero #2155 Assign the trainer master address from the driver instead of rank zero
Extract the shared actor creation and port allocation in the worker manager #2156 Extract the shared actor creation and port allocation in the worker manager
Give worker specs a launch context and serve mode scheduling options #2157 Give worker specs a launch context and serve mode scheduling options
Launch serve mode workers from RayWorkerManager #2158 Launch serve mode workers from RayWorkerManager
Add worker specs for the trainer actor and critic #2159 Add worker specs for the trainer actor and critic
Inline the fault-tolerance concurrency groups onto the trainer actor #2160 Inline the fault-tolerance concurrency groups onto the trainer actor
Launch trainer actors through RayWorkerManager #2161 Launch trainer actors through RayWorkerManager
Delete the trainer actor factory and the placement group plumbing #2162 Delete the trainer actor factory and the placement group plumbing
Restart trainer cells through RayWorkerManager #2163 Restart trainer cells through RayWorkerManager
Drive trainer cell bookkeeping from the worker provider #2164 Drive trainer cell bookkeeping from the worker provider
Wait for the expected number of trainer cells at startup #2165 Wait for the expected number of trainer cells at startup
Serve trainer cells over the api server like the rollout cells #2166 Serve trainer cells over the api server like the rollout cells
Key the trainer cells by cell id instead of cell index #2167 Key the trainer cells by cell id instead of cell index
Suspend trainer cells through the worker manager like the rollout cells #2168 Suspend trainer cells through the worker manager like the rollout cells
Remove trainer cells that the provider stops reporting #2169 Remove trainer cells that the provider stops reporting
Address FT test action targets by explicit cell id #2309 Address FT test action targets by explicit cell id
Remove the now-unused stopped trainer cell state #2170 Remove the now-unused stopped trainer cell state
Remove the pending state in trainer cells #2171 Remove the pending state in trainer cells
Merge the now duplicated actor and rollout cell handlers #2172 Merge the now duplicated actor and rollout cell handlers
Kill failed trainer workers through their own RPC channel instead of the manager #2173 Kill failed trainer workers through their own RPC channel instead of the manager
Add a ray worker handle with death confirmation #2174 Add a ray worker handle with death confirmation
Route all trainer worker calls through the worker handle instead of Ray handles #2175 Route all trainer worker calls through the worker handle instead of Ray handles
Point the GLM recipes at the model args module #2310 Point the GLM recipes at the model args module
Stop the fast suite from starting its own ray clusters and leaking accelerators #2311 Stop the fast suite from starting its own ray clusters and leaking accelerators
Publish the new weight version to the rollout executor #2502 Publish the new weight version to the rollout executor
Assert that the rollout executor keeps receiving weight versions #2470 Assert that the rollout executor keeps receiving weight versions
Fail the run when the FT api server cannot start #2471 Fail the run when the FT api server cannot start
Run the weight equality check before leaving StateInitializing #2472 Run the weight equality check before leaving StateInitializing
Bound and wrap the free-port scan #2473 Bound and wrap the free-port scan
Report a rollout cell stuck initializing as unhealthy #2474 Report a rollout cell stuck initializing as unhealthy
Let workers deregister from the miles router #2475 Let workers deregister from the miles router
Temporarily remove vanilla fault tolerance for the eval fleet #2497 Temporarily remove vanilla fault tolerance for the eval fleet
Rename the trainer group and cell to TrainerController and TrainerCell #2176 Rename the trainer group and cell to TrainerController and TrainerCell
Add a self-provisioned Kubernetes apiserver test environment #2177 Add a self-provisioned Kubernetes apiserver test environment
Add a kind cluster test environment for Kubernetes testing #2178 Add a kind cluster test environment for Kubernetes testing
Add a level-triggered reconcile loop over a source stream #2179 Add a level-triggered reconcile loop over a source stream
Synthesize deletions when a relist replaces the store #2180 Synthesize deletions when a relist replaces the store
Reopen a dying source stream and gate startup on the first listing #2181 Reopen a dying source stream and gate startup on the first listing
Retry a failed key with per-key exponential backoff #2182 Retry a failed key with per-key exponential backoff
Re-drive parents on a resync period #2183 Re-drive parents on a resync period
Add a Kubernetes LIST/WATCH adapter #2184 Add a Kubernetes LIST/WATCH adapter
Track pods with a reflector that manages its cursor #2185 Track pods with a reflector that manages its cursor
Document how the reconcile loop maps onto the Kubernetes Go stack #2186 Document how the reconcile loop maps onto the Kubernetes Go stack
Add a process supervisor for running several ranks in one container #2187 Add a process supervisor for running several ranks in one container
Add --cluster-backend flag to choose between Ray and Kubernetes native backend #2188 Add --cluster-backend flag to choose between Ray and Kubernetes native backend
Read the train parallel config from the driver to avoid cross-process handle passing #2189 Read the train parallel config from the driver to avoid cross-process handle passing
Skip the prometheus collector under the k8s backend #2190 Skip the prometheus collector under the k8s backend
Install kubectl and helm into the training image #2191 Install kubectl and helm into the training image
Lint every Helm chart from pre-commit and CI #2192 Lint every Helm chart from pre-commit and CI
Add the miles-common Helm library chart #2193 Add the miles-common Helm library chart
Add the miles-workbench Helm chart #2194 Add the miles-workbench Helm chart
Stop printing from the launch command layer #2414 Stop printing from the launch command layer
Turn command_utils into a package #2415 Turn command_utils into a package
Generate every chart's values schema from one set of python types #2416 Generate every chart's values schema from one set of python types
Let a checkout on shared storage override the code baked into the image #2417 Let a checkout on shared storage override the code baked into the image
Hand the workbench's own infra values to every run launched from it #2418 Hand the workbench's own infra values to every run launched from it
Give the namespace one account that may uninstall a run #2419 Give the namespace one account that may uninstall a run
Give the workbench the actions that talk to a cluster #2420 Give the workbench the actions that talk to a cluster
Ask the cluster what this account may do before installing anything #2421 Ask the cluster what this account may do before installing anything
Check the objects, the API and the namespace, and let the verdict gate the install #2422 Check the objects, the API and the namespace, and let the verdict gate the install
Give the workbench a command line #2423 Give the workbench a command line
Compute a served worker's ctor kwargs inside its own actor #2424 Compute a served worker's ctor kwargs inside its own actor
Let worker handles forward positional arguments #2313 Let worker handles forward positional arguments
Implement RpcWorkerHandle.wait_dead #2314 Implement RpcWorkerHandle.wait_dead
Annotate the controllers' and rollout executor's public methods #2315 Annotate the controllers' and rollout executor's public methods
Resolve router addresses once, before the controller is built #2316 Resolve router addresses once, before the controller is built
Wait for the session servers from the driver, not the controller #2317 Wait for the session servers from the driver, not the controller
Make get_cell_statuses async on both controllers #2318 Make get_cell_statuses async on both controllers
Make the inference controller an independent worker #2319 Make the inference controller an independent worker
Ship the actor-critic values handoff through the object store #2320 Ship the actor-critic values handoff through the object store
Release the critic's values on every path #2321 Release the critic's values on every path
Give the rpc layer a codec for an argparse Namespace #2322 Give the rpc layer a codec for an argparse Namespace
Set up the trainer controller's args-derived state in init() #2323 Set up the trainer controller's args-derived state in init()
Make the trainer controller an independent worker #2324 Make the trainer controller an independent worker
Make the rollout executor an independent worker #2325 Make the rollout executor an independent worker
Make the multi-LoRA async data source async #2326 Make the multi-LoRA async data source async
Make the multi-lora controller an independent worker #2327 Make the multi-lora controller an independent worker
Name the cell operations a backend has to provide #2328 Name the cell operations a backend has to provide
Give a worker's constructor the backend it runs on #2329 Give a worker's constructor the backend it runs on
Hand every worker the providers its spec names #2330 Hand every worker the providers its spec names
Give each model the router provider scoped to its own pool #2331 Give each model the router provider scoped to its own pool
Type the pods the reconcile loop reports #2332 Type the pods the reconcile loop reports
Mint the independent-DP quorum store in the trainer controller #2333 Mint the independent-DP quorum store in the trainer controller
Derive a cell's pod packing from the gpus a node has #2334 Derive a cell's pod packing from the gpus a node has
Answer static addresses from the chart's naming #2335 Answer static addresses from the chart's naming
Read an observed pod into a ParsedPod #2336 Read an observed pod into a ParsedPod
Project a cell's pods into workers and addresses #2337 Project a cell's pods into workers and addresses
Implement worker provider for dynamic Kubernetes scenarios #2338 Implement worker provider for dynamic Kubernetes scenarios
Support cell operations in Kubernetes #2339 Support cell operations in Kubernetes
Treat a pod under deletion as gone from its cell #2340 Treat a pod under deletion as gone from its cell
Assemble the kubernetes backend capability #2341 Assemble the kubernetes backend capability
Ship an object store reference the rpc layer can encode #2342 Ship an object store reference the rpc layer can encode
Run a kubernetes-backed driver against platform-created workers #2343 Run a kubernetes-backed driver against platform-created workers
Read a worker's own identity out of its pod #2344 Read a worker's own identity out of its pod
Build a pod's worker from the run its own argv describes #2345 Build a pod's worker from the run its own argv describes
Skip the values a CLI action cannot render #2425 Skip the values a CLI action cannot render
Make launching a training run a method on a backend object #2426 Make launching a training run a method on a backend object
Read and rewrite train argv through one small helper #2427 Read and rewrite train argv through one small helper
Let a launch carry the commands that prepare the machines it runs on #2428 Let a launch carry the commands that prepare the machines it runs on
Split the typer wrapper into pieces a second caller can reuse #2429 Split the typer wrapper into pieces a second caller can reuse
Let a launch script read its own config out of the environment #2430 Let a launch script read its own config out of the environment
Give every launch script the same three subcommands #2431 Give every launch script the same three subcommands
Have every launch script talk to a backend object #2432 Have every launch script talk to a backend object
Move the ray-only command helpers under the ray backend #2433 Move the ray-only command helpers under the ray backend
Start the mooncake master when a run asks for that object store #2434 Start the mooncake master when a run asks for that object store
Call a trainer pool a trainer engine #2435 Call a trainer pool a trainer engine
Add the miles-run chart and let it install a run's orchestrator #2436 Add the miles-run chart and let it install a run's orchestrator
Install a run's workers, one workload per kind of pool #2437 Install a run's workers, one workload per kind of pool
Compute a pool's chart entry from the worker spec that declares it #2438 Compute a pool's chart entry from the worker spec that declares it
Assemble a run's values from its specs and its launch plan #2439 Assemble a run's values from its specs and its launch plan
Write a run's verdict where the launcher can read it #2440 Write a run's verdict where the launcher can read it
Read a rendered manifest as objects rather than as a string #2441 Read a rendered manifest as objects rather than as a string
Run the orchestration script under a wrapper that publishes its verdict #2442 Run the orchestration script under a wrapper that publishes its verdict
Wait for a run's verdict from outside the cluster #2443 Wait for a run's verdict from outside the cluster
Report what the pods of a run are actually doing #2444 Report what the pods of a run are actually doing
Build a run's environment in one place before a second backend needs it #2445 Build a run's environment in one place before a second backend needs it
Install a training run into Kubernetes and wait for its verdict #2446 Install a training run into Kubernetes and wait for its verdict
Point a kubernetes run's api server at the orchestrator's own service #2447 Point a kubernetes run's api server at the orchestrator's own service
Run the mooncake master as part of the run that needs it #2448 Run the mooncake master as part of the run that needs it
Stream every container's logs while the run is going #2449 Stream every container's logs while the run is going
Announce the cluster events that explain a stuck run #2450 Announce the cluster events that explain a stuck run
Watch a run while it runs, and say how to look at it afterwards #2451 Watch a run while it runs, and say how to look at it afterwards
Collect the scene when a run fails, and let the workbench collect it too #2452 Collect the scene when a run fails, and let the workbench collect it too
Say which fields of an installed run a relaunch may change #2453 Say which fields of an installed run a relaunch may change
Let a relaunch change a run's size and nothing else #2454 Let a relaunch change a run's size and nothing else
Attach a relaunch to the verdict the installed run is already writing #2455 Attach a relaunch to the verdict the installed run is already writing
Remove the releases a previous ci run left behind #2456 Remove the releases a previous ci run left behind
Ship a run with the job that will uninstall it #2457 Ship a run with the job that will uninstall it
Arm the escape job once the run has reported its verdict #2458 Arm the escape job once the run has reported its verdict
Defuse the previous launch's escape job before installing over it #2459 Defuse the previous launch's escape job before installing over it
Pin what a typical run renders, and the commands one launch runs #2460 Pin what a typical run renders, and the commands one launch runs
Render a one-off command as a Job of the run chart #2461 Render a one-off command as a Job of the run chart
Extract the placeholder substitution the ray path does inline #2462 Extract the placeholder substitution the ray path does inline
Run a command in the cluster the same way a run is launched #2463 Run a command in the cluster the same way a run is launched
Compute which engine pod pairs with which trainer pod #2464 Compute which engine pod pairs with which trainer pod
Hold a colocated engine pod until something places it #2465 Hold a colocated engine pod until something places it
Place each gated engine pod on the node its trainer landed on #2466 Place each gated engine pod on the node its trainer landed on
Skip a backend's tests when that backend is not there #2467 Skip a backend's tests when that backend is not there
Let every e2e script pick its backend from the environment #2468 Let every e2e script pick its backend from the environment
Document the cluster backend for the people who will use it #2469 Document the cluster backend for the people who will use it
Let every miles process name itself as the component it is #2503 Let every miles process name itself as the component it is
Split env_report.py into a package #2504 Split env_report.py into a package
Record the environment as a redacted audit event #2505 Record the environment as a redacted audit event
Re-record the environment periodically, not only at startup #2506 Re-record the environment periodically, not only at startup
Hash the uncommitted changes a run actually ran with #2507 Hash the uncommitted changes a run actually ran with
Record what the kubernetes launcher launched #2508 Record what the kubernetes launcher launched
Record the environment every sglang engine serves with #2509 Record the environment every sglang engine serves with
Hand the weight-update group the gpus each engine really has #2510 Hand the weight-update group the gpus each engine really has
Give a worker provider a lifecycle hook and let it size its own fleet #2511 Give a worker provider a lifecycle hook and let it size its own fleet
Support cells without launch gates #2512 Support cells without launch gates
Describe an external engine fleet on the command line #2513 Describe an external engine fleet on the command line
Discover a static fleet of external sglang engines #2514 Discover a static fleet of external sglang engines
SGLang
Megatron
Reactions are currently unavailable
You can’t perform that action at this time.
Already Opened PRs
Miles
SGLang
Megatron