[rush] Rush Reporter Overhaul
Los mantenedores suelen responder en 1 día
@TheLarkInn ya está trabajando en esto.
Desde el 2/7/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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
- Lenguaje dominante
- TypeScript
- Estrellas
- 6.5k
- Forks
- 708
- Merge medio
- 4 d 7 h
- PR fusionados (30 d)
- 61
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/rushstack
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/rushstack#5971 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
microsoft/rushstack#5902 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/rushstack#5839 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
microsoft/rushstack#5683 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/rushstack
Issues similares
-
docs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
remix-run/react-router#15558 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
solana-foundation/pay-kit#341 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
supabase/agent-skills#607 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día