[rush] Rush Reporter Overhaul
メンテナーはふだん 1 日以内に返信
@TheLarkInn がすでに取り組んでいます。
2026年7月2日 から。
評価
この issue はまだ評価されていません。
説明
Some Issues w/ Rush Terminal Reporting today:
- We have no reporter system in place.
- AI models struggle to work with rush for a variety of reasons
- Long running processes occupying the foreground
- Terminal output is super verbose by default - eats up lots of the default context window
- Error messages don't provide the best context or assistance (for both users and agents)
Plan:
- Most linting and coverage tools have a
--reporterfeature which customizes output based on where and how it is being run (ci, local machine, even OS specific). LeverageCOPILOT_CLIenv variable to auto trigger an AI reporter system--reporter=aithat will provide agent-optimized terminal feedback. Based on eval's we can tweak the format to be JSON, Plaintext, Markdown, etc. and determine the level of verbosity (or not) that works best for agents. - Once we have a
--reportersystem, drastically reduce the default reporter output for allrush <command name>commands to minimal. P0 would be to get rid of the long diagnostic feedback ofrush buildand replace with 3 things consuming no more than a few lines:- Spinner/progress bar to indicate progress
- One line dynamic activity marquee that reassures users that the command is still running. (What project currently getting built, etc)
- One line result with standard exit code and output
- Errors get migrated to have a new hierarchy that both the AI and default reporters can respond/visualize in specific ways
📦 Implementation status (updated 2026-07-15)
The RFC (specs/2026-07-12-rush-reporter-overhaul.md) and the standalone @rushstack/rush-reporter public-beta package (28/28 features) have landed as a 6-PR stack:
| PR | Phase |
|---|---|
| #5865 | 1 · Contracts & baselines (package scaffold, event envelope, producer API, diagnostics, NDJSON protocol, ReporterManager, goldens) |
| #5866 | 2 · Bootstrap & compatibility adapters |
| #5867 | 3 · Shadow structured emission (session, lifecycle, telemetry, exit codes) |
| #5868 | 4 · Opt-in reporters (default/plaintext/json/ai/file/legacy, selection, StreamCollator replacement, problem matchers) |
| #5869 | 5 · Heft protocol track |
| #5870 | 6 · Performance budgets & daemon-aligned major default flip |
⚠️ Not yet enabled in the live CLI. The package is standalone — nothing in
rush-lib/apps/rushimports it yet, sorush buildstill renders through the legacyStreamCollator. The P0 3-line default (spinner + activity marquee + result) described above ships when the rollout steps below are complete.
✅ Remaining work to enable the new reporting system
Wire the package into the toolchain
- Add
@rushstack/rush-reporteras a dependency ofrush-libandapps/rush(RFC §5.1) - Generate the frozen bootstrap-envelope encoder + protocol-major constant into the zero-dependency
install-run-rushbuild (RFC §5.1)
Bootstrap prelude — install-run-rush (Phase 2)
- Add the two-stage prelude: parse early controls and buffer Rush-owned startup events to the handoff file before
rush-libloads (RFC §5.5) - Publish the handoff-file path via env var for the frontend to replay
Frontend host — apps/rush (Phase 2)
- Create the authoritative
ReporterManagerbefore version selection; replay then delete the bootstrap handoff (RFC §4.3) - Install cross-version compatibility adapters (new-frontend/old-engine, old-frontend/new-engine) keeping legacy rendering visible
Engine integration — rush-lib (Phases 3–4)
- Expose the
RushSessionevent sink + scoped producers to actions and plugins (RFC §5.3) - Emit shadow structured lifecycle + diagnostic events with no output change; validate telemetry + exit-code parity (Phase 3)
- Replace
StreamCollatorinOperationExecutionManagerwith raw semantic operation events, gated on the new reporter path (RFC §5.13) - Register CLI controls in
ts-command-line:--reporter,--output,--log-level, and the--quiet/--verbose/--debugaliases (RFC §5.6–5.7) - Read
agentEnvironmentVariables+ reporter config fromrush.json(RFC §5.8) - Wire the telemetry projection subscriber into Rush's telemetry path (RFC §5.17)
- Derive command exit codes via
deriveExitCodeFromEvents(RFC §5.18)
Heft integration (Phase 5)
- Teach Heft to negotiate the child descriptor and emit NDJSON; retain raw-stream fallback for older Heft (RFC §5.19)
- Register problem matchers for external/child output recovery (RFC §5.16)
Compatibility & deprecations (Phase 6 — daemon-aligned major)
- Deprecate, then remove,
ILogger.terminalandRushSession.terminalProvider(RFC §5.3) - Gate incompatible plugins before
apply()with the structured migration diagnostic (RFC §5.3) - Bridge legacy
AlreadyReportedErrorsentinels and prohibit new usage (RFC §5.15) - Preserve the
RUSH_REPORTER=legacyemergency fallback for ≥1 major (RFC §8.2)
Rollout controls & gates (RFC §8.2)
- Add the experimental repository setting (
experiments.json) for pre-major opt-in - Pass the deterministic AI-corpus gates before enabling agent auto-selection
- Flip defaults in the daemon-aligned major: automatic selection on, terminal APIs removed (Phase 6)
Docs & later cleanup (Phase 7)
- Document migration, verbosity aliases,
RUSH_REPORTER, and--reporter/--output - (Later major) Remove the legacy renderer after ≥1 major of default use with no blocking canary regressions
- (Later major) Remove the
AlreadyReportedErrorbridge once ecosystem criteria are met
- 主要言語
- TypeScript
- スター
- 6.5k
- フォーク
- 708
- 平均マージ
- 4日 13時間
- マージ済み PR(30日)
- 62
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/rushstack のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
microsoft/rushstack#5971 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
microsoft/rushstack#5902 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
microsoft/rushstack#5839 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
microsoft/rushstack#5683 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
メンテナーはふだん 1 日以内に返信
microsoft/rushstack の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
diegosouzapw/OmniRoute#14869 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 94/100
メンテナーはふだん 1 日以内に返信
-
status: waiting triage
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
freeCodeCamp/freeCodeCamp#70412 ·
メンテナーはふだん 1 日以内に返信
-
Mend: dependency security vulnerability untriaged
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
opensearch-project/OpenSearch-Dashboards#12816 ·
メンテナーはふだん 1 日以内に返信