virtual-context 0.3.4__tar.gz → 0.3.5__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 (239) hide show
  1. virtual_context-0.3.5/.github/workflows/python-publish.yml +29 -0
  2. {virtual_context-0.3.4 → virtual_context-0.3.5}/PKG-INFO +1 -1
  3. {virtual_context-0.3.4 → virtual_context-0.3.5}/pyproject.toml +1 -1
  4. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/__init__.py +1 -1
  5. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/server.py +10 -1
  6. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/types.py +1 -1
  7. {virtual_context-0.3.4 → virtual_context-0.3.5}/.gitignore +0 -0
  8. {virtual_context-0.3.4 → virtual_context-0.3.5}/CLAUDE.md +0 -0
  9. {virtual_context-0.3.4 → virtual_context-0.3.5}/LICENSE +0 -0
  10. {virtual_context-0.3.4 → virtual_context-0.3.5}/README-draft.md +0 -0
  11. {virtual_context-0.3.4 → virtual_context-0.3.5}/README.md +0 -0
  12. {virtual_context-0.3.4 → virtual_context-0.3.5}/README.md.backup +0 -0
  13. {virtual_context-0.3.4 → virtual_context-0.3.5}/assets/dashboard.png +0 -0
  14. {virtual_context-0.3.4 → virtual_context-0.3.5}/assets/hero.png +0 -0
  15. {virtual_context-0.3.4 → virtual_context-0.3.5}/models.yaml +0 -0
  16. {virtual_context-0.3.4 → virtual_context-0.3.5}/scripts/install.ps1 +0 -0
  17. {virtual_context-0.3.4 → virtual_context-0.3.5}/scripts/install.sh +0 -0
  18. {virtual_context-0.3.4 → virtual_context-0.3.5}/specs/cache-aware-compaction.md +0 -0
  19. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/REGRESSION_MAP.md +0 -0
  20. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/conftest.py +0 -0
  21. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/docker-compose.test.yml +0 -0
  22. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/haiku/__init__.py +0 -0
  23. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/haiku/conftest.py +0 -0
  24. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/haiku/test_compaction.py +0 -0
  25. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/haiku/test_retrieval.py +0 -0
  26. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/haiku/test_tagging.py +0 -0
  27. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/__init__.py +0 -0
  28. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/conftest.py +0 -0
  29. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/test_compactor.py +0 -0
  30. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/test_pipeline.py +0 -0
  31. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/test_provider.py +0 -0
  32. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/ollama/test_tag_generator.py +0 -0
  33. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/proxy/__init__.py +0 -0
  34. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/proxy/test_dashboard_cors.py +0 -0
  35. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/proxy/test_metrics.py +0 -0
  36. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_assembler.py +0 -0
  37. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_backend_integration.py +0 -0
  38. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_budget_enforcement.py +0 -0
  39. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_cli_init.py +0 -0
  40. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_compaction_commit_prune.py +0 -0
  41. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_compactor.py +0 -0
  42. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_compactor_concurrent.py +0 -0
  43. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_composite_store.py +0 -0
  44. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_config.py +0 -0
  45. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_context_bleed.py +0 -0
  46. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_conversation_identity.py +0 -0
  47. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_conversation_lifecycle.py +0 -0
  48. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_conversation_scoping.py +0 -0
  49. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_deferred_payload_compaction.py +0 -0
  50. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_embedding_tag_generator.py +0 -0
  51. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_empty_turn_skip.py +0 -0
  52. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_engine_integration.py +0 -0
  53. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_engine_lookback.py +0 -0
  54. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_engine_state.py +0 -0
  55. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_engine_sync_turns.py +0 -0
  56. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_enrichment.py +0 -0
  57. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_graph_integration.py +0 -0
  58. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_link_checker.py +0 -0
  59. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_link_query.py +0 -0
  60. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_link_types.py +0 -0
  61. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_links_sqlite.py +0 -0
  62. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fact_redesign.py +0 -0
  63. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_fill_pass.py +0 -0
  64. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_find_quote.py +0 -0
  65. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_format_agnostic.py +0 -0
  66. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_headless.py +0 -0
  67. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_history_filter.py +0 -0
  68. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_idf_retrieval.py +0 -0
  69. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_ingest_index_integrity.py +0 -0
  70. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_longmemeval_auth.py +0 -0
  71. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_mcp_server.py +0 -0
  72. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_media.py +0 -0
  73. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_message_filter.py +0 -0
  74. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_metrics_persistence.py +0 -0
  75. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_model_catalog.py +0 -0
  76. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_model_limits.py +0 -0
  77. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_monitor.py +0 -0
  78. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_multi_instance.py +0 -0
  79. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_noop_fact_link_store.py +0 -0
  80. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_openrouter_provider.py +0 -0
  81. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_paging.py +0 -0
  82. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_passthrough_filter.py +0 -0
  83. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_presets.py +0 -0
  84. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_prev_context_leak.py +0 -0
  85. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_provider_adapters.py +0 -0
  86. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy.py +0 -0
  87. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy_dashboard.py +0 -0
  88. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy_formats.py +0 -0
  89. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy_message_filter.py +0 -0
  90. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy_session.py +0 -0
  91. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_proxy_streaming.py +0 -0
  92. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_raw_content.py +0 -0
  93. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_recall_all.py +0 -0
  94. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_registry_lifecycle.py +0 -0
  95. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_request_captures_persistence.py +0 -0
  96. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_retriever.py +0 -0
  97. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_rrf_scoring.py +0 -0
  98. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_segmenter.py +0 -0
  99. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_semantic_search.py +0 -0
  100. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_sender_identity.py +0 -0
  101. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_session_cache.py +0 -0
  102. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_session_date.py +0 -0
  103. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_session_state.py +0 -0
  104. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_storage_protocols.py +0 -0
  105. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_store_recovery.py +0 -0
  106. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_store_sqlite.py +0 -0
  107. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_stub_turn_handling.py +0 -0
  108. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_supersession.py +0 -0
  109. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_supersession_migration.py +0 -0
  110. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tag_canonicalizer.py +0 -0
  111. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tag_consolidator.py +0 -0
  112. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tag_generator.py +0 -0
  113. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tag_splitter.py +0 -0
  114. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_telemetry.py +0 -0
  115. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_telemetry_integration.py +0 -0
  116. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tool_loop.py +0 -0
  117. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tool_output_interceptor.py +0 -0
  118. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tool_result_filter.py +0 -0
  119. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tool_tags.py +0 -0
  120. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_tui.py +0 -0
  121. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_turn_grouping.py +0 -0
  122. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_turn_tag_index.py +0 -0
  123. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_unified_budget.py +0 -0
  124. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_upstream_trim.py +0 -0
  125. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_vcattach.py +0 -0
  126. {virtual_context-0.3.4 → virtual_context-0.3.5}/tests/test_verb_expansion.py +0 -0
  127. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual-context.yaml +0 -0
  128. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual-context.yaml.example +0 -0
  129. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/cli/__init__.py +0 -0
  130. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/cli/main.py +0 -0
  131. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/config.py +0 -0
  132. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/conversation_identity.py +0 -0
  133. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/__init__.py +0 -0
  134. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/assembler.py +0 -0
  135. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/compaction_pipeline.py +0 -0
  136. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/compactor.py +0 -0
  137. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/composite_store.py +0 -0
  138. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/conversation_store.py +0 -0
  139. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/embedding_provider.py +0 -0
  140. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/embedding_tag_generator.py +0 -0
  141. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/engine_utils.py +0 -0
  142. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/fact_query.py +0 -0
  143. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/fts_preprocessor.py +0 -0
  144. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/hint_builder.py +0 -0
  145. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/llm_utils.py +0 -0
  146. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/math_utils.py +0 -0
  147. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/model_catalog.py +0 -0
  148. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/monitor.py +0 -0
  149. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/paging_manager.py +0 -0
  150. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/protocols.py +0 -0
  151. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/provider_adapters.py +0 -0
  152. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/quote_search.py +0 -0
  153. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/retrieval_assembler.py +0 -0
  154. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/retrieval_scoring.py +0 -0
  155. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/retriever.py +0 -0
  156. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/search_engine.py +0 -0
  157. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/segmenter.py +0 -0
  158. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/semantic_search.py +0 -0
  159. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/store.py +0 -0
  160. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tag_canonicalizer.py +0 -0
  161. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tag_consolidator.py +0 -0
  162. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tag_generator.py +0 -0
  163. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tag_scoring.py +0 -0
  164. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tag_splitter.py +0 -0
  165. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tagging_pipeline.py +0 -0
  166. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/telemetry.py +0 -0
  167. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/temporal_resolver.py +0 -0
  168. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tool_loop.py +0 -0
  169. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/tool_query.py +0 -0
  170. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/core/turn_tag_index.py +0 -0
  171. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/data/anthropic-tokenizer/tokenizer.json +0 -0
  172. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/data/models.yaml +0 -0
  173. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/engine.py +0 -0
  174. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/ingest/__init__.py +0 -0
  175. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/ingest/curator.py +0 -0
  176. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/ingest/date_resolver.py +0 -0
  177. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/ingest/parsers.py +0 -0
  178. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/ingest/supersession.py +0 -0
  179. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/mcp/__init__.py +0 -0
  180. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/mcp/server.py +0 -0
  181. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/model_limits.py +0 -0
  182. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/openclaw/virtual-context.mjs +0 -0
  183. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/patterns.py +0 -0
  184. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/presets/__init__.py +0 -0
  185. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/presets/agentic.py +0 -0
  186. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/presets/base.py +0 -0
  187. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/presets/coding.py +0 -0
  188. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/providers/__init__.py +0 -0
  189. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/providers/anthropic.py +0 -0
  190. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/providers/base.py +0 -0
  191. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/providers/generic_openai.py +0 -0
  192. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/providers/ollama_native.py +0 -0
  193. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/__init__.py +0 -0
  194. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/_envelope.py +0 -0
  195. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/dashboard.html +0 -0
  196. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/dashboard.py +0 -0
  197. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/formats.py +0 -0
  198. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/handlers.py +0 -0
  199. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/helpers.py +0 -0
  200. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/media.py +0 -0
  201. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/message_filter.py +0 -0
  202. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/metrics.py +0 -0
  203. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/multi.py +0 -0
  204. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/registry.py +0 -0
  205. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/session_cache.py +0 -0
  206. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/session_state.py +0 -0
  207. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/state.py +0 -0
  208. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/android-chrome-192x192.png +0 -0
  209. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/android-chrome-512x512.png +0 -0
  210. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/apple-touch-icon.png +0 -0
  211. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/favicon-16x16.png +0 -0
  212. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/favicon-32x32.png +0 -0
  213. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/favicon.ico +0 -0
  214. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/static/site.webmanifest +0 -0
  215. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/tool_output_interceptor.py +0 -0
  216. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/proxy/vcattach.py +0 -0
  217. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/__init__.py +0 -0
  218. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/falkordb.py +0 -0
  219. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/filesystem.py +0 -0
  220. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/helpers.py +0 -0
  221. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/neo4j.py +0 -0
  222. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/noop_fact_link_store.py +0 -0
  223. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/postgres.py +0 -0
  224. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/storage/sqlite.py +0 -0
  225. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/token_counter.py +0 -0
  226. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/__init__.py +0 -0
  227. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/app.py +0 -0
  228. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/chat.tcss +0 -0
  229. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/chat_provider.py +0 -0
  230. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/headless.py +0 -0
  231. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/modals/__init__.py +0 -0
  232. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/modals/turn_inspector.py +0 -0
  233. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/state.py +0 -0
  234. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/__init__.py +0 -0
  235. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/budget_bar.py +0 -0
  236. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/chat_view.py +0 -0
  237. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/input_box.py +0 -0
  238. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/tag_panel.py +0 -0
  239. {virtual_context-0.3.4 → virtual_context-0.3.5}/virtual_context/tui/widgets/turn_list.py +0 -0
@@ -0,0 +1,29 @@
1
+ name: Upload Python Package
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ publish:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+
21
+ - name: Build
22
+ run: |
23
+ python -m pip install build
24
+ python -m build
25
+
26
+ - name: Publish to PyPI
27
+ uses: pypa/gh-action-pypi-publish@release/v1
28
+ with:
29
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: virtual-context
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: OS-style virtual memory for LLM session context management
5
5
  Project-URL: Homepage, https://virtual-context.com
6
6
  Project-URL: Repository, https://github.com/virtual-context/virtual-context
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "virtual-context"
7
- version = "0.3.4"
7
+ version = "0.3.5"
8
8
  description = "OS-style virtual memory for LLM session context management"
9
9
  readme = "README.md"
10
10
  license = "AGPL-3.0-or-later"
@@ -14,7 +14,7 @@ from .types import (
14
14
  VirtualContextConfig,
15
15
  )
16
16
 
17
- __version__ = "0.3.4"
17
+ __version__ = "0.3.5"
18
18
 
19
19
  __all__ = [
20
20
  "VirtualContextEngine",
@@ -1576,8 +1576,17 @@ async def prepare_payload(
1576
1576
  _fill_stage = time.monotonic()
1577
1577
  if state and not _bloat_fallback:
1578
1578
  _fill_enabled = getattr(
1579
- state.engine.config.monitor, "fill_pass_enabled", True,
1579
+ state.engine.config.monitor, "fill_pass_enabled", False,
1580
1580
  )
1581
+ _defer_enabled = getattr(
1582
+ state.engine.config.monitor, "defer_payload_mutation", False,
1583
+ )
1584
+ if _fill_enabled and _defer_enabled:
1585
+ logger.warning(
1586
+ "CONFIG CONFLICT: fill_pass_enabled=True AND defer_payload_mutation=True — "
1587
+ "fill pass backfills released turns into the payload, breaking the cache prefix "
1588
+ "that defer is trying to preserve. Disable fill_pass_enabled or defer_payload_mutation."
1589
+ )
1581
1590
  if _fill_enabled and outbound_tokens < inbound_tokens:
1582
1591
  from .message_filter import fill_pass
1583
1592
 
@@ -754,7 +754,7 @@ class MonitorConfig:
754
754
  soft_threshold: float = 0.70
755
755
  hard_threshold: float = 0.85
756
756
  protected_recent_turns: int = 6
757
- fill_pass_enabled: bool = True
757
+ fill_pass_enabled: bool = False
758
758
  fill_pass_target: str = "soft" # "soft", "hard", or float fraction
759
759
  fill_pass_summary_ratio: float = 0.60
760
760
  store_recovery_threshold: float = 0.70 # trigger store recovery when payload < this fraction of store turns
File without changes