mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-15 14:22:43 +00:00
fix(codex): consume manual compaction usage gaps
This commit is contained in:
parent
ec6982fbcf
commit
8c62a92296
2 changed files with 7 additions and 1 deletions
|
|
@ -1098,7 +1098,11 @@ def _compress_context_via_codex_app_server(
|
|||
approx_tokens=approx_tokens,
|
||||
force=True,
|
||||
)
|
||||
if getattr(result, "token_usage_last", None):
|
||||
# An empty usage report must consume the pending post-compaction verdict
|
||||
# rather than leaving preflight deferral armed until some unrelated later
|
||||
# Codex turn supplies usage. Minimal external test engines may not expose
|
||||
# the ContextEngine update hook; preserve their existing bookkeeping.
|
||||
if hasattr(agent.context_compressor, "update_from_response"):
|
||||
_record_codex_app_server_usage(agent, result)
|
||||
except Exception:
|
||||
logger.debug("codex compaction bookkeeping failed", exc_info=True)
|
||||
|
|
|
|||
|
|
@ -102,6 +102,8 @@ def test_codex_app_server_manual_compression_routes_to_codex_thread():
|
|||
assert agent._codex_session.calls == 1
|
||||
assert agent.context_compressor.compression_count == 1
|
||||
assert agent.context_compressor.last_compression_rough_tokens == 100000
|
||||
# This minimal fake compressor does not implement update_from_response(),
|
||||
# so the runtime preserves its existing pending-usage bookkeeping here.
|
||||
assert agent.context_compressor.last_prompt_tokens == -1
|
||||
assert agent.context_compressor.last_completion_tokens == 0
|
||||
assert agent.context_compressor.awaiting_real_usage_after_compression is True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue