rangebar 12.0.1__tar.gz → 12.1.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 (302) hide show
  1. rangebar-12.1.1/.cargo/config.toml +36 -0
  2. rangebar-12.1.1/.mise/tasks/bench.toml +34 -0
  3. rangebar-12.1.1/.mise/tasks/cache.toml +10 -0
  4. rangebar-12.1.1/.mise/tasks/checksum.toml +44 -0
  5. rangebar-12.1.1/.mise/tasks/deps.toml +26 -0
  6. rangebar-12.1.1/.mise/tasks/dev.toml +62 -0
  7. rangebar-12.1.1/.mise/tasks/diag.toml +189 -0
  8. rangebar-12.1.1/.mise/tasks/prof.toml +18 -0
  9. rangebar-12.1.1/.mise/tasks/release.toml +375 -0
  10. rangebar-12.1.1/.mise/tasks/research.toml +147 -0
  11. rangebar-12.1.1/.mise/tasks/smoke.toml +23 -0
  12. rangebar-12.1.1/.mise/tasks/validate.toml +33 -0
  13. rangebar-12.1.1/.mise.toml +101 -0
  14. {rangebar-12.0.1 → rangebar-12.1.1}/CHANGELOG.md +27 -0
  15. {rangebar-12.0.1 → rangebar-12.1.1}/CLAUDE.md +53 -11
  16. {rangebar-12.0.1 → rangebar-12.1.1}/Cargo.lock +50 -161
  17. {rangebar-12.0.1 → rangebar-12.1.1}/Cargo.toml +4 -4
  18. {rangebar-12.0.1 → rangebar-12.1.1}/PKG-INFO +1 -1
  19. {rangebar-12.0.1 → rangebar-12.1.1}/crates/CLAUDE.md +1 -0
  20. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/Cargo.toml +1 -1
  21. rangebar-12.1.1/docs/development/RELEASE.md +327 -0
  22. rangebar-12.1.1/docs/research/2026-02-03-memory-efficient-streaming.md +230 -0
  23. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/constants.py +5 -0
  24. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/helpers.py +91 -15
  25. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/range_bars.py +9 -1
  26. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/processors/core.py +8 -1
  27. rangebar-12.0.1/.mise.toml +0 -721
  28. rangebar-12.0.1/docs/development/RELEASE.md +0 -224
  29. {rangebar-12.0.1 → rangebar-12.1.1}/.gitignore +0 -0
  30. {rangebar-12.0.1 → rangebar-12.1.1}/.mcp.json +0 -0
  31. {rangebar-12.0.1 → rangebar-12.1.1}/.pre-commit-config.yaml +0 -0
  32. {rangebar-12.0.1 → rangebar-12.1.1}/.releaserc.yml +0 -0
  33. {rangebar-12.0.1 → rangebar-12.1.1}/LICENSE +0 -0
  34. {rangebar-12.0.1 → rangebar-12.1.1}/README.md +0 -0
  35. {rangebar-12.0.1 → rangebar-12.1.1}/RESUME.md +0 -0
  36. {rangebar-12.0.1 → rangebar-12.1.1}/STATISTICAL_VALIDITY_AUDIT.md +0 -0
  37. {rangebar-12.0.1 → rangebar-12.1.1}/benches/rangebar_bench.rs +0 -0
  38. {rangebar-12.0.1 → rangebar-12.1.1}/build.rs +0 -0
  39. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/CHANGELOG.md +0 -0
  40. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/Cargo.toml +0 -0
  41. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/README.md +0 -0
  42. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/arrow_export.rs +0 -0
  43. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/checkpoint.rs +0 -0
  44. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/fixed_point.rs +0 -0
  45. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/interbar.rs +0 -0
  46. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/drawdown.rs +0 -0
  47. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/features.rs +0 -0
  48. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/ith.rs +0 -0
  49. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/mod.rs +0 -0
  50. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/normalize.rs +0 -0
  51. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/intrabar/types.rs +0 -0
  52. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/lib.rs +0 -0
  53. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/processor.rs +0 -0
  54. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/test_data_loader.rs +0 -0
  55. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/test_utils/generators.rs +0 -0
  56. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/test_utils/mod.rs +0 -0
  57. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/timestamp.rs +0 -0
  58. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/src/types.rs +0 -0
  59. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/tests/cross_boundary_validation.rs +0 -0
  60. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/tests/cross_date_real_data_validation.rs +0 -0
  61. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/tests/cross_year_boundary_test.rs +0 -0
  62. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-core/tests/incomplete_bar_continuation_proof.rs +0 -0
  63. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/CHANGELOG.md +0 -0
  64. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/README.md +0 -0
  65. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/binance/checksum.rs +0 -0
  66. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/binance/historical.rs +0 -0
  67. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/binance/mod.rs +0 -0
  68. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/binance/symbols.rs +0 -0
  69. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/binance/websocket.rs +0 -0
  70. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/exness/builder.rs +0 -0
  71. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/exness/client.rs +0 -0
  72. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/exness/conversion.rs +0 -0
  73. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/exness/mod.rs +0 -0
  74. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/exness/types.rs +0 -0
  75. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-providers/src/lib.rs +0 -0
  76. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/CHANGELOG.md +0 -0
  77. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/Cargo.toml +0 -0
  78. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/README.md +0 -0
  79. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/indicators.rs +0 -0
  80. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/lib.rs +0 -0
  81. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/processor.rs +0 -0
  82. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/replay_buffer.rs +0 -0
  83. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/stats.rs +0 -0
  84. {rangebar-12.0.1 → rangebar-12.1.1}/crates/rangebar-streaming/src/universal.rs +0 -0
  85. {rangebar-12.0.1 → rangebar-12.1.1}/deny.toml +0 -0
  86. {rangebar-12.0.1 → rangebar-12.1.1}/docs/ARCHITECTURE.md +0 -0
  87. {rangebar-12.0.1 → rangebar-12.1.1}/docs/CONTEXT.md +0 -0
  88. {rangebar-12.0.1 → rangebar-12.1.1}/docs/MEMORY_REMEDIATION_PLAN.md +0 -0
  89. {rangebar-12.0.1 → rangebar-12.1.1}/docs/adr/2026-01-31-realtime-streaming-api.md +0 -0
  90. {rangebar-12.0.1 → rangebar-12.1.1}/docs/analysis/2025-10-10-flash-crash.md +0 -0
  91. {rangebar-12.0.1 → rangebar-12.1.1}/docs/api.md +0 -0
  92. {rangebar-12.0.1 → rangebar-12.1.1}/docs/development/PERFORMANCE.md +0 -0
  93. {rangebar-12.0.1 → rangebar-12.1.1}/docs/migration-v8.md +0 -0
  94. {rangebar-12.0.1 → rangebar-12.1.1}/docs/plans/issue-59-inter-bar-features.md +0 -0
  95. {rangebar-12.0.1 → rangebar-12.1.1}/docs/rangebar_core_api.md +0 -0
  96. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/2026-02-02-intrabar-microstructure-claude-opus.md +0 -0
  97. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/2026-02-02-intrabar-microstructure-gemini-3-pro.md +0 -0
  98. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/2026-02-03-cfm-optimal-threshold-gemini-3-pro.md +0 -0
  99. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/INDEX.md +0 -0
  100. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/adversarial-audit-methodology.md +0 -0
  101. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/external/time-to-convergence-stationarity-gap.md +0 -0
  102. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/labeling-for-ml.md +0 -0
  103. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/market-regime-patterns.md +0 -0
  104. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/multi-threshold-patterns.md +0 -0
  105. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/multifactor-patterns.md +0 -0
  106. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/pattern-research-summary.md +0 -0
  107. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/price-action-patterns.md +0 -0
  108. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/tda-parameter-sensitivity-audit.md +0 -0
  109. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/tda-regime-patterns.md +0 -0
  110. {rangebar-12.0.1 → rangebar-12.1.1}/docs/research/volatility-regime-patterns.md +0 -0
  111. {rangebar-12.0.1 → rangebar-12.1.1}/docs/verification/issue-62-verification-report.md +0 -0
  112. {rangebar-12.0.1 → rangebar-12.1.1}/examples/README.md +0 -0
  113. {rangebar-12.0.1 → rangebar-12.1.1}/examples/backtesting_integration.py +0 -0
  114. {rangebar-12.0.1 → rangebar-12.1.1}/examples/basic_usage.py +0 -0
  115. {rangebar-12.0.1 → rangebar-12.1.1}/examples/binance_csv_example.py +0 -0
  116. {rangebar-12.0.1 → rangebar-12.1.1}/examples/get_range_bars_example.py +0 -0
  117. {rangebar-12.0.1 → rangebar-12.1.1}/examples/validate_output.py +0 -0
  118. {rangebar-12.0.1 → rangebar-12.1.1}/examples/with_clickhouse_cache.py +0 -0
  119. {rangebar-12.0.1 → rangebar-12.1.1}/package-lock.json +0 -0
  120. {rangebar-12.0.1 → rangebar-12.1.1}/package.json +0 -0
  121. {rangebar-12.0.1 → rangebar-12.1.1}/pyproject.toml +0 -0
  122. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/CLAUDE.md +0 -0
  123. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/__init__.py +0 -0
  124. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/__init__.pyi +0 -0
  125. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/checkpoint.py +0 -0
  126. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/cli.py +0 -0
  127. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/CLAUDE.md +0 -0
  128. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/__init__.py +0 -0
  129. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/bulk_operations.py +0 -0
  130. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/cache.py +0 -0
  131. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/client.py +0 -0
  132. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/config.py +0 -0
  133. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/mixin.py +0 -0
  134. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/preflight.py +0 -0
  135. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/query_operations.py +0 -0
  136. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/schema.sql +0 -0
  137. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/clickhouse/tunnel.py +0 -0
  138. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/conversion.py +0 -0
  139. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/exceptions.py +0 -0
  140. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/exness.py +0 -0
  141. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/hooks.py +0 -0
  142. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/logging.py +0 -0
  143. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/notify/__init__.py +0 -0
  144. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/notify/pushover.py +0 -0
  145. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/notify/telegram.py +0 -0
  146. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/__init__.py +0 -0
  147. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/count_bounded.py +0 -0
  148. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/models.py +0 -0
  149. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/precompute.py +0 -0
  150. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/orchestration/tick_fetcher.py +0 -0
  151. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/ouroboros.py +0 -0
  152. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/processors/__init__.py +0 -0
  153. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/processors/api.py +0 -0
  154. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/resource_guard.py +0 -0
  155. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/storage/__init__.py +0 -0
  156. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/storage/checksum_registry.py +0 -0
  157. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/storage/parquet.py +0 -0
  158. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/streaming.py +0 -0
  159. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/threshold.py +0 -0
  160. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/__init__.py +0 -0
  161. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/cache_staleness.py +0 -0
  162. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/continuity.py +0 -0
  163. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/gap_classification.py +0 -0
  164. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/post_storage.py +0 -0
  165. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/tier1.py +0 -0
  166. {rangebar-12.0.1 → rangebar-12.1.1}/python/rangebar/validation/tier2.py +0 -0
  167. {rangebar-12.0.1 → rangebar-12.1.1}/rust-toolchain.toml +0 -0
  168. {rangebar-12.0.1 → rangebar-12.1.1}/rustfmt.toml +0 -0
  169. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/adwin_regime_detection_polars.py +0 -0
  170. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/analyze_flash_crash.py +0 -0
  171. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/bootstrap_permutation_validation_polars.py +0 -0
  172. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/build-release.sh +0 -0
  173. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/cache_clear.py +0 -0
  174. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/cache_status.py +0 -0
  175. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/check-release-config.sh +0 -0
  176. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/coarse_to_fine_cascade.py +0 -0
  177. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/combined_pattern_audit_polars.py +0 -0
  178. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/combined_regime_analysis_polars.py +0 -0
  179. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/combined_rv_alignment_analysis_polars.py +0 -0
  180. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/cross_asset_correlation_polars.py +0 -0
  181. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/cross_regime_correlation_polars.py +0 -0
  182. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/cross_threshold_alignment.py +0 -0
  183. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/dependency_monitor.sh +0 -0
  184. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/direction_patterns_reaudit.py +0 -0
  185. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/download_exness_eurusd.py +0 -0
  186. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/download_exness_forex.py +0 -0
  187. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/duration_autocorrelation.py +0 -0
  188. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/duration_autocorrelation_audit.py +0 -0
  189. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/duration_volatility_prediction.py +0 -0
  190. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/fdr_corrected_patterns.py +0 -0
  191. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/fill_all_symbols.py +0 -0
  192. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/fill_gaps_2025_2026.py +0 -0
  193. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/fill_gaps_littleblack.py +0 -0
  194. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/fill_gaps_retry.py +0 -0
  195. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/historical_formation_patterns_polars.py +0 -0
  196. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/historical_formation_regime_polars.py +0 -0
  197. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/hurst_adjusted_kelly_polars.py +0 -0
  198. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/hurst_adjusted_psr_analysis_polars.py +0 -0
  199. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/hurst_exponent_analysis_polars.py +0 -0
  200. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/hurst_multi_estimator_audit.py +0 -0
  201. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/microstructure_clickhouse.py +0 -0
  202. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/microstructure_patterns.py +0 -0
  203. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/microstructure_simple.py +0 -0
  204. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/monitor_population.py +0 -0
  205. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multi_threshold_pattern_analysis_polars.py +0 -0
  206. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multibar_continuation.py +0 -0
  207. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multibar_forward_returns_polars.py +0 -0
  208. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multifactor_multigranularity_patterns.py +0 -0
  209. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multifactor_patterns.py +0 -0
  210. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multifactor_patterns_polars.py +0 -0
  211. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multithreshold_combinations_polars.py +0 -0
  212. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/multithreshold_regime_combinations_polars.py +0 -0
  213. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/oos_validation_polars.py +0 -0
  214. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/parameter_sensitivity_polars.py +0 -0
  215. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/pattern_correlation_analysis_polars.py +0 -0
  216. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/pattern_return_profiles_polars.py +0 -0
  217. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/pattern_return_stats.py +0 -0
  218. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/populate_1000dbps.py +0 -0
  219. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/populate_250dbps.py +0 -0
  220. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/populate_250dbps_extended.py +0 -0
  221. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/populate_safe.py +0 -0
  222. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/position_sizing_analysis_polars.py +0 -0
  223. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/process_exness_eurusd_to_cache.py +0 -0
  224. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/profiling_tools.sh +0 -0
  225. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/psr_mintrl_analysis_polars.py +0 -0
  226. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/publish-to-pypi.sh +0 -0
  227. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/publish-wheels.sh +0 -0
  228. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/purge_crypto_low_threshold.py +0 -0
  229. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/regenerate_cache.py +0 -0
  230. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/regime_analysis.py +0 -0
  231. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/regime_analysis_50dbps_polars.py +0 -0
  232. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/regime_analysis_polars.py +0 -0
  233. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/regime_transition_analysis_polars.py +0 -0
  234. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/run_large_scale_benchmark.sh +0 -0
  235. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/run_length_momentum_analysis.py +0 -0
  236. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/run_length_momentum_multi_symbol.py +0 -0
  237. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/run_length_momentum_wfo.py +0 -0
  238. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/rv_return_profile_analysis_polars.py +0 -0
  239. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/semantic-release.sh +0 -0
  240. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_break_event_alignment_polars.py +0 -0
  241. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_conditioned_patterns.py +0 -0
  242. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_cupy_accelerated.py +0 -0
  243. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_gpu_analysis.py +0 -0
  244. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_hurst_by_regime_polars.py +0 -0
  245. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_parameter_sweep_audit.py +0 -0
  246. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_regime_hurst_analysis_polars.py +0 -0
  247. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_regime_pattern_analysis_polars.py +0 -0
  248. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_ripser_plusplus.py +0 -0
  249. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_rolling_threshold.py +0 -0
  250. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_solusdt_250_audit.py +0 -0
  251. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_solusdt_250_littleblack.py +0 -0
  252. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_structural_break_analysis_polars.py +0 -0
  253. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_volatility_forecast.py +0 -0
  254. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_wfo_3way.py +0 -0
  255. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_wfo_abstain.py +0 -0
  256. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/tda_wfo_audit.py +0 -0
  257. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/temporal_safe_patterns_polars.py +0 -0
  258. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/three_bar_alignment_analysis_polars.py +0 -0
  259. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/three_bar_pattern_analysis_polars.py +0 -0
  260. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/three_bar_pattern_audit_polars.py +0 -0
  261. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/three_factor_hurst_analysis_polars.py +0 -0
  262. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/three_factor_pattern_analysis_polars.py +0 -0
  263. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/transaction_cost_analysis_polars.py +0 -0
  264. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/trend_filter_analysis.py +0 -0
  265. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/upload_eurusd_to_clickhouse.py +0 -0
  266. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/validate_clickhouse.py +0 -0
  267. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/validate_memory_efficiency.py +0 -0
  268. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/validate_microstructure_features.py +0 -0
  269. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/validate_n_range_bars.py +0 -0
  270. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/volatility_regime_analysis_polars.py +0 -0
  271. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/volatility_regime_audit_polars.py +0 -0
  272. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/volume_conditioned_patterns.py +0 -0
  273. {rangebar-12.0.1 → rangebar-12.1.1}/scripts/volume_conditioned_patterns_polars.py +0 -0
  274. {rangebar-12.0.1 → rangebar-12.1.1}/src/lib.rs +0 -0
  275. {rangebar-12.0.1 → rangebar-12.1.1}/test_data/BTCUSDT/BTCUSDT_aggTrades_20250901.csv +0 -0
  276. {rangebar-12.0.1 → rangebar-12.1.1}/test_data/ETHUSDT/ETHUSDT_aggTrades_20250901.csv +0 -0
  277. {rangebar-12.0.1 → rangebar-12.1.1}/test_data/README.md +0 -0
  278. {rangebar-12.0.1 → rangebar-12.1.1}/tests/conftest.py +0 -0
  279. {rangebar-12.0.1 → rangebar-12.1.1}/tests/fixtures/.gitignore +0 -0
  280. {rangebar-12.0.1 → rangebar-12.1.1}/tests/fixtures/BTCUSDT-aggTrades-2024-01-01.zip +0 -0
  281. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_cache_schema_evolution.py +0 -0
  282. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_clickhouse.py +0 -0
  283. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_clickhouse_integration.py +0 -0
  284. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_crypto_minimum_threshold.py +0 -0
  285. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_e2e_optimized.py +0 -0
  286. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_edge_cases.py +0 -0
  287. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_examples.py +0 -0
  288. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_get_n_range_bars.py +0 -0
  289. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_get_range_bars_e2e.py +0 -0
  290. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_issue_5_reproduction.py +0 -0
  291. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_issues_7_8.py +0 -0
  292. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_microstructure_features.py +0 -0
  293. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_ouroboros.py +0 -0
  294. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_polars_only_downstream.py +0 -0
  295. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_preflight.py +0 -0
  296. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_python_api.py +0 -0
  297. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_real_data.py +0 -0
  298. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_rust_bindings.py +0 -0
  299. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_storage.py +0 -0
  300. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_streaming.py +0 -0
  301. {rangebar-12.0.1 → rangebar-12.1.1}/tests/test_validation_presets.py +0 -0
  302. {rangebar-12.0.1 → rangebar-12.1.1}/uv.lock +0 -0
@@ -0,0 +1,36 @@
1
+ # Project-local Cargo configuration
2
+ # Overrides ~/.cargo/config.toml for cross-compilation compatibility
3
+
4
+ # =============================================================================
5
+ # Cross-Compilation Settings
6
+ # =============================================================================
7
+ # IMPORTANT: Do NOT use target-cpu=native here - it breaks cross-compilation.
8
+ # The global ~/.cargo/config.toml may have target-cpu=native, which works for
9
+ # native builds but fails when cross-compiling to x86_64-linux from ARM macOS.
10
+ #
11
+ # Per-target flags override global [build] rustflags, enabling zig cross-compile.
12
+
13
+ [build]
14
+ # Remove target-cpu=native to allow cross-compilation
15
+ rustflags = ["-C", "opt-level=3", "-C", "strip=symbols"]
16
+
17
+ # =============================================================================
18
+ # Target-Specific Overrides
19
+ # =============================================================================
20
+ # These apply ONLY when building for the specific target, allowing us to
21
+ # use native optimizations on macOS while keeping Linux cross-compile friendly.
22
+
23
+ [target.aarch64-apple-darwin]
24
+ # Native macOS ARM64: can use native CPU features
25
+ rustflags = ["-C", "opt-level=3", "-C", "target-cpu=native", "-C", "strip=symbols"]
26
+
27
+ [target.x86_64-unknown-linux-gnu]
28
+ # Linux cross-compile: generic x86_64, no native CPU features
29
+ rustflags = ["-C", "opt-level=3", "-C", "strip=symbols"]
30
+
31
+ # =============================================================================
32
+ # Linker Settings (for cross-compilation)
33
+ # =============================================================================
34
+ # Maturin --zig sets these automatically, but documenting for reference:
35
+ # [target.x86_64-unknown-linux-gnu]
36
+ # linker = "zig cc -target x86_64-linux-gnu.2.17"
@@ -0,0 +1,34 @@
1
+ # Benchmarking Tasks
2
+ # Usage: mise run bench:run, mise run bench:validate
3
+
4
+ ["bench:run"]
5
+ description = "Run performance benchmarks"
6
+ run = "cargo bench --bench rangebar_bench"
7
+
8
+ ["bench:quick"]
9
+ description = "Run quick benchmarks (reduced iterations)"
10
+ run = "cargo bench --bench rangebar_bench -- --quick"
11
+
12
+ ["bench:baseline"]
13
+ description = "Create performance baseline"
14
+ run = """
15
+ mkdir -p $BENCH_DATA_DIR
16
+ cargo bench --bench rangebar_bench -- --save-baseline main
17
+ echo "Baseline saved to $BENCH_DATA_DIR/main"
18
+ """
19
+
20
+ ["bench:compare"]
21
+ description = "Compare current performance with baseline"
22
+ run = "cargo bench --bench rangebar_bench -- --baseline main"
23
+
24
+ ["bench:validate"]
25
+ description = "Validate performance targets (1M ticks < 100ms)"
26
+ run = """
27
+ echo "Running performance validation..."
28
+ cargo bench --bench rangebar_bench -- --quick 2>&1 | tee /tmp/bench_output.txt
29
+ if grep -q "1M.*time:.*[0-9][0-9][0-9]\\.[0-9]* ms" /tmp/bench_output.txt; then
30
+ echo "FAIL: 1M ticks benchmark exceeds 100ms target"
31
+ exit 1
32
+ fi
33
+ echo "PASS: Performance targets met"
34
+ """
@@ -0,0 +1,10 @@
1
+ # ClickHouse Cache Tasks
2
+ # Usage: mise run cache:status
3
+
4
+ ["cache:status"]
5
+ description = "Show ClickHouse cache statistics"
6
+ run = "python scripts/cache_status.py"
7
+
8
+ ["cache:clear"]
9
+ description = "Clear ClickHouse cache for a symbol (interactive)"
10
+ run = "python scripts/cache_clear.py"
@@ -0,0 +1,44 @@
1
+ # Checksum Verification Tasks (Issue #43)
2
+ # Usage: mise run test:checksum
3
+
4
+ ["test:checksum"]
5
+ description = "Test Rust checksum verification module"
6
+ run = "cargo nextest run -p rangebar-providers checksum"
7
+
8
+ ["test:checksum:integration"]
9
+ description = "Integration test with real Binance data (requires network)"
10
+ run = """
11
+ python -c '
12
+ from rangebar import get_range_bars
13
+ import logging
14
+ logging.basicConfig(level=logging.DEBUG)
15
+
16
+ # Test with checksum verification (should see checksum events in logs)
17
+ df = get_range_bars("BTCUSDT", "2024-01-01", "2024-01-01", verify_checksum=True)
18
+ print(f"Downloaded {len(df)} bars with checksum verification")
19
+ '
20
+ """
21
+
22
+ ["checksum:audit"]
23
+ description = "Audit Tier 1 cache for unverified files"
24
+ run = """
25
+ python -c '
26
+ from rangebar.storage.checksum_registry import ChecksumRegistry
27
+ registry = ChecksumRegistry()
28
+ count = registry.get_verified_count("BTCUSDT")
29
+ print(f"BTCUSDT verified dates: {count}")
30
+ '
31
+ """
32
+
33
+ ["checksum:pushover-test"]
34
+ description = "Send test Pushover alert to verify credentials"
35
+ run = """
36
+ python -c '
37
+ from rangebar.notify.pushover import send_critical_alert
38
+ result = send_critical_alert(
39
+ title="🧪 RB Test Alert",
40
+ message="Checksum verification test - ignore this alert.",
41
+ )
42
+ print(f"Pushover alert sent: {result}")
43
+ '
44
+ """
@@ -0,0 +1,26 @@
1
+ # Dependency Management Tasks
2
+ # Usage: mise run deps:check, mise run deps:security
3
+
4
+ ["deps:check"]
5
+ description = "Check for outdated dependencies"
6
+ run = "cargo outdated -R --color always"
7
+
8
+ ["deps:security"]
9
+ description = "Run security audit on dependencies"
10
+ run = "cargo deny check advisories && cargo deny check licenses"
11
+
12
+ ["deps:tree"]
13
+ description = "Show dependency tree (depth 1)"
14
+ run = "cargo tree --depth 1 | grep -E '^[a-z]'"
15
+
16
+ ["deps:update"]
17
+ description = "Update dependencies (simple - no rollback)"
18
+ run = """
19
+ cargo update
20
+ cargo nextest run --no-fail-fast
21
+ echo "Dependencies updated and tests passed"
22
+ """
23
+
24
+ ["deps:update-safe"]
25
+ description = "Update dependencies with backup/rollback (uses script)"
26
+ run = "./scripts/dependency_monitor.sh auto"
@@ -0,0 +1,62 @@
1
+ # Development Tasks
2
+ # Usage: mise run fmt, mise run test, mise run build
3
+
4
+ [fmt]
5
+ description = "Format code with cargo fmt"
6
+ run = "cargo fmt --all"
7
+
8
+ [lint]
9
+ description = "Run clippy linting"
10
+ run = "cargo clippy --all-targets --all-features"
11
+
12
+ [test]
13
+ description = "Run Rust tests with cargo nextest (excludes PyO3 root crate)"
14
+ run = "cargo nextest run --workspace --exclude rangebar-py"
15
+
16
+ [test-py]
17
+ description = "Run Python tests"
18
+ run = "pytest tests/ -v"
19
+
20
+ ["test:e2e"]
21
+ description = "Run end-to-end tests (requires ClickHouse)"
22
+ run = "pytest tests/ -v -m 'not slow' --tb=short"
23
+
24
+ ["test:clickhouse"]
25
+ description = "Run ClickHouse-specific tests"
26
+ run = "pytest tests/ -v -m clickhouse --tb=short"
27
+
28
+ ["test:all"]
29
+ description = "Run all tests including slow and ClickHouse"
30
+ run = "pytest tests/ -v --tb=short"
31
+
32
+ [deny]
33
+ description = "Run cargo deny security checks"
34
+ run = "cargo deny check"
35
+
36
+ [check]
37
+ description = "Run all quality checks (fmt + test)"
38
+ depends = ["fmt", "test"]
39
+
40
+ [check-full]
41
+ description = "Full quality checks including lint and deny"
42
+ depends = ["fmt", "lint", "test", "deny"]
43
+
44
+ [build]
45
+ description = "Build Python extension (development)"
46
+ run = "maturin develop"
47
+
48
+ [build-release]
49
+ description = "Build in release mode"
50
+ run = "cargo build --release"
51
+
52
+ [clean]
53
+ description = "Clean build artifacts"
54
+ run = "cargo clean && rm -rf dist/ build/ *.egg-info"
55
+
56
+ [docs]
57
+ description = "Generate documentation"
58
+ run = "cargo doc --open --all-features"
59
+
60
+ [dev]
61
+ description = "Quick development cycle (fmt + test)"
62
+ depends = ["fmt", "test"]
@@ -0,0 +1,189 @@
1
+ # Diagnostics Tasks
2
+ # Usage: mise run diag:release
3
+
4
+ ["diag:release"]
5
+ description = "Diagnose release environment (SSH, tools, PyPI)"
6
+ run = """
7
+ #!/usr/bin/env bash
8
+ set -euo pipefail
9
+
10
+ echo "=== RELEASE DIAGNOSTICS ==="
11
+ echo ""
12
+
13
+ # Version info
14
+ VERSION=$(grep -A5 '\\[workspace.package\\]' Cargo.toml | grep '^version' | head -1 | sed 's/.*= "\\(.*\\)"/\\1/')
15
+ echo "Local version: $VERSION"
16
+
17
+ # PyPI check
18
+ echo ""
19
+ echo "--- PyPI Status ---"
20
+ PYPI_VERSION=$(pip index versions rangebar 2>/dev/null | head -1 | sed 's/rangebar (\\(.*\\))/\\1/' || echo "unknown")
21
+ echo "PyPI latest: $PYPI_VERSION"
22
+ if [ "$VERSION" = "$PYPI_VERSION" ]; then
23
+ echo "STATUS: Version $VERSION already on PyPI"
24
+ else
25
+ echo "STATUS: Version $VERSION NOT on PyPI (publishable)"
26
+ fi
27
+
28
+ # Git status
29
+ echo ""
30
+ echo "--- Git Status ---"
31
+ echo "Branch: $(git branch --show-current)"
32
+ echo "Clean: $(git status --porcelain | wc -l | tr -d ' ') uncommitted files"
33
+ echo "Remote: $(git remote get-url origin)"
34
+
35
+ # SSH connectivity
36
+ echo ""
37
+ echo "--- SSH Connectivity ---"
38
+ echo -n "Port 443 (ssh.github.com): "
39
+ SSH_OUT=$(timeout 15 ssh -T -o ConnectTimeout=10 git@github.com-terrylica 2>&1 || true)
40
+ if echo "$SSH_OUT" | grep -q "successfully authenticated"; then
41
+ echo "OK"
42
+ elif echo "$SSH_OUT" | grep -qi "timeout\\|timed out"; then
43
+ echo "TIMEOUT"
44
+ else
45
+ echo "FAIL"
46
+ fi
47
+
48
+ echo -n "Port 22 (direct): "
49
+ SSH_OUT=$(timeout 20 ssh -T -p 22 -i ~/.ssh/id_ed25519_terrylica -o IdentitiesOnly=yes -o ConnectTimeout=15 git@github.com 2>&1 || true)
50
+ if echo "$SSH_OUT" | grep -q "successfully authenticated"; then
51
+ echo "OK"
52
+ elif echo "$SSH_OUT" | grep -qi "timeout\\|timed out"; then
53
+ echo "TIMEOUT"
54
+ else
55
+ echo "FAIL"
56
+ fi
57
+
58
+ # Tools
59
+ echo ""
60
+ echo "--- Build Tools ---"
61
+ echo "Rust: $(rustc --version 2>/dev/null || echo 'not found')"
62
+ echo "Zig: $(zig version 2>/dev/null || echo 'not found')"
63
+ echo "Maturin: $(maturin --version 2>/dev/null || echo 'not found')"
64
+ echo "Linux target: $(rustup target list --installed | grep -q x86_64-unknown-linux-gnu && echo 'installed' || echo 'missing')"
65
+
66
+ # Cargo config
67
+ echo ""
68
+ echo "--- Cargo Config ---"
69
+ if [ -f ".cargo/config.toml" ]; then
70
+ echo "Project .cargo/config.toml: exists"
71
+ if grep -A5 "^\\[build\\]" .cargo/config.toml | grep "^rustflags" | grep -q "target-cpu=native"; then
72
+ echo " WARN: [build] section has target-cpu=native (breaks cross-compile)"
73
+ elif grep "^rustflags" .cargo/config.toml | grep -q "target-cpu=native"; then
74
+ echo " OK: target-cpu=native only in target-specific sections"
75
+ else
76
+ echo " OK: No target-cpu=native in rustflags"
77
+ fi
78
+ else
79
+ echo "Project .cargo/config.toml: MISSING (may need for cross-compile)"
80
+ fi
81
+
82
+ # Build locks
83
+ echo ""
84
+ echo "--- Build Locks ---"
85
+ if [ -d "$BUILD_LOCK_DIR" ]; then
86
+ LOCKS=$(find "$BUILD_LOCK_DIR" -name "*.lock*" 2>/dev/null | wc -l | tr -d ' ')
87
+ echo "Lock directory: $BUILD_LOCK_DIR"
88
+ echo "Active locks: $LOCKS"
89
+ ls -la "$BUILD_LOCK_DIR"/*.lock* 2>/dev/null || echo " (none)"
90
+ else
91
+ echo "Lock directory: not created yet"
92
+ fi
93
+
94
+ # 1Password
95
+ echo ""
96
+ echo "--- Credentials ---"
97
+ echo -n "1Password PyPI token: "
98
+ if op item get djevteztvbcqgcm3yl4njkawjq --fields credential --reveal 2>/dev/null | head -c 10 >/dev/null; then
99
+ echo "accessible"
100
+ else
101
+ echo "FAIL (run: op signin)"
102
+ fi
103
+
104
+ echo ""
105
+ echo "=== END DIAGNOSTICS ==="
106
+ """
107
+
108
+ ["diag:fetch"]
109
+ description = "Fetch and update remote tracking refs (fixes statusline ↑/↓ mismatch)"
110
+ run = """
111
+ #!/usr/bin/env bash
112
+ set -euo pipefail
113
+
114
+ echo "Fetching with SSH fallback..."
115
+
116
+ # Try default first, fallback to port 22
117
+ if timeout 15 git fetch origin 2>/dev/null; then
118
+ echo "OK: Fetched via default SSH"
119
+ else
120
+ echo "WARN: Default SSH timed out, using port 22..."
121
+ GIT_SSH_COMMAND='ssh -p 22 -i ~/.ssh/id_ed25519_terrylica -o IdentitiesOnly=yes -o ConnectTimeout=10' \
122
+ git fetch origin main:refs/remotes/origin/main
123
+ echo "OK: Fetched via port 22"
124
+ fi
125
+
126
+ # Show current state
127
+ echo ""
128
+ echo "Local vs Remote:"
129
+ git log --oneline origin/main..HEAD 2>/dev/null | head -5 || echo " (in sync)"
130
+ """
131
+
132
+ ["diag:locks-clear"]
133
+ description = "Clear all build locks (use when stuck)"
134
+ run = """
135
+ #!/usr/bin/env bash
136
+ echo "Clearing build locks..."
137
+ rm -rf "$BUILD_LOCK_DIR"/*.lock* 2>/dev/null || true
138
+ rm -rf "$BUILD_LOCK_DIR"/*.lock.d 2>/dev/null || true
139
+ echo "OK: Locks cleared"
140
+ ls -la "$BUILD_LOCK_DIR" 2>/dev/null || echo "Lock directory empty"
141
+ """
142
+
143
+ ["diag:ssh-fix"]
144
+ description = "Test and fix SSH connectivity to GitHub"
145
+ run = """
146
+ #!/usr/bin/env bash
147
+ set -euo pipefail
148
+
149
+ echo "=== SSH Connectivity Fix ==="
150
+
151
+ # Test port 443 (configured in ~/.ssh/config)
152
+ echo -n "Testing port 443 (ssh.github.com)... "
153
+ if timeout 15 ssh -T -o ConnectTimeout=10 git@github.com-terrylica 2>&1 | grep -q "successfully authenticated"; then
154
+ echo "OK"
155
+ echo "Port 443 works - no fix needed"
156
+ exit 0
157
+ else
158
+ echo "TIMEOUT"
159
+ fi
160
+
161
+ # Test port 22 (direct)
162
+ echo -n "Testing port 22 (github.com direct)... "
163
+ if timeout 20 ssh -T -p 22 -i ~/.ssh/id_ed25519_terrylica -o IdentitiesOnly=yes -o ConnectTimeout=15 git@github.com 2>&1 | grep -q "successfully authenticated"; then
164
+ echo "OK"
165
+ echo ""
166
+ echo "Port 22 works but port 443 doesn't."
167
+ echo "Your network may be blocking port 443 to ssh.github.com"
168
+ echo ""
169
+ echo "Options:"
170
+ echo " 1. Update ~/.ssh/config to use port 22:"
171
+ echo " Host github.com-terrylica"
172
+ echo " HostName github.com"
173
+ echo " Port 22"
174
+ echo " User git"
175
+ echo " IdentityFile ~/.ssh/id_ed25519_terrylica"
176
+ echo ""
177
+ echo " 2. Use mise run release:quick (skips sync)"
178
+ echo ""
179
+ echo " 3. Manually sync with:"
180
+ echo " GIT_SSH_COMMAND='ssh -p 22 -i ~/.ssh/id_ed25519_terrylica' git pull --rebase origin main"
181
+ else
182
+ echo "FAIL"
183
+ echo ""
184
+ echo "Both ports failing - check:"
185
+ echo " 1. SSH key exists: ls -la ~/.ssh/id_ed25519_terrylica"
186
+ echo " 2. Key added to GitHub: gh ssh-key list"
187
+ echo " 3. Network connectivity: ping github.com"
188
+ fi
189
+ """
@@ -0,0 +1,18 @@
1
+ # Profiling Tasks
2
+ # Usage: mise run prof:flamegraph
3
+
4
+ ["prof:flamegraph"]
5
+ description = "Generate CPU flamegraph"
6
+ run = """
7
+ mkdir -p $PROFILE_DATA_DIR
8
+ cargo flamegraph --bench rangebar_bench -o $PROFILE_DATA_DIR/flamegraph-$(date +%Y%m%d-%H%M%S).svg
9
+ echo "Flamegraph saved to $PROFILE_DATA_DIR/"
10
+ """
11
+
12
+ ["prof:build-release"]
13
+ description = "Build with profiling symbols"
14
+ run = "CARGO_PROFILE_RELEASE_DEBUG=true cargo build --release"
15
+
16
+ ["prof:full"]
17
+ description = "Comprehensive profiling suite (uses script for platform detection)"
18
+ run = "./scripts/profiling_tools.sh full"