Skip to content

feat(browserstack-service): render end-of-build summary entries (SDK-7358) - #200

Open
shivam5643 wants to merge 2 commits into
mainfrom
feat/SDK-7358-version-nudges
Open

shivam5643 wants to merge 2 commits into
mainfrom
feat/SDK-7358-version-nudges

Conversation

@shivam5643

Copy link
Copy Markdown
Collaborator

What is this about?

Renders end-of-build customer-visible summary entries (SDK-7358).

The binary returns CustomerVisibleSummaryEntry items on StopBinSessionResponse for
end-of-build messages such as the SDK version nudge. The service had neither the proto
field nor a renderer, so those messages arrived and were silently dropped for every wdio
customer running through the CLI path.

Adds the proto field and a renderer that writes body verbatim, picks the stream from
severity, and archives a copy to the log file. Deliberately does not branch on
entryType, so future entry types need no further service change — matching node, java,
python and ruby.

Stream choice: warn/warning/error -> stderr, everything else including unknown ->
stdout, so a malformed severity cannot false-alarm CI tooling watching stderr.

Worth noting for reviewers: only wdio-mocha (non-multiremote) reaches this path today, since
CLISupportedFrameworks is ['mocha'] and the classic path bypasses the binary entirely.

Related Jira task/s

Release (mandatory for every PR — required for the ready-for-review label)

Version bump: (required — tick exactly one)

  • minor (backwards-compatible feature)
  • patch (bug fix or other small change)

Release notes type: (optional)

  • New Feature
  • Bug Fix
  • Other Improvement

Release notes (customer-facing): (optional but encouraged)

  • End-of-build messages from BrowserStack — such as a notice that your SDK version is outdated or has a known issue — are now shown at the end of your test run and written to the SDK log.

Release notes (internal): (required — engineer-facing; what actually changed / why)

  • Adds entries + CustomerVisibleSummaryEntry to sdk-messages.proto, matching the binary's canonical definition (field 5).
  • GrpcClient.renderCustomerVisibleSummary writes body verbatim (not through the logger, whose per-line prefix would break the binary's box-border alignment) and archives a copy via BStackLogger for CI runners that keep only the log directory.
  • Failure-tolerant: a render error is swallowed and logged at debug; stopBinSession still returns its response.

Checklist

  • Ready to review
  • Has it been tested locally?

PR Validations

Run Tests: Comment RUN_TESTS to trigger sanity tests.

Testing

  • 6 new tests driven through the real stopBinSession path; file passes 8/8.
  • tsc and eslint both exit 0.
  • No manual changeset added — per this template the changeset is generated automatically from the Release section above.
  • Paired v8 PR raised separately against the v8 branch.
  • Depends on browserstack-binary#1782 (the binary must emit the entry). Deploy order: railsApp -> binary -> SDK.

🤖 Generated with Claude Code

…7358)

The binary returns CustomerVisibleSummaryEntry items on StopBinSessionResponse
for end-of-build messages such as the SDK version nudge. The service had neither
the proto field nor a renderer, so those messages were dropped for every wdio
customer running through the CLI path.

Adds the proto field and a renderer that writes `body` verbatim, picks the
stream from `severity` (warn/warning/error -> stderr, everything else including
unknown -> stdout so a malformed severity cannot trip CI stderr watchers), and
archives a copy to the log file for runners that keep only the log directory.

Deliberately does not branch on `entry_type`, so future entry types need no
further service change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@shivam5643
shivam5643 requested a review from a team as a code owner September 16, 2026 08:06
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited), Workspace UI (inherited)

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: f3babbca-27e1-468e-9e9d-e15717c1cca0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

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.

2 participants