Repository navigation
Conversation
Owner
|
Thanks for the pull request. We're resetting the tracker for 0.2.0-beta. There are more than 1,300 open issues and pull requests, too many for us to review properly, so we're closing everything that isn't being worked on right now. Closed here does not mean rejected. To reopen it takes about two minutes:
The rules are in CONTRIBUTING.md. |
Author
|
/reopen |
|
The check passed, but GitHub would not reopen it (Validation Failed: ). If the branch was deleted, restore it or open a new pull request and link this one. |
Author
|
/reopen |
|
Reopened, thank you. A maintainer will pick it up from here. If it conflicts with main, rebase it first; that speeds up review. |
Zcg2021
marked this pull request as draft
October 19, 2026 21:34
Zcg2021
force-pushed
the
codex/solo-priority
branch
2 times, most recently
from
October 22, 2026 12:03
4312dd7 to
03a8928
Compare
bsorensen110
added a commit
to bsorensen110/Strata
that referenced
this pull request
Oct 22, 2026
…eclared_only kept) — integ batch 20
Zcg2021
force-pushed
the
codex/solo-priority
branch
from
October 24, 2026 22:29
ee75d94 to
6960399
Compare
Zcg2021
force-pushed
the
codex/solo-priority
branch
from
October 30, 2026 22:44
6960399 to
1e1b267
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and result
A short interactive request on a single native engine waits for a long response to finish. This experimental, opt-in Python scheduler lets a waiting higher-priority request interrupt and resume that response through the existing STOP/DONE protocol and conversation RAM cache. Only one native GEN runs at a time; it does not allocate batch slots or change defaults.
Related discussion
#2821; #2109 concerns batch admission rather than interruption of an already-running single-engine response. Maintainer scope agreement is still requested in #2821. This existing PR remains draft pending that discussion and hardware validation on the current base.
Approach
The scheduler drains all accepted tokens through DONE before changing ownership. Continuation uses original token IDs and keeps the original stream parser, UTF-8 decoder and tool-call identity alive. Minimum run time and waiting-age priority prevent short requests from indefinitely starving long work. Parked cancellation does not stop another owner; engine death fails affected streams.
The current rebase is onto main
870aedd9e1ebe1c91f94da93b59af17729f6c5c0(0.2.8). README retains upstream's new layout. The rebase also preserves the newprefill_onlyargument when the normal generator is extracted into_generate_single; an uncorrected automatic merge raisedNameErroron an ordinary request.split_serveis explicitly rejected withsolo_priority, because its proxy forwards single-engine attributes despite using two engines. Regression tests cover the default prefill-only protocol, invalid calls, split-mode rejection and logprob ownership across actual simulated preemption/resumption.No native source, model, tokenizer or cache-format changes. Production Maya/Strata services and settings were not changed for this update.
Validation
Tested revision:
1e1b2672eb104d4b4c56020ba529feeaeffa2646, 2026-10-30. Pinned runtime requirements in isolated environments; protocol/streaming tests use fake engines, not real GPUs.Passed:
python -m unittest serve.test_solo_priority serve.test_logprobs serve.test_split -v: 73 tests, OK, 25.258 s. Covers interruption/resumption, queued/active/parked cancellation, engine death, UTF-8, tool arguments, usage, logprobs and split-serving compatibility.python tools/minimal_server_smoke.py --report <new-absolute-path>: 51 tests, OK (4 skipped), 103.346 s.python -m unittest discover -s serve -p 'test_*.py': 1278 tests, OK (17 skipped), 424.214 s. Runtime smoke: 51 tests, OK (4 skipped), 106.664 s. CI on the tested commit.git diff --check origin/main: passed.Failed attempts:
python -m unittest serve.test_solo_priority.Streaming.test_terminal_state_tracks_an_admitted_solo_request -v: 1 test, 1 error (NameError: name 'prefill_only' is not defined). Corrected in the tested revision; included in the passing focused suite above.Not run:
Earlier hardware evidence (not rerun on this base)
Limits
Cold/partial-cache-hit prefill and restoration can still delay short requests. Historical soak short TTFT reached 46.663 s while reading an unfinished long prefix; this is not a real-time latency guarantee. Restored partial prefill reaches its first generated token before yielding to avoid discarding the checkpoint. Images and checkpoint opt-outs are non-preemptible. Batch, replicas and split serving cannot be combined with this option. The feature stays off by default; no universal speedup or token-identical native sampling across separate runs is claimed.