[PR #4161] feat(mcp): support real-time operation progress and ETA notifications #6100

Open
opened 2026-10-31 01:11:51 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/4161
Author: @sailormk2
Created: 10/15/2026
Status: 🔄 Open

Base: main ← Head: feat/mcp-activity-dashboard


📝 Commits (4)

  • 240870f feat(mcp): support real-time operation progress and ETA notifications
  • e337c8f fix(mcp): 코드 리뷰 피드백 반영 (동시성 락, 타이머 및 에러 Evidence 연계 개선)
  • 4b6962d Merge origin/main into feat/mcp-activity-dashboard
  • f358d7a fix(mcp): stabilize activity progress and journal retention

📊 Changes

15 files changed (+1368 additions, -5 deletions)

View changed files

📝 .agents/skills/reverse-engineer-anything/SKILL.md (+9 -0)
➕ docs/mcp-activity.md (+47 -0)
➕ src/application/activity/ActivityJournal.test.ts (+147 -0)
➕ src/application/activity/ActivityJournal.ts (+311 -0)
➕ src/application/activity/activityEstimates.test.ts (+117 -0)
➕ src/application/activity/activityEstimates.ts (+127 -0)
📝 src/cli.ts (+2 -0)
➕ src/cli/activityCommands.ts (+202 -0)
📝 src/cliCommandNames.ts (+1 -0)
📝 src/main.ts (+3 -0)
📝 src/main/transport.ts (+5 -0)
📝 src/server/EvidenceMcpServer.test.ts (+173 -1)
📝 src/server/EvidenceMcpServer.ts (+208 -4)
📝 src/server/createServer.ts (+5 -0)
➕ tests/boundary/cli/activityCommands.test.ts (+11 -0)

📄 Description

Summary

Adds real-time progress and estimated completion time (ETA) tracking during MCP analysis operations, and integrates operator progress briefing instructions into the packaged skill.

Problem

Previously, when an agent dispatched a long-running analysis tool (such as decompilation, CFG exploration, or binary overview), progress notifications were only emitted once at the start (0/1) and once at the finish (1/1). Operators had no visibility into intermediate progress percentage, elapsed time, or estimated completion time. Furthermore, agents lacked clear guidelines on briefing the operator about execution status.

Solution

  1. Periodic Real-Time Progress Notifications:
    • EvidenceMcpServer now emits continuous MCP notifications/progress updates every second during active tool execution.
    • Progress percentage and ETA are derived from historical median completion durations recorded in the local Activity Journal.
  2. Modularized Activity Estimations:
    • Extracted shared estimation and formatting logic (estimateFor, calculateProgress, formatDuration, estimateActivity) into src/application/activity/activityEstimates.ts.
    • Enhanced rea activity CLI and JSON output to include formatted progress percentages and remaining times.
  3. Agent Skill Guidance:
    • Updated reverse-engineer-anything skill to instruct agents to explicitly inform operators of the current phase, estimated runtime, and terminal dashboard (rea activity --watch) availability during analysis.
  4. Documentation:
    • Updated docs/mcp-activity.ko.md describing real-time progress notification behavior and estimation mechanics.

Validation

  • npm run check:fast: Typecheck and linting passed cleanly.
  • npm run test:local:
    • src/application/activity/activityEstimates.test.ts (6 tests passed)
    • src/application/activity/ActivityJournal.test.ts (2 tests passed)
    • src/server/EvidenceMcpServer.test.ts (4 tests passed, including periodic progress verification)
  • npm run build:cached: Packaged skills regenerated and verified.
  • npm run docs:check: Consistency and manifest validation passed.

🔄 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/4161 **Author:** [@sailormk2](https://github.com/sailormk2) **Created:** 10/15/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/mcp-activity-dashboard` --- ### 📝 Commits (4) - [`240870f`](https://github.com/morluto/rea/commit/240870fdedb29fb40cfa24b60d53d74050837859) feat(mcp): support real-time operation progress and ETA notifications - [`e337c8f`](https://github.com/morluto/rea/commit/e337c8f6a9966d79005545d512440269322c8adb) fix(mcp): 코드 리뷰 피드백 반영 (동시성 락, 타이머 및 에러 Evidence 연계 개선) - [`4b6962d`](https://github.com/morluto/rea/commit/4b6962d9ca9667fc8f263e7a1a76c927c968076f) Merge origin/main into feat/mcp-activity-dashboard - [`f358d7a`](https://github.com/morluto/rea/commit/f358d7a75ecead7f9659afa3b6d9228d74fda107) fix(mcp): stabilize activity progress and journal retention ### 📊 Changes **15 files changed** (+1368 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/reverse-engineer-anything/SKILL.md` (+9 -0) ➕ `docs/mcp-activity.md` (+47 -0) ➕ `src/application/activity/ActivityJournal.test.ts` (+147 -0) ➕ `src/application/activity/ActivityJournal.ts` (+311 -0) ➕ `src/application/activity/activityEstimates.test.ts` (+117 -0) ➕ `src/application/activity/activityEstimates.ts` (+127 -0) 📝 `src/cli.ts` (+2 -0) ➕ `src/cli/activityCommands.ts` (+202 -0) 📝 `src/cliCommandNames.ts` (+1 -0) 📝 `src/main.ts` (+3 -0) 📝 `src/main/transport.ts` (+5 -0) 📝 `src/server/EvidenceMcpServer.test.ts` (+173 -1) 📝 `src/server/EvidenceMcpServer.ts` (+208 -4) 📝 `src/server/createServer.ts` (+5 -0) ➕ `tests/boundary/cli/activityCommands.test.ts` (+11 -0) </details> ### 📄 Description ### Summary Adds real-time progress and estimated completion time (ETA) tracking during MCP analysis operations, and integrates operator progress briefing instructions into the packaged skill. ### Problem Previously, when an agent dispatched a long-running analysis tool (such as decompilation, CFG exploration, or binary overview), progress notifications were only emitted once at the start (`0/1`) and once at the finish (`1/1`). Operators had no visibility into intermediate progress percentage, elapsed time, or estimated completion time. Furthermore, agents lacked clear guidelines on briefing the operator about execution status. ### Solution 1. **Periodic Real-Time Progress Notifications**: - `EvidenceMcpServer` now emits continuous MCP `notifications/progress` updates every second during active tool execution. - Progress percentage and ETA are derived from historical median completion durations recorded in the local Activity Journal. 2. **Modularized Activity Estimations**: - Extracted shared estimation and formatting logic (`estimateFor`, `calculateProgress`, `formatDuration`, `estimateActivity`) into `src/application/activity/activityEstimates.ts`. - Enhanced `rea activity` CLI and JSON output to include formatted progress percentages and remaining times. 3. **Agent Skill Guidance**: - Updated `reverse-engineer-anything` skill to instruct agents to explicitly inform operators of the current phase, estimated runtime, and terminal dashboard (`rea activity --watch`) availability during analysis. 4. **Documentation**: - Updated `docs/mcp-activity.ko.md` describing real-time progress notification behavior and estimation mechanics. ### Validation - `npm run check:fast`: Typecheck and linting passed cleanly. - `npm run test:local`: - `src/application/activity/activityEstimates.test.ts` (6 tests passed) - `src/application/activity/ActivityJournal.test.ts` (2 tests passed) - `src/server/EvidenceMcpServer.test.ts` (4 tests passed, including periodic progress verification) - `npm run build:cached`: Packaged skills regenerated and verified. - `npm run docs:check`: Consistency and manifest validation passed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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#6100
No description provided.