Repository navigation
fix: improve progress and warning output - #1154
Open
kireetivar wants to merge 19 commits into
Open
kireetivar wants to merge 19 commits into
kireetivar wants to merge 19 commits into
Conversation
Serialize console events and visible progress without holding a Logback appender monitor. Preserve worker stderr masking and routing, add severity-aware progress APIs, register native encoder metadata, and cover concurrency with regression tests.
Route audit diagnostics through one warning/error path, preserve throwable causes, normalize warning prefixes, and remove duplicate progress warnings. Include logger, correlation, and audit regression tests.
Move unknown comment-marker and unreadable-session diagnostics to DEBUG. Cover comment-marker behavior and document exception rendering and warning-level filtering.
Remove writeError*/errorWithException and restore the original LOG.error calls and AviatorLoggerImpl.error behavior. Warning routing is unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The lazy terminal width initializer can log, and the console appender needs the render lock to emit. Resolving the width in a pre-render hook avoids a lock-order deadlock. Add a regression test. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ProgressWriterPrintStreamWrapper cleared progress and wrote in two steps, so another thread could redraw progress in between. Do both under the render coordinator lock. Add regression tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep captured and suppressed output separate from terminal progress. Borrow the captured execution context for worker warnings without closing command resources, while preserving active worker contexts and stderr redirects. Add capture isolation and context lifecycle regression tests, and document the output coordination rules for US 2287146.
Remove the null-logger fallback and placeholder conversion. Exercise the normal Aviator warning path in regression tests without swallowing initialization errors. Restore the unchanged progress interface and wrapper to their original content, removing newline-only changes from the US 2287146 branch diff.
kireetivar
requested review from
anishkumarnagaraj-design,
ankit2995 and
umadevis1
November 2, 2026 10:15
kireetivar
marked this pull request as ready for review
November 2, 2026 10:16
Preserve the common-fpr extraction and warning cleanup. Resolve correlation test imports against the extracted FPR types, retaining direct Aviator warning coverage and DEBUG-only comment-symbol diagnostics. Validate with 739 JVM tests, 12 output masking and RPC functional tests, and a fresh fcli shadow JAR build.
Apply --log-level to the file appender threshold. Keep the root logger at WARN or the requested more detailed level so console warnings remain visible. Add regression coverage and update the logging documentation for US 2287146.
Report optional lookup failures once with the original exception. Preserve required lookup exceptions without duplicate logging. Cover both paths for US 2287146.
Warn on unknown response types and unrecognized audit request IDs without advancing work or releasing capacity. Keep completed duplicates at DEBUG and preserve error handling. Add regression coverage for US 2287146.
Verify one visible ERROR and a RETRY_LIMIT_EXCEEDED result with its reason. Check that late duplicates do not repeat completion or release capacity. Preserve DEBUG telemetry for US 2287146.
Explain captured stderr and worker redirect precedence. Document session and DAST warning policies and the blocking behavior of original console streams for US 2287146.
anishkumarnagaraj-design
approved these changes
Nov 4, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Improve console output readability.
Implement the agreed warning routing and exception formatting changes in fcli core and Aviator.
LOG.warn, instead of printing and recording them separately at DEBUG.UnsynchronizedAppenderBaseand resolve terminal width before rendering to avoid lock-order deadlocks.WARN:once. Preserve already-prefixed messages.Acceptance criteria
WARN:prefix. Keep exception types, messages and causes visible.Evidence
After: Coordinator, appender and wrapper regression tests cover complete writes, nested writers and concurrent warnings.
After:
ProgressTerminalWidthLockOrderTestdetects the unsafe order without hanging later tests.After:
ProgressCaptureIsolationTestcovers collection, suppression, worker captures, shared-terminal streams and blocked captures.After: Tests verify exact context reuse, open command-owned Unirest resources, clean worker stacks and existing worker-context precedence.
FcliExecutionContextTest: 8 passed.ProgressCaptureIsolationTest: 4 passed.Modules: common-core, aviator-common, aviator, common-action, ai-assist and util.
build-native.ps1and GraalVM CE 21.0.2.CI certificate distrust ran against an isolated GraalVM copy, without changing the global trust store.
OutputMaskingSpecandOutputMaskingRPCSpecpassed on both binaries: 12 tests per platform, with no failures or skipped tests.Those binaries predate file-only log-level filtering and the review follow-up; native tests were not repeated for these changes.
These overlap the earlier 36. Coverage includes session lookups, DAST anomalies, duplicates, and exhausted-retry reporting.
Open validation finding
Both native binaries write the synthetic action
--secretvalue to the early argument log when--debugenables file logging.Console masking checks pass. This finding concerns the file log, not console warning output.
Source inspection shows that
FcliExecutionStrategy.logVersionAndArgs()runs before action-defined masks are registered.The argument logger, action mask registration and file-log masking converter are unchanged from the branch base.
This points to an existing masking issue. A baseline native binary was not tested.
This PR does not change that separate registration order.
Blast Radius: CLI
Core logging and progress changes affect all fcli commands, including nested commands and RPC/MCP executions.
Observable changes:
--log-levelfilters the file log only. Console warnings remain visible, including with--log-level=ERROR.Captured and suppressed output does not take this lock.
Context propagation for unrelated direct
LOG.*calls on worker threads remains outside this change.Log4j requires separately tested exception patterns; its
%ex{0}is not equivalent to Logback's pattern.