Skip to content

Commit 21740b2

Browse files
Pigbibicodex
andcommitted
fix: admit confirmed legacy IBKR baselines
Co-Authored-By: Codex <noreply@openai.com>
1 parent 4c4444a commit 21740b2

8 files changed

Lines changed: 60 additions & 6 deletions

File tree

platform-config.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,12 @@
387387
"dry_run"
388388
],
389389
"blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy",
390+
"live_continuity": {
391+
"eligible": true,
392+
"allowed_platforms": [
393+
"ibkr"
394+
]
395+
},
390396
"features": {
391397
"income_layer": true,
392398
"option_overlay": true,
@@ -529,6 +535,12 @@
529535
"dry_run"
530536
],
531537
"blocked_live_reason": "research_backtest_only_requires_evidence_package",
538+
"live_continuity": {
539+
"eligible": true,
540+
"allowed_platforms": [
541+
"ibkr"
542+
]
543+
},
532544
"runtime_artifacts": {
533545
"feature_snapshot": {
534546
"required": true,
@@ -576,6 +588,12 @@
576588
"dry_run"
577589
],
578590
"blocked_live_reason": "missing_current_promotion_evidence_and_preauthorized_autonomy_policy",
591+
"live_continuity": {
592+
"eligible": true,
593+
"allowed_platforms": [
594+
"ibkr"
595+
]
596+
},
579597
"runtime_artifacts": {
580598
"feature_snapshot": {
581599
"required": true,

python/tests/test_runtime_settings.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,42 @@ def test_live_continuity_keeps_an_existing_baseline_separate_from_candidate_gate
731731

732732
self.assertEqual(runtime_settings.validate_target(target), [])
733733

734+
def test_confirmed_legacy_ibkr_profiles_are_continuity_eligible(self):
735+
"""Candidate policy must not strand an explicitly frozen IBKR incumbent."""
736+
737+
parser = build_runtime_switch.build_parser()
738+
for profile in (
739+
"tqqq_growth_income",
740+
"global_etf_rotation",
741+
"russell_top50_leader_rotation",
742+
):
743+
with self.subTest(profile=profile):
744+
target = build_runtime_switch.build_switch_target(
745+
parser.parse_args(
746+
[
747+
"--platform",
748+
"ibkr",
749+
"--target-name",
750+
f"legacy-{profile}",
751+
"--strategy-profile",
752+
profile,
753+
"--execution-mode",
754+
"live",
755+
"--live-continuity-state",
756+
"RECONCILE_ONLY",
757+
"--live-continuity-baseline-id",
758+
f"ibkr-{profile}-legacy-20260830",
759+
"--live-continuity-captured-at",
760+
"2026-08-30",
761+
]
762+
)
763+
)
764+
765+
strategy = build_config.load_config()["strategies"][profile]
766+
self.assertFalse(strategy["runtime_enabled"])
767+
self.assertFalse(strategy["can_switch_live"])
768+
self.assertEqual(runtime_settings.validate_target(target), [])
769+
734770
def test_live_continuity_rejects_baseline_drift(self):
735771
_, target = self.load_target("examples/targets/schwab/live.example.json")
736772
runtime_target = target["runtime_target"]

web/strategy-switch-console/config.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/strategy-switch-console/index.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

web/strategy-switch-console/page_asset.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/strategy-switch-console/runtime-catalog-projection.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"schema_version": "qsl.runtime_catalog_projection.v1",
2323
"source": {
2424
"catalog_as_of": "2026-08-19",
25-
"content_sha256": "sha256:018753899fdbd7c9ce58628598bc0b3544a6bd18eb5179ec057a1460a7b74cbe",
25+
"content_sha256": "sha256:90261c8eaf9676c6d9b69c85222c5cb8f54305ca2fc8c0d51c96cf546f2286b0",
2626
"path": "platform-config.json"
2727
},
2828
"strategies": [

web/strategy-switch-console/strategy-profiles.example.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

web/strategy-switch-console/strategy_profiles_asset.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)