code-context-control 2.46.0__tar.gz → 2.46.1__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 (280) hide show
  1. {code_context_control-2.46.0/code_context_control.egg-info → code_context_control-2.46.1}/PKG-INFO +1 -1
  2. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/c3.py +1 -1
  3. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/compress.py +1 -2
  4. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/federate.py +0 -1
  5. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/filter.py +1 -2
  6. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/read.py +1 -2
  7. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/search.py +1 -2
  8. {code_context_control-2.46.0 → code_context_control-2.46.1/code_context_control.egg-info}/PKG-INFO +1 -1
  9. {code_context_control-2.46.0 → code_context_control-2.46.1}/pyproject.toml +1 -1
  10. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/subprojects.py +7 -4
  11. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/task_store.py +1 -1
  12. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_ghost_generation.py +2 -1
  13. {code_context_control-2.46.0 → code_context_control-2.46.1}/LICENSE +0 -0
  14. {code_context_control-2.46.0 → code_context_control-2.46.1}/README.md +0 -0
  15. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/__init__.py +0 -0
  16. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/_hook_utils.py +0 -0
  17. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/commands/__init__.py +0 -0
  18. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/commands/common.py +0 -0
  19. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/commands/parser.py +0 -0
  20. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/docs.html +0 -0
  21. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/edits.html +0 -0
  22. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/bitbucket.html +0 -0
  23. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/getting-started.html +0 -0
  24. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/index.html +0 -0
  25. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/oracle.html +0 -0
  26. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/shared.css +0 -0
  27. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/tools.html +0 -0
  28. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/guide/workflow.html +0 -0
  29. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_artifact.py +0 -0
  30. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_auto_snapshot.py +0 -0
  31. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_c3_signal.py +0 -0
  32. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_c3read.py +0 -0
  33. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_dispatch.py +0 -0
  34. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_edit_ledger.py +0 -0
  35. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_edit_unlock.py +0 -0
  36. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_filter.py +0 -0
  37. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_ghost_files.py +0 -0
  38. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_pretool_enforce.py +0 -0
  39. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_read.py +0 -0
  40. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_session_stats.py +0 -0
  41. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hook_terse_advisor.py +0 -0
  42. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub.html +0 -0
  43. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_server.py +0 -0
  44. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/app.js +0 -0
  45. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/add_project.js +0 -0
  46. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/config_editor.js +0 -0
  47. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/drill_artifacts.js +0 -0
  48. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/drill_health.js +0 -0
  49. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/drill_panel.js +0 -0
  50. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/drill_tasks.js +0 -0
  51. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/drill_views.js +0 -0
  52. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/global_search.js +0 -0
  53. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/mcp_manager.js +0 -0
  54. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/modals.js +0 -0
  55. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/project_card.js +0 -0
  56. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/project_tree.js +0 -0
  57. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/session_drawer.js +0 -0
  58. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/settings_modal.js +0 -0
  59. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/sidebar.js +0 -0
  60. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/summary_bar.js +0 -0
  61. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/task_board.js +0 -0
  62. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/toasts.js +0 -0
  63. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/components/topbar.js +0 -0
  64. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui/state.js +0 -0
  65. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/hub_ui.html +0 -0
  66. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/mcp_proxy.py +0 -0
  67. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/mcp_server.py +0 -0
  68. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/server.py +0 -0
  69. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/__init__.py +0 -0
  70. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/_helpers.py +0 -0
  71. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/agent.py +0 -0
  72. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/artifacts.py +0 -0
  73. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/bitbucket.py +0 -0
  74. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/delegate.py +0 -0
  75. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/edit.py +0 -0
  76. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/edits.py +0 -0
  77. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/impact.py +0 -0
  78. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/memory.py +0 -0
  79. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/project.py +0 -0
  80. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/session.py +0 -0
  81. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/shell.py +0 -0
  82. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/status.py +0 -0
  83. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/tasks.py +0 -0
  84. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/tools/validate.py +0 -0
  85. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/api.js +0 -0
  86. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/app.js +0 -0
  87. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/bitbucket.js +0 -0
  88. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/chat.js +0 -0
  89. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/dashboard.js +0 -0
  90. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/edits.js +0 -0
  91. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/instructions.js +0 -0
  92. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/memory.js +0 -0
  93. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/sessions.js +0 -0
  94. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/settings.js +0 -0
  95. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/sidebar.js +0 -0
  96. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/components/tasks.js +0 -0
  97. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/icons.js +0 -0
  98. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/pm_shared.js +0 -0
  99. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/shared.js +0 -0
  100. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui/theme.js +0 -0
  101. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui.html +0 -0
  102. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui_legacy.html +0 -0
  103. {code_context_control-2.46.0 → code_context_control-2.46.1}/cli/ui_nano.html +0 -0
  104. {code_context_control-2.46.0 → code_context_control-2.46.1}/code_context_control.egg-info/SOURCES.txt +0 -0
  105. {code_context_control-2.46.0 → code_context_control-2.46.1}/code_context_control.egg-info/dependency_links.txt +0 -0
  106. {code_context_control-2.46.0 → code_context_control-2.46.1}/code_context_control.egg-info/entry_points.txt +0 -0
  107. {code_context_control-2.46.0 → code_context_control-2.46.1}/code_context_control.egg-info/requires.txt +0 -0
  108. {code_context_control-2.46.0 → code_context_control-2.46.1}/code_context_control.egg-info/top_level.txt +0 -0
  109. {code_context_control-2.46.0 → code_context_control-2.46.1}/core/__init__.py +0 -0
  110. {code_context_control-2.46.0 → code_context_control-2.46.1}/core/config.py +0 -0
  111. {code_context_control-2.46.0 → code_context_control-2.46.1}/core/ide.py +0 -0
  112. {code_context_control-2.46.0 → code_context_control-2.46.1}/core/mcp_toml.py +0 -0
  113. {code_context_control-2.46.0 → code_context_control-2.46.1}/core/web_security.py +0 -0
  114. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/__init__.py +0 -0
  115. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/config.py +0 -0
  116. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/mcp_oracle.py +0 -0
  117. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/oracle.html +0 -0
  118. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/oracle_server.py +0 -0
  119. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/__init__.py +0 -0
  120. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/activity_reporter.py +0 -0
  121. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/api_auth.py +0 -0
  122. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/c3_bridge.py +0 -0
  123. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/chat_engine.py +0 -0
  124. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/chat_store.py +0 -0
  125. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/cross_memory.py +0 -0
  126. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/federated_graph.py +0 -0
  127. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/health_checker.py +0 -0
  128. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/insight_engine.py +0 -0
  129. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/memory_reader.py +0 -0
  130. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/memory_writer.py +0 -0
  131. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/ollama_bridge.py +0 -0
  132. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/project_scanner.py +0 -0
  133. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/review_agent.py +0 -0
  134. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/tool_executor.py +0 -0
  135. {code_context_control-2.46.0 → code_context_control-2.46.1}/oracle/services/tool_registry.py +0 -0
  136. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/__init__.py +0 -0
  137. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/activity_log.py +0 -0
  138. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/agent_base.py +0 -0
  139. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/agents.py +0 -0
  140. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/artifact_defs.py +0 -0
  141. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/artifact_store.py +1 -1
  142. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/auto_memory.py +0 -0
  143. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bench/__init__.py +0 -0
  144. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bench/external/__init__.py +0 -0
  145. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bench/external/aider_polyglot.py +0 -0
  146. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bench/external/swe_bench.py +0 -0
  147. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/benchmark_dashboard.py +0 -0
  148. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bitbucket_client.py +0 -0
  149. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/bitbucket_credentials.py +0 -0
  150. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/circuit_breaker.py +0 -0
  151. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/claude_md.py +0 -0
  152. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/compressor.py +0 -0
  153. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/context_snapshot.py +0 -0
  154. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/conversation_store.py +0 -0
  155. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/doc_index.py +0 -0
  156. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/e2e_benchmark.py +0 -0
  157. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/e2e_evaluator.py +0 -0
  158. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/e2e_tasks.py +0 -0
  159. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/edit_ledger.py +0 -0
  160. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/embedding_index.py +0 -0
  161. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/error_reporting.py +0 -0
  162. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/file_memory.py +0 -0
  163. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/git_context.py +0 -0
  164. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/hub_service.py +0 -0
  165. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/indexer.py +0 -0
  166. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/memory.py +0 -0
  167. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/memory_consolidator.py +0 -0
  168. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/memory_graph.py +0 -0
  169. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/memory_grounder.py +0 -0
  170. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/memory_scorer.py +0 -0
  171. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/metrics.py +0 -0
  172. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/notifications.py +0 -0
  173. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/ollama_client.py +0 -0
  174. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/output_filter.py +0 -0
  175. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/parser.py +0 -0
  176. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/project_manager.py +0 -0
  177. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/project_runtime.py +0 -0
  178. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/protocol.py +0 -0
  179. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/proxy_state.py +0 -0
  180. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/retention.py +0 -0
  181. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/retrieval_broker.py +0 -0
  182. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/router.py +0 -0
  183. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/runtime.py +1 -1
  184. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/session_benchmark.py +0 -0
  185. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/session_manager.py +0 -0
  186. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/session_preloader.py +0 -0
  187. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/telemetry.py +0 -0
  188. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/text_index.py +0 -0
  189. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/tool_classifier.py +0 -0
  190. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/transcript_index.py +0 -0
  191. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/validation_cache.py +0 -0
  192. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/vector_store.py +0 -0
  193. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/watcher.py +0 -0
  194. {code_context_control-2.46.0 → code_context_control-2.46.1}/services/win_subprocess.py +0 -0
  195. {code_context_control-2.46.0 → code_context_control-2.46.1}/setup.cfg +0 -0
  196. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_activity_reporter.py +0 -0
  197. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_aider_polyglot.py +0 -0
  198. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_artifact_store.py +0 -0
  199. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_artifact_tool.py +0 -0
  200. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_bitbucket_cli_smoke.py +0 -0
  201. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_bitbucket_client.py +0 -0
  202. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_bitbucket_config_fallback.py +0 -0
  203. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_bitbucket_credentials.py +0 -0
  204. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_bitbucket_tool.py +0 -0
  205. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_c3_shell.py +0 -0
  206. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_circuit_breaker.py +0 -0
  207. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_claude_md_merge.py +0 -0
  208. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_cli_smoke.py +0 -0
  209. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_compressor_large_file.py +0 -0
  210. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_delegate_cascade.py +0 -0
  211. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_e2e_benchmark.py +0 -0
  212. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_edit_ledger_hook.py +0 -0
  213. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_edit_normalization.py +0 -0
  214. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_enforcement_flip.py +0 -0
  215. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_federated_graph.py +0 -0
  216. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_filter_backoff.py +0 -0
  217. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_ghost_files.py +0 -0
  218. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_git_branch_awareness.py +0 -0
  219. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hook_dispatch.py +0 -0
  220. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hook_pretool_enforce.py +0 -0
  221. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hook_smoke.py +1 -1
  222. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hook_state.py +0 -0
  223. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hub_inspect_api.py +0 -0
  224. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_hub_server_smoke.py +0 -0
  225. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_install_mcp_entrypoint.py +0 -0
  226. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_lazy_store_init.py +0 -0
  227. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_mcp_host_guard.py +0 -0
  228. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_mcp_server_smoke.py +0 -0
  229. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_mcp_toml.py +0 -0
  230. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_memory_graph_api.py +0 -0
  231. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_memory_system.py +0 -0
  232. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_notification_dedup.py +0 -0
  233. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_notification_discipline.py +0 -0
  234. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_oracle_api_auth.py +0 -0
  235. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_oracle_apikey_api.py +0 -0
  236. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_oracle_discovery_api.py +0 -0
  237. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_oracle_security_fixes.py +0 -0
  238. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_output_filter.py +0 -0
  239. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_permissions.py +0 -0
  240. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_pm_api.py +0 -0
  241. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_project_manager.py +0 -0
  242. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_project_manager_merge.py +0 -0
  243. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_project_tool.py +0 -0
  244. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_read_coercion.py +0 -0
  245. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_response_boilerplate.py +0 -0
  246. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_retention.py +0 -0
  247. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_service_durability.py +0 -0
  248. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_session_benchmark.py +0 -0
  249. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_session_budget.py +0 -0
  250. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_shell_robustness.py +0 -0
  251. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_subproject_exclusion.py +1 -1
  252. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_subproject_federation.py +0 -0
  253. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_subprojects.py +0 -0
  254. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_swe_bench.py +0 -0
  255. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_task_store.py +0 -0
  256. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_task_tool.py +0 -0
  257. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_token_telemetry.py +0 -0
  258. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_tool_registry.py +0 -0
  259. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_upgrade_and_version.py +0 -0
  260. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_validate.py +0 -0
  261. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_web_security.py +0 -0
  262. {code_context_control-2.46.0 → code_context_control-2.46.1}/tests/test_windows_reliability.py +0 -0
  263. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/__init__.py +0 -0
  264. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/backend.py +0 -0
  265. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/main.py +0 -0
  266. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/__init__.py +0 -0
  267. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/benchmark_view.py +0 -0
  268. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/claudemd_view.py +0 -0
  269. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/compress_view.py +0 -0
  270. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/index_view.py +0 -0
  271. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/init_view.py +0 -0
  272. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/mcp_view.py +0 -0
  273. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/optimize_view.py +0 -0
  274. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/pipe_view.py +0 -0
  275. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/projects_view.py +0 -0
  276. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/search_view.py +0 -0
  277. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/session_view.py +0 -0
  278. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/stats.py +0 -0
  279. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/screens/ui_view.py +0 -0
  280. {code_context_control-2.46.0 → code_context_control-2.46.1}/tui/theme.tcss +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-control
3
- Version: 2.46.0
3
+ Version: 2.46.1
4
4
  Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer — and version the configs that shape your agent (CLAUDE.md, skills, hooks, MCP).
5
5
  Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -85,7 +85,7 @@ console = Console() if HAS_RICH else None
85
85
  # Config
86
86
  CONFIG_DIR = ".c3"
87
87
  CONFIG_FILE = ".c3/config.json"
88
- __version__ = "2.46.0"
88
+ __version__ = "2.46.1"
89
89
 
90
90
 
91
91
  def _command_deps() -> CommandDeps:
@@ -8,9 +8,8 @@ import sys
8
8
  from concurrent.futures import ThreadPoolExecutor, as_completed
9
9
  from pathlib import Path
10
10
 
11
- from core import count_tokens
12
-
13
11
  from cli.tools._helpers import finalize_with_tokens, show_token_ratios
12
+ from core import count_tokens
14
13
 
15
14
 
16
15
  def _run_memory_mcp_cli(args: list, cwd: str, timeout: int = 30) -> tuple:
@@ -7,7 +7,6 @@ unions child facts. Results stay in per-scope sections — TF-IDF scores are
7
7
  not comparable across corpora, so no interleaved ranking.
8
8
  """
9
9
 
10
- from pathlib import Path
11
10
 
12
11
  # Budget split for scope='all': the parent keeps the lion's share.
13
12
  _PARENT_BUDGET_SHARE = 0.6
@@ -10,9 +10,8 @@ import json
10
10
  import re
11
11
  from pathlib import Path
12
12
 
13
- from core import count_tokens
14
-
15
13
  from cli.tools._helpers import finalize_with_tokens, show_token_ratios
14
+ from core import count_tokens
16
15
 
17
16
 
18
17
  def handle_filter(file_path: str, text: str, pattern: str, max_lines: int,
@@ -6,9 +6,8 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
6
6
  from pathlib import Path
7
7
  from typing import Any
8
8
 
9
- from core import count_tokens
10
-
11
9
  from cli.tools._helpers import finalize_with_tokens
10
+ from core import count_tokens
12
11
 
13
12
 
14
13
  def _coerce_list(val: Any) -> list[str] | None:
@@ -5,9 +5,8 @@ import time
5
5
  from concurrent.futures import ThreadPoolExecutor, as_completed
6
6
  from pathlib import Path
7
7
 
8
- from core import count_tokens
9
-
10
8
  from cli.tools._helpers import finalize_with_tokens, show_token_ratios
9
+ from core import count_tokens
11
10
 
12
11
  # Hard cap: responses above this are truncated to avoid filling context.
13
12
  _RESPONSE_TOKEN_CAP = 2400
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-control
3
- Version: 2.46.0
3
+ Version: 2.46.1
4
4
  Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer — and version the configs that shape your agent (CLAUDE.md, skills, hooks, MCP).
5
5
  Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code-context-control"
7
- version = "2.46.0"
7
+ version = "2.46.1"
8
8
  description = "Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer — and version the configs that shape your agent (CLAUDE.md, skills, hooks, MCP)."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -80,7 +80,7 @@ def get_subprojects(parent_path) -> list:
80
80
  # ── Index-exclusion helpers (hot path for indexer/doc_index/watcher) ──────
81
81
 
82
82
  def exclusion_prefixes(project_path) -> list:
83
- """Normcased path-part tuples for designated sub-project folders.
83
+ """Lowercased path-part tuples for designated sub-project folders.
84
84
 
85
85
  Fast path: ``[]`` when the project has no sub-projects, so scan loops
86
86
  pay nothing in the common case.
@@ -91,7 +91,7 @@ def exclusion_prefixes(project_path) -> list:
91
91
  prefixes = []
92
92
  for entry in subs:
93
93
  rel = entry.get("rel_path") or ""
94
- parts = tuple(os.path.normcase(p) for p in PurePosixPath(rel).parts)
94
+ parts = tuple(p.lower() for p in PurePosixPath(rel).parts)
95
95
  if parts:
96
96
  prefixes.append(parts)
97
97
  return prefixes
@@ -101,7 +101,7 @@ def is_excluded(rel_parts, prefixes) -> bool:
101
101
  """True when a project-relative path (as parts) sits under any prefix."""
102
102
  if not prefixes:
103
103
  return False
104
- normed = tuple(os.path.normcase(p) for p in rel_parts)
104
+ normed = tuple(p.lower() for p in rel_parts)
105
105
  return any(normed[: len(pre)] == pre for pre in prefixes)
106
106
 
107
107
 
@@ -116,8 +116,11 @@ def make_excluder(project_path):
116
116
  root = Path(project_path).resolve()
117
117
 
118
118
  def _excluded(fpath) -> bool:
119
+ # Resolve fpath too: callers may pass paths through a symlink
120
+ # (macOS /var/folders) or an 8.3 short name (Windows), which would
121
+ # never be relative to the resolved root.
119
122
  try:
120
- return is_excluded(Path(fpath).relative_to(root).parts, prefixes)
123
+ return is_excluded(Path(fpath).resolve().relative_to(root).parts, prefixes)
121
124
  except (ValueError, OSError):
122
125
  return False
123
126
 
@@ -288,7 +288,7 @@ class TaskStore:
288
288
  def purge_archived(self, entity="task") -> dict:
289
289
  key = {"task": "tasks", "milestone": "milestones", "note": "notes"}.get(entity)
290
290
  if not key:
291
- return {"error": f"entity must be task|milestone|note"}
291
+ return {"error": "entity must be task|milestone|note"}
292
292
  with self._lock:
293
293
  doc = self._load()
294
294
  before = len(doc[key])
@@ -29,9 +29,10 @@ REPO_ROOT = Path(__file__).resolve().parents[1]
29
29
  sys.path.insert(0, str(REPO_ROOT))
30
30
  sys.path.insert(0, str(REPO_ROOT / "cli"))
31
31
 
32
- from services.win_subprocess import harden_win_argv, is_batch_shim # noqa: E402
33
32
  from hook_ghost_files import sweep_ghost_files # noqa: E402
34
33
 
34
+ from services.win_subprocess import harden_win_argv, is_batch_shim # noqa: E402
35
+
35
36
  WINDOWS = sys.platform == "win32"
36
37
 
37
38
  # Adversarial payloads drawn from real observed ghost filenames. Each, on the
@@ -32,9 +32,9 @@ from typing import Optional
32
32
 
33
33
  from services.artifact_defs import (
34
34
  ArtifactUnit,
35
+ _norm,
35
36
  classify_path,
36
37
  discover_units,
37
- _norm,
38
38
  )
39
39
 
40
40
  SCHEMA_VERSION = 1