fix: 5 bug fixes — cron type coercion, memory hooks, delegate logging, browser cleanup - #7424
Open
tyxben wants to merge 1 commit into
Open
fix: 5 bug fixes — cron type coercion, memory hooks, delegate logging, browser cleanup#7424tyxben wants to merge 1 commit into
tyxben wants to merge 1 commit into
Conversation
1. fix(cron): coerce repeat param from string to int before comparison (NousResearch#7142) LLMs generate repeat="once" which caused TypeError on <= comparison. 2. fix(delegate): log on_delegation exceptions instead of silently swallowing (NousResearch#7194) Consistent with memory_manager.py's existing error handling pattern. 3. fix(agent): call MemoryProvider.on_turn_start() hook in conversation loop (NousResearch#7193) Hook was defined in ABC and dispatched in memory_manager but never invoked — broke Honcho cadence logic and plugin turn tracking. 4. fix(agent): capture on_pre_compress() return value and pass to compressor (NousResearch#7192) Memory provider insights were silently discarded. Now threaded through compress() → _generate_summary() into the summarization prompt. 5. cleanup(browser): remove dead browser_close schema and unused DEFAULT_SESSION_TIMEOUT (NousResearch#7173) Schema was defined but never registered; constant was never referenced.
tyxben
force-pushed
the
fix/multi-bug-batch
branch
from
April 12, 2026 08:49
c3c8270 to
5d36acd
Compare
Author
|
Hi — the 4 CI workflows (Tests, Supply Chain Audit, Nix, Docker Build) are awaiting approval since this is a fork PR. Could a maintainer approve and run them when you get a chance? Thanks! |
3 tasks
Contributor
|
Thanks for the focused fixes. Several underlying issues remain on current main, but this needs a targeted salvage rather than applying the current conflicting patch. Problems
Suggested changes
Automated hermes-sweeper review. |
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Batch of 5 targeted fixes across agent core, cron, delegate, and browser modules:
fix(cron): coerce
repeatparam from string to int ([TESTED FIX] TypeError when repeat='once' passed to cronjob create (string-to-int coercion missing) #7142) — LLMs generaterepeat="once"which causedTypeError: "<=" not supported between instances of "str" and "int". Added try/except coercion in bothcron/jobs.pyandtools/cronjob_tools.py.fix(delegate): log
on_delegationexceptions ([Bug]: on_delegation notification in delegate_tool.py silently swallows all exceptions #7194) — Bareexcept: passsilently swallowed all errors. Now logs at DEBUG level, consistent withmemory_manager.py's existing pattern.fix(agent): call
MemoryProvider.on_turn_start()in conversation loop ([Bug]: MemoryProvider.on_turn_start() hook is never called — breaks Honcho cadence logic and plugin turn tracking #7193) — Hook was defined in ABC and dispatched inmemory_manager.pybut never invoked fromrun_agent.py. Broke Honchodialectic_cadence/injection_frequencyand Supermemory turn tracking. Added call after_user_turn_countincrement.fix(agent): capture
on_pre_compress()return value and pass to compressor ([Bug]: MemoryProvider.on_pre_compress() return value silently discarded — provider insights never reach the compressor #7192) — Memory provider insights were silently discarded. Now threaded throughcompress()→_generate_summary()as a "MEMORY PROVIDER INSIGHTS" section in the summarization prompt.cleanup(browser): remove dead
browser_closeschema andDEFAULT_SESSION_TIMEOUT(cleanup: remove dead browser_close schema and unused DEFAULT_SESSION_TIMEOUT #7173) —browser_closewas defined inBROWSER_TOOL_SCHEMASbut never registered (no handler).DEFAULT_SESSION_TIMEOUTwas never referenced. Saves ~150 tokens per API call.Test plan
browser_closeandDEFAULT_SESSION_TIMEOUThave zero references after removal (verified via grep)repeat="once"— should no longer TypeErrordialectic_cadence > 1and verifyon_turn_startfires