Skip to content

Conversation

@Hellebore
Copy link

@Hellebore Hellebore commented May 2, 2025

We want users to have realistic expectations about our ML-powered features, so we're going to add a little UI tag to remind them that we're working to improve the model and it will get better over time.

Summary by Sourcery

Add "experimental" badges and status to ML-powered features to set user expectations about ongoing improvements

New Features:

  • Introduce an experimental status for ML-powered features
  • Add a beaker icon to visually indicate experimental features

Enhancements:

  • Update UI components to support experimental feature status
  • Modify toolbar, command bar, and action button components to display experimental badges

Chores:

  • Add a global flag IS_ML_EXPERIMENTAL to control experimental feature labeling
@Hellebore
Copy link
Author

This is a benchmark review for experiment bakeoff.
Run ID: bakeoff/benchmark_2025-05-02T11-38-04_v1-36-0-dirty.

This pull request was cloned from https://github.com/KittyCAD/modeling-app/pull/6648. (Note: the URL is not a link to avoid triggering a notification on the original pull request.)

Experiment configuration
review_config: # User configuration for the review # - benchmark - use the user config from the benchmark reviews # - <value> - use the value directly user_review_config: enable_ai_review: true enable_rule_comments: false enable_complexity_comments: benchmark enable_security_comments: benchmark enable_tests_comments: benchmark enable_comment_suggestions: benchmark enable_pull_request_summary: benchmark enable_review_guide: benchmark enable_approvals: false base_branches: [base-sha.*] ai_review_config: # The model responses to use for the experiment # - benchmark - use the model responses from the benchmark reviews # - llm - call the language model to generate responses model_responses: comments_model: benchmark comment_validation_model: benchmark comment_suggestion_model: benchmark complexity_model: benchmark security_model: benchmark tests_model: benchmark pull_request_summary_model: benchmark review_guide_model: benchmark overall_comments_model: benchmark # The pull request dataset to run the experiment on pull_request_dataset: # CodeRabbit - https://github.com/neerajkumar161/node-coveralls-integration/pull/5 - https://github.com/gunner95/vertx-rest/pull/1 - https://github.com/Altinn/altinn-access-management-frontend/pull/1427 - https://github.com/theMr17/github-notifier/pull/14 - https://github.com/bearycool11/AI_memory_Loops/pull/142 # Greptile - https://github.com/gumloop/guMCP/pull/119 - https://github.com/autoblocksai/python-sdk/pull/335 - https://github.com/grepdemos/ImageSharp/pull/6 - https://github.com/grepdemos/server/pull/61 - https://github.com/websentry-ai/pipelines/pull/25 # Graphite - https://github.com/KittyCAD/modeling-app/pull/6648 - https://github.com/KittyCAD/modeling-app/pull/6628 - https://github.com/Varedis-Org/AI-Test-Repo/pull/2 - https://github.com/deeep-network/bedrock/pull/198 - https://github.com/Metta-AI/metta/pull/277 # Copilot - https://github.com/hmcts/rpx-xui-webapp/pull/4438 - https://github.com/ganchdev/quez/pull/104 - https://github.com/xbcsmith/ymlfxr/pull/13 - https://github.com/tinapayy/B-1N1T/pull/36 - https://github.com/coder/devcontainer-features/pull/6 # Questions to ask to label the review comments review_comment_labels: [] # - label: correct # question: Is this comment correct? # Benchmark reviews generated by running # python -m scripts.experiment benchmark <experiment_name> benchmark_reviews: [] 
@Hellebore
Copy link
Author

Reviewer's Guide

This PR introduces an 'experimental' status for features, primarily targeting ML functionality, controlled by a new global constant IS_ML_EXPERIMENTAL. The implementation involves adding the new status to type definitions, updating UI components (Toolbar, CommandComboBox, ActionButtonDropdown, tooltips) to visually indicate this status (usually with a 'beaker' icon), and modifying configuration files to apply this status conditionally to relevant ML features.

File-Level Changes

Change Details Files
Introduced a new 'experimental' status for toolbar items and commands.
  • Added IS_ML_EXPERIMENTAL constant.
  • Added 'experimental' to ToolbarItem['status'] type.
  • Added 'experimental' to CommandStatus type.
  • Updated createMachineCommand to handle the status property.
src/lib/constants.ts
src/lib/toolbar.ts
src/lib/commandTypes.ts
src/lib/createMachineCommand.ts
Applied the 'experimental' status conditionally to ML-related features.
  • Updated toolbarConfig for Text-to-CAD items based on IS_ML_EXPERIMENTAL.
  • Updated command configurations ('Prompt-to-edit', 'Text-to-CAD') to set status and modify descriptions.
src/lib/toolbar.ts
src/lib/commandBarConfigs/modelingCommandConfig.ts
src/lib/commandBarConfigs/applicationCommandConfig.ts
Updated UI components to display an 'Experimental' badge/indicator.
  • Added a new 'beaker' icon.
  • Modified Toolbar to recognize 'experimental' status for enabling elements.
  • Added badge rendering in Toolbar tooltips.
  • Added an 'Experimental' tooltip to the Text-to-CAD button on the Home page.
  • Added badge rendering in CommandComboBox options.
  • Added icon rendering in ActionButtonDropdown for experimental items.
src/Toolbar.tsx
src/Home.tsx
src/components/CustomIcon.tsx
src/components/CommandComboBox.tsx
src/components/ActionButtonDropdown.tsx

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

Copy link
Author

@Hellebore Hellebore left a comment

Choose a reason for hiding this comment

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

Hey @Hellebore - I've reviewed your changes - here's some feedback:

  • Consider extracting the 'Experimental' badge UI (icon and text) into a reusable component, as it's implemented similarly in multiple places (Toolbar tooltips, Home button tooltip, CommandComboBox, ActionButtonDropdown).
  • The logic checking if an item status is 'available' or 'experimental' is repeated in several locations within Toolbar.tsx; consider abstracting this into a helper function or consolidating the check.
Here's what I looked at during the review
  • 🟡 General issues: 1 issue found
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Documentation: all looks good

LangSmith trace

Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
{displayHotkeys(hotkey)}
</kbd>
{status === 'experimental' && (
<div className="text-xs flex justify-center item-center gap-1 pb-1 border-b border-chalkboard-50">
Copy link
Author

Choose a reason for hiding this comment

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

issue (typo): Possible typo in flex alignment class.

Tailwind's class is 'items-center', not 'item-center'. Please update it.

Suggested change
<div className="text-xs flex justify-center item-center gap-1 pb-1 border-b border-chalkboard-50">
<div className="text-xs flex justify-center items-center gap-1 pb-1 border-b border-chalkboard-50">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants