stackvitals 0.1.1__tar.gz → 0.1.2__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 (1379) hide show
  1. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/workflows/daily.yml +3 -3
  2. stackvitals-0.1.2/.github/workflows/mcp-registry.yml +32 -0
  3. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/workflows/prospective.yml +2 -2
  4. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/workflows/release.yml +4 -4
  5. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/workflows/tests.yml +2 -2
  6. {stackvitals-0.1.1 → stackvitals-0.1.2}/CHANGELOG.md +7 -0
  7. {stackvitals-0.1.1 → stackvitals-0.1.2}/PKG-INFO +134 -28
  8. stackvitals-0.1.2/README.md +198 -0
  9. {stackvitals-0.1.1 → stackvitals-0.1.2}/action.yml +2 -2
  10. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/workflows/bench.yml +2 -2
  11. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/workflows/check.yml +2 -2
  12. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/workflows/crawl.yml +4 -4
  13. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/workflows/discover.yml +4 -4
  14. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/workflows/keepalive.yml +1 -1
  15. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/app.md +2 -3
  16. stackvitals-0.1.2/docs/architecture.md +147 -0
  17. stackvitals-0.1.2/docs/assets/architecture-detailed-dark.png +0 -0
  18. stackvitals-0.1.2/docs/assets/architecture-detailed-light.png +0 -0
  19. stackvitals-0.1.2/docs/assets/architecture-overview-dark.png +0 -0
  20. stackvitals-0.1.2/docs/assets/architecture-overview-light.png +0 -0
  21. stackvitals-0.1.2/docs/assets/divider-dark.png +0 -0
  22. stackvitals-0.1.2/docs/assets/divider-light.png +0 -0
  23. stackvitals-0.1.2/docs/assets/lockup-dark.png +0 -0
  24. stackvitals-0.1.2/docs/assets/lockup-light.png +0 -0
  25. stackvitals-0.1.2/docs/assets/stackvitals-video.avif +0 -0
  26. stackvitals-0.1.2/docs/assets/stackvitals-video.gif +0 -0
  27. stackvitals-0.1.2/docs/assets/stackvitals-video.mp4 +0 -0
  28. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/quickstart.md +14 -0
  29. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/release-checklist.md +5 -8
  30. {stackvitals-0.1.1 → stackvitals-0.1.2}/pyproject.toml +1 -1
  31. {stackvitals-0.1.1 → stackvitals-0.1.2}/scripts/prelaunch.py +14 -5
  32. {stackvitals-0.1.1 → stackvitals-0.1.2}/server.json +2 -2
  33. stackvitals-0.1.2/src/mergescout/__init__.py +1 -0
  34. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/__init__.py +1 -1
  35. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/cli.py +4 -0
  36. stackvitals-0.1.2/src/stackvitals/core/initcli.py +259 -0
  37. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/editors/vscode/package.json +1 -1
  38. stackvitals-0.1.2/src/stackvitals/web/app/boot.js +1 -0
  39. stackvitals-0.1.2/src/stackvitals/web/app/brand/cube-128.png +0 -0
  40. stackvitals-0.1.2/src/stackvitals/web/app/brand/cube-256.png +0 -0
  41. stackvitals-0.1.2/src/stackvitals/web/app/brand/cube-64.png +0 -0
  42. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-3G4SQNUC.js → stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-DLORG2IY.js +1 -1
  43. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-7TJCBOAY.js → stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-FBGIG7YF.js +1 -1
  44. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-RQZPSJ2Y.js → stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-JWBRT5E4.js +1 -1
  45. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-THFUOCPC.js → stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-OFWDU5XX.js +2 -2
  46. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-SACCDA46.js +1 -0
  47. stackvitals-0.1.2/src/stackvitals/web/app/chunks/chunk-TCPSLBAB.js +1 -0
  48. stackvitals-0.1.1/src/stackvitals/web/app/chunks/more-KMJMJQD3.js → stackvitals-0.1.2/src/stackvitals/web/app/chunks/more-5EXFWDGM.js +1 -1
  49. stackvitals-0.1.2/src/stackvitals/web/app/help/getting-started.json +1 -0
  50. stackvitals-0.1.2/src/stackvitals/web/app/help/index.json +1 -0
  51. stackvitals-0.1.2/src/stackvitals/web/app/help/reference.json +1 -0
  52. stackvitals-0.1.2/src/stackvitals/web/app/main.css +1 -0
  53. stackvitals-0.1.2/src/stackvitals/web/app/main.js +1 -0
  54. stackvitals-0.1.2/src/stackvitals/web/app/pages/ci.js +1 -0
  55. stackvitals-0.1.2/src/stackvitals/web/app/pages/community.js +1 -0
  56. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/delivery.js +1 -1
  57. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/deps.js +1 -1
  58. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/investment.js +1 -1
  59. stackvitals-0.1.2/src/stackvitals/web/app/pages/overview.js +1 -0
  60. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/prs.js +1 -1
  61. stackvitals-0.1.2/src/stackvitals/web/app/pages/settings.js +1 -0
  62. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/setup.js +1 -1
  63. stackvitals-0.1.2/src/stackvitals/web/app/pages/welcome-sheet.js +1 -0
  64. stackvitals-0.1.2/src/stackvitals/web/app/pages/welcome.js +1 -0
  65. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/index.html +4 -5
  66. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_editor_marks.py +4 -2
  67. stackvitals-0.1.2/tests/local/test_init_cli.py +152 -0
  68. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_prelaunch.py +1 -1
  69. {stackvitals-0.1.1 → stackvitals-0.1.2}/uv.lock +1 -1
  70. stackvitals-0.1.2/web/brand/cube-128.png +0 -0
  71. stackvitals-0.1.2/web/brand/cube-256.png +0 -0
  72. stackvitals-0.1.2/web/brand/cube-64.png +0 -0
  73. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/build.mjs +3 -0
  74. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/index.html +1 -1
  75. stackvitals-0.1.2/web/src/app/LogoPicker.tsx +6 -0
  76. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/boot.ts +3 -6
  77. stackvitals-0.1.2/web/src/brand/Logo.tsx +6 -0
  78. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/theme.ts +1 -11
  79. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci/workflowgen.ts +4 -4
  80. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/scanning.ts +1 -1
  81. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/base.css +1 -1
  82. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/shell.css +1 -1
  83. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/tokens.css +0 -3
  84. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/safety.test.ts +0 -14
  85. stackvitals-0.1.1/README.md +0 -92
  86. stackvitals-0.1.1/docs/architecture.md +0 -86
  87. stackvitals-0.1.1/src/mergescout/__init__.py +0 -1
  88. stackvitals-0.1.1/src/stackvitals/web/app/boot.js +0 -1
  89. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-6BDBXA6V.js +0 -1
  90. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-MAPYGK3P.js +0 -1
  91. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-Y6LUXDM6.js +0 -1
  92. stackvitals-0.1.1/src/stackvitals/web/app/chunks/logos-N5IINUAM.js +0 -1
  93. stackvitals-0.1.1/src/stackvitals/web/app/help/getting-started.json +0 -1
  94. stackvitals-0.1.1/src/stackvitals/web/app/help/index.json +0 -1
  95. stackvitals-0.1.1/src/stackvitals/web/app/help/reference.json +0 -1
  96. stackvitals-0.1.1/src/stackvitals/web/app/main.css +0 -1
  97. stackvitals-0.1.1/src/stackvitals/web/app/main.js +0 -1
  98. stackvitals-0.1.1/src/stackvitals/web/app/pages/ci.js +0 -1
  99. stackvitals-0.1.1/src/stackvitals/web/app/pages/community.js +0 -1
  100. stackvitals-0.1.1/src/stackvitals/web/app/pages/overview.js +0 -1
  101. stackvitals-0.1.1/src/stackvitals/web/app/pages/settings.js +0 -1
  102. stackvitals-0.1.1/src/stackvitals/web/app/pages/welcome-sheet.js +0 -1
  103. stackvitals-0.1.1/src/stackvitals/web/app/pages/welcome.js +0 -1
  104. stackvitals-0.1.1/web/src/app/LogoPicker.tsx +0 -38
  105. stackvitals-0.1.1/web/src/brand/Logo.tsx +0 -11
  106. stackvitals-0.1.1/web/src/brand/logos.ts +0 -33
  107. stackvitals-0.1.1/web/src/brand/mark.ts +0 -48
  108. {stackvitals-0.1.1 → stackvitals-0.1.2}/.env.example +0 -0
  109. {stackvitals-0.1.1 → stackvitals-0.1.2}/.gitattributes +0 -0
  110. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/ISSUE_TEMPLATE/benchmark.yml +0 -0
  111. {stackvitals-0.1.1 → stackvitals-0.1.2}/.github/build-constraints.txt +0 -0
  112. {stackvitals-0.1.1 → stackvitals-0.1.2}/.gitignore +0 -0
  113. {stackvitals-0.1.1 → stackvitals-0.1.2}/CONTRIBUTING.md +0 -0
  114. {stackvitals-0.1.1 → stackvitals-0.1.2}/GOVERNANCE.md +0 -0
  115. {stackvitals-0.1.1 → stackvitals-0.1.2}/LICENSE +0 -0
  116. {stackvitals-0.1.1 → stackvitals-0.1.2}/NOTICE +0 -0
  117. {stackvitals-0.1.1 → stackvitals-0.1.2}/SECURITY.md +0 -0
  118. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/LICENSE-DATA.md +0 -0
  119. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adjudicate.py +0 -0
  120. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adjudicator-crosscheck.json +0 -0
  121. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adoption/README.md +0 -0
  122. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adoption/manifest.json +0 -0
  123. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adoption/preregistration.md +0 -0
  124. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/adoption/study.py +0 -0
  125. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/README.md +0 -0
  126. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/prepare.py +0 -0
  127. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/prepare2.py +0 -0
  128. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/prompts.md +0 -0
  129. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/results.json +0 -0
  130. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/results2.json +0 -0
  131. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/score.py +0 -0
  132. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/score2.py +0 -0
  133. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/triage-results.json +0 -0
  134. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/agents/triage_check.py +0 -0
  135. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/README.md +0 -0
  136. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/adjudication-detection.csv +0 -0
  137. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/adoption-results.json +0 -0
  138. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/adoption.py +0 -0
  139. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/agreement-gemini-detection.json +0 -0
  140. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/codebook-detection.md +0 -0
  141. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/detection-labels.csv +0 -0
  142. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/detection-results.json +0 -0
  143. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/detection.py +0 -0
  144. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/labels-gemini-detection.csv +0 -0
  145. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/preregistration.md +0 -0
  146. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/replicate-results.json +0 -0
  147. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/ai/replicate.py +0 -0
  148. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/audit-results.json +0 -0
  149. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/audit.py +0 -0
  150. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/README.md +0 -0
  151. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/adjudication-main.csv +0 -0
  152. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/adjudication-validation.csv +0 -0
  153. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/affiliation-results.json +0 -0
  154. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/affiliation.py +0 -0
  155. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/agreement-gemini-main-v2.json +0 -0
  156. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/agreement-gemini-main.json +0 -0
  157. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/agreement-gemini-validation-v2.json +0 -0
  158. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/agreement-gemini-validation.json +0 -0
  159. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/channels-results.json +0 -0
  160. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/channels.py +0 -0
  161. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/codebook.md +0 -0
  162. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-gemini-main-v2.csv +0 -0
  163. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-gemini-main.csv +0 -0
  164. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-gemini-validation-v2.csv +0 -0
  165. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-gemini-validation.csv +0 -0
  166. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-main.csv +0 -0
  167. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-results.json +0 -0
  168. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/labels-validation.csv +0 -0
  169. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/responses-results.json +0 -0
  170. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/responses-validation-results.json +0 -0
  171. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/responses.py +0 -0
  172. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/score_labels.py +0 -0
  173. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/triage-results.json +0 -0
  174. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/community/triage.py +0 -0
  175. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/contribute/README.md +0 -0
  176. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/contribute/frozen-manifest.json +0 -0
  177. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/contribute/frozen.json.gz +0 -0
  178. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/contribute/preregistration.md +0 -0
  179. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/contribute/prospective.py +0 -0
  180. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/crosscheck.py +0 -0
  181. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/README.md +0 -0
  182. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/baseline-after-results.json +0 -0
  183. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/baseline-results.json +0 -0
  184. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/baseline.py +0 -0
  185. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/coverage-results.json +0 -0
  186. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/coverage.py +0 -0
  187. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/exploits-results.json +0 -0
  188. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/exploits.py +0 -0
  189. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/incidents-results.json +0 -0
  190. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/incidents.py +0 -0
  191. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/lookalike-results.json +0 -0
  192. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/lookalike.py +0 -0
  193. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/release-signs-results.json +0 -0
  194. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/deps/release_signs.py +0 -0
  195. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/README.md +0 -0
  196. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/head-to-head-results.json +0 -0
  197. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/pick.py +0 -0
  198. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/preregistration.md +0 -0
  199. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/repos.json +0 -0
  200. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/run.py +0 -0
  201. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/devlake/score.py +0 -0
  202. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/README.md +0 -0
  203. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/adjudication-incidents.csv +0 -0
  204. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/adjudication-sources-more.csv +0 -0
  205. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/adjudication-sources.csv +0 -0
  206. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/agreement-gemini-sources-more.json +0 -0
  207. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/agreement-gemini-sources.json +0 -0
  208. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/codebook.md +0 -0
  209. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/devlake-configured-more-results.json +0 -0
  210. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/devlake-configured-results.json +0 -0
  211. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/devlake_configured.py +0 -0
  212. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/environments-results.json +0 -0
  213. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/environments.py +0 -0
  214. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/incidents-codebook.md +0 -0
  215. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/incidents-labels.csv +0 -0
  216. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/incidents-results.json +0 -0
  217. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/incidents.py +0 -0
  218. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/labels-gemini-incidents.csv +0 -0
  219. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/labels-gemini-sources-more.csv +0 -0
  220. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/labels-gemini-sources.csv +0 -0
  221. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/linkage-more-results.json +0 -0
  222. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/linkage-results.json +0 -0
  223. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/linkage.py +0 -0
  224. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/sources-labels.csv +0 -0
  225. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/sources-more-labels.csv +0 -0
  226. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/sources-more-results.json +0 -0
  227. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/sources-results.json +0 -0
  228. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/sources.py +0 -0
  229. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/spread-results.json +0 -0
  230. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/dora/spread.py +0 -0
  231. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/fair.py +0 -0
  232. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/README.md +0 -0
  233. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/api_use.py +0 -0
  234. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/branch_growth.py +0 -0
  235. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/catalog.py +0 -0
  236. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/reports.py +0 -0
  237. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/scorecard.json +0 -0
  238. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/features/scorecard.py +0 -0
  239. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/finalise.py +0 -0
  240. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/README.md +0 -0
  241. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/adjudication-flaky.csv +0 -0
  242. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/adjudication-fresh.csv +0 -0
  243. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/adjudication-heldout.csv +0 -0
  244. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/adjudication-masking.csv +0 -0
  245. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/agreement-gemini-flaky-v2.json +0 -0
  246. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/agreement-gemini-flaky.json +0 -0
  247. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/agreement-gemini-fresh.json +0 -0
  248. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/agreement-gemini-heldout.json +0 -0
  249. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/agreement-gemini-masking.json +0 -0
  250. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/already-results.json +0 -0
  251. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/already.py +0 -0
  252. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/began-results.json +0 -0
  253. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/began.py +0 -0
  254. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/card.json +0 -0
  255. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/codebook.md +0 -0
  256. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/heldout-labels.csv +0 -0
  257. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/heldout-results.json +0 -0
  258. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/heldout.py +0 -0
  259. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/items.csv +0 -0
  260. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/kinds-results.json +0 -0
  261. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/kinds.py +0 -0
  262. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/labels-gemini-flaky-v2.csv +0 -0
  263. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/labels-gemini-flaky.csv +0 -0
  264. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/labels-gemini-fresh.csv +0 -0
  265. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/labels-gemini-heldout.csv +0 -0
  266. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/labels-gemini-masking.csv +0 -0
  267. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/masking-labels.csv +0 -0
  268. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/masking-results.json +0 -0
  269. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/masking.py +0 -0
  270. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/maybe-results.json +0 -0
  271. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/maybe.py +0 -0
  272. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/natural-results.json +0 -0
  273. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/natural.py +0 -0
  274. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/outside-fresh-results.json +0 -0
  275. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/outside-results.json +0 -0
  276. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/outside.py +0 -0
  277. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/outside_fresh.py +0 -0
  278. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/pr-details-results.json +0 -0
  279. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/pr_details.py +0 -0
  280. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/safe-check-results.json +0 -0
  281. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/safe-rule-results.json +0 -0
  282. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/safe_check.py +0 -0
  283. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/safe_rule.py +0 -0
  284. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/sample.py +0 -0
  285. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/score.py +0 -0
  286. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/views.py +0 -0
  287. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/flaky/wide.py +0 -0
  288. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/README.md +0 -0
  289. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/collect_reports.py +0 -0
  290. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/find_report_repos.py +0 -0
  291. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/replay-results.json +0 -0
  292. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/replay_tia.py +0 -0
  293. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/search.json +0 -0
  294. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/impact/totals.json +0 -0
  295. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/label-sensitivity.json +0 -0
  296. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/labeller.py +0 -0
  297. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/middleware/README.md +0 -0
  298. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/middleware/preregistration.md +0 -0
  299. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/middleware/results.json +0 -0
  300. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/middleware/run.sh +0 -0
  301. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/middleware/score.py +0 -0
  302. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/panel-results.json +0 -0
  303. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/panel.py +0 -0
  304. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/platform/README.md +0 -0
  305. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/platform/busy-results.json +0 -0
  306. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/platform/busy.py +0 -0
  307. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/README.md +0 -0
  308. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/scale-results.json +0 -0
  309. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/scale.py +0 -0
  310. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/speed-after.json +0 -0
  311. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/speed-before.json +0 -0
  312. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/portal/speed.py +0 -0
  313. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/registry.json +0 -0
  314. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/README.md +0 -0
  315. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/adjudication-replay.csv +0 -0
  316. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/agreement-gemini-replay.json +0 -0
  317. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/labels-gemini-replay.csv +0 -0
  318. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/replay-labels.csv +0 -0
  319. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/replay-results.json +0 -0
  320. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/replay/replay.py +0 -0
  321. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/reproduce.py +0 -0
  322. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/scorecard/README.md +0 -0
  323. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/scorecard/results-before.json +0 -0
  324. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/scorecard/results.json +0 -0
  325. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/scorecard/run.py +0 -0
  326. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/sensitivity.py +0 -0
  327. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/summary.py +0 -0
  328. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/README.md +0 -0
  329. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/prospective-frozen.json.gz +0 -0
  330. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/prospective-manifest.json +0 -0
  331. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/prospective.py +0 -0
  332. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/reviewers-results.json +0 -0
  333. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/team/reviewers.py +0 -0
  334. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/README.md +0 -0
  335. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/nulls-2week-before-results.json +0 -0
  336. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/nulls-2week-results.json +0 -0
  337. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/nulls-before-results.json +0 -0
  338. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/nulls-results.json +0 -0
  339. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/nulls.py +0 -0
  340. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/shrinkage-groups-results.json +0 -0
  341. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/shrinkage-results.json +0 -0
  342. {stackvitals-0.1.1 → stackvitals-0.1.2}/bench/accuracy/uncertainty/shrinkage.py +0 -0
  343. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/README.md +0 -0
  344. {stackvitals-0.1.1 → stackvitals-0.1.2}/deploy/crawler/gitignore +0 -0
  345. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/accuracy.md +0 -0
  346. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/chaoss.md +0 -0
  347. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/connectors.md +0 -0
  348. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/coverage.md +0 -0
  349. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/dora-guide.md +0 -0
  350. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/enterprise.md +0 -0
  351. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/faq.md +0 -0
  352. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/guides/maintainer.md +0 -0
  353. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/guides/manager.md +0 -0
  354. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/guides/platform.md +0 -0
  355. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/install.md +0 -0
  356. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/limitations.md +0 -0
  357. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/methods.md +0 -0
  358. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/modules.md +0 -0
  359. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/privacy.md +0 -0
  360. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/roadmap.md +0 -0
  361. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/rules.md +0 -0
  362. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/scaling.md +0 -0
  363. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/settings.md +0 -0
  364. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/threat-model.md +0 -0
  365. {stackvitals-0.1.1 → stackvitals-0.1.2}/docs/triage.md +0 -0
  366. {stackvitals-0.1.1 → stackvitals-0.1.2}/llms.txt +0 -0
  367. {stackvitals-0.1.1 → stackvitals-0.1.2}/scripts/sync_crawler.py +0 -0
  368. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-ci/SKILL.md +0 -0
  369. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-community/SKILL.md +0 -0
  370. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-contribute/SKILL.md +0 -0
  371. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-delivery/SKILL.md +0 -0
  372. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-deps/SKILL.md +0 -0
  373. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-flow/SKILL.md +0 -0
  374. {stackvitals-0.1.1 → stackvitals-0.1.2}/skills/stackvitals-portal/SKILL.md +0 -0
  375. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/__init__.py +0 -0
  376. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/__main__.py +0 -0
  377. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/convert.py +0 -0
  378. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/events.py +0 -0
  379. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/manifest.py +0 -0
  380. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/archive/stream.py +0 -0
  381. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/__init__.py +0 -0
  382. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/__main__.py +0 -0
  383. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/ci.py +0 -0
  384. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/deploys.py +0 -0
  385. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/matched.py +0 -0
  386. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/prior.py +0 -0
  387. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/report.py +0 -0
  388. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/shared.py +0 -0
  389. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/bench/stars.py +0 -0
  390. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/cli.py +0 -0
  391. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/config.py +0 -0
  392. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/__init__.py +0 -0
  393. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/__main__.py +0 -0
  394. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/chain.py +0 -0
  395. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/fetch.py +0 -0
  396. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/outcomes.py +0 -0
  397. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/queries.py +0 -0
  398. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/runner.py +0 -0
  399. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/seed.py +0 -0
  400. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/state.py +0 -0
  401. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/crawl/writer.py +0 -0
  402. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/discover/__init__.py +0 -0
  403. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/discover/__main__.py +0 -0
  404. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/discover/sweep.py +0 -0
  405. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/github/__init__.py +0 -0
  406. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/github/graphql.py +0 -0
  407. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/github/identities.py +0 -0
  408. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/github/releases.py +0 -0
  409. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/labels.py +0 -0
  410. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/mcp_server.py +0 -0
  411. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/__init__.py +0 -0
  412. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/__main__.py +0 -0
  413. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/api_cost.py +0 -0
  414. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/count_repos.py +0 -0
  415. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/jsonl.py +0 -0
  416. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/report.py +0 -0
  417. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/measure/sample.py +0 -0
  418. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/owners.py +0 -0
  419. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/setup_check.py +0 -0
  420. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/__init__.py +0 -0
  421. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/__main__.py +0 -0
  422. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/bump_ledger.py +0 -0
  423. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/bumps.py +0 -0
  424. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/check.py +0 -0
  425. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/community_bench.py +0 -0
  426. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/delivery_bench.py +0 -0
  427. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/deps_map.py +0 -0
  428. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/deps_trends.py +0 -0
  429. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/evidence.py +0 -0
  430. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/exploits.py +0 -0
  431. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/flow_bench.py +0 -0
  432. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/identity.py +0 -0
  433. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/issues.py +0 -0
  434. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/labels.py +0 -0
  435. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/osv.py +0 -0
  436. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/owners_watch.py +0 -0
  437. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/repo_stats.py +0 -0
  438. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/rules.py +0 -0
  439. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/silver.py +0 -0
  440. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/top_packages.py +0 -0
  441. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/triage.py +0 -0
  442. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/triage_math.py +0 -0
  443. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/signals/walls.py +0 -0
  444. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/__init__.py +0 -0
  445. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/__main__.py +0 -0
  446. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/build.py +0 -0
  447. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/publish.py +0 -0
  448. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/schema.py +0 -0
  449. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/snapshot/score.py +0 -0
  450. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/store/__init__.py +0 -0
  451. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/store/__main__.py +0 -0
  452. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/store/sync.py +0 -0
  453. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/timeutil.py +0 -0
  454. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/__init__.py +0 -0
  455. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/action_pack.py +0 -0
  456. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/live.py +0 -0
  457. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/queries.py +0 -0
  458. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/refs.py +0 -0
  459. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/store.py +0 -0
  460. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/mergescout/tool/tracking.py +0 -0
  461. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/__main__.py +0 -0
  462. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/__init__.py +0 -0
  463. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/action.py +0 -0
  464. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/analyze.py +0 -0
  465. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/api.py +0 -0
  466. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/automation.py +0 -0
  467. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/bench.py +0 -0
  468. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/burnin.py +0 -0
  469. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/cli.py +0 -0
  470. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/collect.py +0 -0
  471. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/cost.py +0 -0
  472. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/coverage.py +0 -0
  473. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/feedback.py +0 -0
  474. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/fingerprint.py +0 -0
  475. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/gitlab.py +0 -0
  476. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/gitlab_action.py +0 -0
  477. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/impact.py +0 -0
  478. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/investigate.py +0 -0
  479. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/kinds.py +0 -0
  480. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/monitors.py +0 -0
  481. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/owners.py +0 -0
  482. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/quarantine_runtime.py +0 -0
  483. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/report.py +0 -0
  484. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/retry.py +0 -0
  485. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/selfheal.py +0 -0
  486. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/shards.py +0 -0
  487. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/share.py +0 -0
  488. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/store.py +0 -0
  489. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/testreports.py +0 -0
  490. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/tickets.py +0 -0
  491. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/track_record.json +0 -0
  492. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/triage.py +0 -0
  493. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/triggers.py +0 -0
  494. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/upload.py +0 -0
  495. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/ci/validate.py +0 -0
  496. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/codeowners.py +0 -0
  497. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/__init__.py +0 -0
  498. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/action.py +0 -0
  499. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/affiliation.py +0 -0
  500. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/analyze.py +0 -0
  501. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/build.py +0 -0
  502. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/chaoss.py +0 -0
  503. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/cli.py +0 -0
  504. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/collect.py +0 -0
  505. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/context.py +0 -0
  506. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/community/report.py +0 -0
  507. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/__init__.py +0 -0
  508. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/ai_spend.py +0 -0
  509. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/base.py +0 -0
  510. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/check.py +0 -0
  511. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/copilot.py +0 -0
  512. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/discord.py +0 -0
  513. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/discourse.py +0 -0
  514. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/incident_io.py +0 -0
  515. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/jira.py +0 -0
  516. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/linear.py +0 -0
  517. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/pagerduty.py +0 -0
  518. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/slack.py +0 -0
  519. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/sonar.py +0 -0
  520. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/store.py +0 -0
  521. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/tracker.py +0 -0
  522. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/connectors/writeback.py +0 -0
  523. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/contribute/__init__.py +0 -0
  524. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/contribute/brief.py +0 -0
  525. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/contribute/cli.py +0 -0
  526. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/__init__.py +0 -0
  527. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/actors.py +0 -0
  528. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/agent_ledger.py +0 -0
  529. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/agreements.py +0 -0
  530. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/ai_outcomes.py +0 -0
  531. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/alerts.py +0 -0
  532. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/appdata.py +0 -0
  533. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/bucket.py +0 -0
  534. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/bugs.py +0 -0
  535. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/calendar.py +0 -0
  536. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/capex.py +0 -0
  537. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/change_risk.py +0 -0
  538. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/changes.py +0 -0
  539. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/chat.py +0 -0
  540. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/config.py +0 -0
  541. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/dataflow.py +0 -0
  542. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/decisions.py +0 -0
  543. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/delivery.py +0 -0
  544. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/delivery_peers.py +0 -0
  545. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/delivery_report.py +0 -0
  546. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/deliverycli.py +0 -0
  547. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/devlake_dora.sql +0 -0
  548. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/digest.py +0 -0
  549. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/explaincli.py +0 -0
  550. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/explore.py +0 -0
  551. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/export.py +0 -0
  552. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/exportcli.py +0 -0
  553. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/findings.py +0 -0
  554. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/health.py +0 -0
  555. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/identity.py +0 -0
  556. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/insights.py +0 -0
  557. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/insightscli.py +0 -0
  558. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/installdoc.py +0 -0
  559. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/investment.py +0 -0
  560. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/joins.py +0 -0
  561. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/llmsdoc.py +0 -0
  562. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/merge_queue.py +0 -0
  563. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/metrics.py +0 -0
  564. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/model.py +0 -0
  565. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/projectcli.py +0 -0
  566. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/propose.py +0 -0
  567. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/pulse.py +0 -0
  568. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/recorded.py +0 -0
  569. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/releases.py +0 -0
  570. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/requests.py +0 -0
  571. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/resync.py +0 -0
  572. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/schema.py +0 -0
  573. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/services.py +0 -0
  574. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/settings.py +0 -0
  575. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/sqlcli.py +0 -0
  576. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/stats.py +0 -0
  577. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/store.py +0 -0
  578. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/summary.py +0 -0
  579. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/time.py +0 -0
  580. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/tomledit.py +0 -0
  581. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/uicli.py +0 -0
  582. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/webapp.py +0 -0
  583. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/what_changed.py +0 -0
  584. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/core/workspace.py +0 -0
  585. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/__init__.py +0 -0
  586. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/action.py +0 -0
  587. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/actions_vulns.py +0 -0
  588. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/cli.py +0 -0
  589. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/dossier.py +0 -0
  590. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/evidence.py +0 -0
  591. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/fixplan.py +0 -0
  592. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/guarddog.py +0 -0
  593. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/hygiene.py +0 -0
  594. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/imports.py +0 -0
  595. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/lockfiles.py +0 -0
  596. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/lookalike.py +0 -0
  597. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/reach.py +0 -0
  598. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/release.py +0 -0
  599. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/runtimes.py +0 -0
  600. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/supply.py +0 -0
  601. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/deps/vulns.py +0 -0
  602. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/editors/__init__.py +0 -0
  603. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/editors/vscode/extension.js +0 -0
  604. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/editors/vscode/marks.js +0 -0
  605. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/__init__.py +0 -0
  606. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/action.py +0 -0
  607. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/analyze.py +0 -0
  608. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/automate.py +0 -0
  609. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/build.py +0 -0
  610. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/cli.py +0 -0
  611. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/code_hosts.py +0 -0
  612. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/collect.py +0 -0
  613. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/gitlab_mr.py +0 -0
  614. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/knowledge.py +0 -0
  615. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/peers.py +0 -0
  616. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/preflight.py +0 -0
  617. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/report.py +0 -0
  618. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/rules.py +0 -0
  619. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/store.py +0 -0
  620. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/survival.py +0 -0
  621. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/flow/triage.py +0 -0
  622. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/mcp_server.py +0 -0
  623. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/__init__.py +0 -0
  624. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/action.py +0 -0
  625. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/batch.py +0 -0
  626. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/campaigns.py +0 -0
  627. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/catalog.py +0 -0
  628. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/checks.py +0 -0
  629. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/cli.py +0 -0
  630. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/descriptor.py +0 -0
  631. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/export.py +0 -0
  632. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/github.py +0 -0
  633. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/golden.py +0 -0
  634. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/history.py +0 -0
  635. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/inventory.py +0 -0
  636. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/owners.py +0 -0
  637. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/pages.py +0 -0
  638. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/rollup.py +0 -0
  639. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/portal/scorecard.py +0 -0
  640. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/security/__init__.py +0 -0
  641. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/security/probes.py +0 -0
  642. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/security/repo_checks.py +0 -0
  643. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/security/workflows.py +0 -0
  644. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/shell.py +0 -0
  645. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/site.py +0 -0
  646. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/LICENSES.md +0 -0
  647. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/AddRepo-KRPZXWCY.js +0 -0
  648. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/SetupRunning-XWFQAKRZ.js +0 -0
  649. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/accuracy-data-OQTDXI7Y.js +0 -0
  650. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/agents-data-BAL6QAOF.js +0 -0
  651. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-24LFKFZ6.js +0 -0
  652. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-3IXWEOIJ.js +0 -0
  653. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-3ROQFHPV.js +0 -0
  654. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-45PGAQRO.js +0 -0
  655. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-4H53OYLG.js +0 -0
  656. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-4LUI7O5P.js +0 -0
  657. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-4SQPQ5TB.js +0 -0
  658. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-4WKQTWUC.js +0 -0
  659. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-576YHDEK.js +0 -0
  660. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-6RLVD2DT.js +0 -0
  661. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-763NH7PP.js +0 -0
  662. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-76WAVKUG.js +0 -0
  663. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-7II2BD5F.js +0 -0
  664. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-ASYNLVOP.js +0 -0
  665. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-CTKDYZMG.js +0 -0
  666. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-CVB26NMC.js +0 -0
  667. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-G7NGB5UX.js +0 -0
  668. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-GPVLJRZD.js +0 -0
  669. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-GQYFN4PE.js +0 -0
  670. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-GT4EAKAO.js +0 -0
  671. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-IYMBFPCV.js +0 -0
  672. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-LAAGCPU3.js +0 -0
  673. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-P5TXDD45.js +0 -0
  674. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-PABICGBL.js +0 -0
  675. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-RPXHAG6F.js +0 -0
  676. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-S2ZBMEVA.js +0 -0
  677. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-S654BBEP.js +0 -0
  678. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-T7QVTNXF.js +0 -0
  679. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-TO4VVRZ7.js +0 -0
  680. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-VQ5YXO54.js +0 -0
  681. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-VWKSMFWJ.js +0 -0
  682. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/chunk-YTANGYYH.js +0 -0
  683. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/connect-KONYWYTT.js +0 -0
  684. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/connections-data-2DYS4UVW.js +0 -0
  685. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/more-PC6FVS3P.js +0 -0
  686. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/more-RCIVCUDE.js +0 -0
  687. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/more-ZKKRY6NO.css +0 -0
  688. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/sealbox-35YL4EUH.js +0 -0
  689. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/session-DYYTOE2K.js +0 -0
  690. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/settingsApply-2HRJEZYM.js +0 -0
  691. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/settingsReview-GX2FZQ4M.js +0 -0
  692. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/chunks/uPlot.esm-OIWT3AHJ.js +0 -0
  693. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/ci/impact.json +0 -0
  694. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/ci/quarantine.json +0 -0
  695. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/ci/tickets.json +0 -0
  696. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/alerts.json +0 -0
  697. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/app.json +0 -0
  698. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/community.json +0 -0
  699. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/connectors.json +0 -0
  700. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/data.json +0 -0
  701. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/decisions.json +0 -0
  702. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/delivery.json +0 -0
  703. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/deps.json +0 -0
  704. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/flow.json +0 -0
  705. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/health.json +0 -0
  706. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/insights.json +0 -0
  707. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/pulse.json +0 -0
  708. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/security.json +0 -0
  709. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/ci_jobs.jsonl +0 -0
  710. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/devlake_project_pr_metrics.jsonl +0 -0
  711. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/devlake_pull_requests.jsonl +0 -0
  712. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/manifest.json +0 -0
  713. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/prs.jsonl +0 -0
  714. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/summary/tests.jsonl +0 -0
  715. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/supply.json +0 -0
  716. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/mobile/vulns.json +0 -0
  717. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/alerts.json +0 -0
  718. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/app.json +0 -0
  719. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/community.json +0 -0
  720. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/connectors.json +0 -0
  721. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/data.json +0 -0
  722. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/decisions.json +0 -0
  723. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/delivery.json +0 -0
  724. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/deps.json +0 -0
  725. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/flow.json +0 -0
  726. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/health.json +0 -0
  727. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/insights.json +0 -0
  728. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/pulse.json +0 -0
  729. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/security.json +0 -0
  730. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/ci_jobs.jsonl +0 -0
  731. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/devlake_project_pr_metrics.jsonl +0 -0
  732. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/devlake_pull_requests.jsonl +0 -0
  733. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/manifest.json +0 -0
  734. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/prs.jsonl +0 -0
  735. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/summary/tests.jsonl +0 -0
  736. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/supply.json +0 -0
  737. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/payments-api/vulns.json +0 -0
  738. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/portal.json +0 -0
  739. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/settings.json +0 -0
  740. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/alerts.json +0 -0
  741. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/app.json +0 -0
  742. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/community.json +0 -0
  743. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/connectors.json +0 -0
  744. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/data.json +0 -0
  745. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/decisions.json +0 -0
  746. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/delivery.json +0 -0
  747. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/deps.json +0 -0
  748. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/flow.json +0 -0
  749. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/health.json +0 -0
  750. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/insights.json +0 -0
  751. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/pulse.json +0 -0
  752. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/security.json +0 -0
  753. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/ci_jobs.jsonl +0 -0
  754. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/devlake_project_pr_metrics.jsonl +0 -0
  755. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/devlake_pull_requests.jsonl +0 -0
  756. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/manifest.json +0 -0
  757. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/prs.jsonl +0 -0
  758. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/summary/tests.jsonl +0 -0
  759. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/supply.json +0 -0
  760. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/demo/web-app/vulns.json +0 -0
  761. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/fonts/plex-mono-400.woff2 +0 -0
  762. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/fonts/plex-sans-400.woff2 +0 -0
  763. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/fonts/plex-sans-600.woff2 +0 -0
  764. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/fonts/plex-sans-condensed-700.woff2 +0 -0
  765. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/help/accuracy.json +0 -0
  766. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/help/connectors.json +0 -0
  767. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/help/modules.json +0 -0
  768. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/help/privacy-and-security.json +0 -0
  769. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/about.css +0 -0
  770. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/about.js +0 -0
  771. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/activity.css +0 -0
  772. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/activity.js +0 -0
  773. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/agents.css +0 -0
  774. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/agents.js +0 -0
  775. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/ci.css +0 -0
  776. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/community.css +0 -0
  777. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/connections.css +0 -0
  778. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/connections.js +0 -0
  779. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/delivery.css +0 -0
  780. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/deps.css +0 -0
  781. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/explore.css +0 -0
  782. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/explore.js +0 -0
  783. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/health.css +0 -0
  784. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/health.js +0 -0
  785. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/help.css +0 -0
  786. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/help.js +0 -0
  787. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/insights.css +0 -0
  788. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/insights.js +0 -0
  789. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/investment.css +0 -0
  790. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/overview.css +0 -0
  791. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/portal.css +0 -0
  792. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/portal.js +0 -0
  793. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/prs.css +0 -0
  794. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/settings.css +0 -0
  795. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/setup.css +0 -0
  796. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/standing.css +0 -0
  797. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/pages/standing.js +0 -0
  798. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/app/settings-workflow.json +0 -0
  799. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/site/index.html +0 -0
  800. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/site/integrations.html +0 -0
  801. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/site/setup.html +0 -0
  802. {stackvitals-0.1.1 → stackvitals-0.1.2}/src/stackvitals/web/site/site.css +0 -0
  803. {stackvitals-0.1.1 → stackvitals-0.1.2}/templates/gitlab/stackvitals.yml +0 -0
  804. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/ci_fake.py +0 -0
  805. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/conftest.py +0 -0
  806. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/fixtures/issue_page.json +0 -0
  807. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/fixtures/osv-scan.json +0 -0
  808. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/fixtures/pr_page.json +0 -0
  809. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/fixtures/repo_meta.json +0 -0
  810. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_actions_vulns.py +0 -0
  811. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_adjudicate.py +0 -0
  812. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_adoption_study.py +0 -0
  813. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_agent_leaderboard.py +0 -0
  814. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_agent_ledger.py +0 -0
  815. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_agreement_nudges.py +0 -0
  816. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ai_markers.py +0 -0
  817. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ai_matched.py +0 -0
  818. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ai_outcomes.py +0 -0
  819. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ai_spend.py +0 -0
  820. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_api_cost.py +0 -0
  821. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_app_review.py +0 -0
  822. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_archive_cli.py +0 -0
  823. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_bench.py +0 -0
  824. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_docs.py +0 -0
  825. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_files.py +0 -0
  826. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_guarddog.py +0 -0
  827. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_mcp_messages.py +0 -0
  828. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_requests.py +0 -0
  829. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_sql.py +0 -0
  830. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_uicli.py +0 -0
  831. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_audit_workflows.py +0 -0
  832. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_base_images.py +0 -0
  833. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_began_after.py +0 -0
  834. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bench.py +0 -0
  835. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bench_by_repo.py +0 -0
  836. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bench_deploys.py +0 -0
  837. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bench_report_delivery.py +0 -0
  838. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bench_stars.py +0 -0
  839. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_branch_growth.py +0 -0
  840. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bucket.py +0 -0
  841. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_bug_backlog.py +0 -0
  842. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_capex.py +0 -0
  843. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_catalog_descriptor.py +0 -0
  844. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_change_risk.py +0 -0
  845. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_changes_14d.py +0 -0
  846. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_chat.py +0 -0
  847. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_action.py +0 -0
  848. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_action_pr.py +0 -0
  849. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_already_failing.py +0 -0
  850. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_analyze.py +0 -0
  851. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_analyze_tests.py +0 -0
  852. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_artifacts.py +0 -0
  853. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_automation.py +0 -0
  854. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_began.py +0 -0
  855. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_bench.py +0 -0
  856. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_bench_wiring.py +0 -0
  857. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_burnin.py +0 -0
  858. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_cli.py +0 -0
  859. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_collect.py +0 -0
  860. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_comment_shape.py +0 -0
  861. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_cost.py +0 -0
  862. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_decisions.py +0 -0
  863. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_depth.py +0 -0
  864. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_evidence.py +0 -0
  865. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_feedback.py +0 -0
  866. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_feedback_all.py +0 -0
  867. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_fingerprint.py +0 -0
  868. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_gitlab.py +0 -0
  869. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_groups.py +0 -0
  870. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_impact.py +0 -0
  871. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_issue_lifecycle.py +0 -0
  872. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_kinds.py +0 -0
  873. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_masking.py +0 -0
  874. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_maybe_flaky.py +0 -0
  875. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_mcp.py +0 -0
  876. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_monitors.py +0 -0
  877. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_outside.py +0 -0
  878. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_outside_ci_edit.py +0 -0
  879. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_pr_details.py +0 -0
  880. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_push_evidence.py +0 -0
  881. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_quarantine_mark.py +0 -0
  882. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_report.py +0 -0
  883. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_report_formats.py +0 -0
  884. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_retry.py +0 -0
  885. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_review_fixes.py +0 -0
  886. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_safe_rule.py +0 -0
  887. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_settings.py +0 -0
  888. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_surfaces_m3.py +0 -0
  889. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_test_verdict.py +0 -0
  890. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_testreports.py +0 -0
  891. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_triage.py +0 -0
  892. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_triggers_script.py +0 -0
  893. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_upload.py +0 -0
  894. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_verdict_check.py +0 -0
  895. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_ci_webhook_formats.py +0 -0
  896. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_code_hosts.py +0 -0
  897. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_code_survival.py +0 -0
  898. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_action.py +0 -0
  899. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_affiliation.py +0 -0
  900. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_analyze.py +0 -0
  901. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_bench.py +0 -0
  902. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_cli.py +0 -0
  903. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_collect.py +0 -0
  904. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_context.py +0 -0
  905. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_dependency.py +0 -0
  906. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_discussions.py +0 -0
  907. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_fetch.py +0 -0
  908. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_report.py +0 -0
  909. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_community_stated.py +0 -0
  910. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_config.py +0 -0
  911. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connector_checks.py +0 -0
  912. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connector_framework.py +0 -0
  913. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connector_review.py +0 -0
  914. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connectors.py +0 -0
  915. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connectors_chat.py +0 -0
  916. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connectors_discourse.py +0 -0
  917. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connectors_epics.py +0 -0
  918. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_connectors_writeback.py +0 -0
  919. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_contribute_brief.py +0 -0
  920. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_contribute_prospective.py +0 -0
  921. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_contribute_review.py +0 -0
  922. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_convert.py +0 -0
  923. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_actors.py +0 -0
  924. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_agreements.py +0 -0
  925. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_alerts.py +0 -0
  926. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_appdata.py +0 -0
  927. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_decisions.py +0 -0
  928. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_delivery.py +0 -0
  929. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_delivery_peers.py +0 -0
  930. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_delivery_surfaces.py +0 -0
  931. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_digest.py +0 -0
  932. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_digest_step.py +0 -0
  933. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_explore.py +0 -0
  934. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_export.py +0 -0
  935. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_findings.py +0 -0
  936. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_findings_ledger.py +0 -0
  937. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_insights.py +0 -0
  938. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_insights_surfaces.py +0 -0
  939. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_metrics.py +0 -0
  940. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_model.py +0 -0
  941. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_otel.py +0 -0
  942. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_propose.py +0 -0
  943. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_pulse.py +0 -0
  944. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_recovery.py +0 -0
  945. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_request_wiring.py +0 -0
  946. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_requests.py +0 -0
  947. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_requests_wording.py +0 -0
  948. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_roles_wiring.py +0 -0
  949. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_runner.py +0 -0
  950. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_schema.py +0 -0
  951. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_services.py +0 -0
  952. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_settings.py +0 -0
  953. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_sql_org.py +0 -0
  954. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_stats.py +0 -0
  955. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_store.py +0 -0
  956. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_summary.py +0 -0
  957. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_summary_churn.py +0 -0
  958. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_tomledit.py +0 -0
  959. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_ui.py +0 -0
  960. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_webapp.py +0 -0
  961. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_webapp_version.py +0 -0
  962. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_core_workspace.py +0 -0
  963. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_cost_guard.py +0 -0
  964. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_count_repos.py +0 -0
  965. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_coverage.py +0 -0
  966. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_cli.py +0 -0
  967. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_fetch.py +0 -0
  968. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_outcomes.py +0 -0
  969. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_queries.py +0 -0
  970. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_runner.py +0 -0
  971. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_seed.py +0 -0
  972. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_state.py +0 -0
  973. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_crawl_writer.py +0 -0
  974. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_delivery_bench.py +0 -0
  975. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_delivery_deploy_check.py +0 -0
  976. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_delivery_rules_m2.py +0 -0
  977. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_bumps.py +0 -0
  978. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_crawl.py +0 -0
  979. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_exploits.py +0 -0
  980. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_fixed_versions.py +0 -0
  981. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_ledger.py +0 -0
  982. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_map.py +0 -0
  983. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_osv.py +0 -0
  984. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_owners.py +0 -0
  985. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_top.py +0 -0
  986. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_trend_quiet.py +0 -0
  987. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_trends.py +0 -0
  988. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dep_watch.py +0 -0
  989. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deploy_attempts.py +0 -0
  990. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deploy_ranges.py +0 -0
  991. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deployment_history.py +0 -0
  992. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deployment_list.py +0 -0
  993. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_action.py +0 -0
  994. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_cli.py +0 -0
  995. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_dossier.py +0 -0
  996. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_hygiene.py +0 -0
  997. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_imports.py +0 -0
  998. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_lookalike.py +0 -0
  999. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_paths.py +0 -0
  1000. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_policy.py +0 -0
  1001. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_reach.py +0 -0
  1002. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_release.py +0 -0
  1003. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_review_fixes.py +0 -0
  1004. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_runtimes.py +0 -0
  1005. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_deps_vulns.py +0 -0
  1006. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_devlake_cicd.py +0 -0
  1007. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dora_evidence.py +0 -0
  1008. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dora_proof.py +0 -0
  1009. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dora_rows.py +0 -0
  1010. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_dora_weeks.py +0 -0
  1011. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_enterprise_server.py +0 -0
  1012. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_events.py +0 -0
  1013. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_explain_cli.py +0 -0
  1014. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_fair.py +0 -0
  1015. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_fixplan.py +0 -0
  1016. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flake_code_kinds.py +0 -0
  1017. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flaky_natural.py +0 -0
  1018. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flaky_sample.py +0 -0
  1019. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flaky_score_fair.py +0 -0
  1020. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flaky_test_cost.py +0 -0
  1021. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flaky_tickets.py +0 -0
  1022. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_analyze.py +0 -0
  1023. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_automate.py +0 -0
  1024. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_bench_pipeline.py +0 -0
  1025. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_collect.py +0 -0
  1026. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_collect_delivery.py +0 -0
  1027. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_definitions.py +0 -0
  1028. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_m2.py +0 -0
  1029. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_peers.py +0 -0
  1030. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_preflight.py +0 -0
  1031. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_report.py +0 -0
  1032. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_round2.py +0 -0
  1033. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_round3.py +0 -0
  1034. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_triage.py +0 -0
  1035. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_windows.py +0 -0
  1036. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_flow_wiring.py +0 -0
  1037. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_fork_reports.py +0 -0
  1038. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_gitlab_action.py +0 -0
  1039. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_gitlab_delivery.py +0 -0
  1040. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_graphql.py +0 -0
  1041. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_health.py +0 -0
  1042. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_identities.py +0 -0
  1043. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_identity.py +0 -0
  1044. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_identity_everywhere.py +0 -0
  1045. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_identity_match.py +0 -0
  1046. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_insights_chains.py +0 -0
  1047. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_investment.py +0 -0
  1048. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_jira_fields.py +0 -0
  1049. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_knowledge_names.py +0 -0
  1050. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_labeller.py +0 -0
  1051. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_llms_txt.py +0 -0
  1052. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_local_run.py +0 -0
  1053. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_m1_small_fixes.py +0 -0
  1054. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_masking_card.py +0 -0
  1055. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_mcp_core.py +0 -0
  1056. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_mcp_provenance.py +0 -0
  1057. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_merge_queue.py +0 -0
  1058. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_mergescout_token.py +0 -0
  1059. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_modular_install.py +0 -0
  1060. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_nulls_power.py +0 -0
  1061. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_numbers_review.py +0 -0
  1062. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_odds_backtest.py +0 -0
  1063. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_outside_fresh.py +0 -0
  1064. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_owners.py +0 -0
  1065. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pagers_copilot.py +0 -0
  1066. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pages_deploy.py +0 -0
  1067. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_parsing_review.py +0 -0
  1068. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_peer_fit.py +0 -0
  1069. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_polish_m1.py +0 -0
  1070. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_polish_m2.py +0 -0
  1071. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_polish_review.py +0 -0
  1072. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_app_facts.py +0 -0
  1073. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_campaigns.py +0 -0
  1074. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_catalog.py +0 -0
  1075. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_checks.py +0 -0
  1076. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_export.py +0 -0
  1077. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_golden.py +0 -0
  1078. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_handcheck.py +0 -0
  1079. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_history.py +0 -0
  1080. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_html.py +0 -0
  1081. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_m1.py +0 -0
  1082. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_nudges.py +0 -0
  1083. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_reviews.py +0 -0
  1084. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_rollup.py +0 -0
  1085. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_portal_scorecard.py +0 -0
  1086. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pr_exclusions.py +0 -0
  1087. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pr_licences.py +0 -0
  1088. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pr_rules.py +0 -0
  1089. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_production_branches.py +0 -0
  1090. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_project_dora.py +0 -0
  1091. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_pulse_trend.py +0 -0
  1092. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_quarantine_expiry.py +0 -0
  1093. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_quarantine_runners.py +0 -0
  1094. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_quarantine_runtime.py +0 -0
  1095. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_recorded.py +0 -0
  1096. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_relay_and_polish.py +0 -0
  1097. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_release_quality.py +0 -0
  1098. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_releases.py +0 -0
  1099. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_releases_ratelimit.py +0 -0
  1100. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_report.py +0 -0
  1101. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_report_validate.py +0 -0
  1102. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_response_times.py +0 -0
  1103. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_result_quality.py +0 -0
  1104. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_resync.py +0 -0
  1105. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_review_fixes.py +0 -0
  1106. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_review_fixes_action.py +0 -0
  1107. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_review_fixes_p3.py +0 -0
  1108. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_review_fixes_requests.py +0 -0
  1109. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_review_m3.py +0 -0
  1110. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_sample.py +0 -0
  1111. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_schema_sections.py +0 -0
  1112. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_scorecard_agreement.py +0 -0
  1113. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_security_checks.py +0 -0
  1114. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_selfheal.py +0 -0
  1115. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_services.py +0 -0
  1116. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_setup_check.py +0 -0
  1117. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_setup_template.py +0 -0
  1118. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_shared_bench.py +0 -0
  1119. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_shell_app_link.py +0 -0
  1120. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_shrinkage_groups.py +0 -0
  1121. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_check.py +0 -0
  1122. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_cli.py +0 -0
  1123. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_identity.py +0 -0
  1124. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_issues.py +0 -0
  1125. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_labels.py +0 -0
  1126. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_repo_stats.py +0 -0
  1127. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_signals_walls.py +0 -0
  1128. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_site_build.py +0 -0
  1129. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_snapshot_build.py +0 -0
  1130. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_snapshot_publish.py +0 -0
  1131. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_sonar.py +0 -0
  1132. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_state_report.py +0 -0
  1133. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_store.py +0 -0
  1134. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_store_cli.py +0 -0
  1135. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_stream.py +0 -0
  1136. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_suite_packaging.py +0 -0
  1137. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_supply.py +0 -0
  1138. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_sweep.py +0 -0
  1139. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_team_dora.py +0 -0
  1140. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_test_variants.py +0 -0
  1141. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_action_pack.py +0 -0
  1142. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_live.py +0 -0
  1143. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_queries.py +0 -0
  1144. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_server.py +0 -0
  1145. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_speed.py +0 -0
  1146. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_store.py +0 -0
  1147. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tool_tracking.py +0 -0
  1148. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_tracker.py +0 -0
  1149. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_triage_math.py +0 -0
  1150. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_triage_pipeline.py +0 -0
  1151. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_uncertainty.py +0 -0
  1152. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_verdict_feedback.py +0 -0
  1153. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_verdict_strict.py +0 -0
  1154. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_vulns_dev_only.py +0 -0
  1155. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_vulns_ignores.py +0 -0
  1156. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_vulns_inputs.py +0 -0
  1157. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_web_build.py +0 -0
  1158. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_web_next_setup.py +0 -0
  1159. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_web_replay_parity.py +0 -0
  1160. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_what_changed.py +0 -0
  1161. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/local/test_work_calendar.py +0 -0
  1162. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/signals_data.py +0 -0
  1163. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_accuracy.py +0 -0
  1164. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_bench.py +0 -0
  1165. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_ci.py +0 -0
  1166. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_community.py +0 -0
  1167. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_connectors.py +0 -0
  1168. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_contribute.py +0 -0
  1169. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_core.py +0 -0
  1170. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_crawl.py +0 -0
  1171. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_decisions.py +0 -0
  1172. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_delivery.py +0 -0
  1173. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_deps.py +0 -0
  1174. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_discover.py +0 -0
  1175. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_github.py +0 -0
  1176. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_insights.py +0 -0
  1177. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_portal.py +0 -0
  1178. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_signals.py +0 -0
  1179. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_snapshot.py +0 -0
  1180. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_store.py +0 -0
  1181. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_surfaces.py +0 -0
  1182. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_team.py +0 -0
  1183. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_tool.py +0 -0
  1184. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/test_flow_web.py +0 -0
  1185. {stackvitals-0.1.1 → stackvitals-0.1.2}/tests/tool_data.py +0 -0
  1186. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/README.md +0 -0
  1187. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/extra-ci.mjs +0 -0
  1188. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/extra-delivery.mjs +0 -0
  1189. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/extra-deps.mjs +0 -0
  1190. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/extra-people.mjs +0 -0
  1191. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/extra-portal.mjs +0 -0
  1192. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/settings.json +0 -0
  1193. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/demo/source.mjs +0 -0
  1194. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/defaults.spec.ts +0 -0
  1195. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/fixtures.ts +0 -0
  1196. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/flows.spec.ts +0 -0
  1197. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/links.spec.ts +0 -0
  1198. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/playwright.config.ts +0 -0
  1199. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/serve.mjs +0 -0
  1200. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/sweep.spec.ts +0 -0
  1201. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/e2e/welcome.spec.ts +0 -0
  1202. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/package-lock.json +0 -0
  1203. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/package.json +0 -0
  1204. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/scripts/docs.mjs +0 -0
  1205. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/AddRepo.tsx +0 -0
  1206. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/App.tsx +0 -0
  1207. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/Profile.tsx +0 -0
  1208. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/jump.ts +0 -0
  1209. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/router.ts +0 -0
  1210. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/app/routes.ts +0 -0
  1211. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/charts/BarChart.tsx +0 -0
  1212. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/charts/MetricHero.tsx +0 -0
  1213. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/charts/ScrubChart.tsx +0 -0
  1214. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/charts/Sparkline.tsx +0 -0
  1215. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/charts/metric.ts +0 -0
  1216. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/files.ts +0 -0
  1217. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/format.ts +0 -0
  1218. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/repos.ts +0 -0
  1219. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/requestIssue.ts +0 -0
  1220. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/source.ts +0 -0
  1221. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/store.ts +0 -0
  1222. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/types.ts +0 -0
  1223. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/data/write.ts +0 -0
  1224. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/Decide.tsx +0 -0
  1225. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/Evidence.tsx +0 -0
  1226. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/Health.tsx +0 -0
  1227. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/SetupRunning.tsx +0 -0
  1228. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/agents-data.ts +0 -0
  1229. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/brand-logos.ts +0 -0
  1230. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/connect.css +0 -0
  1231. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/connect.tsx +0 -0
  1232. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/connectRepos.tsx +0 -0
  1233. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/connections-data.ts +0 -0
  1234. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/connstatus.ts +0 -0
  1235. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/helpLink.ts +0 -0
  1236. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/markdown.ts +0 -0
  1237. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/sealbox.ts +0 -0
  1238. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/sealedbox.d.ts +0 -0
  1239. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/secrets.ts +0 -0
  1240. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsApply.ts +0 -0
  1241. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsModel.ts +0 -0
  1242. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsPending.ts +0 -0
  1243. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsReplay.ts +0 -0
  1244. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsReview.tsx +0 -0
  1245. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/settingsToml.ts +0 -0
  1246. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/text-css.d.ts +0 -0
  1247. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/features/vitals.ts +0 -0
  1248. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/caps.ts +0 -0
  1249. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/client.ts +0 -0
  1250. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/config.ts +0 -0
  1251. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/detect.ts +0 -0
  1252. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/diff.ts +0 -0
  1253. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/links.ts +0 -0
  1254. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/mine.ts +0 -0
  1255. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/names.ts +0 -0
  1256. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/oauth.ts +0 -0
  1257. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/open.ts +0 -0
  1258. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/session.ts +0 -0
  1259. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/setup.ts +0 -0
  1260. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/signout.ts +0 -0
  1261. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/token.ts +0 -0
  1262. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/watch.ts +0 -0
  1263. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/github/workflow.ts +0 -0
  1264. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/main.tsx +0 -0
  1265. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/about/parts.tsx +0 -0
  1266. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/about-accuracy.d.ts +0 -0
  1267. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/about.css +0 -0
  1268. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/about.tsx +0 -0
  1269. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/accuracy-data.js +0 -0
  1270. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/activity.css +0 -0
  1271. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/activity.tsx +0 -0
  1272. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/agents/parts.tsx +0 -0
  1273. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/agents.css +0 -0
  1274. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/agents.tsx +0 -0
  1275. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci/more.tsx +0 -0
  1276. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci/parts.tsx +0 -0
  1277. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci/setup.tsx +0 -0
  1278. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci.css +0 -0
  1279. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/ci.tsx +0 -0
  1280. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/community/command.ts +0 -0
  1281. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/community/report.tsx +0 -0
  1282. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/community.css +0 -0
  1283. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/community.tsx +0 -0
  1284. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/connections.css +0 -0
  1285. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/connections.tsx +0 -0
  1286. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery/blocks.css +0 -0
  1287. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery/blocks.tsx +0 -0
  1288. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery/more.tsx +0 -0
  1289. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery/sources.tsx +0 -0
  1290. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery.css +0 -0
  1291. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/delivery.tsx +0 -0
  1292. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/blocks.css +0 -0
  1293. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/blocks.tsx +0 -0
  1294. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/lookup.ts +0 -0
  1295. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/security.tsx +0 -0
  1296. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps/tools.tsx +0 -0
  1297. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps.css +0 -0
  1298. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/deps.tsx +0 -0
  1299. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/explore/parts.tsx +0 -0
  1300. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/explore/query.ts +0 -0
  1301. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/explore.css +0 -0
  1302. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/explore.tsx +0 -0
  1303. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/health.css +0 -0
  1304. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/health.tsx +0 -0
  1305. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/help/commands.tsx +0 -0
  1306. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/help.css +0 -0
  1307. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/help.tsx +0 -0
  1308. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/insights/parts.tsx +0 -0
  1309. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/insights.css +0 -0
  1310. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/insights.tsx +0 -0
  1311. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/investment.css +0 -0
  1312. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/investment.tsx +0 -0
  1313. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/overview/parts.tsx +0 -0
  1314. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/overview.css +0 -0
  1315. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/overview.tsx +0 -0
  1316. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/access.ts +0 -0
  1317. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/panel.css +0 -0
  1318. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/panel.tsx +0 -0
  1319. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/parts.tsx +0 -0
  1320. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/setup.ts +0 -0
  1321. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal/tools.tsx +0 -0
  1322. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal.css +0 -0
  1323. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/portal.tsx +0 -0
  1324. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/prs/more.tsx +0 -0
  1325. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/prs/parts.tsx +0 -0
  1326. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/prs/preflight.ts +0 -0
  1327. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/prs.css +0 -0
  1328. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/prs.tsx +0 -0
  1329. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/settings.css +0 -0
  1330. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/settings.tsx +0 -0
  1331. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/setup.css +0 -0
  1332. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/setup.tsx +0 -0
  1333. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/standing.css +0 -0
  1334. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/standing.tsx +0 -0
  1335. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/welcome-sheet.css +0 -0
  1336. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/welcome-sheet.tsx +0 -0
  1337. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/pages/welcome.tsx +0 -0
  1338. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/charts.css +0 -0
  1339. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/components.css +0 -0
  1340. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/index.css +0 -0
  1341. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/styles/sheet.css +0 -0
  1342. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Button.tsx +0 -0
  1343. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Page.tsx +0 -0
  1344. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Popover.tsx +0 -0
  1345. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Portal.tsx +0 -0
  1346. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Sheet.tsx +0 -0
  1347. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/Table.tsx +0 -0
  1348. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/bits.tsx +0 -0
  1349. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/controls.tsx +0 -0
  1350. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/icons.tsx +0 -0
  1351. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/motion.ts +0 -0
  1352. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/src/ui/prefill.tsx +0 -0
  1353. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/ciworkflow.test.ts +0 -0
  1354. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/client.test.ts +0 -0
  1355. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/connstatus.test.ts +0 -0
  1356. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/depstools.test.ts +0 -0
  1357. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/explorequery.test.ts +0 -0
  1358. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/fake.ts +0 -0
  1359. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/links.test.ts +0 -0
  1360. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/load.mjs +0 -0
  1361. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/markdown.test.ts +0 -0
  1362. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/portalsetup.test.ts +0 -0
  1363. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/preflight.test.ts +0 -0
  1364. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/run.mjs +0 -0
  1365. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/secrets.test.ts +0 -0
  1366. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/settings.test.ts +0 -0
  1367. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/setup.test.ts +0 -0
  1368. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/test/workflow.test.ts +0 -0
  1369. {stackvitals-0.1.1 → stackvitals-0.1.2}/web/tsconfig.json +0 -0
  1370. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/README.md +0 -0
  1371. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/package.json +0 -0
  1372. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/relay/README.md +0 -0
  1373. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/relay/package.json +0 -0
  1374. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/relay/src/index.js +0 -0
  1375. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/relay/test/index.test.mjs +0 -0
  1376. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/relay/wrangler.toml +0 -0
  1377. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/src/index.js +0 -0
  1378. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/test/index.test.mjs +0 -0
  1379. {stackvitals-0.1.1 → stackvitals-0.1.2}/worker/wrangler.toml +0 -0
@@ -34,18 +34,18 @@ jobs:
34
34
  echo "skip=true" >> "$GITHUB_OUTPUT"
35
35
  echo "Today's snapshot is already published; nothing to do."
36
36
  fi
37
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
37
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
38
38
  if: steps.guard.outputs.skip != 'true'
39
39
  with:
40
40
  persist-credentials: false
41
- - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
41
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
42
42
  if: steps.guard.outputs.skip != 'true'
43
43
  with:
44
44
  python-version: "3.11"
45
45
  cache: pip
46
46
  cache-dependency-path: pyproject.toml
47
47
  # Downloaded crawl bundles are kept between runs, so each day fetches only new ones.
48
- - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
48
+ - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
49
49
  if: steps.guard.outputs.skip != 'true'
50
50
  with:
51
51
  path: data/bronze
@@ -0,0 +1,32 @@
1
+ name: MCP registry
2
+ # Lists server.json in the MCP registry after each successful release (or by hand). GitHub's OIDC token proves the
3
+ # org namespace, so no token is stored.
4
+ on:
5
+ workflow_run:
6
+ workflows: [Release]
7
+ types: [completed]
8
+ workflow_dispatch:
9
+ permissions: {}
10
+ jobs:
11
+ publish:
12
+ if: github.repository == 'stackvitals/stackvitals' && (github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success')
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 10
15
+ permissions:
16
+ contents: read
17
+ id-token: write # the registry's GitHub OIDC sign-in
18
+ steps:
19
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
20
+ with:
21
+ persist-credentials: false
22
+ # The released commit, not whatever main holds now.
23
+ ref: ${{ github.event.workflow_run.head_sha || github.sha }}
24
+ - name: Install mcp-publisher (pinned, checksum checked)
25
+ run: |
26
+ curl -sSfL -o mcp-publisher.tar.gz https://github.com/modelcontextprotocol/registry/releases/download/v1.8.7/mcp-publisher_linux_amd64.tar.gz
27
+ echo "00b21004149a4ce66f0782508ae4a2bce67d1bea395a8da0bd8028159fb59579 mcp-publisher.tar.gz" | sha256sum -c -
28
+ tar -xzf mcp-publisher.tar.gz mcp-publisher
29
+ - name: Publish
30
+ run: |
31
+ ./mcp-publisher login github-oidc
32
+ ./mcp-publisher publish
@@ -30,8 +30,8 @@ jobs:
30
30
  # Code search (finding adopters) needs a person's token; the built-in one reads everything else.
31
31
  GH_TOKEN: ${{ secrets.PROSPECTIVE_TOKEN || github.token }}
32
32
  steps:
33
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
34
- - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
33
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
34
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
35
35
  with:
36
36
  python-version: "3.11"
37
37
  cache: pip
@@ -14,7 +14,7 @@ jobs:
14
14
  permissions:
15
15
  contents: read
16
16
  steps:
17
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
17
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
18
18
  with:
19
19
  persist-credentials: false
20
20
  - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
@@ -23,7 +23,7 @@ jobs:
23
23
  - name: Build
24
24
  # The build backend is pinned, so a new upload to PyPI can never change what gets signed.
25
25
  run: uv build --build-constraint .github/build-constraints.txt --no-cache --out-dir dist
26
- - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
26
+ - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
27
27
  with:
28
28
  name: dist
29
29
  path: dist/
@@ -39,7 +39,7 @@ jobs:
39
39
  id-token: write # Sigstore's keyless signing and the provenance attestation
40
40
  attestations: write
41
41
  steps:
42
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
42
+ - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
43
43
  with:
44
44
  name: dist
45
45
  path: dist
@@ -85,7 +85,7 @@ jobs:
85
85
  id-token: write # the short-lived PyPI upload token, by OIDC
86
86
  steps:
87
87
  # The files the build job made and the publish job signed, not a rebuild.
88
- - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
88
+ - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
89
89
  with:
90
90
  name: dist
91
91
  path: dist
@@ -13,11 +13,11 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  timeout-minutes: 30
15
15
  steps:
16
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
16
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
17
17
  with:
18
18
  persist-credentials: false
19
19
  - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
20
- - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
20
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
21
21
  with:
22
22
  node-version: 22
23
23
  # The web app's build tools, so the suite can rebuild the app and check the committed build is current.
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2 (2026-10-31)
4
+
5
+ - `stackvitals init owner/repo` sets StackVitals up in one command: commits the workflow (or opens a pull request), follows
6
+ the first run and turns on Pages for a public repo; a private repo keeps Pages off and opens with `stackvitals ui`.
7
+ - The StackVitals cube is the app's logo in the sidebar, the browser tab and the splash; the logo picker is gone.
8
+ - The README opens with the logo, a short tour and the architecture; the architecture docs open with a detailed diagram.
9
+
3
10
  ## 0.1.1 (2026-10-31)
4
11
 
5
12
  - The Action's description is shorter, to fit the GitHub Marketplace listing. No other change.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stackvitals
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Free, open-source developer suite: CI health, team flow, dependencies, community, and MergeScout for contributors.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -40,11 +40,29 @@ Provides-Extra: sql
40
40
  Requires-Dist: duckdb<3,>=1.3; extra == 'sql'
41
41
  Description-Content-Type: text/markdown
42
42
 
43
- # StackVitals
44
-
45
- [![PyPI](https://img.shields.io/pypi/v/stackvitals)](https://pypi.org/project/stackvitals/)
46
- [![GitHub Marketplace](https://img.shields.io/badge/Marketplace-StackVitals-green?logo=github)](https://github.com/marketplace/actions/stackvitals)
47
- [![Tests](https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml/badge.svg)](https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml)
43
+ <p align="center">
44
+ <picture>
45
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/lockup-dark.png">
46
+ <img alt="StackVitals" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/lockup-light.png" width="420">
47
+ </picture>
48
+ </p>
49
+
50
+ <p align="center"><b>The vital signs of your GitHub repo.</b> Flaky tests, slow reviews, delivery and DORA, risky
51
+ dependencies and community health, measured in your own GitHub Actions.</p>
52
+
53
+ <p align="center">
54
+ <a href="https://pypi.org/project/stackvitals/"><img alt="PyPI" src="https://img.shields.io/pypi/v/stackvitals?label=PyPI"></a>
55
+ <a href="https://github.com/marketplace/actions/stackvitals"><img alt="GitHub Marketplace" src="https://img.shields.io/badge/Marketplace-StackVitals-green?logo=github"></a>
56
+ <a href="https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml"><img alt="Tests" src="https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml/badge.svg"></a>
57
+ </p>
58
+
59
+ <p align="center">
60
+ <picture>
61
+ <source type="image/avif" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.avif">
62
+ <img alt="A 27-second tour: three failing CI checks sorted by StackVitals, then the app's Overview, CI Health, Pull Requests and Delivery pages" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.gif" width="880">
63
+ </picture>
64
+ <br><sub>A tour on demo data. <a href="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.mp4">Watch it with sound</a>.</sub>
65
+ </p>
48
66
 
49
67
  A free, open-source developer suite for GitHub: CI health and flaky tests, pull request flow, delivery and DORA,
50
68
  dependencies, community health and an org portal. It runs in your own GitHub Actions and keeps its history in your own
@@ -65,31 +83,14 @@ Install it as the GitHub Action `stackvitals/stackvitals@v0` (also on the
65
83
 
66
84
  <!-- mcp-name: io.github.stackvitals/stackvitals -->
67
85
 
68
- ## Three things it gets right that others get wrong
86
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
69
87
 
70
- Measured on public repos beside the rules other tools use ([docs/accuracy.md](docs/accuracy.md)):
71
-
72
- - **Where you deploy from.** With no setup, StackVitals named the right deployment source for 53 of 60 repos (30 of
73
- 35 held out). On the same 60, DevLake's default pattern got 9 and a pattern a user would typically write got 22. A
74
- wrong source makes every DORA number wrong.
75
- - **Who answered an issue.** Of the first comments by non-maintainers that the github/issue-metrics action counts as
76
- the answer, 46% are drive-bys (40-52%, held-out repos). StackVitals counts the project's answers: maintainers,
77
- regular responders and triagers.
78
- - **Whether AI help changed anything.** Agents' pull requests look 9 points less likely than people's to be merged by someone else.
79
- Compared within the same repo, month and size, the gap is +0.5 points (0.0 to +1.1): most of the raw gap comes
80
- from which repos agents work in and the size of their changes.
81
-
82
- It publishes what failed too. Of the failures an old rule called safe to re-run, 44% (15 of 34) were caused by the
83
- change. The tightened rule still got 13 of 81 held-out calls wrong (16%). A stricter one (a flake's sign in the log,
84
- no changed file named) got none of 4 fresh calls wrong, too few to show 5%, so nothing is called safe: likely flakes
85
- are re-run, never passed by the check. Each sample was labelled by two
86
- model families (Claude and Gemini); no person has audited the labels.
87
-
88
- ## What you see first
88
+ # What you see first
89
89
 
90
90
  When CI fails on a pull request, one comment sorts each failure, from the repo's own CI history:
91
91
 
92
92
  > **StackVitals: about this CI failure**
93
+ >
93
94
  > 1 of 3 failure(s) look like flakes; the rest need a look.
94
95
  >
95
96
  > | Verdict | What failed | Why |
@@ -100,7 +101,43 @@ When CI fails on a pull request, one comment sorts each failure, from the repo's
100
101
 
101
102
  The verdict check still blocks until CI is green: a known flake is re-run, never waved through.
102
103
 
103
- ## Modules
104
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
105
+
106
+ # Quick start
107
+
108
+ ```sh
109
+ pip install stackvitals
110
+ gh auth login # once, so StackVitals can use your GitHub sign-in
111
+ stackvitals init your-name/your-repo
112
+ ```
113
+
114
+ `init` adds one workflow file to your repo, runs it once and turns on your dashboard:
115
+
116
+ - **Public repo:** the dashboard goes live at `https://your-name.github.io/your-repo/`.
117
+ - **Private repo:** your data stays in your private repo, and the dashboard opens on your machine:
118
+
119
+ ```sh
120
+ stackvitals ui your-name/your-repo
121
+ ```
122
+
123
+ Just looking? `stackvitals ci report owner/repo` reports CI health for any public repo in about 20 seconds, with
124
+ nothing added to it. Prefer clicking? The app's **Setup** page does the same as `init`. More:
125
+ [docs/quickstart.md](docs/quickstart.md).
126
+
127
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
128
+
129
+ # How it works
130
+
131
+ <picture>
132
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/architecture-overview-dark.png">
133
+ <img alt="How StackVitals works: your repo and your tools feed a StackVitals run in GitHub Actions (collect, analyse with six modules, save), which commits to the stackvitals-data branch and feeds the web app, PR comments, alerts and the MCP server. No server, no account." src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/architecture-overview-light.png">
134
+ </picture>
135
+
136
+ Every step, from what starts a run to what you see: [the architecture in detail](docs/architecture.md).
137
+
138
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
139
+
140
+ # Modules
104
141
 
105
142
  | Module | What it answers | Status |
106
143
  |---|---|---|
@@ -121,7 +158,76 @@ less; its behaviour may still change.
121
158
  test reports from other CI systems, Backstage, and DevLake's tables ([docs/connectors.md](docs/connectors.md)). AI
122
159
  agents get every module through one MCP server (11 core tools by default, all 35 with `--tools all`).
123
160
 
124
- ## Start
161
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
162
+
163
+ # Connect your tools (optional)
164
+
165
+ Everything works with GitHub's built-in token. Integrations are optional; pass their keys as repository secrets:
166
+
167
+ ```yaml
168
+ - uses: stackvitals/stackvitals@v0
169
+ with:
170
+ webhook: ${{ secrets.SLACK_WEBHOOK }} # alerts to Slack, Teams or Discord
171
+ pagerduty-token: ${{ secrets.PAGERDUTY_TOKEN }} # incidents count in DORA
172
+ jira-email: ${{ secrets.JIRA_EMAIL }} # Jira, with its site URL under
173
+ jira-token: ${{ secrets.JIRA_TOKEN }} # [connectors.jira] in .github/stackvitals.toml
174
+ ```
175
+
176
+ Every input: [docs/install.md](docs/install.md). Every setting: [docs/settings.md](docs/settings.md).
177
+
178
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
179
+
180
+ # AI agents (MCP)
181
+
182
+ Your coding agent can ask StackVitals before and while it changes code: *is this failure a known flake?*, *what is
183
+ blocking PR #123?*, *who should review this?*, *is this package safe to add?* It answers from your repo's history, with
184
+ the evidence.
185
+
186
+ Claude Code:
187
+
188
+ ```sh
189
+ claude mcp add stackvitals -- uvx stackvitals serve
190
+ ```
191
+
192
+ Claude Desktop, Cursor, VS Code and other MCP clients:
193
+
194
+ ```json
195
+ {
196
+ "mcpServers": {
197
+ "stackvitals": { "command": "uvx", "args": ["stackvitals", "serve"] }
198
+ }
199
+ }
200
+ ```
201
+
202
+ It uses your `gh` login or `GITHUB_TOKEN`. The 11 core tools load by default (`ci_failure`, `is_known_flake`,
203
+ `pr_queue`, `who_should_review`, `check_package`, `insights` and more); `stackvitals serve --tools all` loads all 35.
204
+ Listed in the MCP registry as `io.github.stackvitals/stackvitals`.
205
+
206
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
207
+
208
+ # Three things it gets right that others get wrong
209
+
210
+ Measured on public repos beside the rules other tools use ([docs/accuracy.md](docs/accuracy.md)):
211
+
212
+ - **Where you deploy from.** With no setup, StackVitals named the right deployment source for 53 of 60 repos (30 of
213
+ 35 held out). On the same 60, DevLake's default pattern got 9 and a pattern a user would typically write got 22. A
214
+ wrong source makes every DORA number wrong.
215
+ - **Who answered an issue.** Of the first comments by non-maintainers that the github/issue-metrics action counts as
216
+ the answer, 46% are drive-bys (40-52%, held-out repos). StackVitals counts the project's answers: maintainers,
217
+ regular responders and triagers.
218
+ - **Whether AI help changed anything.** Agents' pull requests look 9 points less likely than people's to be merged by someone else.
219
+ Compared within the same repo, month and size, the gap is +0.5 points (0.0 to +1.1): most of the raw gap comes
220
+ from which repos agents work in and the size of their changes.
221
+
222
+ It publishes what failed too. Of the failures an old rule called safe to re-run, 44% (15 of 34) were caused by the
223
+ change. The tightened rule still got 13 of 81 held-out calls wrong (16%). A stricter one (a flake's sign in the log,
224
+ no changed file named) got none of 4 fresh calls wrong, too few to show 5%, so nothing is called safe: likely flakes
225
+ are re-run, never passed by the check. Each sample was labelled by two
226
+ model families (Claude and Gemini); no person has audited the labels.
227
+
228
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
229
+
230
+ # Learn more
125
231
 
126
232
  - **Five minutes:** [docs/quickstart.md](docs/quickstart.md). Try CI Health on any public repo first (needs
127
233
  [uv](https://docs.astral.sh/uv/) and `gh auth login` or a `GITHUB_TOKEN`):
@@ -0,0 +1,198 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/lockup-dark.png">
4
+ <img alt="StackVitals" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/lockup-light.png" width="420">
5
+ </picture>
6
+ </p>
7
+
8
+ <p align="center"><b>The vital signs of your GitHub repo.</b> Flaky tests, slow reviews, delivery and DORA, risky
9
+ dependencies and community health, measured in your own GitHub Actions.</p>
10
+
11
+ <p align="center">
12
+ <a href="https://pypi.org/project/stackvitals/"><img alt="PyPI" src="https://img.shields.io/pypi/v/stackvitals?label=PyPI"></a>
13
+ <a href="https://github.com/marketplace/actions/stackvitals"><img alt="GitHub Marketplace" src="https://img.shields.io/badge/Marketplace-StackVitals-green?logo=github"></a>
14
+ <a href="https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml"><img alt="Tests" src="https://github.com/stackvitals/stackvitals/actions/workflows/tests.yml/badge.svg"></a>
15
+ </p>
16
+
17
+ <p align="center">
18
+ <picture>
19
+ <source type="image/avif" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.avif">
20
+ <img alt="A 27-second tour: three failing CI checks sorted by StackVitals, then the app's Overview, CI Health, Pull Requests and Delivery pages" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.gif" width="880">
21
+ </picture>
22
+ <br><sub>A tour on demo data. <a href="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/stackvitals-video.mp4">Watch it with sound</a>.</sub>
23
+ </p>
24
+
25
+ A free, open-source developer suite for GitHub: CI health and flaky tests, pull request flow, delivery and DORA,
26
+ dependencies, community health and an org portal. It runs in your own GitHub Actions and keeps its history in your own
27
+ repo: no StackVitals-hosted backend, account or subscription, and optional integrations use services and keys you
28
+ choose. GitHub's built-in token covers every module in a repo; an org's private repos in the Portal need a read-only
29
+ App, and org-wide Copilot usage an org token. Actions minutes on private repos are billed by GitHub as usual
30
+ ([docs/scaling.md](docs/scaling.md#actions-minutes-private-repos)). The rules behind its verdicts are checked on public
31
+ data, with the losses published.
32
+
33
+ Every run publishes an app on your repo's GitHub Pages (or `stackvitals ui owner/repo` on your machine): one page per
34
+ module, decisions and settings saved straight from the browser, setup for more repos in a few clicks once GitHub is
35
+ connected (connecting takes one token, made from a prefilled GitHub page; Pages are turned on for public repos), and a demo at
36
+ `?demo=1`. [docs/app.md](docs/app.md) walks through it.
37
+
38
+ Install it as the GitHub Action `stackvitals/stackvitals@v0` (also on the
39
+ [GitHub Marketplace](https://github.com/marketplace/actions/stackvitals)), or the CLI and MCP server from PyPI:
40
+ `pip install stackvitals` (or run it without installing: `uvx stackvitals`).
41
+
42
+ <!-- mcp-name: io.github.stackvitals/stackvitals -->
43
+
44
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
45
+
46
+ # What you see first
47
+
48
+ When CI fails on a pull request, one comment sorts each failure, from the repo's own CI history:
49
+
50
+ > **StackVitals: about this CI failure**
51
+ >
52
+ > 1 of 3 failure(s) look like flakes; the rest need a look.
53
+ >
54
+ > | Verdict | What failed | Why |
55
+ > |---|---|---|
56
+ > | Likely flaky | test `t::flaky_one` | flaked 6 times in 80 runs in the last 30 days, last 2026-10-20, and the message shows a flake's sign ("TimeoutError"): looks like a flake, check the error, then re-run it |
57
+ > | New | test `t::new_one` | no earlier flakes: likely from this change (fails with "assert result == 2") |
58
+ > | Already failing on main | test `t::broken_one` | also failing on the default branch, not caused by this change |
59
+
60
+ The verdict check still blocks until CI is green: a known flake is re-run, never waved through.
61
+
62
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
63
+
64
+ # Quick start
65
+
66
+ ```sh
67
+ pip install stackvitals
68
+ gh auth login # once, so StackVitals can use your GitHub sign-in
69
+ stackvitals init your-name/your-repo
70
+ ```
71
+
72
+ `init` adds one workflow file to your repo, runs it once and turns on your dashboard:
73
+
74
+ - **Public repo:** the dashboard goes live at `https://your-name.github.io/your-repo/`.
75
+ - **Private repo:** your data stays in your private repo, and the dashboard opens on your machine:
76
+
77
+ ```sh
78
+ stackvitals ui your-name/your-repo
79
+ ```
80
+
81
+ Just looking? `stackvitals ci report owner/repo` reports CI health for any public repo in about 20 seconds, with
82
+ nothing added to it. Prefer clicking? The app's **Setup** page does the same as `init`. More:
83
+ [docs/quickstart.md](docs/quickstart.md).
84
+
85
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
86
+
87
+ # How it works
88
+
89
+ <picture>
90
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/architecture-overview-dark.png">
91
+ <img alt="How StackVitals works: your repo and your tools feed a StackVitals run in GitHub Actions (collect, analyse with six modules, save), which commits to the stackvitals-data branch and feeds the web app, PR comments, alerts and the MCP server. No server, no account." src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/architecture-overview-light.png">
92
+ </picture>
93
+
94
+ Every step, from what starts a run to what you see: [the architecture in detail](docs/architecture.md).
95
+
96
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
97
+
98
+ # Modules
99
+
100
+ | Module | What it answers | Status |
101
+ |---|---|---|
102
+ | **[CI Health](docs/modules.md#ci-health)** | Which jobs and tests are flaky or slowing down, who owns them, coverage and patch coverage | stable |
103
+ | **[Team Flow](docs/modules.md#team-flow)** | Who has to act next on each pull request, and how long reviews take | stable |
104
+ | **[Delivery](docs/modules.md#delivery-cycle-time-and-dora)** | Cycle time split into coding, pickup, review and deploy (LinearB's phases), DORA's five metrics, AI-assisted work compared like with like | stable |
105
+ | **[Insights](docs/modules.md#insights-what-to-fix-first)** | What to fix first across modules, ranked by hours lost, with alerts and a weekly digest | stable |
106
+ | **[Dependency Steward](docs/modules.md#dependency-steward)** | Known vulnerabilities and malware in the lockfiles OSV-Scanner reads (npm, PyPI, Go, Rust, Maven, Ruby, .NET, PHP and more; 65 of 100 sampled repos had one); whether to add, keep or upgrade a package, with upgrade evidence from public repos | preview |
107
+ | **[Community](docs/modules.md#community)** | Where newcomers drop out, how fast they get an answer, who carries the work | stable |
108
+ | **[Portal](docs/modules.md#portal)** | A lightweight catalog on GitHub alone: what an org owns, who owns it (checked), scorecards, golden paths and an org-wide view | preview |
109
+ | **Explore** | SQL over your repo's data in the browser, with links to share a query | preview |
110
+ | **[Contribute](docs/modules.md#contribute-mergescout)** | Open-source issues an outsider can realistically get merged | stable |
111
+
112
+ Stable: measured, reviewed and used on the sandbox for every release. Preview: built and tested, but newer or measured on
113
+ less; its behaviour may still change.
114
+
115
+ **Works with** Jira Cloud, Linear, PagerDuty, incident.io, Copilot usage reports, Slack, Teams, Discord, Discourse,
116
+ test reports from other CI systems, Backstage, and DevLake's tables ([docs/connectors.md](docs/connectors.md)). AI
117
+ agents get every module through one MCP server (11 core tools by default, all 35 with `--tools all`).
118
+
119
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
120
+
121
+ # Connect your tools (optional)
122
+
123
+ Everything works with GitHub's built-in token. Integrations are optional; pass their keys as repository secrets:
124
+
125
+ ```yaml
126
+ - uses: stackvitals/stackvitals@v0
127
+ with:
128
+ webhook: ${{ secrets.SLACK_WEBHOOK }} # alerts to Slack, Teams or Discord
129
+ pagerduty-token: ${{ secrets.PAGERDUTY_TOKEN }} # incidents count in DORA
130
+ jira-email: ${{ secrets.JIRA_EMAIL }} # Jira, with its site URL under
131
+ jira-token: ${{ secrets.JIRA_TOKEN }} # [connectors.jira] in .github/stackvitals.toml
132
+ ```
133
+
134
+ Every input: [docs/install.md](docs/install.md). Every setting: [docs/settings.md](docs/settings.md).
135
+
136
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
137
+
138
+ # AI agents (MCP)
139
+
140
+ Your coding agent can ask StackVitals before and while it changes code: *is this failure a known flake?*, *what is
141
+ blocking PR #123?*, *who should review this?*, *is this package safe to add?* It answers from your repo's history, with
142
+ the evidence.
143
+
144
+ Claude Code:
145
+
146
+ ```sh
147
+ claude mcp add stackvitals -- uvx stackvitals serve
148
+ ```
149
+
150
+ Claude Desktop, Cursor, VS Code and other MCP clients:
151
+
152
+ ```json
153
+ {
154
+ "mcpServers": {
155
+ "stackvitals": { "command": "uvx", "args": ["stackvitals", "serve"] }
156
+ }
157
+ }
158
+ ```
159
+
160
+ It uses your `gh` login or `GITHUB_TOKEN`. The 11 core tools load by default (`ci_failure`, `is_known_flake`,
161
+ `pr_queue`, `who_should_review`, `check_package`, `insights` and more); `stackvitals serve --tools all` loads all 35.
162
+ Listed in the MCP registry as `io.github.stackvitals/stackvitals`.
163
+
164
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
165
+
166
+ # Three things it gets right that others get wrong
167
+
168
+ Measured on public repos beside the rules other tools use ([docs/accuracy.md](docs/accuracy.md)):
169
+
170
+ - **Where you deploy from.** With no setup, StackVitals named the right deployment source for 53 of 60 repos (30 of
171
+ 35 held out). On the same 60, DevLake's default pattern got 9 and a pattern a user would typically write got 22. A
172
+ wrong source makes every DORA number wrong.
173
+ - **Who answered an issue.** Of the first comments by non-maintainers that the github/issue-metrics action counts as
174
+ the answer, 46% are drive-bys (40-52%, held-out repos). StackVitals counts the project's answers: maintainers,
175
+ regular responders and triagers.
176
+ - **Whether AI help changed anything.** Agents' pull requests look 9 points less likely than people's to be merged by someone else.
177
+ Compared within the same repo, month and size, the gap is +0.5 points (0.0 to +1.1): most of the raw gap comes
178
+ from which repos agents work in and the size of their changes.
179
+
180
+ It publishes what failed too. Of the failures an old rule called safe to re-run, 44% (15 of 34) were caused by the
181
+ change. The tightened rule still got 13 of 81 held-out calls wrong (16%). A stricter one (a flake's sign in the log,
182
+ no changed file named) got none of 4 fresh calls wrong, too few to show 5%, so nothing is called safe: likely flakes
183
+ are re-run, never passed by the check. Each sample was labelled by two
184
+ model families (Claude and Gemini); no person has audited the labels.
185
+
186
+ <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-dark.png"><img alt="" src="https://raw.githubusercontent.com/stackvitals/stackvitals/main/docs/assets/divider-light.png" width="100%"></picture>
187
+
188
+ # Learn more
189
+
190
+ - **Five minutes:** [docs/quickstart.md](docs/quickstart.md). Try CI Health on any public repo first (needs
191
+ [uv](https://docs.astral.sh/uv/) and `gh auth login` or a `GITHUB_TOKEN`):
192
+ `uvx stackvitals ci report owner/repo --days 14 --html ./ci-report`.
193
+ - **By role:** [engineering managers](docs/guides/manager.md), [maintainers](docs/guides/maintainer.md),
194
+ [platform teams](docs/guides/platform.md).
195
+ - **Before you rely on it:** [what each rule does](docs/rules.md), [known limitations](docs/limitations.md),
196
+ [what leaves your repo](docs/privacy.md), [threat model](docs/threat-model.md), [enterprise controls](docs/enterprise.md).
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).
@@ -149,7 +149,7 @@ runs:
149
149
  cache-dependency-glob: ""
150
150
  # The pinned vulnerability scanner (checked against its SHA-256 when downloaded), kept between runs.
151
151
  - if: contains(inputs.modules, 'deps')
152
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
152
+ uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
153
153
  with:
154
154
  path: ${{ runner.tool_cache }}/stackvitals/osv-scanner-2.7.0
155
155
  key: stackvitals-osv-scanner-2.7.0-${{ runner.os }}-${{ runner.arch }}
@@ -207,7 +207,7 @@ runs:
207
207
  run: PYTHONPATH="$GITHUB_ACTION_PATH/src" uv run --quiet --frozen --only-group action --project "$GITHUB_ACTION_PATH" python -m stackvitals action --modules "$SV_MODULES" --days "$SV_DAYS" --budget "$SV_BUDGET" --tests "$SV_TESTS" --test-artifacts "$SV_TEST_ARTIFACTS" --pr-comments "$SV_PR_COMMENTS" --rerun-flaky "$SV_RERUN" --quarantine "$SV_QUARANTINE" --issues "$SV_ISSUES" --preflight-comments "$SV_PREFLIGHT" --deps-comments "$SV_DEPS_COMMENTS" --mention-owners "$SV_MENTION_OWNERS" --label-stuck "$SV_LABEL_STUCK"
208
208
  # The app as a download (opt-in, for private repos), only when this run changed it.
209
209
  - if: inputs.pages == 'artifact' && steps.vitals.outputs.pages == 'true'
210
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
210
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
211
211
  with:
212
212
  name: stackvitals-app-${{ github.job }}
213
213
  path: ${{ runner.temp }}/stackvitals-pages
@@ -27,10 +27,10 @@ jobs:
27
27
  MS_RELEASE_TOKEN: ${{ secrets.MS_STORE_TOKEN }}
28
28
  MS_STORE_REPO: kaushik-yadav/merge-scout
29
29
  steps:
30
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
30
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
31
31
  with:
32
32
  persist-credentials: false
33
- - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
33
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
34
34
  with:
35
35
  python-version: "3.11"
36
36
  cache: pip
@@ -13,10 +13,10 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  timeout-minutes: 10
15
15
  steps:
16
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
16
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
17
17
  with:
18
18
  persist-credentials: false
19
- - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
19
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
20
20
  with:
21
21
  python-version: "3.11"
22
22
  cache: pip
@@ -32,17 +32,17 @@ jobs:
32
32
  MS_STORE_REPO: kaushik-yadav/merge-scout
33
33
  steps:
34
34
  # Checkout first: it empties the folder, so the restored state must come after it.
35
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
35
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
36
36
  with:
37
37
  persist-credentials: false
38
38
  - name: Restore state from the cache
39
39
  id: cache
40
- uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
40
+ uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
41
41
  with:
42
42
  path: data
43
43
  key: crawl-state-${{ github.run_id }}
44
44
  restore-keys: crawl-state-
45
- - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
45
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
46
46
  with:
47
47
  python-version: "3.11"
48
48
  cache: pip
@@ -85,7 +85,7 @@ jobs:
85
85
  run: python -m mergescout.store push
86
86
  - name: Save state to the cache
87
87
  if: always() && steps.state.outcome == 'success'
88
- uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
88
+ uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
89
89
  with:
90
90
  path: data
91
91
  key: crawl-state-${{ github.run_id }}-${{ github.run_attempt }}