[PR #84] [MERGED] feat: add cross-platform installation lifecycle #1821

Closed
opened 2026-10-16 21:11:24 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/84
Author: @morluto
Created: 7/12/2026
Status: ✅ Merged
Merged: 7/12/2026
Merged by: @morluto

Base: main ← Head: ci/conventional-release-commits


📝 Commits (4)

  • e651cb6 feat: add cross-platform installation lifecycle
  • 4f97f69 ci: verify installed package with Linux Hopper
  • 034563a docs: document installation and Linux support
  • a4d356b Merge branch 'main' into ci/conventional-release-commits

📊 Changes

30 files changed (+1789 additions, -124 deletions)

View changed files

📝 .github/pull_request_template.md (+1 -0)
➕ .github/workflows/real-hopper-linux.yml (+43 -0)
📝 CONTRIBUTING.md (+14 -4)
📝 README.md (+45 -2)
📝 README_ar.md (+11 -1)
📝 README_ja.md (+11 -1)
📝 README_ko.md (+11 -1)
📝 README_zh.md (+11 -1)
📝 SECURITY.md (+4 -2)
📝 docs/architecture.mermaid (+4 -2)
➕ install.sh (+198 -0)
📝 package-lock.json (+1 -1)
📝 package.json (+3 -0)
📝 scripts/rea.mjs (+4 -0)
📝 scripts/verify-package.mjs (+40 -35)
➕ scripts/verify-real-hopper-linux.mjs (+22 -0)
📝 src/application/Doctor.ts (+59 -24)
➕ src/application/LinuxHopper.ts (+273 -0)
📝 src/application/Setup.ts (+192 -37)
➕ src/application/Uninstall.ts (+199 -0)

...and 10 more files

📄 Description

Summary

  • add the hardened one-command installer with exact release selection, prerequisite bootstrapping, setup/doctor verification, and activation-aware partial success
  • expand transactional agent registration across documented JSON and Codex TOML clients, using absolute installed commands while preserving the npx path
  • add structured doctor classifications and ownership-safe, idempotent uninstall with contained symlink-safe data purge
  • support official Hopper packages on Ubuntu 24.04+, Fedora 41+, and 64-bit Arch Linux with origin, size, and checksum validation
  • add a dedicated installed-package Linux Hopper verifier and self-hosted workflow
  • document lifecycle behavior, Linux troubleshooting, configuration defaults, security boundaries, and localized command parity

Contract and behavior changes

  • rea setup --yes supports macOS and the officially supported Linux distributions
  • fresh Hopper installation returns needs_human until one-time activation is completed
  • rea uninstall removes only REA-owned registrations and the managed skill
  • rea uninstall --purge-data additionally removes only REA cache/state paths and refuses symlinks
  • generated global registrations use the absolute installed rea mcp executable; zero-install setup retains npx -y rea-agents mcp
  • the MCP tool inventory remains 68

Verification

  • npm run check — 333 tests passed with coverage thresholds
  • npm run verify:package — packed global install, setup idempotence, client readback, 68-tool MCP lifecycle, evidence round trip
  • npm run typecheck
  • npm run lint
  • npm run format:check
  • npm run knip
  • shellcheck install.sh
  • structured autoreview — clean, no accepted/actionable findings

Real Hopper verification

Real Hopper verification was not performed in this workspace because Hopper is not installed and activated here. This PR adds npm run verify:hopper:linux and .github/workflows/real-hopper-linux.yml for an activated self-hosted Linux desktop runner. The existing macOS real-Hopper workflow remains separate.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/84 **Author:** [@morluto](https://github.com/morluto) **Created:** 7/12/2026 **Status:** ✅ Merged **Merged:** 7/12/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `ci/conventional-release-commits` --- ### 📝 Commits (4) - [`e651cb6`](https://github.com/morluto/rea/commit/e651cb65db87b6d9df9fb13b66a6e5e76f0965e0) feat: add cross-platform installation lifecycle - [`4f97f69`](https://github.com/morluto/rea/commit/4f97f699e4d5471557d1ce0ff91e144065d06a61) ci: verify installed package with Linux Hopper - [`034563a`](https://github.com/morluto/rea/commit/034563a4c015c69e878054d4fd06e0e9fa630e24) docs: document installation and Linux support - [`a4d356b`](https://github.com/morluto/rea/commit/a4d356b210ae2aab59e19fee7eb0725d5790ddfe) Merge branch 'main' into ci/conventional-release-commits ### 📊 Changes **30 files changed** (+1789 additions, -124 deletions) <details> <summary>View changed files</summary> 📝 `.github/pull_request_template.md` (+1 -0) ➕ `.github/workflows/real-hopper-linux.yml` (+43 -0) 📝 `CONTRIBUTING.md` (+14 -4) 📝 `README.md` (+45 -2) 📝 `README_ar.md` (+11 -1) 📝 `README_ja.md` (+11 -1) 📝 `README_ko.md` (+11 -1) 📝 `README_zh.md` (+11 -1) 📝 `SECURITY.md` (+4 -2) 📝 `docs/architecture.mermaid` (+4 -2) ➕ `install.sh` (+198 -0) 📝 `package-lock.json` (+1 -1) 📝 `package.json` (+3 -0) 📝 `scripts/rea.mjs` (+4 -0) 📝 `scripts/verify-package.mjs` (+40 -35) ➕ `scripts/verify-real-hopper-linux.mjs` (+22 -0) 📝 `src/application/Doctor.ts` (+59 -24) ➕ `src/application/LinuxHopper.ts` (+273 -0) 📝 `src/application/Setup.ts` (+192 -37) ➕ `src/application/Uninstall.ts` (+199 -0) _...and 10 more files_ </details> ### 📄 Description ## Summary - add the hardened one-command installer with exact release selection, prerequisite bootstrapping, setup/doctor verification, and activation-aware partial success - expand transactional agent registration across documented JSON and Codex TOML clients, using absolute installed commands while preserving the `npx` path - add structured doctor classifications and ownership-safe, idempotent uninstall with contained symlink-safe data purge - support official Hopper packages on Ubuntu 24.04+, Fedora 41+, and 64-bit Arch Linux with origin, size, and checksum validation - add a dedicated installed-package Linux Hopper verifier and self-hosted workflow - document lifecycle behavior, Linux troubleshooting, configuration defaults, security boundaries, and localized command parity ## Contract and behavior changes - `rea setup --yes` supports macOS and the officially supported Linux distributions - fresh Hopper installation returns `needs_human` until one-time activation is completed - `rea uninstall` removes only REA-owned registrations and the managed skill - `rea uninstall --purge-data` additionally removes only REA cache/state paths and refuses symlinks - generated global registrations use the absolute installed `rea mcp` executable; zero-install setup retains `npx -y rea-agents mcp` - the MCP tool inventory remains 68 ## Verification - `npm run check` — 333 tests passed with coverage thresholds - `npm run verify:package` — packed global install, setup idempotence, client readback, 68-tool MCP lifecycle, evidence round trip - `npm run typecheck` - `npm run lint` - `npm run format:check` - `npm run knip` - `shellcheck install.sh` - structured autoreview — clean, no accepted/actionable findings ## Real Hopper verification Real Hopper verification was not performed in this workspace because Hopper is not installed and activated here. This PR adds `npm run verify:hopper:linux` and `.github/workflows/real-hopper-linux.yml` for an activated self-hosted Linux desktop runner. The existing macOS real-Hopper workflow remains separate. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:11:24 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1821
No description provided.