[PR #584] [MERGED] fix(package): separate agent and Hopper setup support #2086

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/584
Author: @kaoru0822-kitauji
Created: 10/5/2026
Status: ✅ Merged
Merged: 10/5/2026
Merged by: @morluto

Base: main ← Head: fix/package-setup-support-verifier


📝 Commits (1)

  • 96cf9c7 fix(package): separate agent and Hopper setup support

📊 Changes

3 files changed (+90 additions, -4 deletions)

View changed files

➕ scripts/verify-package-discovery.d.mts (+19 -0)
📝 scripts/verify-package-discovery.mjs (+15 -4)
➕ tests/evaluation/package/packageSetupSupport.test.ts (+56 -0)

📄 Description

Summary

Classify packaged agent setup independently from Hopper installation support so the existing package verifier exercises the current setup contract on hosts such as Debian.

No tracking issue: found while running the full verifier for #583; reproduced on untouched main before changing the classifier.

Problem and expected behavior

After #577, agent/client configuration requires a supported Node version, while explicit Hopper installation still has separate OS/distro restrictions. The package verifier continued to derive both capabilities from Doctor's host check.

On this Debian host, real agent setup correctly succeeded, but the verifier selected its unsupported-agent branch and failed with packaged setup did not reject an unsupported host. It also skipped the richer setup/readback/recovery checks that should run on this host.

Change and scope

Extract and correct only the verifier's support classifier:

  • Agent setup requires an affirmative node check.
  • Hopper setup additionally requires an affirmative host check and excludes Windows.

All product Setup/Doctor/Hopper behavior, schemas, and existing verification assertions remain unchanged. A small declaration file lets the existing TypeScript test project exercise the JavaScript verifier helper directly.

Contract and boundary impact

  • Semantic owner and earliest changed stage: development/package verification, classification of Doctor's observed checks.
  • CLI and MCP/tool-catalog contract: none; no shipped tool or schema changes.
  • Provider, bridge, target-format, or platform compatibility: no provider behavior changes; verifier correctly distinguishes agent and Hopper eligibility.
  • Evidence, artifact, provenance, or reconstruction contract: none.
  • Process execution, authorization, cleanup, or containment impact: existing isolated setup tests now run on supported-Node hosts outside Hopper's OS matrix; explicit Hopper rejection/confirmation behavior is retained.
  • Generated metadata, package, or installation impact: verifier-only; no dependency, installed package file, or production installation changes.

Evidence and regression coverage

  • 16 classification cases cover Linux/macOS/Windows combinations of supported/unsupported Node and host, plus missing-check behavior.
  • Unsupported Node disables both capabilities even when host support is affirmative.
  • Missing host support never grants Hopper installation, while an affirmative Node check permits agent verification.
  • The unchanged old classifier fails 8/16 new tests. The fixed classifier passes 16/16, plus 7/7 existing package diagnostic tests.
  • Six isolated production Setup/Doctor scenarios corroborate the contract: Debian, older macOS, and Windows can configure agents on supported Node while explicit Hopper remains unavailable; supported Ubuntu/macOS Hopper setup still requires confirmation; unsupported Node remains blocked without mutation.
  • The unchanged full package verifier fails on baseline main with the exact assertion above. With this classifier-only repair, it passes the existing planning, idempotency, four-client, readback/backup, failure-recovery, symlink-lifecycle, and skill checks in isolated fixtures.
  • Independent review found no blocking issues and independently reran the 23 focused tests.

Validation performed

  • npm run check:pr on commit 11f8f7b (base 00fa974): 1,947 tests passed, 1 skipped, 40 failed in the known seven Hopper/Ghidra Unix-domain-socket suites denied by this sandbox (listen EPERM). Failed test titles exactly match the previously verified baseline: no additions or removals. Static checks passed. This is not a full local suite pass.
  • npm run docs:check and npm run check:ci: passed separately.
  • npm_config_cache=/tmp/rea-npm-cache npm run verify:package: passed twice, including the previously failing unchanged setup verifier and packaged CLI/MCP checks.
  • npm pack --dry-run --cache /tmp/rea-npm-cache: passed.
  • The same reviewed three-file diff was rebased onto main 6fa6f1f. That intervening change is JavaScript analysis/generated metadata, with no setup/verifier/dependency/test-config overlap. 23/23 focused tests passed again; latest-main static/generated-document/package-dry-run checks passed. The full-suite count above belongs to the explicitly named pre-rebase revision.
  • git diff --check: passed.
  • Hosted CI: all 18 jobs passed, including Windows capability/package verification and macOS package verification. The maintainer subsequently merged the PR.

Compatibility, safety, and release

No product behavior, public schema, dependencies, or release metadata changes. No verification assertion is removed or weakened; additional existing assertions now execute on hosts previously misclassified.

Local verification ran on Debian/Linux x64. The matrix checks platform classification, not native execution on Windows/macOS. Real Hopper/Ghidra were not installed or launched.

Review checklist

  • One focused verifier outcome with a Conventional Commit title.
  • Reason for no linked issue stated.
  • Baseline failure and positive/negative capability controls included.
  • Existing product docs/contracts remain accurate.
  • Actual packaged CLI/MCP verification executed in isolated fixtures.
  • Final diff checked for generated tarballs, secrets, unrelated cleanup, and unsupported claims.

🔄 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/584 **Author:** [@kaoru0822-kitauji](https://github.com/kaoru0822-kitauji) **Created:** 10/5/2026 **Status:** ✅ Merged **Merged:** 10/5/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/package-setup-support-verifier` --- ### 📝 Commits (1) - [`96cf9c7`](https://github.com/morluto/rea/commit/96cf9c720b81e85f7a7becf0f6ae57633c448e08) fix(package): separate agent and Hopper setup support ### 📊 Changes **3 files changed** (+90 additions, -4 deletions) <details> <summary>View changed files</summary> ➕ `scripts/verify-package-discovery.d.mts` (+19 -0) 📝 `scripts/verify-package-discovery.mjs` (+15 -4) ➕ `tests/evaluation/package/packageSetupSupport.test.ts` (+56 -0) </details> ### 📄 Description ## Summary Classify packaged agent setup independently from Hopper installation support so the existing package verifier exercises the current setup contract on hosts such as Debian. No tracking issue: found while running the full verifier for #583; reproduced on untouched main before changing the classifier. ## Problem and expected behavior After #577, agent/client configuration requires a supported Node version, while explicit Hopper installation still has separate OS/distro restrictions. The package verifier continued to derive both capabilities from Doctor's `host` check. On this Debian host, real agent setup correctly succeeded, but the verifier selected its unsupported-agent branch and failed with `packaged setup did not reject an unsupported host`. It also skipped the richer setup/readback/recovery checks that should run on this host. ## Change and scope Extract and correct only the verifier's support classifier: - Agent setup requires an affirmative `node` check. - Hopper setup additionally requires an affirmative `host` check and excludes Windows. All product Setup/Doctor/Hopper behavior, schemas, and existing verification assertions remain unchanged. A small declaration file lets the existing TypeScript test project exercise the JavaScript verifier helper directly. ## Contract and boundary impact - Semantic owner and earliest changed stage: development/package verification, classification of Doctor's observed checks. - CLI and MCP/tool-catalog contract: none; no shipped tool or schema changes. - Provider, bridge, target-format, or platform compatibility: no provider behavior changes; verifier correctly distinguishes agent and Hopper eligibility. - Evidence, artifact, provenance, or reconstruction contract: none. - Process execution, authorization, cleanup, or containment impact: existing isolated setup tests now run on supported-Node hosts outside Hopper's OS matrix; explicit Hopper rejection/confirmation behavior is retained. - Generated metadata, package, or installation impact: verifier-only; no dependency, installed package file, or production installation changes. ## Evidence and regression coverage - 16 classification cases cover Linux/macOS/Windows combinations of supported/unsupported Node and host, plus missing-check behavior. - Unsupported Node disables both capabilities even when host support is affirmative. - Missing host support never grants Hopper installation, while an affirmative Node check permits agent verification. - The unchanged old classifier fails **8/16** new tests. The fixed classifier passes **16/16**, plus **7/7** existing package diagnostic tests. - Six isolated production Setup/Doctor scenarios corroborate the contract: Debian, older macOS, and Windows can configure agents on supported Node while explicit Hopper remains unavailable; supported Ubuntu/macOS Hopper setup still requires confirmation; unsupported Node remains blocked without mutation. - The unchanged full package verifier fails on baseline main with the exact assertion above. With this classifier-only repair, it passes the existing planning, idempotency, four-client, readback/backup, failure-recovery, symlink-lifecycle, and skill checks in isolated fixtures. - Independent review found no blocking issues and independently reran the 23 focused tests. ## Validation performed - `npm run check:pr` on commit `11f8f7b` (base `00fa974`): **1,947 tests passed, 1 skipped, 40 failed** in the known seven Hopper/Ghidra Unix-domain-socket suites denied by this sandbox (`listen EPERM`). Failed test titles exactly match the previously verified baseline: no additions or removals. Static checks passed. This is not a full local suite pass. - `npm run docs:check` and `npm run check:ci`: passed separately. - `npm_config_cache=/tmp/rea-npm-cache npm run verify:package`: passed twice, including the previously failing unchanged setup verifier and packaged CLI/MCP checks. - `npm pack --dry-run --cache /tmp/rea-npm-cache`: passed. - The same reviewed three-file diff was rebased onto main `6fa6f1f`. That intervening change is JavaScript analysis/generated metadata, with no setup/verifier/dependency/test-config overlap. **23/23 focused tests** passed again; latest-main static/generated-document/package-dry-run checks passed. The full-suite count above belongs to the explicitly named pre-rebase revision. - `git diff --check`: passed. - Hosted CI: all 18 jobs passed, including [Windows capability/package verification](https://github.com/morluto/rea/actions/runs/37336600822/job/111852952627) and [macOS package verification](https://github.com/morluto/rea/actions/runs/37336600822/job/111852953054). The maintainer subsequently merged the PR. ## Compatibility, safety, and release No product behavior, public schema, dependencies, or release metadata changes. No verification assertion is removed or weakened; additional existing assertions now execute on hosts previously misclassified. Local verification ran on Debian/Linux x64. The matrix checks platform classification, not native execution on Windows/macOS. Real Hopper/Ghidra were not installed or launched. ## Review checklist - [x] One focused verifier outcome with a Conventional Commit title. - [x] Reason for no linked issue stated. - [x] Baseline failure and positive/negative capability controls included. - [x] Existing product docs/contracts remain accurate. - [x] Actual packaged CLI/MCP verification executed in isolated fixtures. - [x] Final diff checked for generated tarballs, secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:14:04 +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#2086
No description provided.