Visual improvements to worker lines with live test-progress suffix (mvnd-1.x) - #1666
Visual improvements to worker lines with live test-progress suffix (mvnd-1.x)#1666ammachado wants to merge 3 commits into
Conversation
d3eab36 to
c81975d
Compare
c81975d to
09d1362
Compare
- Extract buildRequestEnvironment() in DefaultClient for subclass override - Strip MAVEN_ARGS from JvmTestClient and NativeTestClient to block per-test flag overrides - Write an isolated settings.xml in MvndTestExtension so tests never fall back to the runner's user settings (fixes InteractiveTest when actions/setup-java sets interactiveMode) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…fix on mvnd-1.x Reshape the live terminal display: a drawn progress bar with percent on the status line, concise arrow-style worker lines (> :module goal (execution)), and dimmed > IDLE slots for free threads. At addProjectLine, append a styled live test-progress suffix (tests/failures/errors/skipped counts plus the current test class#method) driven by the new PROJECT_TEST_PROGRESS message. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
09d1362 to
d6ac6c0
Compare
gnodet
left a comment
There was a problem hiding this comment.
Well-structured PR adding client-side wire plumbing for future live test-progress display with tasteful visual improvements to worker lines.
Highlights:
- New
PROJECT_TEST_PROGRESSwire message (type 29) correctly marked dormant with a TODO for the daemon-side follow-up buildRequestEnvironment()template-method pattern cleanly separates production and test paths- Isolated
<settings/>file is a correct fix for the CI issue whereactions/setup-javainjects user settings - Solid test coverage:
MessageTestcovers serialization round-trips,TerminalOutputTestcovers progress bar geometry and ANSI style assertions
Two minor observations (not blocking):
renderBar()doesn't clamp input — works correctly for edge cases but could be self-documenting- Plugin version removed from worker display is an intentional UX conciseness tradeoff per the PR description
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code on behalf of gnodet
…dback renderBar() already produced a sane bar for out-of-range input, but the invariant wasn't self-documenting; clamp explicitly and add a regression test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Thanks for the approval! Addressed the one non-blocking suggestion: |
gnodet
left a comment
There was a problem hiding this comment.
Well-structured PR with clean separation between visual improvements and dormant test-progress plumbing. The code is solid, test isolation improvements are valuable CI hygiene, and the new TerminalOutputTest coverage is thorough.
Two minor informational notes:
-
Worker line format change (low): The concise worker line format intentionally drops the
groupId:prefix and plugin version that were added in PR #748 (commit 724d1fe). The PR description acknowledges this trade-off for conciseness — just noting it as a deliberate reversal of a prior design decision. -
TransferEvent.toString() (low): The conditional exception field change is cosmetically unrelated to the PR's main scope. Consider splitting it into its own commit for a cleaner bisect history.
Overall this looks good — the test infrastructure fixes (isolated settings.xml, MAVEN_ARGS stripping) and the visual improvements are well-executed.
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code on behalf of gnodet
Applies the review-driven fixes from the sibling 2.x PR (apache#1667): - PROJECT_TEST_PROGRESS now sorts after PROJECT_STARTED/MOJO_STARTED in the sendQueue, avoiding a race where the progress message could be dequeued before its project's PROJECT_STARTED event. - ProjectTestProgressEvent reuses the existing readUTF/writeUTF null-sentinel convention instead of a redundant boolean-prefixed nullable encoding. - Restores the plugin groupId/version in the worker line display, which was dropped by the visual redesign. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…dback renderBar() already produced a sane bar for out-of-range input, but the invariant wasn't self-documenting; clamp explicitly and add a regression test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gnodet
left a comment
There was a problem hiding this comment.
Re-review after commit b574e61 ("fix: port PR #1667 review feedback to mvnd-1.x"): all prior findings cleanly addressed.
- Message ordering —
PROJECT_TEST_PROGRESSmoved from class order 2 to 5, preventing the dequeue race. - Serialization — Redundant
writeNullableUTF/readNullableUTFremoved; existingreadUTF/writeUTFnull-sentinel convention used correctly. - Worker line display —
pluginGroupIdandpluginVersionrestored.
All 6 CI checks pass. No new issues. ✅
This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.
Claude Code on behalf of @gnodet
…dback renderBar() already produced a sane bar for out-of-range input, but the invariant wasn't self-documenting; clamp explicitly and add a regression test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
What
Presentation-only reshaping of mvnd's live terminal display, plus the client-side plumbing for a live per-test progress suffix, on
mvnd-1.x.Live now (driven by existing messages)
> :module goal (execution).> IDLEslots for free worker threads.Wired but dormant (client-side only)
PROJECT_TEST_PROGRESSwire message (Message.ProjectTestProgressEvent, round-trip serialization).TerminalOutput.appendTestProgress(...)renders a styled suffix[Tests: N, Failures: .., Errors: .., Skipped: ..] Class#method, with failure/error counts in red.Follow-up
The daemon-side feed that emits
PROJECT_TEST_PROGRESS(the surefireForkNodeFactorybridge) is not implemented onmvnd-1.xyet, so the test-progress suffix stays dormant until a follow-up commit lands it. This is a deliberate, spike-gated separation; aTODOon thePROJECT_TEST_PROGRESSconstant records it.Verification
commonunit tests pass (message round-trip; bar geometry; suffix formatting and styles), RAT clean.MultiModuleTestintegration test passes (the reshaping did not break message-driven client assertions).🤖 Generated with Claude Code