Skip to content

MILAB-5867: Expose uiQueueUsesForBatchSetup feature flag in tengo SDK#1489

Open
vgpopov wants to merge 2 commits intomainfrom
MILAB-5867/ui0feature-flag-task
Open

MILAB-5867: Expose uiQueueUsesForBatchSetup feature flag in tengo SDK#1489
vgpopov wants to merge 2 commits intomainfrom
MILAB-5867/ui0feature-flag-task

Conversation

@vgpopov
Copy link
Contributor

@vgpopov vgpopov commented Mar 5, 2026

Summary

  • Add uiQueueUsesForBatchSetup to feats.lib.tengo — reads the backend feature flag of the same name
  • Update fallback runner selection logic in exec/limits.lib.tengo: when the flag is false, ui-tasks queue uses RunCommand/batch instead of RunCommand/executor
  • Default behavior is preserved: flag defaults to true on the backend, so ui-tasks continues using the local executor unless explicitly changed

Test plan

  • Verify with a backend that has the flag default (true): ui-tasks queue resolves to RunCommand/executor
  • Verify with --workflow-ui-queue-must-use-batch flag set: ui-tasks queue resolves to RunCommand/batch when batch runner is available

Depends on: https://github.com/milaboratory/pl/pull/1659

Add `uiQueueUsesForBatchSetup` to feats.lib.tengo and update the fallback
runner selection logic in exec/limits.lib.tengo.

When the flag is false, the ui-tasks queue uses RunCommand/batch instead of
the default RunCommand/executor, enabling batch execution for UI tasks.
@notion-workspace
Copy link

@changeset-bot
Copy link

changeset-bot bot commented Mar 5, 2026

⚠️ No Changeset found

Latest commit: 1c4655e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new feature flag, uiQueueUsesForBatchSetup, into the Tengo SDK. This flag provides granular control over how ui-tasks queues select their execution runner, enabling them to utilize batch processing under specific conditions while maintaining backward compatibility and the existing default executor usage.

Highlights

  • New Feature Flag Exposure: The uiQueueUsesForBatchSetup feature flag has been added to feats.lib.tengo, allowing the Tengo SDK to read its value from the backend.
  • UI Task Queue Runner Logic Update: The fallback runner selection logic in exec/limits.lib.tengo was updated. When uiQueueUsesForBatchSetup is false and batch processing is available, the ui-tasks queue will now use RunCommand/batch instead of RunCommand/executor.
  • Preserved Default Behavior: The default behavior remains unchanged, as the uiQueueUsesForBatchSetup flag defaults to true on the backend, ensuring ui-tasks continue to use the local executor unless explicitly configured otherwise.
Changelog
  • .gitignore
    • Added new ignore patterns for agent-related temporary files (.mcp_*, .mcp.*).
  • sdk/workflow-tengo/src/exec/limits.lib.tengo
    • Modified the conditional logic for runnerType assignment to incorporate the uiQueueUsesForBatchSetup feature flag.
  • sdk/workflow-tengo/src/feats.lib.tengo
    • Introduced uiQueueUsesForBatchSetup as a new feature flag, with a comment explaining its purpose regarding ui-tasks queue resource type selection.
Activity
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly introduces the uiQueueUsesForBatchSetup feature flag to allow configuring the runner for the UI tasks queue. The changes are well-contained and follow the existing patterns in the codebase. I have one minor suggestion to improve the readability of the conditional logic.

// Fallback: existing logic for backward compatibility with older backends
runnerType := constants.RUNNER_EXECUTOR
if feats.hasBatch && queueName != constants.UI_TASKS_QUEUE {
if feats.hasBatch && (queueName != constants.UI_TASKS_QUEUE || !feats.uiQueueUsesForBatchSetup) {
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

While the logic is correct, the condition can be made more readable by expressing the exception case more directly. The intent is to use the batch runner if available, unless it's the UI queue and the uiQueueUsesForBatchSetup flag is enabled. Rewriting the condition to !(A && B) makes this exception clearer.

if feats.hasBatch && !(queueName == constants.UI_TASKS_QUEUE && feats.uiQueueUsesForBatchSetup) {

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.

3 participants