--- name: cc-web-centos7-release description: Rebuild and verify the cc-web CentOS 7 compatible Bun baseline single executable release package. Use when the user asks to 打包, 重新打包, build single-exe, CentOS 7 发布包, dist-exe/cc-web-bun-linux-x64-baseline.tar.gz, or asks why Bun/BUN_BIN was needed for this project. --- # cc-web CentOS 7 Release ## Core Rules - Build the CentOS 7 release with `scripts/build-single-exe.js`. - The default target must stay `bun-linux-x64-baseline`. - The release archive is `dist-exe/cc-web-bun-linux-x64-baseline.tar.gz`. - Do not switch this project back to Docker for CentOS 7 compatibility. - Do not install NodeSource Node.js 22 on CentOS 7. CentOS 7 has glibc 2.17, while current NodeSource Node.js 22 packages require newer glibc/libstdc++ symbols. - Do not bundle Claude/Codex CLI into the release package. cc-web must call host CLIs at runtime through `CLAUDE_PATH`, `CODEX_PATH`, or `PATH`. ## Build Workflow 1. Check whether `bun` is available: ```bash command -v bun ``` 2. If `bun` is not in `PATH`, reuse an existing local Bun binary before downloading anything: ```bash find /home /tmp -type f -name bun -perm -111 2>/dev/null | head -50 ``` Prefer a baseline binary path like: ```text /tmp/ccweb-bun.*/node_modules/@oven/bun-linux-x64-baseline/bin/bun ``` 3. Build with `BUN_BIN` when using a local/temporary Bun: ```bash BUN_BIN=/tmp/ccweb-bun.rhfNgd/node_modules/@oven/bun-linux-x64-baseline/bin/bun npm run build:single-exe ``` If `bun` is already in `PATH`, this is enough: ```bash npm run build:single-exe ``` 4. After adding or changing `.codex/skills`, `.agents/skills`, public assets, runtime assets, or server code, rebuild again. The build copies runtime assets into `dist-exe/bun-linux-x64-baseline/` before creating the tarball. ## Verification Run lightweight checks before committing: ```bash node --check server.js node --check lib/codex-app-runtime.js node --check scripts/mock-codex-app-server.js node --check scripts/mock-codex.js node --check scripts/regression.js node --check public/app.js ./dist-exe/bun-linux-x64-baseline/cc-web --ccweb-mcp-server tar -tzf dist-exe/cc-web-bun-linux-x64-baseline.tar.gz | head ``` For the MCP smoke test, send one JSON-RPC `initialize` request on stdin and expect a valid JSON response. Do not leave the process running. ## CentOS 7 Run Command On the target machine, unpack the archive and run the binary from the release directory: ```bash tar -xzf cc-web-bun-linux-x64-baseline.tar.gz cd bun-linux-x64-baseline chmod +x cc-web PORT=8002 CC_WEB_PASSWORD='请改成强密码' ./cc-web ``` For background execution without PM2: ```bash nohup env PORT=8002 CC_WEB_PASSWORD='请改成强密码' ./cc-web > logs/cc-web.out 2>&1 & ``` For host CLI paths: ```bash export CLAUDE_PATH=/usr/local/bin/claude export CODEX_PATH=/usr/local/bin/codex ```