Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c437f06
feat(app): add doom loop detector to prevent repetitive tool calls
amitksingh1490 Feb 8, 2026
f429076
[autofix.ci] apply automated fixes
autofix-ci[bot] Feb 8, 2026
6a58e8e
Merge remote-tracking branch 'origin/main' into doom-loop-detector
amitksingh1490 Feb 11, 2026
df2c761
refactor(hooks): replace Result with HandleOperation for event handling
amitksingh1490 Feb 11, 2026
99e7c4e
feat(doom-loop): add pattern detection for repeating tool call sequences
amitksingh1490 Feb 12, 2026
0214366
Merge branch 'main' into doom-loop-detector
amitksingh1490 Feb 12, 2026
1ff1b9d
Merge branch 'main' into doom-loop-detector
amitksingh1490 Feb 12, 2026
490eb79
Merge remote-tracking branch 'origin/main' into doom-loop-detector
amitksingh1490 Mar 9, 2026
00084bc
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 9, 2026
a76ae9a
fix(orch): preserve full error context in handle_operation by cloning…
amitksingh1490 Mar 9, 2026
3466593
Merge branch 'main' into doom-loop-detector
tusharmath Mar 11, 2026
c6c9d3f
Merge branch 'main' into doom-loop-detector
amitksingh1490 Mar 11, 2026
43d90be
refactor(doom-loop-detector): run detector on toolcall end instead of…
tusharmath Mar 11, 2026
10f9486
refactor(hooks): simplify event handling to use Result instead of Han…
tusharmath Mar 11, 2026
d64a913
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 11, 2026
676ecc3
refactor(doom-loop-detector): extract reminder to template
tusharmath Mar 11, 2026
818c330
refactor(doom-loop-detector): move to hooks module
tusharmath Mar 11, 2026
76a036d
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 11, 2026
3293819
fix(orch): apply updated context after tool call hooks
amitksingh1490 Mar 11, 2026
283b407
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 11, 2026
2c1b295
refactor(doom-loop-detector): run detection on request event
amitksingh1490 Mar 11, 2026
c103a35
refactor(doom-loop-detector): generalize pattern detection and add tests
amitksingh1490 Mar 11, 2026
83f34dc
refactor(tests): add ToolCallFull to test imports for enhanced coverage
amitksingh1490 Mar 11, 2026
813292b
Merge branch 'main' into doom-loop-detector
amitksingh1490 Mar 11, 2026
b289e2c
Merge branch 'main' into doom-loop-detector
amitksingh1490 Mar 11, 2026
a58f9d4
refactor(doom-loop-detector): rename file to doom_loop.rs
tusharmath Mar 11, 2026
8b47162
refactor(doom-loop-detector): remove Hash trait bound from generics
tusharmath Mar 11, 2026
21037b5
refactor(doom-loop-detector): consolidate pattern detection logic
tusharmath Mar 11, 2026
fc1b42e
refactor(doom-loop-detector): use ToolCallArguments in extract_tool_s…
tusharmath Mar 11, 2026
c1743b3
refactor(doom-loop-detector): simplify detect_from_conversation to re…
tusharmath Mar 11, 2026
a937a80
[autofix.ci] apply automated fixes
autofix-ci[bot] Mar 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions crates/forge_app/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use crate::apply_tunable_parameters::ApplyTunableParameters;
use crate::authenticator::Authenticator;
use crate::changed_files::ChangedFiles;
use crate::dto::ToolsOverview;
use crate::hooks::{CompactionHandler, TitleGenerationHandler, TracingHandler};
use crate::hooks::{CompactionHandler, DoomLoopDetector, TitleGenerationHandler, TracingHandler};
use crate::init_conversation_metrics::InitConversationMetrics;
use crate::orch::Orchestrator;
use crate::services::{
Expand Down Expand Up @@ -146,7 +146,7 @@ impl<S: Services> ForgeApp<S> {
let title_handler = TitleGenerationHandler::new(services.clone());
let hook = Hook::default()
.on_start(tracing_handler.clone().and(title_handler.clone()))
.on_request(tracing_handler.clone())
.on_request(tracing_handler.clone().and(DoomLoopDetector::default()))
.on_response(
tracing_handler
.clone()
Expand Down
Loading
Loading