code-context-control 2.110.0__tar.gz → 2.110.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {code_context_control-2.110.0 → code_context_control-2.110.1}/PKG-INFO +1 -1
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/c3.py +1 -1
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/PKG-INFO +1 -1
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/SOURCES.txt +1 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/pyproject.toml +1 -1
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/agents.py +49 -5
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/claude_md.py +18 -14
- code_context_control-2.110.1/tests/test_claude_md_updater.py +163 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/LICENSE +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/README.md +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/_hook_utils.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/_shell_writes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/commands/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/commands/common.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/commands/parser.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/docs.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/edits.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/access.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/bitbucket.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/credentials.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/getting-started.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/index.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/masking.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/oracle.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/shared.css +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/tools.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/guide/workflow.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_access_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_artifact.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_auto_snapshot.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_c3_signal.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_c3read.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_dispatch.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_edit_ledger.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_edit_unlock.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_filter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_ghost_files.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_pretool_enforce.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_prompt_recall.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_read.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_session_stats.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hook_terse_advisor.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_server.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/app.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/add_project.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/config_editor.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_artifacts.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_health.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_panel.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_subprojects.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_tasks.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_views.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/global_search.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_access.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_ci.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_cred_audit.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_credentials.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_enforcement.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_locks.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_tokens.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/mcp_manager.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/modals.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/project_card.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/project_tree.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/session_drawer.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/settings_modal.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/sidebar.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/summary_bar.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/task_board.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/toasts.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/topbar.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/state.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/mcp_proxy.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/mcp_server.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/progress.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/server.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/_grants.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/_helpers.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/agent.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/artifacts.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/bitbucket.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/ci.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/compress.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/delegate.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/edit.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/edit_verify.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/edits.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/federate.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/filter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/impact.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/jira.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/locks.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/memory.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/override.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/project.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/read.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/search.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/session.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/shell.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/status.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/tasks.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/tools/validate.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/api.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/app.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/access.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/bitbucket.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/chat.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/credentials.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/dashboard.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/edits.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/enforcement.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/instructions.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/jira.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/memory.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/sessions.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/settings.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/sidebar.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/tasks.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/icons.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/pm_shared.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/shared.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/theme.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui_legacy.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui_nano.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/dependency_links.txt +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/entry_points.txt +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/requires.txt +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/top_level.txt +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/core/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/core/config.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/core/ide.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/core/mcp_toml.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/core/web_security.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/config.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/mcp_oracle.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/oracle_server.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/oracle_ui.html +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/activity_reporter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/api_auth.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/c3_bridge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/chat_engine.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/chat_poll.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/chat_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/cross_memory.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/discovery_audit.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/federated_graph.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/health_checker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/insight_engine.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/local_session.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/memory_reader.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/memory_writer.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/mobile_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/project_scanner.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/review_agent.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/tool_executor.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/services/tool_registry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/activity.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/agents.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/app.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/busy.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/conversations.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/input.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/markdown.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/send.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/stream_renderer.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/chat/toolbar.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/core.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/crossgraph.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/header.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/insights.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/projects.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/qrcode.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/settings.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/suggestions.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/oracle/ui/theme_tabs.js +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/access_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/access_telemetry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/activity_log.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/agent_base.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/agent_locks.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/artifact_defs.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/artifact_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/auto_memory.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/background_service.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bench/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bench/external/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bench/external/aider_polyglot.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bench/external/swe_bench.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bench/search_eval.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/benchmark_dashboard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bitbucket_client.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/bitbucket_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_act.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_cache.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_expr.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_failures.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_github.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_impact.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_intel.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_runner.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ci_workflow.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/circuit_breaker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/compressor.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/context_snapshot.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/conversation_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/cred_audit.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/cred_telemetry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/credential_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/doc_index.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/e2e_benchmark.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/e2e_evaluator.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/e2e_tasks.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/edit_ledger.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/embedding_index.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/enforcement_policy.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/error_reporting.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/file_memory.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/git_context.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/hub_service.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/index_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/indexer.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/jira_client.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/jira_cloud.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/jira_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/jira_data_center.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/jira_links.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/lexical_index.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/mask_activation.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/mask_mirror.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/mask_presets.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_consolidator.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_distiller.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_graph.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_grounder.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_queue.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/memory_scorer.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/metrics.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/notifications.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ollama_bridge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ollama_client.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/ollama_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/oracle_service.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/output_filter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/override_grants.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/override_policy.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/override_requests.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/override_wake.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/parser.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/project_manager.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/project_runtime.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/protocol.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/proxy_state.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/repo_map.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/repo_shape.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/reranker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/retention.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/retrieval.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/retrieval_broker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/router.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/runtime.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/scanner.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/session_benchmark.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/session_manager.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/session_preloader.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/subprojects.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/task_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/telemetry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/text_index.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/time_tracker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/tool_classifier.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/transcript_index.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/validation_cache.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/vector_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/watcher.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/services/win_subprocess.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/setup.cfg +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_builtin_optout.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_guard_meta.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_guard_shell_project.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_guard_surfaces.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_access_guard_wiring.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_activity_reporter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_agent_locks.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_aider_polyglot.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_antigravity_transition.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_artifact_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_artifact_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_background_service.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_bitbucket_cli_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_bitbucket_client.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_bitbucket_config_fallback.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_bitbucket_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_bitbucket_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_builtin_modes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_c3_bridge_project_artifacts.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_c3_shell.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_chat_poll.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_act.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_cache.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_expr.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_impact.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_intel.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_runner.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ci_workflow.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_circuit_breaker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_claude_md_merge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_cli_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_compressor_large_file.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_confirm_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_confirm_guard_wiring.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_cooccurrence_bounds.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_cred_audit.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_cred_telemetry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_credential_login_kind.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_credential_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_credential_ui_parity.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_credentials_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_credentials_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_creds_cli_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_delegate_cascade.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_delegate_version_probe.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_e2e_benchmark.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_edit_ledger_deadline.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_edit_ledger_hook.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_edit_locking.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_edit_normalization.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_edit_verify.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_embedding_index_deadlock.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_enforcement_flip.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_enforcement_policy.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_enforcement_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_env_parser.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_failed_calls_do_not_unlock.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_federated_graph.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_filter_backoff.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ghost_files.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ghost_generation.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_git_branch_awareness.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_access_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_codex_compat.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_dispatch.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_pretool_enforce.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_prompt_recall.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_state.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hook_utf8_stdio.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_credentials_route.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_credentials_routes_write.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_enforcement_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_inspect_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_locks_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_oracle_service_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_override_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_server_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_hub_subproject_links.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ide_workflow_adaptation.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_index_cap_not_hardcoded.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_init_clear_preserves_user_content.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_init_scan.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_install_mcp_entrypoint.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_cli_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_client.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_config_fallback.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_links.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_jira_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_lazy_store_init.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mask_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mask_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mask_surfaces.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mcp_host_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mcp_memory_timeout.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mcp_server_smoke.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mcp_toml.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_memory_distiller.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_memory_graph_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_memory_queue.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_memory_system.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mobile_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mobile_extras.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mobile_override_routes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_mobile_security_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_no_stale_model_pins.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_notification_dedup.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_notification_discipline.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ollama_credentials.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_api_auth.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_apikey_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_c3_bridge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_chat_engine.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_chat_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_discovery_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_discovery_audit.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_health_probe.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_local_auth.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_ollama_bridge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_scanner_cache.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_security_fixes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_session_bootstrap.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_subproject_awareness.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_oracle_ui_bundle.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_output_filter.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_override_grants.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_override_grants_mcp.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_override_requests.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_override_wake.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_permissions.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_pm_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_project_manager.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_project_manager_merge.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_project_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_read_coercion.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_read_edit_parity.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_related_facts.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_repo_map.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_repo_shape.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_response_boilerplate.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_retention.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_review_digest.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_eval.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p1.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p2.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p2b.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p3.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p4.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_search_p5.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_service_durability.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_session_benchmark.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_session_budget.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_shell_creds.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_shell_robustness.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_shell_write_ledger.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_shell_writes.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subproject_clear_scope.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subproject_depth_consumers.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subproject_exclusion.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subproject_federation.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subproject_linkage_api.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_subprojects.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_swe_bench.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_task_store.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_task_tool.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_time_tracker.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_token_telemetry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_token_tracking.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_tool_registry.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_ui_jsx_syntax.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_upgrade_and_version.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_validate.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_vault_write_guard.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_version_sync.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_web_security.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tests/test_windows_reliability.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/backend.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/main.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/__init__.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/benchmark_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/claudemd_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/compress_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/index_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/init_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/mcp_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/optimize_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/pipe_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/projects_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/search_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/session_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/stats.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/screens/ui_view.py +0 -0
- {code_context_control-2.110.0 → code_context_control-2.110.1}/tui/theme.tcss +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.110.
|
|
3
|
+
Version: 2.110.1
|
|
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.110.0 → code_context_control-2.110.1}/code_context_control.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-context-control
|
|
3
|
-
Version: 2.110.
|
|
3
|
+
Version: 2.110.1
|
|
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
|
|
@@ -311,6 +311,7 @@ tests/test_ci_runner.py
|
|
|
311
311
|
tests/test_ci_workflow.py
|
|
312
312
|
tests/test_circuit_breaker.py
|
|
313
313
|
tests/test_claude_md_merge.py
|
|
314
|
+
tests/test_claude_md_updater.py
|
|
314
315
|
tests/test_cli_smoke.py
|
|
315
316
|
tests/test_compressor_large_file.py
|
|
316
317
|
tests/test_confirm_guard.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "code-context-control"
|
|
7
|
-
version = "2.110.
|
|
7
|
+
version = "2.110.1"
|
|
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"
|
|
@@ -650,11 +650,12 @@ class ClaudeMdUpdaterAgent(BackgroundAgent):
|
|
|
650
650
|
|
|
651
651
|
for action_type, data in actions:
|
|
652
652
|
if action_type == "staleness":
|
|
653
|
-
# Regenerate the auto-generated sections
|
|
653
|
+
# Regenerate the auto-generated sections — inside the managed
|
|
654
|
+
# block, so user content around it survives.
|
|
654
655
|
try:
|
|
655
656
|
result = self.claude_md.generate(include_sessions=True)
|
|
656
657
|
if result.get("content") and self.auto_apply:
|
|
657
|
-
self.
|
|
658
|
+
self._write_managed_body(result["content"])
|
|
658
659
|
applied.append("Regenerated CLAUDE.md (stale)")
|
|
659
660
|
elif result.get("content"):
|
|
660
661
|
applied.append(f"CLAUDE.md is stale ({len(data.get('issues', []))} issues) — regeneration available")
|
|
@@ -810,16 +811,59 @@ class ClaudeMdUpdaterAgent(BackgroundAgent):
|
|
|
810
811
|
self._write_claude_md("\n".join(lines))
|
|
811
812
|
return additions
|
|
812
813
|
|
|
813
|
-
def
|
|
814
|
-
|
|
814
|
+
def _md_path(self):
|
|
815
|
+
return self.claude_md.project_path / self.claude_md.instructions_file
|
|
816
|
+
|
|
817
|
+
def _write_managed_body(self, body: str) -> bool:
|
|
818
|
+
"""Write regenerated C3 content INTO the managed block.
|
|
819
|
+
|
|
820
|
+
``generate()`` returns the block body, not a whole file. Writing it
|
|
821
|
+
raw (2.110.0 and earlier) dropped the ``C3:BEGIN``/``C3:END`` markers
|
|
822
|
+
and everything the user kept outside them; the next ``c3 install-mcp``
|
|
823
|
+
then re-wrapped the template as a legacy doc, so a committed
|
|
824
|
+
CLAUDE.md went dirty on every session start. The merge in
|
|
825
|
+
``write_c3_instruction_doc`` is the same one the installer uses.
|
|
826
|
+
"""
|
|
827
|
+
from services.claude_md import write_c3_instruction_doc
|
|
828
|
+
|
|
815
829
|
try:
|
|
816
|
-
|
|
830
|
+
final = write_c3_instruction_doc(self._md_path(), body,
|
|
831
|
+
project_path=self.claude_md.project_path,
|
|
832
|
+
source="claude_md_updater")
|
|
833
|
+
self._last_content_hash = hashlib.md5(final.encode()).hexdigest()
|
|
834
|
+
self._last_update_time = time.time()
|
|
835
|
+
return True
|
|
836
|
+
except Exception:
|
|
837
|
+
return False
|
|
838
|
+
|
|
839
|
+
def _write_claude_md(self, content: str) -> bool:
|
|
840
|
+
"""Write a WHOLE instructions file (compaction, promotions) and update hash.
|
|
841
|
+
|
|
842
|
+
Refuses when the file on disk carries the managed-block markers and
|
|
843
|
+
``content`` does not: that is a block body, and writing it here would
|
|
844
|
+
strip the markers — route it through ``_write_managed_body``.
|
|
845
|
+
"""
|
|
846
|
+
from services.claude_md import C3_BLOCK_BEGIN
|
|
847
|
+
|
|
848
|
+
try:
|
|
849
|
+
md_path = self._md_path()
|
|
817
850
|
md_path.parent.mkdir(parents=True, exist_ok=True)
|
|
851
|
+
if md_path.exists() and C3_BLOCK_BEGIN not in content:
|
|
852
|
+
existing = md_path.read_text(encoding="utf-8", errors="replace")
|
|
853
|
+
if C3_BLOCK_BEGIN in existing:
|
|
854
|
+
return False
|
|
818
855
|
md_path.write_text(content, encoding="utf-8")
|
|
819
856
|
self._last_content_hash = hashlib.md5(content.encode()).hexdigest()
|
|
820
857
|
self._last_update_time = time.time()
|
|
858
|
+
except Exception:
|
|
859
|
+
return False
|
|
860
|
+
try:
|
|
861
|
+
from services.artifact_defs import note_pending_write
|
|
862
|
+
note_pending_write(self.claude_md.project_path, self.claude_md.instructions_file,
|
|
863
|
+
"claude_md_updater")
|
|
821
864
|
except Exception:
|
|
822
865
|
pass
|
|
866
|
+
return True
|
|
823
867
|
|
|
824
868
|
def get_status(self) -> dict:
|
|
825
869
|
"""Extended status including updater-specific metrics."""
|
|
@@ -300,17 +300,19 @@ def strip_c3_block(existing: str) -> Optional[str]:
|
|
|
300
300
|
return None
|
|
301
301
|
|
|
302
302
|
|
|
303
|
-
def write_c3_instruction_doc(path, content: str, project_path=None
|
|
303
|
+
def write_c3_instruction_doc(path, content: str, project_path=None,
|
|
304
|
+
source: str = "install_mcp") -> str:
|
|
304
305
|
"""Write a C3-generated instruction doc without clobbering user content.
|
|
305
306
|
|
|
306
307
|
Wraps ``content`` in the C3 managed block and merges it into any existing
|
|
307
308
|
file via :func:`merge_c3_block`. Returns the exact text written to disk.
|
|
308
309
|
|
|
309
|
-
Self-reports the write to the agent-artifact tracker
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
310
|
+
Self-reports the write to the agent-artifact tracker under ``source``
|
|
311
|
+
(``install_mcp`` for the installer and CLI, ``claude_md_updater`` for the
|
|
312
|
+
background agent) so regeneration is attributed to C3 instead of
|
|
313
|
+
surfacing as anonymous out-of-band drift. ``project_path`` pins the
|
|
314
|
+
project root; when omitted it is inferred from the doc's location (root
|
|
315
|
+
or one level down, e.g. .github/copilot-instructions.md).
|
|
314
316
|
"""
|
|
315
317
|
p = Path(path)
|
|
316
318
|
p.parent.mkdir(parents=True, exist_ok=True)
|
|
@@ -329,7 +331,7 @@ def write_c3_instruction_doc(path, content: str, project_path=None) -> str:
|
|
|
329
331
|
if (c / ".c3").is_dir()), None)
|
|
330
332
|
if root is not None and (root / ".c3").is_dir():
|
|
331
333
|
note_pending_write(root, str(p.resolve().relative_to(root.resolve())),
|
|
332
|
-
"install_mcp")
|
|
334
|
+
source or "install_mcp")
|
|
333
335
|
except Exception:
|
|
334
336
|
pass
|
|
335
337
|
return final
|
|
@@ -533,13 +535,15 @@ class ClaudeMdManager:
|
|
|
533
535
|
),
|
|
534
536
|
})
|
|
535
537
|
|
|
536
|
-
# Structure drift
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
#
|
|
541
|
-
|
|
542
|
-
|
|
538
|
+
# Structure and tech-stack drift apply only to the legacy embedded
|
|
539
|
+
# tree. With the live repo map (default since 2.60.0) the doc carries
|
|
540
|
+
# neither — the map does — so there is nothing embedded to drift.
|
|
541
|
+
# Diffing anyway reported every detected technology as "not listed"
|
|
542
|
+
# on every check, and an auto-applying updater rewrote the file each
|
|
543
|
+
# time (2.110.1).
|
|
544
|
+
if not self._repo_map_enabled():
|
|
545
|
+
issues.extend(self._diff_structure(current))
|
|
546
|
+
issues.extend(self._diff_tech_stack(current))
|
|
543
547
|
|
|
544
548
|
# Session staleness
|
|
545
549
|
session_files = sorted(
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"""The CLAUDE.md updater agent must not churn a managed instruction doc.
|
|
2
|
+
|
|
3
|
+
Observed 2026-09-04 on the C3 repo itself: c3_artifacts history alternated
|
|
4
|
+
``install_mcp`` / ``scan`` on every session start. Two defects composed:
|
|
5
|
+
|
|
6
|
+
1. ``check_staleness`` diffed the project tree and tech stack against a doc
|
|
7
|
+
that, in repo-map mode (default since 2.60.0), carries neither — so every
|
|
8
|
+
detected technology was "not listed" and the doc was always stale.
|
|
9
|
+
2. The updater wrote ``generate()``'s block body with a raw ``write_text``,
|
|
10
|
+
stripping the ``C3:BEGIN``/``C3:END`` markers and any user content around
|
|
11
|
+
them; the next ``c3 install-mcp`` re-wrapped the template as a legacy doc.
|
|
12
|
+
|
|
13
|
+
These tests pin: no staleness in map mode; staleness still detected in
|
|
14
|
+
legacy mode; regeneration lands inside the block with user notes intact; an
|
|
15
|
+
installer-written doc survives an agent cycle byte for byte; whole-file
|
|
16
|
+
writes refuse to drop markers; every agent write is attributed.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
import json
|
|
20
|
+
import tempfile
|
|
21
|
+
import types
|
|
22
|
+
import unittest
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
from unittest import mock
|
|
25
|
+
|
|
26
|
+
from services import claude_md as cm
|
|
27
|
+
from services.agents import ClaudeMdUpdaterAgent
|
|
28
|
+
from services.claude_md import (
|
|
29
|
+
C3_BLOCK_BEGIN,
|
|
30
|
+
C3_BLOCK_END,
|
|
31
|
+
ClaudeMdManager,
|
|
32
|
+
wrap_c3_block,
|
|
33
|
+
write_c3_instruction_doc,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
USER_HEAD = "# My notes\nkeep me above\n"
|
|
37
|
+
USER_TAIL = "# User Notes\nkeep me below\n"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _session_mgr():
|
|
41
|
+
"""Just enough SessionManager for the legacy (embedded tree) paths."""
|
|
42
|
+
return types.SimpleNamespace(
|
|
43
|
+
_detect_tech_stack=lambda: "python, javascript",
|
|
44
|
+
_scan_project_structure=lambda: "```\nsrc/\ndocs/\n```",
|
|
45
|
+
current_session=None,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class _Project(unittest.TestCase):
|
|
50
|
+
def setUp(self):
|
|
51
|
+
self._tmp = tempfile.TemporaryDirectory()
|
|
52
|
+
self.root = Path(self._tmp.name)
|
|
53
|
+
(self.root / ".c3").mkdir()
|
|
54
|
+
(self.root / "src").mkdir()
|
|
55
|
+
(self.root / "docs").mkdir()
|
|
56
|
+
(self.root / "pyproject.toml").write_text("[project]\nname='x'\n", encoding="utf-8")
|
|
57
|
+
(self.root / "src" / "app.py").write_text("x = 1\n", encoding="utf-8")
|
|
58
|
+
|
|
59
|
+
def tearDown(self):
|
|
60
|
+
self._tmp.cleanup()
|
|
61
|
+
|
|
62
|
+
def config(self, cfg: dict):
|
|
63
|
+
(self.root / ".c3" / "config.json").write_text(json.dumps(cfg), encoding="utf-8")
|
|
64
|
+
|
|
65
|
+
def manager(self):
|
|
66
|
+
return ClaudeMdManager(str(self.root), _session_mgr(), None,
|
|
67
|
+
types.SimpleNamespace(facts=[]))
|
|
68
|
+
|
|
69
|
+
def agent(self, mgr):
|
|
70
|
+
return ClaudeMdUpdaterAgent(
|
|
71
|
+
claude_md=mgr, memory=mgr.memory, session_mgr=mgr.session_mgr,
|
|
72
|
+
watcher=types.SimpleNamespace(_handler=types.SimpleNamespace(change_count=3)),
|
|
73
|
+
notifications=mock.MagicMock(), enabled=True, auto_apply=True)
|
|
74
|
+
|
|
75
|
+
def doc(self):
|
|
76
|
+
return self.root / "CLAUDE.md"
|
|
77
|
+
|
|
78
|
+
def write_managed(self, body: str) -> str:
|
|
79
|
+
"""A managed doc with user notes above and below the block."""
|
|
80
|
+
text = USER_HEAD + "\n" + wrap_c3_block(body) + "\n\n" + USER_TAIL
|
|
81
|
+
self.doc().write_text(text, encoding="utf-8")
|
|
82
|
+
return text
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class TestStaleness(_Project):
|
|
86
|
+
def test_map_mode_is_not_stale_without_tree_or_tech_stack(self):
|
|
87
|
+
mgr = self.manager()
|
|
88
|
+
self.write_managed(mgr.generate()["content"])
|
|
89
|
+
result = mgr.check_staleness()
|
|
90
|
+
self.assertEqual(result["status"], "ok", result)
|
|
91
|
+
self.assertFalse([i for i in result["issues"] if "Tech Stack" in i["message"]])
|
|
92
|
+
|
|
93
|
+
def test_legacy_mode_still_reports_drift(self):
|
|
94
|
+
self.config({"map": {"enabled": False}})
|
|
95
|
+
mgr = self.manager()
|
|
96
|
+
# A doc that lists no tech stack and no tree: both diffs must fire.
|
|
97
|
+
self.write_managed("## C3 Tools — MANDATORY\nUse c3_* tools.\n")
|
|
98
|
+
result = mgr.check_staleness()
|
|
99
|
+
self.assertEqual(result["status"], "stale")
|
|
100
|
+
self.assertTrue(any("Tech Stack" in i["message"] for i in result["issues"]))
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class TestUpdaterWrites(_Project):
|
|
104
|
+
def test_installer_doc_survives_an_agent_cycle_in_map_mode(self):
|
|
105
|
+
mgr = self.manager()
|
|
106
|
+
before = self.write_managed(mgr.generate()["content"])
|
|
107
|
+
self.agent(mgr).check()
|
|
108
|
+
self.assertEqual(self.doc().read_text(encoding="utf-8"), before)
|
|
109
|
+
|
|
110
|
+
def test_regeneration_lands_inside_the_block(self):
|
|
111
|
+
self.config({"map": {"enabled": False}})
|
|
112
|
+
mgr = self.manager()
|
|
113
|
+
self.write_managed("## C3 Tools — MANDATORY\nstale body\n")
|
|
114
|
+
self.agent(mgr).check()
|
|
115
|
+
text = self.doc().read_text(encoding="utf-8")
|
|
116
|
+
self.assertEqual(text.count(C3_BLOCK_BEGIN), 1)
|
|
117
|
+
self.assertEqual(text.count(C3_BLOCK_END), 1)
|
|
118
|
+
self.assertTrue(text.startswith(USER_HEAD.rstrip()), text[:80])
|
|
119
|
+
self.assertTrue(text.rstrip().endswith(USER_TAIL.rstrip()), text[-80:])
|
|
120
|
+
self.assertIn("# Project Context", text)
|
|
121
|
+
self.assertNotIn("stale body", text)
|
|
122
|
+
self.assertLess(text.index(C3_BLOCK_BEGIN), text.index("# Project Context"))
|
|
123
|
+
self.assertLess(text.index("# Project Context"), text.index(C3_BLOCK_END))
|
|
124
|
+
|
|
125
|
+
def test_second_cycle_is_a_no_op(self):
|
|
126
|
+
self.config({"map": {"enabled": False}})
|
|
127
|
+
mgr = self.manager()
|
|
128
|
+
self.write_managed("## C3 Tools — MANDATORY\nstale body\n")
|
|
129
|
+
agent = self.agent(mgr)
|
|
130
|
+
agent.check()
|
|
131
|
+
once = self.doc().read_text(encoding="utf-8")
|
|
132
|
+
agent._last_action_hash = "" # forget the dedupe; the doc must stand on its own
|
|
133
|
+
agent.check()
|
|
134
|
+
self.assertEqual(self.doc().read_text(encoding="utf-8"), once)
|
|
135
|
+
|
|
136
|
+
def test_whole_file_write_refuses_to_drop_markers(self):
|
|
137
|
+
mgr = self.manager()
|
|
138
|
+
before = self.write_managed("body")
|
|
139
|
+
agent = self.agent(mgr)
|
|
140
|
+
self.assertFalse(agent._write_claude_md("a block body with no markers"))
|
|
141
|
+
self.assertEqual(self.doc().read_text(encoding="utf-8"), before)
|
|
142
|
+
self.assertTrue(agent._write_claude_md(before.replace("body", "body2")))
|
|
143
|
+
self.assertIn("body2", self.doc().read_text(encoding="utf-8"))
|
|
144
|
+
|
|
145
|
+
def test_writes_are_attributed_to_the_agent(self):
|
|
146
|
+
mgr = self.manager()
|
|
147
|
+
before = self.write_managed("body")
|
|
148
|
+
agent = self.agent(mgr)
|
|
149
|
+
with mock.patch("services.artifact_defs.note_pending_write") as note:
|
|
150
|
+
agent._write_managed_body("new body")
|
|
151
|
+
agent._write_claude_md(before)
|
|
152
|
+
sources = [call.args[2] for call in note.call_args_list]
|
|
153
|
+
self.assertEqual(sources, ["claude_md_updater", "claude_md_updater"])
|
|
154
|
+
|
|
155
|
+
def test_installer_source_is_the_default(self):
|
|
156
|
+
with mock.patch("services.artifact_defs.note_pending_write") as note:
|
|
157
|
+
write_c3_instruction_doc(self.doc(), "body", project_path=self.root)
|
|
158
|
+
self.assertEqual(note.call_args.args[2], "install_mcp")
|
|
159
|
+
self.assertIs(cm.write_c3_instruction_doc, write_c3_instruction_doc)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
if __name__ == "__main__":
|
|
163
|
+
unittest.main()
|
|
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.110.0 → code_context_control-2.110.1}/cli/guide/getting-started.html
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
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/add_project.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/config_editor.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_health.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_panel.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_tasks.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/drill_views.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/global_search.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_access.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_ci.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_locks.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/hub_tokens.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/mcp_manager.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/modals.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/project_card.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/project_tree.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/sidebar.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/summary_bar.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/task_board.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/toasts.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/hub_ui/components/topbar.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
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/bitbucket.js
RENAMED
|
File without changes
|
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/credentials.js
RENAMED
|
File without changes
|
{code_context_control-2.110.0 → code_context_control-2.110.1}/cli/ui/components/dashboard.js
RENAMED
|
File without changes
|