Skip to content

Commit 797fc6f

Browse files
committed
Rename tech communication pullback profile
1 parent 93d6aa1 commit 797fc6f

11 files changed

Lines changed: 77 additions & 30 deletions

.github/workflows/sync-cloud-run-env.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ jobs:
7777
missing_vars+=("LONGPORT_APP_SECRET_SECRET_NAME")
7878
fi
7979
80-
if [ "${STRATEGY_PROFILE:-}" = "qqq_tech_enhancement" ] && [ -z "${LONGBRIDGE_FEATURE_SNAPSHOT_PATH:-}" ]; then
80+
if { [ "${STRATEGY_PROFILE:-}" = "tech_communication_pullback_enhancement" ] || [ "${STRATEGY_PROFILE:-}" = "qqq_tech_enhancement" ]; } && [ -z "${LONGBRIDGE_FEATURE_SNAPSHOT_PATH:-}" ]; then
8181
missing_vars+=("LONGBRIDGE_FEATURE_SNAPSHOT_PATH")
8282
fi
8383
@@ -279,7 +279,7 @@ jobs:
279279
missing_vars+=("LONGPORT_APP_SECRET_SECRET_NAME")
280280
fi
281281
282-
if [ "${STRATEGY_PROFILE:-}" = "qqq_tech_enhancement" ] && [ -z "${LONGBRIDGE_FEATURE_SNAPSHOT_PATH:-}" ]; then
282+
if { [ "${STRATEGY_PROFILE:-}" = "tech_communication_pullback_enhancement" ] || [ "${STRATEGY_PROFILE:-}" = "qqq_tech_enhancement" ]; } && [ -z "${LONGBRIDGE_FEATURE_SNAPSHOT_PATH:-}" ]; then
283283
missing_vars+=("LONGBRIDGE_FEATURE_SNAPSHOT_PATH")
284284
fi
285285

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Platform execution no longer depends on `strategy/allocation.py` or hard-coded s
3535
| `russell_1000_multi_factor_defensive` | Russell 1000 Multi-Factor | Yes | Yes | No | No | `us_equity` | enabled feature-snapshot stock baseline |
3636
| `soxl_soxx_trend_income` | SOXL/SOXX Semiconductor Trend Income | Yes | Yes | Yes | Yes | `us_equity` | current LongBridge default |
3737
| `tqqq_growth_income` | TQQQ Growth Income | Yes | Yes | No | No | `us_equity` | current SG dry-run line |
38-
| `qqq_tech_enhancement` | Tech/Communication Pullback Enhancement | Yes | Yes | No | No | `us_equity` | current HK feature-snapshot line |
38+
| `tech_communication_pullback_enhancement` | Tech/Communication Pullback Enhancement | Yes | Yes | No | No | `us_equity` | current HK feature-snapshot line |
3939

4040
Check the current matrix locally:
4141

@@ -114,7 +114,7 @@ BOXX: $34,000.00 Cash: $10,000.00
114114
| `LONGPORT_APP_SECRET` | Yes | LongPort OpenAPI app secret (for token refresh); recommended to inject from the region-specific Secret Manager secret for this deployment, such as `longport-app-secret-hk` / `longport-app-secret-sg` |
115115
| `LONGPORT_SECRET_NAME` | No | Secret Manager secret name for LongPort token (default: `longport_token_hk`) |
116116
| `ACCOUNT_PREFIX` | No | Alert/log prefix for account/environment (default: `DEFAULT`) |
117-
| `STRATEGY_PROFILE` | No | Strategy profile selector (default: `soxl_soxx_trend_income`; enabled values include `global_etf_rotation`, `russell_1000_multi_factor_defensive`, `qqq_tech_enhancement` on HK, and `tqqq_growth_income` on SG) |
117+
| `STRATEGY_PROFILE` | No | Strategy profile selector (default: `soxl_soxx_trend_income`; enabled values include `global_etf_rotation`, `russell_1000_multi_factor_defensive`, `tech_communication_pullback_enhancement` on HK, and `tqqq_growth_income` on SG) |
118118
| `ACCOUNT_REGION` | No | Account region marker for platform-style deployment (e.g. `HK`, `SG`; defaults to `ACCOUNT_PREFIX` / `DEFAULT`) |
119119
| `LONGBRIDGE_DRY_RUN_ONLY` | No | Set to `true` to keep the selected deployment in dry-run mode. |
120120
| `NOTIFY_LANG` | No | Notification language: `en` (English, default) or `zh` (Chinese) |
@@ -138,7 +138,7 @@ Deploy the same codebase as multiple Cloud Run services (e.g. `HK` and `SG`) by
138138

139139
- `LONGPORT_SECRET_NAME`: point to different secrets (e.g. `longport_token_hk`, `longport_token_sg`)
140140
- `ACCOUNT_PREFIX`: e.g. `HK`, `SG` (all Telegram/log alerts will include `[ACCOUNT_PREFIX]`)
141-
- `STRATEGY_PROFILE`: set per service; current live examples are `qqq_tech_enhancement` on HK and `tqqq_growth_income` on SG
141+
- `STRATEGY_PROFILE`: set per service; current live examples are `tech_communication_pullback_enhancement` on HK and `tqqq_growth_income` on SG
142142
- Current strategy domain is `us_equity`. `STRATEGY_PROFILE` now goes through a platform capability matrix plus a rollout allowlist: `eligible` means the platform can run it in theory, `enabled` means the current rollout really allows it.
143143
- `ACCOUNT_REGION`: explicitly mark the deployed account region (`HK` / `SG`); if unset, the app falls back to `ACCOUNT_PREFIX` or `DEFAULT`
144144
- `LONGBRIDGE_DRY_RUN_ONLY`: set per service when that deployment should stay dry-run
@@ -160,7 +160,7 @@ Recommended setup:
160160
- **GitHub Environment: `longbridge-hk`**
161161
- Variables: `CLOUD_RUN_REGION`, `CLOUD_RUN_SERVICE`, `ACCOUNT_PREFIX`, `ACCOUNT_REGION`, `STRATEGY_PROFILE`, `LONGPORT_SECRET_NAME`, `LONGPORT_APP_KEY_SECRET_NAME`, `LONGPORT_APP_SECRET_SECRET_NAME`
162162
- Optional variables: `LONGBRIDGE_FEATURE_SNAPSHOT_PATH`, `LONGBRIDGE_FEATURE_SNAPSHOT_MANIFEST_PATH`, `LONGBRIDGE_STRATEGY_CONFIG_PATH`, `LONGBRIDGE_DRY_RUN_ONLY`
163-
- Current live example: `STRATEGY_PROFILE=qqq_tech_enhancement`
163+
- Current live example: `STRATEGY_PROFILE=tech_communication_pullback_enhancement`
164164
- Recommended secret-name values: `longport-app-key-hk`, `longport-app-secret-hk`
165165
- **GitHub Environment: `longbridge-sg`**
166166
- Variables: `CLOUD_RUN_REGION`, `CLOUD_RUN_SERVICE`, `ACCOUNT_PREFIX`, `ACCOUNT_REGION`, `STRATEGY_PROFILE`, `LONGPORT_SECRET_NAME`, `LONGPORT_APP_KEY_SECRET_NAME`, `LONGPORT_APP_SECRET_SECRET_NAME`
@@ -213,7 +213,7 @@ IAM: the Cloud Run service account needs **Secret Manager Admin** (or Secret Acc
213213
基于 LongPort OpenAPI 和 Google Cloud Run 的量化交易系统。
214214

215215
这个仓库通过 `QuantPlatformKit` 复用 LongPort token 处理、上下文初始化、账户快照、行情读取和下单逻辑。Cloud Run 直接部署这个仓库。
216-
`LongBridgePlatform` 现在可直接执行 `UsEquityStrategies` 里的全部 5 条 live `us_equity` 策略:`global_etf_rotation``russell_1000_multi_factor_defensive``soxl_soxx_trend_income``tqqq_growth_income``qqq_tech_enhancement`;仓库本身继续保留 LongPort 运行时、token 刷新、执行和通知流程。
216+
`LongBridgePlatform` 现在可直接执行 `UsEquityStrategies` 里的全部 5 条 live `us_equity` 策略:`global_etf_rotation``russell_1000_multi_factor_defensive``soxl_soxx_trend_income``tqqq_growth_income``tech_communication_pullback_enhancement`;仓库本身继续保留 LongPort 运行时、token 刷新、执行和通知流程。
217217

218218
完整策略说明现在放在 [`UsEquityStrategies`](https://github.com/QuantStrategyLab/UsEquityStrategies)。下面这些章节主要保留执行侧默认值和运行时行为。
219219

@@ -236,7 +236,7 @@ IAM: the Cloud Run service account needs **Secret Manager Admin** (or Secret Acc
236236
| `russell_1000_multi_factor_defensive` | Russell 1000 Multi-Factor | Yes | Yes | No | No | `us_equity` | 已启用的 feature-snapshot 个股基线 |
237237
| `soxl_soxx_trend_income` | SOXL/SOXX 半导体趋势收益 | Yes | Yes | Yes | Yes | `us_equity` | 当前 LongBridge 默认回退线 |
238238
| `tqqq_growth_income` | TQQQ 增长收益 | Yes | Yes | No | No | `us_equity` | 当前 SG dry-run 线路 |
239-
| `qqq_tech_enhancement` | 科技通信回调增强 | Yes | Yes | No | No | `us_equity` | 当前 HK feature-snapshot 线路 |
239+
| `tech_communication_pullback_enhancement` | 科技通信回调增强 | Yes | Yes | No | No | `us_equity` | 当前 HK feature-snapshot 线路 |
240240

241241
本地可直接查看当前矩阵:
242242

@@ -315,7 +315,7 @@ BOXX: $34,000.00 现金: $10,000.00
315315
| `LONGPORT_APP_SECRET` || LongPort OpenAPI 应用密钥(用于刷新 Token);建议从当前部署对应区域的 Secret Manager 密钥注入,例如 `longport-app-secret-hk` / `longport-app-secret-sg` |
316316
| `LONGPORT_SECRET_NAME` || Secret Manager 中的密钥名称(默认: `longport_token_hk`|
317317
| `ACCOUNT_PREFIX` || 通知/日志前缀,区分账户环境(默认: `DEFAULT`|
318-
| `STRATEGY_PROFILE` || 策略档位选择(默认: `soxl_soxx_trend_income`;已启用值还包括 `global_etf_rotation``russell_1000_multi_factor_defensive`,当前线上 HK 用 `qqq_tech_enhancement`,SG 用 `tqqq_growth_income`|
318+
| `STRATEGY_PROFILE` || 策略档位选择(默认: `soxl_soxx_trend_income`;已启用值还包括 `global_etf_rotation``russell_1000_multi_factor_defensive`,当前线上 HK 用 `tech_communication_pullback_enhancement`,SG 用 `tqqq_growth_income`|
319319
| `ACCOUNT_REGION` || 平台化部署时的账户区域标记(如 `HK``SG`;默认按 `ACCOUNT_PREFIX` / `DEFAULT` 推断) |
320320
| `LONGBRIDGE_DRY_RUN_ONLY` || 设为 `true` 时,该部署保持 dry-run。 |
321321
| `NOTIFY_LANG` || 通知语言: `en`(英文,默认)或 `zh`(中文) |
@@ -339,7 +339,7 @@ Secret Manager 中需存在 `LONGPORT_SECRET_NAME` 指定的密钥(默认: `lo
339339

340340
- `LONGPORT_SECRET_NAME`: 指向不同密钥(如 `longport_token_hk``longport_token_sg`
341341
- `ACCOUNT_PREFIX`: 如 `HK``SG`(所有通知/日志将包含 `[ACCOUNT_PREFIX]`
342-
- `STRATEGY_PROFILE`: 按服务分别设置;当前线上 HK 用 `qqq_tech_enhancement`,SG 用 `tqqq_growth_income`
342+
- `STRATEGY_PROFILE`: 按服务分别设置;当前线上 HK 用 `tech_communication_pullback_enhancement`,SG 用 `tqqq_growth_income`
343343
- 当前策略域是 `us_equity``STRATEGY_PROFILE` 现在会先经过平台能力矩阵,再经过 rollout allowlist:`eligible` 表示平台理论可跑,`enabled` 表示当前 rollout 真正放开。
344344
- `ACCOUNT_REGION`: 显式标记部署账户区域(`HK` / `SG`);未设置时会回退到 `ACCOUNT_PREFIX``DEFAULT`
345345
- `LONGBRIDGE_DRY_RUN_ONLY`: 需要保持模拟运行时按服务单独设置
@@ -361,7 +361,7 @@ Secret Manager 中需存在 `LONGPORT_SECRET_NAME` 指定的密钥(默认: `lo
361361
- **GitHub Environment: `longbridge-hk`**
362362
- Variables: `CLOUD_RUN_REGION``CLOUD_RUN_SERVICE``ACCOUNT_PREFIX``ACCOUNT_REGION``STRATEGY_PROFILE``LONGPORT_SECRET_NAME``LONGPORT_APP_KEY_SECRET_NAME``LONGPORT_APP_SECRET_SECRET_NAME`
363363
- 可选 Variables: `LONGBRIDGE_FEATURE_SNAPSHOT_PATH``LONGBRIDGE_FEATURE_SNAPSHOT_MANIFEST_PATH``LONGBRIDGE_STRATEGY_CONFIG_PATH``LONGBRIDGE_DRY_RUN_ONLY`
364-
- 当前线上示例:`STRATEGY_PROFILE=qqq_tech_enhancement`
364+
- 当前线上示例:`STRATEGY_PROFILE=tech_communication_pullback_enhancement`
365365
- 建议的 secret-name 值:`longport-app-key-hk``longport-app-secret-hk`
366366
- **GitHub Environment: `longbridge-sg`**
367367
- Variables: `CLOUD_RUN_REGION``CLOUD_RUN_SERVICE``ACCOUNT_PREFIX``ACCOUNT_REGION``STRATEGY_PROFILE``LONGPORT_SECRET_NAME``LONGPORT_APP_KEY_SECRET_NAME``LONGPORT_APP_SECRET_SECRET_NAME`

decision_mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ def _resolve_layout(strategy_profile: str) -> tuple[str, tuple[str, ...], tuple[
176176
"investable_cash": 0.0,
177177
},
178178
)
179-
if strategy_profile == "qqq_tech_enhancement":
179+
if strategy_profile in {"tech_communication_pullback_enhancement", "qqq_tech_enhancement"}:
180180
return (
181181
"risk_safe_income",
182182
("risk_safe",),

notifications/telegram.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"strategy_name_tqqq_growth_income": "TQQQ 增长收益",
6464
"strategy_name_global_etf_rotation": "全球 ETF 轮动",
6565
"strategy_name_russell_1000_multi_factor_defensive": "罗素1000多因子",
66+
"strategy_name_tech_communication_pullback_enhancement": "科技通信回调增强",
6667
"strategy_name_qqq_tech_enhancement": "科技通信回调增强",
6768
},
6869
"en": {
@@ -113,6 +114,7 @@
113114
"strategy_name_tqqq_growth_income": "TQQQ Growth Income",
114115
"strategy_name_global_etf_rotation": "Global ETF Rotation",
115116
"strategy_name_russell_1000_multi_factor_defensive": "Russell 1000 Multi-Factor",
117+
"strategy_name_tech_communication_pullback_enhancement": "Tech/Communication Pullback Enhancement",
116118
"strategy_name_qqq_tech_enhancement": "Tech/Communication Pullback Enhancement",
117119
},
118120
}

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
flask
22
gunicorn
33
quant-platform-kit @ git+https://github.com/QuantStrategyLab/QuantPlatformKit.git@v0.7.13
4-
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@v0.7.17
4+
us-equity-strategies @ git+https://github.com/QuantStrategyLab/UsEquityStrategies.git@v0.7.20
55
pandas
66
requests
77
pytz
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"role": "tech_communication_pullback_enhancement",
3+
"status": "research_only",
4+
"strategy": "growth_pullback_systematic_v1",
5+
"branch_name": "tech_communication_pullback_enhancement",
6+
"name": "tech_communication_pullback_enhancement",
7+
"previous_candidate_name": "cash_buffer_a__hb10__base__adv50",
8+
"family": "tech_heavy_pullback",
9+
"universe": "tech_heavy",
10+
"normalization": "universe_cross_sectional",
11+
"min_adv20_usd": 50000000.0,
12+
"sector_whitelist": [
13+
"Information Technology",
14+
"Communication"
15+
],
16+
"symbol_whitelist": [],
17+
"notes": "Sector proxy only: Information Technology + Communication; no sub-industry data available",
18+
"score_template": "balanced_pullback",
19+
"holdings_count": 8,
20+
"single_name_cap": 0.1,
21+
"sector_cap": 0.4,
22+
"hold_bonus": 0.1,
23+
"regime": "qqq_breadth",
24+
"benchmark_symbol": "QQQ",
25+
"breadth_mode": "broad",
26+
"breadth_symbols": [],
27+
"breadth_thresholds": {
28+
"soft": 0.55,
29+
"hard": 0.35
30+
},
31+
"exposures": {
32+
"risk_on": 0.8,
33+
"soft_defense": 0.6,
34+
"hard_defense": 0.0
35+
},
36+
"execution_cash_reserve_ratio": 0.0,
37+
"residual_proxy": "simple_excess_return_vs_QQQ",
38+
"cost_assumption_bps_one_way": 5.0,
39+
"branch_role": "cash-buffered parallel branch",
40+
"canonicalized_from": "growth_pullback_systematic_v1.4 cash_buffer_refinement",
41+
"legacy_names": [
42+
"qqq_tech_enhancement"
43+
]
44+
}

strategy_registry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"russell_1000_multi_factor_defensive",
2929
"soxl_soxx_trend_income",
3030
"tqqq_growth_income",
31+
"tech_communication_pullback_enhancement",
3132
"qqq_tech_enhancement",
3233
}
3334
)

tests/test_decision_mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ def test_translates_weight_decision_for_tech_strategy(self):
164164
plan = map_strategy_decision_to_plan(
165165
decision,
166166
snapshot=snapshot,
167-
strategy_profile="qqq_tech_enhancement",
167+
strategy_profile="tech_communication_pullback_enhancement",
168168
)
169169

170170
self.assertEqual(plan["allocation"]["target_mode"], "value")

tests/test_runtime_config_support.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def test_platform_supported_profiles_are_filtered_by_registry(self):
6161
"russell_1000_multi_factor_defensive",
6262
"tqqq_growth_income",
6363
"soxl_soxx_trend_income",
64-
"qqq_tech_enhancement",
64+
"tech_communication_pullback_enhancement",
6565
}
6666
),
6767
)
@@ -75,7 +75,7 @@ def test_platform_eligible_profiles_are_exposed_by_capability_matrix(self):
7575
"russell_1000_multi_factor_defensive",
7676
"tqqq_growth_income",
7777
"soxl_soxx_trend_income",
78-
"qqq_tech_enhancement",
78+
"tech_communication_pullback_enhancement",
7979
}
8080
),
8181
)
@@ -134,7 +134,7 @@ def test_platform_profile_status_matrix_matches_current_longbridge_rollout(self)
134134
"russell_1000_multi_factor_defensive",
135135
"tqqq_growth_income",
136136
"soxl_soxx_trend_income",
137-
"qqq_tech_enhancement",
137+
"tech_communication_pullback_enhancement",
138138
},
139139
)
140140
self.assertEqual(
@@ -160,15 +160,15 @@ def test_platform_profile_status_matrix_matches_current_longbridge_rollout(self)
160160
self.assertEqual(by_profile["global_etf_rotation"]["display_name"], "Global ETF Rotation")
161161
self.assertTrue(by_profile["global_etf_rotation"]["eligible"])
162162
self.assertTrue(by_profile["global_etf_rotation"]["enabled"])
163-
self.assertTrue(by_profile["qqq_tech_enhancement"]["eligible"])
164-
self.assertTrue(by_profile["qqq_tech_enhancement"]["enabled"])
165-
self.assertEqual(by_profile["qqq_tech_enhancement"]["display_name"], "Tech/Communication Pullback Enhancement")
163+
self.assertTrue(by_profile["tech_communication_pullback_enhancement"]["eligible"])
164+
self.assertTrue(by_profile["tech_communication_pullback_enhancement"]["enabled"])
165+
self.assertEqual(by_profile["tech_communication_pullback_enhancement"]["display_name"], "Tech/Communication Pullback Enhancement")
166166

167167
def test_loads_feature_snapshot_env_for_tech_profile(self):
168168
with patch.dict(
169169
os.environ,
170170
{
171-
"STRATEGY_PROFILE": "qqq_tech_enhancement",
171+
"STRATEGY_PROFILE": "tech_communication_pullback_enhancement",
172172
"LONGBRIDGE_FEATURE_SNAPSHOT_PATH": "gs://bucket/tech.csv",
173173
"LONGBRIDGE_FEATURE_SNAPSHOT_MANIFEST_PATH": "gs://bucket/tech.csv.manifest.json",
174174
"LONGBRIDGE_STRATEGY_CONFIG_PATH": "/workspace/configs/tech.json",
@@ -177,7 +177,7 @@ def test_loads_feature_snapshot_env_for_tech_profile(self):
177177
):
178178
settings = load_platform_runtime_settings(project_id_resolver=lambda: "project-1")
179179

180-
self.assertEqual(settings.strategy_profile, "qqq_tech_enhancement")
180+
self.assertEqual(settings.strategy_profile, "tech_communication_pullback_enhancement")
181181
self.assertEqual(settings.feature_snapshot_path, "gs://bucket/tech.csv")
182182
self.assertEqual(settings.feature_snapshot_manifest_path, "gs://bucket/tech.csv.manifest.json")
183183
self.assertEqual(settings.strategy_config_path, "/workspace/configs/tech.json")
@@ -216,10 +216,10 @@ def test_print_strategy_profile_status_json_matches_registry(self):
216216
self.assertEqual(by_profile["global_etf_rotation"]["input_mode"], "market_history")
217217
self.assertFalse(by_profile["global_etf_rotation"]["requires_snapshot_artifacts"])
218218
self.assertFalse(by_profile["global_etf_rotation"]["requires_strategy_config_path"])
219-
self.assertEqual(by_profile["qqq_tech_enhancement"]["profile_group"], "snapshot_backed")
220-
self.assertEqual(by_profile["qqq_tech_enhancement"]["input_mode"], "feature_snapshot")
221-
self.assertTrue(by_profile["qqq_tech_enhancement"]["requires_snapshot_artifacts"])
222-
self.assertTrue(by_profile["qqq_tech_enhancement"]["requires_strategy_config_path"])
219+
self.assertEqual(by_profile["tech_communication_pullback_enhancement"]["profile_group"], "snapshot_backed")
220+
self.assertEqual(by_profile["tech_communication_pullback_enhancement"]["input_mode"], "feature_snapshot")
221+
self.assertTrue(by_profile["tech_communication_pullback_enhancement"]["requires_snapshot_artifacts"])
222+
self.assertTrue(by_profile["tech_communication_pullback_enhancement"]["requires_strategy_config_path"])
223223
self.assertFalse(
224224
by_profile["russell_1000_multi_factor_defensive"]["requires_strategy_config_path"]
225225
)

tests/test_strategy_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def test_load_strategy_runtime_adapter_declares_hybrid_inputs(self):
103103
def test_load_strategy_runtime_adapter_declares_tech_snapshot_inputs(self):
104104
from strategy_loader import load_strategy_runtime_adapter_for_profile
105105

106-
adapter = load_strategy_runtime_adapter_for_profile("qqq_tech_enhancement")
106+
adapter = load_strategy_runtime_adapter_for_profile("tech_communication_pullback_enhancement")
107107

108108
self.assertEqual(
109109
adapter.available_inputs,

0 commit comments

Comments
 (0)