code-context-control 2.28.0__tar.gz → 2.28.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.
- {code_context_control-2.28.0 → code_context_control-2.28.1}/PKG-INFO +9 -5
- {code_context_control-2.28.0 → code_context_control-2.28.1}/README.md +8 -4
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/c3.py +1 -1
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/PKG-INFO +9 -5
- {code_context_control-2.28.0 → code_context_control-2.28.1}/pyproject.toml +1 -1
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_e2e_benchmark.py +2 -13
- {code_context_control-2.28.0 → code_context_control-2.28.1}/LICENSE +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/_hook_utils.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/commands/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/commands/common.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/commands/parser.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/docs.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/edits.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_c3read.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_filter.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_read.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hub.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/hub_server.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/mcp_server.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/server.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/agent.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/compress.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/delegate.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/edit.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/edits.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/filter.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/impact.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/memory.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/read.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/search.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/session.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/shell.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/status.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/tools/validate.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/api.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/app.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/icons.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/shared.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/theme.js +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui_legacy.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui_nano.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/SOURCES.txt +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/core/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/core/config.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/core/ide.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/config.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/oracle.html +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/oracle_server.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/ollama_bridge.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/activity_log.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/agent_base.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/agents.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/auto_memory.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/external/swe_bench.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/claude_md.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/compressor.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/context_snapshot.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/conversation_store.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/doc_index.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/e2e_tasks.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/edit_ledger.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/embedding_index.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/error_reporting.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/file_memory.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/hub_service.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/indexer.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/memory.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/memory_consolidator.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/memory_graph.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/memory_grounder.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/memory_scorer.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/metrics.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/notifications.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/ollama_client.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/output_filter.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/parser.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/project_manager.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/protocol.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/proxy_state.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/retrieval_broker.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/router.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/runtime.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/session_benchmark.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/session_manager.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/session_preloader.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/text_index.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/tool_classifier.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/transcript_index.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/validation_cache.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/vector_store.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/version_tracker.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/services/watcher.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/setup.cfg +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_memory_system.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_output_filter.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_permissions.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_project_manager.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_session_budget.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_validate.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_windows_reliability.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/backend.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/main.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/__init__.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/index_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/init_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/search_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/session_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/stats.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.1}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.28.0 → code_context_control-2.28.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.28.
|
|
3
|
+
Version: 2.28.1
|
|
4
4
|
Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer.
|
|
5
5
|
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -233,11 +233,15 @@ See [`SECURITY.md`](SECURITY.md) for vulnerability reports, the full hardening g
|
|
|
233
233
|
|
|
234
234
|
---
|
|
235
235
|
|
|
236
|
-
## License
|
|
236
|
+
## License & project posture
|
|
237
237
|
|
|
238
|
-
- **
|
|
239
|
-
- **Pro tier** (planned
|
|
240
|
-
- **
|
|
238
|
+
- **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted.
|
|
239
|
+
- **Pro tier** (planned, not yet shipped) — license-key activation will gate new additive features. Existing OSS features stay free. See [`EULA-PRO.md`](EULA-PRO.md).
|
|
240
|
+
- **Future major versions may relicense** to a source-available license (e.g. BSL 1.1 with a 4-year Apache-2.0 conversion) to protect commercialization. Already-published 2.x versions stay Apache-2.0 forever.
|
|
241
|
+
- **Trademarks** — "C3" and "Code Context Control" are trademarks (™) of Dimitri Tselenchuk. Forks must use a distinct name. See [`NOTICE`](NOTICE).
|
|
242
|
+
- **Third-party deps** — see [`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
|
|
243
|
+
|
|
244
|
+
**Building on C3 commercially?** Please email `dtselenc@gmail.com` first. Apache-2.0 grants broad rights to the published 2.x code, but as a courtesy we ask the community not to repackage C3 as a commercial competing product. Full FAQ: [`LICENSING.md`](LICENSING.md).
|
|
241
245
|
|
|
242
246
|
---
|
|
243
247
|
|
|
@@ -172,11 +172,15 @@ See [`SECURITY.md`](SECURITY.md) for vulnerability reports, the full hardening g
|
|
|
172
172
|
|
|
173
173
|
---
|
|
174
174
|
|
|
175
|
-
## License
|
|
175
|
+
## License & project posture
|
|
176
176
|
|
|
177
|
-
- **
|
|
178
|
-
- **Pro tier** (planned
|
|
179
|
-
- **
|
|
177
|
+
- **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted.
|
|
178
|
+
- **Pro tier** (planned, not yet shipped) — license-key activation will gate new additive features. Existing OSS features stay free. See [`EULA-PRO.md`](EULA-PRO.md).
|
|
179
|
+
- **Future major versions may relicense** to a source-available license (e.g. BSL 1.1 with a 4-year Apache-2.0 conversion) to protect commercialization. Already-published 2.x versions stay Apache-2.0 forever.
|
|
180
|
+
- **Trademarks** — "C3" and "Code Context Control" are trademarks (™) of Dimitri Tselenchuk. Forks must use a distinct name. See [`NOTICE`](NOTICE).
|
|
181
|
+
- **Third-party deps** — see [`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
|
|
182
|
+
|
|
183
|
+
**Building on C3 commercially?** Please email `dtselenc@gmail.com` first. Apache-2.0 grants broad rights to the published 2.x code, but as a courtesy we ask the community not to repackage C3 as a commercial competing product. Full FAQ: [`LICENSING.md`](LICENSING.md).
|
|
180
184
|
|
|
181
185
|
---
|
|
182
186
|
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/code_context_control.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.28.
|
|
3
|
+
Version: 2.28.1
|
|
4
4
|
Summary: Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer.
|
|
5
5
|
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -233,11 +233,15 @@ See [`SECURITY.md`](SECURITY.md) for vulnerability reports, the full hardening g
|
|
|
233
233
|
|
|
234
234
|
---
|
|
235
235
|
|
|
236
|
-
## License
|
|
236
|
+
## License & project posture
|
|
237
237
|
|
|
238
|
-
- **
|
|
239
|
-
- **Pro tier** (planned
|
|
240
|
-
- **
|
|
238
|
+
- **Current OSS license** — Apache License 2.0 ([`LICENSE`](LICENSE)). Free for any use, including commercial. Modify, fork, redistribute — all permitted.
|
|
239
|
+
- **Pro tier** (planned, not yet shipped) — license-key activation will gate new additive features. Existing OSS features stay free. See [`EULA-PRO.md`](EULA-PRO.md).
|
|
240
|
+
- **Future major versions may relicense** to a source-available license (e.g. BSL 1.1 with a 4-year Apache-2.0 conversion) to protect commercialization. Already-published 2.x versions stay Apache-2.0 forever.
|
|
241
|
+
- **Trademarks** — "C3" and "Code Context Control" are trademarks (™) of Dimitri Tselenchuk. Forks must use a distinct name. See [`NOTICE`](NOTICE).
|
|
242
|
+
- **Third-party deps** — see [`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
|
|
243
|
+
|
|
244
|
+
**Building on C3 commercially?** Please email `dtselenc@gmail.com` first. Apache-2.0 grants broad rights to the published 2.x code, but as a courtesy we ask the community not to repackage C3 as a commercial competing product. Full FAQ: [`LICENSING.md`](LICENSING.md).
|
|
241
245
|
|
|
242
246
|
---
|
|
243
247
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-context-control"
|
|
7
|
-
version = "2.28.
|
|
7
|
+
version = "2.28.1"
|
|
8
8
|
description = "Local code-intelligence layer for AI coding tools (Claude Code, Codex, Gemini, Copilot). Retrieve less, read less, edit safer."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -408,11 +408,6 @@ class TestE2EBenchmarkWithMocks(unittest.TestCase):
|
|
|
408
408
|
self.assertIn("Cost Saved", html)
|
|
409
409
|
self.assertIn("Response Comparison", html)
|
|
410
410
|
|
|
411
|
-
@unittest.skip(
|
|
412
|
-
"Pre-existing failure: same root cause as test_report_includes_tool_analysis — "
|
|
413
|
-
"the bench worktree path zeroes mocked CLIResponse fields when .mcp.json is "
|
|
414
|
-
"absent. Tracked separately."
|
|
415
|
-
)
|
|
416
411
|
def test_report_efficiency_summary(self):
|
|
417
412
|
"""Verify efficiency calculations in the report."""
|
|
418
413
|
p = self._make_mock_provider("claude")
|
|
@@ -425,7 +420,7 @@ class TestE2EBenchmarkWithMocks(unittest.TestCase):
|
|
|
425
420
|
|
|
426
421
|
tasks = [E2ETask(id="t1", category="test", query="?",
|
|
427
422
|
ground_truth=GroundTruth(required_keywords=["answer"]))]
|
|
428
|
-
bench = E2EBenchmark(".", [p], tasks, Evaluator(), parallel=False)
|
|
423
|
+
bench = E2EBenchmark(".", [p], tasks, Evaluator(), parallel=False, cache=False)
|
|
429
424
|
results = bench.run_all()
|
|
430
425
|
report = generate_e2e_report(".", results, [p], tasks)
|
|
431
426
|
|
|
@@ -527,12 +522,6 @@ class TestToolUsage(unittest.TestCase):
|
|
|
527
522
|
|
|
528
523
|
|
|
529
524
|
class TestToolAnalysisInReport(unittest.TestCase):
|
|
530
|
-
@unittest.skip(
|
|
531
|
-
"Pre-existing failure: bench worktree path zeroes mocked tool_usage when "
|
|
532
|
-
".mcp.json is absent from the project root. Fix tracked separately — "
|
|
533
|
-
"either inject a stub .mcp.json into the test sandbox or refactor "
|
|
534
|
-
"_run_task to respect pre-populated tool_usage on mocked responses."
|
|
535
|
-
)
|
|
536
525
|
def test_report_includes_tool_analysis(self):
|
|
537
526
|
"""Report generation includes tool_analysis section."""
|
|
538
527
|
p = CLIProvider(name="claude", executable="claude", available=True)
|
|
@@ -558,7 +547,7 @@ class TestToolAnalysisInReport(unittest.TestCase):
|
|
|
558
547
|
|
|
559
548
|
tasks = [E2ETask(id="t1", category="test", query="?",
|
|
560
549
|
ground_truth=GroundTruth(required_keywords=["answer"]))]
|
|
561
|
-
bench = E2EBenchmark(".", [p], tasks, Evaluator(), parallel=False)
|
|
550
|
+
bench = E2EBenchmark(".", [p], tasks, Evaluator(), parallel=False, cache=False)
|
|
562
551
|
results = bench.run_all()
|
|
563
552
|
report = generate_e2e_report(".", results, [p], tasks)
|
|
564
553
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/cli/ui/components/instructions.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/federated_graph.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/health_checker.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/insight_engine.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/memory_reader.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/memory_writer.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/ollama_bridge.py
RENAMED
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/oracle/services/project_scanner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/external/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/services/bench/external/swe_bench.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_edit_normalization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_notification_discipline.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.28.0 → code_context_control-2.28.1}/tests/test_windows_reliability.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|