Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
a49ff64
test: add official-installation regressions and concise usage docs
LIghtJUNction Sep 20, 2026
bb38629
fix: follow Pi installation policy and check platform prerequisites
github-actions[bot] Sep 20, 2026
aed9116
fix: pin tool menus to corrected installers
github-actions[bot] Sep 20, 2026
2fda1c8
chore: remove one-off preparation workflow after verification
LIghtJUNction Sep 20, 2026
327fe0b
fix: decode menu templates as UTF-8 on Windows
LIghtJUNction Sep 20, 2026
3a323b5
test: cover UTF-8 Pi shell paths before final Windows checks
LIghtJUNction Sep 20, 2026
95c162c
fix: preserve UTF-8 shell paths and package manifests on PowerShell 5.1
github-actions[bot] Sep 20, 2026
5ed91d5
fix: update menu pins for UTF-8 path handling
github-actions[bot] Sep 20, 2026
eccdf9a
chore: remove temporary UTF-8 regeneration workflow
LIghtJUNction Sep 20, 2026
d8ef9e2
test: prepare shared helper composition and native Termux regressions
LIghtJUNction Sep 20, 2026
83c0ab5
fix: omit unused Node installer state from LMM-only builds
LIghtJUNction Sep 20, 2026
b21e36e
refactor: share installer helpers and handle native Termux paths and …
github-actions[bot] Sep 20, 2026
496a0ac
fix: pin menus to shared Termux-aware installers
github-actions[bot] Sep 20, 2026
ce6aea9
docs: clarify native Termux dependencies and remove preparation workflow
LIghtJUNction Sep 20, 2026
5a258b9
test: add buffered runtime library loaders and regression coverage
LIghtJUNction Sep 20, 2026
afc8d17
fix: annotate installer state consumed by fetched shell helpers
LIghtJUNction Sep 20, 2026
73237be
refactor: fetch pinned common libraries instead of embedding them
github-actions[bot] Sep 20, 2026
16a065f
fix: point menus at runtime-loading installers
github-actions[bot] Sep 20, 2026
2b54971
chore: remove temporary runtime-loader preparation workflow
LIghtJUNction Sep 20, 2026
b78a32d
fix: add Bash 3.2 compatibility for buffered library imports
LIghtJUNction Sep 20, 2026
9c8f763
fix: support buffered library imports on macOS Bash 3.2
github-actions[bot] Sep 20, 2026
73a0110
fix: pin menus to Bash-compatible library loaders
github-actions[bot] Sep 20, 2026
f09e468
chore: remove one-off legacy Bash regeneration workflow
LIghtJUNction Sep 20, 2026
b78106e
feat: add official cross-platform tool installers and shared catalog
LIghtJUNction Sep 20, 2026
60692bd
refactor: share lifecycle helpers and delegate new tools to official …
github-actions[bot] Sep 20, 2026
a5e8b42
feat: publish compact Codex Claude Code CC Switch and Clash Verge Rev…
github-actions[bot] Sep 20, 2026
e055b0d
feat: drive both menus from one seven-tool catalog
github-actions[bot] Sep 20, 2026
6b3c92a
chore: remove completed catalog preparation workflow
LIghtJUNction Sep 20, 2026
9d27721
fix: isolate distro metadata and cover native installation regressions
LIghtJUNction Sep 20, 2026
85beae2
test: preserve regression fixture indentation during generation
LIghtJUNction Sep 20, 2026
cced5d9
fix: keep distro metadata out of installer state and isolate Termux t…
github-actions[bot] Sep 20, 2026
1d2fb99
fix: pin generated installers to corrected distribution detection
github-actions[bot] Sep 20, 2026
69d6fd0
fix: update seven-tool menu to tested installer revision
github-actions[bot] Sep 20, 2026
45d264f
chore: remove completed portability preparation workflow
LIghtJUNction Sep 20, 2026
a193f70
docs: simplify seven-tool usage and distinguish upstream PATH policies
LIghtJUNction Sep 20, 2026
7a42eeb
fix: retain process-group cleanup on timeout and cancellation
LIghtJUNction Sep 20, 2026
b715e64
fix: pin installers to reviewed process-group cleanup
github-actions[bot] Sep 20, 2026
4e798c6
fix: point menus at process-cleanup regression fix
github-actions[bot] Sep 20, 2026
90496c4
chore: remove completed review-pin generation workflow
LIghtJUNction Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions .github/workflows/extended.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Extended installer checks
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: extended-${{ github.ref }}
cancel-in-progress: true
jobs:
platforms:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
fetch-depth: 0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
with:
python-version: '3.x'
- run: python tools/generate.py --check
- run: python tools/generate_menus.py --check
- run: python tests/test_catalog.py
- name: Distribution and Termux routing
if: runner.os != 'Windows'
run: python3 tests/test_external.py
- name: PowerShell entries
shell: pwsh
run: ./tests/test-external.ps1
- name: Windows PowerShell 5.1 entries
if: runner.os == 'Windows'
shell: powershell
run: .\tests\test-external.ps1
- name: Real upstream CLI installs on Unix
if: runner.os != 'Windows'
shell: bash
run: |
export CODEX_HOME="$RUNNER_TEMP/codex-profile"
export CODEX_INSTALL_DIR="$RUNNER_TEMP/codex-bin"
bash codex.sh
bash codex.sh --check
bash claude-code.sh
bash claude-code.sh --check
- name: Real upstream CLI and portable CC Switch installs on Windows
if: runner.os == 'Windows'
shell: powershell
run: |
$env:CODEX_HOME="$env:RUNNER_TEMP\codex-profile"
$env:CODEX_INSTALL_DIR="$env:RUNNER_TEMP\codex-bin"
.\codex.ps1
if ($LASTEXITCODE -ne 0) { throw 'Codex install failed' }
.\codex.ps1 -Check
if ($LASTEXITCODE -ne 0) { throw 'Codex check failed' }
.\claude-code.ps1
if ($LASTEXITCODE -ne 0) { throw 'Claude install failed' }
.\claude-code.ps1 -Check
if ($LASTEXITCODE -ne 0) { throw 'Claude check failed' }
.\cc-switch.ps1 -Root "$env:RUNNER_TEMP\cc switch"
if ($LASTEXITCODE -ne 0) { throw 'CC Switch installation failed' }
.\cc-switch.ps1 -Root "$env:RUNNER_TEMP\cc switch" -Check
if ($LASTEXITCODE -ne 0) { throw 'CC Switch check failed' }
linux-libc:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
image: ['debian:12', 'alpine:3.22']
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
- name: Install CLIs in a clean glibc or musl userland
env:
IMAGE: ${{ matrix.image }}
run: |
docker run --rm -v "$PWD:/src:ro" "$IMAGE" sh -ec '
if command -v apk >/dev/null; then apk add --no-cache bash curl ca-certificates;
else apt-get update && apt-get install -y bash curl ca-certificates; fi
export LMM_LIB_DIR=/src/templates/lib
bash /src/codex.sh --install-deps
bash /src/codex.sh --check
bash /src/claude-code.sh --install-deps
bash /src/claude-code.sh --check
'
28 changes: 25 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ jobs:
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
with:
fetch-depth: 0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38
with:
node-version: 24.21.0
Expand All @@ -29,19 +31,39 @@ jobs:
if ($errors.Count) { throw ($errors | Out-String) }
./menu.ps1 -Help
- run: python tools/generate.py --check
- run: python tools/generate_menus.py --check
- name: Shell fault-injection tests
if: runner.os != 'Windows'
run: python3 tests/test_installers.py
run: |
python3 tests/test_installers.py
python3 tests/test_official_policy.py
python3 tests/test_library_loader.py
python3 tests/test_bounded.py
- name: ShellCheck
if: runner.os == 'Linux'
run: shellcheck *.sh
- name: PowerShell checks
shell: pwsh
run: ./tests/test-powershell.ps1
run: |
./tests/test-powershell.ps1
./tests/test-official-policy.ps1
./tests/test-library-loader.ps1
- name: Windows PowerShell 5.1 checks
if: runner.os == 'Windows'
shell: powershell
run: .\tests\test-powershell.ps1
run: |
.\tests\test-powershell.ps1
.\tests\test-official-policy.ps1
.\tests\test-library-loader.ps1
- name: Install real Pi on Unix with lifecycle scripts disabled
if: runner.os != 'Windows'
shell: bash
run: |
export PI_CODING_AGENT_DIR="$RUNNER_TEMP/pi-profile"
npm_config_ignore_scripts=true bash pi.sh --root "$RUNNER_TEMP/lmm clients" --no-path --network official
"$RUNNER_TEMP/lmm clients/bin/pi" --version
"$RUNNER_TEMP/lmm clients/bin/pi" list
bash pi.sh --root "$RUNNER_TEMP/lmm clients" --check
- name: Install real CLI on Unix
if: runner.os != 'Windows'
shell: bash
Expand Down
Loading
Loading