From f148445060c450bbbb6a22ae80c880505550df20 Mon Sep 17 00:00:00 2001 From: QuantStrategyLab QPK Sync Date: Fri, 4 Sep 2026 08:53:46 +0000 Subject: [PATCH 1/2] chore(deps): align QPK pin to 7f140f07ac89 Automated downstream QPK pin update after QPK_PIN landed on main. Co-Authored-By: Claude --- pyproject.toml | 6 +++--- qsl.toml | 4 ++-- uv.lock | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f3d2b7c..5745fea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,8 +18,8 @@ dependencies = [ "pytest", "pytz", "requests", - "quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@ac1d07c6b0188c8b0abc682e99315bdc056879b5", - "us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@8e2db9996635dc0908432d379cb6305e65a167fb", + "quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@7f140f07ac89f0b4b88347a903906825dde11c39", + "us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@59a6e4341bf12cf1e27953b9c2d3705bc0335d96", ] license = "MIT" authors = [ @@ -82,5 +82,5 @@ show_missing = true [tool.uv] override-dependencies = [ - "quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@ac1d07c6b0188c8b0abc682e99315bdc056879b5", + "quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@7f140f07ac89f0b4b88347a903906825dde11c39", ] diff --git a/qsl.toml b/qsl.toml index 21eb69d..48e5e05 100644 --- a/qsl.toml +++ b/qsl.toml @@ -5,8 +5,8 @@ upgrade_ring = "ring_d" allow_legacy = false [qsl.requires] -quant_platform_kit = "ac1d07c6b0188c8b0abc682e99315bdc056879b5" -us_equity_strategies = "8e2db9996635dc0908432d379cb6305e65a167fb" +quant_platform_kit = "7f140f07ac89f0b4b88347a903906825dde11c39" +us_equity_strategies = "59a6e4341bf12cf1e27953b9c2d3705bc0335d96" [qsl.compat] bundle = "2026.09.1" diff --git a/uv.lock b/uv.lock index 5585150..36ea9e4 100644 --- a/uv.lock +++ b/uv.lock @@ -17,7 +17,7 @@ resolution-markers = [ ] [manifest] -overrides = [{ name = "quant-platform-kit", git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=ac1d07c6b0188c8b0abc682e99315bdc056879b5" }] +overrides = [{ name = "quant-platform-kit", git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=7f140f07ac89f0b4b88347a903906825dde11c39" }] [[package]] name = "blinker" @@ -446,10 +446,10 @@ requires-dist = [ { name = "pytest", marker = "extra == 'test'" }, { name = "pytest-cov", marker = "extra == 'test'" }, { name = "pytz" }, - { name = "quant-platform-kit", git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=ac1d07c6b0188c8b0abc682e99315bdc056879b5" }, + { name = "quant-platform-kit", git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=7f140f07ac89f0b4b88347a903906825dde11c39" }, { name = "requests" }, { name = "ruff", marker = "extra == 'test'" }, - { name = "us-equity-strategies", git = "https://github.com/QuantStrategyLab/UsEquityStrategies.git?rev=8e2db9996635dc0908432d379cb6305e65a167fb" }, + { name = "us-equity-strategies", git = "https://github.com/QuantStrategyLab/UsEquityStrategies.git?rev=59a6e4341bf12cf1e27953b9c2d3705bc0335d96" }, ] provides-extras = ["test"] @@ -1101,8 +1101,8 @@ wheels = [ [[package]] name = "quant-platform-kit" -version = "0.10.0" -source = { git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=ac1d07c6b0188c8b0abc682e99315bdc056879b5#ac1d07c6b0188c8b0abc682e99315bdc056879b5" } +version = "1.0.0" +source = { git = "https://github.com/QuantStrategyLab/QuantPlatformKit.git?rev=7f140f07ac89f0b4b88347a903906825dde11c39#7f140f07ac89f0b4b88347a903906825dde11c39" } [[package]] name = "requests" @@ -1237,7 +1237,7 @@ wheels = [ [[package]] name = "us-equity-strategies" version = "0.7.60" -source = { git = "https://github.com/QuantStrategyLab/UsEquityStrategies.git?rev=8e2db9996635dc0908432d379cb6305e65a167fb#8e2db9996635dc0908432d379cb6305e65a167fb" } +source = { git = "https://github.com/QuantStrategyLab/UsEquityStrategies.git?rev=59a6e4341bf12cf1e27953b9c2d3705bc0335d96#59a6e4341bf12cf1e27953b9c2d3705bc0335d96" } dependencies = [ { name = "pandas" }, { name = "pytz" }, From 55d8298c07c391863c92016d295dd3e6c2a10c63 Mon Sep 17 00:00:00 2001 From: Pigbibi <20649888+Pigbibi@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:23:09 +0800 Subject: [PATCH 2/2] Fix QPK v1 contract imports Co-Authored-By: Codex --- application/rebalance_service.py | 2 +- decision_mapper.py | 4 +++- strategy_loader.py | 5 ++++- strategy_runtime.py | 2 +- tests/test_decision_mapper.py | 5 ++++- tests/test_rebalance_service.py | 5 ++++- tests/test_strategy_runtime.py | 10 +++++----- 7 files changed, 22 insertions(+), 11 deletions(-) diff --git a/application/rebalance_service.py b/application/rebalance_service.py index 46dc609..31d96f7 100644 --- a/application/rebalance_service.py +++ b/application/rebalance_service.py @@ -63,7 +63,7 @@ build_strategy_plugin_alert_context_label as build_alert_context_label, publish_strategy_plugin_alerts as dispatch_strategy_plugin_alerts, ) -from quant_platform_kit.strategy_contracts import build_strategy_evaluation_inputs +from quant_platform_kit.common.runtime_inputs import build_strategy_evaluation_inputs from quant_platform_kit.strategy_lifecycle.performance_monitor import try_record_platform_execution from runtime_config_support import IBIT_SMART_DCA_PROFILE, PlatformRuntimeSettings, load_platform_runtime_settings from runtime_execution_policy import dca_execution_unsupported_reason, notional_buy_execution_enabled diff --git a/decision_mapper.py b/decision_mapper.py index d2966fa..c4783b7 100644 --- a/decision_mapper.py +++ b/decision_mapper.py @@ -8,12 +8,14 @@ build_portfolio_inputs_from_snapshot, resolve_weight_translation_equity, ) -from quant_platform_kit.strategy_contracts import ( +from quant_platform_kit.common.strategy_contracts import ( PositionTarget, StrategyContractValidationError, StrategyDecision, ValueTargetExecutionAnnotations, build_value_target_execution_annotations, +) +from quant_platform_kit.common.execution_translation import ( build_value_target_runtime_plan, resolve_decision_target_mode, translate_decision_to_target_mode, diff --git a/strategy_loader.py b/strategy_loader.py index 2633adb..51201b8 100644 --- a/strategy_loader.py +++ b/strategy_loader.py @@ -5,7 +5,10 @@ load_strategy_entrypoint_for_profile as _qpk_load_entrypoint, ) from quant_platform_kit.common.strategies import StrategyDefinition -from quant_platform_kit.strategy_contracts import StrategyEntrypoint, StrategyRuntimeAdapter +from quant_platform_kit.common.strategy_contracts import ( + StrategyEntrypoint, + StrategyRuntimeAdapter, +) from strategy_registry import FIRSTRADE_PLATFORM as PLATFORM, PLATFORM_POLICY, STRATEGY_CATALOG, get_platform_runtime_adapter diff --git a/strategy_runtime.py b/strategy_runtime.py index 0fb1f6a..2333149 100644 --- a/strategy_runtime.py +++ b/strategy_runtime.py @@ -9,7 +9,7 @@ FeatureSnapshotRuntimeSettings, evaluate_feature_snapshot_strategy, ) -from quant_platform_kit.strategy_contracts import ( +from quant_platform_kit.common.strategy_contracts import ( StrategyDecision, StrategyEntrypoint, StrategyRuntimeAdapter, diff --git a/tests/test_decision_mapper.py b/tests/test_decision_mapper.py index a84c674..be61eb9 100644 --- a/tests/test_decision_mapper.py +++ b/tests/test_decision_mapper.py @@ -3,7 +3,10 @@ from datetime import datetime, timezone from quant_platform_kit.common.models import PortfolioSnapshot, Position -from quant_platform_kit.strategy_contracts import PositionTarget, StrategyDecision +from quant_platform_kit.common.strategy_contracts import ( + PositionTarget, + StrategyDecision, +) from decision_mapper import map_strategy_decision_to_plan diff --git a/tests/test_rebalance_service.py b/tests/test_rebalance_service.py index 62dafe4..71176af 100644 --- a/tests/test_rebalance_service.py +++ b/tests/test_rebalance_service.py @@ -11,7 +11,10 @@ run_strategy_cycle, ) from notifications.telegram import I18N, build_translator, render_cycle_summary -from quant_platform_kit.strategy_contracts import PositionTarget, StrategyDecision +from quant_platform_kit.common.strategy_contracts import ( + PositionTarget, + StrategyDecision, +) from runtime_config_support import PlatformRuntimeSettings diff --git a/tests/test_strategy_runtime.py b/tests/test_strategy_runtime.py index a86a6e1..d64d2e9 100644 --- a/tests/test_strategy_runtime.py +++ b/tests/test_strategy_runtime.py @@ -122,11 +122,11 @@ def test_stamp_portfolio_risk_metadata_calls_qpk_helper(monkeypatch): from unittest.mock import MagicMock from quant_platform_kit.common.models import PortfolioSnapshot - from quant_platform_kit.strategy_contracts import ( - StrategyDecision, - StrategyManifest, - StrategyRuntimeAdapter, - ) + from quant_platform_kit.common.strategy_contracts import ( + StrategyDecision, + StrategyManifest, + StrategyRuntimeAdapter, +) import strategy_runtime as strategy_runtime_module class _Entrypoint: