quantbt-engine 1.1.1__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/CHANGELOG.md +74 -0
  2. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/MANIFEST.in +4 -0
  3. {quantbt_engine-1.1.1/src/quantbt_engine.egg-info → quantbt_engine-1.2.0}/PKG-INFO +214 -16
  4. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/README.md +210 -14
  5. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/pyproject.toml +4 -2
  6. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/__init__.py +13 -1
  7. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/_native_event_rust.py +72 -13
  8. quantbt_engine-1.2.0/src/quantbt/backends/native_audit_projection.py +187 -0
  9. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_event.py +123 -142
  10. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_intrabar_rust.py +2 -1
  11. quantbt_engine-1.2.0/src/quantbt/backends/native_metric_support.py +42 -0
  12. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_option.py +65 -101
  13. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_portfolio.py +55 -229
  14. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_prepared_evaluation.py +27 -3
  15. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_vectorized.py +65 -54
  16. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_public.py +69 -4
  17. quantbt_engine-1.2.0/src/quantbt/backends/option_validation.py +110 -0
  18. quantbt_engine-1.2.0/src/quantbt/backends/portfolio_reports.py +206 -0
  19. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo.py +85 -1
  20. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_batch.py +22 -1
  21. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_batch_selection.py +9 -1
  22. quantbt_engine-1.2.0/src/quantbt/backends/reactive_wfo_sampling.py +199 -0
  23. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_support.py +17 -3
  24. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_workers.py +43 -7
  25. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backtester.py +54 -16
  26. quantbt_engine-1.2.0/src/quantbt/benchmarks/README.md +118 -0
  27. quantbt_engine-1.2.0/src/quantbt/benchmarks/phase7_thresholds.json +45 -0
  28. quantbt_engine-1.2.0/src/quantbt/core/account_metadata.py +17 -0
  29. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/constraints.py +6 -3
  30. quantbt_engine-1.2.0/src/quantbt/core/delivery_lifecycle.py +74 -0
  31. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/engine.py +112 -8
  32. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/event.py +47 -2
  33. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/generated_product_contracts.py +4 -4
  34. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_kernel.py +4 -0
  35. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_reference.py +2 -0
  36. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/market_tape.py +64 -29
  37. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/performance_contracts.py +11 -1
  38. quantbt_engine-1.2.0/src/quantbt/core/portfolio_validation.py +26 -0
  39. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/preprocessor.py +71 -20
  40. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/results.py +79 -9
  41. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/schema.py +11 -10
  42. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/types.py +20 -3
  43. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/vectorized.py +54 -4
  44. quantbt_engine-1.2.0/src/quantbt/core/wfo_failures.py +44 -0
  45. quantbt_engine-1.2.0/src/quantbt/diagnostics/__init__.py +32 -0
  46. quantbt_engine-1.2.0/src/quantbt/diagnostics/access.py +4 -0
  47. quantbt_engine-1.2.0/src/quantbt/diagnostics/account_profile.py +70 -0
  48. quantbt_engine-1.2.0/src/quantbt/diagnostics/analysis_profile.py +39 -0
  49. quantbt_engine-1.2.0/src/quantbt/diagnostics/archive.py +219 -0
  50. quantbt_engine-1.2.0/src/quantbt/diagnostics/archive_contracts.py +276 -0
  51. quantbt_engine-1.2.0/src/quantbt/diagnostics/assessment.py +235 -0
  52. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/__init__.py +26 -0
  53. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/donor_binding.py +44 -0
  54. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/donors.py +352 -0
  55. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/pack.py +283 -0
  56. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/reconcile.py +175 -0
  57. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/render.py +109 -0
  58. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/verification.py +85 -0
  59. quantbt_engine-1.2.0/src/quantbt/diagnostics/calibration/worksheet.py +314 -0
  60. quantbt_engine-1.2.0/src/quantbt/diagnostics/contracts.py +140 -0
  61. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/__init__.py +8 -0
  62. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/adapters.py +62 -0
  63. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/completed.py +57 -0
  64. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/contracts.py +219 -0
  65. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/effects.py +80 -0
  66. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/reduction.py +228 -0
  67. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/render.py +211 -0
  68. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/report.py +291 -0
  69. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/snapshots.py +106 -0
  70. quantbt_engine-1.2.0/src/quantbt/diagnostics/decisions/validation.py +94 -0
  71. quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/__init__.py +7 -0
  72. quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/attribution.py +141 -0
  73. quantbt_engine-1.2.0/src/quantbt/diagnostics/environments/manifests.py +119 -0
  74. quantbt_engine-1.2.0/src/quantbt/diagnostics/evidence.py +150 -0
  75. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/__init__.py +20 -0
  76. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/basins.py +94 -0
  77. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/design.py +144 -0
  78. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/estimators.py +396 -0
  79. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/finite_panel.py +259 -0
  80. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/neighborhoods.py +128 -0
  81. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/schema.py +4 -0
  82. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/sensitivity.py +66 -0
  83. quantbt_engine-1.2.0/src/quantbt/diagnostics/geometry/structured.py +270 -0
  84. quantbt_engine-1.2.0/src/quantbt/diagnostics/identity.py +4 -0
  85. quantbt_engine-1.2.0/src/quantbt/diagnostics/interpretation.py +111 -0
  86. quantbt_engine-1.2.0/src/quantbt/diagnostics/planner.py +50 -0
  87. quantbt_engine-1.2.0/src/quantbt/diagnostics/report.py +143 -0
  88. quantbt_engine-1.2.0/src/quantbt/diagnostics/research_contracts.py +143 -0
  89. quantbt_engine-1.2.0/src/quantbt/diagnostics/research_render.py +76 -0
  90. quantbt_engine-1.2.0/src/quantbt/diagnostics/researcher.py +84 -0
  91. quantbt_engine-1.2.0/src/quantbt/diagnostics/reuse.py +101 -0
  92. quantbt_engine-1.2.0/src/quantbt/diagnostics/search_profile.py +76 -0
  93. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/__init__.py +8 -0
  94. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/accounts.py +238 -0
  95. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/contracts.py +182 -0
  96. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/explanation.py +92 -0
  97. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/render.py +53 -0
  98. quantbt_engine-1.2.0/src/quantbt/diagnostics/winner/report.py +231 -0
  99. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/endpoint.py +303 -32
  100. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engines.py +19 -1
  101. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/performance.py +97 -20
  102. quantbt_engine-1.2.0/src/quantbt/metrics/report_contracts.py +209 -0
  103. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/__init__.py +7 -0
  104. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/account.py +172 -0
  105. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/adapters.py +102 -0
  106. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/cache.py +80 -0
  107. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/drawdown.py +147 -0
  108. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/execution.py +118 -0
  109. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/inputs.py +190 -0
  110. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/ledger.py +263 -0
  111. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/ledger_inputs.py +118 -0
  112. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/plot.py +48 -0
  113. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/public.py +122 -0
  114. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/request.py +60 -0
  115. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/results.py +108 -0
  116. quantbt_engine-1.2.0/src/quantbt/metrics/reporting/snapshots.py +93 -0
  117. quantbt_engine-1.2.0/src/quantbt/mode5/__init__.py +10 -0
  118. quantbt_engine-1.2.0/src/quantbt/mode5/artifacts.py +21 -0
  119. quantbt_engine-1.2.0/src/quantbt/mode5/continuous.py +515 -0
  120. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_binding.py +119 -0
  121. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_eligibility.py +47 -0
  122. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_producer.py +71 -0
  123. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_retention.py +25 -0
  124. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_runtime.py +277 -0
  125. quantbt_engine-1.2.0/src/quantbt/mode5/continuous_scope.py +167 -0
  126. quantbt_engine-1.2.0/src/quantbt/mode5/decision_report.py +447 -0
  127. quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/__init__.py +1 -0
  128. quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/access.py +58 -0
  129. quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/full_development.py +113 -0
  130. quantbt_engine-1.2.0/src/quantbt/mode5/diagnostics/identity.py +73 -0
  131. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/__init__.py +1 -0
  132. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/dossier.py +129 -0
  133. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/evidence.py +110 -0
  134. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/governance.py +110 -0
  135. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/plans.py +90 -0
  136. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/records.py +44 -0
  137. quantbt_engine-1.2.0/src/quantbt/mode5/dossier/researcher_report.py +340 -0
  138. quantbt_engine-1.2.0/src/quantbt/mode5/evaluation.py +100 -0
  139. quantbt_engine-1.2.0/src/quantbt/mode5/event_producer.py +225 -0
  140. quantbt_engine-1.2.0/src/quantbt/mode5/geometry/__init__.py +1 -0
  141. quantbt_engine-1.2.0/src/quantbt/mode5/geometry/schema.py +169 -0
  142. quantbt_engine-1.2.0/src/quantbt/mode5/integration_contracts.py +209 -0
  143. quantbt_engine-1.2.0/src/quantbt/mode5/runtime.py +256 -0
  144. quantbt_engine-1.2.0/src/quantbt/mode5/selection/__init__.py +11 -0
  145. quantbt_engine-1.2.0/src/quantbt/mode5/selection/advisory.py +59 -0
  146. quantbt_engine-1.2.0/src/quantbt/mode5/selection/contracts.py +316 -0
  147. quantbt_engine-1.2.0/src/quantbt/mode5/selection/geometry.py +19 -0
  148. quantbt_engine-1.2.0/src/quantbt/mode5/selection/migration.py +59 -0
  149. quantbt_engine-1.2.0/src/quantbt/mode5/selection/objectives.py +154 -0
  150. quantbt_engine-1.2.0/src/quantbt/mode5/selection/pareto.py +113 -0
  151. quantbt_engine-1.2.0/src/quantbt/mode5/selection/registry.py +26 -0
  152. quantbt_engine-1.2.0/src/quantbt/mode5/selection/selectors.py +60 -0
  153. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/__init__.py +10 -0
  154. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/analysis.py +137 -0
  155. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/contracts.py +83 -0
  156. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/dependence.py +85 -0
  157. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/moments.py +135 -0
  158. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/tails.py +151 -0
  159. quantbt_engine-1.2.0/src/quantbt/mode5/statistics/uncertainty.py +65 -0
  160. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/__init__.py +7 -0
  161. quantbt_engine-1.2.0/src/quantbt/optimization/conditional_sobol.py +142 -0
  162. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/config.py +19 -0
  163. quantbt_engine-1.2.0/src/quantbt/optimization/continuation/__init__.py +6 -0
  164. quantbt_engine-1.2.0/src/quantbt/optimization/continuation/contract.py +167 -0
  165. quantbt_engine-1.2.0/src/quantbt/optimization/continuation/session.py +239 -0
  166. quantbt_engine-1.2.0/src/quantbt/optimization/continuation/storage.py +64 -0
  167. quantbt_engine-1.2.0/src/quantbt/optimization/exact_is_reuse.py +37 -0
  168. quantbt_engine-1.2.0/src/quantbt/optimization/execution_trial_output.py +19 -0
  169. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/__init__.py +25 -0
  170. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/artifacts.py +105 -0
  171. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/capture.py +161 -0
  172. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/common.py +104 -0
  173. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/config.py +173 -0
  174. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/descriptors.py +341 -0
  175. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/__init__.py +9 -0
  176. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/base.py +127 -0
  177. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/contracts.py +183 -0
  178. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/execution.py +101 -0
  179. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/package.py +51 -0
  180. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/package_contract.py +124 -0
  181. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio.py +98 -0
  182. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio_contract.py +117 -0
  183. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/portfolio_witness.py +91 -0
  184. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/reactive.py +62 -0
  185. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/registry.py +101 -0
  186. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/scalar.py +106 -0
  187. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/domains/scalar_contract.py +93 -0
  188. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/handoff.py +251 -0
  189. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/history.py +400 -0
  190. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/memo.py +34 -0
  191. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/model.py +450 -0
  192. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/nested.py +142 -0
  193. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/numerics.py +385 -0
  194. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/observer.py +365 -0
  195. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/panel.py +121 -0
  196. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/persistence.py +229 -0
  197. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/prepared.py +95 -0
  198. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive.py +99 -0
  199. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_batch_witness.py +34 -0
  200. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_execution.py +100 -0
  201. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/reactive_transport.py +127 -0
  202. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/records.py +356 -0
  203. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/runtime.py +505 -0
  204. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/selection.py +468 -0
  205. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/telemetry.py +47 -0
  206. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/witness.py +131 -0
  207. quantbt_engine-1.2.0/src/quantbt/optimization/meta_selection/work_cache.py +63 -0
  208. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/optimizer.py +15 -4
  209. quantbt_engine-1.2.0/src/quantbt/optimization/parameter_space.py +284 -0
  210. quantbt_engine-1.2.0/src/quantbt/optimization/representatives.py +137 -0
  211. quantbt_engine-1.2.0/src/quantbt/optimization/sampler_space.py +197 -0
  212. quantbt_engine-1.2.0/src/quantbt/optimization/samplers.py +150 -0
  213. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/space.py +16 -0
  214. quantbt_engine-1.2.0/src/quantbt/optimization/study_schedule.py +56 -0
  215. quantbt_engine-1.2.0/src/quantbt/optimization/wfo_study.py +402 -0
  216. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/authority.py +4 -3
  217. quantbt_engine-1.2.0/src/quantbt/options/endpoint_validation.py +27 -0
  218. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/execution.py +37 -11
  219. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/fees.py +15 -9
  220. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/hedging.py +11 -0
  221. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/ledger.py +107 -63
  222. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/lifecycle.py +5 -4
  223. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/margin.py +53 -30
  224. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/packages.py +8 -8
  225. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/reporting.py +55 -154
  226. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/schema.py +4 -6
  227. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/strategy.py +7 -0
  228. quantbt_engine-1.2.0/src/quantbt/options/validation.py +39 -0
  229. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/portfolio.py +138 -63
  230. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_execution.py +4 -0
  231. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_target_requests.py +15 -0
  232. quantbt_engine-1.2.0/src/quantbt/reporting/executed_attribution.py +30 -0
  233. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/portfolio_audit.py +15 -7
  234. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/fast.py +13 -4
  235. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/modes.py +35 -11
  236. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/walkforward.py +415 -50
  237. quantbt_engine-1.2.0/src/quantbt/wfo_execution.py +402 -0
  238. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0/src/quantbt_engine.egg-info}/PKG-INFO +214 -16
  239. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/SOURCES.txt +231 -0
  240. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/requires.txt +3 -1
  241. quantbt_engine-1.2.0/tests/test_acc01_clocks_funding.py +417 -0
  242. quantbt_engine-1.2.0/tests/test_acc01_event_vectorized.py +155 -0
  243. quantbt_engine-1.2.0/tests/test_acc01_source_guard.py +53 -0
  244. quantbt_engine-1.2.0/tests/test_ci_native_identity.py +108 -0
  245. quantbt_engine-1.2.0/tests/test_ci_shards_keep_going.py +134 -0
  246. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_endpoint.py +36 -5
  247. quantbt_engine-1.2.0/tests/test_hma_perf_compact_feedback.py +128 -0
  248. quantbt_engine-1.2.0/tests/test_hma_perf_delta_tape.py +363 -0
  249. quantbt_engine-1.2.0/tests/test_hma_perf_snapshot.py +394 -0
  250. quantbt_engine-1.2.0/tests/test_m5_12_benchmark_reporting.py +24 -0
  251. quantbt_engine-1.2.0/tests/test_m5_12_ci_format_guard.py +283 -0
  252. quantbt_engine-1.2.0/tests/test_m5_12_ci_rust_guard.py +94 -0
  253. quantbt_engine-1.2.0/tests/test_m5_12_closeout_report.py +303 -0
  254. quantbt_engine-1.2.0/tests/test_m5_12_consumer_wiring.py +623 -0
  255. quantbt_engine-1.2.0/tests/test_m5_12_local_artifacts.py +71 -0
  256. quantbt_engine-1.2.0/tests/test_m5_12_native_build.py +103 -0
  257. quantbt_engine-1.2.0/tests/test_m5_12_pct_activity_capability.py +150 -0
  258. quantbt_engine-1.2.0/tests/test_m5_12_pct_alias.py +44 -0
  259. quantbt_engine-1.2.0/tests/test_m5_12_pct_alias_guard.py +213 -0
  260. quantbt_engine-1.2.0/tests/test_m5_12_pct_installed.py +353 -0
  261. quantbt_engine-1.2.0/tests/test_m5_12_pct_source_guard.py +203 -0
  262. quantbt_engine-1.2.0/tests/test_m5_12_preparation.py +130 -0
  263. quantbt_engine-1.2.0/tests/test_m5_12_release120_guard.py +79 -0
  264. quantbt_engine-1.2.0/tests/test_m5_12_reproduction.py +384 -0
  265. quantbt_engine-1.2.0/tests/test_m5_12_snapshot_guard.py +343 -0
  266. quantbt_engine-1.2.0/tests/test_m5_12_traceability.py +235 -0
  267. quantbt_engine-1.2.0/tests/test_mode4_qualification.py +320 -0
  268. quantbt_engine-1.2.0/tests/test_mode5_covariance_finance.py +349 -0
  269. quantbt_engine-1.2.0/tests/test_mode5_covariance_requests.py +253 -0
  270. quantbt_engine-1.2.0/tests/test_mode5_driver_observer.py +121 -0
  271. quantbt_engine-1.2.0/tests/test_mode5_feedback_observer.py +794 -0
  272. quantbt_engine-1.2.0/tests/test_mode5_iteration_witness.py +147 -0
  273. quantbt_engine-1.2.0/tests/test_mode5_m5081_history.py +88 -0
  274. quantbt_engine-1.2.0/tests/test_mode5_m509_dossier_report.py +68 -0
  275. quantbt_engine-1.2.0/tests/test_mode5_missing_probes.py +319 -0
  276. quantbt_engine-1.2.0/tests/test_mode5_probe_closure.py +425 -0
  277. quantbt_engine-1.2.0/tests/test_mode5_probe_views.py +282 -0
  278. quantbt_engine-1.2.0/tests/test_mode5_research_jobs.py +558 -0
  279. quantbt_engine-1.2.0/tests/test_mode5_selector_checkpoint.py +445 -0
  280. quantbt_engine-1.2.0/tests/test_next03_product_qualification.py +89 -0
  281. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_01_traceability_and_computation.py +49 -0
  282. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_05_wfo_evaluation_reuse.py +5 -1
  283. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase13_portfolio_report_parity.py +3 -1
  284. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase45d_native_event_zero_object.py +2 -13
  285. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46f_packaging_release.py +14 -3
  286. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase49b_wfo_performance.py +19 -1
  287. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase55a_native_distribution.py +2 -2
  288. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase55b_public_release.py +18 -5
  289. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase56_v1_1_baseline.py +72 -32
  290. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase71_runtime_productization.py +7 -0
  291. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase75_reactive_scalar_retention.py +2 -12
  292. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase76_reactive_wfo.py +1 -1
  293. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_1_measurement_contract.py +20 -6
  294. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_2_pct_equity_native.py +108 -8
  295. quantbt_engine-1.2.0/tests/test_portfolio_account_review_fixes.py +172 -0
  296. quantbt_engine-1.2.0/tests/test_portfolio_guard_current_qualification.py +205 -0
  297. quantbt_engine-1.2.0/tests/test_portfolio_legacy_review_fixes.py +396 -0
  298. quantbt_engine-1.2.0/tests/test_portfolio_repair_native_parity.py +85 -0
  299. quantbt_engine-1.2.0/tests/test_portfolio_repair_source_guard.py +44 -0
  300. quantbt_engine-1.2.0/tests/test_pre_m512_extraction_contract.py +82 -0
  301. quantbt_engine-1.2.0/tests/test_pre_m512_portfolio_extraction.py +109 -0
  302. quantbt_engine-1.2.0/tests/test_pre_m512_resources.py +32 -0
  303. quantbt_engine-1.2.0/tests/test_pre_m512_source_guard.py +83 -0
  304. quantbt_engine-1.2.0/tests/test_qms_candidate_diagnostics.py +63 -0
  305. quantbt_engine-1.2.0/tests/test_qms_real_evidence.py +120 -0
  306. quantbt_engine-1.2.0/tests/test_qms_real_review.py +104 -0
  307. quantbt_engine-1.2.0/tests/test_scalar_report_contract.py +47 -0
  308. quantbt_engine-1.2.0/tests/test_vectorized_account_review_fixes.py +235 -0
  309. quantbt_engine-1.2.0/tests/test_version_pair_120.py +155 -0
  310. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_walkforward_phase1.py +14 -1
  311. quantbt_engine-1.1.1/src/quantbt/optimization/samplers.py +0 -84
  312. quantbt_engine-1.1.1/tests/test_next03_product_qualification.py +0 -36
  313. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/LICENSE +0 -0
  314. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/setup.cfg +0 -0
  315. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/__init__.py +0 -0
  316. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/__init__.py +0 -0
  317. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/_dependency.py +0 -0
  318. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/backend.py +0 -0
  319. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/instruments.py +0 -0
  320. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/options.py +0 -0
  321. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/adapters/nautilus/reports.py +0 -0
  322. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/api/__init__.py +0 -0
  323. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/api/event_driven.py +0 -0
  324. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/__init__.py +0 -0
  325. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_package_arbitrage.py +0 -0
  326. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_portfolio_package.py +0 -0
  327. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_strategy_ir.py +0 -0
  328. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo.py +0 -0
  329. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_support.py +0 -0
  330. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/native_wfo_target.py +0 -0
  331. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/backends/reactive_wfo_preparation.py +0 -0
  332. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/__init__.py +0 -0
  333. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/compare_phase9_parity.py +0 -0
  334. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/gamma_scalping_backtestsample.py +0 -0
  335. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/profile_phase7.py +0 -0
  336. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_arbitrage_phase_e.py +0 -0
  337. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_optimization_overhead.py +0 -0
  338. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_options_engine.py +0 -0
  339. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_pct_equity_nautilus_smoke.py +0 -0
  340. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase12_arbitrage_cert.py +0 -0
  341. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase12_benchmark_nautilus_cert.py +0 -0
  342. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase13_portfolio_report.py +0 -0
  343. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase13_wfo_cache.py +0 -0
  344. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase14_service_loop.py +0 -0
  345. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase15a_nautilus_certification.py +0 -0
  346. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase15b_synthetic_depth.py +0 -0
  347. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase16_performance_debt.py +0 -0
  348. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase30e_reactive_runner.py +0 -0
  349. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase31_intrabar.py +0 -0
  350. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34a_native_event_memory.py +0 -0
  351. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34b_native_event_prepared_score.py +0 -0
  352. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase34c_native_event_single_pass.py +0 -0
  353. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase49b_wfo_performance.py +0 -0
  354. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_phase7.py +0 -0
  355. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/run_portfolio_real_parity.py +0 -0
  356. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/benchmarks/v1_1_measurement.py +0 -0
  357. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/__init__.py +0 -0
  358. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/_trace_columns.py +0 -0
  359. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/accounting_contracts.py +0 -0
  360. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/arbitrage.py +0 -0
  361. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/basket.py +0 -0
  362. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/certification.py +0 -0
  363. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/event_contracts.py +0 -0
  364. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_contract.py +0 -0
  365. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_depth.py +0 -0
  366. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/execution_trace.py +0 -0
  367. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/fill_replay_v2.py +0 -0
  368. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/generated_native_event_contracts.py +0 -0
  369. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/instrument_contracts.py +0 -0
  370. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/instrument_registry_v2.py +0 -0
  371. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/intrabar_session.py +0 -0
  372. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/market_calendar_v2.py +0 -0
  373. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_capabilities.py +0 -0
  374. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_parity.py +0 -0
  375. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_event_promotion.py +0 -0
  376. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/native_result_v2.py +0 -0
  377. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/order_compiler.py +0 -0
  378. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/orders.py +0 -0
  379. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/package_execution_contracts.py +0 -0
  380. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/package_execution_v2.py +0 -0
  381. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/portfolio.py +0 -0
  382. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/portfolio_execution_contracts.py +0 -0
  383. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/prepared_execution_v2.py +0 -0
  384. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/product_contracts.py +0 -0
  385. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/reactive.py +0 -0
  386. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/research_audit.py +0 -0
  387. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/research_audit_artifact.py +0 -0
  388. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/runtime_governance.py +0 -0
  389. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/scopes.py +0 -0
  390. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/structured_orders.py +0 -0
  391. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/target_intents.py +0 -0
  392. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_contracts.py +0 -0
  393. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_evaluation.py +0 -0
  394. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/core/wfo_preparation.py +0 -0
  395. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/__init__.py +0 -0
  396. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/errors.py +0 -0
  397. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/native_event.py +0 -0
  398. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/protocol.py +0 -0
  399. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/engine_spi/registry.py +0 -0
  400. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/errors.py +0 -0
  401. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/__init__.py +0 -0
  402. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/metrics/options_analytics.py +0 -0
  403. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/bootstrap.py +0 -0
  404. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/callbacks.py +0 -0
  405. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/candidate_selection.py +0 -0
  406. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/constraints.py +0 -0
  407. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluator.py +0 -0
  408. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/__init__.py +0 -0
  409. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/arbitrage.py +0 -0
  410. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/generic.py +0 -0
  411. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/grid_dca.py +0 -0
  412. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/intrabar.py +0 -0
  413. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/native_event.py +0 -0
  414. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/options.py +0 -0
  415. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/portfolio.py +0 -0
  416. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/evaluators/signal.py +0 -0
  417. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/multiseed.py +0 -0
  418. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/objectives.py +0 -0
  419. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/optimization/result.py +0 -0
  420. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/__init__.py +0 -0
  421. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/cache.py +0 -0
  422. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/capabilities.py +0 -0
  423. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/conventions.py +0 -0
  424. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/data.py +0 -0
  425. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/greeks.py +0 -0
  426. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/iv.py +0 -0
  427. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/pricing.py +0 -0
  428. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/selectors.py +0 -0
  429. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/surface.py +0 -0
  430. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/tape.py +0 -0
  431. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/templates/__init__.py +0 -0
  432. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/options/templates/packages.py +0 -0
  433. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/__init__.py +0 -0
  434. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/capabilities.py +0 -0
  435. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/fingerprints.py +0 -0
  436. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/models.py +0 -0
  437. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/output.py +0 -0
  438. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/planning/resolve.py +0 -0
  439. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/__init__.py +0 -0
  440. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/cache.py +0 -0
  441. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/models.py +0 -0
  442. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_event.py +0 -0
  443. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_intrabar_requests.py +0 -0
  444. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/preparation/native_package_requests.py +0 -0
  445. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/py.typed +0 -0
  446. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/__init__.py +0 -0
  447. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/arbitrage_audit.py +0 -0
  448. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_bundle.py +0 -0
  449. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_certification.py +0 -0
  450. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/nautilus_diagnostics.py +0 -0
  451. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/parity.py +0 -0
  452. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/reporting/portfolio_nautilus.py +0 -0
  453. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/results/__init__.py +0 -0
  454. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/results/raw.py +0 -0
  455. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/sizing/__init__.py +0 -0
  456. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/__init__.py +0 -0
  457. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/commands.py +0 -0
  458. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/context.py +0 -0
  459. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/driver.py +0 -0
  460. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/native_ir.py +0 -0
  461. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/reactive_protocols.py +0 -0
  462. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/reactive_wfo.py +0 -0
  463. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/requirements.py +0 -0
  464. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/strategies/wfo_prepared.py +0 -0
  465. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/verification/__init__.py +0 -0
  466. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/verification/canonical_trace_v2.py +0 -0
  467. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/__init__.py +0 -0
  468. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/plots.py +0 -0
  469. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt/viz/themes.py +0 -0
  470. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/dependency_links.txt +0 -0
  471. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/src/quantbt_engine.egg-info/top_level.txt +0 -0
  472. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_followup_statistical_work.py +0 -0
  473. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_gate_paired_timings.py +0 -0
  474. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_generic_callback_audit_regression.py +0 -0
  475. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_metrics_intraday_scope.py +0 -0
  476. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_native_release_evidence_hygiene.py +0 -0
  477. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next01_reactive_public_runtime.py +0 -0
  478. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next02_reactive_wfo_benchmark.py +0 -0
  479. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_canonical_source_layout.py +0 -0
  480. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_capability_surface.py +0 -0
  481. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_clean_consumer_proof.py +0 -0
  482. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_next03_source_inventory.py +0 -0
  483. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_core.py +0 -0
  484. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_evaluators.py +0 -0
  485. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_integration.py +0 -0
  486. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_phase33b.py +0 -0
  487. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_optimization_samplers.py +0 -0
  488. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_pct_equity_nautilus_smoke.py +0 -0
  489. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_02_session_reuse.py +0 -0
  490. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_03_reactive_boundary.py +0 -0
  491. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_04_native_matching.py +0 -0
  492. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_06_research_audit.py +0 -0
  493. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_07_performance_closure.py +0 -0
  494. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_08_wfo_preparation.py +0 -0
  495. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_perf_09_reactive_boundary.py +0 -0
  496. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase0_baseline.py +0 -0
  497. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_native_portfolio_backend.py +0 -0
  498. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_native_portfolio_full_surface.py +0 -0
  499. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_engine_spec.py +0 -0
  500. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_institutional_scenarios.py +0 -0
  501. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_nautilus_validation.py +0 -0
  502. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase11_portfolio_real_parity_script.py +0 -0
  503. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase12_arbitrage_certification.py +0 -0
  504. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase12_benchmark_nautilus_cert.py +0 -0
  505. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase13_arbitrage_certification_cleanup.py +0 -0
  506. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase14_service_loop_benchmark.py +0 -0
  507. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase14c_prepared_report_levels.py +0 -0
  508. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase15a_nautilus_certification.py +0 -0
  509. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase15b_synthetic_depth.py +0 -0
  510. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase16_prepared_service_context.py +0 -0
  511. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase1_schema.py +0 -0
  512. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase2_native_vectorized.py +0 -0
  513. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30a_native_event_lifecycle_contract.py +0 -0
  514. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30b_native_event_lifecycle_kernel.py +0 -0
  515. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30c_native_event_endpoint_lifecycle.py +0 -0
  516. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30d_native_event_reactive_runner.py +0 -0
  517. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase30e_native_event_incremental_runner.py +0 -0
  518. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31_merge_blockers.py +0 -0
  519. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31a_execution_correctness_contract.py +0 -0
  520. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31b_market_tape_intrabar_oracle.py +0 -0
  521. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31c_intrabar_kernel.py +0 -0
  522. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31d_certification.py +0 -0
  523. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase31h_intrabar_session_reference.py +0 -0
  524. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34a_native_event_artifacts.py +0 -0
  525. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34b_native_event_prepared_score.py +0 -0
  526. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase34c_native_event_single_pass.py +0 -0
  527. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase3_native_event.py +0 -0
  528. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase42_packaging_layout.py +0 -0
  529. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase42c_ci_release.py +0 -0
  530. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase45a_source_tree_sync.py +0 -0
  531. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46a_correctness_certification.py +0 -0
  532. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46b_score_rss.py +0 -0
  533. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase46c_import_graph.py +0 -0
  534. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47a_grid_adapter.py +0 -0
  535. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47c_grid_parity.py +0 -0
  536. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase47d_grid_optimizer.py +0 -0
  537. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48a_release_surfaces.py +0 -0
  538. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48b_release_hygiene.py +0 -0
  539. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48c_event_driven_facade.py +0 -0
  540. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase48f_release_gate.py +0 -0
  541. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase49a_walkforward_schedules.py +0 -0
  542. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase4_basket.py +0 -0
  543. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase50_nested_mode1_causal.py +0 -0
  544. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase54b2_benchmark_policy.py +0 -0
  545. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase57_v1_1_specs_oracle_trace.py +0 -0
  546. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase58_market_calendar_instrument_v2.py +0 -0
  547. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase59_linear_accounting_fill_replay.py +0 -0
  548. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_1_nautilus_report_bundle.py +0 -0
  549. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_arbitrage_audit.py +0 -0
  550. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_institutional_simulations.py +0 -0
  551. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_3_portfolio_audit.py +0 -0
  552. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_debt_domain_validation.py +0 -0
  553. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_endpoint_depth.py +0 -0
  554. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_4_nautilus_depth.py +0 -0
  555. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase5_nautilus_adapter.py +0 -0
  556. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase60_execution_metrics_native_result.py +0 -0
  557. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase61_static_event_rust_primary.py +0 -0
  558. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase62_reactive_numeric_coruntime.py +0 -0
  559. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase63_sparse_block_reactive.py +0 -0
  560. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase64_wfo_correctness.py +0 -0
  561. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase65_native_wfo_runtime.py +0 -0
  562. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase66_rust_target_vectorized.py +0 -0
  563. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase67_rust_shared_portfolio.py +0 -0
  564. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase68_rust_package_authority.py +0 -0
  565. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase69_rust_intrabar_authority.py +0 -0
  566. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase6_public_api.py +0 -0
  567. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase72_measurement_contract.py +0 -0
  568. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase73_prepared_evaluation.py +0 -0
  569. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase74_public_wfo_native.py +0 -0
  570. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_3_kernel_resource_parity.py +0 -0
  571. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_3_reactive_parity.py +0 -0
  572. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase77_native_performance_parity.py +0 -0
  573. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase78_public_release_closure.py +0 -0
  574. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase7_benchmark_suite.py +0 -0
  575. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_a.py +0 -0
  576. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_b.py +0 -0
  577. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_c.py +0 -0
  578. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_d.py +0 -0
  579. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_e.py +0 -0
  580. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_f.py +0 -0
  581. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_g.py +0 -0
  582. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase8_arbitrage_phase_h.py +0 -0
  583. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_phase9_performance_parity.py +0 -0
  584. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_pre48e_native_event_fast_paths.py +0 -0
  585. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_real.py +0 -0
  586. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_real_endpoints.py +0 -0
  587. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_release_channel_policy.py +0 -0
  588. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_release_evidence_hygiene.py +0 -0
  589. {quantbt_engine-1.1.1 → quantbt_engine-1.2.0}/tests/test_shared_quantity_constraints.py +0 -0
@@ -4,6 +4,80 @@ All notable changes to `quantbt-engine` are documented here.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.2.0] - 2026-10-23
8
+
9
+ ### Core 1.2.0 / Native 0.4.3
10
+
11
+ - Retargeted the unreleased core candidate from1.1.2to1.2.0 to reflect the
12
+ diagnostics, Mode4/Mode5, sampler/meta, reporting and account upgrade below.
13
+ Historical1.1.2receipts retain their original scope; they are not renamed
14
+ release evidence. Native version remains0.4.3; generated product metadata
15
+ follows the new pair, requiring fresh matching native artifacts.
16
+ - Reduced full Reporting V1 Python scalar-dispatch and metadata overhead;
17
+ closed-ledger reason counting uses one pass instead of one scan per reason.
18
+ Exact before/after output, snapshot/identity and undefined-policy parity are
19
+ tested. Reporting formulas, financial kernels and WFO selection are unchanged;
20
+ timing gains are workload-specific and do not imply a universal speedup.
21
+
22
+ - Added opt-in `reporting=ReportingRequest(...)` on completed endpoint/result
23
+ reports and quick plots. Account-period, execution, closed-trade/action and
24
+ drawdown episode output has explicit baseline, frequency, currency, coverage
25
+ and unavailable policies. This opt-in does not alter execution or WFO/meta
26
+ objectives; separate account repairs below intentionally correct financial
27
+ edge cases. Read [Reporting V1](docs/metrics/PUBLIC_REPORTING.md).
28
+ - Reduced optional reporting copies and duplicate hashing using immutable
29
+ bytes-owned snapshots, a prepared boolean mask and one report/plot snapshot.
30
+ Cache hits still rehash mutable completed input; formulas, exact identities,
31
+ requested episode detail, legacy reports and financial/WFO metrics are unchanged.
32
+ - Fixed immutable reporting snapshot reconstruction after copy/deepcopy and
33
+ pickle, including nested execution paths and drawdown episodes. Constructors
34
+ revalidate storage and recompute hashes; changed observations cannot reuse a
35
+ saved identity. Python reporting scans use zero-copy native scalar access
36
+ with preserved numerical overflow policies and exact differential coverage.
37
+
38
+ - Added opt-in Mode 4 / per-fold causal meta selection and a shared sampler
39
+ bridge for legacy TPE, grouped multivariate TPE, CMA-ES and fixed-space Sobol.
40
+ - Qualified causal history, ridge artifacts, reference/prepared selection
41
+ parity, exact reusable calendar/market witnesses, observed thread telemetry
42
+ and bounded sequential W3 meta on the original native accounting pass.
43
+ - Enabled the already-qualified QMS native exports in default Cargo builds;
44
+ Linux core dependency is exactly `quantbt-native==0.4.3`. The ABI remains
45
+ versioned; later ACC-01 changes affect both Python and Rust financial source
46
+ and require fresh compatible artifacts. Meta remains disabled unless requested.
47
+ - Earlier QMS wheel/sdist, installed-W3 and six-row Ubuntu receipts retain
48
+ their historical source scope. They do not certify the later Mode 5,
49
+ reporting and account repairs. Final M5-12 artifacts, remote qualification
50
+ and public consumers remain separate gates.
51
+ - Added diagnostics-first opt-in Mode 5 calibration with versioned objectives,
52
+ selectors, diagnostic evidence/rights, frozen plans, explanation and winner
53
+ qualification. Shared diagnostics/reporting include Mode 4 fold consistency,
54
+ R/Q, decision coverage and explicit cross-mode researcher handoff. No automatic
55
+ sampler/selector router or universal economic improvement is claimed.
56
+ - Extended the stable endpoint API additively: optional `execution_endpoint`
57
+ on `walk_forward`, keyword-only `meta_history` on `backtest`, optional
58
+ `reporting` on completed reports/plots, and `research_report(...)`.
59
+ - Corrected current-capability account/configuration behavior: financial clocks,
60
+ funding interval coverage, contract multipliers, risk-reducing admission,
61
+ constraints, invalid inputs, actual attribution and reporting horizon/time
62
+ handling. Unsupported non-default options fail explicitly; gross-cross/netting
63
+ is not hedge inventory or isolated liquidation. See
64
+ [ACC-01 migration](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md).
65
+ - Refreshed the generated root API inventory to 527 exports (11 additions to
66
+ the stale generated list, no removals), with an exact metadata-only amendment
67
+ that preserves the separate financial source qualification and historical receipts.
68
+ - Extracted cold option validation and portfolio report helpers, preserving
69
+ endpoint/private aliases, moved function bodies and retained engine code.
70
+ Exact source qualification is separate from historical financial-invariance
71
+ receipts and still does not certify installed artifacts.
72
+ - Added maintained installed-consumer/CI wiring for the Mode 5,
73
+ winner/donor, reporting and account changes. Execution on final wheel/sdist
74
+ artifacts and remote/public qualification remain separate gates.
75
+ - Aligned tag/release regression with the qualified CI native-wheel identity
76
+ pin and isolated host-PID tests. Release publication is native-first and
77
+ requires its own artifact and public-consumer gates; this changelog is not
78
+ a publication receipt or a new scientific acceptance claim. See the
79
+ [release checklist](docs/testpypi_release_checklist.md).
80
+
7
81
  ## [1.1.1]
8
82
 
9
83
  ### Changed
@@ -4,6 +4,8 @@ include CHANGELOG.md
4
4
  include pyproject.toml
5
5
 
6
6
  recursive-include src/quantbt *.py py.typed
7
+ include src/quantbt/benchmarks/README.md
8
+ include src/quantbt/benchmarks/phase7_thresholds.json
7
9
 
8
10
  global-exclude *.pem
9
11
  global-exclude *.key
@@ -14,6 +16,8 @@ global-exclude .pypirc
14
16
  prune upgrade/private
15
17
  prune upgrade/local
16
18
  prune upgrade/drafts
19
+ prune upgrade/alphas
20
+ exclude upgrade/MODE5_INVARIANT_AND_ALPHA_PROFILING_SPEC_V1.md
17
21
  prune benchmarks
18
22
  prune artifacts
19
23
  prune data/raw
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quantbt-engine
3
- Version: 1.1.1
3
+ Version: 1.2.0
4
4
  Summary: Transparent, high-performance quantitative backtesting engine
5
5
  Author-email: Vu Cong Minh <vugioan11022002@gmail.com>
6
6
  License-Expression: MIT
@@ -27,9 +27,10 @@ License-File: LICENSE
27
27
  Requires-Dist: numpy<2.3,>=2.2.6
28
28
  Requires-Dist: pandas<2.4,>=2.3.3
29
29
  Requires-Dist: numba<0.66,>=0.65.1
30
- Requires-Dist: quantbt-native==0.4.2; sys_platform == "linux" and platform_machine == "x86_64" and implementation_name == "cpython" and python_version >= "3.11" and python_version < "3.14"
30
+ Requires-Dist: quantbt-native==0.4.3; sys_platform == "linux" and platform_machine == "x86_64" and implementation_name == "cpython" and python_version >= "3.11" and python_version < "3.14"
31
31
  Provides-Extra: optimization
32
32
  Requires-Dist: optuna<4.9,>=4.8.0; extra == "optimization"
33
+ Requires-Dist: cmaes==0.12.0; extra == "optimization"
33
34
  Requires-Dist: arch<8.1,>=8.0.0; extra == "optimization"
34
35
  Requires-Dist: scikit-learn<1.9,>=1.8.0; extra == "optimization"
35
36
  Provides-Extra: reports
@@ -42,6 +43,7 @@ Requires-Dist: nautilus-trader<1.231,>=1.230.0; python_version >= "3.12" and ext
42
43
  Provides-Extra: native
43
44
  Provides-Extra: all
44
45
  Requires-Dist: optuna<4.9,>=4.8.0; extra == "all"
46
+ Requires-Dist: cmaes==0.12.0; extra == "all"
45
47
  Requires-Dist: arch<8.1,>=8.0.0; extra == "all"
46
48
  Requires-Dist: scikit-learn<1.9,>=1.8.0; extra == "all"
47
49
  Requires-Dist: quantstats==0.0.81; extra == "all"
@@ -64,8 +66,8 @@ walk-forward validation.
64
66
 
65
67
  The public API stays Pythonic. NumPy and Numba power portable research paths,
66
68
  while a governed Rust/PyO3 companion accelerates certified event workloads.
67
- Every backend returns the same result surface for metrics, plots, reports, and
68
- audit metadata.
69
+ Completed research/audit runs use the shared result/report surface. Explicit
70
+ score/compact profiles retain only their documented outputs, not full audit data.
69
71
 
70
72
  ```python
71
73
  from quantbt import QuantBTEndpoint
@@ -84,15 +86,33 @@ The distribution name is **`quantbt-engine`**; the import name is
84
86
 
85
87
  On Linux x86_64 with glibc and CPython 3.11-3.13, installation also resolves
86
88
  the exact pre-built **`quantbt-native`** companion. Users do not need Cargo,
87
- Rust, Maturin, a second import, or a different endpoint. Unsupported platforms
88
- retain the complete Python/Numba API.
89
+ Rust, Maturin, a second import, or a different endpoint. Portable Python/Numba
90
+ routes remain available where their dependencies are supported; explicit Rust
91
+ contracts still require a matching native wheel. Alpine/musl is not covered:
92
+ the dependency marker cannot distinguish musl from glibc, so installation may
93
+ fail there rather than automatically fall back.
89
94
 
90
- Release pair:
95
+ Release pair declared by this source revision:
91
96
 
92
97
  | Distribution | Version | Purpose |
93
98
  |---|---:|---|
94
- | `quantbt-engine` | `1.1.1` | Public API, Python/Numba engines, reports, compatibility oracle |
95
- | `quantbt-native` | `0.4.2` | Internal PyO3 extension for certified Rust workloads |
99
+ | `quantbt-engine` | `1.2.0` | Public API, Python/Numba engines, reports, compatibility oracle |
100
+ | `quantbt-native` | `0.4.3` | Internal PyO3 extension, including default QMS numerics and prepared witnesses |
101
+
102
+ The previous release pair was `1.1.1 / 0.4.2`. QMS is opt-in: enabling its
103
+ compiled capability does not enable meta selection or change an existing
104
+ endpoint/account policy. See the
105
+ [QMS release handoff](docs/meta_selection/RELEASE_HANDOFF.md) for exact artifact,
106
+ installed-W3 and public-consumer gates and the owner-controlled release order.
107
+ The [M5-12 preparation checklist](docs/mode5/M5_12_PREPARATION.md) preserves
108
+ the earlier `1.1.2` candidate qualification under its original scope. Current
109
+ source/artifact qualification, platform certification and public-index proof
110
+ are separate from historical receipts. The [release capability map](#prepared-release-capabilities)
111
+ below describes this source revision. For a checkout or candidate artifact,
112
+ verify the installed versions rather than assuming it is already on PyPI.
113
+ The [release checklist](docs/testpypi_release_checklist.md) requires the native
114
+ companion to be public before core publication, then a public consumer proof.
115
+ Local qualification alone is not evidence of publication.
96
116
 
97
117
  Optional features:
98
118
 
@@ -112,12 +132,68 @@ print("core:", version("quantbt-engine"))
112
132
  try:
113
133
  print("native:", version("quantbt-native"))
114
134
  except PackageNotFoundError:
115
- print("native: unavailable; Python/Numba fallback is active")
135
+ print("native: unavailable; use a supported portable route or install the exact companion")
116
136
  ```
117
137
 
118
138
  Read the [native installation matrix](docs/native/install.md) for supported
119
139
  platforms, backend controls, and troubleshooting.
120
140
 
141
+ ## Optional Reporting V1
142
+
143
+ Completed endpoint/result `full_report()`, `show_metrics()` and `quick_plot()`
144
+ accept `reporting=ReportingRequest(...)` for explicit account-period, execution,
145
+ closed-trade/action and drawdown-episode reporting. This reporting opt-in does
146
+ not change execution or the WFO/meta objective. Separate account correctness
147
+ fixes in this release can change results; see the migration notice below.
148
+ The four populations stay separate: `account_period`, `execution`,
149
+ `closed_trade` and `closed_action`. Returns/drawdowns are numeric fractions
150
+ (percentages are display-only); PnL/costs retain their currency, durations their
151
+ declared units, and each metric its sample count, coverage and validity.
152
+ Declare the baseline, clock, sampling and annual periods explicitly.
153
+ Missing outcome attribution is metric-specific N/A with a reason, not a guessed
154
+ trade count or zero. Undefined bankruptcy-period ratios and invalid overflow
155
+ remain null with status; no-loss ratios are not JSON Infinity. Legacy scientific
156
+ metrics and `tearsheet()` keep their separate contracts. Read the
157
+ [reporting guide](docs/metrics/PUBLIC_REPORTING.md),
158
+ [metric definitions and units](docs/metrics/REPORTING_CONTRACT_V1.md) and runnable
159
+ [synthetic example](examples/reporting_metrics_v1.py).
160
+
161
+ Measured local CPython 3.12 reporting cost, one thread, one warmup/five samples:
162
+ the opt-in workload includes immutable snapshot/hash, reduction, episode detail
163
+ and grouped dictionary adaptation; it does not time strategy/execution.
164
+
165
+ | Account observations | Python full report p50 / p95 | Explicit Numba p50 / p95 | Numba observations/s | Worker peak RSS Python / Numba |
166
+ |---:|---:|---:|---:|---:|
167
+ | 2,000 | 6.435 / 6.828 ms | 1.728 / 1.826 ms | 1.16M | 202.11 / 300.85 MiB |
168
+ | 100,000 | 206.818 / 225.768 ms | 21.284 / 22.589 ms | 4.70M | 168.77 / 266.43 MiB |
169
+ | 1,000,000 | 2.111 / 2.165 s | 183.730 / 186.878 ms | 5.44M | 286.52 / 373.12 MiB |
170
+
171
+ These are **new report definitions and requested extra work**, not comparable
172
+ to the shorter legacy scientific metric set as a speedup. Text formatting was
173
+ 0.05-0.10 ms in the original qualification. Public requests prepare the immutable
174
+ mask once; request preparation, snapshot/hash and serialization are measured
175
+ separately, not advertised as free.
176
+ First-call Numba account compilation/reduction took 5.30-5.80 s and is not in
177
+ the warm table. Python remains the reporting default; small ledgers may be
178
+ faster without compilation. Peak RSS includes the import/JIT floor, and the
179
+ 2k row also draws the optional plot, so rows are not memory-scaling forecasts.
180
+ Public cache hits still rehash mutable input and adapt output. Full matched
181
+ legacy/new timings, coverage, caveats and local artifact receipts are in the
182
+ [copy/cost qualification](docs/metrics/MET03_COPY_COST_REPORT.md), with
183
+ historical evidence in the [performance follow-up](docs/metrics/MET03_PERFORMANCE_REPORT.md)
184
+ and [MET-03 report](docs/metrics/MET03_REPORT.md). No universal
185
+ 1-10 ms promise or Rust Reporting V1 reducer is claimed.
186
+
187
+ Alternating same-process comparisons, two warmups/30 samples, exact full-output
188
+ hashes: against immediate parent `dc12427`, Python 2k account reporting is
189
+ **8.270 -> 6.335 ms**, 1M is **3.165 -> 2.081 s**, and 2k closed trades are
190
+ **15.491 -> 11.592 ms**. Against historical `24ad469`, Numba 1M is
191
+ **319.356 -> 164.557 ms**. This paired cold-adapter/reducer comparison is
192
+ separate from the full public/fresh-worker table above. Numba p95 and small
193
+ cells are not uniformly better; all measurements remain visible. Copy/deepcopy
194
+ and trusted pickle round trips retain validated readonly snapshots and rederive
195
+ identities; cache correctness does not depend on trusting serialized hashes.
196
+
121
197
  ## Quick Start
122
198
 
123
199
  ```python
@@ -177,6 +253,114 @@ The full parameter, data, result, and support contracts are in the
177
253
  [endpoint guide](docs/endpoint.md). For a decision tree, read
178
254
  [backend selection](docs/backend_selection.md).
179
255
 
256
+ <a id="prepared-release-capabilities"></a>
257
+
258
+ ## Release Capabilities
259
+
260
+ For the **1.2.0 / 0.4.3** pair, choose each research extension
261
+ explicitly. Installing compiled capabilities does not enable meta, choose a
262
+ sampler/selector, route a strategy or promote a default. Software support,
263
+ registered economic findings and final installed/release certification are
264
+ separate claims.
265
+
266
+ | Research need | Capability and reading path |
267
+ |---|---|
268
+ | Choose search independently of meta | [Four shared sampler recipes](docs/meta_selection/SAMPLERS.md), [optional numeric-space helper](docs/meta_selection/SAMPLER_SPACE_HELPER.md), [synthetic example](examples/wfo_sampler_space.py) |
269
+ | Learn from permitted historical tasks | [Meta off/shadow/active](docs/meta_selection/USAGE.md), [route bounds](docs/meta_selection/CURRENT_ROUTE_REVIEW.md), [nested scalar Mode 1](docs/meta_selection/NESTED_MODE1.md) |
270
+ | Inspect evidence before/after search | [Shared alpha diagnostics](docs/diagnostics/SHARED_ALPHA_DIAGNOSTICS.md), [pre-search researcher view](docs/diagnostics/PRESEARCH_RESEARCHER_REPORT.md), [Mode 4 fold/decision reports](docs/diagnostics/FOLD_DECISION_REPORTS.md) |
271
+ | Calibrate one fixed parameter dict | [Diagnostics-first Mode 5](docs/mode5/PUBLIC_CALIBRATION_V1.md), [sealed executable handoff](docs/diagnostics/MODE5_EXECUTABLE_HANDOFF.md), [decision components](docs/mode5/DECISION_QUALIFICATION_V1.md) |
272
+ | Qualify a winner or explicitly reuse coordinates | [Winner, regime, activity, probe/stress and donor contracts](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md), [synthetic cross-mode example](examples/mode5_cross_mode_qualification.py) |
273
+ | Report completed results with explicit units/coverage | [Reporting V1](#optional-reporting-v1), [public usage](docs/metrics/PUBLIC_REPORTING.md) |
274
+ | Understand corrected account behavior | [ACC-01 supported/inactive/rejected configuration matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md), [current-capability qualification](docs/portfolio_review/ACC01_REPORT.md) |
275
+
276
+ ### Independent Samplers And Causal Meta
277
+
278
+ `optimization_config["sampler_config"]` selects `tpe_legacy`,
279
+ `tpe_multivariate_group`, `cmaes` or `sobol` without enabling meta. Omission
280
+ preserves historical sampler defaults. Optional `prepare_sampler_space`
281
+ assesses declared schema compatibility, not profitability: numeric lists stay
282
+ categorical by default. Declared regular integer grids can preserve support;
283
+ float choices need schema overrides. Conversion can change proposal geometry.
284
+ Mixed CMA and conditional Sobol require their
285
+ [explicit policies](docs/meta_selection/CONDITIONAL_POLICIES.md); neither the
286
+ helper nor diagnostics chooses a recipe from OOS outcomes.
287
+
288
+ | Meta mode/schedule | Admitted software scope | Important boundary |
289
+ |---|---|---|
290
+ | Mode 4 / `per_fold_causal` | Five scalar targets; bounded portfolio, basket/arbitrage, intrabar, callback/command and pre-expiry delivery adapters | Original route-specific account, timing and scoring contracts still apply |
291
+ | Nested Mode 1 / `per_fold_causal` | `signal_notional`, `notional`, `unit`, `pct_equity`, signed structural `dca_ladder` | Genuine inner validation within outer IS; not portfolio/package/execution/W3 meta |
292
+ | Prepared W3, Mode 4 causal | Separate sequential, one-symbol reactive adapter | Reset-flat segments, not carry-account, shared multi-symbol or public meta batching |
293
+
294
+ Shadow records proposals but executes the native winner; active may apply the
295
+ learned choice or documented fallback. Current IS and a frozen snapshot of
296
+ permitted matured history may inform selection; the current outer OOS never
297
+ enters its fit/rank. Other mode/route
298
+ combinations, including options/Nautilus meta, are not admitted merely because
299
+ their standalone endpoint or result helper exists. Numeric meta acceleration
300
+ and financial execution remain independent; Python callbacks are not Rust-owned.
301
+
302
+ ### Compatibility And Account Corrections
303
+
304
+ Endpoint factory names remain stable. Relative to `v1.1.1`, optional
305
+ `execution_endpoint`, `meta_history` and `reporting` inputs and the
306
+ `research_report(...)` method extend WFO and result analysis. The later ACC-01
307
+ repairs do not change endpoint method signatures, but intentionally correct
308
+ funding, sizing, order admission, attribution and reporting edge cases.
309
+ Unsupported non-default account/execution settings now fail explicitly instead
310
+ of appearing to work. These correctness repairs are not optional research
311
+ policies; omitting meta/diagnostics does not restore old financial defects.
312
+
313
+ | Current account family | Supported authority | Boundary |
314
+ |---|---|---|
315
+ | Linear event | Named event clocks, supported order constraints/risk reductions, costs and funding | Generic accounts are gross-cross/netting, not isolated collateral or simultaneous long/short inventory |
316
+ | Linear vectorized / portfolio | CLOSE targets, quantity constraints, costs/funding and executed-buffer attribution | Other generic fill clocks/partial-fill policies and isolated/hedging accounts are explicitly rejected |
317
+ | Options | Capital-matched opening wallet, reporting currency/explicit constant FX, option execution/margin and authoritative applied fees | Generic compatibility defaults can be inactive; changed generic controls fail rather than replacing option authorities; margin approximations are not venue-exact |
318
+
319
+ Clocks, funding intervals/events, fee denomination/timing and configuration
320
+ precedence retain their individual contracts, not one interchangeable model.
321
+ Read the full [supported / inactive-default / rejected matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md),
322
+ [account qualification](docs/portfolio_review/ACC01_REPORT.md) and
323
+ [API compatibility audit](docs/mode5/M5_12_PREPARATION.md#endpoint-compatibility).
324
+ Historical accounting results and benchmarks remain historical, not current
325
+ artifact certification.
326
+
327
+ ### Diagnostics And Opt-In Calibration
328
+
329
+ Shared [alpha diagnostics](docs/diagnostics/SHARED_ALPHA_DIAGNOSTICS.md) expose
330
+ coverage, parameter geometry/branches, activity and source-backed sensitivity,
331
+ local/regime/factor evidence with explicit missing support. They can precede
332
+ any WFO-mode choice and require neither meta nor a new financial engine.
333
+ Mode 4 [fold/meta reports](docs/diagnostics/REPORTING_COVERAGE_AND_HANDOFF.md)
334
+ separate R/Q/IS, matched cohorts and native/proposed/actually applied decisions;
335
+ they read original observations without rerunning accounts or fitting a model.
336
+
337
+ Diagnostics-first [Mode 5 calibration](docs/mode5/PUBLIC_CALIBRATION_V1.md)
338
+ freezes the objective, coefficients/reference, quality/support gates and
339
+ selector before search, then selects **one static parameter dict**. Explicit
340
+ selectors are `full_dro_cvar`, `full_sam_basin` and
341
+ `full_pareto_chebyshev`; SAM needs registered local probes, Pareto frozen
342
+ preferences. Utility, raw Sharpe and PSR are distinct, not interchangeable
343
+ objectives. `NO_SELECTION` retains exclusions rather than inventing a winner.
344
+ Reset-environment and continuous-account providers retain different contracts;
345
+ annual/regime views of one continuous account are dependent descriptions,
346
+ not independently optimized dicts or independent OOS. Annual positivity is not
347
+ silently substituted for the registered objective.
348
+
349
+ Continuous-account [winner qualification](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md)
350
+ joins the exact selected dict/formula/components to whole/annual/regime risk,
351
+ activity/costs, runner-up/baseline trade-offs and exact-winner probe/stress
352
+ support. State labels and evidence need their own source/rights witnesses;
353
+ the reader does not fit regimes, run missing stress or infer fills/campaigns
354
+ from position changes. Missing evidence stays unavailable, not PASS or zero.
355
+
356
+ Cross-mode assistance is an explicit researcher choice: reviewed donor
357
+ coordinates consume the destination budget and are rescored under its current
358
+ contract, without importing old scores, model state or account paths.
359
+ Full-development evidence cannot be backdated into a Mode 4 prefix. There is
360
+ no automatic router, adaptive-selector promotion or universal economic claim;
361
+ observed improvements, trade-offs and inconclusive findings keep their
362
+ registered alpha/window/objective/comparison scope.
363
+
180
364
  ## Event-Driven Facade
181
365
 
182
366
  New order-sensitive integrations should use `event_driven(...)`. Its three
@@ -496,17 +680,18 @@ compatibility callback fell from **5.477 s** (**18,259 bars/s**) to **2.430 s**
496
680
  (**41,145 bars/s**): median paired ratio **0.4473** and CI95
497
681
  `[0.4411, 0.4622]`. Both retain the public full-audit result and exact
498
682
  accounting/trace parity; isolated peak RSS stays effectively flat around
499
- **305 MiB**. These are current source-tree B1-to-B2 measurements, not a
683
+ **305 MiB**. These are historical NEXT-01 source-tree B1-to-B2 measurements, not a
500
684
  published-release comparison, a generic WFO claim, or a Rust decision-callback
501
685
  claim. Read the [NEXT-01 evidence](docs/performance/next01_reactive_public_runtime.md).
502
686
 
503
- Phase 77.3 records current-candidate reactive closure separately from the
687
+ Phase 77.3 records historical candidate reactive closure separately from the
504
688
  released table above. On its matched 10,000-bar prepared scalar fixture, R1,
505
689
  R2, and R3 score-only runs measured `20.077 ms`, `13.588 ms`, and `20.949 ms`
506
690
  (`498.1k`, `736.0k`, and `477.3k bars/s`). Its 2,000-bar W3 fixture with eight
507
691
  candidates measured `196.556 ms` sequential and `226.748 ms` for the distinct
508
692
  R3B schedule (`110.5k` and `105.4k` candidate-fold visits/s). These are
509
- development evidence on the current source tree, not a `v1.1.0` release claim,
693
+ development evidence on its recorded source (`db39959`), not current ACC-01
694
+ qualification or a `v1.1.0` release claim,
510
695
  not a comparison between different sampling schedules, and not a promise for
511
696
  arbitrary Python callback compute. The artifact also proves active Rust
512
697
  deadline/cancellation behavior and cross-route parity controls:
@@ -524,10 +709,11 @@ fold tables, selected parameters, segment equity, fees, funding, positions and
524
709
  strategy fingerprints match the compatibility path. See the
525
710
  [PERF-09 evidence](docs/performance/perf_09_reactive_boundary.md).
526
711
 
527
- The local Linux CPython candidate-pair gate also passed source-hash parity,
712
+ The historical local Linux CPython candidate-pair gate passed source-hash parity,
528
713
  isolated core/native install, direct native-target smoke, and source-tree import
529
- blocking. Published-wheel platform certification remains a separate Phase 78
530
- release responsibility.
714
+ blocking on its recorded bytes. Current final-source artifact certification is
715
+ M5-12 work, followed by separately approved remote/public gates. Neither those
716
+ historical timings nor the old candidate-pair PASS qualify current ACC-01 artifacts.
531
717
 
532
718
  The direct target rows are intentionally split. The narrow typed Rust score
533
719
  is slower than the frozen Numba pure kernel on this fixture, while the explicit
@@ -654,6 +840,16 @@ Start with the [documentation map](docs/README.md).
654
840
  | Margin, buying power, and liquidation | [Margin and leverage](docs/margin_leverage.md) |
655
841
  | Causal WFO schedules and claims | [Causal walk-forward](docs/walkforward_causal.md) |
656
842
  | WFO methodology | [Walk-forward methodology](methodology/walk_forward.md) |
843
+ | Causal meta off/shadow/active, admitted routes and nested scalar Mode 1 | [QMS public integration](docs/meta_selection/INTEGRATION.md), [route matrix](docs/meta_selection/CURRENT_ROUTE_REVIEW.md), [nested Mode 1](docs/meta_selection/NESTED_MODE1.md) |
844
+ | Prepared meta parity and portable decision/model handoff | [QMS-06 capability/report](docs/meta_selection/QMS06_REPORT.md), [host consumer](docs/meta_selection/HANDOFF.md) (historical qualification scope retained) |
845
+ | QMS usage, sampler/meta policy, history and migration | [QMS user guide](docs/meta_selection/USAGE.md), [qualification](docs/meta_selection/QUALIFICATION.md), [complete cases](examples/wfo_meta_contract.py) |
846
+ | Exact owned sampler checkpoints, with no automatic WFO resume | [Continuation contract](docs/meta_selection/EXACT_CONTINUATION.md), [four-recipe example](examples/optimization_exact_continuation.py), [local report](docs/meta_selection/QMSC04_REPORT.md) |
847
+ | Optional sampler-space assessment and caller overrides, independent of meta | [Sampler-space helper](docs/meta_selection/SAMPLER_SPACE_HELPER.md), [pct-equity example](examples/wfo_sampler_space.py) |
848
+ | Diagnostics-first Mode 5 with sealed recipes, shared samplers and original selected-account audit | [Opt-in calibration](docs/mode5/PUBLIC_CALIBRATION_V1.md), [local qualification and matched timings](docs/mode5/M5_10_PUBLIC_RUNTIME_REPORT.md), [optional example](examples/mode5_calibration_optin.py) (not independent OOS) |
849
+ | Shared alpha diagnostics and cold Mode 4/5 decision reports | [Pre-search contract](docs/diagnostics/PRESEARCH_RESEARCHER_REPORT.md), [endpoint/result API](docs/diagnostics/FOLD_DECISION_REPORTS.md), [coverage and handoff](docs/diagnostics/REPORTING_COVERAGE_AND_HANDOFF.md) (explicit permissions; no automatic recipe choice or financial replay) |
850
+ | Mode 5 exact-winner qualification and explicit cross-mode donors | [Winner/account/state/probe/stress report and coordinate-only handoff](docs/diagnostics/MODE5_WINNER_QUALIFICATION.md), [public synthetic example](examples/mode5_cross_mode_qualification.py) (researcher opt-in; unchanged defaults; not a universal superiority claim) |
851
+ | Scalar sizing meta, actual ETH R/Q and repaired liquidation metric compatibility | [E03 assessment](docs/meta_selection/QMSE03_REPORT.md), [G01 repair](docs/meta_selection/QMSE03_G01_CLOSURE.md), [scalar example](examples/wfo_meta_scalar.py) (no economic promotion) |
852
+ | Intrabar fixed-notional sizing, signal timing and zero-fill diagnostic | [Sizing contract](docs/fast_intrabar.md#fixed-notional-units-and-zero-fill-diagnostics), [public BTC/ETH/SOL-like reproduction](examples/intrabar_bracket_diagnostic.py) |
657
853
  | Public scalar WFO prepared-native scorer, W0/W1/W2, and fallback matrix | [Public prepared-native WFO scoring](docs/native_prepared_wfo_public.md) |
658
854
  | Fresh cache-cold ordinary/reactive WFO performance, parity, and supported-mode boundaries | [NEXT-02 WFO closure](docs/performance/next02_fresh_wfo_reactive_wfo.md) |
659
855
  | Exact run-local WFO candidate-analysis reuse and rollback | [PERF-05 WFO evaluation reuse](docs/performance/perf_05_wfo_evaluation_reuse.md) |
@@ -665,6 +861,8 @@ Start with the [documentation map](docs/README.md).
665
861
  | Platform wheel matrix and route-level A5 status | [Native productization and A5](docs/native_productization_a5.md) |
666
862
  | Direct Rust target timing and target kinds | [Direct Target Execution Clock](docs/contracts/v1_1_target_execution_clock.md) |
667
863
  | Portfolio modes and migration | [Portfolio Engine V3](docs/portfolio_engine_v3.md) |
864
+ | Current ACC-01 account/configuration support, intentional errors and migration | [Effective configuration matrix](docs/portfolio_review/ACC01_CONFIGURATION_AND_MIGRATION.md), [local qualification](docs/portfolio_review/ACC01_REPORT.md) |
865
+ | Completed-result metric populations, units, N/A and drawdown episodes | [Reporting V1 usage](docs/metrics/PUBLIC_REPORTING.md), [metric contract](docs/metrics/REPORTING_CONTRACT_V1.md) |
668
866
  | Pair and basket packages | [Pair and basket guide](docs/pair_basket_guide.md) |
669
867
  | Nautilus validation and bundles | [Nautilus backend](docs/nautilus_backend.md) |
670
868
  | Reproduce benchmark evidence | [Benchmarking governance](docs/performance/benchmarking.md) |