Skip to content

ROB-3754 - Disable todowrite behavior controls in scheduled prompts - #1959

Merged
naomi-robusta merged 9 commits into
masterfrom
claude/scheduled-prompt-output-location-rVB1J
Apr 30, 2026
Merged

naomi-robusta merged 9 commits into
masterfrom
claude/scheduled-prompt-output-location-rVB1J

Conversation

@naomi-robusta

@naomi-robusta naomi-robusta commented Apr 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Updated the scheduled prompts executor to disable todowrite-related behavior controls when creating chat requests for prompt execution.

Key Changes

  • Added behavior_controls dictionary to ChatRequest initialization in _execute_prompt method
  • Disabled todowrite_instructions and todowrite_reminder behavior controls for scheduled prompt execution

Implementation Details

The behavior controls are explicitly set to False to prevent todowrite functionality from being triggered during scheduled prompt execution. This ensures that scheduled prompts execute with consistent behavior and don't generate unwanted todowrite instructions or reminders.

https://claude.ai/code/session_01DXoK9Pyd2v6CsowRikjNbZ

Summary by CodeRabbit

  • New Features

    • Added a configurable "fast mode" for scheduled prompts that changes how TODO items are handled so reporting appears in prompt analysis rather than appended to conversation history.
  • Bug Fixes

    • Scheduled prompt execution now disables specific TODO-related controls in fast mode, reducing unintended instruction propagation and improving consistency of prompt reports.

claude added 2 commits April 28, 2026 06:53
Disable TodoWrite instructions/reminder for scheduled prompt runs. Without
this, the model writes the report and then issues a final TodoWrite call
to mark its last todo complete, which produces one extra ANSWER_END turn
whose content is just a stub acknowledgement — that stub becomes
ChatResponse.analysis while the actual report is buried in
conversation_history.

https://claude.ai/code/session_01DXoK9Pyd2v6CsowRikjNbZ
Signed-off-by: Claude <noreply@anthropic.com>

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@github-actions

github-actions Bot commented Apr 28, 2026 •

Copy link
Copy Markdown
Contributor

📂 Previous Runs

📜 #5 · Run @ __f468773__ (#25106706845) — Apr 29, 11:47 UTC

✅ Results of HolmesGPT evals

Automatically triggered by commit f468773 on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 35.1s 5 10 $0.2458 106,001 103,936 23,954 2,065 869 78,994 24,942 — —
✅ 101_loki_historical_logs_pod_deleted 72.7s 9 16 $0.3788 220,626 216,944 29,173 3,682 732 185,423 31,521 — —
✅ 112_find_pvcs_by_uuid 18.8s 3 3 $0.1783 60,539 59,555 21,543 984 543 38,001 21,554 — —
✅ 12_job_crashing 35.1s 5 12 $0.2599 111,131 109,123 24,627 2,008 563 81,487 27,636 — —
✅ 176_network_policy_blocking_traffic_no_skills 61.2s 9 17 $0.3616 208,580 205,207 27,920 3,373 621 174,154 31,053 — —
✅ 227_count_configmaps_per_namespace[0] 26.0s 5 9 $0.2018 95,227 93,967 20,958 1,260 587 72,375 21,592 — —
✅ 243_pod_names_contain_service 32.6s 5 8 $0.2169 99,703 98,040 21,744 1,663 420 76,004 22,036 — —
✅ 24_misconfigured_pvc 47.7s 7 14 $0.2907 146,794 144,069 24,386 2,725 806 117,387 26,682 — —
✅ 43_current_datetime_from_prompt 4.7s 1 — $0.0116 17,104 16,982 16,982 122 122 16,972 10 — —
✅ 51_logs_summarize_errors 22.9s 4 5 $0.1904 78,476 77,354 21,501 1,122 350 55,841 21,513 — —
✅ 61_exact_match_counting 11.9s 3 3 $0.1392 53,018 52,639 17,971 379 232 34,657 17,982 — —
Total 33.5s avg 5.1 avg 9.7 avg $2.4750 1,197,199 1,177,816 29,173 19,383 869 931,295 246,521 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 74 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)
📜 #4 · Run @ __988e8d1__ (#25060639736) — Apr 28, 15:19 UTC

✅ Results of HolmesGPT evals

Automatically triggered by commit 988e8d1 on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 45.0s 6 11 $0.2623 128,061 125,747 23,975 2,314 801 100,943 24,804 — —
✅ 101_loki_historical_logs_pod_deleted 68.2s 8 13 $0.3112 177,715 174,704 25,481 3,011 744 148,767 25,937 — —
✅ 112_find_pvcs_by_uuid 21.0s 3 3 $0.1762 60,472 59,574 21,550 898 503 38,013 21,561 — —
✅ 12_job_crashing 36.9s 5 12 $0.2478 110,858 108,987 24,593 1,871 583 83,253 25,734 — —
✅ 176_network_policy_blocking_traffic_no_skills 50.9s 6 14 $0.2804 131,429 128,825 25,678 2,604 819 102,436 26,389 — —
✅ 227_count_configmaps_per_namespace[0] 26.4s 4 9 $0.1933 77,737 76,481 21,019 1,256 589 54,837 21,644 — —
✅ 243_pod_names_contain_service 35.3s 4 8 $0.2137 79,737 77,926 21,813 1,811 857 55,210 22,716 — —
✅ 24_misconfigured_pvc 50.8s 7 16 $0.2955 150,830 147,989 24,863 2,841 668 121,456 26,533 — —
✅ 43_current_datetime_from_prompt 5.5s 1 — $0.1094 17,112 16,982 16,982 130 130 0 16,982 — —
✅ 51_logs_summarize_errors 28.6s 4 5 $0.1921 78,147 76,887 21,244 1,260 468 55,631 21,256 — —
✅ 61_exact_match_counting 11.0s 2 1 $0.1264 34,813 34,466 17,475 347 279 16,981 17,485 — —
Total 34.5s avg 4.5 avg 9.2 avg $2.4084 1,046,911 1,028,568 25,678 18,343 857 777,527 251,041 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 74 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)
📜 #3 · Run @ __3dddaef__ (#25060534071) — Apr 28, 15:10 UTC

✅ Results of HolmesGPT evals

Automatically triggered by commit 3dddaef on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 41.9s 5 10 $0.4574 100,395 98,414 23,077 1,981 941 35,671 62,743 — —
✅ 101_loki_historical_logs_pod_deleted 66.7s 6 11 $0.3825 135,128 132,364 25,348 2,764 932 89,147 43,217 — —
✅ 112_find_pvcs_by_uuid 34.1s 4 5 $0.2035 81,165 79,839 22,482 1,326 580 57,091 22,748 — —
✅ 12_job_crashing 57.5s 7 17 $0.4126 168,544 165,910 27,414 2,634 607 119,625 46,285 — —
✅ 176_network_policy_blocking_traffic_no_skills 61.2s 7 13 $0.3924 155,060 152,592 25,873 2,468 542 107,942 44,650 — —
✅ 227_count_configmaps_per_namespace[0] 31.6s 5 9 $0.2977 95,145 93,900 20,936 1,245 585 55,628 38,272 — —
✅ 243_pod_names_contain_service 42.6s 5 8 $0.3163 98,888 97,185 21,659 1,703 532 57,882 39,303 — —
✅ 24_misconfigured_pvc 38.6s 5 13 $0.3781 106,177 104,009 23,559 2,168 884 56,389 47,620 — —
✅ 43_current_datetime_from_prompt 9.3s 1 — $0.1092 17,106 16,982 16,982 124 124 0 16,982 — —
✅ 51_logs_summarize_errors 29.7s 4 5 $0.1886 78,100 77,002 21,326 1,098 337 55,664 21,338 — —
✅ 61_exact_match_counting 18.0s 3 3 $0.2368 53,023 52,643 17,972 380 233 17,679 34,964 — —
Total 39.2s avg 4.7 avg 9.4 avg $3.3752 1,088,731 1,070,840 27,414 17,891 941 652,718 418,122 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 55 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)
📜 #2 · Run @ __ee11424__ (#25041569760) — Apr 28, 08:17 UTC

✅ Results of HolmesGPT evals

Automatically triggered by commit ee11424 on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 40.2s 6 11 $0.2520 125,677 123,589 23,503 2,088 510 99,445 24,144 — —
✅ 101_loki_historical_logs_pod_deleted 48.7s 6 13 $0.2949 137,369 134,494 26,278 2,875 840 107,171 27,323 — —
✅ 112_find_pvcs_by_uuid 26.3s 5 4 $0.1984 95,582 94,334 20,872 1,248 333 73,449 20,885 — —
✅ 12_job_crashing 38.1s 5 11 $0.2498 111,141 109,033 24,567 2,108 622 84,173 24,860 — —
✅ 176_network_policy_blocking_traffic_no_skills 55.6s 7 16 $0.3152 161,782 158,876 27,383 2,906 950 130,236 28,640 — —
✅ 227_count_configmaps_per_namespace[0] 23.1s 5 9 $0.2044 95,210 93,958 20,954 1,252 585 71,751 22,207 — —
✅ 243_pod_names_contain_service 37.1s 6 9 $0.2379 118,956 116,975 22,352 1,981 584 94,313 22,662 — —
✅ 24_misconfigured_pvc 37.8s 5 14 $0.2532 107,081 104,665 23,665 2,416 884 80,016 24,649 — —
✅ 43_current_datetime_from_prompt 5.1s 1 — $0.1095 17,117 16,982 16,982 135 135 0 16,982 — —
✅ 51_logs_summarize_errors 24.2s 4 5 $0.1890 78,080 76,959 21,301 1,121 355 55,646 21,313 — —
✅ 61_exact_match_counting 12.0s 3 3 $0.1389 52,994 52,624 17,963 370 223 34,650 17,974 — —
Total 31.7s avg 4.8 avg 9.5 avg $2.4434 1,100,989 1,082,489 27,383 18,500 950 830,850 251,639 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 74 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)
📜 #1 · Run @ __52c38e4__ (#25038540696) — Apr 28, 07:12 UTC

✅ Results of HolmesGPT evals

Automatically triggered by commit 52c38e4 on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 33.6s 5 10 $0.2371 104,012 102,054 23,216 1,958 587 78,026 24,028 — —
✅ 101_loki_historical_logs_pod_deleted 69.9s 8 16 $0.3570 191,916 188,280 28,694 3,636 782 158,032 30,248 — —
✅ 112_find_pvcs_by_uuid 18.8s 3 4 $0.1796 60,819 59,871 21,704 948 561 37,907 21,964 — —
✅ 12_job_crashing 39.8s 6 14 $0.2776 137,460 135,091 25,618 2,369 590 108,695 26,396 — —
✅ 176_network_policy_blocking_traffic_no_skills 45.0s 6 11 $0.2646 126,990 124,633 24,409 2,357 553 99,546 25,087 — —
✅ 227_count_configmaps_per_namespace[0] 27.2s 6 10 $0.2145 113,796 112,284 20,671 1,512 519 91,236 21,048 — —
✅ 243_pod_names_contain_service 33.6s 5 9 $0.2279 102,273 100,384 22,249 1,889 591 77,572 22,812 — —
✅ 24_misconfigured_pvc 36.8s 5 14 $0.2523 106,758 104,338 23,853 2,420 940 79,924 24,414 — —
✅ 43_current_datetime_from_prompt 5.5s 1 — $0.1091 17,100 16,982 16,982 118 118 0 16,982 — —
✅ 51_logs_summarize_errors 23.7s 4 5 $0.1831 76,542 75,457 20,554 1,085 341 54,891 20,566 — —
✅ 61_exact_match_counting 9.0s 2 1 $0.1235 34,627 34,373 17,382 254 186 16,981 17,392 — —
Total 31.2s avg 4.6 avg 9.4 avg $2.4264 1,072,293 1,053,747 28,694 18,546 940 802,810 250,937 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 74 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)

✅ Results of HolmesGPT evals

Automatically triggered by commit c00c38f on branch claude/scheduled-prompt-output-location-rVB1J

View workflow logs

Results of HolmesGPT evals

  • ask_holmes: 11/11 test cases were successful, 0 regressions
Status Test case Time Turns Tools Cost Total tokens Input Max input Output Max output Cached Non-cached Reasoning Compactions
✅ 09_crashpod 30.9s 4 10 $0.2264 82,997 81,001 23,203 1,996 956 57,228 23,773 — —
✅ 101_loki_historical_logs_pod_deleted 45.2s 6 10 $0.2726 126,812 124,245 24,822 2,567 543 98,639 25,606 — —
✅ 112_find_pvcs_by_uuid 20.0s 3 4 $0.1852 61,582 60,446 22,000 1,136 685 38,435 22,011 — —
✅ 12_job_crashing 45.4s 6 16 $0.3112 142,403 139,526 26,964 2,877 852 109,345 30,181 — —
✅ 176_network_policy_blocking_traffic_no_skills 45.7s 6 15 $0.3050 138,207 135,264 26,659 2,943 865 106,269 28,995 — —
✅ 227_count_configmaps_per_namespace[0] 21.7s 4 9 $0.1931 77,640 76,381 20,968 1,259 586 54,779 21,602 — —
✅ 243_pod_names_contain_service 33.8s 5 9 $0.2294 101,230 99,237 22,331 1,993 583 76,559 22,678 — —
✅ 24_misconfigured_pvc 35.9s 5 14 $0.2488 105,194 102,811 23,578 2,383 763 78,737 24,074 — —
✅ 43_current_datetime_from_prompt 5.2s 1 — $0.1091 17,103 16,982 16,982 121 121 0 16,982 — —
✅ 51_logs_summarize_errors 22.4s 4 5 $0.1865 77,606 76,531 21,095 1,075 332 55,424 21,107 — —
✅ 61_exact_match_counting 11.0s 3 3 $0.1394 53,036 52,651 17,976 385 238 34,664 17,987 — —
Total 28.8s avg 4.3 avg 9.5 avg $2.4066 983,810 965,075 26,964 18,735 956 710,079 254,996 — —
Benchmark Comparison Details

Baseline: latest ci-benchmark experiment on master

Status: Success - 74 test/model combinations loaded

Benchmark experiment:

No benchmark data available for comparison.

Benchmark has no cost, total tokens, cached tokens data. Will appear after the next weekly benchmark run.

Comparison indicators:

  • ±0% — diff under 10% (within noise threshold)
  • ↑N%/↓N% — diff 10-25%
  • ↑N%/↓N% — diff over 25% (significant)
📖 Legend
Icon Meaning
✅ The test was successful
➖ The test was skipped
⚠️ The test failed but is known to be flaky or known to fail
🚧 The test had a setup failure (not a code regression)
🔧 The test failed due to mock data issues (not a code regression)
🚫 The test was throttled by API rate limits/overload
❌ The test failed and should be fixed before merging the PR
🔄 Re-run evals manually

⚠️ Warning: /eval comments always run using the workflow from master, not from this PR branch. If you modified the GitHub Action (e.g., added secrets or env vars), those changes won't take effect.

To test workflow changes, use the GitHub CLI or Actions UI instead:

gh workflow run eval-regression.yaml --repo HolmesGPT/holmesgpt --ref claude/scheduled-prompt-output-location-rVB1J -f markers=regression -f filter=

Option 1: Comment on this PR with /eval:

/eval
tags: regression

Or with more options (one per line):

/eval
model: gpt-4o
tags: regression
id: 09_crashpod
iterations: 5

Run evals on a different branch (e.g., master) for comparison:

/eval
branch: master
tags: regression
Option Description
model Model(s) to test (default: same as automatic runs)
tags Pytest tags / markers (no default - runs all tests!)
id Eval ID / pytest -k filter (use /list to see valid eval names)
iterations Number of runs, max 10
branch Run evals on a different branch (for cross-branch comparison)

Quick re-run: Use /rerun to re-run the most recent /eval on this PR with the same parameters.

Option 2: Trigger via GitHub Actions UI → "Run workflow"

Option 3: Add PR labels to include extra evals (applies to both automatic runs and /eval comments):

Label Effect
evals-tag-<name> Run tests with tag <name> alongside regression
evals-id-<name> Run a specific eval by test ID
evals-model-<name> Override the model (use model list name, e.g. sonnet-4.5)

Examples: evals-tag-easy, evals-id-09_crashpod, evals-model-sonnet-4.5

🏷️ Valid tags

benchmark, chain-of-causation, compaction, confluence, context_window, conversation_worker, coralogix, counting, database, datadog, datetime, db-connectors, easy, elasticsearch, embeds, fast, frontend, grafana, hard, images, integration, kafka, kubernetes, leaked-information, logs, loki, manual, mcp, medium, metrics, network, newrelic, no-cicd, numerical, one-test, port-forward, prometheus, question-answer, regression, skills, slackbot, storage, token-limit, toolset-limitation, traces, transparency, victorialogs

🤖 Valid models

deepseek-chat, deepseek-r1-reasoner, deepseek-reasoner, deepseek-v3.2-chat, gemini-3-flash-preview, gemini-3-pro-preview, gemini-3.1-pro-preview, gpt-4.1, gpt-5.2-high-reasoning, gpt-5.3-codex, gpt-5.4, haiku-4.5, kimi-2.5, kimi-2.5-openrouter, opus-4.5, opus-4.6, qwen-next-80B-instruct, qwen-next-80B-thinking, sonnet-4.5, sonnet-4.6


Commands: /eval · /rerun · /list

CLI: gh workflow run eval-regression.yaml --repo HolmesGPT/holmesgpt --ref claude/scheduled-prompt-output-location-rVB1J -f markers=regression -f filter=

@coderabbitai

coderabbitai Bot commented Apr 28, 2026 •

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4103f29b-04e6-4831-9429-dba0f24b21c8

📥 Commits

Reviewing files that changed from the base of the PR and between 988e8d1 and f468773.

📒 Files selected for processing (1)
  • holmes/common/env_vars.py

Walkthrough

Scheduled prompt execution now conditionally builds and passes a behavior_controls object into ChatRequest based on ENABLE_SCHEDULED_PROMPTS_FAST_MODE; when enabled, todowrite_instructions and todowrite_reminder are set to False. An adjacent inline comment was removed.

Changes

Cohort / File(s) Summary
Scheduled Prompt Execution
holmes/core/scheduled_prompts/executor.py
Adds construction of behavior_controls in _execute_prompt and passes it to ChatRequest; removes a nearby inline comment.
Environment Flags
holmes/common/env_vars.py
Introduces ENABLE_SCHEDULED_PROMPTS_FAST_MODE (env-loaded boolean, default True) to control scheduled-prompt fast-mode behavior.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested reviewers

  • moshemorad
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: disabling todowrite behavior controls in scheduled prompts, which aligns with the code changes that add behavior_controls to disable todowrite_instructions and todowrite_reminder.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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
Review rate limit: 5/8 reviews remaining, refill in 21 minutes and 40 seconds.

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

@github-actions

github-actions Bot commented Apr 28, 2026 •

Copy link
Copy Markdown
Contributor

✅ Docker images ready for 33f4dc22 (built in 4m 28s)

⚠️ Warning: does not support ARM (ARM images are built on release only - not on every PR)

Use these tags to pull the images for testing.

📋 Copy commands

⚠️ Temporary images are deleted after 30 days. Copy to a permanent registry before using them:

gcloud auth configure-docker us-central1-docker.pkg.dev
docker pull us-central1-docker.pkg.dev/robusta-development/temporary-builds/holmes:33f4dc22
docker tag us-central1-docker.pkg.dev/robusta-development/temporary-builds/holmes:33f4dc22 me-west1-docker.pkg.dev/robusta-development/development/holmes-dev:33f4dc22
docker push me-west1-docker.pkg.dev/robusta-development/development/holmes-dev:33f4dc22
docker pull us-central1-docker.pkg.dev/robusta-development/temporary-builds/holmes-operator:33f4dc22
docker tag us-central1-docker.pkg.dev/robusta-development/temporary-builds/holmes-operator:33f4dc22 me-west1-docker.pkg.dev/robusta-development/development/holmes-operator-dev:33f4dc22
docker push me-west1-docker.pkg.dev/robusta-development/development/holmes-operator-dev:33f4dc22

Patch Helm values in one line (choose the chart you use):

HolmesGPT chart:

helm upgrade --install holmesgpt ./helm/holmes \
  --set registry=me-west1-docker.pkg.dev/robusta-development/development \
  --set image=holmes-dev:33f4dc22 \
  --set operator.registry=me-west1-docker.pkg.dev/robusta-development/development \
  --set operator.image=holmes-operator-dev:33f4dc22

Robusta wrapper chart:

helm upgrade --install robusta robusta/robusta \
  --reuse-values \
  --set holmes.registry=me-west1-docker.pkg.dev/robusta-development/development \
  --set holmes.image=holmes-dev:33f4dc22 \
  --set holmes.operator.registry=me-west1-docker.pkg.dev/robusta-development/development \
  --set holmes.operator.image=holmes-operator-dev:33f4dc22

@netlify

netlify Bot commented Apr 28, 2026

Copy link
Copy Markdown

✅ Deploy Preview for holmes-docs ready!

Name Link
🔨 Latest commit 9a9cf09
🔍 Latest deploy log https://app.netlify.com/projects/holmes-docs/deploys/69f059f50c4c9b0008acfbbe
😎 Deploy Preview https://deploy-preview-1959--holmes-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@naomi-robusta naomi-robusta changed the title Disable todowrite behavior controls in scheduled prompts ROB-3754 - Disable todowrite behavior controls in scheduled prompts Apr 28, 2026
@netlify

netlify Bot commented Apr 28, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for holmes-docs ready!

Name Link
🔨 Latest commit c00c38f
🔍 Latest deploy log https://app.netlify.com/projects/holmes-docs/deploys/69f2f8685f41bf0008433310
😎 Deploy Preview https://deploy-preview-1959--holmes-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Apr 28, 2026 •

Copy link
Copy Markdown
Contributor

🔬 CLI Performance Benchmark

🟡 Startup Time (no LLM)

Measures holmes version execution time (imports + initialization)

Metric PR Master Change
Cold Start 11.82s 10.10s +17.1%
Warm Mean 5.38s 4.54s +18.5%
Warm Min 5.34s 4.53s
Warm Max 5.42s 4.57s

🟡 Full CLI with LLM

Measures holmes ask execution time (OpenRouter + Haiku 4.5)

Metric PR Master Change
Cold Start 14.41s 14.23s +1.3%
Warm Mean 6.92s 6.19s +11.8%
Warm Min 6.84s 6.09s
Warm Max 7.05s 6.24s

PR: 33f4dc22 | Master: d29f1434 | Iterations: 5

naomi-robusta and others added 4 commits April 28, 2026 11:09
Defaults to true so the report lands in ChatResponse.analysis. Can be
flipped off to restore TodoWrite planning for runs that need it.

https://claude.ai/code/session_01DXoK9Pyd2v6CsowRikjNbZ
Signed-off-by: Claude <noreply@anthropic.com>
Plural form matches the surrounding ENABLED_SCHEDULED_PROMPTS and
SCHEDULED_PROMPTS_* env vars.

https://claude.ai/code/session_01DXoK9Pyd2v6CsowRikjNbZ
Signed-off-by: Claude <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
holmes/common/env_vars.py (1)

173-175: Consider renaming ENABLE_SCHEDULED_PROMPTS_FAST_MODE to a behavior-specific flag.

The flag disables TodoWrite behavior, but “FAST_MODE” reads like a performance toggle. A descriptive name will reduce config mistakes.

♻️ Backward-compatible rename proposal
-# Disables TodoWrite for scheduled prompts so the report ends up in ChatResponse.analysis
-# rather than being buried in conversation_history behind a trailing TodoWrite call.
-ENABLE_SCHEDULED_PROMPTS_FAST_MODE = load_bool("ENABLE_SCHEDULED_PROMPTS_FAST_MODE", True)
+# Disables TodoWrite in scheduled prompts so output stays in ChatResponse.analysis.
+# Keep legacy env var as fallback for backward compatibility.
+DISABLE_TODOWRITE_IN_SCHEDULED_PROMPTS = load_bool(
+    "DISABLE_TODOWRITE_IN_SCHEDULED_PROMPTS",
+    load_bool("ENABLE_SCHEDULED_PROMPTS_FAST_MODE", True),
+)

As per coding guidelines: Use semantic, descriptive names for variables, functions, and components.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@holmes/common/env_vars.py` around lines 173 - 175, Rename the poorly named
ENABLE_SCHEDULED_PROMPTS_FAST_MODE to a descriptive, behavior-specific constant
(e.g., DISABLE_TODOWRITE_FOR_SCHEDULED_PROMPTS) and implement a
backward-compatible fallback so existing configs still work: create the new
constant using load_bool("DISABLE_TODOWRITE_FOR_SCHEDULED_PROMPTS", None) and if
that is None, fall back to load_bool("ENABLE_SCHEDULED_PROMPTS_FAST_MODE",
True); update any references to use the new constant name (search for
ENABLE_SCHEDULED_PROMPTS_FAST_MODE) and add a brief comment noting the old env
var is deprecated.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@holmes/common/env_vars.py`:
- Around line 173-175: Rename the poorly named
ENABLE_SCHEDULED_PROMPTS_FAST_MODE to a descriptive, behavior-specific constant
(e.g., DISABLE_TODOWRITE_FOR_SCHEDULED_PROMPTS) and implement a
backward-compatible fallback so existing configs still work: create the new
constant using load_bool("DISABLE_TODOWRITE_FOR_SCHEDULED_PROMPTS", None) and if
that is None, fall back to load_bool("ENABLE_SCHEDULED_PROMPTS_FAST_MODE",
True); update any references to use the new constant name (search for
ENABLE_SCHEDULED_PROMPTS_FAST_MODE) and add a brief comment noting the old env
var is deprecated.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 20a90b80-426f-44fa-8c49-c9ba2cc89745

📥 Commits

Reviewing files that changed from the base of the PR and between 3dddaef and 988e8d1.

📒 Files selected for processing (2)
  • holmes/common/env_vars.py
  • holmes/core/scheduled_prompts/executor.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • holmes/core/scheduled_prompts/executor.py

@naomi-robusta

Copy link
Copy Markdown
Collaborator Author

us-central1-docker.pkg.dev/genuine-flight-317411/devel/holmes:scheduled-prompts-fix

@naomi-robusta
naomi-robusta enabled auto-merge (squash) April 30, 2026 06:37
@naomi-robusta
naomi-robusta merged commit 5c5677a into master Apr 30, 2026
21 of 22 checks passed
@naomi-robusta
naomi-robusta deleted the claude/scheduled-prompt-output-location-rVB1J branch April 30, 2026 06:40
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