stackvitals 0.1.2__tar.gz → 0.1.4__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 (1381) hide show
  1. stackvitals-0.1.4/.github/ISSUE_TEMPLATE/bug.yml +56 -0
  2. stackvitals-0.1.4/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. stackvitals-0.1.4/.github/ISSUE_TEMPLATE/feature.yml +39 -0
  4. stackvitals-0.1.4/.github/pull_request_template.md +15 -0
  5. stackvitals-0.1.4/.github/workflows/pages.yml +44 -0
  6. {stackvitals-0.1.2 → stackvitals-0.1.4}/CHANGELOG.md +28 -0
  7. stackvitals-0.1.4/CODE_OF_CONDUCT.md +113 -0
  8. {stackvitals-0.1.2 → stackvitals-0.1.4}/CONTRIBUTING.md +17 -3
  9. {stackvitals-0.1.2 → stackvitals-0.1.4}/PKG-INFO +7 -2
  10. {stackvitals-0.1.2 → stackvitals-0.1.4}/README.md +1 -1
  11. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/registry.json +31 -3
  12. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/summary.py +8 -6
  13. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/accuracy.md +21 -22
  14. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/app.md +2 -3
  15. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/architecture.md +8 -5
  16. stackvitals-0.1.4/docs/assets/architecture-detailed-dark.png +0 -0
  17. stackvitals-0.1.4/docs/assets/architecture-detailed-light.png +0 -0
  18. stackvitals-0.1.4/docs/assets/architecture-overview-dark.png +0 -0
  19. stackvitals-0.1.4/docs/assets/architecture-overview-light.png +0 -0
  20. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/connectors.md +3 -4
  21. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/coverage.md +2 -1
  22. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/dora-guide.md +4 -2
  23. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/faq.md +1 -1
  24. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/guides/maintainer.md +1 -1
  25. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/guides/manager.md +2 -2
  26. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/guides/platform.md +3 -3
  27. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/install.md +22 -1
  28. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/limitations.md +9 -5
  29. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/methods.md +2 -2
  30. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/modules.md +25 -4
  31. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/privacy.md +1 -1
  32. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/quickstart.md +14 -5
  33. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/release-checklist.md +29 -17
  34. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/rules.md +24 -2
  35. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/scaling.md +1 -1
  36. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/settings.md +14 -14
  37. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/threat-model.md +3 -2
  38. stackvitals-0.1.4/glama.json +4 -0
  39. {stackvitals-0.1.2 → stackvitals-0.1.4}/llms.txt +2 -2
  40. {stackvitals-0.1.2 → stackvitals-0.1.4}/pyproject.toml +8 -1
  41. {stackvitals-0.1.2 → stackvitals-0.1.4}/scripts/sync_crawler.py +2 -0
  42. {stackvitals-0.1.2 → stackvitals-0.1.4}/server.json +2 -2
  43. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-ci/SKILL.md +1 -1
  44. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-community/SKILL.md +1 -1
  45. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-contribute/SKILL.md +1 -1
  46. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-delivery/SKILL.md +1 -1
  47. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-deps/SKILL.md +1 -1
  48. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-flow/SKILL.md +1 -1
  49. {stackvitals-0.1.2 → stackvitals-0.1.4}/skills/stackvitals-portal/SKILL.md +1 -1
  50. stackvitals-0.1.4/src/mergescout/__init__.py +1 -0
  51. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/__init__.py +1 -1
  52. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/action.py +2 -2
  53. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/analyze.py +16 -1
  54. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/feedback.py +94 -5
  55. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/dataflow.py +1 -1
  56. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/installdoc.py +28 -5
  57. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/schema.py +20 -4
  58. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/editors/vscode/package.json +1 -1
  59. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/site.py +19 -2
  60. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-GPVLJRZD.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/chunk-5TSTECYX.js +1 -1
  61. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-PABICGBL.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/chunk-7W2HH2SR.js +1 -1
  62. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-GQYFN4PE.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/chunk-AEVB6UDN.js +6 -6
  63. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-JWBRT5E4.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/chunk-UWMBZCCA.js +1 -1
  64. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-OFWDU5XX.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/chunk-W6N6P4C7.js +1 -1
  65. stackvitals-0.1.2/src/stackvitals/web/app/chunks/more-5EXFWDGM.js → stackvitals-0.1.4/src/stackvitals/web/app/chunks/more-EEGUDTVE.js +1 -1
  66. stackvitals-0.1.4/src/stackvitals/web/app/demo/settings.json +1 -0
  67. stackvitals-0.1.4/src/stackvitals/web/app/help/accuracy.json +1 -0
  68. stackvitals-0.1.4/src/stackvitals/web/app/help/connectors.json +1 -0
  69. stackvitals-0.1.4/src/stackvitals/web/app/help/getting-started.json +1 -0
  70. stackvitals-0.1.4/src/stackvitals/web/app/help/index.json +1 -0
  71. stackvitals-0.1.4/src/stackvitals/web/app/help/modules.json +1 -0
  72. stackvitals-0.1.4/src/stackvitals/web/app/help/privacy-and-security.json +1 -0
  73. stackvitals-0.1.4/src/stackvitals/web/app/help/reference.json +1 -0
  74. stackvitals-0.1.4/src/stackvitals/web/app/main.css +1 -0
  75. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/main.js +1 -1
  76. stackvitals-0.1.4/src/stackvitals/web/app/pages/about.js +1 -0
  77. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/ci.js +1 -1
  78. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/community.js +1 -1
  79. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/deps.js +1 -1
  80. stackvitals-0.1.4/src/stackvitals/web/app/pages/help.js +6 -0
  81. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/portal.js +1 -1
  82. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/setup.js +2 -2
  83. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/welcome-sheet.js +1 -1
  84. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/welcome.js +1 -1
  85. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/site/index.html +5 -2
  86. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/site/site.css +6 -4
  87. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_docs.py +2 -0
  88. stackvitals-0.1.4/tests/local/test_ci_pr_only_flakes.py +201 -0
  89. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_site_build.py +32 -0
  90. {stackvitals-0.1.2 → stackvitals-0.1.4}/uv.lock +1 -1
  91. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/README.md +2 -1
  92. stackvitals-0.1.4/web/demo/settings.json +1 -0
  93. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/App.tsx +3 -3
  94. stackvitals-0.1.2/web/src/app/LogoPicker.tsx → stackvitals-0.1.4/web/src/app/Brand.tsx +1 -1
  95. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/workflow.ts +1 -1
  96. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/about.tsx +2 -2
  97. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/community.tsx +1 -1
  98. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/help/commands.tsx +3 -2
  99. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/setup.tsx +1 -1
  100. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/sheet.css +1 -3
  101. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/shell.css +0 -10
  102. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/workflow.test.ts +2 -2
  103. stackvitals-0.1.2/docs/assets/architecture-detailed-dark.png +0 -0
  104. stackvitals-0.1.2/docs/assets/architecture-detailed-light.png +0 -0
  105. stackvitals-0.1.2/docs/assets/architecture-overview-dark.png +0 -0
  106. stackvitals-0.1.2/docs/assets/architecture-overview-light.png +0 -0
  107. stackvitals-0.1.2/src/mergescout/__init__.py +0 -1
  108. stackvitals-0.1.2/src/stackvitals/web/app/demo/settings.json +0 -1
  109. stackvitals-0.1.2/src/stackvitals/web/app/help/accuracy.json +0 -1
  110. stackvitals-0.1.2/src/stackvitals/web/app/help/connectors.json +0 -1
  111. stackvitals-0.1.2/src/stackvitals/web/app/help/getting-started.json +0 -1
  112. stackvitals-0.1.2/src/stackvitals/web/app/help/index.json +0 -1
  113. stackvitals-0.1.2/src/stackvitals/web/app/help/modules.json +0 -1
  114. stackvitals-0.1.2/src/stackvitals/web/app/help/privacy-and-security.json +0 -1
  115. stackvitals-0.1.2/src/stackvitals/web/app/help/reference.json +0 -1
  116. stackvitals-0.1.2/src/stackvitals/web/app/main.css +0 -1
  117. stackvitals-0.1.2/src/stackvitals/web/app/pages/about.js +0 -1
  118. stackvitals-0.1.2/src/stackvitals/web/app/pages/help.js +0 -6
  119. stackvitals-0.1.2/web/demo/settings.json +0 -1
  120. {stackvitals-0.1.2 → stackvitals-0.1.4}/.env.example +0 -0
  121. {stackvitals-0.1.2 → stackvitals-0.1.4}/.gitattributes +0 -0
  122. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/ISSUE_TEMPLATE/benchmark.yml +0 -0
  123. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/build-constraints.txt +0 -0
  124. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/workflows/daily.yml +0 -0
  125. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/workflows/mcp-registry.yml +0 -0
  126. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/workflows/prospective.yml +0 -0
  127. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/workflows/release.yml +0 -0
  128. {stackvitals-0.1.2 → stackvitals-0.1.4}/.github/workflows/tests.yml +0 -0
  129. {stackvitals-0.1.2 → stackvitals-0.1.4}/.gitignore +0 -0
  130. {stackvitals-0.1.2 → stackvitals-0.1.4}/GOVERNANCE.md +0 -0
  131. {stackvitals-0.1.2 → stackvitals-0.1.4}/LICENSE +0 -0
  132. {stackvitals-0.1.2 → stackvitals-0.1.4}/NOTICE +0 -0
  133. {stackvitals-0.1.2 → stackvitals-0.1.4}/SECURITY.md +0 -0
  134. {stackvitals-0.1.2 → stackvitals-0.1.4}/action.yml +0 -0
  135. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/LICENSE-DATA.md +0 -0
  136. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adjudicate.py +0 -0
  137. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adjudicator-crosscheck.json +0 -0
  138. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adoption/README.md +0 -0
  139. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adoption/manifest.json +0 -0
  140. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adoption/preregistration.md +0 -0
  141. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/adoption/study.py +0 -0
  142. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/README.md +0 -0
  143. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/prepare.py +0 -0
  144. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/prepare2.py +0 -0
  145. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/prompts.md +0 -0
  146. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/results.json +0 -0
  147. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/results2.json +0 -0
  148. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/score.py +0 -0
  149. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/score2.py +0 -0
  150. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/triage-results.json +0 -0
  151. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/agents/triage_check.py +0 -0
  152. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/README.md +0 -0
  153. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/adjudication-detection.csv +0 -0
  154. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/adoption-results.json +0 -0
  155. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/adoption.py +0 -0
  156. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/agreement-gemini-detection.json +0 -0
  157. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/codebook-detection.md +0 -0
  158. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/detection-labels.csv +0 -0
  159. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/detection-results.json +0 -0
  160. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/detection.py +0 -0
  161. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/labels-gemini-detection.csv +0 -0
  162. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/preregistration.md +0 -0
  163. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/replicate-results.json +0 -0
  164. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/ai/replicate.py +0 -0
  165. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/audit-results.json +0 -0
  166. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/audit.py +0 -0
  167. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/README.md +0 -0
  168. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/adjudication-main.csv +0 -0
  169. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/adjudication-validation.csv +0 -0
  170. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/affiliation-results.json +0 -0
  171. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/affiliation.py +0 -0
  172. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/agreement-gemini-main-v2.json +0 -0
  173. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/agreement-gemini-main.json +0 -0
  174. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/agreement-gemini-validation-v2.json +0 -0
  175. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/agreement-gemini-validation.json +0 -0
  176. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/channels-results.json +0 -0
  177. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/channels.py +0 -0
  178. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/codebook.md +0 -0
  179. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-gemini-main-v2.csv +0 -0
  180. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-gemini-main.csv +0 -0
  181. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-gemini-validation-v2.csv +0 -0
  182. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-gemini-validation.csv +0 -0
  183. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-main.csv +0 -0
  184. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-results.json +0 -0
  185. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/labels-validation.csv +0 -0
  186. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/responses-results.json +0 -0
  187. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/responses-validation-results.json +0 -0
  188. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/responses.py +0 -0
  189. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/score_labels.py +0 -0
  190. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/triage-results.json +0 -0
  191. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/community/triage.py +0 -0
  192. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/contribute/README.md +0 -0
  193. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/contribute/frozen-manifest.json +0 -0
  194. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/contribute/frozen.json.gz +0 -0
  195. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/contribute/preregistration.md +0 -0
  196. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/contribute/prospective.py +0 -0
  197. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/crosscheck.py +0 -0
  198. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/README.md +0 -0
  199. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/baseline-after-results.json +0 -0
  200. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/baseline-results.json +0 -0
  201. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/baseline.py +0 -0
  202. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/coverage-results.json +0 -0
  203. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/coverage.py +0 -0
  204. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/exploits-results.json +0 -0
  205. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/exploits.py +0 -0
  206. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/incidents-results.json +0 -0
  207. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/incidents.py +0 -0
  208. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/lookalike-results.json +0 -0
  209. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/lookalike.py +0 -0
  210. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/release-signs-results.json +0 -0
  211. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/deps/release_signs.py +0 -0
  212. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/README.md +0 -0
  213. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/head-to-head-results.json +0 -0
  214. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/pick.py +0 -0
  215. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/preregistration.md +0 -0
  216. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/repos.json +0 -0
  217. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/run.py +0 -0
  218. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/devlake/score.py +0 -0
  219. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/README.md +0 -0
  220. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/adjudication-incidents.csv +0 -0
  221. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/adjudication-sources-more.csv +0 -0
  222. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/adjudication-sources.csv +0 -0
  223. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/agreement-gemini-sources-more.json +0 -0
  224. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/agreement-gemini-sources.json +0 -0
  225. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/codebook.md +0 -0
  226. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/devlake-configured-more-results.json +0 -0
  227. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/devlake-configured-results.json +0 -0
  228. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/devlake_configured.py +0 -0
  229. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/environments-results.json +0 -0
  230. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/environments.py +0 -0
  231. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/incidents-codebook.md +0 -0
  232. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/incidents-labels.csv +0 -0
  233. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/incidents-results.json +0 -0
  234. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/incidents.py +0 -0
  235. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/labels-gemini-incidents.csv +0 -0
  236. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/labels-gemini-sources-more.csv +0 -0
  237. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/labels-gemini-sources.csv +0 -0
  238. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/linkage-more-results.json +0 -0
  239. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/linkage-results.json +0 -0
  240. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/linkage.py +0 -0
  241. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/sources-labels.csv +0 -0
  242. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/sources-more-labels.csv +0 -0
  243. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/sources-more-results.json +0 -0
  244. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/sources-results.json +0 -0
  245. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/sources.py +0 -0
  246. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/spread-results.json +0 -0
  247. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/dora/spread.py +0 -0
  248. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/fair.py +0 -0
  249. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/README.md +0 -0
  250. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/api_use.py +0 -0
  251. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/branch_growth.py +0 -0
  252. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/catalog.py +0 -0
  253. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/reports.py +0 -0
  254. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/scorecard.json +0 -0
  255. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/features/scorecard.py +0 -0
  256. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/finalise.py +0 -0
  257. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/README.md +0 -0
  258. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/adjudication-flaky.csv +0 -0
  259. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/adjudication-fresh.csv +0 -0
  260. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/adjudication-heldout.csv +0 -0
  261. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/adjudication-masking.csv +0 -0
  262. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/agreement-gemini-flaky-v2.json +0 -0
  263. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/agreement-gemini-flaky.json +0 -0
  264. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/agreement-gemini-fresh.json +0 -0
  265. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/agreement-gemini-heldout.json +0 -0
  266. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/agreement-gemini-masking.json +0 -0
  267. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/already-results.json +0 -0
  268. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/already.py +0 -0
  269. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/began-results.json +0 -0
  270. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/began.py +0 -0
  271. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/card.json +0 -0
  272. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/codebook.md +0 -0
  273. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/heldout-labels.csv +0 -0
  274. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/heldout-results.json +0 -0
  275. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/heldout.py +0 -0
  276. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/items.csv +0 -0
  277. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/kinds-results.json +0 -0
  278. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/kinds.py +0 -0
  279. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/labels-gemini-flaky-v2.csv +0 -0
  280. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/labels-gemini-flaky.csv +0 -0
  281. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/labels-gemini-fresh.csv +0 -0
  282. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/labels-gemini-heldout.csv +0 -0
  283. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/labels-gemini-masking.csv +0 -0
  284. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/masking-labels.csv +0 -0
  285. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/masking-results.json +0 -0
  286. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/masking.py +0 -0
  287. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/maybe-results.json +0 -0
  288. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/maybe.py +0 -0
  289. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/natural-results.json +0 -0
  290. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/natural.py +0 -0
  291. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/outside-fresh-results.json +0 -0
  292. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/outside-results.json +0 -0
  293. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/outside.py +0 -0
  294. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/outside_fresh.py +0 -0
  295. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/pr-details-results.json +0 -0
  296. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/pr_details.py +0 -0
  297. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/safe-check-results.json +0 -0
  298. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/safe-rule-results.json +0 -0
  299. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/safe_check.py +0 -0
  300. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/safe_rule.py +0 -0
  301. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/sample.py +0 -0
  302. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/score.py +0 -0
  303. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/views.py +0 -0
  304. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/flaky/wide.py +0 -0
  305. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/README.md +0 -0
  306. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/collect_reports.py +0 -0
  307. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/find_report_repos.py +0 -0
  308. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/replay-results.json +0 -0
  309. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/replay_tia.py +0 -0
  310. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/search.json +0 -0
  311. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/impact/totals.json +0 -0
  312. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/label-sensitivity.json +0 -0
  313. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/labeller.py +0 -0
  314. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/middleware/README.md +0 -0
  315. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/middleware/preregistration.md +0 -0
  316. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/middleware/results.json +0 -0
  317. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/middleware/run.sh +0 -0
  318. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/middleware/score.py +0 -0
  319. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/panel-results.json +0 -0
  320. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/panel.py +0 -0
  321. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/platform/README.md +0 -0
  322. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/platform/busy-results.json +0 -0
  323. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/platform/busy.py +0 -0
  324. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/README.md +0 -0
  325. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/scale-results.json +0 -0
  326. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/scale.py +0 -0
  327. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/speed-after.json +0 -0
  328. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/speed-before.json +0 -0
  329. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/portal/speed.py +0 -0
  330. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/README.md +0 -0
  331. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/adjudication-replay.csv +0 -0
  332. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/agreement-gemini-replay.json +0 -0
  333. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/labels-gemini-replay.csv +0 -0
  334. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/replay-labels.csv +0 -0
  335. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/replay-results.json +0 -0
  336. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/replay/replay.py +0 -0
  337. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/reproduce.py +0 -0
  338. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/scorecard/README.md +0 -0
  339. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/scorecard/results-before.json +0 -0
  340. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/scorecard/results.json +0 -0
  341. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/scorecard/run.py +0 -0
  342. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/sensitivity.py +0 -0
  343. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/README.md +0 -0
  344. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/prospective-frozen.json.gz +0 -0
  345. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/prospective-manifest.json +0 -0
  346. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/prospective.py +0 -0
  347. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/reviewers-results.json +0 -0
  348. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/team/reviewers.py +0 -0
  349. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/README.md +0 -0
  350. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/nulls-2week-before-results.json +0 -0
  351. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/nulls-2week-results.json +0 -0
  352. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/nulls-before-results.json +0 -0
  353. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/nulls-results.json +0 -0
  354. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/nulls.py +0 -0
  355. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/shrinkage-groups-results.json +0 -0
  356. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/shrinkage-results.json +0 -0
  357. {stackvitals-0.1.2 → stackvitals-0.1.4}/bench/accuracy/uncertainty/shrinkage.py +0 -0
  358. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/README.md +0 -0
  359. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/gitignore +0 -0
  360. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/workflows/bench.yml +0 -0
  361. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/workflows/check.yml +0 -0
  362. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/workflows/crawl.yml +0 -0
  363. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/workflows/discover.yml +0 -0
  364. {stackvitals-0.1.2 → stackvitals-0.1.4}/deploy/crawler/workflows/keepalive.yml +0 -0
  365. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/divider-dark.png +0 -0
  366. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/divider-light.png +0 -0
  367. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/lockup-dark.png +0 -0
  368. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/lockup-light.png +0 -0
  369. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/stackvitals-video.avif +0 -0
  370. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/stackvitals-video.gif +0 -0
  371. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/assets/stackvitals-video.mp4 +0 -0
  372. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/chaoss.md +0 -0
  373. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/enterprise.md +0 -0
  374. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/roadmap.md +0 -0
  375. {stackvitals-0.1.2 → stackvitals-0.1.4}/docs/triage.md +0 -0
  376. {stackvitals-0.1.2 → stackvitals-0.1.4}/scripts/prelaunch.py +0 -0
  377. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/__init__.py +0 -0
  378. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/__main__.py +0 -0
  379. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/convert.py +0 -0
  380. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/events.py +0 -0
  381. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/manifest.py +0 -0
  382. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/archive/stream.py +0 -0
  383. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/__init__.py +0 -0
  384. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/__main__.py +0 -0
  385. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/ci.py +0 -0
  386. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/deploys.py +0 -0
  387. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/matched.py +0 -0
  388. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/prior.py +0 -0
  389. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/report.py +0 -0
  390. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/shared.py +0 -0
  391. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/bench/stars.py +0 -0
  392. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/cli.py +0 -0
  393. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/config.py +0 -0
  394. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/__init__.py +0 -0
  395. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/__main__.py +0 -0
  396. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/chain.py +0 -0
  397. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/fetch.py +0 -0
  398. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/outcomes.py +0 -0
  399. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/queries.py +0 -0
  400. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/runner.py +0 -0
  401. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/seed.py +0 -0
  402. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/state.py +0 -0
  403. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/crawl/writer.py +0 -0
  404. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/discover/__init__.py +0 -0
  405. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/discover/__main__.py +0 -0
  406. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/discover/sweep.py +0 -0
  407. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/github/__init__.py +0 -0
  408. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/github/graphql.py +0 -0
  409. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/github/identities.py +0 -0
  410. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/github/releases.py +0 -0
  411. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/labels.py +0 -0
  412. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/mcp_server.py +0 -0
  413. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/__init__.py +0 -0
  414. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/__main__.py +0 -0
  415. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/api_cost.py +0 -0
  416. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/count_repos.py +0 -0
  417. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/jsonl.py +0 -0
  418. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/report.py +0 -0
  419. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/measure/sample.py +0 -0
  420. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/owners.py +0 -0
  421. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/setup_check.py +0 -0
  422. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/__init__.py +0 -0
  423. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/__main__.py +0 -0
  424. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/bump_ledger.py +0 -0
  425. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/bumps.py +0 -0
  426. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/check.py +0 -0
  427. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/community_bench.py +0 -0
  428. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/delivery_bench.py +0 -0
  429. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/deps_map.py +0 -0
  430. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/deps_trends.py +0 -0
  431. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/evidence.py +0 -0
  432. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/exploits.py +0 -0
  433. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/flow_bench.py +0 -0
  434. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/identity.py +0 -0
  435. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/issues.py +0 -0
  436. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/labels.py +0 -0
  437. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/osv.py +0 -0
  438. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/owners_watch.py +0 -0
  439. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/repo_stats.py +0 -0
  440. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/rules.py +0 -0
  441. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/silver.py +0 -0
  442. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/top_packages.py +0 -0
  443. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/triage.py +0 -0
  444. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/triage_math.py +0 -0
  445. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/signals/walls.py +0 -0
  446. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/__init__.py +0 -0
  447. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/__main__.py +0 -0
  448. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/build.py +0 -0
  449. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/publish.py +0 -0
  450. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/schema.py +0 -0
  451. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/snapshot/score.py +0 -0
  452. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/store/__init__.py +0 -0
  453. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/store/__main__.py +0 -0
  454. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/store/sync.py +0 -0
  455. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/timeutil.py +0 -0
  456. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/__init__.py +0 -0
  457. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/action_pack.py +0 -0
  458. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/live.py +0 -0
  459. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/queries.py +0 -0
  460. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/refs.py +0 -0
  461. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/store.py +0 -0
  462. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/mergescout/tool/tracking.py +0 -0
  463. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/__main__.py +0 -0
  464. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/__init__.py +0 -0
  465. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/api.py +0 -0
  466. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/automation.py +0 -0
  467. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/bench.py +0 -0
  468. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/burnin.py +0 -0
  469. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/cli.py +0 -0
  470. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/collect.py +0 -0
  471. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/cost.py +0 -0
  472. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/coverage.py +0 -0
  473. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/fingerprint.py +0 -0
  474. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/gitlab.py +0 -0
  475. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/gitlab_action.py +0 -0
  476. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/impact.py +0 -0
  477. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/investigate.py +0 -0
  478. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/kinds.py +0 -0
  479. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/monitors.py +0 -0
  480. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/owners.py +0 -0
  481. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/quarantine_runtime.py +0 -0
  482. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/report.py +0 -0
  483. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/retry.py +0 -0
  484. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/selfheal.py +0 -0
  485. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/shards.py +0 -0
  486. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/share.py +0 -0
  487. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/store.py +0 -0
  488. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/testreports.py +0 -0
  489. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/tickets.py +0 -0
  490. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/track_record.json +0 -0
  491. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/triage.py +0 -0
  492. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/triggers.py +0 -0
  493. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/upload.py +0 -0
  494. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/ci/validate.py +0 -0
  495. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/cli.py +0 -0
  496. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/codeowners.py +0 -0
  497. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/__init__.py +0 -0
  498. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/action.py +0 -0
  499. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/affiliation.py +0 -0
  500. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/analyze.py +0 -0
  501. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/build.py +0 -0
  502. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/chaoss.py +0 -0
  503. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/cli.py +0 -0
  504. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/collect.py +0 -0
  505. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/context.py +0 -0
  506. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/community/report.py +0 -0
  507. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/__init__.py +0 -0
  508. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/ai_spend.py +0 -0
  509. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/base.py +0 -0
  510. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/check.py +0 -0
  511. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/copilot.py +0 -0
  512. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/discord.py +0 -0
  513. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/discourse.py +0 -0
  514. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/incident_io.py +0 -0
  515. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/jira.py +0 -0
  516. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/linear.py +0 -0
  517. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/pagerduty.py +0 -0
  518. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/slack.py +0 -0
  519. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/sonar.py +0 -0
  520. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/store.py +0 -0
  521. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/tracker.py +0 -0
  522. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/connectors/writeback.py +0 -0
  523. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/contribute/__init__.py +0 -0
  524. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/contribute/brief.py +0 -0
  525. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/contribute/cli.py +0 -0
  526. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/__init__.py +0 -0
  527. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/actors.py +0 -0
  528. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/agent_ledger.py +0 -0
  529. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/agreements.py +0 -0
  530. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/ai_outcomes.py +0 -0
  531. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/alerts.py +0 -0
  532. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/appdata.py +0 -0
  533. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/bucket.py +0 -0
  534. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/bugs.py +0 -0
  535. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/calendar.py +0 -0
  536. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/capex.py +0 -0
  537. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/change_risk.py +0 -0
  538. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/changes.py +0 -0
  539. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/chat.py +0 -0
  540. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/config.py +0 -0
  541. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/decisions.py +0 -0
  542. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/delivery.py +0 -0
  543. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/delivery_peers.py +0 -0
  544. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/delivery_report.py +0 -0
  545. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/deliverycli.py +0 -0
  546. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/devlake_dora.sql +0 -0
  547. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/digest.py +0 -0
  548. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/explaincli.py +0 -0
  549. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/explore.py +0 -0
  550. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/export.py +0 -0
  551. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/exportcli.py +0 -0
  552. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/findings.py +0 -0
  553. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/health.py +0 -0
  554. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/identity.py +0 -0
  555. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/initcli.py +0 -0
  556. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/insights.py +0 -0
  557. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/insightscli.py +0 -0
  558. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/investment.py +0 -0
  559. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/joins.py +0 -0
  560. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/llmsdoc.py +0 -0
  561. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/merge_queue.py +0 -0
  562. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/metrics.py +0 -0
  563. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/model.py +0 -0
  564. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/projectcli.py +0 -0
  565. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/propose.py +0 -0
  566. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/pulse.py +0 -0
  567. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/recorded.py +0 -0
  568. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/releases.py +0 -0
  569. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/requests.py +0 -0
  570. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/resync.py +0 -0
  571. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/services.py +0 -0
  572. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/settings.py +0 -0
  573. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/sqlcli.py +0 -0
  574. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/stats.py +0 -0
  575. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/store.py +0 -0
  576. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/summary.py +0 -0
  577. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/time.py +0 -0
  578. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/tomledit.py +0 -0
  579. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/uicli.py +0 -0
  580. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/webapp.py +0 -0
  581. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/what_changed.py +0 -0
  582. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/core/workspace.py +0 -0
  583. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/__init__.py +0 -0
  584. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/action.py +0 -0
  585. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/actions_vulns.py +0 -0
  586. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/cli.py +0 -0
  587. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/dossier.py +0 -0
  588. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/evidence.py +0 -0
  589. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/fixplan.py +0 -0
  590. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/guarddog.py +0 -0
  591. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/hygiene.py +0 -0
  592. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/imports.py +0 -0
  593. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/lockfiles.py +0 -0
  594. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/lookalike.py +0 -0
  595. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/reach.py +0 -0
  596. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/release.py +0 -0
  597. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/runtimes.py +0 -0
  598. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/supply.py +0 -0
  599. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/deps/vulns.py +0 -0
  600. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/editors/__init__.py +0 -0
  601. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/editors/vscode/extension.js +0 -0
  602. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/editors/vscode/marks.js +0 -0
  603. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/__init__.py +0 -0
  604. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/action.py +0 -0
  605. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/analyze.py +0 -0
  606. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/automate.py +0 -0
  607. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/build.py +0 -0
  608. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/cli.py +0 -0
  609. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/code_hosts.py +0 -0
  610. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/collect.py +0 -0
  611. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/gitlab_mr.py +0 -0
  612. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/knowledge.py +0 -0
  613. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/peers.py +0 -0
  614. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/preflight.py +0 -0
  615. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/report.py +0 -0
  616. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/rules.py +0 -0
  617. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/store.py +0 -0
  618. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/survival.py +0 -0
  619. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/flow/triage.py +0 -0
  620. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/mcp_server.py +0 -0
  621. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/__init__.py +0 -0
  622. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/action.py +0 -0
  623. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/batch.py +0 -0
  624. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/campaigns.py +0 -0
  625. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/catalog.py +0 -0
  626. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/checks.py +0 -0
  627. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/cli.py +0 -0
  628. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/descriptor.py +0 -0
  629. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/export.py +0 -0
  630. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/github.py +0 -0
  631. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/golden.py +0 -0
  632. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/history.py +0 -0
  633. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/inventory.py +0 -0
  634. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/owners.py +0 -0
  635. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/pages.py +0 -0
  636. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/rollup.py +0 -0
  637. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/portal/scorecard.py +0 -0
  638. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/security/__init__.py +0 -0
  639. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/security/probes.py +0 -0
  640. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/security/repo_checks.py +0 -0
  641. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/security/workflows.py +0 -0
  642. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/shell.py +0 -0
  643. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/LICENSES.md +0 -0
  644. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/boot.js +0 -0
  645. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/brand/cube-128.png +0 -0
  646. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/brand/cube-256.png +0 -0
  647. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/brand/cube-64.png +0 -0
  648. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/AddRepo-KRPZXWCY.js +0 -0
  649. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/SetupRunning-XWFQAKRZ.js +0 -0
  650. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/accuracy-data-OQTDXI7Y.js +0 -0
  651. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/agents-data-BAL6QAOF.js +0 -0
  652. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-24LFKFZ6.js +0 -0
  653. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-3IXWEOIJ.js +0 -0
  654. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-3ROQFHPV.js +0 -0
  655. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-45PGAQRO.js +0 -0
  656. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-4H53OYLG.js +0 -0
  657. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-4LUI7O5P.js +0 -0
  658. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-4SQPQ5TB.js +0 -0
  659. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-4WKQTWUC.js +0 -0
  660. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-576YHDEK.js +0 -0
  661. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-6RLVD2DT.js +0 -0
  662. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-763NH7PP.js +0 -0
  663. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-76WAVKUG.js +0 -0
  664. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-7II2BD5F.js +0 -0
  665. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-ASYNLVOP.js +0 -0
  666. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-CTKDYZMG.js +0 -0
  667. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-CVB26NMC.js +0 -0
  668. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-DLORG2IY.js +0 -0
  669. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-FBGIG7YF.js +0 -0
  670. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-G7NGB5UX.js +0 -0
  671. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-GT4EAKAO.js +0 -0
  672. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-IYMBFPCV.js +0 -0
  673. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-LAAGCPU3.js +0 -0
  674. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-P5TXDD45.js +0 -0
  675. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-RPXHAG6F.js +0 -0
  676. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-S2ZBMEVA.js +0 -0
  677. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-S654BBEP.js +0 -0
  678. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-SACCDA46.js +0 -0
  679. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-T7QVTNXF.js +0 -0
  680. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-TCPSLBAB.js +0 -0
  681. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-TO4VVRZ7.js +0 -0
  682. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-VQ5YXO54.js +0 -0
  683. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-VWKSMFWJ.js +0 -0
  684. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/chunk-YTANGYYH.js +0 -0
  685. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/connect-KONYWYTT.js +0 -0
  686. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/connections-data-2DYS4UVW.js +0 -0
  687. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/more-PC6FVS3P.js +0 -0
  688. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/more-RCIVCUDE.js +0 -0
  689. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/more-ZKKRY6NO.css +0 -0
  690. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/sealbox-35YL4EUH.js +0 -0
  691. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/session-DYYTOE2K.js +0 -0
  692. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/settingsApply-2HRJEZYM.js +0 -0
  693. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/settingsReview-GX2FZQ4M.js +0 -0
  694. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/chunks/uPlot.esm-OIWT3AHJ.js +0 -0
  695. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/ci/impact.json +0 -0
  696. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/ci/quarantine.json +0 -0
  697. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/ci/tickets.json +0 -0
  698. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/alerts.json +0 -0
  699. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/app.json +0 -0
  700. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/community.json +0 -0
  701. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/connectors.json +0 -0
  702. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/data.json +0 -0
  703. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/decisions.json +0 -0
  704. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/delivery.json +0 -0
  705. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/deps.json +0 -0
  706. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/flow.json +0 -0
  707. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/health.json +0 -0
  708. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/insights.json +0 -0
  709. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/pulse.json +0 -0
  710. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/security.json +0 -0
  711. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/ci_jobs.jsonl +0 -0
  712. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/devlake_project_pr_metrics.jsonl +0 -0
  713. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/devlake_pull_requests.jsonl +0 -0
  714. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/manifest.json +0 -0
  715. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/prs.jsonl +0 -0
  716. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/summary/tests.jsonl +0 -0
  717. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/supply.json +0 -0
  718. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/mobile/vulns.json +0 -0
  719. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/alerts.json +0 -0
  720. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/app.json +0 -0
  721. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/community.json +0 -0
  722. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/connectors.json +0 -0
  723. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/data.json +0 -0
  724. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/decisions.json +0 -0
  725. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/delivery.json +0 -0
  726. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/deps.json +0 -0
  727. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/flow.json +0 -0
  728. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/health.json +0 -0
  729. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/insights.json +0 -0
  730. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/pulse.json +0 -0
  731. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/security.json +0 -0
  732. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/ci_jobs.jsonl +0 -0
  733. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/devlake_project_pr_metrics.jsonl +0 -0
  734. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/devlake_pull_requests.jsonl +0 -0
  735. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/manifest.json +0 -0
  736. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/prs.jsonl +0 -0
  737. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/summary/tests.jsonl +0 -0
  738. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/supply.json +0 -0
  739. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/payments-api/vulns.json +0 -0
  740. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/portal.json +0 -0
  741. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/alerts.json +0 -0
  742. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/app.json +0 -0
  743. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/community.json +0 -0
  744. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/connectors.json +0 -0
  745. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/data.json +0 -0
  746. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/decisions.json +0 -0
  747. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/delivery.json +0 -0
  748. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/deps.json +0 -0
  749. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/flow.json +0 -0
  750. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/health.json +0 -0
  751. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/insights.json +0 -0
  752. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/pulse.json +0 -0
  753. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/security.json +0 -0
  754. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/ci_jobs.jsonl +0 -0
  755. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/devlake_project_pr_metrics.jsonl +0 -0
  756. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/devlake_pull_requests.jsonl +0 -0
  757. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/manifest.json +0 -0
  758. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/prs.jsonl +0 -0
  759. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/summary/tests.jsonl +0 -0
  760. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/supply.json +0 -0
  761. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/demo/web-app/vulns.json +0 -0
  762. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/fonts/plex-mono-400.woff2 +0 -0
  763. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/fonts/plex-sans-400.woff2 +0 -0
  764. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/fonts/plex-sans-600.woff2 +0 -0
  765. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/fonts/plex-sans-condensed-700.woff2 +0 -0
  766. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/about.css +0 -0
  767. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/activity.css +0 -0
  768. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/activity.js +0 -0
  769. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/agents.css +0 -0
  770. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/agents.js +0 -0
  771. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/ci.css +0 -0
  772. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/community.css +0 -0
  773. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/connections.css +0 -0
  774. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/connections.js +0 -0
  775. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/delivery.css +0 -0
  776. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/delivery.js +0 -0
  777. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/deps.css +0 -0
  778. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/explore.css +0 -0
  779. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/explore.js +0 -0
  780. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/health.css +0 -0
  781. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/health.js +0 -0
  782. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/help.css +0 -0
  783. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/insights.css +0 -0
  784. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/insights.js +0 -0
  785. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/investment.css +0 -0
  786. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/investment.js +0 -0
  787. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/overview.css +0 -0
  788. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/overview.js +0 -0
  789. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/portal.css +0 -0
  790. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/prs.css +0 -0
  791. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/prs.js +0 -0
  792. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/settings.css +0 -0
  793. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/settings.js +0 -0
  794. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/setup.css +0 -0
  795. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/standing.css +0 -0
  796. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/pages/standing.js +0 -0
  797. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/app/settings-workflow.json +0 -0
  798. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/index.html +0 -0
  799. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/site/integrations.html +0 -0
  800. {stackvitals-0.1.2 → stackvitals-0.1.4}/src/stackvitals/web/site/setup.html +0 -0
  801. {stackvitals-0.1.2 → stackvitals-0.1.4}/templates/gitlab/stackvitals.yml +0 -0
  802. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/ci_fake.py +0 -0
  803. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/conftest.py +0 -0
  804. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/fixtures/issue_page.json +0 -0
  805. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/fixtures/osv-scan.json +0 -0
  806. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/fixtures/pr_page.json +0 -0
  807. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/fixtures/repo_meta.json +0 -0
  808. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_actions_vulns.py +0 -0
  809. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_adjudicate.py +0 -0
  810. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_adoption_study.py +0 -0
  811. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_agent_leaderboard.py +0 -0
  812. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_agent_ledger.py +0 -0
  813. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_agreement_nudges.py +0 -0
  814. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ai_markers.py +0 -0
  815. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ai_matched.py +0 -0
  816. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ai_outcomes.py +0 -0
  817. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ai_spend.py +0 -0
  818. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_api_cost.py +0 -0
  819. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_app_review.py +0 -0
  820. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_archive_cli.py +0 -0
  821. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_bench.py +0 -0
  822. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_files.py +0 -0
  823. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_guarddog.py +0 -0
  824. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_mcp_messages.py +0 -0
  825. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_requests.py +0 -0
  826. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_sql.py +0 -0
  827. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_uicli.py +0 -0
  828. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_audit_workflows.py +0 -0
  829. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_base_images.py +0 -0
  830. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_began_after.py +0 -0
  831. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bench.py +0 -0
  832. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bench_by_repo.py +0 -0
  833. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bench_deploys.py +0 -0
  834. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bench_report_delivery.py +0 -0
  835. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bench_stars.py +0 -0
  836. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_branch_growth.py +0 -0
  837. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bucket.py +0 -0
  838. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_bug_backlog.py +0 -0
  839. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_capex.py +0 -0
  840. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_catalog_descriptor.py +0 -0
  841. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_change_risk.py +0 -0
  842. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_changes_14d.py +0 -0
  843. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_chat.py +0 -0
  844. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_action.py +0 -0
  845. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_action_pr.py +0 -0
  846. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_already_failing.py +0 -0
  847. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_analyze.py +0 -0
  848. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_analyze_tests.py +0 -0
  849. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_artifacts.py +0 -0
  850. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_automation.py +0 -0
  851. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_began.py +0 -0
  852. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_bench.py +0 -0
  853. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_bench_wiring.py +0 -0
  854. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_burnin.py +0 -0
  855. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_cli.py +0 -0
  856. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_collect.py +0 -0
  857. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_comment_shape.py +0 -0
  858. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_cost.py +0 -0
  859. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_decisions.py +0 -0
  860. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_depth.py +0 -0
  861. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_evidence.py +0 -0
  862. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_feedback.py +0 -0
  863. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_feedback_all.py +0 -0
  864. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_fingerprint.py +0 -0
  865. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_gitlab.py +0 -0
  866. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_groups.py +0 -0
  867. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_impact.py +0 -0
  868. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_issue_lifecycle.py +0 -0
  869. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_kinds.py +0 -0
  870. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_masking.py +0 -0
  871. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_maybe_flaky.py +0 -0
  872. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_mcp.py +0 -0
  873. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_monitors.py +0 -0
  874. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_outside.py +0 -0
  875. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_outside_ci_edit.py +0 -0
  876. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_pr_details.py +0 -0
  877. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_push_evidence.py +0 -0
  878. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_quarantine_mark.py +0 -0
  879. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_report.py +0 -0
  880. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_report_formats.py +0 -0
  881. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_retry.py +0 -0
  882. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_review_fixes.py +0 -0
  883. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_safe_rule.py +0 -0
  884. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_settings.py +0 -0
  885. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_surfaces_m3.py +0 -0
  886. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_test_verdict.py +0 -0
  887. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_testreports.py +0 -0
  888. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_triage.py +0 -0
  889. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_triggers_script.py +0 -0
  890. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_upload.py +0 -0
  891. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_verdict_check.py +0 -0
  892. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_ci_webhook_formats.py +0 -0
  893. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_code_hosts.py +0 -0
  894. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_code_survival.py +0 -0
  895. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_action.py +0 -0
  896. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_affiliation.py +0 -0
  897. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_analyze.py +0 -0
  898. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_bench.py +0 -0
  899. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_cli.py +0 -0
  900. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_collect.py +0 -0
  901. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_context.py +0 -0
  902. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_dependency.py +0 -0
  903. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_discussions.py +0 -0
  904. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_fetch.py +0 -0
  905. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_report.py +0 -0
  906. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_community_stated.py +0 -0
  907. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_config.py +0 -0
  908. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connector_checks.py +0 -0
  909. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connector_framework.py +0 -0
  910. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connector_review.py +0 -0
  911. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connectors.py +0 -0
  912. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connectors_chat.py +0 -0
  913. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connectors_discourse.py +0 -0
  914. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connectors_epics.py +0 -0
  915. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_connectors_writeback.py +0 -0
  916. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_contribute_brief.py +0 -0
  917. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_contribute_prospective.py +0 -0
  918. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_contribute_review.py +0 -0
  919. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_convert.py +0 -0
  920. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_actors.py +0 -0
  921. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_agreements.py +0 -0
  922. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_alerts.py +0 -0
  923. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_appdata.py +0 -0
  924. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_decisions.py +0 -0
  925. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_delivery.py +0 -0
  926. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_delivery_peers.py +0 -0
  927. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_delivery_surfaces.py +0 -0
  928. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_digest.py +0 -0
  929. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_digest_step.py +0 -0
  930. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_explore.py +0 -0
  931. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_export.py +0 -0
  932. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_findings.py +0 -0
  933. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_findings_ledger.py +0 -0
  934. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_insights.py +0 -0
  935. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_insights_surfaces.py +0 -0
  936. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_metrics.py +0 -0
  937. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_model.py +0 -0
  938. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_otel.py +0 -0
  939. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_propose.py +0 -0
  940. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_pulse.py +0 -0
  941. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_recovery.py +0 -0
  942. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_request_wiring.py +0 -0
  943. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_requests.py +0 -0
  944. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_requests_wording.py +0 -0
  945. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_roles_wiring.py +0 -0
  946. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_runner.py +0 -0
  947. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_schema.py +0 -0
  948. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_services.py +0 -0
  949. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_settings.py +0 -0
  950. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_sql_org.py +0 -0
  951. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_stats.py +0 -0
  952. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_store.py +0 -0
  953. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_summary.py +0 -0
  954. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_summary_churn.py +0 -0
  955. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_tomledit.py +0 -0
  956. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_ui.py +0 -0
  957. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_webapp.py +0 -0
  958. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_webapp_version.py +0 -0
  959. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_core_workspace.py +0 -0
  960. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_cost_guard.py +0 -0
  961. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_count_repos.py +0 -0
  962. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_coverage.py +0 -0
  963. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_cli.py +0 -0
  964. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_fetch.py +0 -0
  965. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_outcomes.py +0 -0
  966. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_queries.py +0 -0
  967. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_runner.py +0 -0
  968. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_seed.py +0 -0
  969. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_state.py +0 -0
  970. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_crawl_writer.py +0 -0
  971. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_delivery_bench.py +0 -0
  972. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_delivery_deploy_check.py +0 -0
  973. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_delivery_rules_m2.py +0 -0
  974. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_bumps.py +0 -0
  975. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_crawl.py +0 -0
  976. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_exploits.py +0 -0
  977. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_fixed_versions.py +0 -0
  978. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_ledger.py +0 -0
  979. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_map.py +0 -0
  980. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_osv.py +0 -0
  981. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_owners.py +0 -0
  982. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_top.py +0 -0
  983. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_trend_quiet.py +0 -0
  984. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_trends.py +0 -0
  985. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dep_watch.py +0 -0
  986. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deploy_attempts.py +0 -0
  987. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deploy_ranges.py +0 -0
  988. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deployment_history.py +0 -0
  989. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deployment_list.py +0 -0
  990. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_action.py +0 -0
  991. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_cli.py +0 -0
  992. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_dossier.py +0 -0
  993. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_hygiene.py +0 -0
  994. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_imports.py +0 -0
  995. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_lookalike.py +0 -0
  996. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_paths.py +0 -0
  997. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_policy.py +0 -0
  998. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_reach.py +0 -0
  999. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_release.py +0 -0
  1000. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_review_fixes.py +0 -0
  1001. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_runtimes.py +0 -0
  1002. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_deps_vulns.py +0 -0
  1003. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_devlake_cicd.py +0 -0
  1004. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dora_evidence.py +0 -0
  1005. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dora_proof.py +0 -0
  1006. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dora_rows.py +0 -0
  1007. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_dora_weeks.py +0 -0
  1008. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_editor_marks.py +0 -0
  1009. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_enterprise_server.py +0 -0
  1010. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_events.py +0 -0
  1011. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_explain_cli.py +0 -0
  1012. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_fair.py +0 -0
  1013. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_fixplan.py +0 -0
  1014. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flake_code_kinds.py +0 -0
  1015. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flaky_natural.py +0 -0
  1016. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flaky_sample.py +0 -0
  1017. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flaky_score_fair.py +0 -0
  1018. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flaky_test_cost.py +0 -0
  1019. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flaky_tickets.py +0 -0
  1020. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_analyze.py +0 -0
  1021. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_automate.py +0 -0
  1022. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_bench_pipeline.py +0 -0
  1023. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_collect.py +0 -0
  1024. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_collect_delivery.py +0 -0
  1025. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_definitions.py +0 -0
  1026. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_m2.py +0 -0
  1027. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_peers.py +0 -0
  1028. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_preflight.py +0 -0
  1029. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_report.py +0 -0
  1030. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_round2.py +0 -0
  1031. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_round3.py +0 -0
  1032. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_triage.py +0 -0
  1033. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_windows.py +0 -0
  1034. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_flow_wiring.py +0 -0
  1035. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_fork_reports.py +0 -0
  1036. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_gitlab_action.py +0 -0
  1037. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_gitlab_delivery.py +0 -0
  1038. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_graphql.py +0 -0
  1039. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_health.py +0 -0
  1040. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_identities.py +0 -0
  1041. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_identity.py +0 -0
  1042. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_identity_everywhere.py +0 -0
  1043. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_identity_match.py +0 -0
  1044. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_init_cli.py +0 -0
  1045. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_insights_chains.py +0 -0
  1046. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_investment.py +0 -0
  1047. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_jira_fields.py +0 -0
  1048. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_knowledge_names.py +0 -0
  1049. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_labeller.py +0 -0
  1050. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_llms_txt.py +0 -0
  1051. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_local_run.py +0 -0
  1052. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_m1_small_fixes.py +0 -0
  1053. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_masking_card.py +0 -0
  1054. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_mcp_core.py +0 -0
  1055. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_mcp_provenance.py +0 -0
  1056. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_merge_queue.py +0 -0
  1057. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_mergescout_token.py +0 -0
  1058. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_modular_install.py +0 -0
  1059. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_nulls_power.py +0 -0
  1060. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_numbers_review.py +0 -0
  1061. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_odds_backtest.py +0 -0
  1062. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_outside_fresh.py +0 -0
  1063. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_owners.py +0 -0
  1064. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pagers_copilot.py +0 -0
  1065. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pages_deploy.py +0 -0
  1066. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_parsing_review.py +0 -0
  1067. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_peer_fit.py +0 -0
  1068. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_polish_m1.py +0 -0
  1069. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_polish_m2.py +0 -0
  1070. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_polish_review.py +0 -0
  1071. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_app_facts.py +0 -0
  1072. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_campaigns.py +0 -0
  1073. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_catalog.py +0 -0
  1074. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_checks.py +0 -0
  1075. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_export.py +0 -0
  1076. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_golden.py +0 -0
  1077. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_handcheck.py +0 -0
  1078. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_history.py +0 -0
  1079. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_html.py +0 -0
  1080. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_m1.py +0 -0
  1081. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_nudges.py +0 -0
  1082. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_reviews.py +0 -0
  1083. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_rollup.py +0 -0
  1084. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_portal_scorecard.py +0 -0
  1085. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pr_exclusions.py +0 -0
  1086. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pr_licences.py +0 -0
  1087. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pr_rules.py +0 -0
  1088. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_prelaunch.py +0 -0
  1089. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_production_branches.py +0 -0
  1090. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_project_dora.py +0 -0
  1091. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_pulse_trend.py +0 -0
  1092. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_quarantine_expiry.py +0 -0
  1093. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_quarantine_runners.py +0 -0
  1094. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_quarantine_runtime.py +0 -0
  1095. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_recorded.py +0 -0
  1096. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_relay_and_polish.py +0 -0
  1097. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_release_quality.py +0 -0
  1098. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_releases.py +0 -0
  1099. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_releases_ratelimit.py +0 -0
  1100. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_report.py +0 -0
  1101. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_report_validate.py +0 -0
  1102. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_response_times.py +0 -0
  1103. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_result_quality.py +0 -0
  1104. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_resync.py +0 -0
  1105. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_review_fixes.py +0 -0
  1106. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_review_fixes_action.py +0 -0
  1107. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_review_fixes_p3.py +0 -0
  1108. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_review_fixes_requests.py +0 -0
  1109. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_review_m3.py +0 -0
  1110. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_sample.py +0 -0
  1111. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_schema_sections.py +0 -0
  1112. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_scorecard_agreement.py +0 -0
  1113. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_security_checks.py +0 -0
  1114. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_selfheal.py +0 -0
  1115. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_services.py +0 -0
  1116. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_setup_check.py +0 -0
  1117. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_setup_template.py +0 -0
  1118. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_shared_bench.py +0 -0
  1119. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_shell_app_link.py +0 -0
  1120. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_shrinkage_groups.py +0 -0
  1121. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_check.py +0 -0
  1122. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_cli.py +0 -0
  1123. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_identity.py +0 -0
  1124. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_issues.py +0 -0
  1125. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_labels.py +0 -0
  1126. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_repo_stats.py +0 -0
  1127. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_signals_walls.py +0 -0
  1128. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_snapshot_build.py +0 -0
  1129. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_snapshot_publish.py +0 -0
  1130. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_sonar.py +0 -0
  1131. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_state_report.py +0 -0
  1132. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_store.py +0 -0
  1133. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_store_cli.py +0 -0
  1134. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_stream.py +0 -0
  1135. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_suite_packaging.py +0 -0
  1136. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_supply.py +0 -0
  1137. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_sweep.py +0 -0
  1138. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_team_dora.py +0 -0
  1139. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_test_variants.py +0 -0
  1140. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_action_pack.py +0 -0
  1141. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_live.py +0 -0
  1142. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_queries.py +0 -0
  1143. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_server.py +0 -0
  1144. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_speed.py +0 -0
  1145. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_store.py +0 -0
  1146. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tool_tracking.py +0 -0
  1147. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_tracker.py +0 -0
  1148. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_triage_math.py +0 -0
  1149. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_triage_pipeline.py +0 -0
  1150. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_uncertainty.py +0 -0
  1151. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_verdict_feedback.py +0 -0
  1152. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_verdict_strict.py +0 -0
  1153. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_vulns_dev_only.py +0 -0
  1154. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_vulns_ignores.py +0 -0
  1155. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_vulns_inputs.py +0 -0
  1156. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_web_build.py +0 -0
  1157. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_web_next_setup.py +0 -0
  1158. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_web_replay_parity.py +0 -0
  1159. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_what_changed.py +0 -0
  1160. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/local/test_work_calendar.py +0 -0
  1161. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/signals_data.py +0 -0
  1162. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_accuracy.py +0 -0
  1163. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_bench.py +0 -0
  1164. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_ci.py +0 -0
  1165. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_community.py +0 -0
  1166. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_connectors.py +0 -0
  1167. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_contribute.py +0 -0
  1168. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_core.py +0 -0
  1169. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_crawl.py +0 -0
  1170. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_decisions.py +0 -0
  1171. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_delivery.py +0 -0
  1172. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_deps.py +0 -0
  1173. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_discover.py +0 -0
  1174. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_github.py +0 -0
  1175. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_insights.py +0 -0
  1176. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_portal.py +0 -0
  1177. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_signals.py +0 -0
  1178. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_snapshot.py +0 -0
  1179. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_store.py +0 -0
  1180. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_surfaces.py +0 -0
  1181. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_team.py +0 -0
  1182. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_tool.py +0 -0
  1183. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/test_flow_web.py +0 -0
  1184. {stackvitals-0.1.2 → stackvitals-0.1.4}/tests/tool_data.py +0 -0
  1185. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/brand/cube-128.png +0 -0
  1186. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/brand/cube-256.png +0 -0
  1187. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/brand/cube-64.png +0 -0
  1188. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/build.mjs +0 -0
  1189. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/extra-ci.mjs +0 -0
  1190. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/extra-delivery.mjs +0 -0
  1191. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/extra-deps.mjs +0 -0
  1192. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/extra-people.mjs +0 -0
  1193. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/extra-portal.mjs +0 -0
  1194. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/demo/source.mjs +0 -0
  1195. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/defaults.spec.ts +0 -0
  1196. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/fixtures.ts +0 -0
  1197. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/flows.spec.ts +0 -0
  1198. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/links.spec.ts +0 -0
  1199. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/playwright.config.ts +0 -0
  1200. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/serve.mjs +0 -0
  1201. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/sweep.spec.ts +0 -0
  1202. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/e2e/welcome.spec.ts +0 -0
  1203. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/index.html +0 -0
  1204. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/package-lock.json +0 -0
  1205. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/package.json +0 -0
  1206. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/scripts/docs.mjs +0 -0
  1207. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/AddRepo.tsx +0 -0
  1208. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/Profile.tsx +0 -0
  1209. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/jump.ts +0 -0
  1210. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/router.ts +0 -0
  1211. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/app/routes.ts +0 -0
  1212. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/boot.ts +0 -0
  1213. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/brand/Logo.tsx +0 -0
  1214. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/charts/BarChart.tsx +0 -0
  1215. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/charts/MetricHero.tsx +0 -0
  1216. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/charts/ScrubChart.tsx +0 -0
  1217. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/charts/Sparkline.tsx +0 -0
  1218. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/charts/metric.ts +0 -0
  1219. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/files.ts +0 -0
  1220. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/format.ts +0 -0
  1221. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/repos.ts +0 -0
  1222. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/requestIssue.ts +0 -0
  1223. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/source.ts +0 -0
  1224. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/store.ts +0 -0
  1225. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/theme.ts +0 -0
  1226. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/types.ts +0 -0
  1227. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/data/write.ts +0 -0
  1228. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/Decide.tsx +0 -0
  1229. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/Evidence.tsx +0 -0
  1230. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/Health.tsx +0 -0
  1231. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/SetupRunning.tsx +0 -0
  1232. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/agents-data.ts +0 -0
  1233. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/brand-logos.ts +0 -0
  1234. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/connect.css +0 -0
  1235. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/connect.tsx +0 -0
  1236. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/connectRepos.tsx +0 -0
  1237. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/connections-data.ts +0 -0
  1238. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/connstatus.ts +0 -0
  1239. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/helpLink.ts +0 -0
  1240. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/markdown.ts +0 -0
  1241. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/sealbox.ts +0 -0
  1242. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/sealedbox.d.ts +0 -0
  1243. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/secrets.ts +0 -0
  1244. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsApply.ts +0 -0
  1245. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsModel.ts +0 -0
  1246. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsPending.ts +0 -0
  1247. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsReplay.ts +0 -0
  1248. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsReview.tsx +0 -0
  1249. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/settingsToml.ts +0 -0
  1250. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/text-css.d.ts +0 -0
  1251. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/features/vitals.ts +0 -0
  1252. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/caps.ts +0 -0
  1253. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/client.ts +0 -0
  1254. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/config.ts +0 -0
  1255. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/detect.ts +0 -0
  1256. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/diff.ts +0 -0
  1257. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/links.ts +0 -0
  1258. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/mine.ts +0 -0
  1259. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/names.ts +0 -0
  1260. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/oauth.ts +0 -0
  1261. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/open.ts +0 -0
  1262. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/session.ts +0 -0
  1263. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/setup.ts +0 -0
  1264. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/signout.ts +0 -0
  1265. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/token.ts +0 -0
  1266. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/github/watch.ts +0 -0
  1267. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/main.tsx +0 -0
  1268. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/about/parts.tsx +0 -0
  1269. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/about-accuracy.d.ts +0 -0
  1270. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/about.css +0 -0
  1271. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/accuracy-data.js +0 -0
  1272. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/activity.css +0 -0
  1273. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/activity.tsx +0 -0
  1274. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/agents/parts.tsx +0 -0
  1275. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/agents.css +0 -0
  1276. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/agents.tsx +0 -0
  1277. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci/more.tsx +0 -0
  1278. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci/parts.tsx +0 -0
  1279. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci/setup.tsx +0 -0
  1280. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci/workflowgen.ts +0 -0
  1281. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci.css +0 -0
  1282. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/ci.tsx +0 -0
  1283. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/community/command.ts +0 -0
  1284. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/community/report.tsx +0 -0
  1285. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/community.css +0 -0
  1286. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/connections.css +0 -0
  1287. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/connections.tsx +0 -0
  1288. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery/blocks.css +0 -0
  1289. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery/blocks.tsx +0 -0
  1290. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery/more.tsx +0 -0
  1291. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery/sources.tsx +0 -0
  1292. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery.css +0 -0
  1293. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/delivery.tsx +0 -0
  1294. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/blocks.css +0 -0
  1295. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/blocks.tsx +0 -0
  1296. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/lookup.ts +0 -0
  1297. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/scanning.ts +0 -0
  1298. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/security.tsx +0 -0
  1299. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps/tools.tsx +0 -0
  1300. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps.css +0 -0
  1301. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/deps.tsx +0 -0
  1302. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/explore/parts.tsx +0 -0
  1303. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/explore/query.ts +0 -0
  1304. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/explore.css +0 -0
  1305. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/explore.tsx +0 -0
  1306. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/health.css +0 -0
  1307. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/health.tsx +0 -0
  1308. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/help.css +0 -0
  1309. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/help.tsx +0 -0
  1310. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/insights/parts.tsx +0 -0
  1311. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/insights.css +0 -0
  1312. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/insights.tsx +0 -0
  1313. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/investment.css +0 -0
  1314. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/investment.tsx +0 -0
  1315. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/overview/parts.tsx +0 -0
  1316. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/overview.css +0 -0
  1317. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/overview.tsx +0 -0
  1318. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/access.ts +0 -0
  1319. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/panel.css +0 -0
  1320. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/panel.tsx +0 -0
  1321. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/parts.tsx +0 -0
  1322. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/setup.ts +0 -0
  1323. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal/tools.tsx +0 -0
  1324. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal.css +0 -0
  1325. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/portal.tsx +0 -0
  1326. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/prs/more.tsx +0 -0
  1327. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/prs/parts.tsx +0 -0
  1328. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/prs/preflight.ts +0 -0
  1329. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/prs.css +0 -0
  1330. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/prs.tsx +0 -0
  1331. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/settings.css +0 -0
  1332. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/settings.tsx +0 -0
  1333. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/setup.css +0 -0
  1334. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/standing.css +0 -0
  1335. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/standing.tsx +0 -0
  1336. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/welcome-sheet.css +0 -0
  1337. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/welcome-sheet.tsx +0 -0
  1338. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/pages/welcome.tsx +0 -0
  1339. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/base.css +0 -0
  1340. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/charts.css +0 -0
  1341. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/components.css +0 -0
  1342. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/index.css +0 -0
  1343. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/styles/tokens.css +0 -0
  1344. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Button.tsx +0 -0
  1345. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Page.tsx +0 -0
  1346. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Popover.tsx +0 -0
  1347. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Portal.tsx +0 -0
  1348. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Sheet.tsx +0 -0
  1349. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/Table.tsx +0 -0
  1350. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/bits.tsx +0 -0
  1351. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/controls.tsx +0 -0
  1352. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/icons.tsx +0 -0
  1353. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/motion.ts +0 -0
  1354. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/src/ui/prefill.tsx +0 -0
  1355. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/ciworkflow.test.ts +0 -0
  1356. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/client.test.ts +0 -0
  1357. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/connstatus.test.ts +0 -0
  1358. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/depstools.test.ts +0 -0
  1359. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/explorequery.test.ts +0 -0
  1360. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/fake.ts +0 -0
  1361. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/links.test.ts +0 -0
  1362. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/load.mjs +0 -0
  1363. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/markdown.test.ts +0 -0
  1364. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/portalsetup.test.ts +0 -0
  1365. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/preflight.test.ts +0 -0
  1366. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/run.mjs +0 -0
  1367. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/safety.test.ts +0 -0
  1368. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/secrets.test.ts +0 -0
  1369. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/settings.test.ts +0 -0
  1370. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/test/setup.test.ts +0 -0
  1371. {stackvitals-0.1.2 → stackvitals-0.1.4}/web/tsconfig.json +0 -0
  1372. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/README.md +0 -0
  1373. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/package.json +0 -0
  1374. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/relay/README.md +0 -0
  1375. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/relay/package.json +0 -0
  1376. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/relay/src/index.js +0 -0
  1377. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/relay/test/index.test.mjs +0 -0
  1378. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/relay/wrangler.toml +0 -0
  1379. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/src/index.js +0 -0
  1380. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/test/index.test.mjs +0 -0
  1381. {stackvitals-0.1.2 → stackvitals-0.1.4}/worker/wrangler.toml +0 -0
@@ -0,0 +1,56 @@
1
+ name: Bug report
2
+ description: Something in StackVitals is wrong or broken
3
+ labels: ["bug"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for reporting. A wrong verdict or number is a bug too, and the most useful kind.
9
+ For a security problem, don't open an issue: use the **Security** tab's private reporting instead.
10
+ - type: textarea
11
+ id: what
12
+ attributes:
13
+ label: What happened
14
+ description: What you did, what you expected, and what happened instead.
15
+ validations:
16
+ required: true
17
+ - type: dropdown
18
+ id: where
19
+ attributes:
20
+ label: Where
21
+ options:
22
+ - The Action (workflow run, PR comment, verdict check)
23
+ - The web app (dashboard)
24
+ - The command line (stackvitals ...)
25
+ - The MCP server (an AI agent)
26
+ - Setup (stackvitals init or the app's Setup page)
27
+ - The docs
28
+ validations:
29
+ required: true
30
+ - type: input
31
+ id: version
32
+ attributes:
33
+ label: StackVitals version
34
+ description: "`pip show stackvitals` shows it. For the Action, say if you use `@v0` or a pinned tag."
35
+ placeholder: "0.1.4"
36
+ validations:
37
+ required: true
38
+ - type: dropdown
39
+ id: visibility
40
+ attributes:
41
+ label: Repo
42
+ options:
43
+ - Public
44
+ - Private
45
+ - Not about a repo
46
+ - type: input
47
+ id: link
48
+ attributes:
49
+ label: A link we can look at
50
+ description: The workflow run, pull request or app page, if the repo is public. Leave out anything private.
51
+ - type: textarea
52
+ id: logs
53
+ attributes:
54
+ label: Job summary or error output
55
+ description: Paste the relevant part. Remove tokens, private names and anything you don't want public.
56
+ render: text
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Ask a question
4
+ url: https://github.com/stackvitals/stackvitals/discussions/categories/q-a
5
+ about: How to set something up or read a number. Discussions are the best place for questions.
6
+ - name: Report a security problem
7
+ url: https://github.com/stackvitals/stackvitals/security/advisories/new
8
+ about: Privately, through GitHub's reporting form. Please don't open a public issue.
@@ -0,0 +1,39 @@
1
+ name: Feature request
2
+ description: Something StackVitals should do, or do differently
3
+ labels: ["enhancement"]
4
+ body:
5
+ - type: textarea
6
+ id: problem
7
+ attributes:
8
+ label: The problem
9
+ description: What you're trying to find out or get done, and what makes it hard today.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: idea
14
+ attributes:
15
+ label: What would help
16
+ description: What you'd like StackVitals to show or do. A rough idea is fine.
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: module
21
+ attributes:
22
+ label: Area
23
+ options:
24
+ - CI Health
25
+ - Team Flow and Pull Requests
26
+ - Delivery and DORA
27
+ - Insights
28
+ - Dependencies
29
+ - Community
30
+ - Portal
31
+ - The web app
32
+ - The command line or MCP server
33
+ - Setup and integrations
34
+ - Something else
35
+ - type: textarea
36
+ id: else
37
+ attributes:
38
+ label: Anything else
39
+ description: Tools you use for this today, links, or examples.
@@ -0,0 +1,15 @@
1
+ ## What this changes
2
+
3
+ <!-- What changes for someone using StackVitals, in a sentence or two. Link the issue if there is one. -->
4
+
5
+ ## How it was checked
6
+
7
+ - [ ] Tests pass: `uv run --extra dev pytest tests -q`
8
+ - [ ] If the web app changed: `cd web && npm run build && npm test`, and the rebuilt `src/stackvitals/web/` is committed
9
+ - [ ] If a rule behind a verdict or number changed: its entry in `bench/accuracy/registry.json` and the regenerated
10
+ docs (`python bench/accuracy/summary.py`)
11
+ - [ ] If it reaches a new host or needs a new permission: said so below
12
+
13
+ ## Anything reviewers should know
14
+
15
+ <!-- Trade-offs, follow-ups, or what you weren't sure about. -->
@@ -0,0 +1,44 @@
1
+ name: Demo site
2
+ # Publishes the landing page and the app's example-data demo to GitHub Pages. The site is static and demo-only: its
3
+ # pages may fetch nothing but their own files, so there is no API or backend behind it to call or overload.
4
+ on:
5
+ release:
6
+ types: [published]
7
+ push:
8
+ branches: [main]
9
+ paths: ["src/stackvitals/web/**", "src/stackvitals/site.py"]
10
+ workflow_dispatch:
11
+ permissions: {}
12
+ concurrency:
13
+ group: pages
14
+ cancel-in-progress: false
15
+ jobs:
16
+ build:
17
+ if: github.repository == 'stackvitals/stackvitals'
18
+ runs-on: ubuntu-latest
19
+ timeout-minutes: 10
20
+ permissions:
21
+ contents: read
22
+ steps:
23
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
24
+ with:
25
+ persist-credentials: false
26
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
27
+ - name: Build the demo-only site
28
+ run: uv run --no-dev stackvitals site build --out _site --demo-only
29
+ - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
30
+ with:
31
+ path: _site
32
+ deploy:
33
+ needs: build
34
+ runs-on: ubuntu-latest
35
+ timeout-minutes: 10
36
+ permissions:
37
+ pages: write
38
+ id-token: write # Pages checks the deployment with GitHub's OIDC token
39
+ environment:
40
+ name: github-pages
41
+ url: ${{ steps.deployment.outputs.page_url }}
42
+ steps:
43
+ - id: deployment
44
+ uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.4 (2026-10-31)
4
+
5
+ - PR verdicts catch more failures a change causes (from user feedback):
6
+ - a failure whose flakes in the last 30 days all came from this same pull request reads **New**, not likely flaky: a
7
+ race the change added fails now and then and passes on a re-run;
8
+ - a likely flake that fails on this pull request far more often than on the default branch (2 or more failures, under
9
+ a 5% chance at main's rate) reads **New**: the change made it worse;
10
+ - a likely flake shows its failure rate on the default branch; a first flaky-looking failure of a check that passed
11
+ every recent default-branch run says so;
12
+ - when a failure blamed on the change, or one of those checks, passes on a re-run of the same commit, the comment
13
+ says a green re-run doesn't clear it, instead of "CI is passing now".
14
+ These rules are new and not yet measured on labelled failures; [rules.md](docs/rules.md) says so.
15
+ - A public demo site, https://stackvitals.github.io/stackvitals/, built with `stackvitals site build --demo-only`: it
16
+ fetches nothing outside itself, and its setup links point at the README. The landing page uses the app's font.
17
+ - `glama.json`, so the Glama listing of the MCP server is maintained by the project.
18
+
19
+ ## 0.1.3 (2026-10-31)
20
+
21
+ - The app's About page and the project site say Apache 2.0 (they said MIT); the site shows the cube logo and the
22
+ one-command setup.
23
+ - The app's Setup page and Help give `stackvitals init owner/repo` as the terminal way to set a repo up.
24
+ - PyPI lists the project's links (home, docs, source, issues, changelog).
25
+ - Docs: the install page says how to get the command; guides, quickstart and modules lead with `stackvitals init`;
26
+ contradictions fixed (golden paths, GitLab, GitHub Enterprise Server, sign-in, private repos' CI runs, cycle-time
27
+ phases); the PR verdicts are a table; the settings page says which switches are on by default; the architecture
28
+ diagrams list every trigger and show Portal running from the org's repo; a release checklist with the real steps.
29
+ - A code of conduct (Contributor Covenant 2.1), with reports through the repository's private reporting form.
30
+
3
31
  ## 0.1.2 (2026-10-31)
4
32
 
5
33
  - `stackvitals init owner/repo` sets StackVitals up in one command: commits the workflow (or opens a pull request), follows
@@ -0,0 +1,113 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience
6
+ for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender
7
+ identity and expression, level of experience, education, socio-economic status, nationality, personal appearance,
8
+ race, caste, color, religion, or sexual identity and orientation.
9
+
10
+ We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy
11
+ community.
12
+
13
+ ## Our Standards
14
+
15
+ Examples of behavior that contributes to a positive environment for our community include:
16
+
17
+ * Demonstrating empathy and kindness toward other people
18
+ * Being respectful of differing opinions, viewpoints, and experiences
19
+ * Giving and gracefully accepting constructive feedback
20
+ * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
21
+ * Focusing on what is best not just for us as individuals, but for the overall community
22
+
23
+ Examples of unacceptable behavior include:
24
+
25
+ * The use of sexualized language or imagery, and sexual attention or advances of any kind
26
+ * Trolling, insulting or derogatory comments, and personal or political attacks
27
+ * Public or private harassment
28
+ * Publishing others' private information, such as a physical or email address, without their explicit permission
29
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
30
+
31
+ ## Enforcement Responsibilities
32
+
33
+ Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
34
+ appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening,
35
+ offensive, or harmful.
36
+
37
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
38
+ issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for
39
+ moderation decisions when appropriate.
40
+
41
+ ## Scope
42
+
43
+ This Code of Conduct applies within all community spaces, and also applies when an individual is officially
44
+ representing the community in public spaces. Examples of representing our community include using an official e-mail
45
+ address, posting via an official social media account, or acting as an appointed representative at an online or
46
+ offline event.
47
+
48
+ ## Enforcement
49
+
50
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders
51
+ responsible for enforcement privately, through GitHub's private reporting form for this repository: open the
52
+ **Security** tab of [stackvitals/stackvitals](https://github.com/stackvitals/stackvitals/security), choose **Report a
53
+ vulnerability**, and start the title with "Conduct:". Only the maintainers can read it. You can also use GitHub's
54
+ [Report content](https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam)
55
+ on any comment, issue or pull request. All complaints will be reviewed and investigated promptly and fairly.
56
+
57
+ All community leaders are obligated to respect the privacy and security of the reporter of any incident.
58
+
59
+ ## Enforcement Guidelines
60
+
61
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they
62
+ deem in violation of this Code of Conduct:
63
+
64
+ ### 1. Correction
65
+
66
+ **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the
67
+ community.
68
+
69
+ **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the
70
+ violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
71
+
72
+ ### 2. Warning
73
+
74
+ **Community Impact**: A violation through a single incident or series of actions.
75
+
76
+ **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved,
77
+ including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This
78
+ includes avoiding interactions in community spaces as well as external channels like social media. Violating these
79
+ terms may lead to a temporary or permanent ban.
80
+
81
+ ### 3. Temporary Ban
82
+
83
+ **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
84
+
85
+ **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a
86
+ specified period of time. No public or private interaction with the people involved, including unsolicited
87
+ interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to
88
+ a permanent ban.
89
+
90
+ ### 4. Permanent Ban
91
+
92
+ **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate
93
+ behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
94
+
95
+ **Consequence**: A permanent ban from any sort of public interaction within the community.
96
+
97
+ ## Attribution
98
+
99
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at
100
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
101
+
102
+ Community Impact Guidelines were inspired by
103
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
104
+
105
+ For answers to common questions about this code of conduct, see the FAQ at
106
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
107
+ [https://www.contributor-covenant.org/translations][translations].
108
+
109
+ [homepage]: https://www.contributor-covenant.org
110
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
111
+ [Mozilla CoC]: https://github.com/mozilla/diversity
112
+ [FAQ]: https://www.contributor-covenant.org/faq
113
+ [translations]: https://www.contributor-covenant.org/translations
@@ -1,7 +1,7 @@
1
1
  # Contributing
2
2
 
3
3
  Thanks for helping. StackVitals is small enough that one person can read any part of it in an afternoon; please
4
- keep it that way.
4
+ keep it that way. Everyone taking part follows the [Code of Conduct](CODE_OF_CONDUCT.md).
5
5
 
6
6
  ## Set up
7
7
 
@@ -15,9 +15,23 @@ uv run --extra dev pytest tests -q
15
15
 
16
16
  The tests need no token and no network. [docs/architecture.md](docs/architecture.md) explains how the parts fit.
17
17
 
18
+ **The web app** is TypeScript in `web/`, built into `src/stackvitals/web/app/`, and the built files are committed
19
+ (they ship in the package). After changing it:
20
+
21
+ ```
22
+ cd web
23
+ npm ci
24
+ npm run build
25
+ npm test
26
+ ```
27
+
28
+ Commit `web/` and the rebuilt `src/stackvitals/web/` together; a test fails when the build is out of date.
29
+ [web/README.md](web/README.md) explains its layout and the browser tests (`npm run e2e`).
30
+
18
31
  ## What a good change looks like
19
32
 
20
- - **A bug:** a failing test first, in the `tests/test_flow_<area>.py` file for that area, then the fix.
33
+ - **A bug:** a failing test first, then the fix. Task-sized tests go in `tests/local/`; a test that guards a real
34
+ bug or finding for a whole flow goes in the `tests/test_flow_<area>.py` file for that area.
21
35
  - **A new rule or a changed one** (anything that decides a verdict or a number people see): add or update its entry in
22
36
  [bench/accuracy/registry.json](bench/accuracy/registry.json) with what it was tuned on, what it was checked on and
23
37
  the bar, check it on public data the rule never saw, then run `python bench/accuracy/summary.py` to regenerate
@@ -34,7 +48,7 @@ The tests need no token and no network. [docs/architecture.md](docs/architecture
34
48
  - Code reads like the code around it. Comments are short, plain and say why, not what.
35
49
  - Copy people see is plain English: what happened, how many, since when, and what to do. No unexplained jargon, and
36
50
  never a number without its sample size.
37
- - Tests are few and test whole flows; each one says what real bug or finding it guards.
51
+ - Each test says what real bug or finding it guards; the `tests/test_flow_*.py` files stay few and test whole flows.
38
52
 
39
53
  ## Pull requests
40
54
 
@@ -1,7 +1,12 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stackvitals
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Free, open-source developer suite: CI health, team flow, dependencies, community, and MergeScout for contributors.
5
+ Project-URL: Homepage, https://github.com/stackvitals/stackvitals
6
+ Project-URL: Documentation, https://github.com/stackvitals/stackvitals/tree/main/docs
7
+ Project-URL: Repository, https://github.com/stackvitals/stackvitals
8
+ Project-URL: Issues, https://github.com/stackvitals/stackvitals/issues
9
+ Project-URL: Changelog, https://github.com/stackvitals/stackvitals/blob/main/CHANGELOG.md
5
10
  License-Expression: Apache-2.0
6
11
  License-File: LICENSE
7
12
  License-File: NOTICE
@@ -237,4 +242,4 @@ model families (Claude and Gemini); no person has audited the labels.
237
242
  - **Before you rely on it:** [what each rule does](docs/rules.md), [known limitations](docs/limitations.md),
238
243
  [what leaves your repo](docs/privacy.md), [threat model](docs/threat-model.md), [enterprise controls](docs/enterprise.md).
239
244
  - **More:** [FAQ](docs/faq.md), [how it works](docs/architecture.md), [roadmap](docs/roadmap.md),
240
- [contributing](CONTRIBUTING.md), [governance](GOVERNANCE.md), [security](SECURITY.md).
245
+ [contributing](CONTRIBUTING.md), [code of conduct](CODE_OF_CONDUCT.md), [governance](GOVERNANCE.md), [security](SECURITY.md).
@@ -195,4 +195,4 @@ model families (Claude and Gemini); no person has audited the labels.
195
195
  - **Before you rely on it:** [what each rule does](docs/rules.md), [known limitations](docs/limitations.md),
196
196
  [what leaves your repo](docs/privacy.md), [threat model](docs/threat-model.md), [enterprise controls](docs/enterprise.md).
197
197
  - **More:** [FAQ](docs/faq.md), [how it works](docs/architecture.md), [roadmap](docs/roadmap.md),
198
- [contributing](CONTRIBUTING.md), [governance](GOVERNANCE.md), [security](SECURITY.md).
198
+ [contributing](CONTRIBUTING.md), [code of conduct](CODE_OF_CONDUCT.md), [governance](GOVERNANCE.md), [security](SECURITY.md).
@@ -46,15 +46,15 @@
46
46
  },
47
47
  {
48
48
  "date": "2026-10-23",
49
- "from": "known flaky passes the verdict check",
49
+ "from": "a known flake passed the verdict check",
50
50
  "why": "13 of 81 held-out safe calls were the change's own failure; matching past flakes' errors didn't separate them",
51
51
  "effect": "known flaky still reads 'likely a flake, re-run it', but the verdict check passes only once CI is green"
52
52
  },
53
53
  {
54
54
  "date": "2026-10-23",
55
- "from": "known flaky: likely a flake, re-run it",
55
+ "from": "a known flake read 'likely a flake, re-run it'",
56
56
  "why": "in the agent head-to-head a smaller model trusted it on 2 failures the change caused",
57
- "effect": "now asks to check the error isn't from the change before re-running; those 2 were then answered right"
57
+ "effect": "it asks to check the error isn't from the change before re-running; those 2 were then answered right"
58
58
  },
59
59
  {
60
60
  "date": "2026-10-28",
@@ -140,6 +140,34 @@
140
140
  "strength": "early observation",
141
141
  "strength_why": "2 held-out matches in 150 failures"
142
142
  },
143
+ {
144
+ "id": "flaky.only_this_pr",
145
+ "card": "flaky",
146
+ "version": 1,
147
+ "rule": "A failure that would read likely flaky, flaked before or maybe flaky, whose flakes in the last 30 days all came from this same pull request (none on the default branch or other pull requests), reads new: a race or order dependence the change added fails now and then and passes on a re-run.",
148
+ "tuned_on": "none: a public suggestion (2026-10-31) with the failure it describes written as tests",
149
+ "held_out": "not yet replayed on the labelled pull-request failures",
150
+ "pass_bar": "none set yet; it only moves a call toward the change and never excuses a failure",
151
+ "bar_set": "2026-10-31",
152
+ "result": "untested on labels: the replay needs the held-out reads again",
153
+ "revisions": [],
154
+ "strength": "early observation",
155
+ "strength_why": "not yet measured on labelled failures"
156
+ },
157
+ {
158
+ "id": "flaky.worse_on_pr",
159
+ "card": "flaky",
160
+ "version": 1,
161
+ "rule": "A likely flake that failed 2 or more times on this pull request's runs, where that many failures would come from its default-branch rate (smoothed by one failure and one pass, over 10 or more runs) less than 5% of the time, reads new: the change made a flaky check fail more often.",
162
+ "tuned_on": "none: a public suggestion (2026-10-31) with the failure it describes written as tests",
163
+ "held_out": "not yet measured; the plan is regressions seeded into repos of the stackvitals organisation",
164
+ "pass_bar": "none set yet; it only moves a call toward the change and never excuses a failure",
165
+ "bar_set": "2026-10-31",
166
+ "result": "untested on labels",
167
+ "revisions": [],
168
+ "strength": "early observation",
169
+ "strength_why": "not yet measured on seeded or labelled failures"
170
+ },
143
171
  {
144
172
  "id": "flaky.pr_details",
145
173
  "card": "flaky",
@@ -312,8 +312,8 @@ def _doc(cs: list[dict], r: dict) -> str:
312
312
  f"- Each adjudicator mostly sided with its own family: Claude's {r['cross']['claude_adjudicator_sided_with_claude']} times, "
313
313
  f"Gemini's {r['cross']['gemini_adjudicator_sided_with_gemini']} times.",
314
314
  "- So each card shows its headline on each labeller's labels as well as the adjudicated ones.",
315
- "- A check by six models from three families (OpenAI gpt-5.4-mini and gpt-5-mini, Google gemini-3.8-flash and "
316
- "gemini-3.5-flash, Anthropic Claude Sonnet and Haiku), each answering alone the same plain-language questions on "
315
+ "- A second check: six models from three families (OpenAI gpt-5.4-mini and gpt-5-mini, Google gemini-3.8-flash and "
316
+ "gemini-3.5-flash, Anthropic Claude Sonnet and Haiku) each answered the same plain-language questions alone, on "
317
317
  f"{r['panel6']['items']} labelled items (the CI and reply items drawn first from those the first two labellers "
318
318
  "disagreed on). Where a majority formed, it matched the labels on CI causes "
319
319
  f"{panel('ci')}, the release behind a bug {panel('incident')}, how releases reach users {panel('deploy')}, "
@@ -325,10 +325,12 @@ def _doc(cs: list[dict], r: dict) -> str:
325
325
  "- No person has audited the labels yet.", "",
326
326
  "**How sure.** A rule is an *early observation* when its check rests on few cases; its numbers are a direction,",
327
327
  "not a settled rate: " + "; ".join(f"`{x['id']}` ({x['strength_why']})" for x in r["registry"]["rules"]
328
- if x.get("strength") == "early observation") + ". A rule whose bar *failed* is kept "
328
+ if x.get("strength") == "early observation") + ". A rule's *bar* is the accuracy it had to reach before it shipped; for the flaky-test rules it is that at most 5% "
329
+ "of the failures it calls flaky were really caused by the change (*masking*: a real failure hidden as a flake). "
330
+ "A rule whose bar *failed* is kept "
329
331
  "only where failing costs nothing it promised: " + "; ".join(f"`{x['id']}` ({x['strength_why']})" for x in r["registry"]["rules"]
330
- if x.get("strength") == "bar failed") + ". The rest are validated on",
331
- "held-out data ([rules.md](rules.md)).", "",
332
+ if x.get("strength") == "bar failed") + ". The rest are validated: checked against their bar, on held-out data where the rule has one ([rules.md](rules.md) "
333
+ "says which).", "",
332
334
  "**Reproduce a number.** `python bench/accuracy/reproduce.py list` names the command behind every result file;",
333
335
  "`reproduce.py check <card>` re-scores it and says whether the numbers match. Scoring reads the evidence each",
334
336
  "card was labelled from (the `.work` folders: CI histories, crawl records, logs), which is too large and holds",
@@ -343,7 +345,7 @@ def _doc(cs: list[dict], r: dict) -> str:
343
345
  "[registry.json](../bench/accuracy/registry.json).", ""]
344
346
  for rule in r["registry"]["rules"]:
345
347
  for v in rule.get("revisions") or []:
346
- out.append(f"- {v['date']}, `{rule['id']}`: was {v['from']}; {v['why']}; now {v['effect']}.")
348
+ out.append(f"- {v['date']}, `{rule['id']}`: before, {v['from']}; {v['why']}; after, {v['effect']}.")
347
349
  return "\n".join(out) + "\n"
348
350
 
349
351
 
@@ -13,12 +13,11 @@ page is built from those cards' result files by `bench/accuracy/summary.py`; the
13
13
  - That third reading was Claude's. Gemini, adjudicating a sample of the same disputes, agreed with it on 15 of 40.
14
14
  - Each adjudicator mostly sided with its own family: Claude's 33 times, Gemini's 23 times.
15
15
  - So each card shows its headline on each labeller's labels as well as the adjudicated ones.
16
- - A check by six models from three families (OpenAI gpt-5.4-mini and gpt-5-mini, Google gemini-3.8-flash and gemini-3.5-flash, Anthropic Claude Sonnet and Haiku), each answering alone the same plain-language questions on 120 labelled items (the CI and reply items drawn first from those the first two labellers disagreed on). Where a majority formed, it matched the labels on CI causes 21 of the 24 it decided (40 asked), the release behind a bug 11 of the 12 it decided (15 asked), how releases reach users 9 of the 14 it decided (15 asked), but issue replies only 11 of the 24 it decided (30 asked): it called most replies the labels call drive-bys or project answers helpful answers from other users, so the Community card's reply labels are the least settled. On the replay's disputed items it reached no majority on 11 of 20.
16
+ - A second check: six models from three families (OpenAI gpt-5.4-mini and gpt-5-mini, Google gemini-3.8-flash and gemini-3.5-flash, Anthropic Claude Sonnet and Haiku) each answered the same plain-language questions alone, on 120 labelled items (the CI and reply items drawn first from those the first two labellers disagreed on). Where a majority formed, it matched the labels on CI causes 21 of the 24 it decided (40 asked), the release behind a bug 11 of the 12 it decided (15 asked), how releases reach users 9 of the 14 it decided (15 asked), but issue replies only 11 of the 24 it decided (30 asked): it called most replies the labels call drive-bys or project answers helpful answers from other users, so the Community card's reply labels are the least settled. On the replay's disputed items it reached no majority on 11 of 20.
17
17
  - No person has audited the labels yet.
18
18
 
19
19
  **How sure.** A rule is an *early observation* when its check rests on few cases; its numbers are a direction,
20
- not a settled rate: `flaky.already_failing` (1 of 6 held-out matches with the same error); `flaky.maybe_flaky` (2 held-out matches in 150 failures); `flaky.pr_details` (24 matches in 4 repos, one repo gave most); `dora.incident_link` (15 reports named the release that broke). A rule whose bar *failed* is kept only where failing costs nothing it promised: `flaky.known_flaky` (too few calls to show 5%: the label says "likely", the advice says to check the error first, and the verdict check waits for a green re-run). The rest are validated on
21
- held-out data ([rules.md](rules.md)).
20
+ not a settled rate: `flaky.already_failing` (1 of 6 held-out matches with the same error); `flaky.maybe_flaky` (2 held-out matches in 150 failures); `flaky.only_this_pr` (not yet measured on labelled failures); `flaky.worse_on_pr` (not yet measured on seeded or labelled failures); `flaky.pr_details` (24 matches in 4 repos, one repo gave most); `dora.incident_link` (15 reports named the release that broke). A rule's *bar* is the accuracy it had to reach before it shipped; for the flaky-test rules it is that at most 5% of the failures it calls flaky were really caused by the change (*masking*: a real failure hidden as a flake). A rule whose bar *failed* is kept only where failing costs nothing it promised: `flaky.known_flaky` (too few calls to show 5%: the label says "likely", the advice says to check the error first, and the verdict check waits for a green re-run). The rest are validated: checked against their bar, on held-out data where the rule has one ([rules.md](rules.md) says which).
22
21
 
23
22
  **Reproduce a number.** `python bench/accuracy/reproduce.py list` names the command behind every result file;
24
23
  `reproduce.py check <card>` re-scores it and says whether the numbers match. Scoring reads the evidence each
@@ -127,22 +126,22 @@ Weak spot: Questions beyond GitHub's 90-day log retention, where kept history ma
127
126
 
128
127
  Every rule a number rests on, with each revision and why, is in [registry.json](../bench/accuracy/registry.json).
129
128
 
130
- - 2026-10-22, `flaky.event`: was same-code flips in any workflow; all 3 flips that weren't real flakes, and 5 checks of the PR's own text, were pull-request runs of workflows that also run on PR edits or labels; now 9 of 108 events left out (3 wrong, 5 PR-text checks, 1 real timing flake); 99 of 99 kept are real.
131
- - 2026-10-23, `flaky.event`: was pull-request flips left out in PR-edit workflows; held out, all 17 flips in such workflows were real flakes; now reverted to the earlier rule.
132
- - 2026-10-22, `flaky.known_flaky`: was any earlier flake; 15 of 34 failures it called safe were caused by the change (44%); now 7 called safe (5 clearly labelled, 0 caused), all one job; the other 29 now cost a look.
133
- - 2026-10-23, `flaky.known_flaky`: was known flaky passes the verdict check; 13 of 81 held-out safe calls were the change's own failure; matching past flakes' errors didn't separate them; now known flaky still reads 'likely a flake, re-run it', but the verdict check passes only once CI is green.
134
- - 2026-10-23, `flaky.known_flaky`: was known flaky: likely a flake, re-run it; in the agent head-to-head a smaller model trusted it on 2 failures the change caused; now now asks to check the error isn't from the change before re-running; those 2 were then answered right.
135
- - 2026-10-28, `flaky.known_flaky`: was 3+ flakes in the window, one in the failing step (history alone); shown as "Known flaky"; held out, 13 of 81 such calls were the change's own failure; a flake's sign in the failing step's log and no changed file named separated them on the tuning data (0 of 31 caused when both held; 8 of 8 clear caused when a changed file was named); now fresh read: 4 of 44 calls kept, 0 caused (0-49%), so the 5% bar is unproven; shown as "Likely flaky" with its evidence, never "safe"; the rest read flaked before, or maybe yours (4 of 5 clear fresh cases caused).
136
- - 2026-10-22, `flaky.outside_failure`: was failure-section match including 'failed to download and build'; a dependency's own build failing matched; now taken out; 4 matches given up for safety.
137
- - 2026-10-22, `flaky.outside_failure`: was TEST_FAILED matching any 'FAILED:'; ninja's 'FAILED:' build lines hid an sccache outage; now test-runner forms only.
138
- - 2026-10-22, `flaky.already_failing`: was the same step alone; 4 of 22 such failures were caused by the change, with a different error in that step; now 12 matched, none caused.
139
- - 2026-10-23, `flaky.maybe_flaky`: was track record over all 24 signature matches; the product says maybe flaky only for never-flaked failures (a whole-release review); now the track record counts never-flaked matches: 1 of 6 (0 of 4 tuning, 1 of 2 held out).
140
- - 2026-10-23, `flaky.pr_details`: was error lines mentioning a title, label or description anywhere; a test assertion about chart labels matched; now the words must be about the PR.
141
- - 2026-10-23, `flaky.pr_details`: was only jobs whose steps read the PR (triggers.metadata_jobs); label checks gated by `if:` and checks reading the PR in a script were missed (2 matches of 24); now any job of a workflow run by PR edits, with the error guard.
142
- - 2026-10-23, `flaky.pr_details`: was "checkbox", "template" or "PR" alone; any failing step; a whole-release review: a template rendering error in a CI workflow run on labels matched; now those words need the PR's wording beside them, and a failing test rules it out; still 24 of 24 matched.
143
- - 2026-10-21, `dora.deploy_source`: was display name checked against the deny list; a file named deploy.yml titled 'Check and Publish' hit the deny word 'check'; now a file named only deploy, release or publish ships whatever its display name; 22 to 23 of 25.
144
- - 2026-10-22, `dora.fix_chain`: was every revert counted as a failed deployment; 11 of 18 undid a change that never shipped; now never-shipped reverts are no failed deployment.
145
- - 2026-10-23, `community.regular_responders`: was answers and first reviews only; triage acts mark people acting for the project; on the labelled comments the rule missed, they found 8 project answers among 11; now held out: 4 more project answers (47% to 57% weighted); on Claude's labels 45% to 53%, on Gemini's 32% to 38%.
146
- - 2026-10-22, `community.first_response_km`: was closed-unanswered items treated as still waiting; they stopped being at risk when they closed; now censored at closing.
147
- - 2026-10-24, `uncertainty.digest`: was weekly checks only; in a slowdown's second week the weekly check's baseline holds the first slow week, so 10x slowdowns were caught in 15% of scans; now on the same replay, second-week catches of 10x slowdowns 15% to 35%, first-week 31% to 25%, false alarms 7.4% to 7.5%; CUSUM charts tried and dropped (no gain).
148
- - 2026-10-23, `ai.detection`: was AI trailers in the last 5 commits, labels matched exactly, agent account or branch; 5 of 23 missed PRs named the tool in their description; label spellings and Jules task links missed in the tune half; now recall 75.0% to 78.8% weighted (63.9% to 66.3% held out); precision 185 of 187 to 191 of 194.
129
+ - 2026-10-22, `flaky.event`: before, same-code flips in any workflow; all 3 flips that weren't real flakes, and 5 checks of the PR's own text, were pull-request runs of workflows that also run on PR edits or labels; after, 9 of 108 events left out (3 wrong, 5 PR-text checks, 1 real timing flake); 99 of 99 kept are real.
130
+ - 2026-10-23, `flaky.event`: before, pull-request flips left out in PR-edit workflows; held out, all 17 flips in such workflows were real flakes; after, reverted to the earlier rule.
131
+ - 2026-10-22, `flaky.known_flaky`: before, any earlier flake; 15 of 34 failures it called safe were caused by the change (44%); after, 7 called safe (5 clearly labelled, 0 caused), all one job; the other 29 now cost a look.
132
+ - 2026-10-23, `flaky.known_flaky`: before, a known flake passed the verdict check; 13 of 81 held-out safe calls were the change's own failure; matching past flakes' errors didn't separate them; after, known flaky still reads 'likely a flake, re-run it', but the verdict check passes only once CI is green.
133
+ - 2026-10-23, `flaky.known_flaky`: before, a known flake read 'likely a flake, re-run it'; in the agent head-to-head a smaller model trusted it on 2 failures the change caused; after, it asks to check the error isn't from the change before re-running; those 2 were then answered right.
134
+ - 2026-10-28, `flaky.known_flaky`: before, 3+ flakes in the window, one in the failing step (history alone); shown as "Known flaky"; held out, 13 of 81 such calls were the change's own failure; a flake's sign in the failing step's log and no changed file named separated them on the tuning data (0 of 31 caused when both held; 8 of 8 clear caused when a changed file was named); after, fresh read: 4 of 44 calls kept, 0 caused (0-49%), so the 5% bar is unproven; shown as "Likely flaky" with its evidence, never "safe"; the rest read flaked before, or maybe yours (4 of 5 clear fresh cases caused).
135
+ - 2026-10-22, `flaky.outside_failure`: before, failure-section match including 'failed to download and build'; a dependency's own build failing matched; after, taken out; 4 matches given up for safety.
136
+ - 2026-10-22, `flaky.outside_failure`: before, TEST_FAILED matching any 'FAILED:'; ninja's 'FAILED:' build lines hid an sccache outage; after, test-runner forms only.
137
+ - 2026-10-22, `flaky.already_failing`: before, the same step alone; 4 of 22 such failures were caused by the change, with a different error in that step; after, 12 matched, none caused.
138
+ - 2026-10-23, `flaky.maybe_flaky`: before, track record over all 24 signature matches; the product says maybe flaky only for never-flaked failures (a whole-release review); after, the track record counts never-flaked matches: 1 of 6 (0 of 4 tuning, 1 of 2 held out).
139
+ - 2026-10-23, `flaky.pr_details`: before, error lines mentioning a title, label or description anywhere; a test assertion about chart labels matched; after, the words must be about the PR.
140
+ - 2026-10-23, `flaky.pr_details`: before, only jobs whose steps read the PR (triggers.metadata_jobs); label checks gated by `if:` and checks reading the PR in a script were missed (2 matches of 24); after, any job of a workflow run by PR edits, with the error guard.
141
+ - 2026-10-23, `flaky.pr_details`: before, "checkbox", "template" or "PR" alone; any failing step; a whole-release review: a template rendering error in a CI workflow run on labels matched; after, those words need the PR's wording beside them, and a failing test rules it out; still 24 of 24 matched.
142
+ - 2026-10-21, `dora.deploy_source`: before, display name checked against the deny list; a file named deploy.yml titled 'Check and Publish' hit the deny word 'check'; after, a file named only deploy, release or publish ships whatever its display name; 22 to 23 of 25.
143
+ - 2026-10-22, `dora.fix_chain`: before, every revert counted as a failed deployment; 11 of 18 undid a change that never shipped; after, never-shipped reverts are no failed deployment.
144
+ - 2026-10-23, `community.regular_responders`: before, answers and first reviews only; triage acts mark people acting for the project; on the labelled comments the rule missed, they found 8 project answers among 11; after, held out: 4 more project answers (47% to 57% weighted); on Claude's labels 45% to 53%, on Gemini's 32% to 38%.
145
+ - 2026-10-22, `community.first_response_km`: before, closed-unanswered items treated as still waiting; they stopped being at risk when they closed; after, censored at closing.
146
+ - 2026-10-24, `uncertainty.digest`: before, weekly checks only; in a slowdown's second week the weekly check's baseline holds the first slow week, so 10x slowdowns were caught in 15% of scans; after, on the same replay, second-week catches of 10x slowdowns 15% to 35%, first-week 31% to 25%, false alarms 7.4% to 7.5%; CUSUM charts tried and dropped (no gain).
147
+ - 2026-10-23, `ai.detection`: before, AI trailers in the last 5 commits, labels matched exactly, agent account or branch; 5 of 23 missed PRs named the tool in their description; label spellings and Jules task links missed in the tune half; after, recall 75.0% to 78.8% weighted (63.9% to 66.3% held out); precision 185 of 187 to 191 of 194.
@@ -17,12 +17,11 @@ explorer, which fetches DuckDB once) and has no tracking. The bundled libraries
17
17
  | `index.html?pages=https://owner.github.io/name/` | Another repo's Pages site |
18
18
  | `index.html?welcome` | The Welcome screen |
19
19
 
20
- Links from the earlier app still work: `#/home` opens Overview and `#/integrations` opens Connections.
21
20
 
22
21
  ## Layout
23
22
 
24
23
  The sidebar groups the pages: **Health** (Overview, Insights, CI Health, Pull Requests, Delivery, Community,
25
- Dependencies), **Organisation** (Investment, Portal, Explore), **Team** (Activity, Settings) and **Install** (Setup,
24
+ Dependencies), **Organisation** (Investment, Portal, Explore), **Team** (Activity, Data health, Settings) and **Install** (Setup,
26
25
  Connections, Agents, Help, About). A badge shows what waits on a page, for example flaky tests or newcomers waiting. A
27
26
  page for a module that isn't set up is dimmed. On a phone the sidebar becomes a tab bar (Overview, Insights, CI, PRs)
28
27
  with the rest under **More**.
@@ -58,7 +57,7 @@ Once GitHub is connected, setup takes a few clicks; connecting takes one token,
58
57
  **Setup** picks a repo, checks what it has and suggests a plan (modules ticked from what it finds) that you can change.
59
58
  **Set it up** then commits the workflow (a pull request when the branch is protected), starts the first run and shows it
60
59
  live, waits for the data branch and turns on Pages for public repos. Each step is saved, so a reload picks up where it
61
- stopped. Without a token you get the file ready to add on GitHub, the YAML to copy, or the CLI command, and the app
60
+ stopped. Without a token you get the file ready to add on GitHub, the YAML to copy, or the one CLI command (`stackvitals init owner/repo`), and the app
62
61
  checks for the first run at a pace that stays inside GitHub's limit for visitors.
63
62
 
64
63
  ## Pages
@@ -17,8 +17,10 @@ way back: settings and decisions made in the app.
17
17
  ### 1. What starts a run
18
18
 
19
19
  A run starts when any of these happens: a CI run finishes (`workflow_run`), the 3-hour schedule comes round, a deploy or
20
- incident is sent from another tool (`stackvitals record`), someone makes a request in the app (`workflow_dispatch`),
21
- someone comments `/stackvitals` on an issue or pull request, or the workflow or settings file changes (`push`). Each
20
+ incident is sent from another tool (`stackvitals record`, which sends a `repository_dispatch`), someone makes a request
21
+ in the app (an issue it opens, or `workflow_dispatch`), someone comments `/stackvitals` on an issue or pull request
22
+ (`issue_comment`), a pull request changes a lockfile (`pull_request`, for the dependency check), or the workflow or
23
+ settings file changes (`push`). Each
22
24
  start is the same job; what it reads depends on what started it.
23
25
 
24
26
  ### 2. Collect
@@ -33,9 +35,10 @@ Copilot usage, Slack, Teams and Discord ([connectors.md](connectors.md)).
33
35
 
34
36
  ### 3. Analyse
35
37
 
36
- Six modules read the same collected data in one pass: CI Health (flaky tests and the verdict on each failing pull
38
+ The modules read the same collected data in one pass: CI Health (flaky tests and the verdict on each failing pull
37
39
  request), Team Flow (who has to act next), Delivery and DORA (deploys, lead time and failures), Dependencies (vulnerable
38
- and risky packages), Community (newcomers and first answers) and Portal (owners and scorecards). Insights then puts
40
+ and risky packages), Community (newcomers and first answers) and Portal (owners and scorecards; it runs from the org's own portal repo
41
+ with its own workflow, not in each repo's run). Insights then puts
39
42
  every module's findings in one list, ranked by the hours at stake.
40
43
 
41
44
  Every verdict stands on two things: the **rules registry**, where each rule has an accuracy card measured on public repos
@@ -138,7 +141,7 @@ in `deploy/crawler/`. It publishes aggregates only. Your job reads them; it neve
138
141
  | `src/stackvitals/deps` | Dependency Steward |
139
142
  | `src/stackvitals/community` | Community health |
140
143
  | `src/stackvitals/portal` | Portal: catalog, owners, scorecards, campaigns, golden paths, the org view |
141
- | `src/stackvitals/connectors` | Jira, Linear, PagerDuty, incident.io, Copilot, Slack, Discord, Discourse |
144
+ | `src/stackvitals/connectors` | Jira, Linear, PagerDuty, incident.io, SonarQube, Copilot and AI-spend keys, Slack, Discord, Discourse (Teams and the other chat alerts are in `core/chat.py`) |
142
145
  | `src/stackvitals/web` | the app and the site |
143
146
  | `src/stackvitals/mcp_server.py` | the MCP server |
144
147
  | `src/mergescout` | Contribute (MergeScout) |