Skip to content

chore(release): cut 1.1.2 - #1619

Merged
chaojhou merged 6 commits into
mainfrom
chore/release-1.1.2
Sep 23, 2026
Merged

chaojhou merged 6 commits into
mainfrom
chore/release-1.1.2

Conversation

@lishuoshuo-amd

@lishuoshuo-amd lishuoshuo-amd commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator
  • Description: what and why

Cuts release 1.1.2 (54 PRs merged since v1.1.1).

Version bump: every site that tracks the packaged version moves together:

Site Change
pyproject.toml [project].version 1.1.1 → 1.1.2
docs/conf.py version_number kept in sync with pyproject
README.md version badge 1.1.1 → 1.1.2
docs/compatibility.rst matrix row Hyperloom column only
docs/install/install.md, examples/README.md, hyperloom-setup/SKILL.md the three pip install hyperloom-inference-optimizer== pins
install_baremetal.sh HYPERLOOM_WHEEL_TAG v1.1.1 → v1.1.2

Release notes: CHANGELOG.md was retired in #1589, so docs/release-notes.md is the only document to cut. ## Unreleased becomes ## Hyperloom 1.1.2 release, and an empty ## Unreleased stays for the next cycle. The new section has:

Edits to inherited entries:

ROCm 10 / image switch coverage: #1549, #1593 and #1605 left sites that still described the pre-ROCm 10 stack:

Site Change
assets/slurm/models.tsv the two vLLM rows move from vllm/vllm-openai-rocm:v0.29.0 to the rocm/vllm:rocm10.0.0_..._vllm_0.27.0 image the docker route uses
docs/compatibility.rst minimum requirements ROCm 7.2.x → 7.2.x, 10.0
docs/compatibility.rst, docs/install/install.md TheRock's pip-packaged ROCm is no longer called an untested layout; it is what the rocm10 images are built from (install_baremetal.sh ROCM_SDK_INDEX_URL)
docs/install/install.md bare-metal requirements ROCm 10.0 listed as validated; the Python 3.12 requirement is scoped to the ROCm 7.2.x vLLM wheel (the source build takes >= 3.10, < 3.15)
hyperloom-setup/SKILL.md the vllm (isolated) option covers both routes, and the glibc floor note is scoped to the wheel route; install_vllm_framework returns into install_vllm_from_source before assert_vllm_glibc_compatible
docs/reference/environment-variables.md, docs/install/slurm.md new ROCPC_VENV (#1549) and HL_ORPHAN_MIN_AGE_S (#1581) rows
docs/compatibility.rst entrypoint note no longer says the vLLM image's entrypoint is vllm serve; the --entrypoint tail override is kept for the real reason

The image configs, read from the Docker Hub registry:

Image Entrypoint Cmd
vllm/vllm-openai-rocm:v0.29.0 (old) ["vllm", "serve"] none
rocm/vllm:rocm10.0.0_..._vllm_0.27.0 none ["/bin/bash"]
lmsysorg/sglang-rocm:v0.5.20-rocm10-mi30x-20260920 none ["/bin/bash"]
rocm/atom-dev:v0.1.7-rc0 none ["/bin/bash"]

The models.tsv swap also repairs the sbatch docker branch for the vLLM rows. It runs docker run ... "${IMAGE}" bash "$INCONTAINER" without --entrypoint, which the old image turned into vllm serve bash .... The pyxis branch never used the image entrypoint. .github/scripts/forge-ci-e2e-dispatch.sh keeps its own CI image default.

Compatibility surfaces in this release

Surface Detail
Removed options --conc-sweep-timeout-sec (#1547), --recipe-kb-strict-fingerprint (#1542). Both exit unrecognized arguments now.
Removed console script / packaged file robustness-agent, tools/robustness_monitor.sh.example (#1547)
Removed env vars HYPERLOOM_SUPERVISOR, HYPERLOOM_SUPERVISOR_ENFORCE, HYPERLOOM_SUPERVISOR_TICK_STALL_SEC, ROBUSTNESS_AGENT_ROOT, ROBUSTNESS_LLM_RCA_DISABLED (#1547); INFERENCE_OPTIMIZER_DISABLE_LOCAL_INFERENCEX, INFERENCE_OPTIMIZER_LOCAL_INFERENCEX_ROOT (#1456); MAGPIE_PATCH_STRICT (#1592)
Credential rename LLM_GATEWAY_KEY as the only OpenAI-side credential → OPENAI_API_KEY (#1541)
Added CLI recover-session --confirm-stopped TASK_ID --confirmation-reason TEXT (#1547), forge-loop --kernel-backend assembly (#1426), --applyback/--no-applyback (#1596)
Report fields SBD V6 baseline_throughput/optimized_throughput → baseline_value/optimized_value, failure rows phase → stage; kernel_optimization_summary.json schema_version 2; sweep_failed stop reason
Unchanged session record: LATEST_STATE_SCHEMA_VERSION is 6 in both v1.1.1 and this tree

--max-minutes-enablement-pct is also removed, but it was added and removed within this release, so it is not in the upgrade guide.

CI flake fix: test_optimize_loop_walkthrough.py::test_both_arms_dry_walks_the_rest_of_the_chain failed on py3.10 shard 1 ('KERNEL_AGENT' == 'CLOSE', teardown logged _on_phase_entered hook was cancelled). Since #1605 the KERNEL entry hook runs out of band and holds the phase until it returns. In this test the hook started geak_runner.py as a real subprocess, and KERNEL only reached a terminal geak_result once that process failed. Whether 11 ticks reached CLOSE therefore depended on the CI host. The test now makes _kernel_agent_tool_path unresolvable, so GEAK takes the existing runner_not_found branch in-process, and it asserts that branch. Delaying the geak_runner.py spawn by 30s fails the pre-fix test with the CI assertion and leaves the fixed test passing in 6.6s.

  • Linked issue(s): close/fix refs

None.

  • Tests: added/updated? commands run?

No code change. Verified by running:

  • pytest -n 4 src/kernelforge/tests/test_rename_completeness.py src/hyperloom/inference_optimizer/tests/test_baremetal_doc_version_consistency.py src/hyperloom/inference_optimizer/tests/test_scaffold_smoke.py src/hyperloom/inference_optimizer/tests/test_pre_release_gate_orchestration.py src/hyperloom/inference_optimizer/tests/test_preflight_serving_framework.py src/hyperloom/inference_optimizer/tests/test_multi_node_scripts.py: 198 passed.

  • Every removed option, console script and environment variable named in the upgrade guide was checked present at v1.1.1 and absent from this tree.

  • Size/complexity triggers crossed: split, or why the shape is right

Six commits. The first two are eight one-line version bumps plus docs/release-notes.md, the same shape as #1519. The ROCm 10 coverage commit (4 files), the env-var doc commit (2 files) and the entrypoint note (1 file) are docs and a sample registry only; the last commit is a one-test fix.

  • If this simplifies or refactors: which mechanism was removed, which contract was preserved, and the tests that show it:

N/A.

  • Observable effect: what an operator will now see, and what the old behaviour cost them (if none, why the change is unobservable):

Installs pin 1.1.2, and the bare-metal installer downloads its hotfix asset from the v1.1.2 release. The release notes carry the 1.1.1 → 1.1.2 upgrade guide.

  • Breaking changes: yes/no (details if yes)

The PR itself is not breaking. The release it cuts carries the removals listed above, and each has a "what to do" row in the upgrade guide.

  • PR addresses single concern: yes/no (details if no):

Yes, the 1.1.2 release cut.

  • Root cause is upstream (Magpie/TraceLens/GEAK/IntelliKit/AgentKernelArena), ticket filed:

N/A.

Before merging

The v1.1.2 GitHub release must carry the rocm-profiler-hotfix-libs.tar.gz asset, because HYPERLOOM_WHEEL_TAG now points the bare-metal installer at that tag. Same requirement as v1.1.1.

Test plan

  • Release, doc and setup-skill tests: 198 passed.
  • No remaining vllm-openai-rocm reference in docs, examples, skills or packaged assets.
  • Removed CLI, console-script and environment-variable surface checked against v1.1.1.
  • LATEST_STATE_SCHEMA_VERSION unchanged (6).
  • Pre-release E2E gate: the pyproject.toml version bump against base selects the FULL run.
  • Docs build (Sphinx).

lishuoshuo-amd and others added 2 commits September 23, 2026 13:43
Every site that tracks the packaged version moves together: pyproject's
[project].version, the docs version_number kept in sync with it, the README
badge, the compatibility matrix row, and the three copy-paste
`pip install hyperloom-inference-optimizer==` pins, which would otherwise keep
installing 1.1.1 after 1.1.2 ships.

HYPERLOOM_WHEEL_TAG moves with it, which requires the v1.1.2 GitHub release to
carry the rocm-profiler-hotfix-libs.tar.gz asset the bare-metal installer
downloads from that tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
The Unreleased section becomes the 1.1.2 section with an introduction, a
"Before upgrading from 1.1.1" guide and highlights, and an empty Unreleased
heading is kept for the next cycle.

The upgrade guide names what an operator has to act on: the removed
--conc-sweep-timeout-sec and --recipe-kb-strict-fingerprint options, the
retired robustness-agent script and supervisor/robustness variables, the
LLM_GATEWAY_KEY -> OPENAI_API_KEY rename, the dropped InferenceX local-copy
variables and MAGPIE_PATCH_STRICT, the ROCm 10 images and bare-metal vLLM
routes, and the SBD V6 and kernel summary field changes, which keep no alias.

User-facing PRs merged without an entry get one under "Other changes". Two
entries that described fixes to the robustness monitor are dropped or trimmed,
since the monitor itself is retired in this release.

Co-authored-by: Cursor <cursoragent@cursor.com>
@lishuoshuo-amd
lishuoshuo-amd requested a review from a team as a code owner September 23, 2026 05:51
lishuoshuo-amd and others added 4 commits September 23, 2026 14:02
The Slurm example registry still pointed its two vLLM rows at
vllm/vllm-openai-rocm:v0.29.0 after the docker route moved to the ROCm 10
rocm/vllm image.

The minimum-requirements row still listed ROCm 7.2.x alone, and the install
guide and compatibility page still called TheRock's pip-packaged ROCm an
untested layout, although it is the layout the rocm10 images are built from.
The Python 3.12 requirement and the glibc floor apply to the ROCm 7.2.x vLLM
wheel only, and the setup skill described the isolated vLLM option as always
bringing its own torch, which the ROCm 10 source build does not.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…erride

The note said the vLLM image's entrypoint is `vllm serve`, which was true of
vllm/vllm-openai-rocm but not of rocm/vllm. Every image in the table now has no
ENTRYPOINT and a `/bin/bash` CMD, which exits at once in a detached container,
so the `--entrypoint tail` override is still needed for that reason.

Co-authored-by: Cursor <cursoragent@cursor.com>
KERNEL entry runs out of band since #1605 and the phase is held until the hook
returns. In this walkthrough the hook launched geak_runner.py as a real
subprocess, and KERNEL only reached a terminal geak_result once that process
failed, so whether eleven ticks reached CLOSE depended on how fast the runner
exited on the CI host.

The runner path is made unresolvable, which takes the existing
runner_not_found branch: GEAK records a terminal result in-process and the
phase winds down to SWEEP without starting anything. The test now also pins
that branch, so a routing change cannot quietly bring the subprocess back.

Co-authored-by: Cursor <cursoragent@cursor.com>
@chaojhou
chaojhou merged commit e91cd1b into main Sep 23, 2026
30 of 34 checks passed
@chaojhou
chaojhou deleted the chore/release-1.1.2 branch September 23, 2026 06:53
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