codeboarding 0.13.6__tar.gz → 0.13.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. {codeboarding-0.13.6/codeboarding.egg-info → codeboarding-0.13.7}/PKG-INFO +1 -1
  2. {codeboarding-0.13.6 → codeboarding-0.13.7/codeboarding.egg-info}/PKG-INFO +1 -1
  3. {codeboarding-0.13.6 → codeboarding-0.13.7}/pyproject.toml +1 -1
  4. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/csharp_adapter.py +56 -12
  5. {codeboarding-0.13.6 → codeboarding-0.13.7}/LICENSE +0 -0
  6. {codeboarding-0.13.6 → codeboarding-0.13.7}/PYPI.md +0 -0
  7. {codeboarding-0.13.6 → codeboarding-0.13.7}/README.md +0 -0
  8. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/__init__.py +0 -0
  9. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/abstraction_agent.py +0 -0
  10. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/agent.py +0 -0
  11. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/agent_responses.py +0 -0
  12. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/change_status.py +0 -0
  13. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/cluster_ids.py +0 -0
  14. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/cluster_methods_mixin.py +0 -0
  15. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/constants.py +0 -0
  16. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/content_hash.py +0 -0
  17. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/dependency_discovery.py +0 -0
  18. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/details_agent.py +0 -0
  19. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/file_index_models.py +0 -0
  20. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/incremental_agent.py +0 -0
  21. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/incremental_results.py +0 -0
  22. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/llm_config.py +0 -0
  23. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/llm_errors.py +0 -0
  24. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/meta_agent.py +0 -0
  25. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/model_capabilities.py +0 -0
  26. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/planner_agent.py +0 -0
  27. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/__init__.py +0 -0
  28. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/abstract_prompt_factory.py +0 -0
  29. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/claude_prompts.py +0 -0
  30. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/deepseek_prompts.py +0 -0
  31. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/gemini_flash_prompts.py +0 -0
  32. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/glm_prompts.py +0 -0
  33. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/gpt_prompts.py +0 -0
  34. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/kimi_prompts.py +0 -0
  35. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/prompts/prompt_factory.py +0 -0
  36. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/relation_edges.py +0 -0
  37. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/repair.py +0 -0
  38. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/retry.py +0 -0
  39. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/scope_ids.py +0 -0
  40. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/__init__.py +0 -0
  41. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/base.py +0 -0
  42. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/component_bridge_edges.py +0 -0
  43. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/get_external_deps.py +0 -0
  44. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/get_method_invocations.py +0 -0
  45. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/list_git_changes.py +0 -0
  46. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_cfg.py +0 -0
  47. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_docs.py +0 -0
  48. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_file.py +0 -0
  49. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_file_structure.py +0 -0
  50. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_packages.py +0 -0
  51. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_source.py +0 -0
  52. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/read_structure.py +0 -0
  53. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/tools/toolkit.py +0 -0
  54. {codeboarding-0.13.6 → codeboarding-0.13.7}/agents/validation.py +0 -0
  55. {codeboarding-0.13.6 → codeboarding-0.13.7}/caching/__init__.py +0 -0
  56. {codeboarding-0.13.6 → codeboarding-0.13.7}/caching/cache.py +0 -0
  57. {codeboarding-0.13.6 → codeboarding-0.13.7}/caching/details_cache.py +0 -0
  58. {codeboarding-0.13.6 → codeboarding-0.13.7}/caching/meta_cache.py +0 -0
  59. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding.egg-info/SOURCES.txt +0 -0
  60. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding.egg-info/dependency_links.txt +0 -0
  61. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding.egg-info/entry_points.txt +0 -0
  62. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding.egg-info/requires.txt +0 -0
  63. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding.egg-info/top_level.txt +0 -0
  64. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/__init__.py +0 -0
  65. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/bootstrap.py +0 -0
  66. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/commands/__init__.py +0 -0
  67. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/commands/full_analysis.py +0 -0
  68. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/commands/incremental_analysis.py +0 -0
  69. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/commands/partial_analysis.py +0 -0
  70. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_cli/view_instructions.py +0 -0
  71. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/__init__.py +0 -0
  72. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/analysis.py +0 -0
  73. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/orchestration.py +0 -0
  74. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/rendering.py +0 -0
  75. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/sources/__init__.py +0 -0
  76. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/sources/local.py +0 -0
  77. {codeboarding-0.13.6 → codeboarding-0.13.7}/codeboarding_workflows/sources/remote.py +0 -0
  78. {codeboarding-0.13.6 → codeboarding-0.13.7}/constants.py +0 -0
  79. {codeboarding-0.13.6 → codeboarding-0.13.7}/core/__init__.py +0 -0
  80. {codeboarding-0.13.6 → codeboarding-0.13.7}/core/plugin_loader.py +0 -0
  81. {codeboarding-0.13.6 → codeboarding-0.13.7}/core/protocols.py +0 -0
  82. {codeboarding-0.13.6 → codeboarding-0.13.7}/core/registry.py +0 -0
  83. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/__init__.py +0 -0
  84. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/analysis_json.py +0 -0
  85. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/cluster_delta.py +0 -0
  86. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/cluster_snapshot.py +0 -0
  87. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/diagram_generator.py +0 -0
  88. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/exceptions.py +0 -0
  89. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/file_coverage.py +0 -0
  90. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/file_index.py +0 -0
  91. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/io_utils.py +0 -0
  92. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/run_context.py +0 -0
  93. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/run_mode.py +0 -0
  94. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/scope_plan.py +0 -0
  95. {codeboarding-0.13.6 → codeboarding-0.13.7}/diagram_analysis/tree_shape.py +0 -0
  96. {codeboarding-0.13.6 → codeboarding-0.13.7}/github_action.py +0 -0
  97. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/__init__.py +0 -0
  98. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/__init__.py +0 -0
  99. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/circular_deps.py +0 -0
  100. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/cohesion.py +0 -0
  101. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/coupling.py +0 -0
  102. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/function_size.py +0 -0
  103. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/god_class.py +0 -0
  104. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/inheritance.py +0 -0
  105. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/instability.py +0 -0
  106. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/checks/unused_code_diagnostics.py +0 -0
  107. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/config.py +0 -0
  108. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/models.py +0 -0
  109. {codeboarding-0.13.6 → codeboarding-0.13.7}/health/runner.py +0 -0
  110. {codeboarding-0.13.6 → codeboarding-0.13.7}/install.py +0 -0
  111. {codeboarding-0.13.6 → codeboarding-0.13.7}/logging_config.py +0 -0
  112. {codeboarding-0.13.6 → codeboarding-0.13.7}/main.py +0 -0
  113. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/__init__.py +0 -0
  114. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/callbacks.py +0 -0
  115. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/context.py +0 -0
  116. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/mixin.py +0 -0
  117. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/paths.py +0 -0
  118. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/stats.py +0 -0
  119. {codeboarding-0.13.6 → codeboarding-0.13.7}/monitoring/writers.py +0 -0
  120. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/__init__.py +0 -0
  121. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/html.py +0 -0
  122. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/html_template.py +0 -0
  123. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/markdown.py +0 -0
  124. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/mdx.py +0 -0
  125. {codeboarding-0.13.6 → codeboarding-0.13.7}/output_generators/sphinx.py +0 -0
  126. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/__init__.py +0 -0
  127. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/change_detector.py +0 -0
  128. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/errors.py +0 -0
  129. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/fingerprint_diff.py +0 -0
  130. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/git_ops.py +0 -0
  131. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/ignore.py +0 -0
  132. {codeboarding-0.13.6 → codeboarding-0.13.7}/repo_utils/path_utils.py +0 -0
  133. {codeboarding-0.13.6 → codeboarding-0.13.7}/setup.cfg +0 -0
  134. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/__init__.py +0 -0
  135. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/analysis_cache.py +0 -0
  136. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/analysis_result.py +0 -0
  137. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/cluster_helpers.py +0 -0
  138. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/cluster_relations.py +0 -0
  139. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/constants.py +0 -0
  140. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/csharp_config_scanner.py +0 -0
  141. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/dotnet_sdk.py +0 -0
  142. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/__init__.py +0 -0
  143. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/__init__.py +0 -0
  144. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/go_adapter.py +0 -0
  145. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/java_adapter.py +0 -0
  146. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/php_adapter.py +0 -0
  147. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/python_adapter.py +0 -0
  148. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/rust_adapter.py +0 -0
  149. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/adapters/typescript_adapter.py +0 -0
  150. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/call_graph_builder.py +0 -0
  151. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/edge_build_context.py +0 -0
  152. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/edge_builder.py +0 -0
  153. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/hierarchy_builder.py +0 -0
  154. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/language_adapter.py +0 -0
  155. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/lsp_client.py +0 -0
  156. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/lsp_constants.py +0 -0
  157. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/lsp_recycler.py +0 -0
  158. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/models.py +0 -0
  159. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/process_memory.py +0 -0
  160. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/progress.py +0 -0
  161. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/protocols.py +0 -0
  162. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/result_converter.py +0 -0
  163. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/source_inspector.py +0 -0
  164. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/symbol_table.py +0 -0
  165. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/engine/utils.py +0 -0
  166. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/graph.py +0 -0
  167. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/incremental_orchestrator.py +0 -0
  168. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/internal_references.py +0 -0
  169. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/java_config_scanner.py +0 -0
  170. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/java_utils.py +0 -0
  171. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/language_results.py +0 -0
  172. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/leiden_utils.py +0 -0
  173. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/lsp_client/__init__.py +0 -0
  174. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/lsp_client/diagnostics.py +0 -0
  175. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/method_cluster_paths.py +0 -0
  176. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/node.py +0 -0
  177. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/programming_language.py +0 -0
  178. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/reference_resolver.py +0 -0
  179. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/scanner.py +0 -0
  180. {codeboarding-0.13.6 → codeboarding-0.13.7}/static_analyzer/typescript_config_scanner.py +0 -0
  181. {codeboarding-0.13.6 → codeboarding-0.13.7}/telemetry/__init__.py +0 -0
  182. {codeboarding-0.13.6 → codeboarding-0.13.7}/telemetry/device_id.py +0 -0
  183. {codeboarding-0.13.6 → codeboarding-0.13.7}/telemetry/events.py +0 -0
  184. {codeboarding-0.13.6 → codeboarding-0.13.7}/telemetry/schemas.py +0 -0
  185. {codeboarding-0.13.6 → codeboarding-0.13.7}/telemetry/service.py +0 -0
  186. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_cli_parser.py +0 -0
  187. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_github_action.py +0 -0
  188. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_install.py +0 -0
  189. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_logging_config.py +0 -0
  190. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_main.py +0 -0
  191. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_pyproject_packages.py +0 -0
  192. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_registry_coverage.py +0 -0
  193. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_telemetry_events.py +0 -0
  194. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_telemetry_service.py +0 -0
  195. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_tool_registry.py +0 -0
  196. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_user_config.py +0 -0
  197. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_view_instructions.py +0 -0
  198. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_vscode_constants.py +0 -0
  199. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_windows_compatibility.py +0 -0
  200. {codeboarding-0.13.6 → codeboarding-0.13.7}/tests/test_windows_encoding.py +0 -0
  201. {codeboarding-0.13.6 → codeboarding-0.13.7}/tool_registry/__init__.py +0 -0
  202. {codeboarding-0.13.6 → codeboarding-0.13.7}/tool_registry/installers.py +0 -0
  203. {codeboarding-0.13.6 → codeboarding-0.13.7}/tool_registry/manifest.py +0 -0
  204. {codeboarding-0.13.6 → codeboarding-0.13.7}/tool_registry/paths.py +0 -0
  205. {codeboarding-0.13.6 → codeboarding-0.13.7}/tool_registry/registry.py +0 -0
  206. {codeboarding-0.13.6 → codeboarding-0.13.7}/user_config.py +0 -0
  207. {codeboarding-0.13.6 → codeboarding-0.13.7}/utils.py +0 -0
  208. {codeboarding-0.13.6 → codeboarding-0.13.7}/vscode_constants.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeboarding
3
- Version: 0.13.6
3
+ Version: 0.13.7
4
4
  Summary: Interactive Diagrams for Code
5
5
  Author: CodeBoarding Team
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codeboarding
3
- Version: 0.13.6
3
+ Version: 0.13.7
4
4
  Summary: Interactive Diagrams for Code
5
5
  Author: CodeBoarding Team
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "codeboarding"
7
- version = "0.13.6"
7
+ version = "0.13.7"
8
8
  description = "Interactive Diagrams for Code"
9
9
  readme = "PYPI.md"
10
10
  license = "MIT"
@@ -36,7 +36,7 @@ _SINGLE_TARGET_FRAMEWORK_TARGETS = r"""<Project>
36
36
  <Import
37
37
  Project="$(CodeBoardingDirectoryBuildTargetsPath)"
38
38
  Condition="Exists('$(CodeBoardingDirectoryBuildTargetsPath)')" />
39
- <PropertyGroup Condition="'$(TargetFrameworks)' != ''">
39
+ <PropertyGroup Condition="'$(TargetFrameworks)' != '' and '$(CodeBoardingFoldMultiTargetFrameworks)' == 'true'">
40
40
  <CodeBoardingTargetFrameworks>$([System.Text.RegularExpressions.Regex]::Replace('$(TargetFrameworks)', '\s', ''))</CodeBoardingTargetFrameworks>
41
41
  <CodeBoardingTargetFrameworks>$([System.Text.RegularExpressions.Regex]::Replace('$(CodeBoardingTargetFrameworks)', ';+', ';'))</CodeBoardingTargetFrameworks>
42
42
  <CodeBoardingTargetFrameworks>;$([System.String]::Copy('$(CodeBoardingTargetFrameworks)').Trim(';'));</CodeBoardingTargetFrameworks>
@@ -47,24 +47,68 @@ _SINGLE_TARGET_FRAMEWORK_TARGETS = r"""<Project>
47
47
  </Project>
48
48
  """
49
49
 
50
+ _WORKSPACE_TARGET_FRAMEWORK_PROPS = r"""<Project TreatAsLocalProperty="TargetFramework">
51
+ <PropertyGroup>
52
+ <CodeBoardingWorkspaceTargetFramework>$(TargetFramework)</CodeBoardingWorkspaceTargetFramework>
53
+ <CodeBoardingDirectoryBuildPropsPath Condition="'$(CodeBoardingOriginalDirectoryBuildPropsPath)' == ''">$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildProjectDirectory)'))</CodeBoardingDirectoryBuildPropsPath>
54
+ </PropertyGroup>
55
+ <Import
56
+ Project="$(CodeBoardingOriginalDirectoryBuildPropsPath)"
57
+ Condition="Exists('$(CodeBoardingOriginalDirectoryBuildPropsPath)')" />
58
+ <Import
59
+ Project="$(CodeBoardingDirectoryBuildPropsPath)"
60
+ Condition="Exists('$(CodeBoardingDirectoryBuildPropsPath)')" />
61
+ </Project>
62
+ """
63
+
64
+
65
+ def _write_injected_import(name: str, content: str) -> Path:
66
+ """Materialize an MSBuild import CodeBoarding injects via environment variable."""
67
+ path = get_servers_dir() / name
68
+ path.parent.mkdir(parents=True, exist_ok=True)
69
+ if not path.exists() or path.read_text(encoding="utf-8") != content:
70
+ temporary_path = path.with_name(f"{path.name}.{os.getpid()}.tmp")
71
+ temporary_path.write_text(content, encoding="utf-8")
72
+ os.replace(temporary_path, path)
73
+ return path
74
+
50
75
 
51
76
  def _single_target_framework_env(project_root: Path) -> dict[str, str]:
52
- """Prevent csharp-ls's exponential multi-target framework fold."""
53
- project_count = sum(1 for pattern in ("*.csproj", "*.fsproj") for _ in project_root.rglob(pattern))
54
- if project_count <= _MULTI_TARGET_PROJECT_THRESHOLD:
55
- return {}
77
+ """Keep csharp-ls's workspace-wide TargetFramework from rewriting single-target projects.
78
+
79
+ Why: csharp-ls folds every project's frameworks into one global MSBuild
80
+ ``TargetFramework``. A global property outranks a project's own
81
+ ``<TargetFramework>``, so a solution whose projects do not all share one
82
+ framework has that property forced onto the odd ones out. Conditions keyed
83
+ on ``$(TargetFramework)`` then evaluate against a framework the project does
84
+ not target -- the idiomatic ``Condition="'$(TargetFramework)' !=
85
+ 'netstandard2.0'"`` guard around analyzer ``ProjectReference`` items inverts
86
+ and the analyzer projects reference themselves, which sends Roslyn's
87
+ solution load into unbounded growth. ``TreatAsLocalProperty`` demotes the
88
+ property so each project sees its declared framework again. Roslyn retains
89
+ its normal inner-build expansion for projects that genuinely multi-target.
90
+
91
+ Folding a multi-target project down to a single framework stays behind
92
+ ``_MULTI_TARGET_PROJECT_THRESHOLD``, because that fold discards frameworks a
93
+ small solution may want analyzed. Demoting the property has no such cost: it
94
+ only changes evaluation for a project whose declared framework the workspace
95
+ value contradicts, so it applies to every solution.
96
+ """
97
+ targets_path = _write_injected_import("csharp-ls-single-target.targets", _SINGLE_TARGET_FRAMEWORK_TARGETS)
98
+ props_path = _write_injected_import("csharp-ls-workspace-tfm.props", _WORKSPACE_TARGET_FRAMEWORK_PROPS)
99
+
100
+ env = {"DirectoryBuildTargetsPath": str(targets_path), "DirectoryBuildPropsPath": str(props_path)}
56
101
 
57
- targets_path = get_servers_dir() / "csharp-ls-single-target.targets"
58
- targets_path.parent.mkdir(parents=True, exist_ok=True)
59
- if not targets_path.exists() or targets_path.read_text(encoding="utf-8") != _SINGLE_TARGET_FRAMEWORK_TARGETS:
60
- temporary_path = targets_path.with_name(f"{targets_path.name}.{os.getpid()}.tmp")
61
- temporary_path.write_text(_SINGLE_TARGET_FRAMEWORK_TARGETS, encoding="utf-8")
62
- os.replace(temporary_path, targets_path)
102
+ project_count = sum(1 for pattern in ("*.csproj", "*.fsproj") for _ in project_root.rglob(pattern))
103
+ if project_count > _MULTI_TARGET_PROJECT_THRESHOLD:
104
+ env["CodeBoardingFoldMultiTargetFrameworks"] = "true"
63
105
 
64
- env = {"DirectoryBuildTargetsPath": str(targets_path)}
65
106
  original_targets_path = os.environ.get("DirectoryBuildTargetsPath")
66
107
  if original_targets_path:
67
108
  env["CodeBoardingOriginalDirectoryBuildTargetsPath"] = original_targets_path
109
+ original_props_path = os.environ.get("DirectoryBuildPropsPath")
110
+ if original_props_path:
111
+ env["CodeBoardingOriginalDirectoryBuildPropsPath"] = original_props_path
68
112
  return env
69
113
 
70
114
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes