codex-agent-framework 0.1.44__tar.gz → 0.1.45__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/CHANGELOG.md +8 -0
  2. {codex_agent_framework-0.1.44/codex_agent_framework.egg-info → codex_agent_framework-0.1.45}/PKG-INFO +1 -1
  3. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/config.py +1 -0
  4. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/context.py +2 -1
  5. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/status.py +2 -1
  6. codex_agent_framework-0.1.45/codex_agent/version.py +1 -0
  7. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45/codex_agent_framework.egg-info}/PKG-INFO +1 -1
  8. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/pyproject.toml +1 -1
  9. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_context.py +21 -0
  10. codex_agent_framework-0.1.44/codex_agent/version.py +0 -1
  11. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/LICENSE +0 -0
  12. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/MANIFEST.in +0 -0
  13. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/README.md +0 -0
  14. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/__init__.py +0 -0
  15. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/__main__.py +0 -0
  16. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/agent.py +0 -0
  17. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/agent_runtime.py +0 -0
  18. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/ai.py +0 -0
  19. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/browser.py +0 -0
  20. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_commands.py +0 -0
  21. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/__init__.py +0 -0
  22. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/bash/__init__.py +0 -0
  23. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/bash/requirements.txt +0 -0
  24. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/browser/__init__.py +0 -0
  25. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/browser/requirements.txt +0 -0
  26. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/content/__init__.py +0 -0
  27. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/content/requirements.txt +0 -0
  28. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/content/system.py +0 -0
  29. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/content/vision.py +0 -0
  30. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/context/__init__.py +0 -0
  31. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/desktop/__init__.py +0 -0
  32. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/desktop/requirements.txt +0 -0
  33. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/environment/__init__.py +0 -0
  34. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/environment/requirements.txt +0 -0
  35. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/files/__init__.py +0 -0
  36. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/files/requirements.txt +0 -0
  37. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/files/tools.py +0 -0
  38. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/image_generation/__init__.py +0 -0
  39. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/image_generation/image_generation_system_prompt.txt +0 -0
  40. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/image_generation/requirements.txt +0 -0
  41. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/interface/__init__.py +0 -0
  42. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/interface/requirements.txt +0 -0
  43. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/memory/__init__.py +0 -0
  44. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/memory/requirements.txt +0 -0
  45. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/planner/__init__.py +0 -0
  46. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/planner/requirements.txt +0 -0
  47. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/python/__init__.py +0 -0
  48. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/python/requirements.txt +0 -0
  49. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/__init__.py +0 -0
  50. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/audio.py +0 -0
  51. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/bridge.py +0 -0
  52. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/manager.py +0 -0
  53. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/requirements.txt +0 -0
  54. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/realtime/session.py +0 -0
  55. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/scheduler/__init__.py +0 -0
  56. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/scheduler/requirements.txt +0 -0
  57. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/subagents/__init__.py +0 -0
  58. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/subagents/profiles/explorer.json +0 -0
  59. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/subagents/requirements.txt +0 -0
  60. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/tts/__init__.py +0 -0
  61. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/builtin_plugins/tts/requirements.txt +0 -0
  62. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/__init__.py +0 -0
  63. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/headless.py +0 -0
  64. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/main.py +0 -0
  65. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/output.py +0 -0
  66. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/root.py +0 -0
  67. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/cli/runner.py +0 -0
  68. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/client.py +0 -0
  69. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/command.py +0 -0
  70. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/desktop.py +0 -0
  71. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/event.py +0 -0
  72. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/get_text/__init__.py +0 -0
  73. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/get_text/default_gitignore +0 -0
  74. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/get_text/get_text.py +0 -0
  75. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/get_text/simpler_get_text.py +0 -0
  76. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/hooks.py +0 -0
  77. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/image.py +0 -0
  78. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/latex.py +0 -0
  79. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/mainloop.py +0 -0
  80. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/message.py +0 -0
  81. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/plugin.py +0 -0
  82. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/prompts/system_prompt.txt +0 -0
  83. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/provider.py +0 -0
  84. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/runtime.py +0 -0
  85. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/scheduler.py +0 -0
  86. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/scripts/install-system-dependencies.sh +0 -0
  87. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/server/__init__.py +0 -0
  88. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/server/app.py +0 -0
  89. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/server/core.py +0 -0
  90. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/service.py +0 -0
  91. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/sessions.py +0 -0
  92. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/stream.py +0 -0
  93. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/stream_utils.py +0 -0
  94. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tool.py +0 -0
  95. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tray.py +0 -0
  96. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/__init__.py +0 -0
  97. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/app.py +0 -0
  98. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/chat.py +0 -0
  99. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/lifecycle.py +0 -0
  100. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/log.py +0 -0
  101. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/state.py +0 -0
  102. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/status_bar.py +0 -0
  103. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/style.py +0 -0
  104. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/tui/transcript.py +0 -0
  105. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/utils.py +0 -0
  106. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent/worker.py +0 -0
  107. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent_framework.egg-info/SOURCES.txt +0 -0
  108. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent_framework.egg-info/dependency_links.txt +0 -0
  109. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent_framework.egg-info/entry_points.txt +0 -0
  110. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent_framework.egg-info/requires.txt +0 -0
  111. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/codex_agent_framework.egg-info/top_level.txt +0 -0
  112. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/dependencies.txt +0 -0
  113. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/setup.cfg +0 -0
  114. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent.py +0 -0
  115. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_audio_hooks.py +0 -0
  116. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_commands.py +0 -0
  117. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_desktop.py +0 -0
  118. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_environment.py +0 -0
  119. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_image_generation.py +0 -0
  120. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_observe.py +0 -0
  121. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_plugins.py +0 -0
  122. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_providers_config.py +0 -0
  123. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_realtime.py +0 -0
  124. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_response.py +0 -0
  125. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_runtime.py +0 -0
  126. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_sessions.py +0 -0
  127. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_subagents.py +0 -0
  128. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_tools.py +0 -0
  129. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_agent_turns.py +0 -0
  130. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_ai.py +0 -0
  131. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_browser.py +0 -0
  132. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_builtin_config.py +0 -0
  133. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_chat.py +0 -0
  134. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_cli.py +0 -0
  135. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_cli_headless.py +0 -0
  136. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_cli_root.py +0 -0
  137. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_client.py +0 -0
  138. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_events.py +0 -0
  139. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_get_text_browser.py +0 -0
  140. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_hooks.py +0 -0
  141. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_image_message.py +0 -0
  142. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_local_desktop.py +0 -0
  143. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_memory.py +0 -0
  144. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_messages.py +0 -0
  145. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_planner.py +0 -0
  146. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_scheduler.py +0 -0
  147. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_server.py +0 -0
  148. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_service.py +0 -0
  149. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_tui.py +0 -0
  150. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_utils.py +0 -0
  151. {codex_agent_framework-0.1.44 → codex_agent_framework-0.1.45}/tests/test_worker.py +0 -0
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  This project loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and uses semantic versioning where practical.
6
6
 
7
+ ## [0.1.45] - 2026-05-16
8
+ ### Changed
9
+ - Add `prune_orphaned_tool_outputs_on_context_build` to keep orphaned tool-output pruning enabled by default while making the persistent side effect configurable.
10
+ - Apply the same pruning guard to context-window status estimates and document the current 554-test offline CI count.
11
+
12
+ ### Tests
13
+ - Add coverage for disabling context-build orphan pruning and validate with targeted context/session/response/config coverage plus the 554-test offline CI suite.
14
+
7
15
  ## [0.1.44] - 2026-05-16
8
16
  ### Changed
9
17
  - Clarify local server exposure risks for non-loopback binds, including the current lack of built-in authentication, authorization, and browser-facing CORS hardening.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.44
3
+ Version: 0.1.45
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -33,6 +33,7 @@ class AgentConfig(modict):
33
33
  tool_call_timeout = 0
34
34
  vision_enabled = True
35
35
  max_images = 10
36
+ prune_orphaned_tool_outputs_on_context_build = True
36
37
  web_search_enabled = False
37
38
  image_generation_enabled = False
38
39
  image_generation_output_format = "png"
@@ -82,7 +82,8 @@ class ContextManager:
82
82
  providers_msgs = self.get_providers_messages()
83
83
  max_images = self.agent.config.get("max_images", 10)
84
84
 
85
- self.prune_orphaned_session_tool_outputs()
85
+ if self.agent.config.prune_orphaned_tool_outputs_on_context_build:
86
+ self.prune_orphaned_session_tool_outputs()
86
87
  session_messages = sort(
87
88
  msg for msg in self.agent.session.context_messages()
88
89
  if self.is_message_visible_in_context(msg)
@@ -70,7 +70,8 @@ class StatusManager:
70
70
  response_tools = self.agent.tools_manager.get_response_tools()
71
71
  max_images = self.agent.config.get("max_images", 10)
72
72
  context_manager = self.agent.context_manager
73
- context_manager.prune_orphaned_session_tool_outputs()
73
+ if self.agent.config.prune_orphaned_tool_outputs_on_context_build:
74
+ context_manager.prune_orphaned_session_tool_outputs()
74
75
  all_session_messages = list(self.agent.session.messages) if self.agent.session else []
75
76
  session_messages = sort(
76
77
  msg for msg in self.agent.session.context_messages()
@@ -0,0 +1 @@
1
+ __version__ = "0.1.45"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-agent-framework
3
- Version: 0.1.44
3
+ Version: 0.1.45
4
4
  Summary: A lightweight event-driven Codex agent runtime.
5
5
  Author: Baptiste
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codex-agent-framework"
7
- version = "0.1.44"
7
+ version = "0.1.45"
8
8
  description = "A lightweight event-driven Codex agent runtime."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -475,6 +475,27 @@ def test_agent_get_context_filters_expired_messages():
475
475
  assert "expired hidden context" not in context_text
476
476
 
477
477
 
478
+ def test_agent_get_context_can_skip_orphaned_tool_output_pruning():
479
+ agent = Agent(session="new", prune_orphaned_tool_outputs_on_context_build=False)
480
+ output = ToolResultMessage(
481
+ name="observe",
482
+ call_id="call_missing",
483
+ content="success: full output in ImageMessage id=img_1.",
484
+ )
485
+ user = DeveloperMessage(content="resumed")
486
+ agent.session.messages = [output, user]
487
+ agent.save_session()
488
+
489
+ context = agent.context_manager.get_context()
490
+
491
+ assert output in agent.session.messages
492
+ assert user in agent.session.messages
493
+ assert user.id in [message.id for message in context]
494
+ with open(agent.session.session_file, encoding="utf-8") as f:
495
+ persisted = json.load(f)
496
+ assert [message["id"] for message in persisted["messages"]] == [output.id, user.id]
497
+
498
+
478
499
  def test_agent_get_context_uses_openai_input_token_count_when_available(monkeypatch):
479
500
  agent = Agent(session="new")
480
501
  agent.session.messages = [DeveloperMessage(content="visible context")]
@@ -1 +0,0 @@
1
- __version__ = "0.1.44"