Skip to content

[3/4] capture: remove legacy SGLang patch support - #1065

Merged
curnane-lab merged 2 commits into
mainfrom
split/capture-03-remove-patches
Nov 7, 2026
Merged

curnane-lab merged 2 commits into
mainfrom
split/capture-03-remove-patches

Conversation

@jiapingW

@jiapingW jiapingW commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Server capture still has two protocols and fallback paths after offline preparation moves to the plugin. Remove the source-patch backend so configuration accepts only auto or plugin, automatic detection selects only the native plugin, and missing support fails with installation instructions.

Delete the versioned patch files, application script, inventory and obsolete patch tests. Simplify launcher flags and the HTTP adapter to the plugin contract, and migrate online examples, platform guides and diagnostics. Most of the diff is deletion; review the schema, launcher and adapter first. The training dependency upgrade is isolated in part 4, so this layer keeps the existing SGLang CLI alias table.

Validation: full pre-commit run --all-files passed. H20 config, launcher, server adapter, multi-server and shell-wrapper regression: 214 passed. No runtime behavior changes beyond removing patch support are intended.

Includes the shared CI dependency-test fix from #1063 via forward merges. All 8 CI dependency tests passed on Linux for this layer; the feature diff is unchanged.

Review and merge order:

  1. [1/4] capture: prepare the native plugin runtime and CI server
  2. [2/4] offline: prepare target features through the capture plugin
  3. [3/4] capture: remove legacy SGLang patch support
  4. [4/4] build: align training with the pinned SGLang revision

Each PR compares against the previous layer. Shared follow-up fixes are merged forward without rewriting published history. After merging a predecessor, retarget the next PR to main; if using squash merges, rebase the remaining stack before retargeting. The GPU workflow filters PRs targeting main, so later layers receive that CI run when retargeted. Lint runs on every layer.

This stack replaces #1062. Its combined feature changes match #1062 plus the lint fix; subsequent CI regression fixes are shared across the stack.

Base automatically changed from split/capture-02-offline-client to main November 7, 2026 00:47
@curnane-lab
curnane-lab merged commit 5cb2dc9 into main Nov 7, 2026
2 checks passed
@curnane-lab
curnane-lab deleted the split/capture-03-remove-patches branch November 7, 2026 00:48
@curnane-lab
curnane-lab restored the split/capture-03-remove-patches branch November 7, 2026 02:07
curnane-lab pushed a commit to curnane-lab/SpecForge that referenced this pull request Nov 7, 2026
The pinned-SGLang install rework (sgl-project#1066) changed the unit-test environment
(torch 2.13.0 -> 2.14.1, sglang from a git pin, --no-build-isolation) and
broke the job in four places, none of which ran before the merge:

- Trust the workspace in the persistent global git config after checkout.
  With setuptools-scm installed into the sf venv, building specforge with
  --no-build-isolation invokes git through setuptools-scm's file finder,
  and the self-hosted container rejects the workspace as dubious ownership.
  checkout@v4 only whitelists the path in its own temporary git config.
- Build flash-attn 2.8.3 with C++20: torch 2.14's headers use
  std::strong_ordering, but FA's setup.py appends -std=c++17 last. Fetch the
  sdist from PyPI, patch the flag, build via setup.py bdist_wheel, and cache
  the wheel under the existing per-ABI build_key (uv caches neither sdist
  patches nor local directory builds).
- test(arena): unwrap the stub server's list-wrapped spec_capture rows;
  test_mooncake_arena was not updated when _StubCaptureServer started
  mimicking the real plugin server (sgl-project#1065).
- test: use --cuda-graph-bs-decode; the pinned SGLang split --cuda-graph-bs
  into decode/prefill flags, making the abbreviated form ambiguous.

Update the CI dependency tests for the download/patch/build flow: the curl
stub serves the PyPI JSON plus a tarball whose setup.py genuinely builds a
wheel only after the -std patch is applied.
cursor Bot pushed a commit to curnane-lab/SpecForge that referenced this pull request Nov 7, 2026
sgl-project#1065 and sgl-project#1066 were opened against their stacked parents and retargeted
to main once the parent merged. Changing the base fires only an edited
event, which the default pull_request types omit, so unit-test never ran
on either before merge and the broken pinned-SGLang toolchain reached main.

Add edited to the trigger types and run the GPU jobs for it only when the
base changed. Title and body edits also fire edited; give those runs their
own concurrency group so they do not cancel or replace a running or queued
test, and skip their jobs.

Co-authored-by: curnane-lab <curnane-lab@users.noreply.github.com>
@curnane-lab
curnane-lab deleted the split/capture-03-remove-patches branch November 9, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants