Skip to content

Fix missing log_level propagation in Turn.execute_internal/6#241

Open
bwittenbrook3 wants to merge 1 commit intoagentjido:mainfrom
bwittenbrook3:fix/turn-exec-log-level
Open

Fix missing log_level propagation in Turn.execute_internal/6#241
bwittenbrook3 wants to merge 1 commit intoagentjido:mainfrom
bwittenbrook3:fix/turn-exec-log-level

Conversation

@bwittenbrook3
Copy link
Copy Markdown

Jido.Exec.run/4 defaults its log_level threshold to :info when none is provided in opts, causing :notice-level "Executing ..." lines to fire on every tool call from the LLM turn loop. The agent strategy path correctly injects log_level via Jido.Observe.Config.action_exec_opts/2, but the jido_ai Turn module called Jido.Exec.run directly with bare exec_opts, bypassing that config entirely.

Fix: inject log_level from Jido.Observe.Config.action_log_level/0 in execute_internal/6 via Keyword.put_new/3, so explicit caller opts still take precedence while the global :jido, :telemetry config is respected for all tool executions.

Add unit tests verifying:

  • Explicit log_level: :warning suppresses Executing logs via execute_module/4
  • Explicit log_level: :warning suppresses Executing logs via execute/4
  • Explicit log_level: :warning suppresses logs via run_tools/3
  • Global :jido telemetry config is respected when no explicit opt given
  • Explicit opt takes precedence over global config

Jido.Exec.run/4 defaults its log_level threshold to :info when none is
provided in opts, causing :notice-level "Executing ..." lines to fire on
every tool call from the LLM turn loop. The agent strategy path correctly
injects log_level via Jido.Observe.Config.action_exec_opts/2, but the
jido_ai Turn module called Jido.Exec.run directly with bare exec_opts,
bypassing that config entirely.

Fix: inject log_level from Jido.Observe.Config.action_log_level/0 in
execute_internal/6 via Keyword.put_new/3, so explicit caller opts still
take precedence while the global :jido, :telemetry config is respected
for all tool executions.

Add unit tests verifying:
- Explicit log_level: :warning suppresses Executing logs via execute_module/4
- Explicit log_level: :warning suppresses Executing logs via execute/4
- Explicit log_level: :warning suppresses logs via run_tools/3
- Global :jido telemetry config is respected when no explicit opt given
- Explicit opt takes precedence over global config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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