alpha-visualizer 1.2.0__tar.gz → 1.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.agents/skills/source-command-audit-licenses/SKILL.md +20 -1
  2. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.claude/commands/audit-licenses.md +20 -1
  3. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/004709bbf59880d3 +1 -1
  4. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/060c20f3c4ff96cb +1 -1
  5. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/0bf3463e8f4751b8 +1 -1
  6. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/10d56fd11d90e91d +1 -1
  7. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/1632901e1b51683b +1 -1
  8. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/1e3ce406f3635331 +1 -1
  9. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/1fedef6b4cc376fe +1 -1
  10. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/296b8092179c9f55 +1 -1
  11. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/312a7aaf12a1fd47 +1 -1
  12. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/316886ef98081ce9 +1 -1
  13. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/331e194303817b32 +1 -1
  14. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/43f703bafb1e4b04 +1 -1
  15. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4577b97f57a8a832 +1 -1
  16. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4726660442f99a00 +1 -1
  17. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4a1c4d1532cab28e +1 -1
  18. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4b255f25d1067b71 +1 -1
  19. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4c29ef3d0bedcdd8 +1 -1
  20. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/4e26bccf25a8c1bb +1 -1
  21. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/508b282112ab038e +1 -1
  22. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/5c80be020ed7a646 +1 -1
  23. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/5c9eb073058f11a0 +1 -1
  24. alpha_visualizer-1.2.0/.hypothesis/constants/144b1ba7393598bf → alpha_visualizer-1.2.1/.hypothesis/constants/6114e271dda4d8b8 +2 -2
  25. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/757b1f8305546439 +1 -1
  26. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/7f90c9d611001617 +1 -1
  27. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/812d29a19e56a27b +1 -1
  28. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/8add761403393fca +1 -1
  29. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/8bd584eda4b3b534 +1 -1
  30. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/8f23e54ec81ce772 +1 -1
  31. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/96ca93165140d446 +1 -1
  32. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/a27ca3dcb982038c +1 -1
  33. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/a636a4647020033d +1 -1
  34. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/a7474b0c3a5a5850 +1 -1
  35. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/ab4df659c6b192db +1 -1
  36. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/af039261f357a5c1 +1 -1
  37. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/afe5949501fc5b8f +1 -1
  38. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/b0487cda9820c053 +1 -1
  39. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/b5541576e1e9aea7 +1 -1
  40. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/b9ff5bcd3a53e3a7 +1 -1
  41. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/bc34da97bbdf0eb3 +1 -1
  42. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/c5349cb90ddc7968 +1 -1
  43. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/cd7fdfbe3f66457b +1 -1
  44. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/d34317036474de6e +1 -1
  45. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/da39a3ee5e6b4b0d +1 -1
  46. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/e44a457d795e56c2 +1 -1
  47. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/e4be0e30e6ada148 +1 -1
  48. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/ea2d606acbfff989 +1 -1
  49. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/eed5e66c16ae84b8 +1 -1
  50. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/f2f91c7f9b44111d +1 -1
  51. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/f7c4a04c97c0daf8 +1 -1
  52. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/fa443af6269a6e02 +1 -1
  53. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/fc009534004030e1 +1 -1
  54. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/fe325b4404aa1121 +1 -1
  55. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/constants/ff4517cbfe51fea1 +1 -1
  56. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CHANGELOG.md +42 -0
  57. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/PKG-INFO +1 -1
  58. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/THIRDPARTY_LICENSES.txt +10 -18
  59. alpha_visualizer-1.2.1/docs/screenshots/en/browse.png +0 -0
  60. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/live.png +0 -0
  61. alpha_visualizer-1.2.1/docs/screenshots/ja/browse.png +0 -0
  62. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/live.png +0 -0
  63. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/.size-limit.json +10 -1
  64. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/historical/SPY_1d.parquet +0 -0
  65. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/package.json +3 -3
  66. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/pnpm-lock.yaml +109 -128
  67. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/pnpm-workspace.yaml +3 -0
  68. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/AppNav.tsx +1 -1
  69. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/CommandPalette.tsx +1 -1
  70. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/RootLayout.tsx +1 -1
  71. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/AppNav.test.tsx +1 -1
  72. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/CommandPalette.test.tsx +1 -1
  73. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/RootLayout.test.tsx +1 -1
  74. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/responsive-styles.test.tsx +1 -1
  75. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/CompareFloatingBar.tsx +1 -1
  76. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/FilterBar.tsx +1 -1
  77. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/RecipeRow.tsx +3 -6
  78. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/SavedViews.tsx +1 -1
  79. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/StrategyRow.tsx +20 -5
  80. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/StrategySlidePanel.tsx +1 -1
  81. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/SymbolCoverageTable.tsx +3 -6
  82. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/FilterBar.test.tsx +1 -1
  83. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/RecipeRow.test.tsx +1 -1
  84. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/StrategyRow.test.tsx +13 -1
  85. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/StrategyTable.test.tsx +1 -1
  86. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/SymbolCoverageTable.test.tsx +1 -1
  87. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/CarryAdjustedCard.tsx +1 -1
  88. alpha_visualizer-1.2.1/frontend/src/design/__tests__/definedTokens.test.ts +93 -0
  89. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/tokens.css +12 -0
  90. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useScrollRestoration.test.tsx +1 -1
  91. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useStrategyList.test.tsx +1 -1
  92. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useIdeasList.ts +1 -1
  93. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useScrollRestoration.ts +1 -1
  94. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useStrategyList.ts +1 -1
  95. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/main.tsx +3 -1
  96. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/ComparePage.tsx +1 -1
  97. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/DetailPage.tsx +1 -1
  98. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/LivePage.tsx +1 -1
  99. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/__tests__/ComparePage.test.tsx +1 -1
  100. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/__tests__/MaintenancePage.test.tsx +1 -1
  101. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/router.tsx +1 -1
  102. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/BacktestScreen.stories.tsx +1 -1
  103. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/BrowseScreen.tsx +1 -1
  104. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/CompareScreen.stories.tsx +1 -1
  105. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/IdeasScreen.stories.tsx +1 -1
  106. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/IdeasScreen.tsx +1 -1
  107. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/LiveScreen.stories.tsx +1 -1
  108. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/LiveScreen.tsx +1 -1
  109. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/OptimizeScreen.stories.tsx +1 -1
  110. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/WFOScreen.stories.tsx +1 -1
  111. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/__tests__/BacktestScreen.test.tsx +1 -1
  112. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/__tests__/LiveScreen.test.tsx +1 -1
  113. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/vite.config.ts +1 -1
  114. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/pyproject.toml +2 -2
  115. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/__init__.py +1 -1
  116. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/BrowsePage-y_9xKk4F.js +2 -0
  117. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/BrowsePage-y_9xKk4F.js.map +1 -0
  118. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ChartDataTable-CniZvVja.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ChartDataTable-BJ5w8ojJ.js +2 -2
  119. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ChartDataTable-CniZvVja.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ChartDataTable-BJ5w8ojJ.js.map +1 -1
  120. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ComparePage-BQWVgWH4.js +2 -0
  121. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ComparePage-C5IbpUOw.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ComparePage-BQWVgWH4.js.map +1 -1
  122. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/DetailPage-CXVkMosD.js +5 -0
  123. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/DetailPage-CXVkMosD.js.map +1 -0
  124. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/IdeasPage-DOm3fHuz.js +2 -0
  125. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/IdeasPage-DOm3fHuz.js.map +1 -0
  126. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/LivePage-BKXWD5s_.js +2 -0
  127. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/LivePage-BKXWD5s_.js.map +1 -0
  128. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/LiveTab-WRt0F7li.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/LiveTab-BI1uTwbD.js +2 -2
  129. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/LiveTab-WRt0F7li.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/LiveTab-BI1uTwbD.js.map +1 -1
  130. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/MaintenancePage-COvHOIOz.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/MaintenancePage-B2nz-JsD.js +2 -2
  131. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/MaintenancePage-COvHOIOz.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/MaintenancePage-B2nz-JsD.js.map +1 -1
  132. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ReturnDistributionChart-C5OmUvzu.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ReturnDistributionChart-dFTJCaO7.js +2 -2
  133. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ReturnDistributionChart-C5OmUvzu.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/ReturnDistributionChart-dFTJCaO7.js.map +1 -1
  134. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/RunLogDetails-BABF8_XY.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/RunLogDetails-DxKjhiQM.js +2 -2
  135. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/RunLogDetails-BABF8_XY.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/RunLogDetails-DxKjhiQM.js.map +1 -1
  136. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/SettingsToggles-CSV0amFu.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/SettingsToggles-CH2UYPvW.js +2 -2
  137. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/SettingsToggles-CSV0amFu.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/SettingsToggles-CH2UYPvW.js.map +1 -1
  138. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/errorMessage-DxHseFDH.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/errorMessage-DKeqg0eT.js +2 -2
  139. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/errorMessage-DxHseFDH.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/errorMessage-DKeqg0eT.js.map +1 -1
  140. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/index-BLCdAVgG.js +3 -0
  141. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/index-BLCdAVgG.js.map +1 -0
  142. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/index-BedmvoEG.css +1 -0
  143. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/react-CT4Qhznq.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/react-CuMkScR3.js +3 -3
  144. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/react-CT4Qhznq.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/react-CuMkScR3.js.map +1 -1
  145. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/react-router-CcOee6vW.js +2 -0
  146. alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/react-router-CcOee6vW.js.map +1 -0
  147. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/useBacktestData-CDEJ432X.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/useBacktestData-XnSfmng5.js +2 -2
  148. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/useBacktestData-CDEJ432X.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/useBacktestData-XnSfmng5.js.map +1 -1
  149. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/useDocumentTitle-C4QqxLhu.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/useDocumentTitle-DPighAM_.js +2 -2
  150. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/useDocumentTitle-C4QqxLhu.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/useDocumentTitle-DPighAM_.js.map +1 -1
  151. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/visx-BPdcfQ_K.js → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/visx-HscrFEDZ.js +2 -2
  152. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/visx-BPdcfQ_K.js.map → alpha_visualizer-1.2.1/src/alpha_visualizer/static/assets/visx-HscrFEDZ.js.map +1 -1
  153. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/index.html +5 -4
  154. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/uv.lock +83 -85
  155. alpha_visualizer-1.2.0/docs/screenshots/en/browse.png +0 -0
  156. alpha_visualizer-1.2.0/docs/screenshots/ja/browse.png +0 -0
  157. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/BrowsePage-B-92hzJX.js +0 -2
  158. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/BrowsePage-B-92hzJX.js.map +0 -1
  159. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/ComparePage-C5IbpUOw.js +0 -2
  160. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/DetailPage-Dw9cEr_K.js +0 -5
  161. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/DetailPage-Dw9cEr_K.js.map +0 -1
  162. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/IdeasPage-BzjOAu6N.js +0 -2
  163. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/IdeasPage-BzjOAu6N.js.map +0 -1
  164. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/LivePage-BGNZpy_q.js +0 -2
  165. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/LivePage-BGNZpy_q.js.map +0 -1
  166. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/index-Dzr0WEuO.js +0 -6
  167. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/index-Dzr0WEuO.js.map +0 -1
  168. alpha_visualizer-1.2.0/src/alpha_visualizer/static/assets/index-tTmYKm5P.css +0 -1
  169. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.agents/skills/source-command-pre-release/SKILL.md +0 -0
  170. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.claude/commands/pre-release.md +0 -0
  171. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.codex/hooks.json +0 -0
  172. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  173. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/ISSUE_TEMPLATE/bug_report_ja.yml +0 -0
  174. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  175. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  176. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/ISSUE_TEMPLATE/feature_request_ja.yml +0 -0
  177. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  178. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/codeql/README.md +0 -0
  179. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/codeql/codeql-config.yml +0 -0
  180. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/dependabot.yml +0 -0
  181. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/workflows/ci.yml +0 -0
  182. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/workflows/codeql.yml +0 -0
  183. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/workflows/lighthouse.yml +0 -0
  184. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.github/workflows/release.yml +0 -0
  185. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.gitignore +0 -0
  186. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/.hypothesis/.gitignore +0 -0
  187. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/AGENTS.md +0 -0
  188. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CLAUDE.md +0 -0
  189. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CODE_OF_CONDUCT.en.md +0 -0
  190. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CODE_OF_CONDUCT.md +0 -0
  191. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CONTRIBUTING.en.md +0 -0
  192. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/CONTRIBUTING.md +0 -0
  193. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/LICENSE +0 -0
  194. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/NOTICE +0 -0
  195. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/README.en.md +0 -0
  196. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/README.md +0 -0
  197. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/SECURITY.en.md +0 -0
  198. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/SECURITY.md +0 -0
  199. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/cliff.toml +0 -0
  200. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/adr/0001-pages-vs-screens.md +0 -0
  201. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/adr/0002-charts-visx-vs-components.md +0 -0
  202. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/adr/0003-openapi-typescript-codegen.md +0 -0
  203. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/adr/0004-condition-node-discriminated-union.md +0 -0
  204. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/lighthouse-ci.md +0 -0
  205. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/backtest-tv.png +0 -0
  206. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/compare-heatmap.png +0 -0
  207. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/compare.png +0 -0
  208. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/detail.png +0 -0
  209. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/ideas.png +0 -0
  210. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/optimize.png +0 -0
  211. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/strategy-signal-tv.png +0 -0
  212. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/en/strategy.png +0 -0
  213. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/backtest-tv.png +0 -0
  214. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/compare-heatmap.png +0 -0
  215. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/compare.png +0 -0
  216. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/detail.png +0 -0
  217. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/ideas.png +0 -0
  218. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/optimize.png +0 -0
  219. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/strategy-signal-tv.png +0 -0
  220. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/screenshots/ja/strategy.png +0 -0
  221. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/plans/2026-07-25-live-equity-rich.md +0 -0
  222. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/plans/2026-07-26-browse-recipe-rollup.md +0 -0
  223. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/plans/2026-07-27-browse-symbol-coverage.md +0 -0
  224. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/plans/2026-07-27-maintenance-orphan-runs.md +0 -0
  225. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/specs/2026-07-25-live-equity-rich-design.md +0 -0
  226. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/specs/2026-07-26-browse-recipe-rollup-design.md +0 -0
  227. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/specs/2026-07-27-browse-symbol-coverage-design.md +0 -0
  228. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/docs/superpowers/specs/2026-07-27-maintenance-orphan-runs-design.md +0 -0
  229. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/.gitignore +0 -0
  230. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/.npmrc +0 -0
  231. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/.storybook/main.ts +0 -0
  232. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/.storybook/preview.ts +0 -0
  233. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/CLAUDE.md +0 -0
  234. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/README.md +0 -0
  235. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/THIRDPARTY_FONTS.md +0 -0
  236. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/README.md +0 -0
  237. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/ideas/ideas.json +0 -0
  238. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/results/backtest_results.db +0 -0
  239. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/dual_symbol_qqq.json +0 -0
  240. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/dual_symbol_spy.json +0 -0
  241. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/ema_trend_v1.json +0 -0
  242. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/ema_trend_v2.json +0 -0
  243. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/ema_trend_v3.json +0 -0
  244. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/idle_recipe_v1.json +0 -0
  245. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/idle_recipe_v2.json +0 -0
  246. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/momo_breakout.json +0 -0
  247. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/no_symbol_v1.json +0 -0
  248. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/rsi_reversal.json +0 -0
  249. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/data/strategies/sma_cross.json +0 -0
  250. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/fixtures/forge/forge.yaml +0 -0
  251. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/helpers/locators.ts +0 -0
  252. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/samples/sample-fixture.spec.ts +0 -0
  253. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/screenshots/capture.spec.ts +0 -0
  254. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/screenshots/equity-tv.spec.ts +0 -0
  255. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/screenshots/strategy-signal-tv.spec.ts +0 -0
  256. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/browse.spec.ts +0 -0
  257. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/compare.spec.ts +0 -0
  258. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/detail.spec.ts +0 -0
  259. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/i18n.spec.ts +0 -0
  260. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/maintenance.spec.ts +0 -0
  261. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/specs/share.spec.ts +0 -0
  262. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/visual/README.md +0 -0
  263. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/visual/__snapshots__/linux/equity-drawdown-tv.png +0 -0
  264. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/visual/__snapshots__/linux/strategy-signal-tv.png +0 -0
  265. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/e2e/visual/tv-charts.spec.ts +0 -0
  266. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/eslint.config.js +0 -0
  267. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/index.html +0 -0
  268. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/openapi.json +0 -0
  269. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/playwright.config.ts +0 -0
  270. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/playwright.samples.config.ts +0 -0
  271. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/playwright.screenshots.config.ts +0 -0
  272. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/playwright.visual.config.ts +0 -0
  273. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/public/favicon.svg +0 -0
  274. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/public/icons.svg +0 -0
  275. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/api/__tests__/client.test.ts +0 -0
  276. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/api/client.ts +0 -0
  277. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/api/types.gen.ts +0 -0
  278. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/api/types.ts +0 -0
  279. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/CompareEquityTV.stories.tsx +0 -0
  280. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/CompareEquityTV.tsx +0 -0
  281. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/EquityDrawdownPaneTV.stories.tsx +0 -0
  282. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/EquityDrawdownPaneTV.tsx +0 -0
  283. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/RollingMetricsChartTV.stories.tsx +0 -0
  284. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/RollingMetricsChartTV.tsx +0 -0
  285. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/StrategySignalChartTV.stories.tsx +0 -0
  286. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/StrategySignalChartTV.tsx +0 -0
  287. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/WFOEquityTV.stories.tsx +0 -0
  288. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/WFOEquityTV.tsx +0 -0
  289. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/CompareEquityTV.test.tsx +0 -0
  290. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/EquityDrawdownPaneTV.test.tsx +0 -0
  291. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/RollingMetricsChartTV.test.tsx +0 -0
  292. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/StrategySignalChartTV.test.tsx +0 -0
  293. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/WFOEquityTV.test.tsx +0 -0
  294. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/data.test.ts +0 -0
  295. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/regimeBands.test.ts +0 -0
  296. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/theme.test.ts +0 -0
  297. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/__tests__/trades.test.ts +0 -0
  298. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/data.ts +0 -0
  299. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/regimeBands.ts +0 -0
  300. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/theme.ts +0 -0
  301. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/tv/trades.ts +0 -0
  302. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/AnnualReturnsBarV.tsx +0 -0
  303. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/CorrelationHeatmapV.tsx +0 -0
  304. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/MAEMFEScatterV.tsx +0 -0
  305. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/MonthlyHeatmapV.tsx +0 -0
  306. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/OptimizeHeatmapV.tsx +0 -0
  307. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/OptimizeScatterV.tsx +0 -0
  308. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/Sparkline.stories.tsx +0 -0
  309. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/charts/visx/Sparkline.tsx +0 -0
  310. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/AppFooter.tsx +0 -0
  311. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/ConfirmActionButton.tsx +0 -0
  312. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/DetailToolbar.tsx +0 -0
  313. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/MetricsSummaryBarV2.stories.tsx +0 -0
  314. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/MetricsSummaryBarV2.tsx +0 -0
  315. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/RunLogDetails.tsx +0 -0
  316. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/SettingsToggles.tsx +0 -0
  317. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/ShareCardButton.tsx +0 -0
  318. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/StrategyHero.tsx +0 -0
  319. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/AppFooter.test.tsx +0 -0
  320. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/CorrelationHeatmap.test.tsx +0 -0
  321. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/MetricsSummaryBarV2.test.tsx +0 -0
  322. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/SettingsToggles.test.tsx +0 -0
  323. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/ShareCardButton.test.tsx +0 -0
  324. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/__tests__/ShareCardXButton.test.tsx +0 -0
  325. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/CollapsibleSection.tsx +0 -0
  326. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/GroupByToggle.tsx +0 -0
  327. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/Heroline.tsx +0 -0
  328. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/RunHistoryTab.tsx +0 -0
  329. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/StrategyTable.tsx +0 -0
  330. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/StrategyTableFooter.tsx +0 -0
  331. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/CollapsibleSection.test.tsx +0 -0
  332. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/RunHistoryTab.test.tsx +0 -0
  333. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/browser/__tests__/StrategyTableFooter.test.tsx +0 -0
  334. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/AnnualReturnsBar.tsx +0 -0
  335. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/CorrelationHeatmap.tsx +0 -0
  336. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/DrawdownDetailChart.tsx +0 -0
  337. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/MAEMFEScatter.tsx +0 -0
  338. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/MonteCarloChart.tsx +0 -0
  339. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/OptimizeHeatmap.tsx +0 -0
  340. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/OptimizeScatter.tsx +0 -0
  341. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/ReturnDistributionChart.tsx +0 -0
  342. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/VaRChart.tsx +0 -0
  343. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/WFOTimeline.tsx +0 -0
  344. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/charts/WeekdayPerformanceChart.tsx +0 -0
  345. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/jobs/JobRunnerCard.tsx +0 -0
  346. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/LiveKpiRow.tsx +0 -0
  347. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/LivePositionView.tsx +0 -0
  348. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/LivePositionsTable.tsx +0 -0
  349. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/LiveTab.tsx +0 -0
  350. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/SummaryCard.tsx +0 -0
  351. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/__tests__/LiveKpiRow.test.tsx +0 -0
  352. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/__tests__/LivePositionView.test.tsx +0 -0
  353. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/__tests__/LivePositionsTable.test.tsx +0 -0
  354. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/__tests__/LiveTab.test.tsx +0 -0
  355. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/__tests__/format.test.ts +0 -0
  356. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/live/format.ts +0 -0
  357. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/CompareTable.tsx +0 -0
  358. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/ISOOSMetrics.tsx +0 -0
  359. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/MetricsGrid.tsx +0 -0
  360. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/RegimeBreakdownCards.tsx +0 -0
  361. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/SignalQualityBadge.tsx +0 -0
  362. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/__tests__/SignalQualityBadge.test.tsx +0 -0
  363. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/__tests__/evaluateGood.test.ts +0 -0
  364. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/metrics/evaluate.ts +0 -0
  365. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/trades/TradeTable.tsx +0 -0
  366. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/trades/__tests__/TradeTable.test.tsx +0 -0
  367. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/tuning/DuplicateStrategyCard.tsx +0 -0
  368. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/tuning/TuningPanel.tsx +0 -0
  369. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/tuning/__tests__/DuplicateStrategyCard.test.tsx +0 -0
  370. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/components/tuning/__tests__/TuningPanel.test.tsx +0 -0
  371. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/constants/metricDefinitions.ts +0 -0
  372. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/constants/runSource.ts +0 -0
  373. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/contexts/DashboardContext.tsx +0 -0
  374. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/contexts/dashboardConstants.ts +0 -0
  375. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/__tests__/noHardcodedColors.test.ts +0 -0
  376. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/__tests__/tokens.contrast.test.ts +0 -0
  377. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/a11y.css +0 -0
  378. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Button.tsx +0 -0
  379. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Card.tsx +0 -0
  380. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/ChartDataTable.tsx +0 -0
  381. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Chip.tsx +0 -0
  382. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/ConfirmDialog.tsx +0 -0
  383. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Divider.tsx +0 -0
  384. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/ErrorBanner.tsx +0 -0
  385. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/KeyValue.tsx +0 -0
  386. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Loading.tsx +0 -0
  387. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/OverflowMenu.tsx +0 -0
  388. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Pill.stories.tsx +0 -0
  389. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Pill.tsx +0 -0
  390. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/SectionHeader.tsx +0 -0
  391. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/SortHeaderCell.tsx +0 -0
  392. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Stat.stories.tsx +0 -0
  393. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Stat.tsx +0 -0
  394. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/TabBar.tsx +0 -0
  395. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/Toolbar.tsx +0 -0
  396. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/ChartDataTable.test.tsx +0 -0
  397. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/ConfirmDialog.test.tsx +0 -0
  398. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/ErrorBanner.test.tsx +0 -0
  399. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/Loading.test.tsx +0 -0
  400. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/OverflowMenu.test.tsx +0 -0
  401. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/Pill.test.tsx +0 -0
  402. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/SortHeaderCell.test.tsx +0 -0
  403. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/__tests__/TabBar.test.tsx +0 -0
  404. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/index.ts +0 -0
  405. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/primitives/srOnly.ts +0 -0
  406. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/design/useChartTheme.ts +0 -0
  407. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useDocumentTitle.test.tsx +0 -0
  408. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useEquityViewport.test.ts +0 -0
  409. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useFetchByKey.test.ts +0 -0
  410. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useJobRunner.test.tsx +0 -0
  411. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useLiveAvailability.test.tsx +0 -0
  412. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useOrphanRuns.test.tsx +0 -0
  413. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useRunBacktest.test.tsx +0 -0
  414. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useStrategyHistorical.test.tsx +0 -0
  415. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useSyncedTimeRange.test.tsx +0 -0
  416. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useTheme.test.tsx +0 -0
  417. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useViewerSettings.lang.test.tsx +0 -0
  418. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/__tests__/useViewerSettings.shared.test.tsx +0 -0
  419. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useBacktestData.ts +0 -0
  420. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useDebounce.ts +0 -0
  421. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useDocumentTitle.ts +0 -0
  422. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useEquityViewport.ts +0 -0
  423. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useFetchByKey.ts +0 -0
  424. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useJobRunner.ts +0 -0
  425. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useLiveAvailability.ts +0 -0
  426. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useLiveList.ts +0 -0
  427. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useOrphanRuns.ts +0 -0
  428. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useRecentStrategies.ts +0 -0
  429. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useSparklineCache.ts +0 -0
  430. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useStrategyHistorical.ts +0 -0
  431. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useSyncedTimeRange.ts +0 -0
  432. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/hooks/useTheme.ts +0 -0
  433. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/i18n/__tests__/strings.test.ts +0 -0
  434. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/i18n/strings.ts +0 -0
  435. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/bestSharpe.test.ts +0 -0
  436. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/correlation.test.ts +0 -0
  437. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/distribution.test.ts +0 -0
  438. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/drawdown.test.ts +0 -0
  439. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/errorMessage.test.ts +0 -0
  440. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/format.test.ts +0 -0
  441. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/liveEquity.test.ts +0 -0
  442. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/metricLabel.test.ts +0 -0
  443. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/monteCarlo.properties.test.ts +0 -0
  444. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/monteCarlo.test.ts +0 -0
  445. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/optimizeHeatmap.test.ts +0 -0
  446. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/recipes.test.ts +0 -0
  447. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/rolling.test.ts +0 -0
  448. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/searchParams.test.ts +0 -0
  449. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/searchStrategies.test.ts +0 -0
  450. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/shareCard.test.ts +0 -0
  451. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/shareCardMulti.test.ts +0 -0
  452. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/shareTweet.test.ts +0 -0
  453. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/symbolStats.test.ts +0 -0
  454. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/walkForward.test.ts +0 -0
  455. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/__tests__/weekday.test.ts +0 -0
  456. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/assetClass.ts +0 -0
  457. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/bestSharpe.ts +0 -0
  458. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/correlation.ts +0 -0
  459. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/csv.ts +0 -0
  460. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/distribution.ts +0 -0
  461. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/drawdown.ts +0 -0
  462. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/errorMessage.ts +0 -0
  463. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/exportPng.ts +0 -0
  464. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/format.ts +0 -0
  465. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/liveEquity.ts +0 -0
  466. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/metricLabel.ts +0 -0
  467. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/monteCarlo.ts +0 -0
  468. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/optimizeHeatmap.ts +0 -0
  469. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/recipes.ts +0 -0
  470. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/rolling.ts +0 -0
  471. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/searchParams.ts +0 -0
  472. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/searchStrategies.ts +0 -0
  473. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/shareCard.ts +0 -0
  474. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/shareTweet.ts +0 -0
  475. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/symbolStats.ts +0 -0
  476. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/walkForward.ts +0 -0
  477. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/lib/weekday.ts +0 -0
  478. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/mock/btData.ts +0 -0
  479. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/BrowsePage.tsx +0 -0
  480. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/IdeasPage.tsx +0 -0
  481. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/pages/MaintenancePage.tsx +0 -0
  482. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/BacktestScreen.tsx +0 -0
  483. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/CompareScreen.tsx +0 -0
  484. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/ISOOSScreen.tsx +0 -0
  485. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/MaintenanceScreen.tsx +0 -0
  486. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/OptimizeScreen.tsx +0 -0
  487. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/StrategyScreen.tsx +0 -0
  488. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/WFOScreen.tsx +0 -0
  489. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/__tests__/CompareScreen.test.tsx +0 -0
  490. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/__tests__/MaintenanceScreen.test.tsx +0 -0
  491. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/__tests__/OptimizeScreen.test.tsx +0 -0
  492. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/screens/strategy/SignalChartCard.tsx +0 -0
  493. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/src/test-setup.ts +0 -0
  494. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/tsconfig.app.json +0 -0
  495. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/tsconfig.e2e.json +0 -0
  496. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/tsconfig.json +0 -0
  497. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/frontend/tsconfig.node.json +0 -0
  498. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/lighthouserc.json +0 -0
  499. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/release.sh +0 -0
  500. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/README.en.md +0 -0
  501. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/README.md +0 -0
  502. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/__init__.py +0 -0
  503. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/__init__.py +0 -0
  504. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/compatibility_matrix.py +0 -0
  505. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/ideas_defs.py +0 -0
  506. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/pseudo_backtest.py +0 -0
  507. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/pseudo_grid.py +0 -0
  508. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/pseudo_wfo.py +0 -0
  509. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/strategy_defs.py +0 -0
  510. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/synthetic_ohlcv.py +0 -0
  511. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/_generators/writers.py +0 -0
  512. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/build_samples.py +0 -0
  513. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/ideas/ideas.json +0 -0
  514. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/results/backtest_results.db +0 -0
  515. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/bbands_breakout_v1.json +0 -0
  516. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/donchian_turtle_v1.json +0 -0
  517. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/ema_adx_macd_v1.json +0 -0
  518. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/macd_crossover_v1.json +0 -0
  519. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/range_reversion_v1.json +0 -0
  520. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/rsi_reversion_v1.json +0 -0
  521. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/sma_crossover_v1.json +0 -0
  522. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/data/strategies/supertrend_adx_v1.json +0 -0
  523. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/samples/sample-forge/forge.yaml +0 -0
  524. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/scripts/compare_sqlite_dump.py +0 -0
  525. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/scripts/generate_openapi.py +0 -0
  526. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/scripts/generate_thirdparty_js.py +0 -0
  527. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/scripts/verify_build_artifacts.py +0 -0
  528. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/app.py +0 -0
  529. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/cli.py +0 -0
  530. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/db.py +0 -0
  531. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/dependencies.py +0 -0
  532. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/errors.py +0 -0
  533. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/forge_config.py +0 -0
  534. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/log_sanitize.py +0 -0
  535. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/__init__.py +0 -0
  536. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/backtest_results.py +0 -0
  537. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/ideas.py +0 -0
  538. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/live.py +0 -0
  539. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/optimization.py +0 -0
  540. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/repositories/strategies.py +0 -0
  541. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/__init__.py +0 -0
  542. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/historical.py +0 -0
  543. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/ideas.py +0 -0
  544. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/jobs.py +0 -0
  545. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/live.py +0 -0
  546. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/maintenance.py +0 -0
  547. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/optimize.py +0 -0
  548. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/results.py +0 -0
  549. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/run.py +0 -0
  550. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/strategies.py +0 -0
  551. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/routers/wfo.py +0 -0
  552. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/__init__.py +0 -0
  553. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/historical.py +0 -0
  554. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/ideas.py +0 -0
  555. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/live.py +0 -0
  556. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/maintenance.py +0 -0
  557. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/optimize.py +0 -0
  558. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/results.py +0 -0
  559. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/strategies.py +0 -0
  560. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/schemas/wfo.py +0 -0
  561. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/__init__.py +0 -0
  562. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/backtest.py +0 -0
  563. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/forge_cli.py +0 -0
  564. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/historical.py +0 -0
  565. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/jobs.py +0 -0
  566. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/live.py +0 -0
  567. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/tuning.py +0 -0
  568. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/services/walk_forward.py +0 -0
  569. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/fonts-DJsrEZjK.css +0 -0
  570. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/format-jy8n8zRe.js +0 -0
  571. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/format-jy8n8zRe.js.map +0 -0
  572. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-400-normal-BLrFJfvD.woff +0 -0
  573. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 +0 -0
  574. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-500-normal-BFXNXuvF.woff2 +0 -0
  575. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-500-normal-pobXraBK.woff +0 -0
  576. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-600-normal-BgSTtRxb.woff2 +0 -0
  577. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/inter-tight-latin-600-normal-D7bG6gX1.woff +0 -0
  578. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  579. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  580. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/rolldown-runtime-C0phanGV.js +0 -0
  581. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/source-serif-4-latin-600-normal-DMD1h6_f.woff +0 -0
  582. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/source-serif-4-latin-600-normal-DouSKlru.woff2 +0 -0
  583. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/tv-CrUgTguZ.js +0 -0
  584. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/assets/tv-CrUgTguZ.js.map +0 -0
  585. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/favicon.svg +0 -0
  586. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/src/alpha_visualizer/static/icons.svg +0 -0
  587. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/__init__.py +0 -0
  588. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/conftest.py +0 -0
  589. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/factories.py +0 -0
  590. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/fixtures/build_e2e_fixture.py +0 -0
  591. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/__init__.py +0 -0
  592. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/test_backtest_results_repo.py +0 -0
  593. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/test_ideas_reader.py +0 -0
  594. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/test_live_repo.py +0 -0
  595. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/test_optimization_repo.py +0 -0
  596. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/repositories/test_strategies_repo.py +0 -0
  597. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/__init__.py +0 -0
  598. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_db_mode_write_paths.py +0 -0
  599. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_forge_yaml_integration.py +0 -0
  600. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_historical.py +0 -0
  601. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_ideas.py +0 -0
  602. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_jobs.py +0 -0
  603. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_live.py +0 -0
  604. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_maintenance.py +0 -0
  605. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_optimize.py +0 -0
  606. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_results.py +0 -0
  607. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_run.py +0 -0
  608. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_strategies.py +0 -0
  609. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_strategies_source.py +0 -0
  610. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_strategy_duplicate.py +0 -0
  611. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_strategy_save.py +0 -0
  612. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/routers/test_wfo.py +0 -0
  613. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/__init__.py +0 -0
  614. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_pseudo_backtest.py +0 -0
  615. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_pseudo_grid.py +0 -0
  616. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_pseudo_wfo.py +0 -0
  617. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_sample_forge.py +0 -0
  618. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_strategy_defs.py +0 -0
  619. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_synthetic_ohlcv.py +0 -0
  620. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/samples/test_writers.py +0 -0
  621. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/schemas/__init__.py +0 -0
  622. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/schemas/test_schemas.py +0 -0
  623. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/__init__.py +0 -0
  624. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_backtest.py +0 -0
  625. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_backtest_properties.py +0 -0
  626. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_historical.py +0 -0
  627. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_jobs.py +0 -0
  628. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_live.py +0 -0
  629. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_tuning.py +0 -0
  630. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/services/test_wfo.py +0 -0
  631. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_app.py +0 -0
  632. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_cli.py +0 -0
  633. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_compare_sqlite_dump.py +0 -0
  634. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_db.py +0 -0
  635. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_dependencies.py +0 -0
  636. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_errors.py +0 -0
  637. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_forge_config.py +0 -0
  638. {alpha_visualizer-1.2.0 → alpha_visualizer-1.2.1}/tests/test_log_sanitize.py +0 -0
@@ -88,8 +88,17 @@ Step 1・Step 2 で問題がなければ以下を実行する。
88
88
  with open("/tmp/py-licenses.json") as f:
89
89
  py_data = json.load(f)
90
90
 
91
+ # pip-licenses が返す配布名は表記ゆれする(nuitka → "Nuitka" 等)。PyPI の
92
+ # 正規化規則(大小無視・"_" / "." を "-" に畳む)で突き合わせないと、dev 専用
93
+ # パッケージが配布告知に漏れる。alpha-forge 側で Nuitka (AGPLv3+) の混入が
94
+ # 実際に発生したため、同じ判定を持つこちらも合わせる。
95
+ def _norm(name: str) -> str:
96
+ return name.lower().replace("_", "-").replace(".", "-")
97
+
98
+ DEV_ONLY_NORM = {_norm(n) for n in DEV_ONLY}
99
+
91
100
  py_pkgs = [p for p in sorted(py_data, key=lambda x: x["Name"].lower())
92
- if p["Name"] not in DEV_ONLY]
101
+ if _norm(p["Name"]) not in DEV_ONLY_NORM]
93
102
 
94
103
  SEP = "=" * 80
95
104
  lines = [
@@ -161,10 +170,20 @@ Step 1・Step 2 で問題がなければ以下を実行する。
161
170
  head -30 THIRDPARTY_LICENSES.txt
162
171
  ```
163
172
 
173
+ 5. **生成後の GPL 系チェック**(`DEV_ONLY` の取りこぼし検知)。
174
+ 生成前の目視では除外リストの表記ゆれを検出できないため、生成物そのものを見る。
175
+
176
+ ```bash
177
+ grep "^ License:.*GPL" THIRDPARTY_LICENSES.txt | sort -u
178
+ ```
179
+
180
+ 現状の期待値は 0 行。1 行でも出たら、除外リストの表記ゆれか新規依存の混入を疑う。
181
+
164
182
  ## 完了後の確認事項
165
183
 
166
184
  - [ ] `THIRDPARTY_LICENSES.txt` がプロジェクトルートに生成されていること
167
185
  - [ ] GPL/AGPL パッケージが**ランタイム依存**に含まれていないこと
186
+ - [ ] **生成後のファイルにも** GPL/AGPL が無いこと(Step 3-5 の grep)
168
187
  - [ ] LGPL パッケージがある場合、ファイル先頭に LGPL 告知が記載されていること
169
188
  - [ ] ファイルを `git add THIRDPARTY_LICENSES.txt` してリリースコミットに含めること
170
189
 
@@ -83,8 +83,17 @@ Step 1・Step 2 で問題がなければ以下を実行する。
83
83
  with open("/tmp/py-licenses.json") as f:
84
84
  py_data = json.load(f)
85
85
 
86
+ # pip-licenses が返す配布名は表記ゆれする(nuitka → "Nuitka" 等)。PyPI の
87
+ # 正規化規則(大小無視・"_" / "." を "-" に畳む)で突き合わせないと、dev 専用
88
+ # パッケージが配布告知に漏れる。alpha-forge 側で Nuitka (AGPLv3+) の混入が
89
+ # 実際に発生したため、同じ判定を持つこちらも合わせる。
90
+ def _norm(name: str) -> str:
91
+ return name.lower().replace("_", "-").replace(".", "-")
92
+
93
+ DEV_ONLY_NORM = {_norm(n) for n in DEV_ONLY}
94
+
86
95
  py_pkgs = [p for p in sorted(py_data, key=lambda x: x["Name"].lower())
87
- if p["Name"] not in DEV_ONLY]
96
+ if _norm(p["Name"]) not in DEV_ONLY_NORM]
88
97
 
89
98
  SEP = "=" * 80
90
99
  lines = [
@@ -156,10 +165,20 @@ Step 1・Step 2 で問題がなければ以下を実行する。
156
165
  head -30 THIRDPARTY_LICENSES.txt
157
166
  ```
158
167
 
168
+ 5. **生成後の GPL 系チェック**(`DEV_ONLY` の取りこぼし検知)。
169
+ 生成前の目視では除外リストの表記ゆれを検出できないため、生成物そのものを見る。
170
+
171
+ ```bash
172
+ grep "^ License:.*GPL" THIRDPARTY_LICENSES.txt | sort -u
173
+ ```
174
+
175
+ 現状の期待値は 0 行。1 行でも出たら、除外リストの表記ゆれか新規依存の混入を疑う。
176
+
159
177
  ## 完了後の確認事項
160
178
 
161
179
  - [ ] `THIRDPARTY_LICENSES.txt` がプロジェクトルートに生成されていること
162
180
  - [ ] GPL/AGPL パッケージが**ランタイム依存**に含まれていないこと
181
+ - [ ] **生成後のファイルにも** GPL/AGPL が無いこと(Step 3-5 の grep)
163
182
  - [ ] LGPL パッケージがある場合、ファイル先頭に LGPL 告知が記載されていること
164
183
  - [ ] ファイルを `git add THIRDPARTY_LICENSES.txt` してリリースコミットに含めること
165
184
 
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/strategies.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'allow']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/live.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 100.0, 'DIFF_METRICS', 'aligned_aggregates', 'backtest', 'backtest_equity', 'backtest_metrics', 'benchmark_equity', 'cash', 'compute_diff', 'date_in_period', 'diff', 'diff_value', 'direction', 'end', 'entry_at', 'entry_date', 'entry_price', 'equity', 'exit_at', 'exit_date', 'exit_price', 'exit_reason', 'id', 'kind', 'live', 'long', 'max_drawdown_pct', 'metrics', 'net_pnl', 'normalize_trade', 'optional_float', 'period', 'pnl', 'portfolio_id', 'position', 'position_detail', 'positions', 'profit_factor', 'qty', 'receipts_count', 'return_pct', 'safe_float', 'short', 'side', 'start', 'strategy_id', 'sub_strategies', 'summary', 'symbol', 'total_trades', 'total_value', 'trade_id', 'trade_period', 'trades', 'updated_at', 'warnings', 'win_rate_pct']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/strategy_defs.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 15.0, 18.0, 20.0, 22.0, 25.0, '1.0.0', '1d', 'ADX', 'BBANDS', 'COMMODITY_SYNTH', 'CRYPTO_SYNTH', 'DONCHIAN', 'EMA', 'EQUITY_SYNTH', 'FX_SYNTH', 'INDEX_SYNTH', 'MACD', 'MACD Signal Cross', 'RSI', 'RSI Mean Reversion', 'SMA', 'SMA Crossover', 'SUPERTREND', 'adx', 'adx_length', 'adx_threshold', 'asset_type', 'bb_length', 'bb_std', 'bbands', 'bbands_breakout_v1', 'breakout', 'close > bbands.upper', 'commodity', 'composite', 'crossover', 'description', 'donchian_entry', 'donchian_exit', 'donchian_turtle_v1', 'ema', 'ema_adx_macd_v1', 'ema_period', 'entry_conditions', 'entry_length', 'equity', 'exit_conditions', 'exit_length', 'fast', 'fast_period', 'filter', 'fx', 'indicators', 'length', 'long', 'macd', 'macd_crossover_v1', 'macd_fast', 'macd_signal', 'macd_slow', 'mean-reversion', 'momentum', 'multiplier', 'name', 'oscillator', 'overbought', 'oversold', 'parameters', 'params', 'period', 'range', 'range_reversion_v1', 'risk_management', 'rsi', 'rsi < oversold', 'rsi > overbought', 'rsi_length', 'rsi_reversion_v1', 'signal', 'slow', 'slow_period', 'sma_crossover_v1', 'sma_fast', 'sma_fast < sma_slow', 'sma_fast > sma_slow', 'sma_slow', 'st_length', 'st_multiplier', 'std', 'stop_loss_pct', 'strategy_id', 'supertrend', 'supertrend_adx_v1', 'tags', 'take_profit_pct', 'target_symbols', 'textbook', 'timeframe', 'trend', 'type', 'variables', 'version', 'volatility']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/repositories/strategies.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['*.json', 'asset_type', 'name', 'strategy_id', 'tags', 'target_symbols', 'timeframe', 'utf-8', 'version']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/dependencies.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/app.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [500, '*', '/api', '/health', '/{full_path:path}', '0.1.0', 'alpha-visualizer', 'detail', 'forge_dir', 'index.html', 'ok', 'static', 'status']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/repositories/live.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'backtest_equity', 'backtest_equity_json', 'backtest_metrics', 'benchmark_equity', 'cash', 'equity', 'equity_json', 'metrics', 'metrics_json', 'no such column', 'no such table', 'portfolio_id', 'positions', 'positions_json', 'receipts_count', 'sub_strategies', 'sub_strategies_json', 'symbols', 'tags', 'total_value', 'updated_at']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/scripts/compare_sqlite_dump.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['__main__']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/ideas.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['/ideas', '/ideas/{idea_id}', 'idea_id', 'status']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/live.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'allow', 'position', 'strategy']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/repositories/optimization.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/forge_config.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['FORGE_CONFIG', 'backtest_results.db', 'data', 'db_filename', 'forge.yaml', 'historical', 'ideas', 'ideas.json', 'ideas_path', 'live', 'output_path', 'path', 'report', 'results', 'storage_path', 'strategies', 'strategies.db', 'use_db', 'utf-8']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/pseudo_wfo.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [-8.0, -0.4, 0.0, 0.05, 0.1, 0.3, 0.35, 0.45, 0.5, 0.6, 0.85, 1.0, 1.2, 1.5, 2.0, 3.0, 4.5, 5.0, 8.0, 10.0, 15.0, 20.0, 30.0, 200, 500, 600, '2025-01-08 14:00:00', 'CRYPTO_SYNTH', 'EQUITY_SYNTH', 'adx_threshold', 'fast_period', 'is_end', 'is_return_pct', 'is_sharpe', 'is_start', 'label', 'oos_end', 'oos_return_pct', 'oos_sharpe', 'oos_start', 'params', 'pass', 'ranges', 'slow_period', 'sma_crossover_v1', 'st_length', 'st_multiplier', 'supertrend_adx_v1', 'true_optimum', 'window_id']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/historical.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['allow']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/walk_forward.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 1.0, 100.0, 'best_params', 'date', 'extract_windows', 'id', 'is_end', 'is_metric_value', 'is_return', 'is_return_pct', 'is_sharpe', 'is_start', 'label', 'metric', 'normalize_to_anchor', 'oos_end', 'oos_is_ratio', 'oos_metric_value', 'oos_return', 'oos_return_pct', 'oos_sharpe', 'oos_start', 'params', 'parse_equity_curve', 'pass', 'resolve_metric_name', 'sharpe_ratio', 'slice_oos_segment', 'value', 'window_id']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/maintenance.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [400, 900, '--dry-run', '--json', '--strategy', '--vacuum', '-y', 'backtest', 'backtest_rows', 'bytes_after', 'bytes_before', 'count', 'deleted', 'engine', 'no such command', 'optimization_rows', 'orphans', 'prune-orphans', 'strategy_ids', 'total_bytes', 'vacuum_error']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/repositories/backtest_results.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['backtest_results', 'carry_adjusted_json', 'name', 'rn', 'source']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/maintenance.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/wfo.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['/wfo/{strategy_id}', 'WFO 取得に失敗: %s (%s)', 'composite_dates', 'composite_equity', 'metric_name', 'strategy_id', 'strategy_name', 'symbol', 'windows', 'バックテスト DB が見つかりません']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
- ['1.2.0']
4
+ ['1.2.1']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/repositories/ideas.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['ideas', 'utf-8']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/forge_cli.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['1', 'FORGE_CONFIG', 'FORGE_NONINTERACTIVE', 'forge', 'forge.yaml', '{', '}', '~']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/optimize.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'allow', 'sharpe_ratio']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/run.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [600, '--', '--json', '--strategy', '/run', 'backtest', 'ignore', 'ok', 'run', 'run_id']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/optimize.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'avg_holding_days', 'best_metric', 'cagr_pct', 'calmar_ratio', 'cvar_95_pct', 'is_sharpe', 'is_start', 'max_drawdown_pct', 'metric', 'metric_name', 'metrics', 'omega_ratio', 'oos_sharpe', 'oos_start', 'params', 'pass', 'profit_factor', 'run_at', 'sharpe_ratio', 'sortino_ratio', 'strategy_id', 'total_return_pct', 'total_trades', 'trials', 'var_95_pct', 'win_rate_pct', 'window_id', 'バックテスト DB が見つかりません', '最適化結果の取得に失敗: %s (%s)']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/results.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['/results', '/results/{run_id}', 'router']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/cli.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [8000, '--forge-config', '--forge-dir', '--host', '--no-open', '--port', '.', '127.0.0.1', 'alpha-visualizer', 'forge_config', 'no_open', 'sample-forge', 'samples', 'serve', 'use_bundled_samples', 'バインドするホスト名', 'ブラウザを自動で開かない', 'ポート番号']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/writers.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [8000000, '*.json', 'all_trials_json', 'avg_holding_days', 'backtest_results.db', 'backtest_runs', 'best_metric_name', 'best_metric_value', 'best_params_json', 'buy_hold_curve_json', 'cagr_pct', 'calmar_ratio', 'data', 'db_size_bytes', 'duration_seconds', 'equity_curve_json', 'ideas', 'ideas.json', 'max_drawdown_pct', 'metrics_json', 'n_trials', 'oos_start', 'optimization_runs', 'profit_factor', 'results', 'run_at', 'run_id', 'sample-forge', 'sharpe_ratio', 'sortino_ratio', 'strategies', 'strategy_id', 'symbol', 'total_return_pct', 'total_trades', 'trades_json', 'utf-8', 'win_rate_pct']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/strategies.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 100.0, 100, ',', '--force', '/strategies', '/strategies/compare', 'best_sharpe', 'cagr_pct', 'daily_returns', 'date', 'dates', 'entry_conditions', 'equity', 'exit_conditions', 'id', 'ids が空です', 'ignore', 'indicators', 'is_baseline', 'last_run_at', 'latest_profit_factor', 'latest_return_pct', 'latest_sharpe', 'latest_source', 'latest_total_trades', 'latest_win_rate_pct', 'max_drawdown_pct', 'n_trials', 'name', 'ok', 'optimization_history', 'parameters', 'profit_factor', 'regime_config', 'results', 'return_pct', 'risk_management', 'run_at', 'run_id', 'save', 'sharpe', 'sharpe_ratio', 'sortino_ratio', 'source', 'strategy', 'strategy_id', 'symbol', 'tags', 'target_symbols', 'timeframe', 'total_return_pct', 'total_trades', 'trial', 'utf-8', 'value', 'values', 'variables', 'win_rate_pct', 'カンマ区切りの strategy_id', '一時戦略ファイルの削除に失敗: %s']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/historical.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['/historical/{symbol}', '1d', 'bars', 'interval', 'router', 'symbol']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/tuning.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [384, 'dup', 'parameters', 'strategy_id', 'tune', 'utf-8', 'w']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/backtest.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 1.0, 100.0, '+00:00', '-', '1d', 'Z', 'aggregates', 'annual_returns', 'avg_holding_days', 'build_detail', 'buy_hold_curve', 'buy_hold_equity', 'cagr_pct', 'calmar_ratio', 'carry_adjusted', 'compute_drawdown', 'daily_returns', 'date', 'dates', 'direction', 'drawdown', 'end', 'entry_date', 'entry_price', 'equity', 'equity_curve', 'exit_date', 'exit_price', 'filter_by_since', 'holding_days', 'id', 'index', 'is_cutoff', 'is_metrics', 'label_names', 'long', 'mae_pct', 'max_drawdown_pct', 'metrics', 'mfe_pct', 'monthly_returns', 'n_states', 'oos_metrics', 'oos_start', 'parse_dt', 'per_trade_mae_pct', 'per_trade_mfe_pct', 'period', 'periods', 'pnl', 'profit_factor', 'regime_breakdown', 'regime_series', 'return_pct', 'row_to_dict', 'run_at', 'run_id', 'shape_annual_returns', 'shape_equity', 'shape_regime_series', 'shape_trades', 'sharpe_ratio', 'short', 'signal', 'sl_price', 'sortino_ratio', 'source', 'split_metrics', 'start', 'states', 'strategy_id', 'strategy_name', 'summarize_row', 'symbol', 'timeframe', 'total_return_pct', 'total_trades', 'tp_price', 'trade_analysis', 'trades', 'value', 'values', 'win_rate_pct']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/jobs.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [2.0, 100, 202, 1000, '/jobs', '/jobs/{job_id}', ': heartbeat\n\n', 'Cache-Control', 'X-Accel-Buffering', 'backtest', 'error', 'ignore', 'lines', 'log', 'no', 'no-cache', 'optimize', 'result', 'seq', 'snapshot', 'status', 'text/event-stream', 'type', 'wft']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/.venv/bin/pytest
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['-script.pyw', '.exe', '__main__']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/pseudo_grid.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 0.0015, 0.0035, 0.008, 0.15, 0.55, 1.35, 1.4, 1.5, 1.8, 2.0, 2.2, 2.5, 3.0, 20.0, 90.0, 800, '2025-01-09 11:30:00', 'COMMODITY_SYNTH', 'INDEX_SYNTH', 'bb_length', 'bb_std', 'bbands_breakout_v1', 'metric_value', 'oversold', 'params', 'rsi_length', 'rsi_reversion_v1', 'sharpe_ratio', 'trial']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/db.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['[]', 'all_trials_json', 'asset_class', 'asset_type', 'avg_holding_days', 'avg_loss', 'avg_slippage_bps', 'avg_win', 'backtest_equity_json', 'backtest_results', 'best_metric_name', 'best_metric_value', 'best_params_json', 'broker', 'buy_hold_curve_json', 'cagr_pct', 'calmar_ratio', 'carry_adjusted_json', 'cash', 'commission', 'created_at', 'definition_json', 'duration_seconds', 'entry_at', 'entry_price', 'equity_curve_json', 'equity_json', 'exit_at', 'exit_price', 'exit_reason', 'gross_pnl', 'holding_seconds', 'id', 'live_summaries', 'live_trades', 'max_drawdown_pct', 'metrics_json', 'n_trials', 'name', 'net_pnl', 'notes', 'oos_start', 'optimization_runs', 'portfolio_id', 'positions_json', 'profit_factor', 'qty', 'receipts_count', 'return_pct', 'run_at', 'run_id', 'sharpe_ratio', 'side', 'slippage_bps', 'snapshot_id', 'sortino_ratio', 'source', 'source_file', 'strategies', 'strategy_id', 'strategy_version', 'sub_strategies_json', 'symbol', 'symbols', 'tags', 'timeframe', 'total_commission', 'total_return_pct', 'total_trades', 'total_value', 'trade_id', 'trades_json', 'updated_at', 'version', 'win_rate_pct']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/log_sanitize.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['None']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/jobs.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [b'\n', 0.2, 1.0, 5.0, 500, 1024, 3600, 65536, '--', '--json', '--save', '--strategy', '--strategy-file', '--trials', '--windows', 'backtest', 'cancelled', 'failed', 'job %s のワーカーで想定外のエラー', 'optimize', 'posix', 'queued', 'replace', 'run', 'running', 'start_new_session', 'succeeded', 'utf-8', 'walk-forward', 'wft', '…', '一時戦略ファイルの削除に失敗: %s']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/wfo.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 'allow', 'sharpe_ratio']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/__init__.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  []
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/errors.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [400, 404, 409, 429, 500]
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/ideas.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['allow']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/synthetic_ohlcv.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [-0.1, -0.08, -0.05, -0.04, -0.012, -0.008, -0.004, -0.003, -0.002, -0.0003, 0.0, 5e-05, 0.0001, 0.0002, 0.0005, 0.0006, 0.0007, 0.0008, 0.0012, 0.0015, 0.003, 0.004, 0.005, 0.008, 0.009, 0.01, 0.012, 0.014, 0.016, 0.018, 0.02, 0.022, 0.025, 0.03, 0.035, 0.04, 0.045, 0.05, 0.06, 0.08, 0.15, 0.4, 0.6, 1.0, 1.1, 5.0, 80.0, 100.0, 4500.0, 20000.0, 30000.0, 50000.0, 200000.0, 1500000.0, 80000000.0, 190, 200, 250, 400, 460, 500, 560, 600, 1250, 2020, 'COMMODITY_SYNTH', 'CRYPTO_SYNTH', 'Close', 'Date', 'EQUITY_SYNTH', 'FX_SYNTH', 'High', 'INDEX_SYNTH', 'Low', 'Open', 'Volume', 'blow-off-top', 'bubble-1', 'bubble-2', 'calm-bull-mid', 'calm-bull-post', 'calm-bull-pre', 'calm-long', 'consolidation', 'crash-1', 'crash-2008-like', 'crash-2020-like', 'flash-crash', 'late-correction', 'mean-reverting', 'recovery', 'sideways', 'slow-bleed', 'spike', 'v-recovery']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/routers/live.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [200, '/live', '/live/{strategy_id}', 'aligned', 'backtest', 'diff', 'has_summary', 'has_trades', 'kind', 'live', 'period', 'position', 'router', 'run_id', 'strategy', 'strategy_id', 'summary', 'trades', 'warnings']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/pseudo_backtest.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, 1e-06, 0.0009, 0.005, 0.011, 0.2, 0.22, 0.3, 0.35, 0.42, 0.5, 0.7, 0.9, 1.0, 1.1, 1.2, 2.0, 3.0, 4.0, 4.5, 100.0, 252.0, 10000.0, 100000.0, 200, 252, '%Y', '%Y-%m', '2025-01-06 09:00:00', 'Close', 'annual_returns', 'avg_holding_days', 'cagr_pct', 'calmar_ratio', 'date', 'direction', 'entry_date', 'entry_price', 'exit_date', 'exit_price', 'holding_days', 'id', 'long', 'mae_pct', 'max_drawdown_pct', 'mfe_pct', 'monthly_returns', 'pnl', 'profit_factor', 'return_pct', 'sharpe_ratio', 'sortino_ratio', 'total_return_pct', 'total_trades', 'value', 'win_rate_pct']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/ideas_defs.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['2024-11-15T13:00:00', '2024-12-20T10:00:00', '2025-01-02T20:30:00', '2025-01-05T09:15:00', '2025-01-07T11:00:00', '2025-01-08T15:00:00', '2025-01-08T16:30:00', '2025-01-09T11:45:00', 'adx', 'atr', 'backlog', 'bbands', 'bbands_breakout_v1', 'breakout', 'connors', 'created_at', 'crypto', 'donchian', 'donchian_turtle_v1', 'ema_adx_macd_v1', 'filter', 'idea_id', 'idea_sample_001', 'idea_sample_002', 'idea_sample_003', 'idea_sample_004', 'idea_sample_005', 'in_progress', 'linked_strategies', 'mean-reversion', 'notes', 'position-sizing', 'robustness', 'rsi', 'rsi_reversion_v1', 'sma', 'sma_crossover_v1', 'status', 'supertrend', 'supertrend_adx_v1', 'tags', 'tested', 'title', 'trend', 'turtle', 'updated_at', 'volatility', 'wfo']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/schemas/results.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.0, '1d', 'allow', 'carry_adjusted', 'regime_breakdown', 'regime_series', 'wrap']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/src/alpha_visualizer/services/historical.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  ['\x00', '%Y-%m-%d', '%Y-%m-%dT%H:%M:%S', '..', '/', 'Close', 'High', 'Low', 'Open', 'Volume', '\\', 'close', 'coerce', 'high', 'low', 'open', 'symbol が空です', 'time', 'volume']
@@ -1,4 +1,4 @@
1
1
  # file: /home/runner/work/alpha-visualizer/alpha-visualizer/samples/_generators/compatibility_matrix.py
2
- # hypothesis_version: 6.161.1
2
+ # hypothesis_version: 6.161.6
3
3
 
4
4
  [0.3, 0.32, 0.35, 0.4, 0.45, 0.48, 0.5, 0.52, 0.55, 0.58, 0.6, 0.62, 0.65, 0.7, 0.75, 0.78, 0.8, 0.82, 0.85, 0.9, 100, 'COMMODITY_SYNTH', 'CRYPTO_SYNTH', 'EQUITY_SYNTH', 'FX_SYNTH', 'INDEX_SYNTH', 'bbands_breakout_v1', 'breakout', 'donchian_turtle_v1', 'ema_adx_macd_v1', 'macd_crossover_v1', 'range_reversion_v1', 'reversion', 'rsi_reversion_v1', 'sma_crossover_v1', 'supertrend_adx_v1', 'trend']
@@ -5,6 +5,48 @@ alpha-visualizer の全バージョン変更履歴です。
5
5
  > **License Change Notice (v0.6.0+):** v0.6.0 以降、ライセンスは MIT から Apache-2.0 に変更されました。v0.5.0 以前のリリースは引き続き MIT ライセンスです。詳細は [LICENSE](LICENSE) を参照してください。
6
6
 
7
7
 
8
+ ## [1.2.0] - 2026-07-27
9
+
10
+
11
+ ### その他
12
+
13
+ - バージョン 1.2.0 にバンプ
14
+
15
+
16
+
17
+ ### テスト
18
+
19
+ - **e2e**: Live ページを撮影対象に追加し、overlay の色・重複ラベル・TZ 依存を解消 (#332)
20
+
21
+
22
+
23
+ ### ドキュメント
24
+
25
+ - CHANGELOG を v1.1.0 に更新
26
+
27
+
28
+
29
+ ### バグ修正
30
+
31
+ - **compare**: 戦略未選択時に永久ローディングになる不具合を修正 (#328)
32
+
33
+
34
+
35
+ ### 新機能
36
+
37
+ - **live**: Live ページの Equity 表示をリッチ化(KPI・ベンチマーク比較・建玉テーブル) (#329)
38
+
39
+
40
+ - **browse**: ブラウズ画面をレシピ単位に畳んで見やすくする(SP1) (#333)
41
+
42
+
43
+ - **browse**: 銘柄カバレッジ表で未実行レシピの偏りを可視化する(SP2) (#338)
44
+
45
+
46
+ - **maintenance**: 孤児バックテスト結果を掃除する /maintenance 画面を追加(SP3 フェーズ2) (#339)
47
+
48
+
49
+
8
50
  ## [1.1.0] - 2026-07-24
9
51
 
10
52
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alpha-visualizer
3
- Version: 1.2.0
3
+ Version: 1.2.1
4
4
  Summary: Web visualization tool for AlphaForge backtest results
5
5
  Project-URL: Homepage, https://github.com/alforge-labs/alpha-visualizer
6
6
  Project-URL: Repository, https://github.com/alforge-labs/alpha-visualizer