docs/backend-migration/handoffs/M9-outcome.md
feat/m9-install-web-script4d6cc3197origin/feat/m8-web-cli-tarball @ d71697fc5origin/feat/backend-migration @ de0c7b87d (already up to date)Core Script (scripts/install-web.sh):
curl | bash~/.local/share/aionui-web)~/.local/bin/aionui-web)Command-Line Options:
--version <version>: Specify version (default: latest or CI-embedded)--mirror <url>: Custom mirror URL (default: GitHub releases)--install-dir <path>: Custom install directory (default: ~/.local/share/aionui-web)--no-symlink: Skip symlink creation--no-path: Skip shell profile update--help: Show help messageEnvironment Variables:
VERSION: Version to installINSTALL_DIR: Installation directoryMIRROR: Mirror URLBIN_DIR: Symlink directory (default: ~/.local/bin)CREATE_SYMLINK: Create symlink (1/0)UPDATE_PATH: Update shell profile (1/0)Workflow Additions (.github/workflows/pack-web-cli.yml):
prepare-install-script job:
pack-web-cli__VERSION__ placeholder with actual versioninstall-web-script)smoke-test-install job:
Script (scripts/smoke-test-install-web.sh):
bin/aionui-web.js) existsLocal Testing:
# Prepare mock tarball
mkdir -p /tmp/mock-releases/v1.0.0
cp aionui-web-1.0.0-linux-x86_64.tar.gz /tmp/mock-releases/v1.0.0/
cp aionui-web-1.0.0-linux-x86_64.tar.gz.sha256 /tmp/mock-releases/v1.0.0/
cp scripts/install-web.sh /tmp/mock-releases/
# Run smoke test
bash scripts/smoke-test-install-web.sh file:///tmp/mock-releases 1.0.0
4d6cc3197 docs(m9): update handoff with Docker unavailability note
d8576c488 docs(m9): add M9 handoff document
780c7553e feat(ci): add smoke test for install-web.sh
14559c2ef feat(ci): add prepare-install-script job to pack-web-cli workflow
7ad1bb5cc feat(install-web): implement core installation functions
5e364a507 feat(install-web): add install-web.sh skeleton with CLI arg parsing
Base: d71697fc5 (M8 handoff document)
# Install latest version
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/AionUi/main/scripts/install-web.sh | bash
# Install specific version
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/AionUi/main/scripts/install-web.sh | VERSION=1.0.0 bash
# Install to custom directory
curl -fsSL https://raw.githubusercontent.com/iOfficeAI/AionUi/main/scripts/install-web.sh | INSTALL_DIR=/opt/aionui-web bash
# 1. Download release assets to local directory
mkdir -p /path/to/releases/v1.0.0
cd /path/to/releases/v1.0.0
wget https://github.com/iOfficeAI/AionUi/releases/download/v1.0.0/aionui-web-1.0.0-linux-x86_64.tar.gz
wget https://github.com/iOfficeAI/AionUi/releases/download/v1.0.0/aionui-web-1.0.0-linux-x86_64.tar.gz.sha256
# 2. Download install-web.sh
cd /path/to/releases
wget https://github.com/iOfficeAI/AionUi/releases/download/v1.0.0/install-web.sh
# 3. Run installation (using file:// mirror)
MIRROR=file:///path/to/releases VERSION=1.0.0 bash install-web.sh
If install-web.sh has issues, users can manually extract tarball:
# 1. Download tarball
curl -LO https://github.com/iOfficeAI/AionUi/releases/download/v1.0.0/aionui-web-1.0.0-linux-x86_64.tar.gz
# 2. Verify checksum (optional)
curl -LO https://github.com/iOfficeAI/AionUi/releases/download/v1.0.0/aionui-web-1.0.0-linux-x86_64.tar.gz.sha256
shasum -a 256 -c aionui-web-1.0.0-linux-x86_64.tar.gz.sha256
# 3. Extract
tar -xzf aionui-web-1.0.0-linux-x86_64.tar.gz
mv aionui-web ~/.local/share/aionui-web
# 4. Create symlink
mkdir -p ~/.local/bin
ln -s ~/.local/share/aionui-web/bin/aionui-web.js ~/.local/bin/aionui-web
# 5. Add PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Remove installation directory
rm -rf ~/.local/share/aionui-web
# Remove symlink
rm ~/.local/bin/aionui-web
# Remove PATH configuration (manual edit)
# Edit ~/.bashrc or ~/.zshrc and remove the line:
# export PATH="$HOME/.local/bin:$PATH"
✅ Skeleton test (Phase 1):
--help shows correct usage✅ Platform detection (Phase 2):
✅ Full installation test (Phase 2-9):
✅ Smoke test (Phase 11):
⏸️ CI workflow not executed (per team-lead instruction: valid YAML + actionlint sufficient for feature branches)
Expected CI flow:
pack-web-cli job produces 5 platform tarballsprepare-install-script job replaces __VERSION__ and uploads install-web.shsmoke-test-install job tests installation in debian:bookworm-slimNone. All phases executed as planned.
Risk: Container smoke test requires Docker daemon
Impact: If Docker not available locally, smoke-test-install-web.sh may fail
Mitigation:
bash -n syntax check + bash --help output checkCurrent State:
Risk: install-web.sh is bash script, Windows native doesn't support it
Impact: Windows users need Git Bash / WSL / MSYS2
Mitigation: Documentation clarifies requirement
Future: Consider PowerShell version (install-web.ps1) in M10+
Risk: resolve_version() queries GitHub API, may hit rate limit
Impact: Installation fails if latest version cannot be resolved
Mitigation:
VERSION=1.0.0 bash install-web.sh__VERSION__ with actual version (no API call needed)Risk: shasum/sha256sum may not be available on minimal systems
Impact: Checksum verification skipped with warning
Mitigation: Script warns but continues installation (most systems have one of these tools)
✅ install-web.sh dependencies:
✅ No external package dependencies: All logic in pure bash
After M10 release automation, install-web.sh will be available at:
https://github.com/iOfficeAI/AionUi/releases/download/v{version}/install-web.sh
https://raw.githubusercontent.com/iOfficeAI/AionUi/main/scripts/install-web.sh (latest)
M10: Release Automation
Dependencies from M9:
__VERSION__ placeholder replacement working in CIM10 Tasks:
.github/workflows/build-and-release.yml to include install-web.shInterface for M10:
install-web-script/install-web.sh (with version replaced)install-web.sh (one file, version-agnostic)If M9 breaks builds:
Revert all M9 commits:
git revert 780c7553e 14559c2ef 7ad1bb5cc 5e364a507
git push origin feat/m9-install-web-script
Fallback to M8:
git checkout origin/feat/m8-web-cli-tarball
Executor: executor-m9 (Claude Sonnet 4.5 agent) Completed: 2026-05-08 Duration: ~1 hour
Status Summary:
✅ M9 Core Goal Achieved: install-web.sh script + CI integration complete ✅ 5-Platform Support: darwin-arm64/x86_64, linux-x86_64/aarch64, win-x86_64 ✅ Local Testing Passed: file:// mirror smoke test successful ✅ CI Integration Ready: prepare-install-script + smoke-test-install jobs added ⏸️ Container Test Deferred: Docker not available locally, CI will run ⏸️ CI Not Executed: YAML valid, awaiting real CI run after push
Release Readiness: M9 feature branch is code-complete and ready for baseline sync + push.
Human Review Needed: