code-context-control 2.49.1__tar.gz → 2.49.2__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 (308) hide show
  1. {code_context_control-2.49.1/code_context_control.egg-info → code_context_control-2.49.2}/PKG-INFO +10 -1
  2. {code_context_control-2.49.1 → code_context_control-2.49.2}/README.md +8 -0
  3. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/commands/parser.py +5 -1
  4. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/bitbucket.html +1 -0
  5. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/getting-started.html +1 -0
  6. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/index.html +1 -0
  7. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/oracle.html +1 -0
  8. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/tools.html +1 -0
  9. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/workflow.html +1 -0
  10. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/topbar.js +3 -0
  11. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/app.js +9 -1
  12. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/icons.js +1 -0
  13. {code_context_control-2.49.1 → code_context_control-2.49.2/code_context_control.egg-info}/PKG-INFO +10 -1
  14. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/oracle_ui.html +1 -0
  15. {code_context_control-2.49.1 → code_context_control-2.49.2}/pyproject.toml +2 -1
  16. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/main.py +5 -0
  17. {code_context_control-2.49.1 → code_context_control-2.49.2}/LICENSE +0 -0
  18. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/__init__.py +0 -0
  19. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/_hook_utils.py +0 -0
  20. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/c3.py +0 -0
  21. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/commands/__init__.py +0 -0
  22. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/commands/common.py +0 -0
  23. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/docs.html +0 -0
  24. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/edits.html +0 -0
  25. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/guide/shared.css +0 -0
  26. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_artifact.py +0 -0
  27. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_auto_snapshot.py +0 -0
  28. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_c3_signal.py +0 -0
  29. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_c3read.py +0 -0
  30. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_dispatch.py +0 -0
  31. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_edit_ledger.py +0 -0
  32. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_edit_unlock.py +0 -0
  33. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_filter.py +0 -0
  34. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_ghost_files.py +0 -0
  35. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_pretool_enforce.py +0 -0
  36. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_read.py +0 -0
  37. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_session_stats.py +0 -0
  38. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hook_terse_advisor.py +0 -0
  39. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub.html +0 -0
  40. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_server.py +0 -0
  41. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/app.js +0 -0
  42. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/add_project.js +0 -0
  43. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/config_editor.js +0 -0
  44. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/drill_artifacts.js +0 -0
  45. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/drill_health.js +0 -0
  46. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/drill_panel.js +0 -0
  47. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/drill_tasks.js +0 -0
  48. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/drill_views.js +0 -0
  49. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/global_search.js +0 -0
  50. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/mcp_manager.js +0 -0
  51. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/modals.js +0 -0
  52. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/project_card.js +0 -0
  53. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/project_tree.js +0 -0
  54. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/session_drawer.js +0 -0
  55. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/settings_modal.js +0 -0
  56. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/sidebar.js +0 -0
  57. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/summary_bar.js +0 -0
  58. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/task_board.js +0 -0
  59. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/components/toasts.js +0 -0
  60. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui/state.js +0 -0
  61. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/hub_ui.html +0 -0
  62. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/mcp_proxy.py +0 -0
  63. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/mcp_server.py +0 -0
  64. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/server.py +0 -0
  65. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/__init__.py +0 -0
  66. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/_helpers.py +0 -0
  67. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/agent.py +0 -0
  68. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/artifacts.py +0 -0
  69. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/bitbucket.py +0 -0
  70. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/compress.py +0 -0
  71. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/delegate.py +0 -0
  72. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/edit.py +0 -0
  73. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/edits.py +0 -0
  74. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/federate.py +0 -0
  75. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/filter.py +0 -0
  76. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/impact.py +0 -0
  77. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/memory.py +0 -0
  78. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/project.py +0 -0
  79. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/read.py +0 -0
  80. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/search.py +0 -0
  81. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/session.py +0 -0
  82. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/shell.py +0 -0
  83. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/status.py +0 -0
  84. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/tasks.py +0 -0
  85. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/tools/validate.py +0 -0
  86. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/api.js +0 -0
  87. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/bitbucket.js +0 -0
  88. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/chat.js +0 -0
  89. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/dashboard.js +0 -0
  90. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/edits.js +0 -0
  91. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/instructions.js +0 -0
  92. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/memory.js +0 -0
  93. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/sessions.js +0 -0
  94. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/settings.js +0 -0
  95. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/sidebar.js +0 -0
  96. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/components/tasks.js +0 -0
  97. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/pm_shared.js +0 -0
  98. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/shared.js +0 -0
  99. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui/theme.js +0 -0
  100. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui.html +0 -0
  101. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui_legacy.html +0 -0
  102. {code_context_control-2.49.1 → code_context_control-2.49.2}/cli/ui_nano.html +0 -0
  103. {code_context_control-2.49.1 → code_context_control-2.49.2}/code_context_control.egg-info/SOURCES.txt +0 -0
  104. {code_context_control-2.49.1 → code_context_control-2.49.2}/code_context_control.egg-info/dependency_links.txt +0 -0
  105. {code_context_control-2.49.1 → code_context_control-2.49.2}/code_context_control.egg-info/entry_points.txt +0 -0
  106. {code_context_control-2.49.1 → code_context_control-2.49.2}/code_context_control.egg-info/requires.txt +0 -0
  107. {code_context_control-2.49.1 → code_context_control-2.49.2}/code_context_control.egg-info/top_level.txt +0 -0
  108. {code_context_control-2.49.1 → code_context_control-2.49.2}/core/__init__.py +0 -0
  109. {code_context_control-2.49.1 → code_context_control-2.49.2}/core/config.py +0 -0
  110. {code_context_control-2.49.1 → code_context_control-2.49.2}/core/ide.py +0 -0
  111. {code_context_control-2.49.1 → code_context_control-2.49.2}/core/mcp_toml.py +0 -0
  112. {code_context_control-2.49.1 → code_context_control-2.49.2}/core/web_security.py +0 -0
  113. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/__init__.py +0 -0
  114. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/config.py +0 -0
  115. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/mcp_oracle.py +0 -0
  116. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/oracle_server.py +0 -0
  117. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/__init__.py +0 -0
  118. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/activity_reporter.py +0 -0
  119. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/api_auth.py +0 -0
  120. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/c3_bridge.py +0 -0
  121. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/chat_engine.py +0 -0
  122. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/chat_store.py +0 -0
  123. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/cross_memory.py +0 -0
  124. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/federated_graph.py +0 -0
  125. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/health_checker.py +0 -0
  126. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/insight_engine.py +0 -0
  127. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/local_session.py +0 -0
  128. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/memory_reader.py +0 -0
  129. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/memory_writer.py +0 -0
  130. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/ollama_bridge.py +0 -0
  131. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/project_scanner.py +0 -0
  132. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/review_agent.py +0 -0
  133. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/tool_executor.py +0 -0
  134. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/services/tool_registry.py +0 -0
  135. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/activity.js +0 -0
  136. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/agents.js +0 -0
  137. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/app.js +0 -0
  138. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/busy.js +0 -0
  139. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/conversations.js +0 -0
  140. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/input.js +0 -0
  141. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/markdown.js +0 -0
  142. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/send.js +0 -0
  143. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/stream_renderer.js +0 -0
  144. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/chat/toolbar.js +0 -0
  145. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/core.js +0 -0
  146. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/crossgraph.js +0 -0
  147. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/header.js +0 -0
  148. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/insights.js +0 -0
  149. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/projects.js +0 -0
  150. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/settings.js +0 -0
  151. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/suggestions.js +0 -0
  152. {code_context_control-2.49.1 → code_context_control-2.49.2}/oracle/ui/theme_tabs.js +0 -0
  153. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/__init__.py +0 -0
  154. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/activity_log.py +0 -0
  155. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/agent_base.py +0 -0
  156. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/agents.py +0 -0
  157. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/artifact_defs.py +0 -0
  158. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/artifact_store.py +0 -0
  159. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/auto_memory.py +0 -0
  160. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bench/__init__.py +0 -0
  161. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bench/external/__init__.py +0 -0
  162. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bench/external/aider_polyglot.py +0 -0
  163. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bench/external/swe_bench.py +0 -0
  164. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/benchmark_dashboard.py +0 -0
  165. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bitbucket_client.py +0 -0
  166. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/bitbucket_credentials.py +0 -0
  167. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/circuit_breaker.py +0 -0
  168. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/claude_md.py +0 -0
  169. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/compressor.py +0 -0
  170. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/context_snapshot.py +0 -0
  171. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/conversation_store.py +0 -0
  172. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/doc_index.py +0 -0
  173. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/e2e_benchmark.py +0 -0
  174. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/e2e_evaluator.py +0 -0
  175. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/e2e_tasks.py +0 -0
  176. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/edit_ledger.py +0 -0
  177. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/embedding_index.py +0 -0
  178. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/error_reporting.py +0 -0
  179. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/file_memory.py +0 -0
  180. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/git_context.py +0 -0
  181. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/hub_service.py +0 -0
  182. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/indexer.py +0 -0
  183. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/memory.py +0 -0
  184. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/memory_consolidator.py +0 -0
  185. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/memory_graph.py +0 -0
  186. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/memory_grounder.py +0 -0
  187. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/memory_scorer.py +0 -0
  188. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/metrics.py +0 -0
  189. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/notifications.py +0 -0
  190. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/ollama_client.py +0 -0
  191. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/output_filter.py +0 -0
  192. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/parser.py +0 -0
  193. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/project_manager.py +0 -0
  194. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/project_runtime.py +0 -0
  195. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/protocol.py +0 -0
  196. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/proxy_state.py +0 -0
  197. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/retention.py +0 -0
  198. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/retrieval_broker.py +0 -0
  199. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/router.py +0 -0
  200. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/runtime.py +0 -0
  201. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/session_benchmark.py +0 -0
  202. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/session_manager.py +0 -0
  203. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/session_preloader.py +0 -0
  204. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/subprojects.py +0 -0
  205. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/task_store.py +0 -0
  206. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/telemetry.py +0 -0
  207. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/text_index.py +0 -0
  208. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/tool_classifier.py +0 -0
  209. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/transcript_index.py +0 -0
  210. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/validation_cache.py +0 -0
  211. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/vector_store.py +0 -0
  212. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/watcher.py +0 -0
  213. {code_context_control-2.49.1 → code_context_control-2.49.2}/services/win_subprocess.py +0 -0
  214. {code_context_control-2.49.1 → code_context_control-2.49.2}/setup.cfg +0 -0
  215. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_activity_reporter.py +0 -0
  216. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_aider_polyglot.py +0 -0
  217. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_artifact_store.py +0 -0
  218. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_artifact_tool.py +0 -0
  219. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_bitbucket_cli_smoke.py +0 -0
  220. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_bitbucket_client.py +0 -0
  221. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_bitbucket_config_fallback.py +0 -0
  222. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_bitbucket_credentials.py +0 -0
  223. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_bitbucket_tool.py +0 -0
  224. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_c3_bridge_project_artifacts.py +0 -0
  225. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_c3_shell.py +0 -0
  226. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_circuit_breaker.py +0 -0
  227. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_claude_md_merge.py +0 -0
  228. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_cli_smoke.py +0 -0
  229. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_compressor_large_file.py +0 -0
  230. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_delegate_cascade.py +0 -0
  231. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_e2e_benchmark.py +0 -0
  232. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_edit_ledger_hook.py +0 -0
  233. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_edit_normalization.py +0 -0
  234. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_enforcement_flip.py +0 -0
  235. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_federated_graph.py +0 -0
  236. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_filter_backoff.py +0 -0
  237. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_ghost_files.py +0 -0
  238. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_ghost_generation.py +0 -0
  239. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_git_branch_awareness.py +0 -0
  240. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hook_dispatch.py +0 -0
  241. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hook_pretool_enforce.py +0 -0
  242. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hook_smoke.py +0 -0
  243. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hook_state.py +0 -0
  244. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hub_inspect_api.py +0 -0
  245. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_hub_server_smoke.py +0 -0
  246. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_install_mcp_entrypoint.py +0 -0
  247. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_lazy_store_init.py +0 -0
  248. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_mcp_host_guard.py +0 -0
  249. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_mcp_server_smoke.py +0 -0
  250. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_mcp_toml.py +0 -0
  251. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_memory_graph_api.py +0 -0
  252. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_memory_system.py +0 -0
  253. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_notification_dedup.py +0 -0
  254. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_notification_discipline.py +0 -0
  255. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_api_auth.py +0 -0
  256. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_apikey_api.py +0 -0
  257. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_c3_bridge.py +0 -0
  258. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_chat_engine.py +0 -0
  259. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_discovery_api.py +0 -0
  260. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_local_auth.py +0 -0
  261. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_ollama_bridge.py +0 -0
  262. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_scanner_cache.py +0 -0
  263. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_security_fixes.py +0 -0
  264. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_subproject_awareness.py +0 -0
  265. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_oracle_ui_bundle.py +0 -0
  266. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_output_filter.py +0 -0
  267. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_permissions.py +0 -0
  268. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_pm_api.py +0 -0
  269. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_project_manager.py +0 -0
  270. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_project_manager_merge.py +0 -0
  271. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_project_tool.py +0 -0
  272. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_read_coercion.py +0 -0
  273. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_response_boilerplate.py +0 -0
  274. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_retention.py +0 -0
  275. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_review_digest.py +0 -0
  276. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_service_durability.py +0 -0
  277. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_session_benchmark.py +0 -0
  278. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_session_budget.py +0 -0
  279. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_shell_robustness.py +0 -0
  280. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_subproject_exclusion.py +0 -0
  281. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_subproject_federation.py +0 -0
  282. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_subprojects.py +0 -0
  283. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_swe_bench.py +0 -0
  284. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_task_store.py +0 -0
  285. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_task_tool.py +0 -0
  286. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_token_telemetry.py +0 -0
  287. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_tool_registry.py +0 -0
  288. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_upgrade_and_version.py +0 -0
  289. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_validate.py +0 -0
  290. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_web_security.py +0 -0
  291. {code_context_control-2.49.1 → code_context_control-2.49.2}/tests/test_windows_reliability.py +0 -0
  292. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/__init__.py +0 -0
  293. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/backend.py +0 -0
  294. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/__init__.py +0 -0
  295. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/benchmark_view.py +0 -0
  296. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/claudemd_view.py +0 -0
  297. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/compress_view.py +0 -0
  298. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/index_view.py +0 -0
  299. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/init_view.py +0 -0
  300. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/mcp_view.py +0 -0
  301. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/optimize_view.py +0 -0
  302. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/pipe_view.py +0 -0
  303. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/projects_view.py +0 -0
  304. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/search_view.py +0 -0
  305. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/session_view.py +0 -0
  306. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/stats.py +0 -0
  307. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/screens/ui_view.py +0 -0
  308. {code_context_control-2.49.1 → code_context_control-2.49.2}/tui/theme.tcss +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-control
3
- Version: 2.49.1
3
+ Version: 2.49.2
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
@@ -9,6 +9,7 @@ Project-URL: Documentation, https://github.com/drknowhow/code-context-control#re
9
9
  Project-URL: Repository, https://github.com/drknowhow/code-context-control
10
10
  Project-URL: Changelog, https://github.com/drknowhow/code-context-control/blob/main/CHANGELOG.md
11
11
  Project-URL: Issues, https://github.com/drknowhow/code-context-control/issues
12
+ Project-URL: Funding, https://github.com/sponsors/drknowhow
12
13
  Keywords: claude,claude-code,mcp,ai,code-intelligence,code-context,developer-tools,llm-tools
13
14
  Classifier: Development Status :: 4 - Beta
14
15
  Classifier: Intended Audience :: Developers
@@ -74,6 +75,7 @@ Dynamic: license-file
74
75
  <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
75
76
  <img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
76
77
  <img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
78
+ <a href="https://github.com/sponsors/drknowhow"><img alt="Sponsor" src="https://img.shields.io/badge/sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white"></a>
77
79
  </p>
78
80
 
79
81
  <p align="center">
@@ -423,6 +425,12 @@ Reports include token deltas, cost deltas, win rates, tool-usage analysis, and p
423
425
 
424
426
  ---
425
427
 
428
+ ## Support C3
429
+
430
+ C3 is free, open source, and built by one person. If it saves you tokens (it should — that's the whole point), consider [sponsoring on GitHub](https://github.com/sponsors/drknowhow). Sponsorship directly funds API costs for cross-model test runs and dedicated development time.
431
+
432
+ ---
433
+
426
434
  ## License
427
435
 
428
436
  - **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
@@ -440,3 +448,4 @@ The author may introduce a paid offering or relicense future major versions; no
440
448
  - **Security policy:** [`SECURITY.md`](SECURITY.md)
441
449
  - **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
442
450
  - **Issues:** https://github.com/drknowhow/code-context-control/issues
451
+ - **Sponsor:** https://github.com/sponsors/drknowhow
@@ -12,6 +12,7 @@
12
12
  <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
13
13
  <img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
14
14
  <img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
15
+ <a href="https://github.com/sponsors/drknowhow"><img alt="Sponsor" src="https://img.shields.io/badge/sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white"></a>
15
16
  </p>
16
17
 
17
18
  <p align="center">
@@ -361,6 +362,12 @@ Reports include token deltas, cost deltas, win rates, tool-usage analysis, and p
361
362
 
362
363
  ---
363
364
 
365
+ ## Support C3
366
+
367
+ C3 is free, open source, and built by one person. If it saves you tokens (it should — that's the whole point), consider [sponsoring on GitHub](https://github.com/sponsors/drknowhow). Sponsorship directly funds API costs for cross-model test runs and dedicated development time.
368
+
369
+ ---
370
+
364
371
  ## License
365
372
 
366
373
  - **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
@@ -378,3 +385,4 @@ The author may introduce a paid offering or relicense future major versions; no
378
385
  - **Security policy:** [`SECURITY.md`](SECURITY.md)
379
386
  - **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
380
387
  - **Issues:** https://github.com/drknowhow/code-context-control/issues
388
+ - **Sponsor:** https://github.com/sponsors/drknowhow
@@ -9,8 +9,12 @@ def build_parser(version: str, parse_cli_ide_arg):
9
9
  parser = argparse.ArgumentParser(
10
10
  prog="c3",
11
11
  description="Claude Code Companion - Reduce token usage with local intelligence",
12
+ epilog="Support C3 development: https://github.com/sponsors/drknowhow",
13
+ )
14
+ parser.add_argument(
15
+ "--version", "-v", action="version",
16
+ version=f"c3 version {version} | support C3: https://github.com/sponsors/drknowhow",
12
17
  )
13
- parser.add_argument("--version", "-v", action="version", version=f"c3 version {version}")
14
18
  subparsers = parser.add_subparsers(dest="command")
15
19
 
16
20
  p_init = subparsers.add_parser("init", help="Initialize C3 for a project")
@@ -79,6 +79,7 @@
79
79
  <a href="tools.html">Tools</a>
80
80
  <a href="bitbucket.html" class="active">Bitbucket</a>
81
81
  <a href="oracle.html">Oracle</a>
82
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
82
83
  </nav>
83
84
  <span class="header-version">v2.30.0</span>
84
85
  </header>
@@ -22,6 +22,7 @@
22
22
  <a href="tools.html">Tools</a>
23
23
  <a href="bitbucket.html">Bitbucket</a>
24
24
  <a href="oracle.html">Oracle</a>
25
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
25
26
  </nav>
26
27
  <span class="header-version">v2.x</span>
27
28
  </header>
@@ -224,6 +224,7 @@
224
224
  <a href="tools.html">Tools</a>
225
225
  <a href="bitbucket.html">Bitbucket</a>
226
226
  <a href="oracle.html">Oracle</a>
227
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
227
228
  </nav>
228
229
  <span class="header-version">v2.x</span>
229
230
  </header>
@@ -77,6 +77,7 @@
77
77
  <a href="tools.html">Tools</a>
78
78
  <a href="bitbucket.html">Bitbucket</a>
79
79
  <a href="oracle.html" class="active">Oracle</a>
80
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
80
81
  </nav>
81
82
  <span class="header-version">v2.32.0</span>
82
83
  </header>
@@ -81,6 +81,7 @@
81
81
  <a href="tools.html" class="active">Tools</a>
82
82
  <a href="bitbucket.html">Bitbucket</a>
83
83
  <a href="oracle.html">Oracle</a>
84
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
84
85
  </nav>
85
86
  <span class="header-version">v2.x</span>
86
87
  </header>
@@ -224,6 +224,7 @@
224
224
  <a href="tools.html">Tools</a>
225
225
  <a href="bitbucket.html">Bitbucket</a>
226
226
  <a href="oracle.html">Oracle</a>
227
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" style="color:#EA4AAA">&#9829; Sponsor</a>
227
228
  </nav>
228
229
  <span class="header-version">v2.x</span>
229
230
  </header>
@@ -64,6 +64,9 @@ function TopBar({ version, activeCount, darkMode, hubConfig, mainView, setMainVi
64
64
  <a href="/guide/" target="_blank" rel="noopener" title="Open the C3 guide" style={ctrl}>
65
65
  <I name="fileText" size={13} color={T.textMuted} />
66
66
  </a>
67
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development" style={ctrl}>
68
+ <I name="heart" size={13} color="#EA4AAA" />
69
+ </a>
67
70
  {hubConfig && hubConfig.oracle_url && (
68
71
  <a href={hubConfig.oracle_url} target="_blank" rel="noopener" title="Open Oracle" style={ctrl}>
69
72
  <I name="external" size={13} color={T.textMuted} />
@@ -1,5 +1,5 @@
1
1
  // ─── Main App ─────────────────────────────
2
- const BUILD_TIME = "2026-04-10 UI-v2";
2
+ const BUILD_TIME = "2026-07-02 UI-v2";
3
3
  const { useState, useEffect, useCallback, useRef } = React;
4
4
 
5
5
  const tabs = [
@@ -191,6 +191,14 @@ function App() {
191
191
  }}>
192
192
  Ledger
193
193
  </a>
194
+ <a href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development"
195
+ style={{
196
+ width: 28, height: 28, borderRadius: 6, border: "1px solid #EA4AAA40",
197
+ background: "#EA4AAA12", textDecoration: "none", display: "flex",
198
+ alignItems: "center", justifyContent: "center"
199
+ }}>
200
+ <I name="heart" size={13} color="#EA4AAA" />
201
+ </a>
194
202
  <button onClick={() => setDarkMode(!darkMode)} title="Toggle theme"
195
203
  style={{
196
204
  width: 28, height: 28, borderRadius: 6, border: `1px solid ${T.border}`,
@@ -18,6 +18,7 @@ const icons = {
18
18
  refresh: "M1 4v6h6M23 20v-6h-6M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15",
19
19
  copy: "M20 9h-9a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2zM5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1",
20
20
  check: "M20 6L9 17l-5-5",
21
+ heart: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z",
21
22
  layers: "M12 2l10 6.5v7L12 22 2 15.5v-7zM12 22v-7M22 8.5l-10 7-10-7",
22
23
  brain: "M12 2a7 7 0 0 0-7 7c0 3 2 5.5 5 7v4h4v-4c3-1.5 5-4 5-7a7 7 0 0 0-7-7z",
23
24
  chevron: "M9 18l6-6-6-6",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-control
3
- Version: 2.49.1
3
+ Version: 2.49.2
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
@@ -9,6 +9,7 @@ Project-URL: Documentation, https://github.com/drknowhow/code-context-control#re
9
9
  Project-URL: Repository, https://github.com/drknowhow/code-context-control
10
10
  Project-URL: Changelog, https://github.com/drknowhow/code-context-control/blob/main/CHANGELOG.md
11
11
  Project-URL: Issues, https://github.com/drknowhow/code-context-control/issues
12
+ Project-URL: Funding, https://github.com/sponsors/drknowhow
12
13
  Keywords: claude,claude-code,mcp,ai,code-intelligence,code-context,developer-tools,llm-tools
13
14
  Classifier: Development Status :: 4 - Beta
14
15
  Classifier: Intended Audience :: Developers
@@ -74,6 +75,7 @@ Dynamic: license-file
74
75
  <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-blue.svg">
75
76
  <img alt="Platforms" src="https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey">
76
77
  <img alt="Status: Beta" src="https://img.shields.io/badge/status-beta-yellow">
78
+ <a href="https://github.com/sponsors/drknowhow"><img alt="Sponsor" src="https://img.shields.io/badge/sponsor-%E2%9D%A4-EA4AAA?logo=githubsponsors&logoColor=white"></a>
77
79
  </p>
78
80
 
79
81
  <p align="center">
@@ -423,6 +425,12 @@ Reports include token deltas, cost deltas, win rates, tool-usage analysis, and p
423
425
 
424
426
  ---
425
427
 
428
+ ## Support C3
429
+
430
+ C3 is free, open source, and built by one person. If it saves you tokens (it should — that's the whole point), consider [sponsoring on GitHub](https://github.com/sponsors/drknowhow). Sponsorship directly funds API costs for cross-model test runs and dedicated development time.
431
+
432
+ ---
433
+
426
434
  ## License
427
435
 
428
436
  - **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted under Apache-2.0 terms.
@@ -440,3 +448,4 @@ The author may introduce a paid offering or relicense future major versions; no
440
448
  - **Security policy:** [`SECURITY.md`](SECURITY.md)
441
449
  - **Licensing FAQ:** [`LICENSING.md`](LICENSING.md)
442
450
  - **Issues:** https://github.com/drknowhow/code-context-control/issues
451
+ - **Sponsor:** https://github.com/sponsors/drknowhow
@@ -827,6 +827,7 @@
827
827
  </div>
828
828
  </div>
829
829
  </div>
830
+ <a class="header-btn" href="https://github.com/sponsors/drknowhow" target="_blank" rel="noopener" title="Sponsor C3 development"><span style="color:#EA4AAA">&#9829;</span> Sponsor</a>
830
831
  <a class="header-btn" id="hubLink" href="#" target="_blank" style="display:none">Open Hub</a>
831
832
  <button class="header-btn" id="themeToggle" onclick="toggleTheme()">Theme: Dark</button>
832
833
  </div>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "code-context-control"
7
- version = "2.49.1"
7
+ version = "2.49.2"
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"
@@ -81,6 +81,7 @@ Documentation = "https://github.com/drknowhow/code-context-control#readme"
81
81
  Repository = "https://github.com/drknowhow/code-context-control"
82
82
  Changelog = "https://github.com/drknowhow/code-context-control/blob/main/CHANGELOG.md"
83
83
  Issues = "https://github.com/drknowhow/code-context-control/issues"
84
+ Funding = "https://github.com/sponsors/drknowhow"
84
85
 
85
86
  [project.scripts]
86
87
  c3 = "cli.c3:main"
@@ -21,6 +21,7 @@ class C3App(App):
21
21
  Binding("q", "quit", "Quit", show=True),
22
22
  Binding("tab", "toggle_focus", "Focus: NAV/CONTENT", show=True),
23
23
  Binding("ctrl+t", "toggle_theme", "Theme", show=True),
24
+ Binding("s", "sponsor", "Sponsor \u2665", show=True),
24
25
  ]
25
26
 
26
27
  def compose(self) -> ComposeResult:
@@ -71,6 +72,10 @@ class C3App(App):
71
72
  else:
72
73
  nav_list.focus()
73
74
 
75
+ def action_sponsor(self) -> None:
76
+ import webbrowser
77
+ webbrowser.open("https://github.com/sponsors/drknowhow")
78
+
74
79
  def action_toggle_theme(self) -> None:
75
80
  if self.theme_mode == "dark":
76
81
  self.theme_mode = "light"