ado-git-repo-insights 2.7.5__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.gitattributes +16 -0
  2. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.gitignore +1 -0
  3. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/CHANGELOG.md +96 -0
  4. ado_git_repo_insights-3.2.0/DEFERRED-PHASE5.md +207 -0
  5. {ado_git_repo_insights-2.7.5/src/ado_git_repo_insights.egg-info → ado_git_repo_insights-3.2.0}/PKG-INFO +13 -1
  6. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/README.md +12 -0
  7. ado_git_repo_insights-3.2.0/VERSION +1 -0
  8. ado_git_repo_insights-3.2.0/docs/DEFAULT-DASHBOARD-ENHANCEMENT-PLAN.md +472 -0
  9. ado_git_repo_insights-3.2.0/docs/INSTALLATION.md +433 -0
  10. ado_git_repo_insights-3.2.0/extension/overview.md +129 -0
  11. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tasks/extract-prs/task.json +2 -2
  12. ado_git_repo_insights-3.2.0/extension/tests/api-patterns.test.js +124 -0
  13. ado_git_repo_insights-3.2.0/extension/tests/cross-project-settings.test.js +133 -0
  14. ado_git_repo_insights-3.2.0/extension/tests/dashboard.test.js +2122 -0
  15. ado_git_repo_insights-3.2.0/extension/tests/pipeline-artifact-url.test.js +141 -0
  16. ado_git_repo_insights-3.2.0/extension/tests/production-issues.test.js +988 -0
  17. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/artifact-client.js +110 -10
  18. ado_git_repo_insights-3.2.0/extension/ui/dashboard.js +2077 -0
  19. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/error-types.js +9 -3
  20. ado_git_repo_insights-3.2.0/extension/ui/index.html +282 -0
  21. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/settings.html +25 -6
  22. ado_git_repo_insights-3.2.0/extension/ui/settings.js +554 -0
  23. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/styles.css +600 -1
  24. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/vss-extension.json +2 -1
  25. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/package-lock.json +2 -2
  26. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/package.json +1 -1
  27. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0/src/ado_git_repo_insights.egg-info}/PKG-INFO +13 -1
  28. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights.egg-info/SOURCES.txt +6 -0
  29. ado_git_repo_insights-2.7.5/VERSION +0 -1
  30. ado_git_repo_insights-2.7.5/extension/overview.md +0 -70
  31. ado_git_repo_insights-2.7.5/extension/tests/api-patterns.test.js +0 -114
  32. ado_git_repo_insights-2.7.5/extension/tests/dashboard.test.js +0 -568
  33. ado_git_repo_insights-2.7.5/extension/ui/dashboard.js +0 -1032
  34. ado_git_repo_insights-2.7.5/extension/ui/index.html +0 -176
  35. ado_git_repo_insights-2.7.5/extension/ui/settings.js +0 -240
  36. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.editorconfig +0 -0
  37. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.github/scripts/check-baseline-integrity.js +0 -0
  38. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.github/scripts/validate-test-results.py +0 -0
  39. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.github/workflows/ci.yml +0 -0
  40. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.github/workflows/release.yml +0 -0
  41. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.gitleaks.toml +0 -0
  42. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.husky/pre-commit +0 -0
  43. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.husky/pre-push +0 -0
  44. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.pre-commit-config.yaml +0 -0
  45. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/.releaserc.json +0 -0
  46. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/LICENSE +0 -0
  47. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/MERMAID.md +0 -0
  48. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/agents/INVARIANTS.md +0 -0
  49. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/agents/definition-of-done.md +0 -0
  50. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/agents/victory-gates.md +0 -0
  51. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/config.example.yaml +0 -0
  52. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/EXTENSION.md +0 -0
  53. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/MANUAL_WALKTHROUGH.md +0 -0
  54. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/PHASE5.md +0 -0
  55. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/PHASE6.md +0 -0
  56. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/SESSION.md +0 -0
  57. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/SUMMARY.md +0 -0
  58. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/ado-pipeline-smoke-check.md +0 -0
  59. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/dataset-contract.md +0 -0
  60. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/phase5-contract-notes.md +0 -0
  61. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/rollout-plan.md +0 -0
  62. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/docs/runbook.md +0 -0
  63. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/images/README.md +0 -0
  64. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/images/icon.png +0 -0
  65. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/images/icon.png.placeholder +0 -0
  66. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/jest.config.js +0 -0
  67. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/package-lock.json +0 -0
  68. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/package.json +0 -0
  69. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/scripts/copy-vss-sdk.sh +0 -0
  70. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/scripts/update-perf-baseline.js +0 -0
  71. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tasks/extract-prs/index.js +0 -0
  72. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tasks/extract-prs/index.test.js +0 -0
  73. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tasks/extract-prs/package-lock.json +0 -0
  74. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tasks/extract-prs/package.json +0 -0
  75. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/test-output.txt +0 -0
  76. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/test-results.json +0 -0
  77. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/ado-sdk.test.js +0 -0
  78. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/auth-pattern.test.js +0 -0
  79. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/chunked-loading.test.js +0 -0
  80. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/dataset-loader.test.js +0 -0
  81. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/date-range-warning.test.js +0 -0
  82. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/error-codes.test.js +0 -0
  83. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/aggregates/dimensions.json +0 -0
  84. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/aggregates/weekly_rollups/2026-W02.json +0 -0
  85. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/dataset-manifest.json +0 -0
  86. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/insights/summary.json +0 -0
  87. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/perf-baselines.json +0 -0
  88. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures/predictions/trends.json +0 -0
  89. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/fixtures.test.js +0 -0
  90. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/metrics.test.js +0 -0
  91. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/mocks/ado-sdk.js +0 -0
  92. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/performance.test.js +0 -0
  93. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/sdk-bundling.test.js +0 -0
  94. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/setup.js +0 -0
  95. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/tests/synthetic-fixtures.test.js +0 -0
  96. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/VSS.SDK.min.js +0 -0
  97. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/dataset-loader.js +0 -0
  98. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension/ui/error-codes.js +0 -0
  99. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/extension-verification-test.yml +0 -0
  100. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/insights-verification-test.yml +0 -0
  101. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/pr-insights-pipeline.yml +0 -0
  102. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/pyproject.toml +0 -0
  103. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/sample-pipeline.yml +0 -0
  104. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/schemas/dataset-manifest.schema.json +0 -0
  105. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/schemas/insights.schema.json +0 -0
  106. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/schemas/predictions.schema.json +0 -0
  107. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/scripts/check-version-unchanged.sh +0 -0
  108. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/scripts/csv_diff.py +0 -0
  109. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/scripts/generate-synthetic-dataset.py +0 -0
  110. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/scripts/stamp-extension-version.js +0 -0
  111. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/scripts/validate-task-inputs.js +0 -0
  112. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/setup.cfg +0 -0
  113. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/__init__.py +0 -0
  114. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/cli.py +0 -0
  115. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/config.py +0 -0
  116. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/extractor/__init__.py +0 -0
  117. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/extractor/ado_client.py +0 -0
  118. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/extractor/pr_extractor.py +0 -0
  119. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/ml/__init__.py +0 -0
  120. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/ml/date_utils.py +0 -0
  121. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/ml/forecaster.py +0 -0
  122. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/ml/insights.py +0 -0
  123. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/persistence/__init__.py +0 -0
  124. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/persistence/database.py +0 -0
  125. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/persistence/models.py +0 -0
  126. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/persistence/repository.py +0 -0
  127. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/transform/__init__.py +0 -0
  128. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/transform/aggregators.py +0 -0
  129. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/transform/csv_generator.py +0 -0
  130. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/utils/__init__.py +0 -0
  131. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/utils/datetime_utils.py +0 -0
  132. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/utils/logging_config.py +0 -0
  133. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights/utils/run_summary.py +0 -0
  134. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights.egg-info/dependency_links.txt +0 -0
  135. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights.egg-info/entry_points.txt +0 -0
  136. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights.egg-info/requires.txt +0 -0
  137. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/src/ado_git_repo_insights.egg-info/top_level.txt +0 -0
  138. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/__init__.py +0 -0
  139. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/fixtures/README.md +0 -0
  140. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/__init__.py +0 -0
  141. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/test_backfill_convergence.py +0 -0
  142. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/test_db_open_failure.py +0 -0
  143. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/test_golden_outputs.py +0 -0
  144. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/test_incremental_run.py +0 -0
  145. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/integration/test_multi_project_scoping.py +0 -0
  146. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/test_redaction.py +0 -0
  147. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/__init__.py +0 -0
  148. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_ado_client_pagination.py +0 -0
  149. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_aggregators.py +0 -0
  150. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_artifacts_dir.py +0 -0
  151. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_chunk_selection.py +0 -0
  152. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_cli_args.py +0 -0
  153. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_cli_exit_code.py +0 -0
  154. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_comments_cli.py +0 -0
  155. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_comments_extraction.py +0 -0
  156. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_completed_only.py +0 -0
  157. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_config_validation.py +0 -0
  158. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_csv_contract.py +0 -0
  159. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_csv_determinism.py +0 -0
  160. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_date_range_defaults.py +0 -0
  161. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_datetime_utils.py +0 -0
  162. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_forecaster_contract.py +0 -0
  163. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_insights_contract.py +0 -0
  164. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_insights_id_stability.py +0 -0
  165. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_insights_schema.py +0 -0
  166. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_logging_config.py +0 -0
  167. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_ml_cli_flags.py +0 -0
  168. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_monday_alignment.py +0 -0
  169. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_operational_summary.py +0 -0
  170. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_predictions_schema.py +0 -0
  171. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_retry_policy.py +0 -0
  172. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_run_summary.py +0 -0
  173. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_secret_redaction.py +0 -0
  174. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_summary_drift_guard.py +0 -0
  175. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_synthetic_dataset.py +0 -0
  176. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_team_extraction.py +0 -0
  177. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_upsert_keys.py +0 -0
  178. {ado_git_repo_insights-2.7.5 → ado_git_repo_insights-3.2.0}/tests/unit/test_version_validation.py +0 -0
@@ -1,6 +1,13 @@
1
1
  # Default: auto-detect text files, normalize to LF in repo
2
2
  * text=auto eol=lf
3
3
 
4
+ # ─────────────────────────────────────────────────────────
5
+ # GIT CONFIGURATION FILES: Always LF
6
+ # ─────────────────────────────────────────────────────────
7
+ .gitattributes text eol=lf
8
+ .gitignore text eol=lf
9
+ .gitmodules text eol=lf
10
+
4
11
  # ─────────────────────────────────────────────────────────
5
12
  # SCRIPTS: Must always be LF (executed in Unix CI)
6
13
  # ─────────────────────────────────────────────────────────
@@ -11,6 +18,13 @@
11
18
  .github/** text eol=lf
12
19
  scripts/** text eol=lf
13
20
 
21
+ # ─────────────────────────────────────────────────────────
22
+ # CI/CD CONFIGURATION: LF for cross-platform CI
23
+ # ─────────────────────────────────────────────────────────
24
+ Dockerfile text eol=lf
25
+ docker-compose*.yml text eol=lf
26
+ Makefile text eol=lf
27
+
14
28
  # ─────────────────────────────────────────────────────────
15
29
  # CODE: LF for cross-platform consistency
16
30
  # ─────────────────────────────────────────────────────────
@@ -21,6 +35,8 @@ scripts/** text eol=lf
21
35
  *.yml text eol=lf
22
36
  *.yaml text eol=lf
23
37
  *.md text eol=lf
38
+ *.txt text eol=lf
39
+ LICENSE text eol=lf
24
40
  *.html text eol=lf
25
41
  *.css text eol=lf
26
42
 
@@ -45,6 +45,7 @@ coverage.xml
45
45
  *.py,cover
46
46
  .hypothesis/
47
47
  .pytest_cache/
48
+ coverage/
48
49
 
49
50
  # Translations
50
51
  *.mo
@@ -1,3 +1,99 @@
1
+ # [3.2.0](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.1.0...v3.2.0) (2026-01-18)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **dashboard:** accept PartiallySucceeded builds and handle stale settings ([f6c3135](https://github.com/oddessentials/ado-git-repo-insights/commit/f6c3135012a857b74c3d8d22a3a8032a470bde56))
7
+
8
+
9
+ ### Features
10
+
11
+ * **dashboard:** add feature flag for Phase 5 tabs with Coming Soon state ([a604462](https://github.com/oddessentials/ado-git-repo-insights/commit/a604462a8edf1f2059a8d23f736d4b26486154a4))
12
+
13
+ # [3.1.0](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.0.4...v3.1.0) (2026-01-17)
14
+
15
+
16
+ ### Features
17
+
18
+ * **dashboard:** add comparison mode and export functionality (Sprint 5) ([e3fde36](https://github.com/oddessentials/ado-git-repo-insights/commit/e3fde3600f8fd67b13086333abe0c4b54b9b8412))
19
+ * **dashboard:** add cycle time trend and reviewer activity charts (Sprint 4) ([93e14dd](https://github.com/oddessentials/ado-git-repo-insights/commit/93e14dd3118d61922293edacc43762ddc0f21fdc))
20
+ * **dashboard:** add dimension filter bar with dropdowns (Sprint 2) ([393ede3](https://github.com/oddessentials/ado-git-repo-insights/commit/393ede3b8b44f8e9270bbabd03d9146d5f231385))
21
+ * **dashboard:** add raw data ZIP download for pipeline CSV artifacts ([5785d18](https://github.com/oddessentials/ado-git-repo-insights/commit/5785d18aaa33eda95c7c252e266e2cd9c87fd9e2))
22
+ * **dashboard:** add sparklines and trend line overlay (Sprint 3) ([8781ddb](https://github.com/oddessentials/ado-git-repo-insights/commit/8781ddb7bbaab71cd9e2dcd5de383a1563f41a7c))
23
+ * **dashboard:** add trend deltas and reviewers card (Sprint 1) ([660546d](https://github.com/oddessentials/ado-git-repo-insights/commit/660546d526632998f184c3d698a5c030e7f46d82))
24
+
25
+ ## [3.0.4](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.0.3...v3.0.4) (2026-01-17)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * white spacing ([29f5f4d](https://github.com/oddessentials/ado-git-repo-insights/commit/29f5f4d413492f0e41b486d2762932e754b1e95d))
31
+
32
+ ## [3.0.3](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.0.2...v3.0.3) (2026-01-17)
33
+
34
+
35
+ ### Bug Fixes
36
+
37
+ * **artifact:** use downloadUrl with format=file&subPath (verified working) ([be53de4](https://github.com/oddessentials/ado-git-repo-insights/commit/be53de426619285a782f97f96556cb41836c3846))
38
+
39
+ ## [3.0.2](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.0.1...v3.0.2) (2026-01-17)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * **artifact:** remove duplicated aggregates/ prefix from file paths ([d19688e](https://github.com/oddessentials/ado-git-repo-insights/commit/d19688eb27652de571273922ed496f56c5d6410f))
45
+ * **artifact:** try Container API for PipelineArtifacts first ([63376ca](https://github.com/oddessentials/ado-git-repo-insights/commit/63376caf8aca5b0aee281b10b7f7e9f53aa4ceb4))
46
+
47
+ ## [3.0.1](https://github.com/oddessentials/ado-git-repo-insights/compare/v3.0.0...v3.0.1) (2026-01-17)
48
+
49
+
50
+ ### Bug Fixes
51
+
52
+ * **artifact:** correct Pipeline Artifact file URL construction ([9eb9b3c](https://github.com/oddessentials/ado-git-repo-insights/commit/9eb9b3c28406c0307d1704d71d25ff94700ec5a3))
53
+
54
+ # [3.0.0](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.8.2...v3.0.0) (2026-01-17)
55
+
56
+
57
+ ### Bug Fixes
58
+
59
+ * **artifact:** use getArtifacts lookup instead of broken SDK getArtifact ([6f6ad55](https://github.com/oddessentials/ado-git-repo-insights/commit/6f6ad559eb6c7f5f2f98840122b95b61b119153e))
60
+
61
+
62
+ ### BREAKING CHANGES
63
+
64
+ * **artifact:** Replaced SDK-based artifact metadata retrieval with
65
+ direct API lookup. This fixes cross-project artifact access but changes
66
+ the internal implementation approach.
67
+
68
+ ## [2.8.2](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.8.1...v2.8.2) (2026-01-17)
69
+
70
+
71
+ ### Bug Fixes
72
+
73
+ * **artifact:** use resource.url directly for container file access ([92f6f85](https://github.com/oddessentials/ado-git-repo-insights/commit/92f6f8523fd4bc219f2b0108d5727b7f2990b9d2))
74
+
75
+ ## [2.8.1](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.8.0...v2.8.1) (2026-01-17)
76
+
77
+
78
+ ### Bug Fixes
79
+
80
+ * **artifact:** use SDK-based file access to resolve 401 errors ([f81c884](https://github.com/oddessentials/ado-git-repo-insights/commit/f81c884cbdf39589e2a877885bed5e328c07e63d))
81
+
82
+ # [2.8.0](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.7.6...v2.8.0) (2026-01-16)
83
+
84
+
85
+ ### Features
86
+
87
+ * **dashboard:** use configured source project for cross-project access ([54fa822](https://github.com/oddessentials/ado-git-repo-insights/commit/54fa822231dc5f00ed32fa2aeb74206bef2bca48))
88
+ * **settings:** add cross-project support with graceful degradation ([bfb8009](https://github.com/oddessentials/ado-git-repo-insights/commit/bfb8009087dd21605a617ec0699109c42df88811))
89
+
90
+ ## [2.7.6](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.7.5...v2.7.6) (2026-01-16)
91
+
92
+
93
+ ### Bug Fixes
94
+
95
+ * **extension:** add queryOrder to all getDefinitions calls ([b74be8a](https://github.com/oddessentials/ado-git-repo-insights/commit/b74be8a0ea42d4b8bf81e73e31d088a504133ecd))
96
+
1
97
  ## [2.7.5](https://github.com/oddessentials/ado-git-repo-insights/compare/v2.7.4...v2.7.5) (2026-01-16)
2
98
 
3
99
 
@@ -0,0 +1,207 @@
1
+ # Deferred Work: Phase 5 (Predictions & AI Insights)
2
+
3
+ This document outlines the work required to enable Phase 5 features (Predictions and AI Insights tabs) in the PR Insights dashboard. These features are currently disabled via feature flag.
4
+
5
+ ---
6
+
7
+ ## Current State
8
+
9
+ - **Feature Flag**: `ENABLE_PHASE5_FEATURES = false` in `extension/ui/dashboard.js`
10
+ - **Tabs**: Hidden by default, showing "Coming Soon" state when manually revealed
11
+ - **ML Code**: Exists in `src/ado_git_repo_insights/ml/` but not integrated with pipeline task
12
+ - **Pipeline Task**: Does not expose `enablePredictions` or `enableInsights` inputs
13
+
14
+ ---
15
+
16
+ ## Prerequisites for Enablement
17
+
18
+ ### 1. Python Dependencies
19
+
20
+ The ML features require additional Python packages not currently in the base requirements:
21
+
22
+ ```python
23
+ # Forecaster (predictions/trends.json)
24
+ prophet>=1.1.0 # Facebook Prophet for time series forecasting
25
+
26
+ # AI Insights (insights/summary.json)
27
+ openai>=1.0.0 # OpenAI API client (optional, for AI-powered insights)
28
+ ```
29
+
30
+ **Files to update**:
31
+ - `setup.py` - Add optional extras_require for ML features
32
+ - `pyproject.toml` - Add optional dependency group
33
+
34
+ ### 2. Pipeline Task Inputs
35
+
36
+ The `ExtractPullRequests@2` task needs new inputs to enable ML features:
37
+
38
+ ```yaml
39
+ # Proposed new inputs for extension/tasks/extract-prs/task.json
40
+ {
41
+ "name": "enablePredictions",
42
+ "type": "boolean",
43
+ "label": "Generate ML Predictions",
44
+ "defaultValue": "false",
45
+ "required": false,
46
+ "helpMarkDown": "Generate time series forecasts for cycle time and throughput"
47
+ },
48
+ {
49
+ "name": "enableInsights",
50
+ "type": "boolean",
51
+ "label": "Generate AI Insights",
52
+ "defaultValue": "false",
53
+ "required": false,
54
+ "helpMarkDown": "Generate AI-powered analysis (requires OpenAI API key)"
55
+ },
56
+ {
57
+ "name": "openaiApiKey",
58
+ "type": "string",
59
+ "label": "OpenAI API Key",
60
+ "required": false,
61
+ "helpMarkDown": "API key for AI insights generation (required if enableInsights is true)"
62
+ }
63
+ ```
64
+
65
+ **Files to update**:
66
+ - `extension/tasks/extract-prs/task.json` - Add input definitions
67
+ - `extension/tasks/extract-prs/index.js` - Pass inputs to Python CLI
68
+ - CLI command builder to include `--enable-predictions` and `--enable-insights` flags
69
+
70
+ ### 3. CLI Integration
71
+
72
+ The CLI already has flags for predictions/insights but they need to be wired through:
73
+
74
+ ```bash
75
+ # Current CLI flags (cli.py)
76
+ --enable-predictions # Generate predictions/trends.json
77
+ --enable-insights # Generate insights/summary.json
78
+ ```
79
+
80
+ **Files to verify**:
81
+ - `src/ado_git_repo_insights/cli.py` - Flags exist at lines 612-613
82
+ - `src/ado_git_repo_insights/ml/forecaster.py` - Prophet-based forecasting
83
+ - `src/ado_git_repo_insights/ml/insights.py` - AI insights generation
84
+
85
+ ### 4. Dataset Contract Updates
86
+
87
+ The aggregates output needs to include predictions and insights when enabled:
88
+
89
+ ```
90
+ aggregates/
91
+ ├── dataset-manifest.json # Must include predictions/insights flags
92
+ ├── weekly_rollups/
93
+ ├── distributions/
94
+ ├── predictions/ # NEW: when enablePredictions=true
95
+ │ └── trends.json
96
+ └── insights/ # NEW: when enableInsights=true
97
+ └── summary.json
98
+ ```
99
+
100
+ **Files to update**:
101
+ - `docs/dataset-contract.md` - Document predictions/insights schema
102
+ - Aggregator code to conditionally generate these files
103
+
104
+ ---
105
+
106
+ ## Implementation Tasks
107
+
108
+ ### Phase 5.1: Dependencies & CLI Wiring
109
+
110
+ 1. [ ] Add Prophet to optional dependencies in setup.py/pyproject.toml
111
+ 2. [ ] Add OpenAI to optional dependencies
112
+ 3. [ ] Verify CLI flags work end-to-end locally
113
+ 4. [ ] Add integration tests for predictions generation
114
+ 5. [ ] Add integration tests for insights generation
115
+
116
+ ### Phase 5.2: Pipeline Task Integration
117
+
118
+ 1. [ ] Add `enablePredictions` input to task.json
119
+ 2. [ ] Add `enableInsights` input to task.json
120
+ 3. [ ] Add `openaiApiKey` input to task.json
121
+ 4. [ ] Update index.js to pass new inputs to CLI
122
+ 5. [ ] Test in hosted agent environment (Prophet installation)
123
+ 6. [ ] Document agent requirements (Prophet needs C++ compiler)
124
+
125
+ ### Phase 5.3: Dashboard Integration
126
+
127
+ 1. [ ] Verify `loadPredictions()` in dataset-loader.js works with real data
128
+ 2. [ ] Verify `loadInsights()` in dataset-loader.js works with real data
129
+ 3. [ ] Update `renderPredictions()` for production data format
130
+ 4. [ ] Update `renderInsights()` for production data format
131
+ 5. [ ] Add loading states for async prediction/insight loading
132
+
133
+ ### Phase 5.4: Documentation & Enablement
134
+
135
+ 1. [ ] Create "Enable ML Features" documentation page
136
+ 2. [ ] Document OpenAI API key setup
137
+ 3. [ ] Document Prophet installation requirements
138
+ 4. [ ] Update INSTALLATION.md with ML features section
139
+ 5. [ ] Set `ENABLE_PHASE5_FEATURES = true` in dashboard.js
140
+ 6. [ ] Update tests to expect tabs visible by default
141
+
142
+ ---
143
+
144
+ ## Key Files Reference
145
+
146
+ ### Python ML Code
147
+ - `src/ado_git_repo_insights/ml/__init__.py` - ML module exports
148
+ - `src/ado_git_repo_insights/ml/forecaster.py` - Prophet-based cycle time forecasting
149
+ - `src/ado_git_repo_insights/ml/insights.py` - AI-powered insights generation
150
+ - `src/ado_git_repo_insights/ml/date_utils.py` - Date utilities for forecasting
151
+
152
+ ### Pipeline Task
153
+ - `extension/tasks/extract-prs/task.json` - Task input definitions
154
+ - `extension/tasks/extract-prs/index.js` - Task execution wrapper
155
+
156
+ ### Dashboard
157
+ - `extension/ui/dashboard.js` - Feature flag and initialization
158
+ - `extension/ui/dataset-loader.js` - Data loading for predictions/insights
159
+ - `extension/ui/index.html` - Tab HTML structure
160
+
161
+ ### Tests
162
+ - `extension/tests/production-issues.test.js` - Feature flag tests
163
+ - Need to add: ML integration tests
164
+
165
+ ---
166
+
167
+ ## Risks & Considerations
168
+
169
+ ### Prophet Installation
170
+ - Prophet requires C++ compiler and additional build tools
171
+ - May fail on some self-hosted agents without proper toolchain
172
+ - Consider: Pre-built wheel distribution or Docker-based execution
173
+
174
+ ### OpenAI API Costs
175
+ - AI insights require OpenAI API calls (paid service)
176
+ - Need rate limiting and cost estimation in documentation
177
+ - Consider: Local LLM alternative for privacy-conscious users
178
+
179
+ ### Data Volume
180
+ - Forecasting on large datasets (10k+ PRs) may be slow
181
+ - Consider: Caching, incremental updates, time limits
182
+
183
+ ---
184
+
185
+ ## When to Enable
186
+
187
+ Enable Phase 5 features when:
188
+
189
+ 1. All Phase 5.1-5.4 tasks are complete
190
+ 2. Integration tests pass in CI
191
+ 3. Documentation is complete
192
+ 4. At least one production user has tested successfully
193
+
194
+ To enable:
195
+ ```javascript
196
+ // extension/ui/dashboard.js line 34
197
+ const ENABLE_PHASE5_FEATURES = true;
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Contact
203
+
204
+ For questions about Phase 5 implementation, see:
205
+ - `docs/phase5-contract-notes.md` - Original design notes
206
+ - `agents/INVARIANTS.md` - System invariants to preserve
207
+ - GitHub Issues - For tracking specific tasks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ado-git-repo-insights
3
- Version: 2.7.5
3
+ Version: 3.2.0
4
4
  Summary: Extract Azure DevOps Pull Request metrics to SQLite and generate PowerBI-compatible CSVs.
5
5
  Author-email: "Odd Essentials, LLC" <admin@oddessentials.com>
6
6
  License: MIT
@@ -41,6 +41,18 @@ Dynamic: license-file
41
41
 
42
42
  Extract Azure DevOps Pull Request metrics to SQLite and generate PowerBI-compatible CSVs.
43
43
 
44
+ ---
45
+
46
+ ## 🚀 Get Started
47
+
48
+ **Install from the Azure DevOps Marketplace:**
49
+
50
+ [![Install from Marketplace](https://img.shields.io/badge/Install-Azure%20DevOps%20Marketplace-blue?logo=azure-devops)](https://marketplace.visualstudio.com/items?itemName=OddEssentials.ado-git-repo-insights)
51
+
52
+ 👉 **New to this extension?** Follow the **[Installation Guide](docs/INSTALLATION.md)** for step-by-step setup instructions.
53
+
54
+ ---
55
+
44
56
  ## Overview
45
57
 
46
58
  This tool replaces the MongoDB-based `ado-pull-request-metrics` with a lightweight, file-based solution that:
@@ -7,6 +7,18 @@
7
7
 
8
8
  Extract Azure DevOps Pull Request metrics to SQLite and generate PowerBI-compatible CSVs.
9
9
 
10
+ ---
11
+
12
+ ## 🚀 Get Started
13
+
14
+ **Install from the Azure DevOps Marketplace:**
15
+
16
+ [![Install from Marketplace](https://img.shields.io/badge/Install-Azure%20DevOps%20Marketplace-blue?logo=azure-devops)](https://marketplace.visualstudio.com/items?itemName=OddEssentials.ado-git-repo-insights)
17
+
18
+ 👉 **New to this extension?** Follow the **[Installation Guide](docs/INSTALLATION.md)** for step-by-step setup instructions.
19
+
20
+ ---
21
+
10
22
  ## Overview
11
23
 
12
24
  This tool replaces the MongoDB-based `ado-pull-request-metrics` with a lightweight, file-based solution that:
@@ -0,0 +1 @@
1
+ 3.2.0