code-context-control 2.81.0__tar.gz → 2.82.0__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.81.0/code_context_control.egg-info → code_context_control-2.82.0}/PKG-INFO +1 -1
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/c3.py +4 -2
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_server.py +3 -6
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_ci.js +25 -7
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/ci.py +22 -9
- {code_context_control-2.81.0 → code_context_control-2.82.0/code_context_control.egg-info}/PKG-INFO +1 -1
- {code_context_control-2.81.0 → code_context_control-2.82.0}/pyproject.toml +1 -1
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ci_workflow.py +56 -8
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ci_act.py +68 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ci_runner.py +1 -1
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ci_workflow.py +5 -1
- {code_context_control-2.81.0 → code_context_control-2.82.0}/LICENSE +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/README.md +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/_hook_utils.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/commands/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/commands/common.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/commands/parser.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/docs.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/edits.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/access.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/bitbucket.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/credentials.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/getting-started.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/index.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/masking.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/oracle.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/shared.css +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/tools.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/guide/workflow.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_access_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_artifact.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_c3read.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_dispatch.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_filter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_prompt_recall.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_read.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/app.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/add_project.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/config_editor.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_artifacts.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_health.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_panel.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_subprojects.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_tasks.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_views.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/global_search.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_credentials.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_enforcement.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_locks.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/mcp_manager.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/modals.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/project_card.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/project_tree.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/session_drawer.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/settings_modal.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/sidebar.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/summary_bar.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/task_board.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/toasts.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/topbar.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/state.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/mcp_server.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/progress.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/server.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/_grants.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/agent.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/artifacts.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/bitbucket.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/compress.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/delegate.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/edit.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/edit_verify.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/edits.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/federate.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/filter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/impact.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/jira.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/locks.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/memory.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/override.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/project.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/read.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/search.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/session.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/shell.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/status.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/tasks.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/tools/validate.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/api.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/app.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/access.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/bitbucket.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/credentials.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/enforcement.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/jira.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/components/tasks.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/icons.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/pm_shared.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/shared.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui/theme.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui_legacy.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/cli/ui_nano.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/code_context_control.egg-info/SOURCES.txt +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/core/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/core/config.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/core/ide.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/core/mcp_toml.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/core/web_security.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/config.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/mcp_oracle.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/oracle_server.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/oracle_ui.html +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/activity_reporter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/api_auth.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/chat_poll.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/discovery_audit.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/local_session.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/mobile_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/tool_executor.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/services/tool_registry.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/activity.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/agents.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/app.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/busy.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/conversations.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/input.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/markdown.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/send.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/stream_renderer.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/chat/toolbar.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/core.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/crossgraph.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/header.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/insights.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/projects.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/qrcode.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/settings.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/suggestions.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/oracle/ui/theme_tabs.js +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/access_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/access_telemetry.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/activity_log.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/agent_base.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/agent_locks.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/agents.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/artifact_defs.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/artifact_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/auto_memory.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bench/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bench/external/swe_bench.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bitbucket_client.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/bitbucket_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ci_act.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ci_expr.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ci_failures.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ci_runner.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/circuit_breaker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/claude_md.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/compressor.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/context_snapshot.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/conversation_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/credential_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/doc_index.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/e2e_tasks.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/edit_ledger.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/embedding_index.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/enforcement_policy.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/error_reporting.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/file_memory.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/git_context.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/hub_service.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/indexer.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/jira_client.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/jira_cloud.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/jira_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/jira_data_center.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/jira_links.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/mask_activation.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/mask_mirror.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/mask_presets.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_consolidator.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_distiller.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_graph.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_grounder.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_queue.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/memory_scorer.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/metrics.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/notifications.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ollama_bridge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ollama_client.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/ollama_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/output_filter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/override_grants.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/override_policy.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/override_requests.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/override_wake.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/parser.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/project_manager.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/project_runtime.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/protocol.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/proxy_state.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/repo_map.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/retention.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/retrieval_broker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/router.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/runtime.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/scanner.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/session_benchmark.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/session_manager.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/session_preloader.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/subprojects.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/task_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/telemetry.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/text_index.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/time_tracker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/tool_classifier.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/transcript_index.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/validation_cache.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/vector_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/watcher.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/services/win_subprocess.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/setup.cfg +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_builtin_optout.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_guard_meta.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_guard_shell_project.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_guard_surfaces.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_access_guard_wiring.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_activity_reporter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_agent_locks.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_antigravity_transition.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_artifact_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_artifact_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_bitbucket_cli_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_bitbucket_client.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_bitbucket_config_fallback.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_bitbucket_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_bitbucket_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_c3_bridge_project_artifacts.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_chat_poll.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ci_expr.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_circuit_breaker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_claude_md_merge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_compressor_large_file.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_credential_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_credentials_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_credentials_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_creds_cli_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_delegate_cascade.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_delegate_version_probe.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_e2e_benchmark.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_edit_ledger_deadline.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_edit_ledger_hook.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_edit_locking.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_edit_verify.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_embedding_index_deadlock.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_enforcement_policy.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_enforcement_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_filter_backoff.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ghost_generation.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_git_branch_awareness.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_access_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_codex_compat.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_dispatch.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_pretool_enforce.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_prompt_recall.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_state.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hook_utf8_stdio.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_credentials_route.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_credentials_routes_write.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_enforcement_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_inspect_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_locks_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_hub_subproject_links.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ide_workflow_adaptation.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_init_scan.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_install_mcp_entrypoint.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_cli_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_client.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_config_fallback.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_links.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_jira_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_lazy_store_init.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mask_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mask_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mask_surfaces.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mcp_host_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mcp_memory_timeout.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mcp_toml.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_memory_distiller.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_memory_queue.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_memory_system.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mobile_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mobile_extras.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mobile_override_routes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_mobile_security_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_no_stale_model_pins.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_notification_dedup.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_ollama_credentials.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_api_auth.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_apikey_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_c3_bridge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_chat_engine.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_chat_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_discovery_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_discovery_audit.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_local_auth.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_ollama_bridge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_scanner_cache.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_security_fixes.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_session_bootstrap.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_subproject_awareness.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_oracle_ui_bundle.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_output_filter.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_override_grants.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_override_grants_mcp.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_override_requests.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_override_wake.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_permissions.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_pm_api.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_project_manager.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_project_manager_merge.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_project_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_read_coercion.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_read_edit_parity.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_related_facts.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_repo_map.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_response_boilerplate.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_retention.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_review_digest.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_service_durability.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_session_budget.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_shell_creds.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_shell_robustness.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_subproject_exclusion.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_subproject_federation.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_subprojects.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_task_store.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_task_tool.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_time_tracker.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_token_telemetry.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_tool_registry.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_upgrade_and_version.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_validate.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_vault_write_guard.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_version_sync.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_web_security.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tests/test_windows_reliability.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/backend.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/main.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/__init__.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/index_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/init_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/search_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/session_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/stats.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.81.0 → code_context_control-2.82.0}/tui/theme.tcss +0 -0
{code_context_control-2.81.0/code_context_control.egg-info → code_context_control-2.82.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.82.0
|
|
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
|
|
@@ -92,7 +92,7 @@ console = Console() if HAS_RICH else None
|
|
|
92
92
|
# Config
|
|
93
93
|
CONFIG_DIR = ".c3"
|
|
94
94
|
CONFIG_FILE = ".c3/config.json"
|
|
95
|
-
__version__ = "2.
|
|
95
|
+
__version__ = "2.82.0"
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
def _compress_file_cli(compressor, path, mode="smart", **kw):
|
|
@@ -6065,7 +6065,9 @@ def _ci_main(args) -> int:
|
|
|
6065
6065
|
from services import ci_runner as cr
|
|
6066
6066
|
from services.ci_workflow import inspect_project
|
|
6067
6067
|
if sub == "inspect":
|
|
6068
|
-
payload = inspect_project(
|
|
6068
|
+
payload = inspect_project(
|
|
6069
|
+
project_path, event=getattr(args, "event", "") or "",
|
|
6070
|
+
engine=getattr(args, "engine", "auto") or "auto")
|
|
6069
6071
|
elif sub in ("run", "rerun"):
|
|
6070
6072
|
only = None
|
|
6071
6073
|
if sub == "rerun":
|
|
@@ -1321,12 +1321,9 @@ def api_ci_inspect():
|
|
|
1321
1321
|
except ValueError as e:
|
|
1322
1322
|
return jsonify({"error": str(e)}), 404
|
|
1323
1323
|
try:
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
# "install act" is a different answer from "macOS is impossible".
|
|
1328
|
-
data["engines"] = ci_act.availability()
|
|
1329
|
-
return jsonify(data)
|
|
1324
|
+
# inspect_project owns the engine partition, so the Hub, the CLI
|
|
1325
|
+
# and the tool text can never disagree about what is runnable.
|
|
1326
|
+
return jsonify(inspect_project(resolved))
|
|
1330
1327
|
except Exception as e:
|
|
1331
1328
|
return jsonify({"error": f"{type(e).__name__}: {e}"}), 500
|
|
1332
1329
|
|
|
@@ -18,6 +18,11 @@ const CI_STATUS_STYLE = {
|
|
|
18
18
|
unsupported: ['UNSUP', 'warn'],
|
|
19
19
|
foreign: ['OTHER-OS', 'blue'],
|
|
20
20
|
deselected: ['—', 'textDim'],
|
|
21
|
+
// capability labels, used by the job graph only
|
|
22
|
+
cap_native: ['NATIVE', 'accent'],
|
|
23
|
+
cap_container: ['CONTAINER', 'accent'],
|
|
24
|
+
cap_unreachable: ['OTHER-OS', 'blue'],
|
|
25
|
+
cap_unsupported: ['UNSUP', 'warn'],
|
|
21
26
|
};
|
|
22
27
|
|
|
23
28
|
function CiStatusPill({ status, title }) {
|
|
@@ -143,6 +148,9 @@ function HubCI({ projects, onOpenDrill }) {
|
|
|
143
148
|
|
|
144
149
|
const jobs = (inspect && inspect.jobs) || [];
|
|
145
150
|
const engines = inspect && inspect.engines;
|
|
151
|
+
const runnableNative = new Set((inspect && inspect.runnable_native) || []);
|
|
152
|
+
const runnableContainer = new Set((inspect && inspect.runnable_container) || []);
|
|
153
|
+
const unsupportedKeys = new Set(((inspect && inspect.unsupported) || []).map(u => u.key));
|
|
146
154
|
const runJobs = ((run && run.jobs) || []).filter(j => j.status !== 'deselected');
|
|
147
155
|
|
|
148
156
|
return (
|
|
@@ -152,7 +160,8 @@ function HubCI({ projects, onOpenDrill }) {
|
|
|
152
160
|
<span style={{ fontSize: 14, color: T.text }}>Local CI</span>
|
|
153
161
|
<span className="mono" style={{ fontSize: 11, color: T.textMuted }}>
|
|
154
162
|
{inspect
|
|
155
|
-
? `${(inspect.runnable || []).length} of ${jobs.length}
|
|
163
|
+
? `${(inspect.runnable || []).length} of ${jobs.length} runnable here`
|
|
164
|
+
+ ` (${runnableNative.size} native, ${runnableContainer.size} container)`
|
|
156
165
|
: 'loading…'}
|
|
157
166
|
</span>
|
|
158
167
|
<div style={{ flex: 1 }} />
|
|
@@ -289,13 +298,22 @@ function HubCI({ projects, onOpenDrill }) {
|
|
|
289
298
|
display: 'flex', alignItems: 'center', gap: 9, padding: '5px 10px',
|
|
290
299
|
borderTop: `1px solid ${T.border}`, fontSize: 11,
|
|
291
300
|
}}>
|
|
301
|
+
{/* Read the server's partition; never re-derive it here. The
|
|
302
|
+
first attempt inferred runnability in JS from act_could_run,
|
|
303
|
+
which means "act has no blockers with this job" and NOT "act
|
|
304
|
+
can run it here" — act only does Linux. Every macOS cell
|
|
305
|
+
rendered as a green PASS it could never earn. */}
|
|
292
306
|
<CiStatusPill
|
|
293
|
-
status={(
|
|
294
|
-
:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
307
|
+
status={runnableNative.has(j.key) ? 'cap_native'
|
|
308
|
+
: runnableContainer.has(j.key) ? 'cap_container'
|
|
309
|
+
: unsupportedKeys.has(j.key) ? 'cap_unsupported'
|
|
310
|
+
: 'cap_unreachable'}
|
|
311
|
+
title={runnableNative.has(j.key) ? 'runnable natively on this host'
|
|
312
|
+
: runnableContainer.has(j.key)
|
|
313
|
+
? `runs in a container (${j.runs_on}) via act`
|
|
314
|
+
: unsupportedKeys.has(j.key)
|
|
315
|
+
? (j.blockers || []).join('; ')
|
|
316
|
+
: `targets ${j.runs_on} — no available engine can run it here`} />
|
|
299
317
|
<span className="mono" style={{ color: T.textMuted }}>{j.key}</span>
|
|
300
318
|
{!!(j.needs || []).length && (
|
|
301
319
|
<span className="mono" style={{ fontSize: 10, color: T.textDim }}>
|
|
@@ -91,7 +91,7 @@ def handle_ci(action: str, job: str, run_id: str, allow_foreign: bool,
|
|
|
91
91
|
|
|
92
92
|
# ── inspect ──────────────────────────────────────────────────────────
|
|
93
93
|
if action in ("", "inspect", "jobs"):
|
|
94
|
-
data = inspect_project(project, event=event)
|
|
94
|
+
data = inspect_project(project, event=event, engine=engine)
|
|
95
95
|
if not data["workflows"]:
|
|
96
96
|
return finalize(
|
|
97
97
|
"c3_ci", args,
|
|
@@ -105,26 +105,39 @@ def handle_ci(action: str, job: str, run_id: str, allow_foreign: bool,
|
|
|
105
105
|
lines.append(f" {wf['name']} [{', '.join(wf['triggers']) or 'no triggers'}]"
|
|
106
106
|
f" jobs={len(wf['jobs'])}{err}")
|
|
107
107
|
|
|
108
|
+
native = set(data.get("runnable_native") or [])
|
|
109
|
+
container = set(data.get("runnable_container") or [])
|
|
110
|
+
|
|
108
111
|
lines.append("\nJob graph (dependency order):")
|
|
109
112
|
by_key = {j["key"]: j for j in data["jobs"]}
|
|
110
113
|
for key in data["order"]:
|
|
111
114
|
j = by_key[key]
|
|
112
115
|
needs = f" needs={','.join(j['needs'])}" if j["needs"] else ""
|
|
113
|
-
if
|
|
116
|
+
if key in native:
|
|
117
|
+
state = "runnable here"
|
|
118
|
+
elif key in container:
|
|
119
|
+
state = "runnable (container)"
|
|
120
|
+
elif not j["supported"] and not j.get("act_could_run"):
|
|
114
121
|
state = "UNSUPPORTED"
|
|
115
|
-
elif j["foreign_runner"]:
|
|
116
|
-
state = f"other-OS ({j['runs_on']})"
|
|
117
122
|
else:
|
|
118
|
-
state = "
|
|
123
|
+
state = f"other-OS ({j['runs_on']})"
|
|
119
124
|
lines.append(f" {key:<42} {state}{needs}")
|
|
120
125
|
|
|
126
|
+
engines = data.get("engines") or {}
|
|
121
127
|
lines.append(
|
|
122
|
-
f"\nRunnable
|
|
128
|
+
f"\nRunnable here: {len(data['runnable'])} of {len(data['jobs'])}"
|
|
129
|
+
f" ({len(native)} native, {len(container)} container)")
|
|
130
|
+
if engines.get("ok"):
|
|
131
|
+
lines.append(f" engines: native + act ({engines.get('act_version', '')})")
|
|
132
|
+
else:
|
|
133
|
+
lines.append(
|
|
134
|
+
f" engines: native only — {engines.get('reason', 'act unavailable')}")
|
|
123
135
|
if data["foreign"]:
|
|
124
136
|
lines.append(
|
|
125
|
-
f" other-OS ({len(data['foreign'])}): these target a
|
|
126
|
-
"
|
|
127
|
-
"anyway and labels
|
|
137
|
+
f" other-OS ({len(data['foreign'])}): these target a runner no "
|
|
138
|
+
"available engine can reproduce. c3_ci(action='run', "
|
|
139
|
+
"allow_foreign=true) attempts them on this OS anyway and labels "
|
|
140
|
+
"the result cross-OS.")
|
|
128
141
|
if data["unsupported"]:
|
|
129
142
|
lines.append(f" unsupported ({len(data['unsupported'])}):")
|
|
130
143
|
for item in data["unsupported"][:8]:
|
{code_context_control-2.81.0 → code_context_control-2.82.0/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.
|
|
3
|
+
Version: 2.82.0
|
|
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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-context-control"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.82.0"
|
|
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"
|
|
@@ -455,7 +455,11 @@ def instantiate(workflow: Workflow, event: str = "", git: dict = None) -> list:
|
|
|
455
455
|
if job_if:
|
|
456
456
|
problem = ci_expr.validate(job_if, github_fields)
|
|
457
457
|
if problem:
|
|
458
|
+
# Blocks on BOTH engines: act evaluates conditions too, and
|
|
459
|
+
# a condition reading a value that does not exist locally
|
|
460
|
+
# (no event) is unjudgeable whatever runs the job.
|
|
458
461
|
blockers.append(f"job-level {problem}")
|
|
462
|
+
act_blockers.append(f"job-level {problem}")
|
|
459
463
|
|
|
460
464
|
steps: list = []
|
|
461
465
|
if not isinstance(steps_raw, list):
|
|
@@ -686,8 +690,19 @@ def build_dag(workflows, event: str = "", git: dict = None) -> Dag:
|
|
|
686
690
|
return Dag(instances=instances)
|
|
687
691
|
|
|
688
692
|
|
|
689
|
-
def inspect_project(project_path, event: str = "") -> dict:
|
|
690
|
-
"""Everything `c3 ci inspect` needs, as plain data.
|
|
693
|
+
def inspect_project(project_path, event: str = "", engine: str = "auto") -> dict:
|
|
694
|
+
"""Everything `c3 ci inspect` needs, as plain data.
|
|
695
|
+
|
|
696
|
+
Engine-aware on purpose. "Is this job runnable here?" has no answer until
|
|
697
|
+
you know what would run it: a Linux job is out of reach for the native
|
|
698
|
+
shell on Windows and routine for act. Reporting the native count alone
|
|
699
|
+
told users 3 of 15 when the real answer was 11 — so the partition is
|
|
700
|
+
computed once, here, and every surface (tool text, `--json`, the Hub)
|
|
701
|
+
reads the same numbers.
|
|
702
|
+
|
|
703
|
+
`engine='native'` forces the pre-act view, which is what a test wants when
|
|
704
|
+
it must not depend on whether act happens to be installed.
|
|
705
|
+
"""
|
|
691
706
|
files = discover_workflows(project_path)
|
|
692
707
|
workflows = [parse_workflow(p) for p in files]
|
|
693
708
|
dag = build_dag([w for w in workflows if not w.error],
|
|
@@ -699,18 +714,51 @@ def inspect_project(project_path, event: str = "") -> dict:
|
|
|
699
714
|
except CycleError as exc:
|
|
700
715
|
ordered, cycle = dag.instances, str(exc)
|
|
701
716
|
|
|
717
|
+
# Lazy: keeps parsing independent of the execution engines, and avoids
|
|
718
|
+
# paying for a `docker version` probe on every import.
|
|
719
|
+
from services import ci_act
|
|
720
|
+
engines = ci_act.availability() if engine in ("auto", "act") else {
|
|
721
|
+
"ok": False, "reason": "engine='native' — containers not considered"}
|
|
722
|
+
act_ok = bool(engines.get("ok"))
|
|
723
|
+
|
|
724
|
+
native, container, foreign, unsupported = [], [], [], []
|
|
725
|
+
for i in ordered:
|
|
726
|
+
is_linux = runner_os(i.runs_on) == "Linux"
|
|
727
|
+
can_native = i.supported_by("native") and not i.foreign_runner
|
|
728
|
+
can_container = act_ok and is_linux and i.supported_by("act")
|
|
729
|
+
|
|
730
|
+
if can_native:
|
|
731
|
+
native.append(i)
|
|
732
|
+
elif can_container:
|
|
733
|
+
container.append(i)
|
|
734
|
+
else:
|
|
735
|
+
# It cannot run. Two very different reasons, and conflating them
|
|
736
|
+
# sends the reader to the wrong fix: `unsupported` means the job
|
|
737
|
+
# contains something no available engine reproduces, `foreign`
|
|
738
|
+
# means the job is fine but its runner is out of reach. Judge the
|
|
739
|
+
# blockers of the engine that WOULD have been chosen.
|
|
740
|
+
would_use = "act" if (act_ok and is_linux) else "native"
|
|
741
|
+
if not i.supported_by(would_use):
|
|
742
|
+
unsupported.append(i)
|
|
743
|
+
else:
|
|
744
|
+
foreign.append(i)
|
|
745
|
+
|
|
702
746
|
return {
|
|
703
747
|
"project": str(project_path),
|
|
704
748
|
"host_os": host_os(),
|
|
749
|
+
"engines": engines,
|
|
705
750
|
"workflows": [w.to_dict() for w in workflows],
|
|
706
751
|
"jobs": [i.to_dict() for i in ordered],
|
|
707
752
|
"order": [i.key for i in ordered],
|
|
708
753
|
"cycle": cycle,
|
|
709
754
|
"unknown_needs": dag.unknown_needs(),
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
"
|
|
713
|
-
|
|
714
|
-
"
|
|
715
|
-
|
|
755
|
+
# `runnable` is the union — what can actually run here, by any engine
|
|
756
|
+
# available. The two breakdowns say how.
|
|
757
|
+
"runnable": [i.key for i in native + container],
|
|
758
|
+
"runnable_native": [i.key for i in native],
|
|
759
|
+
"runnable_container": [i.key for i in container],
|
|
760
|
+
"unsupported": [{"key": i.key,
|
|
761
|
+
"blockers": i.blockers_for("act" if act_ok else "native")}
|
|
762
|
+
for i in unsupported],
|
|
763
|
+
"foreign": [{"key": i.key, "runs_on": i.runs_on} for i in foreign],
|
|
716
764
|
}
|
|
@@ -282,6 +282,74 @@ jobs:
|
|
|
282
282
|
self.assertEqual((engine, fidelity), ("native", cr.FIDELITY_CROSS_OS))
|
|
283
283
|
|
|
284
284
|
|
|
285
|
+
class TestInspectPartition(ActTempProject):
|
|
286
|
+
"""The partition every surface reads — tool text, --json, and the Hub.
|
|
287
|
+
|
|
288
|
+
Regression: the Hub re-derived runnability in JavaScript from
|
|
289
|
+
`act_could_run`, which means "act has no blockers with this job" and NOT
|
|
290
|
+
"act can run it here" — act only does Linux. Every macOS cell rendered as a
|
|
291
|
+
green PASS it could never earn. The fix was to compute this once, here,
|
|
292
|
+
and have the UI read it; these tests are what keep that true.
|
|
293
|
+
"""
|
|
294
|
+
|
|
295
|
+
def _inspect(self, act_ok: bool):
|
|
296
|
+
workflow(self.tmp, """
|
|
297
|
+
name: CI
|
|
298
|
+
on: [push]
|
|
299
|
+
jobs:
|
|
300
|
+
linux:
|
|
301
|
+
runs-on: ubuntu-latest
|
|
302
|
+
steps:
|
|
303
|
+
- run: echo hi
|
|
304
|
+
mac:
|
|
305
|
+
runs-on: macos-latest
|
|
306
|
+
steps:
|
|
307
|
+
- run: echo hi
|
|
308
|
+
broken:
|
|
309
|
+
runs-on: ubuntu-latest
|
|
310
|
+
steps:
|
|
311
|
+
- run: deploy --token ${{ secrets.TOKEN }}
|
|
312
|
+
""")
|
|
313
|
+
from services.ci_workflow import inspect_project
|
|
314
|
+
with mock.patch.object(ci_act, "availability",
|
|
315
|
+
return_value={"ok": act_ok, "reason": "stubbed"}):
|
|
316
|
+
return inspect_project(self.tmp)
|
|
317
|
+
|
|
318
|
+
def test_macos_is_never_container_runnable_even_with_act(self):
|
|
319
|
+
data = self._inspect(act_ok=True)
|
|
320
|
+
mac = "CI::mac"
|
|
321
|
+
# Host-independent: act has no macOS image, so this can never be
|
|
322
|
+
# containerised anywhere. This is the claim the Hub bug violated.
|
|
323
|
+
self.assertNotIn(mac, data["runnable_container"])
|
|
324
|
+
if host_os() == "Darwin":
|
|
325
|
+
# On a Mac it is simply native — runnable, just not via a container.
|
|
326
|
+
self.assertIn(mac, data["runnable_native"])
|
|
327
|
+
else:
|
|
328
|
+
self.assertNotIn(mac, data["runnable"])
|
|
329
|
+
self.assertIn(mac, [f["key"] for f in data["foreign"]])
|
|
330
|
+
|
|
331
|
+
def test_linux_moves_from_foreign_to_container_when_act_appears(self):
|
|
332
|
+
if host_os() == "Linux":
|
|
333
|
+
self.skipTest("ubuntu-latest is native on a Linux host")
|
|
334
|
+
without = self._inspect(act_ok=False)
|
|
335
|
+
self.assertIn("CI::linux", [f["key"] for f in without["foreign"]])
|
|
336
|
+
with_act = self._inspect(act_ok=True)
|
|
337
|
+
self.assertIn("CI::linux", with_act["runnable_container"])
|
|
338
|
+
|
|
339
|
+
def test_a_job_blocked_on_every_engine_is_unsupported_not_foreign(self):
|
|
340
|
+
# A missing secret is not a reachability problem, and sending the
|
|
341
|
+
# reader to "install act" would be the wrong fix.
|
|
342
|
+
data = self._inspect(act_ok=True)
|
|
343
|
+
self.assertIn("CI::broken", [u["key"] for u in data["unsupported"]])
|
|
344
|
+
self.assertNotIn("CI::broken", [f["key"] for f in data["foreign"]])
|
|
345
|
+
|
|
346
|
+
def test_runnable_is_the_union_of_both_engines(self):
|
|
347
|
+
data = self._inspect(act_ok=True)
|
|
348
|
+
self.assertEqual(
|
|
349
|
+
sorted(data["runnable"]),
|
|
350
|
+
sorted(data["runnable_native"] + data["runnable_container"]))
|
|
351
|
+
|
|
352
|
+
|
|
285
353
|
class TestAvailability(unittest.TestCase):
|
|
286
354
|
def test_missing_act_reports_how_to_install_it(self):
|
|
287
355
|
with mock.patch.object(ci_act, "find_act", return_value=""):
|
|
@@ -453,7 +453,7 @@ jobs:
|
|
|
453
453
|
out, _ = self._call("inspect")
|
|
454
454
|
self.assertIn("CI::lint", out)
|
|
455
455
|
self.assertIn("needs=lint", out)
|
|
456
|
-
self.assertIn("Runnable
|
|
456
|
+
self.assertIn("Runnable here: 2 of 2", out)
|
|
457
457
|
|
|
458
458
|
def test_run_then_failures_then_rerun(self):
|
|
459
459
|
workflow(self.tmp, f"""
|
|
@@ -279,7 +279,11 @@ class TestInspectProject(CiTempProject):
|
|
|
279
279
|
f" steps:\n - run: echo ok\n"
|
|
280
280
|
f" broken:\n runs-on: self-hosted-unknown\n"
|
|
281
281
|
f" steps:\n - uses: exotic/thing@v1\n")
|
|
282
|
-
|
|
282
|
+
# engine="native" pins the pre-container partition. With act installed
|
|
283
|
+
# the Linux job would be containerised instead of refused — correct,
|
|
284
|
+
# and covered in test_ci_act.py — but this test is about the native
|
|
285
|
+
# split and must not depend on what the machine happens to have.
|
|
286
|
+
data = inspect_project(self.tmp, engine="native")
|
|
283
287
|
self.assertIn("CI::here", data["runnable"])
|
|
284
288
|
self.assertIn("CI::elsewhere", [f["key"] for f in data["foreign"]])
|
|
285
289
|
self.assertIn("CI::broken", [u["key"] for u in data["unsupported"]])
|
|
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.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/add_project.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/config_editor.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_artifacts.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_health.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_panel.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_tasks.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/drill_views.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/global_search.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_credentials.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_enforcement.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/hub_locks.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/mcp_manager.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/project_card.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/project_tree.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/session_drawer.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/settings_modal.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/sidebar.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/cli/hub_ui/components/summary_bar.js
RENAMED
|
File without changes
|
{code_context_control-2.81.0 → code_context_control-2.82.0}/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
|