Skip to content

feat(logger): Add internal debug tool "inspect mode" for the serve banner - #1655

Draft
RandomByte wants to merge 1 commit into
mainfrom
feat/inspect-mode
Draft

RandomByte wants to merge 1 commit into
mainfrom
feat/inspect-mode

Conversation

@RandomByte

Copy link
Copy Markdown
Member

Add an opt-in inspect mode to the interactive console that renders a request waterfall below the existing serve banner. Enable it with env var UI5_CLI_INSPECT.

This should help us debugging how project builds are triggered in a series of HTTP requests.

Group each request wave by the project reader that served the resources. Each row shows the request count, request intervals, and either the relevant build duration or a cached, stale, not-found, or error state. Keep a completed wave visible until the next wave starts.

Emit request lifecycle events from BuildReader so the logger can correlate virtual resource reads with project state. Attribute completed builds to request waves and projects whose tasks execute. This keeps cache-hit readers marked as cached and retains attribution when direct project requests follow a bootstrap build.

Keep a completed miss under its selected primary candidate, or under all projects when no candidate exists. Render the not-found outcome in yellow instead of retaining the candidate's state from request start.

Report failed reader requests with the project that entered the errored state. This lets the waterfall render the first failed request in red without waiting for another request to sample the new state.

Cap the inspect rows to the exact terminal height. Reserve one data row for the overflow summary when necessary, and hide the region when no row remains below the banner.

waterfall

Add an opt-in inspect mode to the interactive console that renders a request
waterfall below the existing serve banner. Enable it with UI5_CLI_INSPECT.

Group each request wave by the project reader that served the resources. Each row
shows the request count, request intervals, and either the relevant build duration
or a cached, stale, not-found, or error state. Keep a completed wave visible until
the next wave starts.

Emit request lifecycle events from BuildReader so the logger can correlate virtual
resource reads with project state. Attribute completed builds to request waves and
projects whose tasks execute. This keeps cache-hit readers marked as cached and
retains attribution when direct project requests follow a bootstrap build.

Keep a completed miss under its selected primary candidate, or under all projects
when no candidate exists. Render the not-found outcome in yellow instead of
retaining the candidate's state from request start.

Report failed reader requests with the project that entered the errored state. This
lets the waterfall render the first failed request in red without waiting for
another request to sample the new state.

Cap the inspect rows to the exact terminal height. Reserve one data row for the
overflow summary when necessary, and hide the region when no row remains below the
banner.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant