Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
8c6b049
Add Rush reporter repository configuration
TheLarkInn Aug 28, 2026
23de51a
Expose scoped RushSession reporter producers
TheLarkInn Aug 28, 2026
b4f0fc1
Add Rush reporter frontend controls
TheLarkInn Aug 28, 2026
87c9724
Fix reporter telemetry privacy projection
TheLarkInn Aug 28, 2026
e7d7c41
Preserve public diagnostic telemetry fields
TheLarkInn Aug 28, 2026
2450d5f
Fix reporter frontend integration
TheLarkInn Aug 28, 2026
c6b0349
Emit shadow Rush lifecycle events
TheLarkInn Aug 28, 2026
853470e
Complete shadow reporter parity coverage
TheLarkInn Aug 28, 2026
79b1e6e
Add reporter bootstrap handoff
TheLarkInn Aug 28, 2026
5041c96
Fix reporter bootstrap compatibility failures
TheLarkInn Aug 28, 2026
b80a277
Add feature-flagged operation event adapter
TheLarkInn Aug 28, 2026
6af34ca
Add direct Rush reporter demo path
TheLarkInn Aug 28, 2026
481b4f5
Fix operation reporter stream edge cases
TheLarkInn Aug 28, 2026
cbff953
Harden reporter demo integration
TheLarkInn Aug 28, 2026
38c0ea3
Integrate negotiated Heft child reporting
TheLarkInn Aug 28, 2026
52ea12f
Document experimental Rush reporters
TheLarkInn Aug 28, 2026
6223f0d
Add deterministic AI reporter qualification gates
TheLarkInn Aug 28, 2026
8131011
Harden Heft negotiation fallback
TheLarkInn Aug 28, 2026
c9fe80d
Harden reporter documentation examples
TheLarkInn Aug 28, 2026
8a64282
Harden AI reporter qualification gates
TheLarkInn Aug 28, 2026
717e14d
Fix structured Heft output archival
TheLarkInn Aug 28, 2026
8888b3d
Harden diagnostic telemetry dimensions
TheLarkInn Aug 28, 2026
0ad2e30
Fix reporter frontend argument and close lifecycle
TheLarkInn Aug 28, 2026
a3505ae
Harden telemetry session attribution
TheLarkInn Aug 28, 2026
4cb2448
Preserve Rush CLI reporter compatibility
TheLarkInn Aug 28, 2026
00f16e1
Refine reporter flag ownership
TheLarkInn Aug 28, 2026
a5f1f7c
Tolerate value-less custom reporter flags
TheLarkInn Aug 28, 2026
70a28dd
Protect parent telemetry producers
TheLarkInn Aug 28, 2026
547aceb
Fix reporter bootstrap review findings
TheLarkInn Aug 28, 2026
2af714b
Fix bootstrap diagnostic privacy
TheLarkInn Aug 28, 2026
2210b6f
Route legacy bootstrap warnings to stderr
TheLarkInn Aug 28, 2026
e83fa59
Fix operation stream review findings
TheLarkInn Aug 28, 2026
5aa1d2c
Fix reporter demo review findings
TheLarkInn Aug 28, 2026
965e0db
Fix reporter watch and lock handling
TheLarkInn Aug 28, 2026
ae5c475
Fix overlapping reporter watch cycles
TheLarkInn Aug 28, 2026
3ffde88
Align reporter docs with reviewed behavior
TheLarkInn Aug 28, 2026
5fd4d10
Fix AI fallback privacy gates
TheLarkInn Aug 28, 2026
7964dd8
Fix Heft child reporter review findings
TheLarkInn Aug 28, 2026
2220a63
Fix acknowledgement close test race
TheLarkInn Aug 28, 2026
9f8e6af
Preserve fallback on acknowledgement failure
TheLarkInn Aug 28, 2026
94c9d09
Archive structured Heft diagnostics
TheLarkInn Aug 28, 2026
3250879
Redact secret reporter envelope context
TheLarkInn Aug 28, 2026
cc81ba4
Harden Heft child trust boundary
TheLarkInn Aug 29, 2026
f093fbf
Stop execution after parser initialization failure
TheLarkInn Sep 3, 2026
7f47181
Isolate overlapping reporter watch cycles
TheLarkInn Sep 3, 2026
a87994b
Preserve reporter cycles across stream callbacks
TheLarkInn Sep 3, 2026
8431367
Redact secret human reporter messages
TheLarkInn Sep 3, 2026
aa4fa98
Fix reporter engine compatibility routing
TheLarkInn Sep 3, 2026
61a3e54
Force nonzero parser failure exits
TheLarkInn Sep 3, 2026
023cf7e
Emit registrations for collapsed iterations
TheLarkInn Sep 3, 2026
04d04cc
Keep operation sink callbacks compatible
TheLarkInn Sep 3, 2026
2139b32
Keep operation stream callbacks compatible
TheLarkInn Sep 3, 2026
745843b
Align reporter completion with failure exit
TheLarkInn Sep 3, 2026
ccd34f3
Forward daemon operation completion events
TheLarkInn Sep 3, 2026
0ef86fa
Finalize machine privacy and zero-work cycles
TheLarkInn Sep 3, 2026
0debf23
Complete collapsed daemon operation cycles
TheLarkInn Sep 3, 2026
384eab3
Preserve iteration callback compatibility
TheLarkInn Sep 3, 2026
9e90abf
Protect secret logs and callback compatibility
TheLarkInn Sep 3, 2026
90977fb
Preserve local-sensitive producer identity
TheLarkInn Sep 3, 2026
9d58b50
Use resolved iteration for matcher cleanup
TheLarkInn Sep 3, 2026
5a30119
feat(rush-daemon): add request-safe opt-in idle shutdown
TheLarkInn Sep 6, 2026
18cab2d
feat(rush-daemon): acknowledge lifecycle shutdown over the wire
TheLarkInn Sep 6, 2026
f4164b4
fix(rush-daemon): retain ownership until engine cleanup completes
TheLarkInn Sep 6, 2026
bbf37b1
fix(rush-daemon-transport): close endpoints on ownership write failure
TheLarkInn Sep 6, 2026
9bc12ef
Merge reporter R2A repository configuration (#5987)
TheLarkInn Sep 6, 2026
669eb67
Merge existing reporter r2b-frontend-host-controls (#5989)
TheLarkInn Sep 6, 2026
1d7ec49
Merge existing reporter r3a-session-sink (#5988)
TheLarkInn Sep 6, 2026
64f51c9
Merge existing reporter r3b-shadow-events (#5991)
TheLarkInn Sep 6, 2026
5557c68
Merge existing reporter r3c-shadow-parity (#5992)
TheLarkInn Sep 6, 2026
7daf67d
Merge existing reporter r4a-telemetry-privacy (#5990)
TheLarkInn Sep 6, 2026
6679258
Merge existing reporter r5a-operation-adapter (#5996)
TheLarkInn Sep 6, 2026
2a826b8
Merge existing reporter r5b-demo-reporters (#5997)
TheLarkInn Sep 6, 2026
ea30cb9
Merge existing reporter r6a-bootstrap-handoff (#5993)
TheLarkInn Sep 6, 2026
a7055fc
Merge existing reporter r7a-heft-reporting (#6000)
TheLarkInn Sep 6, 2026
04c7ed5
Merge existing reporter r8a-ai-gates (#5999)
TheLarkInn Sep 6, 2026
848126f
Merge existing reporter r10a-demo-docs (#5998)
TheLarkInn Sep 6, 2026
66a9765
[rush] Close non-persistent runners before dependents execute
TheLarkInn Sep 6, 2026
ca63cbb
Merge validated WS0 runner-completion prerequisite
TheLarkInn Sep 6, 2026
1d6c3dc
Fix reporter DAG integration regressions
TheLarkInn Sep 6, 2026
0e19875
feat(rushd): add opt-in client and detached startup
TheLarkInn Sep 6, 2026
a92cef5
Merge reporter integration DAG with daemon lifecycle work
TheLarkInn Sep 6, 2026
185aca0
feat(rushd): expose handshake-based start and status
TheLarkInn Sep 6, 2026
15d9a84
feat(rush-daemon): add request-safe opt-in idle shutdown
TheLarkInn Sep 6, 2026
81aaf5b
fix(rushd): retain request compatibility across additive minors
TheLarkInn Sep 6, 2026
4893c59
feat(rush-daemon): acknowledge lifecycle shutdown over the wire
TheLarkInn Sep 6, 2026
673acfc
feat(rushd): add negotiated stop and guarded restart
TheLarkInn Sep 6, 2026
a84dec9
fix(rush-daemon): retain ownership until engine cleanup completes
TheLarkInn Sep 6, 2026
6a28f42
fix(rushd): wait for original ownership before restart
TheLarkInn Sep 6, 2026
09a7e27
fix(rush-daemon-transport): close endpoints on ownership write failure
TheLarkInn Sep 6, 2026
dbafb37
feat(rushd): add opt-in client and detached startup
TheLarkInn Sep 6, 2026
9d107f5
feat(rushd): expose handshake-based start and status
TheLarkInn Sep 6, 2026
ed400fe
fix(rushd): retain request compatibility across additive minors
TheLarkInn Sep 6, 2026
8400ae7
feat(rushd): add negotiated stop and guarded restart
TheLarkInn Sep 6, 2026
d3b2503
fix(rushd): wait for original ownership before restart
TheLarkInn Sep 6, 2026
489b82f
feat(rushd): expose private launcher logs locally
TheLarkInn Sep 6, 2026
b1baa74
feat(rushd): expose private launcher logs locally
TheLarkInn Sep 6, 2026
ee56bcf
feat(rushd): admit piped stdin with write credits and ordered EOF
TheLarkInn Sep 6, 2026
c98a421
feat(rushd): replace mismatched daemons before submitting requests
TheLarkInn Sep 6, 2026
0f526d4
feat(rushd): bind native phased commands to a warm engine
TheLarkInn Sep 6, 2026
a4d565f
Merge native warm-engine execution and wire client operation rendering
TheLarkInn Sep 6, 2026
93e94e8
feat(rushd): add experimental graph reference client
TheLarkInn Sep 6, 2026
b5631d5
Merge structured daemon graph reference client
TheLarkInn Sep 6, 2026
ed54fe7
fix(rushd): scope native locks to coalesced iterations
TheLarkInn Sep 6, 2026
70c951a
Merge iteration-scoped native leases and refresh prepared graph resumes
TheLarkInn Sep 6, 2026
00b1d30
feat(rushd): wire CLI no-wait and queue timeout controls
TheLarkInn Sep 6, 2026
ef41234
feat(rushd): execute native rushx scripts in owned children
TheLarkInn Sep 6, 2026
1a73bfc
Merge native Rushx execution into the default daemon
TheLarkInn Sep 6, 2026
0d1562e
fix(rushd): prevent fallback replay after terminal control
TheLarkInn Sep 6, 2026
d37b16c
Implement generation-attached daemon warm-set resource policies
TheLarkInn Sep 6, 2026
3aa417c
Merge validated warm-set resource policies for generation attachment
TheLarkInn Sep 6, 2026
1b0912e
feat(rushd): add generation-safe tiered workspace lifecycle
TheLarkInn Sep 6, 2026
da14029
fix(rushd): preserve composite resolvers across generations
TheLarkInn Sep 6, 2026
039c7c8
Integrate generation-safe workspace lifecycle and automatic warm-set …
TheLarkInn Sep 7, 2026
b464cc1
Support bounded pre-execution restart retry and native mutation clients
TheLarkInn Sep 7, 2026
e56bd9c
Preserve both cancellation sources during restart retry
TheLarkInn Sep 7, 2026
8808204
Track applied workspace reload tier for lifecycle status
TheLarkInn Sep 7, 2026
587b740
Merge parent checkpoint for version-selected daemon launcher work
TheLarkInn Sep 7, 2026
00b8cd9
Match parent checkpoint shutdown handler after merge
TheLarkInn Sep 7, 2026
294169b
[rush-client-core] Guard detached startup across starter death
TheLarkInn Sep 7, 2026
0f9cbab
[rush-client-core] Honor cancellation during daemon readiness
TheLarkInn Sep 7, 2026
fa7c5a5
Merge parent restart cancellation fix into startup handoff
TheLarkInn Sep 7, 2026
a6462a3
test(rushd): prove successful native install and update lifecycle
TheLarkInn Sep 7, 2026
701f9d9
Integrate crash-safe detached startup and readiness cancellation
TheLarkInn Sep 7, 2026
11ded2e
Merge current parent restart and mutation contracts for validation
TheLarkInn Sep 7, 2026
1acffd2
test(rushd): validate successful mutations with typed restart retry
TheLarkInn Sep 7, 2026
bd461a0
Fix reviewed reporter output ownership and idle rendering
TheLarkInn Sep 7, 2026
dd73715
Integrate successful native install and update acceptance coverage
TheLarkInn Sep 7, 2026
33253b8
Complete automatic warm generation ownership and status accounting
TheLarkInn Sep 7, 2026
94d101f
Document bounded restart retry and automatic warm status
TheLarkInn Sep 7, 2026
9bc09a7
Integrate reviewed Reporter output ownership and lifecycle fixes
TheLarkInn Sep 7, 2026
b9f693b
Merge validated protocol 0.10 parent into warm/status integration
TheLarkInn Sep 7, 2026
4ebc044
feat(rushd): select and attest version-matched daemon launchers
TheLarkInn Sep 7, 2026
6880f04
Merge current parent retry checkpoint for launcher validation
TheLarkInn Sep 7, 2026
3004c67
Honor daemon.watch as persistent project observation policy
TheLarkInn Sep 7, 2026
b2e7f7d
Integrate attested version-selected daemon startup and native fallback
TheLarkInn Sep 7, 2026
c93fdbf
Integrate lifecycle-owned reload tier into warm workspace status
TheLarkInn Sep 7, 2026
fd63d08
Merge current attested startup parent into warm/status integration
TheLarkInn Sep 7, 2026
16bbdf9
Integrate automatic warm generations, observation policy and live status
TheLarkInn Sep 7, 2026
7c44499
Merge current main before WS3 and WS4 publication
TheLarkInn Sep 7, 2026
ffdd353
List new daemon client packages in generated repository README
TheLarkInn Sep 7, 2026
f31d6a2
Derive live daemon fixture versions from the installed Rush engine
TheLarkInn Sep 7, 2026
988e3a8
Update SDK export snapshot for the new native daemon APIs
TheLarkInn Sep 7, 2026
997b0a7
Fix native daemon workspace path aliases on Windows
TheLarkInn Sep 7, 2026
c12c7e8
Integrate canonical native workspace paths and Windows shell contracts
TheLarkInn Sep 7, 2026
7b07603
Fix Heft reporter pipe detection on Windows
TheLarkInn Sep 7, 2026
816a10f
Fix startup resource lifetime and hosted Node 26 fixtures
TheLarkInn Sep 7, 2026
eb375af
Integrate Windows Heft reporter pipe recognition
TheLarkInn Sep 7, 2026
3972ac2
Integrate startup resource lifetime and hosted runtime corrections
TheLarkInn Sep 7, 2026
e53609a
Align daemon clients and sessions on native filesystem identity
TheLarkInn Sep 7, 2026
46d2cd5
Fix Windows warm IPC fixtures and watcher expectations
TheLarkInn Sep 7, 2026
63c4a7b
Fix native Windows startup exclusion and sharing races
TheLarkInn Sep 7, 2026
7134773
Merge native identity correction into Windows warm fixture fixes
TheLarkInn Sep 7, 2026
24d28a6
Canonicalize shared graph and warm fixture roots
TheLarkInn Sep 7, 2026
5b7d85b
Integrate Windows warm execution and real native file exclusion
TheLarkInn Sep 7, 2026
e51aefd
Merge parent native workspace identity corrections
TheLarkInn Sep 7, 2026
4946830
Integrate parent kernel exclusion and consolidate startup locking
TheLarkInn Sep 7, 2026
dc363d4
Integrate bounded Windows sharing handling and preserve native PATH
TheLarkInn Sep 7, 2026
4dc29c2
test(rushd): isolate native Windows lifecycle fixtures
TheLarkInn Sep 7, 2026
3f3822c
test(rush-client): isolate native graph scenarios and exercise gracef…
TheLarkInn Sep 7, 2026
6a7d4dc
test(rushd): fix native mutation hooks and joined launcher cleanup
TheLarkInn Sep 7, 2026
538dab1
Merge parent native CLI fixture corrections
TheLarkInn Sep 7, 2026
51a8189
test(rushd): budget isolated wrong-version rejection
TheLarkInn Sep 8, 2026
c15bbe8
test(rushd): isolate graph reload setup and join fixture work
TheLarkInn Sep 8, 2026
cee65a4
Integrate measured graph reload setup and fixture lifetime joins
TheLarkInn Sep 8, 2026
1277f9c
fix(rushx): preserve native Windows invocation namespaces
TheLarkInn Sep 8, 2026
025efb2
Integrate exact native Rushx Windows path parity
TheLarkInn Sep 8, 2026
cd01098
test(rush-client): bind complete native callbacks to fixture lifetimes
TheLarkInn Sep 8, 2026
a99e83d
test(rush-client): separate initial build from native reuse assertions
TheLarkInn Sep 8, 2026
4ff0bc2
Preserve native Rushx lookup and release embedded parser test locks
TheLarkInn Sep 8, 2026
df24a79
test(rushd): preserve LF files in generated Git fixtures
TheLarkInn Sep 8, 2026
bdb5a28
test(rushd): budget native graph preparation separately
TheLarkInn Sep 8, 2026
c33c50b
test(rushd): use a bounded native graph integration budget
TheLarkInn Sep 8, 2026
7b3208f
Preserve the active native repository lock during purge
TheLarkInn Sep 8, 2026
ff49ee5
Await Linux group completion and joined fixture cleanup
TheLarkInn Sep 8, 2026
3053d87
test(rushd): assert retention against measured native telemetry
TheLarkInn Sep 8, 2026
70a74bf
Share measured warm expectations and bound integration setup
TheLarkInn Sep 8, 2026
ba5753a
test(rush-client): publish pre-bind PID readiness atomically
TheLarkInn Sep 8, 2026
7d50305
Merge upstream private-member refactors while preserving Heft reporting
TheLarkInn Sep 8, 2026
534a983
Fix aggregate cleanup errors before dependent operations execute
TheLarkInn Sep 9, 2026
1198341
Fix negotiated Heft reporter failure and presentation handling
TheLarkInn Sep 9, 2026
690005a
Retain daemon ownership after request resource cleanup fails
TheLarkInn Sep 9, 2026
a4cb979
Preserve reporter diagnostics and grouped output across watch cycles
TheLarkInn Sep 9, 2026
a48ce82
Fix reporter bootstrap cleanup and abandoned handoff retention
TheLarkInn Sep 9, 2026
1a76b1f
Enforce truthful AI qualification and invocation output budgets
TheLarkInn Sep 9, 2026
b766898
fix(rushd): close WS4 client acceptance gaps
TheLarkInn Sep 9, 2026
ac3163e
Fix reporter rollback and reserved stream destinations
TheLarkInn Sep 9, 2026
a9d3204
Contain reporter timer failures and cancel disabled background work
TheLarkInn Sep 9, 2026
43eb4ca
Integrate reviewed request-cleanup ownership fencing
TheLarkInn Sep 9, 2026
04d138c
Integrate reviewed WS4 terminal and management fixes
TheLarkInn Sep 9, 2026
1b3fb0c
Preserve reporter lifecycle across initialization and finalization fa…
TheLarkInn Sep 9, 2026
7050e04
Select the built engine in local reporter demo instructions
TheLarkInn Sep 9, 2026
42d5d3b
Integrate reviewed Reporter foundation corrections
TheLarkInn Sep 9, 2026
f943a76
Keep R6 cleanup regression independent of later host injection options
TheLarkInn Sep 9, 2026
36d3889
test(rushd): release retained cleanup-failure fixture listener
TheLarkInn Sep 9, 2026
cad7bfd
Share reporter close state across shutdown and initialization disposal
TheLarkInn Sep 9, 2026
94f46c8
Propagate reserved reporter stdout ownership to integration
TheLarkInn Sep 9, 2026
6e4135c
Serialize initialization disposal on each reporter lifecycle lane
TheLarkInn Sep 9, 2026
b9a30e5
Enable explicit persistent Node IPC daemon operations
TheLarkInn Sep 9, 2026
f879ce2
Integrate explicit production IPC telemetry retention
TheLarkInn Sep 9, 2026
0ec25fd
Integrate reviewed reporter boundary fixes onto the current parent
TheLarkInn Sep 9, 2026
cf1d77b
Integrate independent primary presentation corrections
TheLarkInn Sep 9, 2026
6609b1c
Abort attempted reporter initialization before waiting for cleanup
TheLarkInn Sep 9, 2026
3dfd5e7
Preserve secret aliases in combined human diagnostic output
TheLarkInn Sep 9, 2026
676d6ae
Verify minimal combined reporter lifecycle semantics
TheLarkInn Sep 9, 2026
09abeb1
fix(rushd): keep Windows log following cancellable
TheLarkInn Sep 9, 2026
19733c2
Integrate the reviewed Reporter correction batches
TheLarkInn Sep 9, 2026
4822a34
Redact secret aliases from human diagnostic context
TheLarkInn Sep 9, 2026
41bca71
Align final Reporter privacy with the published correction stack
TheLarkInn Sep 9, 2026
9008a55
Retain unrelated absolute source context regression
TheLarkInn Sep 9, 2026
aa7dff0
test(rushd): verify writer resource exit before PID reaping
TheLarkInn Sep 9, 2026
087c94f
Coalesce superseded AI start status for native Windows qualification
TheLarkInn Sep 9, 2026
65076fe
Calibrate IPC retention acceptance from real measurements
TheLarkInn Sep 9, 2026
f338af9
Merge native-private tooling refactor into reviewed integration
TheLarkInn Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ These GitHub repositories provide supplementary resources for Rush Stack:
| [/apps/playwright-browser-tunnel](./apps/playwright-browser-tunnel/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fplaywright-browser-tunnel.svg)](https://badge.fury.io/js/%40rushstack%2Fplaywright-browser-tunnel) | [changelog](./apps/playwright-browser-tunnel/CHANGELOG.md) | [@rushstack/playwright-browser-tunnel](https://www.npmjs.com/package/@rushstack/playwright-browser-tunnel) |
| [/apps/rundown](./apps/rundown/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frundown.svg)](https://badge.fury.io/js/%40rushstack%2Frundown) | [changelog](./apps/rundown/CHANGELOG.md) | [@rushstack/rundown](https://www.npmjs.com/package/@rushstack/rundown) |
| [/apps/rush](./apps/rush/) | [![npm version](https://badge.fury.io/js/%40microsoft%2Frush.svg)](https://badge.fury.io/js/%40microsoft%2Frush) | [changelog](./apps/rush/CHANGELOG.md) | [@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) |
| [/apps/rush-cli-client](./apps/rush-cli-client/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-cli-client.svg)](https://badge.fury.io/js/%40rushstack%2Frush-cli-client) | [changelog](./apps/rush-cli-client/CHANGELOG.md) | [@rushstack/rush-cli-client](https://www.npmjs.com/package/@rushstack/rush-cli-client) |
| [/apps/rush-mcp-server](./apps/rush-mcp-server/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fmcp-server.svg)](https://badge.fury.io/js/%40rushstack%2Fmcp-server) | [changelog](./apps/rush-mcp-server/CHANGELOG.md) | [@rushstack/mcp-server](https://www.npmjs.com/package/@rushstack/mcp-server) |
| [/apps/trace-import](./apps/trace-import/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Ftrace-import.svg)](https://badge.fury.io/js/%40rushstack%2Ftrace-import) | [changelog](./apps/trace-import/CHANGELOG.md) | [@rushstack/trace-import](https://www.npmjs.com/package/@rushstack/trace-import) |
| [/apps/zipsync](./apps/zipsync/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fzipsync.svg)](https://badge.fury.io/js/%40rushstack%2Fzipsync) | [changelog](./apps/zipsync/CHANGELOG.md) | [@rushstack/zipsync](https://www.npmjs.com/package/@rushstack/zipsync) |
Expand Down Expand Up @@ -98,6 +99,7 @@ These GitHub repositories provide supplementary resources for Rush Stack:
| [/libraries/problem-matcher](./libraries/problem-matcher/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fproblem-matcher.svg)](https://badge.fury.io/js/%40rushstack%2Fproblem-matcher) | [changelog](./libraries/problem-matcher/CHANGELOG.md) | [@rushstack/problem-matcher](https://www.npmjs.com/package/@rushstack/problem-matcher) |
| [/libraries/reporter](./libraries/reporter/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-reporter.svg)](https://badge.fury.io/js/%40rushstack%2Frush-reporter) | [changelog](./libraries/reporter/CHANGELOG.md) | [@rushstack/rush-reporter](https://www.npmjs.com/package/@rushstack/rush-reporter) |
| [/libraries/rig-package](./libraries/rig-package/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frig-package.svg)](https://badge.fury.io/js/%40rushstack%2Frig-package) | [changelog](./libraries/rig-package/CHANGELOG.md) | [@rushstack/rig-package](https://www.npmjs.com/package/@rushstack/rig-package) |
| [/libraries/rush-client-core](./libraries/rush-client-core/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-client-core.svg)](https://badge.fury.io/js/%40rushstack%2Frush-client-core) | [changelog](./libraries/rush-client-core/CHANGELOG.md) | [@rushstack/rush-client-core](https://www.npmjs.com/package/@rushstack/rush-client-core) |
| [/libraries/rush-daemon](./libraries/rush-daemon/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-daemon.svg)](https://badge.fury.io/js/%40rushstack%2Frush-daemon) | [changelog](./libraries/rush-daemon/CHANGELOG.md) | [@rushstack/rush-daemon](https://www.npmjs.com/package/@rushstack/rush-daemon) |
| [/libraries/rush-daemon-protocol](./libraries/rush-daemon-protocol/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-daemon-protocol.svg)](https://badge.fury.io/js/%40rushstack%2Frush-daemon-protocol) | [changelog](./libraries/rush-daemon-protocol/CHANGELOG.md) | [@rushstack/rush-daemon-protocol](https://www.npmjs.com/package/@rushstack/rush-daemon-protocol) |
| [/libraries/rush-daemon-transport](./libraries/rush-daemon-transport/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-daemon-transport.svg)](https://badge.fury.io/js/%40rushstack%2Frush-daemon-transport) | [changelog](./libraries/rush-daemon-transport/CHANGELOG.md) | [@rushstack/rush-daemon-transport](https://www.npmjs.com/package/@rushstack/rush-daemon-transport) |
Expand Down
11 changes: 8 additions & 3 deletions apps/heft/src/cli/HeftActionRunner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import type {
import type { InternalHeftSession } from '../pluginFramework/InternalHeftSession';
import type { HeftConfiguration } from '../configuration/HeftConfiguration';
import type { LoggingManager } from '../pluginFramework/logging/LoggingManager';
import type { HeftChildReporter } from '../pluginFramework/logging/HeftChildReporter';
import type { MetricsCollector } from '../metrics/MetricsCollector';
import { HeftParameterManager } from '../pluginFramework/HeftParameterManager';
import { TaskOperationRunner } from '../operations/runners/TaskOperationRunner';
Expand Down Expand Up @@ -71,9 +72,13 @@ export function initializeHeft(
): void {
// Ensure that verbose is enabled on the terminal if requested. terminalProvider.verboseEnabled
// should already be `true` if the `--debug` flag was provided. This is set in HeftCommandLineParser
if (heftConfiguration.terminalProvider instanceof ConsoleTerminalProvider) {
heftConfiguration.terminalProvider.verboseEnabled =
heftConfiguration.terminalProvider.verboseEnabled || isVerbose;
if (
heftConfiguration.terminalProvider instanceof ConsoleTerminalProvider ||
'verboseEnabled' in heftConfiguration.terminalProvider
) {
const terminalProvider: ConsoleTerminalProvider | HeftChildReporter =
heftConfiguration.terminalProvider as ConsoleTerminalProvider | HeftChildReporter;
terminalProvider.verboseEnabled = terminalProvider.verboseEnabled || isVerbose;
}

// Log some information about the execution
Expand Down
40 changes: 31 additions & 9 deletions apps/heft/src/cli/HeftCommandLineParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@ import {
type CommandLineAction
} from '@rushstack/ts-command-line';
import { InternalError, AlreadyReportedError } from '@rushstack/node-core-library';
import { Terminal, ConsoleTerminalProvider, type ITerminal } from '@rushstack/terminal';
import {
Terminal,
ConsoleTerminalProvider,
type ITerminal,
type ITerminalProvider
} from '@rushstack/terminal';

import { MetricsCollector } from '../metrics/MetricsCollector';
import { HeftConfiguration } from '../configuration/HeftConfiguration';
Expand All @@ -23,6 +28,7 @@ import type { IHeftActionOptions } from './actions/IHeftAction';
import { AliasAction } from './actions/AliasAction';
import { getToolParameterNamesFromArgs } from '../utilities/CliUtilities';
import { Constants } from '../utilities/Constants';
import { HeftChildReporter } from '../pluginFramework/logging/HeftChildReporter';

/**
* This interfaces specifies values for parameters that must be parsed before the CLI
Expand All @@ -41,7 +47,8 @@ export class HeftCommandLineParser extends CommandLineParser {
readonly #debugFlag: CommandLineFlagParameter;
readonly #unmanagedFlag: CommandLineFlagParameter;
readonly #debug: boolean;
readonly #terminalProvider: ConsoleTerminalProvider;
readonly #terminalProvider: ITerminalProvider;
readonly #childReporter: HeftChildReporter | undefined;
readonly #loggingManager: LoggingManager;
readonly #metricsCollector: MetricsCollector;
readonly #heftConfiguration: HeftConfiguration;
Expand Down Expand Up @@ -77,12 +84,22 @@ export class HeftCommandLineParser extends CommandLineParser {
this.#debug = !!preInitializationArgumentValues.debug;

// Enable debug and verbose logging if the "--debug" flag is set
this.#terminalProvider = new ConsoleTerminalProvider({
debugEnabled: this.#debug,
verboseEnabled: this.#debug
});
this.#childReporter = HeftChildReporter.tryInitialize();
this.#terminalProvider =
this.#childReporter ??
new ConsoleTerminalProvider({
debugEnabled: this.#debug,
verboseEnabled: this.#debug
});
if (this.#debug && this.#childReporter) {
this.#childReporter.debugEnabled = true;
this.#childReporter.verboseEnabled = true;
}
this.globalTerminal = new Terminal(this.#terminalProvider);
this.#loggingManager = new LoggingManager({ terminalProvider: this.#terminalProvider });
this.#loggingManager = new LoggingManager({
terminalProvider: this.#terminalProvider,
childReporter: this.#childReporter
});
if (this.#debug) {
// Enable printing stacktraces if the "--debug" flag is set
this.#loggingManager.enablePrintStacks();
Expand Down Expand Up @@ -197,6 +214,7 @@ export class HeftCommandLineParser extends CommandLineParser {
commandName,
unaliasedCommandName
};
this.#childReporter?.setCommandName(commandName);
await super.onExecuteAsync();
} catch (e) {
await this.#reportErrorAndSetExitCodeAsync(e as Error);
Expand Down Expand Up @@ -224,7 +242,7 @@ export class HeftCommandLineParser extends CommandLineParser {
args: string[] = process.argv
): IPreInitializationArgumentValues {
if (!this.#debugFlag) {
// The `this._debugFlag` parameter (the parameter itself, not its value)
// The `this.#debugFlag` parameter (the parameter itself, not its value)
// has not yet been defined. Parameters need to be defined before we
// try to evaluate any parameters. This is to ensure that the
// `--debug` flag is defined correctly before we do this not-so-rigorous
Expand All @@ -241,7 +259,11 @@ export class HeftCommandLineParser extends CommandLineParser {

async #reportErrorAndSetExitCodeAsync(error: Error): Promise<void> {
if (!(error instanceof AlreadyReportedError)) {
this.globalTerminal.writeErrorLine(error.toString());
if (this.#childReporter) {
this.#childReporter.emitDiagnostic(Constants.heftPackageName, error, 'error');
} else {
this.globalTerminal.writeErrorLine(error.toString());
}
}

if (this.#debug) {
Expand Down
Loading
Loading