Order waiting runs by item: priority as an expression

クローズ
#711 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

関連するプルリクエストがすでにマージされています。

  • #787 @usine-phildl による — マージ済み

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
44/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript

調査の方向性

Start with packages/orchestrator/src/lease-order.ts to see how loop priority is read and how waiting runs are ordered. Trace the existing trigger.if CEL expression support and the loop editor's check and preview paths. Done means priority expressions evaluate against the item when a run starts waiting, failures log and use 0, and Overview and the lease log show the evaluated value.

索引モデルが issue の本文から書いたものです。

説明

enhancement

Waiting runs lease worker slots in the order in leaseOrder: reattaching runs, then the loop's priority, then the lane position, then event arrival. All runs of one loop on one lane lease in event order, so the operator can't put one item behind another.

On 2026-10-29, seven start-dev runs for the TSDoc issues #299–#305 were waiting for approval, and the operator wanted them done after the bug fixes queued that morning. Approving them would have leased them first, because their events were a day older. The only way to put them last was to cancel the runs, remove ready-for-agent, and add it again later by hand.

Done when a loop's priority can be a CEL expression over the item, as trigger.if is, so that the operator can order runs by labels without a new vocabulary. For example:

priority: item.labels.nodes.exists(l, l.name == "low-priority") ? -1 : 0
  • The scheduler evaluates the expression when the run starts waiting, as it reads priority today, and a failed evaluation counts as 0 and is logged.
  • Overview and the lease log show the evaluated value.
  • The loop editor's check and preview cover the expression.
主要言語
TypeScript
スター
1
フォーク
0
平均マージ
4時間 26分
マージ済み PR(30日)
280

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

basaltbytes/usine のほかの issue

basaltbytes/usine の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。