Skip to content

Add rustBench Wave Terminal widget - #1

Merged
brettheap merged 1 commit into
mainfrom
feat/rustbench-widget
Jul 25, 2026
Merged

Add rustBench Wave Terminal widget#1
brettheap merged 1 commit into
mainfrom
feat/rustbench-widget

Conversation

@brettheap

@brettheap brettheap commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a brands@rust rustBench widget beside pyBench and C++Bench
  • resolve rustBench to the rust-bench container launcher
  • document the shared widget and launcher check
  • add a config-only refresh option for safely preserving an existing launcher

Validation

  • rendered the template with a test WSL connection and font size
  • verified the generated Rust icon, label, init script, and launcher mapping
  • verified --skip-launcher preserves the existing launcher
  • passed shell syntax and whitespace checks

Summary by Sourcery

Add a rustBench Wave Terminal widget mapped to the rust-bench container, and support updating Wave config without reinstalling the workBenches launcher.

New Features:

  • Introduce a rustBench widget using the brands@rust icon and rust-bench container with its own bench directory and compose file.

Enhancements:

  • Add a --skip-launcher option to the widget install script to refresh Wave config while preserving an existing wave-container-shell launcher.
  • Extend the wave-container-shell launcher to resolve rustBench to the rust-bench container and associated bench directory.

Documentation:

  • Document the rustBench widget configuration and behavior alongside other bench widgets.
  • Update README to include rustBench in the benches table and describe its Rust, cross-compilation, and WebAssembly focus.
  • Document launcher check usage including the rustBench widget.

Copilot AI review requested due to automatic review settings July 25, 2026 06:03
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sourcery-ai

sourcery-ai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Reviewer's Guide

Adds a rustBench Wave Terminal widget wired to the rust-bench container and introduces an option to update widget configuration without overwriting an existing launcher.

Sequence diagram for rustBench widget launching rust-bench container

sequenceDiagram
    actor User
    participant WaveTerminal
    participant wave_container_shell_sh as wave-container-shell.sh
    participant resolve_bench_defaults
    participant docker_compose as docker-compose
    participant zsh

    User->>WaveTerminal: select rustBench widget
    WaveTerminal->>wave_container_shell_sh: wave-container-shell.sh --check rustBench
    wave_container_shell_sh->>resolve_bench_defaults: resolve_bench_defaults rustBench
    resolve_bench_defaults-->>wave_container_shell_sh: container=rust-bench, bench_dir, compose_file
    wave_container_shell_sh->>docker_compose: docker-compose -f compose_file up -d rust-bench
    wave_container_shell_sh->>zsh: zsh with workBenches mounts
Loading

Sequence diagram for installer with optional launcher replacement

sequenceDiagram
    actor User
    participant install_widgets_sh as install-workbenches-widgets.sh
    participant launcher as wave-container-shell.sh

    User->>install_widgets_sh: install-workbenches-widgets.sh [options]
    install_widgets_sh->>install_widgets_sh: parse --skip-launcher
    alt install_launcher true
        install_widgets_sh->>launcher: install -m 755 wave-container-shell.sh
        install_widgets_sh-->>User: echo Installed launcher
    else install_launcher false
        install_widgets_sh-->>User: echo Launcher unchanged
    end
    install_widgets_sh-->>User: echo Updated widgets and connections
Loading

File-Level Changes

Change Details Files
Introduce a rustBench bench/widget wired to the rust-bench container and document its behavior.
  • Document rustBench widget properties (key, label, icon, container mapping, bench directory, compose file) and its container-shell contract alongside existing benches.
  • Update README bench table to include rustBench with its container name, bench directory, and brief description.
  • Add rustBench to the launcher check examples so users can verify the rust bench container-shell contract.
docs/workbenches-widgets.md
README.md
Extend the wave-container-shell launcher to resolve rustBench to the rust-bench container and associated bench directory.
  • Add rustBench/rust-bench case to bench resolution function, mapping to rust-bench container and devBenches/rustBench compose path.
  • Preserve existing behavior for other benches while reusing the same contract and directory layout for rustBench.
bin/wave-container-shell.sh
Add a config-only installation mode that refreshes Wave widgets/connections without replacing the existing workBenches launcher.
  • Introduce an install_launcher flag defaulting to true in the widget install script.
  • Add a --skip-launcher CLI option that flips install_launcher to false, documented in usage output.
  • Guard the launcher install and installer status message on install_launcher so --skip-launcher preserves any existing wave-container-shell.sh while still updating widgets and connections JSON.
scripts/install-workbenches-widgets.sh
Update the widgets template to define the rustBench Wave widget and its connection.
  • Add a rustBench widget entry to the workbenches.widgets.json template using the brands@rust icon and rust-bench container mapping.
  • Ensure the template stays consistent with other bench widgets and the documented contract for pyBench/rustBench.
templates/workbenches.widgets.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@brettheap

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sonarqubecloud

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • The resolve_bench_defaults function is starting to accumulate a lot of hard‑coded case branches; consider refactoring this to a data-driven map of bench key → container/paths so adding new benches like rustBench doesn’t require editing shell logic in multiple places.
  • When --skip-launcher is used, the script always prints Launcher unchanged: ... even if the launcher does not yet exist; you might want to guard this message with a file existence check or clarify the wording so it’s not misleading on first-time installs.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `resolve_bench_defaults` function is starting to accumulate a lot of hard‑coded case branches; consider refactoring this to a data-driven map of bench key → container/paths so adding new benches like `rustBench` doesn’t require editing shell logic in multiple places.
- When `--skip-launcher` is used, the script always prints `Launcher unchanged: ...` even if the launcher does not yet exist; you might want to guard this message with a file existence check or clarify the wording so it’s not misleading on first-time installs.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@brettheap
brettheap merged commit 7c06cf6 into main Jul 25, 2026
3 checks passed
@brettheap
brettheap deleted the feat/rustbench-widget branch July 25, 2026 06:04

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new rustBench Wave Terminal widget and wires the shared launcher to open the rust-bench devcontainer, alongside the existing bench widgets. Also introduces an installer option to refresh Wave config without overwriting the launcher script.

Changes:

  • Add rustBench widget definition to the Wave widgets template and document it.
  • Teach wave-container-shell.sh to resolve rustBench to the rust-bench container + bench directory.
  • Add --skip-launcher to the widget installer to update Wave config without reinstalling the launcher.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
templates/workbenches.widgets.json Adds the rustBench widget pointing to the shared launcher script.
scripts/install-workbenches-widgets.sh Adds --skip-launcher option and conditional launcher installation.
README.md Documents rustBench in the benches table.
docs/workbenches-widgets.md Documents rustBench behavior and adds launcher check example.
bin/wave-container-shell.sh Adds rustBench resolution to rust-bench defaults.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +85 to +87
if [[ "$install_launcher" == true ]]; then
install -m 755 "$repo_dir/bin/wave-container-shell.sh" "$workbenches_root/scripts/wave-container-shell.sh"
fi
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