Skip to content

Show "experimental" badges around ML functionality #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: base-sha/6866c9d418663087e674bb32da089b29b6bf72c0
Choose a base branch
from

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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants