mirror of
https://github.com/BillyOutlast/rea.git
synced 2026-10-12 02:26:55 +00:00
* refactor(process): separate capture implementation from analyst workflows * fix(ci): generate source catalog before shard tests
31 KiB
31 KiB
| 1 | harm_rank | location | trigger | current_copy | user_risk | proposed_replacement | implementation_status | verification_result | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 1 | src/domain/errors.ts:AnalysisCapabilityUnavailableError | Requested analysis unavailable | Provider {providerId} cannot execute {operation}: {reason} | Exposes provider and internal operation/reason | This analysis is unavailable for the current target. Choose another analysis or target. | implemented | focused assertions passed; full `npm run check` passed | |||
| 3 | 2 | src/domain/errors.ts:ProviderAdapterError | Provider adapter fails | Provider {providerId} adapter failed during {operation} | Exposes provider and implementation boundary | Analysis could not complete. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 4 | 3 | src/domain/errors.ts:HopperRemoteError | Remote analysis request fails | Hopper request failed ({code}): {safeMessage} | Exposes provider name code and upstream text | Analysis could not complete. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 5 | 4 | src/domain/errors.ts:HopperProtocolError | Malformed provider protocol result | Raw constructor message | Can expose provider protocol and implementation details | Analysis returned an unreadable result. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 6 | 5 | src/domain/errors.ts:AnalysisOutputError | Analysis output fails parsing | Invalid analysis output for {operation}: {reason} | Exposes internal operation and parser reason | Analysis returned an unreadable result. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 7 | 6 | src/domain/errors.ts:AnalysisProtocolError | Application protocol fails | Raw constructor message | Can expose protocol internals | Analysis returned an unreadable result. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 8 | 7 | src/domain/errors.ts:HopperProcessError | Analysis subprocess stops | Hopper bridge stopped unexpectedly with code {exitCode} | Exposes provider bridge and process code | Analysis could not start or stopped unexpectedly. Run `rea doctor`, then try again. | implemented | focused assertions passed; full `npm run check` passed | |||
| 9 | 8 | src/domain/errors.ts:HopperStartError | Analysis subprocess cannot start | Hopper application bridge could not be started | Exposes provider and bridge implementation | Analysis could not start or stopped unexpectedly. Run `rea doctor`, then try again. | implemented | focused assertions passed; full `npm run check` passed | |||
| 10 | 9 | src/domain/errors.ts:BinaryTargetError | Target cannot open | Cannot open artifact: {reason} | May expose raw reason and lacks checks | Preserve the target admission reason; directories name analyze_javascript_application and rea analyze as available alternatives. | implemented | focused assertions passed; full `npm run check` passed | |||
| 11 | 10 | src/domain/errors.ts:ConfigurationError | Environment configuration invalid | Raw constructor message | May expose provider-specific variables and lacks recovery | REA configuration is invalid. Run `rea doctor` and fix the reported setting. | implemented | focused assertions passed; full `npm run check` passed | |||
| 12 | 11 | src/domain/errors.ts:ArtifactOperationError | Artifact inventory or extraction fails | Artifact {operation} failed: {reason} at {logicalPath} (declared_sha256=...) | Exposes paths hashes and internal reason | Reason-specific plain message with safe recovery step. | implemented | focused assertions passed; full `npm run check` passed | |||
| 13 | 12 | src/domain/errors.ts:EvidenceFileError | Evidence file operation fails | Evidence bundle {operation} failed: {reason} | Internal reason token gives weak recovery | Reason-specific plain message with safe recovery step. | implemented | focused assertions passed; full `npm run check` passed | |||
| 14 | 13 | src/domain/errors.ts:EvidenceIntegrityError | Evidence validation fails | Raw constructor message | May expose validation internals and lacks recovery | Evidence is invalid or has changed. Recreate or re-import it, then try again. | implemented | focused assertions passed; full `npm run check` passed | |||
| 15 | 14 | src/domain/errors.ts:UnknownRegistryError | Evidence-state mutation fails | Residual unknown registry mutation failed: {reason} | Exposes internal subsystem and state token | Missing IDs identify the session and retry; concurrent revision conflicts refresh current state. | implemented | focused assertions passed; full `npm run check` passed | |||
| 16 | 15 | src/domain/errors.ts:ProcessCaptureError | Process capture fails | Raw constructor message | May expose process and cleanup internals | Process capture could not complete. Check command access and limits, then try again. | implemented | focused assertions passed; full `npm run check` passed | |||
| 17 | 16 | src/domain/errors.ts:AnalysisTimeoutError | Analysis deadline expires | Analysis operation timed out after {timeoutMs}ms: {operation} | Exposes internal deadline and operation; weak recovery | Analysis took too long. Try a smaller request, then run `rea doctor` if it continues. | implemented | focused assertions passed; full `npm run check` passed | |||
| 18 | 17 | src/domain/errors.ts:HopperTimeoutError | Provider deadline expires | Hopper did not respond within {timeoutMs}ms | Exposes provider and internal deadline | Analysis took too long. Try a smaller request, then run `rea doctor` if it continues. | implemented | focused assertions passed; full `npm run check` passed | |||
| 19 | 18 | src/domain/errors.ts:ProviderSelectionError | Deep-provider selection fails | Analysis provider selection failed ({reason}) for {requestedProviderId}; candidates: {candidateIds} | Retains non-secret local selection context that needs a safe structured projection | Reason-specific guidance with stable candidate IDs and actionable rejection diagnostics | implemented | focused registry/CLI/MCP assertions passed; full `npm run check` passed | |||
| 20 | 20 | src/domain/errors.ts:AnalysisInputError | Parsed analysis input invalid | Invalid analysis input for {operation} | Exposes operation identifier and lacks correction | Analysis input is invalid. Check the arguments and try again. | implemented | focused assertions passed; full `npm run check` passed | |||
| 21 | 21 | src/domain/errors.ts:AnalysisCancelledError | Caller cancels analysis | Analysis operation was cancelled: {operation} | Exposes operation identifier | Analysis was cancelled. Start it again when ready. | implemented | focused assertions passed; full `npm run check` passed | |||
| 22 | 22 | src/domain/errors.ts:HopperCancelledError | Caller cancels provider request | Hopper operation was cancelled | Exposes provider name | Analysis was cancelled. Start it again when ready. | implemented | focused assertions passed; full `npm run check` passed | |||
| 23 | 23 | src/domain/errors.ts:NoBinaryOpenError | Analysis requested without target | No app is open. Ask the user which app to investigate, then call open_binary with its local path. | Low risk; already supplies agent recovery | Keep current copy | implemented | focused assertions passed; full `npm run check` passed | |||
| 24 | 24 | src/server/toolResult.ts:successResult | Successful value violates public output schema | AnalysisOutputError: Analysis output does not match the tool contract | Exposes internal error tag and contract implementation | Analysis returned an unreadable result. Retry once; if it continues, run `rea doctor`. | implemented | focused assertions passed; full `npm run check` passed | |||
| 25 | 24.5 | src/server/registerOfficialTools.ts:capability unknown | Approved unknown tracking records an unavailable analysis | TOOL_NAME is unavailable: PROVIDER_REASON | Exposes an internal tool identifier and provider diagnostic in persistent user-visible evidence | The requested analysis is unavailable for the current target. | implemented | verified by focused MCP integration test | |||
| 26 | 24.6 | src/application/ReferenceSourceImportEntries.ts:failed entry | A partial reference import contains an unreadable entry | Low-level reader diagnostic stored in entry limitations | Can persist filesystem or reader implementation details | Code- and entry-specific safe guidance with a retry, limit, exclusion, or platform recovery step. | implemented | verified by exhaustive focused projection test | |||
| 27 | 24.7 | src/server/registerSessionTools.ts:process residual | Capture records a residual unknown linked to capture Evidence | SCOPE: RAW_REASON | Persists adapter diagnostic and implementation wording | Was SCOPE behavior fully observed during capture? | implemented | verified by focused session MCP test | |||
| 28 | 24.8 | src/server/registerInvestigationTools.ts:changed behavior unknown | Changed-behavior workflow remains incomplete | Changed behavior result EVIDENCE_ID remains STATUS | Persists internal evidence identifier | Did both versions behave the same under a complete controlled replay? | implemented | verified by focused investigation MCP test | |||
| 29 | 24.9 | src/server/registerInvestigationTools.ts:call path unknown | Call-path workflow remains incomplete | Call path START_ADDRESS → GOAL_ADDRESS is STATUS | Persists binary addresses and internal status wording | Can the requested call path be established from complete analysis? | implemented | verified by focused unresolved call-path MCP test | |||
| 30 | 24.91 | src/server/registerInvestigationTools.ts:static runtime unknown | Static/runtime correlation remains incomplete | Static/runtime correlation result EVIDENCE_ID is STATUS | Persists internal evidence identifier | Does runtime behavior match the available static analysis? | implemented | verified by focused unresolved static/runtime MCP test | |||
| 31 | 24.92 | src/server/registerInvestigationTools.ts:reconstruction unknown | Reconstruction verification retains unknown claims | Reconstruction SPECIFICATION_HASH has unknown claims | Persists internal hash | Does the reconstruction satisfy every declared claim? | implemented | verified by focused unknown reconstruction MCP test | |||
| 32 | 24.93 | src/server/registerFunctionComparisonTool.ts:probe rationale | Function comparison is incomplete | Capture complete dossiers with equal providers and analysis limits. | Exposes provider architecture and gives ambiguous equality guidance | Capture complete dossiers for both functions under the same target context and analysis limits. | implemented | verified by focused function-comparison MCP test | |||
| 33 | 24.95 | incur:CLI argument validation | Caller omits or mistypes a command argument | VALIDATION_ERROR with raw Zod Details and fieldErrors including code/path/expected/received | Exposes validator representation and buries the useful correction | REA could not read the command arguments. Check the named argument and its expected type, then try again. | implemented | verified by sanitizer unit tests and real dispatcher missing-argument test | |||
| 34 | 25 | src/application/ReferenceSourceImport.ts:cancelled | Reference-source import is cancelled | Reference source import cancelled | No recovery timing guidance | Reference source import was cancelled. Start it again when ready. | implemented | focused assertions passed | |||
| 35 | 26 | src/application/ReferenceSourceImportPolicy.ts:invalid-limits | Configured import limits are not positive integers | Import limits must be positive integers | Fixed importer ceilings prevented full source imports | Removed fixed byte | entry | depth | and path limits. | removed | verified by greater-than-10000 entry and greater-than-16-MiB regressions |
| 36 | 27 | src/application/ReferenceSourceImportPolicy.ts:invalid-root | Source path cannot resolve or is not a directory | Reference source root could not be resolved / Reference source root is not a directory | Multiple low-level copies and no complete path check | Reference source directory could not be opened. Check that the path exists, is readable, and points to a directory. | implemented | focused assertions passed | |||
| 37 | 28 | src/application/ReferenceSourceImportPolicy.ts:policy | No approved root exists or requested root is outside policy | No approved reference source roots / Reference source root is outside approved roots | Approval friction duplicates direct caller path selection | Removed the configured root allowlist and permission gate; caller-selected directories are validated and traversed directly. | removed | verified by source search and focused import tests | |||
| 38 | 29 | src/application/ReferenceSourceImport.ts:io | Reader fails during traversal | Raw reader error message | May expose filesystem details and inconsistent recovery | Reference source files could not be read. Check directory permissions and try again. | implemented | focused assertions passed | |||
| 39 | 30 | src/application/ReferenceSourceImport.ts:parse | Historical graph validation fails | Raw thrown graph validation message | Can expose internal graph invariants | Reference source could not be indexed. Check that the source tree is readable, then try again. | implemented | focused assertions passed | |||
| 40 | 31 | src/application/ReferenceSourceImportTypes.ts:limit | Import reports terminal limit failure | No reachable constructor found | Declared state may be unreachable; false verification risk | Remove unreachable top-level limit variant; per-entry limit guidance remains caller-visible. | removed | verified by typecheck, exhaustive projection test, and source search | |||
| 41 | 32 | src/application/Setup.ts:configureDetectedClients(backup) | Agent configuration backup fails | {clientName} configuration backup verification failed; no successful configuration was reported. | Exposes machine client key and obscures no-write guarantee | Agent configuration could not be backed up, so no change was made. Check file permissions, then rerun setup. | implemented | focused assertions passed | |||
| 42 | 33 | src/application/Setup.ts:configureDetectedClients(write) | Agent configuration write fails | {clientName} configuration write verification failed; no successful configuration was reported. | Exposes machine client key and gives no recovery | Agent configuration could not be updated. Check file permissions, then rerun setup. | implemented | focused assertions passed | |||
| 43 | 34 | src/application/Setup.ts:configureDetectedClients(readback) | Written agent configuration cannot be verified | {clientName} configuration readback verification failed; no successful configuration was reported. | Exposes machine client key and omits backup recovery | Agent configuration could not be verified after writing. Repair the configuration file or restore its `.rea.backup`, then rerun setup. | implemented | focused assertions passed | |||
| 44 | 35 | src/application/Setup.ts:installSkill | Skill install or semantic readback fails | Agent skill installation or readback failed. | No useful recovery action | REA analysis skill could not be installed or verified. Check permissions for `~/.agents/skills`, then rerun setup. | implemented | focused assertions passed | |||
| 45 | 36 | src/main.ts:serveStdio.onerror | Established MCP client connection reports an error | MCP stdio transport error | Exposes transport implementation and gives no recovery | REA lost its MCP client connection. Restart REA from your MCP client. | implemented | verified by injected transport onerror runtime test | |||
| 46 | 37 | src/main.ts:serveStdio throw | MCP connection cannot be created | Failed to start MCP stdio transport | Exposes transport implementation and gives no recovery | REA could not start its MCP connection. Restart REA from your MCP client; run `rea doctor` if it fails again. | implemented | verified by injected transport startup-throw runtime test | |||
| 47 | 38 | src/main.ts:requestShutdown catch | Connection or analysis session close rejects | Failed to shut down cleanly | Does not explain duplicate-process risk or recovery | REA could not close cleanly. End the REA process before starting it again. | implemented | verified by injected handle-close rejection runtime test | |||
| 48 | 39 | src/main.ts:entrypoint catch | Unhandled rejection escapes run() | Unexpected server startup failure | Vague and lacks diagnostic recovery | REA could not start. Run `rea doctor`, then restart REA from your MCP client. | implemented | verified by injected entrypoint rejection test | |||
| 49 | 40 | src/application/Upgrade.ts:unknown-install-method | Running package is not owned by detectable global npm installation | Update manually with: npm install --global rea-agents@latest | Already gives exact safe recovery | Keep current copy | unchanged | existing focused assertion passed | |||
| 50 | 41 | src/application/Upgrade.ts:install | npm global install subprocess exits unsuccessfully | npm install --global rea-agents@latest failed. | Does not identify bounded likely checks before retry | REA could not update through npm. Check npm registry access and global install permissions, then run: npm install --global rea-agents@latest | implemented | focused assertion passed | |||
| 51 | 42 | src/application/Uninstall.ts:removeClient read | Existing agent configuration cannot be read | Configuration could not be read. | No recovery step | Configuration could not be read. Check file permissions, then rerun uninstall. | implemented | verified by injected filesystem read failure test | |||
| 52 | 43 | src/application/Uninstall.ts:removeClient parse | Agent configuration is malformed | Malformed configuration was preserved without mutation. | Does not name required repair format or retry | Configuration is not valid JSON/TOML and was not changed. Repair it, then rerun uninstall. | implemented | focused JSON assertion passed; TOML path uses same branch | |||
| 53 | 44 | src/application/Uninstall.ts:removeClient backup | Configuration backup copy fails | Configuration backup failed; no mutation was attempted. | No recovery step | Configuration could not be backed up, so no change was made. Check file permissions, then rerun uninstall. | implemented | verified by injected filesystem backup failure test | |||
| 54 | 45 | src/application/Uninstall.ts:removeClient update | Write or semantic readback fails | Configuration update failed; the original was restored and {backupPath} was retained. | Exposes local path and lacks clear next sequence | Report whether the original was restored; if restoration also fails, direct the user to the retained backup. | implemented | verified by injected update and restoration failure tests | |||
| 55 | 45.5 | src/application/Uninstall.ts:removeClient restore | Configuration update fails and restoring the original also fails | Configuration could not be updated or restored. Restore its `.rea.backup` manually, then rerun uninstall. | High risk; persistent configuration may be damaged, but retained backup is authoritative | Keep new recovery copy | implemented | verified by injected restoration failure test | |||
| 56 | 46 | src/application/Uninstall.ts:removeManagedPath symlink | Managed cache/state/skill path is a symbolic link | Refused to follow symlink {path}. | Exposes local path and does not explain manual safety check | REA did not remove this item because its managed path is a symbolic link. Verify the link target before removing it manually. | implemented | focused assertion passed | |||
| 57 | 47 | src/application/Uninstall.ts:removeManagedPath failure | Managed item removal fails | {path} could not be removed. | Exposes local path and gives no recovery | This item could not be removed. Check file permissions, then rerun uninstall. | implemented | verified by injected managed-path removal failure test | |||
| 58 | 48 | src/application/DoctorDiagnostics.ts:node | Runtime version is outside supported ranges | Install Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+. | Low risk; exact dependency recovery | Keep current copy | unchanged | verified by doctor unit test | |||
| 59 | 49 | src/application/Doctor.ts:host | Host OS/distribution is unsupported | REA supports macOS 12+, Ubuntu 24.04+, Fedora 41+, 64-bit Arch Linux, and CachyOS. | Low risk; clearly states supported choices | Keep current copy | unchanged | verified by doctor unit tests | |||
| 60 | 50 | src/application/Doctor.ts:analysis engine | Optional deep-analysis executable cannot be found | Run rea setup to install Hopper, or set HOPPER_LAUNCHER_PATH. | Low risk in setup-specific diagnostic; exact recovery paths | Keep current copy | unchanged | verified by doctor unit tests | |||
| 61 | 51 | src/application/Doctor.ts:target | Optional target path fails shared validation | Supply a readable local app or program path. | Low risk; tells caller valid target class | Keep current copy | unchanged | verified by doctor unit test | |||
| 62 | 52 | src/application/Setup.ts:approval | Setup plan lacks approval | Review the setup plan, then rerun interactively or with --yes. | Low risk; exact authorization recovery | Keep current copy | unchanged | verified by setup unit tests | |||
| 63 | 53 | src/application/Setup.ts:engine install | Approved analysis-engine installation returns no launcher | Hopper installation failed; install Hopper manually or rerun setup after resolving the reported system error. | Mentions component intentionally being installed and offers two bounded recovery paths | Keep current copy | unchanged | verified by setup unit test | |||
| 64 | 54 | src/application/Setup.ts:first-run choice | New macOS analysis-engine install requires a first-run choice | Open Hopper, choose its demo mode or activate a license, then rerun rea doctor --json. | Low risk; exact demo-or-license choice and verification command | Keep current copy | unchanged | verified by setup unit test | |||
| 65 | 55 | src/application/Setup.ts:optional engine | Setup completes without optional deep-analysis engine | Hopper is optional for non-Hopper providers. Rerun with --yes --install-hopper for deep native analysis. | Exposes provider terminology but this is an explanatory setup status rather than an error; recovery command is exact | Keep current copy | unchanged | verified by setup unit test | |||
| 66 | 56 | src/application/Setup.ts:doctor fallback | Post-setup diagnostics remain unhealthy | Run rea doctor and apply each reported remediation. | Low risk; delegates to structured per-check recovery | Keep current copy | unchanged | verified by exact setup unit test | |||
| 67 | 57 | src/application/Setup.ts:unsupported platform | Platform is neither macOS nor Linux | REA supports Hopper on macOS and selected 64-bit Linux distributions. | Low risk; states support boundary | Keep current copy | unchanged | verified by setup unit test | |||
| 68 | 58 | src/application/SetupHost.ts:unsupported Node | Runtime version cannot run setup | Install Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+ and rerun setup. | Low risk; exact dependency and retry | Keep current copy | unchanged | verified by setup host tests | |||
| 69 | 59 | src/application/Setup.ts:unsupported macOS | macOS version is missing or older than 12 | Upgrade to macOS 12 or newer. | Low risk; exact support floor | Keep current copy | unchanged | verified by setup host tests | |||
| 70 | 60 | src/application/Setup.ts:unsupported Linux | Linux distribution is outside supported set | REA supports Hopper on Ubuntu 24.04+, Fedora 41+, 64-bit Arch Linux, and CachyOS. | Low risk; exact supported alternatives | Keep current copy | unchanged | verified by setup unit test | |||
| 71 | 61 | src/application/process/ProcessCli.ts:readJson read | Process scenario or evidence file cannot be read | Raw filesystem exception through CLI framework | Can expose local paths/codes and no recovery | Process input file could not be read. Check that the path exists and is readable. | implemented | verified by focused CLI test | |||
| 72 | 62 | src/application/process/ProcessCli.ts:readJson size | Process scenario or evidence file exceeds 64 MiB | Process JSON input exceeds byte limit | Does not state limit or recovery | Process input file is too large. Reduce it below 64 MiB, then try again. | implemented | verified by focused sparse-file CLI test | |||
| 73 | 63 | src/application/process/ProcessCli.ts:readJson parse | Process scenario or evidence file is malformed JSON | Raw JSON parser exception through CLI framework | Can expose parser implementation and lacks recovery | Process input file is not valid JSON. Repair the file, then try again. | implemented | verified by focused CLI test | |||
| 74 | 64 | src/application/process/ProcessCli.ts:capture scenario parse | Scenario fails Process Capture schema | Raw Zod validation exception through CLI framework | Exposes schema internals and field paths without stable recovery | Process scenario is invalid. Check its required fields and limits, then try again. | implemented | verified by focused CLI test | |||
| 75 | 66 | src/application/process/ProcessCli.ts:wrong evidence | Comparison receives valid Evidence from another workflow | Expected REA process capture Evidence | Uses internal schema name and does not explain recovery | Capture evidence is not from the current process-capture workflow. Create new capture evidence, then try again. | implemented | verified by focused CLI test | |||
| 76 | 67 | src/application/process/ProcessCli.ts:unexpected | Unexpected parser/comparison/canonicalization failure escapes expected classifications | Raw thrown exception through CLI framework | Can expose stack or internal invariant | Process command could not complete. Check the input files and run `rea doctor`, then try again. | implemented | verified by direct unexpected-cause projection test | |||
| 77 | 68 | src/server/registerEvidenceTools.ts:object guard | Validated provider-tool input is unexpectedly not an object | Provider tool input was not an object | Exposes provider architecture and implies caller can fix impossible state | Remove the impossible duplicate guard and parse through the declared JSON-object schema. | removed | verified by typecheck and MCP integration tests | |||
| 78 | 69 | src/server/registerEnhancedTools.ts:object guard | Validated enhanced-tool input is unexpectedly not an object | Validated enhanced input was not a JSON object | Exposes validation/JSON implementation detail | Remove the impossible duplicate guard and parse through the declared JSON-object schema. | removed | verified by typecheck and enhanced MCP integration tests | |||
| 79 | 70 | src/server/registerOfficialTools.ts:object guard | Validated direct-tool input is unexpectedly not an object | Validated MCP tool input was not a JSON object | Exposes MCP validation implementation detail | Remove the impossible duplicate guard and parse through the declared JSON-object schema. | removed | verified by typecheck and official MCP integration tests | |||
| 80 | 71 | src/server/registerProcessComparisonTool.ts:canonical guard | Process comparison value cannot become canonical JSON | Process capture could not be canonicalized | Names internal serialization invariant and gives no recovery | Remove the impossible canonicalization error branch; compare schema-validated values directly. | removed | verified by process-comparison MCP tests and source search | |||
| 81 | 72 | src/server/sessionEvidence.ts:canonical guard | Recorded Evidence cannot become canonical JSON | Evidence could not be canonicalized | Names internal serialization invariant and gives no recovery | Remove the impossible canonicalization error branch; compare parsed Evidence directly. | removed | verified by session Evidence integrity tests and source search | |||
| 82 | 73 | install.sh:--version value | --version has no following value | --version requires a value. | Low risk; identifies correction | Keep current copy | unchanged | verified by shell branch inspection | |||
| 83 | 74 | install.sh:unknown option | Installer receives an unsupported flag | unknown option with caller-provided flag | Low risk; identifies offending input | Keep current copy | unchanged | verified by shell branch inspection | |||
| 84 | 75 | install.sh:platform | Installer runs outside macOS or supported Linux | REA supports macOS and selected 64-bit Linux distributions. | Low risk; states support boundary | Keep current copy | unchanged | verified by shell branch inspection | |||
| 85 | 76 | install.sh:curl missing | curl is absent | curl is required. | No recovery instruction | curl is required. Install curl, then rerun this installer. | implemented | verified by exact missing-curl installer test | |||
| 86 | 77 | install.sh:node missing | node is absent | Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+ is required; install it from nodejs.org and retry. | Low risk; exact versions and recovery | Keep current copy | unchanged | verified by shell branch inspection | |||
| 87 | 78 | install.sh:npm missing | npm is absent | npm is required; install it with Node.js and retry. | Low risk; exact recovery | Keep current copy | unchanged | verified by shell branch inspection | |||
| 88 | 79 | install.sh:node unreadable | node exists but does not report a parseable version | could not determine the active Node.js version. | No cause-local recovery | The active Node.js version could not be read. Check that node works and is on PATH, then retry. | implemented | verified by exact unreadable-Node-version installer test | |||
| 89 | 80 | install.sh:Node 22 floor | Node 22 minor version is below 19 | Node.js VERSION is unsupported; use Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+. | Low risk; exact detected version and supported alternatives | Keep current copy | unchanged | verified by exact installer test using Node 20 and branch inspection | |||
| 90 | 81 | install.sh:Node 24 floor | Node 24 minor version is below 11 | Node.js VERSION is unsupported; use Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+. | Low risk; exact detected version and floor | Keep current copy | unchanged | verified by shell branch inspection | |||
| 91 | 82 | install.sh:version syntax | Explicit version is not exact semantic version | version must be an exact semantic version. | Low risk; exact correction | Keep current copy | unchanged | verified by shell branch inspection | |||
| 92 | 83 | install.sh:release lookup | Latest GitHub release request fails | could not resolve the latest GitHub release. | No fallback despite supporting pinned versions | The latest REA release could not be resolved. Check network access or pass --version VERSION, then retry. | implemented | verified by exact release-lookup installer test | |||
| 93 | 84 | install.sh:release response | Latest release response is not valid expected JSON | Node JSON parser stack followed by the safe release-response message | Leaks a parser stack and buries recovery guidance | The release response was invalid. Retry later or pass --version VERSION. | implemented | verified by exact malformed-release test with parser stderr suppressed | |||
| 94 | 85 | install.sh:release tag | Latest release tag does not match REA release convention | latest release tag is not a valid rea-agents release. | Exposes package naming detail and omits fallback | The latest release tag was invalid. Retry later or pass --version VERSION. | implemented | verified by exact invalid-release-tag installer test | |||
| 95 | 86 | install.sh:npm prefix | npm cannot return its global prefix | could not determine the npm global prefix. | No recovery instruction | The npm global prefix could not be read. Repair the npm configuration, then retry. | implemented | verified by exact macOS npm-prefix installer test | |||
| 96 | 87 | install.sh:npm install | npm global installation exits nonzero | npm package installation failed. | No likely causes or recovery | npm could not install REA. Check registry access and npm permissions, then retry. | implemented | verified by exact installer test | |||
| 97 | 88 | install.sh:binary absent | npm exits successfully without executable | the rea command was not installed at local path | Leaks local path and no recovery | npm completed without installing the rea command. Check the npm global bin directory and PATH, then retry. | implemented | verified by exact absent-installed-command test | |||
| 98 | 89 | install.sh:version read | Installed rea executable cannot report its version | could not read the installed REA version. | No recovery instruction | The installed REA version could not be read. Reinstall the requested version, then retry. | implemented | verified by exact unreadable-installed-version test | |||
| 99 | 90 | install.sh:version mismatch | Installed rea reports a different version | installed version ACTUAL does not match EXPECTED. | Low risk; gives exact integrity mismatch | Keep current copy | unchanged | verified by exact installer test | |||
| 100 | 90.5 | @modelcontextprotocol/server:tool input validation | Caller sends arguments that violate a declared tool schema | Input validation error: Invalid arguments for tool TOOL: FIELD: Invalid input: expected TYPE, received TYPE | Low risk; public tool and field names plus exact type correction | Keep SDK-generated copy | unchanged | verified by real in-memory MCP client/server call with wrong argument type | |||
| 101 | 90.6 | incur:unknown CLI command | Caller enters an unknown REA command | 'COMMAND' is not a command for 'rea'. Suggested command: rea --help | Low risk; identifies input and exact discovery action | Keep framework-generated copy | unchanged | verified by real packaged dispatcher invocation |