Skip to content

feat(lifecycle): label todo runs - #87

Open
moshloop wants to merge 1 commit into
mainfrom
feat/label-todo-runs-dlahyuu9p7ww
Open

moshloop wants to merge 1 commit into
mainfrom
feat/label-todo-runs-dlahyuu9p7ww

Conversation

@moshloop

@moshloop moshloop commented Sep 9, 2026 •

Copy link
Copy Markdown
Member

Supervised TODO runs appeared as anonymous agent processes in the task list, making concurrent runs hard to distinguish.

Add a pre-run hook that labels each provider request with the TODO ID and link, plus its title, phase, and workspace when available. The provider continues to supply its own runtime facts such as model, mode, and session.

Summary by CodeRabbit

  • New Features
    • Run requests now include todo labels—such as the todo title, phase, and working directory—making concurrent runs easier to distinguish.
    • Blank or whitespace-only todo titles and phases are omitted from run labels.

@coderabbitai

coderabbitai Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: e7ae6c8a-bf03-4452-92be-015e4c55151d

📥 Commits

Reviewing files that changed from the base of the PR and between a20bb64 and 13afcba.

📒 Files selected for processing (3)
  • todos/lifecycle/host_ginkgo_test.go
  • todos/lifecycle/host_hooks.go
  • todos/lifecycle/host_input_ginkgo_test.go

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The lifecycle host adds a PreRun hook that labels run requests with todo metadata. The hook adds todo ID and href, and adds title, phase, and working directory when those values are available. Tests cover hook order and label contents.

Changes

Todo run labels

Layer / File(s) Summary
Add todo metadata to run requests
todos/lifecycle/host_hooks.go, todos/lifecycle/host_ginkgo_test.go, todos/lifecycle/host_input_ginkgo_test.go
The host registers gavel-run-labels when todo labels are available. The hook merges the todo ID and href into request labels, and includes a trimmed title, phase, and working directory when available. Tests check hook order and label values, including whitespace-only titles.

Priority: ⬇️ Low

Change: Feature

Merge Risk: ⚪ Minimal · up to 13afc

The TODO-run labels appear ready to merge after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding labels to TODO lifecycle runs. It matches the implementation and stated objectives.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
✨ Simplify code
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Gavel summary

Source Pass Fail Skip Duration
git 177 1 4 6.8s
ui 215 1 10 23.6s
./pr/ui 651 0 0 20.3s
./site 14 0 0 723ms
./testrunner/ui 65 0 0 273ms
ai 2 0 0 627.777µs
baseline 18 0 0 3ms
betterleaks 2 0 0 55ms
bulk 8 0 0 542.028µs
changegraph 17 0 0 954ms
commit 166 0 0 3.7s
database 8 0 0 277.018µs
entity 7 0 0 5ms
fixtures 85 0 5 595ms
gavel 110 0 0 656ms
github 16 0 0 934ms
github.com/flanksource/gavel 1 0 0 200ms
github.com/flanksource/gavel/ai 14 0 0 310ms
github.com/flanksource/gavel/ai/aifix 13 0 0 10ms
github.com/flanksource/gavel/ai/prfix 9 0 0 90ms
github.com/flanksource/gavel/claudehistory 16 0 0 -
github.com/flanksource/gavel/cmd/gavel 257 0 0 20.1s
github.com/flanksource/gavel/cmd/gavel/choose 18 0 0 -
github.com/flanksource/gavel/commit 277 0 0 22.2s
github.com/flanksource/gavel/examples/sample-app 2 0 0 -
github.com/flanksource/gavel/fixtures 210 0 0 1.7s
github.com/flanksource/gavel/fixtures/record 112 0 0 30ms
github.com/flanksource/gavel/fixtures/types 30 0 0 60ms
github.com/flanksource/gavel/git 70 0 0 500ms
github.com/flanksource/gavel/github 174 0 2 -
github.com/flanksource/gavel/github/activity 8 0 0 10ms
github.com/flanksource/gavel/github/cache 76 0 6 -
github.com/flanksource/gavel/internal/database 7 0 9 -
github.com/flanksource/gavel/internal/streamtee 6 0 0 -
github.com/flanksource/gavel/internal/ttyrender 16 0 0 -
github.com/flanksource/gavel/lint 51 0 0 330ms
github.com/flanksource/gavel/linters 59 0 0 680ms
github.com/flanksource/gavel/linters/betterleaks 14 0 0 20ms
github.com/flanksource/gavel/linters/golangci 2 0 0 -
github.com/flanksource/gavel/linters/jscpd 23 0 0 -
github.com/flanksource/gavel/linters/oxlint 15 0 0 -
github.com/flanksource/gavel/linters/reactdoctor 18 0 0 -
github.com/flanksource/gavel/linters/tsc 12 0 0 30ms
github.com/flanksource/gavel/pr/ui 334 0 0 3.4s
github.com/flanksource/gavel/procfile 7 0 0 -
github.com/flanksource/gavel/prompts/registry 9 0 0 240ms
github.com/flanksource/gavel/prwatch 114 0 0 -
github.com/flanksource/gavel/report 8 0 0 -
github.com/flanksource/gavel/service 46 0 0 4.5s
github.com/flanksource/gavel/snapshots 23 0 0 1.5s
github.com/flanksource/gavel/status 60 0 0 1.2s
github.com/flanksource/gavel/testrunner 156 0 0 4.2s
github.com/flanksource/gavel/testrunner/bench 12 0 0 -
github.com/flanksource/gavel/testrunner/history 6 0 0 -
github.com/flanksource/gavel/testrunner/parsers 102 0 0 30ms
github.com/flanksource/gavel/testrunner/runners 76 0 0 130ms
github.com/flanksource/gavel/testrunner/ui 53 0 0 270ms
github.com/flanksource/gavel/todos 69 0 0 40ms
github.com/flanksource/gavel/todos/bulk 9 0 0 -
github.com/flanksource/gavel/todos/entity 6 0 0 -
github.com/flanksource/gavel/todos/labels 70 0 0 -
github.com/flanksource/gavel/todos/native 21 0 12 -
github.com/flanksource/gavel/todos/portable 5 0 1 -
github.com/flanksource/gavel/todos/prompt 41 0 0 20ms
github.com/flanksource/gavel/todos/query 19 0 0 -
github.com/flanksource/gavel/todos/runtime 43 0 8 -
github.com/flanksource/gavel/todos/types 129 0 0 -
github.com/flanksource/gavel/todosync 3 0 0 60ms
github.com/flanksource/gavel/utils 51 0 0 -
github.com/flanksource/gavel/verify 109 0 0 70ms
githubpush 39 0 0 1ms
jsonb 8 0 0 229.58µs
kubernetes 43 0 0 303ms
labels 16 0 0 492.731µs
lifecycle 220 0 0 807ms
native 0 0 1 182.428µs
outline 56 0 0 45ms
parsers 22 0 0 591.876µs
procfile 66 0 0 34.0s
prompt 16 0 0 39ms
prwatch 35 0 0 4ms
registry 11 0 0 27ms
run 26 0 0 36ms
runcache 11 0 0 198ms
runners 4 0 0 808.859µs
runtime 23 0 27 3.6s
serve 28 0 0 594ms
service 4 0 0 379.175µs
snapshots 2 0 0 1ms
status 2 0 0 49ms
taskhistory 4 0 1 1ms
testrunner 13 0 0 151ms
todos 25 0 0 15ms
types 12 0 0 37ms
utils 116 0 0 78ms
verifier 22 0 0 33ms
verify 70 0 0 76ms

Totals: 5546 passed · 2 failed · 86 skipped · 2m41s

Failing tests

git — GetCommitHistory > with author filtering > should filter by author name or email

Expected
    <string>: Yash Mehrotra
to contain substring
    <string>: Moshe Immerman

ui — Test UI E2E > [Test UI E2E setup/teardown]

Expected success, but got an error:
    <*errors.errorString | 0x2bc39ce10a30>: 
    websocket url timeout reached
    {
... (2 more lines truncated)

View full results

@github-actions

github-actions Bot commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Gavel summary

Source Pass Fail Skip Duration
(unknown) 0 0 1 -

Totals: 0 passed · 0 failed · 1 skipped · -

View full results

Base automatically changed from feat/todo-prompt-runs to main September 9, 2026 08:08
@adityathebe
adityathebe force-pushed the feat/label-todo-runs-dlahyuu9p7ww branch from fa01746 to bc1d711 Compare September 24, 2026 05:51
Attach the TODO ID, title, link, phase, and workspace directory to the provider request before a supervised run starts. Operators can then distinguish concurrent agent processes in the task list; the hook-order and label assertions cover the new request metadata.
@adityathebe
adityathebe force-pushed the feat/label-todo-runs-dlahyuu9p7ww branch 2 times, most recently from b97eeb9 to 13afcba Compare September 24, 2026 06:01
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.

1 participant