code-context-control 2.92.1__tar.gz → 2.92.3__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.92.1/code_context_control.egg-info → code_context_control-2.92.3}/PKG-INFO +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/c3.py +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3/code_context_control.egg-info}/PKG-INFO +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/code_context_control.egg-info/SOURCES.txt +1 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/pyproject.toml +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bench/external/swe_bench.py +3 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/doc_index.py +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/indexer.py +42 -3
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/protocol.py +1 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/scanner.py +2 -1
- code_context_control-2.92.3/tests/test_cooccurrence_bounds.py +96 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_windows_reliability.py +65 -1
- {code_context_control-2.92.1 → code_context_control-2.92.3}/LICENSE +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/README.md +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/_hook_utils.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/_shell_writes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/commands/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/commands/common.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/commands/parser.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/docs.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/edits.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/access.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/bitbucket.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/credentials.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/getting-started.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/index.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/masking.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/oracle.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/shared.css +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/tools.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/guide/workflow.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_access_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_artifact.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_c3read.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_dispatch.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_filter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_prompt_recall.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_read.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_server.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/app.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/add_project.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/config_editor.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_artifacts.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_health.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_panel.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_subprojects.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_tasks.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_views.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/global_search.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_ci.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_credentials.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_enforcement.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_locks.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/mcp_manager.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/modals.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/project_card.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/project_tree.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/session_drawer.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/settings_modal.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/sidebar.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/summary_bar.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/task_board.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/toasts.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/topbar.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/state.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/mcp_server.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/progress.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/server.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/_grants.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/agent.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/artifacts.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/bitbucket.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/ci.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/compress.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/delegate.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/edit.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/edit_verify.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/edits.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/federate.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/filter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/impact.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/jira.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/locks.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/memory.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/override.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/project.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/read.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/search.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/session.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/shell.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/status.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/tasks.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/tools/validate.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/api.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/app.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/access.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/bitbucket.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/credentials.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/enforcement.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/jira.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/components/tasks.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/icons.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/pm_shared.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/shared.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui/theme.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui_legacy.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/cli/ui_nano.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/core/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/core/config.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/core/ide.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/core/mcp_toml.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/core/web_security.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/config.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/mcp_oracle.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/oracle_server.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/oracle_ui.html +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/activity_reporter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/api_auth.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/chat_poll.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/discovery_audit.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/local_session.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/mobile_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/tool_executor.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/services/tool_registry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/activity.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/agents.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/app.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/busy.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/conversations.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/input.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/markdown.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/send.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/stream_renderer.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/chat/toolbar.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/core.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/crossgraph.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/header.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/insights.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/projects.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/qrcode.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/settings.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/suggestions.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/oracle/ui/theme_tabs.js +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/access_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/access_telemetry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/activity_log.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/agent_base.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/agent_locks.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/agents.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/artifact_defs.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/artifact_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/auto_memory.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/background_service.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bench/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bitbucket_client.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/bitbucket_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_act.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_cache.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_expr.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_failures.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_github.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_impact.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_intel.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_runner.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ci_workflow.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/circuit_breaker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/claude_md.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/compressor.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/context_snapshot.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/conversation_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/cred_telemetry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/credential_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/e2e_tasks.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/edit_ledger.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/embedding_index.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/enforcement_policy.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/error_reporting.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/file_memory.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/git_context.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/hub_service.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/jira_client.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/jira_cloud.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/jira_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/jira_data_center.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/jira_links.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/mask_activation.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/mask_mirror.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/mask_presets.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_consolidator.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_distiller.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_graph.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_grounder.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_queue.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/memory_scorer.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/metrics.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/notifications.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ollama_bridge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ollama_client.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/ollama_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/oracle_service.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/output_filter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/override_grants.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/override_policy.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/override_requests.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/override_wake.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/parser.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/project_manager.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/project_runtime.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/proxy_state.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/repo_map.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/repo_shape.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/retention.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/retrieval_broker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/router.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/runtime.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/session_benchmark.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/session_manager.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/session_preloader.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/subprojects.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/task_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/telemetry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/text_index.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/time_tracker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/tool_classifier.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/transcript_index.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/validation_cache.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/vector_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/watcher.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/services/win_subprocess.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/setup.cfg +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_builtin_optout.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_guard_meta.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_guard_shell_project.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_guard_surfaces.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_access_guard_wiring.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_activity_reporter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_agent_locks.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_antigravity_transition.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_artifact_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_artifact_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_background_service.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_bitbucket_cli_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_bitbucket_client.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_bitbucket_config_fallback.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_bitbucket_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_bitbucket_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_c3_bridge_project_artifacts.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_chat_poll.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_act.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_cache.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_expr.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_impact.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_intel.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_runner.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ci_workflow.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_circuit_breaker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_claude_md_merge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_compressor_large_file.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_cred_telemetry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_credential_login_kind.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_credential_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_credential_ui_parity.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_credentials_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_credentials_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_creds_cli_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_delegate_cascade.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_delegate_version_probe.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_e2e_benchmark.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_edit_ledger_deadline.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_edit_ledger_hook.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_edit_locking.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_edit_verify.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_embedding_index_deadlock.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_enforcement_policy.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_enforcement_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_failed_calls_do_not_unlock.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_filter_backoff.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ghost_generation.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_git_branch_awareness.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_access_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_codex_compat.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_dispatch.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_pretool_enforce.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_prompt_recall.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_state.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hook_utf8_stdio.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_credentials_route.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_credentials_routes_write.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_enforcement_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_inspect_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_locks_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_oracle_service_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_hub_subproject_links.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ide_workflow_adaptation.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_init_clear_preserves_user_content.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_init_scan.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_install_mcp_entrypoint.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_cli_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_client.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_config_fallback.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_links.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_jira_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_lazy_store_init.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mask_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mask_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mask_surfaces.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mcp_host_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mcp_memory_timeout.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mcp_toml.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_memory_distiller.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_memory_queue.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_memory_system.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mobile_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mobile_extras.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mobile_override_routes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_mobile_security_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_no_stale_model_pins.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_notification_dedup.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_ollama_credentials.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_api_auth.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_apikey_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_c3_bridge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_chat_engine.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_chat_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_discovery_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_discovery_audit.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_health_probe.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_local_auth.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_ollama_bridge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_scanner_cache.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_security_fixes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_session_bootstrap.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_subproject_awareness.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_oracle_ui_bundle.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_output_filter.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_override_grants.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_override_grants_mcp.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_override_requests.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_override_wake.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_permissions.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_pm_api.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_project_manager.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_project_manager_merge.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_project_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_read_coercion.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_read_edit_parity.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_related_facts.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_repo_map.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_repo_shape.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_response_boilerplate.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_retention.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_review_digest.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_service_durability.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_session_budget.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_shell_creds.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_shell_robustness.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_shell_write_ledger.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_shell_writes.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_subproject_exclusion.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_subproject_federation.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_subprojects.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_task_store.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_task_tool.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_time_tracker.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_token_telemetry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_tool_registry.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_upgrade_and_version.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_validate.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_vault_write_guard.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_version_sync.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_web_security.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/backend.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/main.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/__init__.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/index_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/init_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/search_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/session_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/stats.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.92.1 → code_context_control-2.92.3}/tui/theme.tcss +0 -0
{code_context_control-2.92.1/code_context_control.egg-info → code_context_control-2.92.3}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.92.
|
|
3
|
+
Version: 2.92.3
|
|
4
4
|
Summary: Local MCP code-intelligence for AI coding tools: surgical search/read/edit, agent-config version history, path-level access + masking guards, and a multi-project hub.
|
|
5
5
|
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
{code_context_control-2.92.1 → code_context_control-2.92.3/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.92.
|
|
3
|
+
Version: 2.92.3
|
|
4
4
|
Summary: Local MCP code-intelligence for AI coding tools: surgical search/read/edit, agent-config version history, path-level access + masking guards, and a multi-project hub.
|
|
5
5
|
Author-email: Dimitri Tselenchuk <dtselenc@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -303,6 +303,7 @@ tests/test_circuit_breaker.py
|
|
|
303
303
|
tests/test_claude_md_merge.py
|
|
304
304
|
tests/test_cli_smoke.py
|
|
305
305
|
tests/test_compressor_large_file.py
|
|
306
|
+
tests/test_cooccurrence_bounds.py
|
|
306
307
|
tests/test_cred_telemetry.py
|
|
307
308
|
tests/test_credential_login_kind.py
|
|
308
309
|
tests/test_credential_store.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-context-control"
|
|
7
|
-
version = "2.92.
|
|
7
|
+
version = "2.92.3"
|
|
8
8
|
description = "Local MCP code-intelligence for AI coding tools: surgical search/read/edit, agent-config version history, path-level access + masking guards, and a multi-project hub."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/services/bench/external/swe_bench.py
RENAMED
|
@@ -446,7 +446,9 @@ def evaluate_with_docker(
|
|
|
446
446
|
"--timeout", str(timeout),
|
|
447
447
|
]
|
|
448
448
|
try:
|
|
449
|
-
|
|
449
|
+
n_predictions = len(
|
|
450
|
+
predictions_path.read_text(encoding="utf-8").splitlines())
|
|
451
|
+
subprocess.run(cmd, check=True, timeout=timeout * n_predictions)
|
|
450
452
|
except Exception as e:
|
|
451
453
|
return {"error": str(e)}
|
|
452
454
|
|
|
@@ -30,13 +30,27 @@ def _masked_content(fpath, project_path):
|
|
|
30
30
|
if v.denial:
|
|
31
31
|
return None
|
|
32
32
|
if not v.masked:
|
|
33
|
-
return fpath.read_text(errors="replace")
|
|
33
|
+
return fpath.read_text(encoding="utf-8", errors="replace")
|
|
34
34
|
try:
|
|
35
35
|
return mask_mirror.render_for_path(fpath, project_path).text
|
|
36
36
|
except Exception:
|
|
37
37
|
return None
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
# Co-occurrence is O(unique_tokens^2) per chunk, so one minified vendor
|
|
41
|
+
# bundle can dominate a whole index build. Both bounds below are deliberate
|
|
42
|
+
# and their effect is REPORTED in build_index()'s stats rather than applied
|
|
43
|
+
# silently — a capped build must never look like a complete one.
|
|
44
|
+
#
|
|
45
|
+
# 200: chunks above this are minified/bundled/data blobs, not code. The
|
|
46
|
+
# pruning step keeps only the top-5 co-occurring terms per token with at
|
|
47
|
+
# least 3 hits, so such a chunk contributes noise that is discarded anyway.
|
|
48
|
+
_COOC_MAX_CHUNK_TOKENS = 200
|
|
49
|
+
# 20M: whole-pass ceiling on pair updates, so no repository shape can make
|
|
50
|
+
# this step unbounded. ~10s of CPU on the boxes this runs on.
|
|
51
|
+
_COOC_MAX_PAIR_UPDATES = 20_000_000
|
|
52
|
+
|
|
53
|
+
|
|
40
54
|
class CodeIndex:
|
|
41
55
|
"""TF-IDF based code search index with structural awareness."""
|
|
42
56
|
|
|
@@ -187,7 +201,8 @@ class CodeIndex:
|
|
|
187
201
|
# (docs/mask-guard.md §6, row 2). Skip it instead.
|
|
188
202
|
continue
|
|
189
203
|
else:
|
|
190
|
-
content = fpath.read_text(
|
|
204
|
+
content = fpath.read_text(encoding='utf-8',
|
|
205
|
+
errors='replace')
|
|
191
206
|
except Exception:
|
|
192
207
|
continue
|
|
193
208
|
|
|
@@ -239,6 +254,7 @@ class CodeIndex:
|
|
|
239
254
|
"entries_scanned": scan_stats["entries"],
|
|
240
255
|
"files_capped": files_capped,
|
|
241
256
|
"max_files": max_files,
|
|
257
|
+
"cooccurrence": getattr(self, "_cooccurrence_stats", {}),
|
|
242
258
|
}
|
|
243
259
|
|
|
244
260
|
def _chunk_file(self, content: str, ext: str, doc_id: str) -> list:
|
|
@@ -624,16 +640,39 @@ class CodeIndex:
|
|
|
624
640
|
self.chunk_tfidf[chunk_id][term] = normalized_tf * self.idf.get(term, 0)
|
|
625
641
|
|
|
626
642
|
def _build_cooccurrence(self):
|
|
627
|
-
"""Build lightweight co-occurrence map from indexed chunks for auto-synonyms.
|
|
643
|
+
"""Build lightweight co-occurrence map from indexed chunks for auto-synonyms.
|
|
644
|
+
|
|
645
|
+
Bounded on purpose: the pair loop is quadratic in a chunk's unique
|
|
646
|
+
token count, so a single minified bundle (798 unique tokens x 4091
|
|
647
|
+
chunks = 1.9e9 pair updates, measured on a real project) can hang a
|
|
648
|
+
build that has nothing else wrong with it. Skipped chunks and an
|
|
649
|
+
exhausted budget are recorded in ``self._cooccurrence_stats`` and
|
|
650
|
+
returned by :meth:`build_index`.
|
|
651
|
+
"""
|
|
628
652
|
self._cooccurrence = {}
|
|
653
|
+
skipped = 0
|
|
654
|
+
updates = 0
|
|
655
|
+
budget_hit = False
|
|
629
656
|
for chunk in self.chunks.values():
|
|
630
657
|
tokens = set(self._tokenize(chunk["content"]))
|
|
658
|
+
if len(tokens) > _COOC_MAX_CHUNK_TOKENS:
|
|
659
|
+
skipped += 1
|
|
660
|
+
continue
|
|
661
|
+
if updates + len(tokens) * (len(tokens) - 1) > _COOC_MAX_PAIR_UPDATES:
|
|
662
|
+
budget_hit = True
|
|
663
|
+
break
|
|
631
664
|
for t in tokens:
|
|
632
665
|
if t not in self._cooccurrence:
|
|
633
666
|
self._cooccurrence[t] = Counter()
|
|
634
667
|
for t2 in tokens:
|
|
635
668
|
if t != t2:
|
|
636
669
|
self._cooccurrence[t][t2] += 1
|
|
670
|
+
updates += len(tokens) * (len(tokens) - 1)
|
|
671
|
+
self._cooccurrence_stats = {
|
|
672
|
+
"chunks_skipped": skipped,
|
|
673
|
+
"pair_updates": updates,
|
|
674
|
+
"budget_exhausted": budget_hit,
|
|
675
|
+
}
|
|
637
676
|
# Prune: keep only top-5 co-occurring terms per token (minimum 3 co-occurrences)
|
|
638
677
|
pruned = {}
|
|
639
678
|
for term, counts in self._cooccurrence.items():
|
|
@@ -43,7 +43,8 @@ def gitignore_dir_patterns(root) -> tuple:
|
|
|
43
43
|
names: set = set()
|
|
44
44
|
patterns: list = []
|
|
45
45
|
try:
|
|
46
|
-
text = (Path(root) / '.gitignore').read_text(
|
|
46
|
+
text = (Path(root) / '.gitignore').read_text(encoding='utf-8',
|
|
47
|
+
errors='replace')
|
|
47
48
|
except OSError:
|
|
48
49
|
return names, patterns
|
|
49
50
|
for line in text.splitlines():
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""The co-occurrence pass is quadratic per chunk and must stay bounded.
|
|
2
|
+
|
|
3
|
+
Measured origin: a 139-file project whose vendor directory holds a minified
|
|
4
|
+
CSS bundle produced 4091 chunks averaging 798 unique tokens. The unbounded
|
|
5
|
+
pass needed ~1.9e9 Counter updates and pinned one core for over fifteen
|
|
6
|
+
minutes on an index that is otherwise built in seconds.
|
|
7
|
+
"""
|
|
8
|
+
import tempfile
|
|
9
|
+
import unittest
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
from services import indexer as indexer_mod
|
|
13
|
+
from services.indexer import CodeIndex
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _word(i: int) -> str:
|
|
17
|
+
"""Distinct lowercase word - the tokenizer keeps [a-zA-Z]{2,} only."""
|
|
18
|
+
a, b = divmod(i, 26)
|
|
19
|
+
c, a = divmod(a, 26)
|
|
20
|
+
return "zz" + chr(97 + c) + chr(97 + a) + chr(97 + b)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _minified_like(n_tokens: int) -> str:
|
|
24
|
+
"""A single line of n distinct tokens - what a minified bundle looks like."""
|
|
25
|
+
return ".".join(_word(i) for i in range(n_tokens)) + "\n"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class TestCooccurrenceBounds(unittest.TestCase):
|
|
29
|
+
def setUp(self):
|
|
30
|
+
self._tmp = tempfile.TemporaryDirectory()
|
|
31
|
+
self.root = Path(self._tmp.name)
|
|
32
|
+
|
|
33
|
+
def tearDown(self):
|
|
34
|
+
self._tmp.cleanup()
|
|
35
|
+
|
|
36
|
+
def _build(self):
|
|
37
|
+
idx = CodeIndex(str(self.root), str(self.root / ".c3" / "index"))
|
|
38
|
+
return idx, idx.build_index()
|
|
39
|
+
|
|
40
|
+
def test_token_dense_chunks_are_skipped_and_reported(self):
|
|
41
|
+
"""A chunk past the cap contributes nothing - and says so."""
|
|
42
|
+
big = indexer_mod._COOC_MAX_CHUNK_TOKENS + 50
|
|
43
|
+
(self.root / "vendor.js").write_text(_minified_like(big), encoding="utf-8")
|
|
44
|
+
(self.root / "small.py").write_text(
|
|
45
|
+
"def alpha_helper():\n return beta_helper\n", encoding="utf-8")
|
|
46
|
+
|
|
47
|
+
idx, result = self._build()
|
|
48
|
+
stats = result["cooccurrence"]
|
|
49
|
+
|
|
50
|
+
self.assertGreaterEqual(stats["chunks_skipped"], 1)
|
|
51
|
+
self.assertFalse(stats["budget_exhausted"])
|
|
52
|
+
# The skipped chunk's tokens are absent from the synonym map...
|
|
53
|
+
self.assertNotIn(_word(0), idx._cooccurrence)
|
|
54
|
+
# ...while the ordinary file was still processed.
|
|
55
|
+
self.assertLessEqual(
|
|
56
|
+
stats["pair_updates"],
|
|
57
|
+
indexer_mod._COOC_MAX_PAIR_UPDATES,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
def test_pair_updates_never_exceed_the_budget(self):
|
|
61
|
+
"""Many at-the-cap chunks stop the pass instead of running away."""
|
|
62
|
+
# Each file sits just under the per-chunk cap, so only the whole-pass
|
|
63
|
+
# budget can stop this.
|
|
64
|
+
per_chunk = indexer_mod._COOC_MAX_CHUNK_TOKENS
|
|
65
|
+
pairs_each = per_chunk * (per_chunk - 1)
|
|
66
|
+
n_files = (indexer_mod._COOC_MAX_PAIR_UPDATES // pairs_each) + 3
|
|
67
|
+
for i in range(n_files):
|
|
68
|
+
(self.root / f"f{i}.js").write_text(
|
|
69
|
+
_minified_like(per_chunk), encoding="utf-8")
|
|
70
|
+
|
|
71
|
+
_, result = self._build()
|
|
72
|
+
stats = result["cooccurrence"]
|
|
73
|
+
|
|
74
|
+
self.assertLessEqual(
|
|
75
|
+
stats["pair_updates"], indexer_mod._COOC_MAX_PAIR_UPDATES)
|
|
76
|
+
self.assertTrue(stats["budget_exhausted"])
|
|
77
|
+
|
|
78
|
+
def test_ordinary_project_is_unaffected(self):
|
|
79
|
+
"""The bound must not change the synonym map for normal code."""
|
|
80
|
+
(self.root / "a.py").write_text(
|
|
81
|
+
"def alpha_helper():\n"
|
|
82
|
+
" return beta_helper() + gamma_helper()\n", encoding="utf-8")
|
|
83
|
+
(self.root / "b.py").write_text(
|
|
84
|
+
"def beta_helper():\n"
|
|
85
|
+
" return alpha_helper() + gamma_helper()\n", encoding="utf-8")
|
|
86
|
+
|
|
87
|
+
idx, result = self._build()
|
|
88
|
+
stats = result["cooccurrence"]
|
|
89
|
+
|
|
90
|
+
self.assertEqual(stats["chunks_skipped"], 0)
|
|
91
|
+
self.assertFalse(stats["budget_exhausted"])
|
|
92
|
+
self.assertGreater(stats["pair_updates"], 0)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
if __name__ == "__main__":
|
|
96
|
+
unittest.main()
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/tests/test_windows_reliability.py
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Locks in invariants that have bitten this project on Windows:
|
|
4
4
|
- Text-mode open() calls must pass encoding='utf-8' so cp1252 doesn't corrupt JSON
|
|
5
|
+
- Path.read_text()/write_text() must pass encoding='utf-8' for the same reason
|
|
5
6
|
- No mojibake byte sequences in .py sources (re-encoding bugs decay silently)
|
|
6
7
|
"""
|
|
7
8
|
from __future__ import annotations
|
|
@@ -12,7 +13,9 @@ from pathlib import Path
|
|
|
12
13
|
|
|
13
14
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
14
15
|
|
|
15
|
-
_SKIP_DIRS = {".venv", "__pycache__", ".pytest_cache", ".c3"
|
|
16
|
+
_SKIP_DIRS = {".venv", "__pycache__", ".pytest_cache", ".c3",
|
|
17
|
+
# Build artifacts: gitignored copies of sources we already scan.
|
|
18
|
+
"build", "dist", ".eggs"}
|
|
16
19
|
_SKIP_FRAGMENTS = (".tmp.",)
|
|
17
20
|
|
|
18
21
|
# Sequence produced when UTF-8 text is written then re-read as cp1252 and
|
|
@@ -63,6 +66,36 @@ def _find_open_calls_missing_encoding(text: str):
|
|
|
63
66
|
yield line_no, call.replace("\n", " ")[:160]
|
|
64
67
|
|
|
65
68
|
|
|
69
|
+
# Path.read_text/write_text default to locale encoding exactly like open().
|
|
70
|
+
# `importlib.metadata` Distribution.read_text takes a FILENAME, not an encoding.
|
|
71
|
+
_PATH_TEXT_CALL = re.compile(r"\.(read_text|write_text)\s*\(", re.MULTILINE)
|
|
72
|
+
_PATH_TEXT_EXEMPT = re.compile(r"\b(dist|distribution)\.\s*$")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def _find_path_text_calls_missing_encoding(text: str):
|
|
76
|
+
"""Yield (line_no, call_text) for read_text/write_text without an encoding.
|
|
77
|
+
|
|
78
|
+
``read_text('utf-8')`` (positional) counts: encoding is the first parameter.
|
|
79
|
+
"""
|
|
80
|
+
for m in _PATH_TEXT_CALL.finditer(text):
|
|
81
|
+
if _PATH_TEXT_EXEMPT.search(text[max(0, m.start() - 24):m.start() + 1]):
|
|
82
|
+
continue
|
|
83
|
+
depth = 1
|
|
84
|
+
i = m.end()
|
|
85
|
+
while i < len(text) and depth > 0:
|
|
86
|
+
c = text[i]
|
|
87
|
+
if c == "(":
|
|
88
|
+
depth += 1
|
|
89
|
+
elif c == ")":
|
|
90
|
+
depth -= 1
|
|
91
|
+
i += 1
|
|
92
|
+
call = text[m.start():i]
|
|
93
|
+
if "encoding" in call or "utf-8" in call or "utf8" in call:
|
|
94
|
+
continue
|
|
95
|
+
line_no = text[: m.start()].count("\n") + 1
|
|
96
|
+
yield line_no, call.replace("\n", " ")[:160]
|
|
97
|
+
|
|
98
|
+
|
|
66
99
|
class TestWindowsReliability(unittest.TestCase):
|
|
67
100
|
def test_no_text_open_without_encoding(self):
|
|
68
101
|
"""Every text-mode open() in shipped code must pass encoding='utf-8'.
|
|
@@ -89,6 +122,37 @@ class TestWindowsReliability(unittest.TestCase):
|
|
|
89
122
|
+ "\n ".join(offenders)
|
|
90
123
|
)
|
|
91
124
|
|
|
125
|
+
def test_no_path_text_io_without_encoding(self):
|
|
126
|
+
"""Path.read_text()/write_text() must declare encoding='utf-8'.
|
|
127
|
+
|
|
128
|
+
The indexer, doc index, protocol dictionary and .gitignore scanner all
|
|
129
|
+
called ``read_text(errors='replace')`` with no encoding. On Windows
|
|
130
|
+
that decodes UTF-8 source as cp1252, and ``errors='replace'`` means it
|
|
131
|
+
never raises — every em dash landed in .c3/index, the doc index and the
|
|
132
|
+
chroma collection as the three-char mojibake this module's
|
|
133
|
+
``_MOJIBAKE_EM_DASH`` matches. Source files were never touched; the
|
|
134
|
+
corruption lived only in the indexed copies served back to the agent.
|
|
135
|
+
"""
|
|
136
|
+
offenders = []
|
|
137
|
+
for py in _iter_py_files():
|
|
138
|
+
# Shipped code only. Test fixtures write their own temp files and
|
|
139
|
+
# control both ends of the encoding.
|
|
140
|
+
if "tests" in py.relative_to(REPO_ROOT).parts:
|
|
141
|
+
continue
|
|
142
|
+
try:
|
|
143
|
+
text = py.read_text(encoding="utf-8")
|
|
144
|
+
except UnicodeDecodeError as e:
|
|
145
|
+
self.fail(f"{py} is not valid UTF-8: {e}")
|
|
146
|
+
for line_no, call in _find_path_text_calls_missing_encoding(text):
|
|
147
|
+
offenders.append(
|
|
148
|
+
f"{py.relative_to(REPO_ROOT).as_posix()}:{line_no}: {call}")
|
|
149
|
+
if offenders:
|
|
150
|
+
self.fail(
|
|
151
|
+
"read_text()/write_text() calls missing encoding='utf-8' "
|
|
152
|
+
"(silently mojibake non-ASCII on Windows cp1252):\n "
|
|
153
|
+
+ "\n ".join(offenders)
|
|
154
|
+
)
|
|
155
|
+
|
|
92
156
|
def test_no_mojibake_bytes_in_sources(self):
|
|
93
157
|
"""No .py file should contain the UTF-8-re-encoded-as-cp1252 em-dash signature.
|
|
94
158
|
|
|
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.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/add_project.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/config_editor.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_artifacts.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_health.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_panel.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_tasks.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/drill_views.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/global_search.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_credentials.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_enforcement.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/hub_locks.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/mcp_manager.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/project_card.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/project_tree.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/session_drawer.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/settings_modal.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/sidebar.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/summary_bar.js
RENAMED
|
File without changes
|
{code_context_control-2.92.1 → code_context_control-2.92.3}/cli/hub_ui/components/task_board.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
|
|
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
|