Monitor
What is actually running right now. A row reads RUNNING only when a real runtime signal says so — a GitHub Actions run in in_progress, or a job row still holding a fresh liveness lock. Planned research, a queued intention and a campaign controller field are declared states, listed separately and never counted as execution. This screen starts, stops, arms and approves nothing.
DashboardLive AuditBacktest / ManualBot Testeras of 2026-09-20 16:50Z
Running and queued
Real process state only| State | Process | Object | Run | Current step | Started | Last update | Blocker / artifact |
|---|---|---|---|---|---|---|---|
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2022-09-15..2022-09-16 | speed-diag-small-v5 | replaying_engine | 2026-09-08 19:04Z | 2026-09-08 21:01Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob speed-diag-small-v5: status=RUNNING but its advisory lock expired 1021768s ago. No worker is proven alive. |
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2022-09-15..2022-09-16 | liquidity-nearest-oos21-control-official-profile-test-small-v2 | replaying_engine | 2026-09-08 17:56Z | 2026-09-08 17:57Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob liquidity-nearest-oos21-control-official-profile-test-small-v2: status=RUNNING but its advisory lock expired 1032803s ago. No worker is proven alive. |
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2022-09-15..2022-09-16 | liquidity-nearest-oos21-control-official-profile-test-small | replaying_engine | 2026-09-08 17:26Z | 2026-09-08 17:33Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob liquidity-nearest-oos21-control-official-profile-test-small: status=RUNNING but its advisory lock expired 1034256s ago. No worker is proven alive. |
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2022-09-15..2022-09-23 | liquidity-nearest-oos21-control-official-profile-test-seg-c | replaying_engine | 2026-09-08 15:09Z | 2026-09-08 15:10Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob liquidity-nearest-oos21-control-official-profile-test-seg-c: status=RUNNING but its advisory lock expired 1042807s ago. No worker is proven alive. |
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2022-08-26..2022-09-23 | liquidity-nearest-oos21-control-viaresearch | replaying_engine (0%) | 2026-09-07 22:57Z | 2026-09-07 22:57Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob liquidity-nearest-oos21-control-viaresearch: status=RUNNING but its advisory lock expired 1101150s ago. No worker is proven alive. |
| stale lock | Backtest job (liquidity_indicator) backtest job | MNQ 2026-07-27..2026-09-04 | liquidity-nearest-30d-20260727-20260904-v2 | replaying_engine (93%) — session 2026-09-02 | 2026-09-05 22:36Z | 2026-09-06 04:18Z | Worker liveness lock expired; recovery will re-dispatch or fail the job after its attempt cap. BacktestJob liquidity-nearest-30d-20260727-20260904-v2: status=RUNNING but its advisory lock expired 1254722s ago. No worker is proven alive. |
Sources of truth
What was read, and what could not beRecently finished
Completed, failed or cancelled in the last 24 hoursNothing finished recently in the sources that could be read.
Idle components
Reachable, but not executing — which is not the same as running| State | Process | Object | Run | Current step | Started | Last update | Blocker / artifact |
|---|---|---|---|---|---|---|---|
| idle | Live webhook processor (MNQ) live feed processor | MNQ 1-minute bars → shadow runners | — | idle · 0 pending candle(s) in queue | — | 2026-09-18 21:01Z | No webhook bar received for 157740s (stale after 90s). LiveFeedState(MNQ): no fresh processing lock; provider status=CONNECTED, 0 pending candle(s). |
Declared states
What documents say a lane's position is — never a running process| Lane / compartment | Declared state | Detail | Source |
|---|---|---|---|
| Bot Tester | active | Test external bots and reusable components found in GitHub projects. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Strategy Bucket | build required | Canonical current/completed inventory of every TradeRep strategy with family, stage, metrics, and exact stop/failure reason. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Mechanism Lab / Positive Controls | new priority | Validate the validator and study market mechanisms before generating more strategy combinations. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Backtest / Manual | ui redesign required | — | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Live Audit | waiting for promoted strategy | — | docs/status/TRADE_REP_MASTER_TRACKER.json |
| AV2 Improvement Lab | planned | Isolated challenger testing against frozen champions after a legitimate champion exists. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| New Additions / Component Registry | build required | Track every added external/internal capability, overlap, certification, retirement, and replacement decision. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Funded-Account Simulation | required | Default practical AJ-facing performance view once certified; raw research metrics remain separately available. | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Phase A / B / C | retain | — | docs/status/TRADE_REP_MASTER_TRACKER.json |
| Operations Monitor | build required | Single source of truth for what is actually queued, running, completed, failed, or blocked. | docs/status/TRADE_REP_MASTER_TRACKER.json |
A declared state is a document field. “AWAITING_NEXT_DIRECTION”, “BUILD_REQUIRED” or “NEW_PRIORITY” describe a plan’s position, not a process — none of them can put a row in the running table above.
Internal harnesses
TradeRep's own testers, and whether they are armed| Harness | Kind | Arming | Boundary |
|---|---|---|---|
| F6 VolExpansion shadow runner | live shadow runner | armed | 2026-09-14 07:19Z |
| A2.10 Final-Hour Reversion v2 shadow runner | live shadow runner | armed | 2026-09-16 21:12Z |
| F2 Arm C breakout-continuation shadow runner | live shadow runner | armed | 2026-09-14 07:19Z |
| PB Elite forward outcome tracker | outcome tracker | armed | 2026-09-14 07:19Z |
| Architecture V2 live shadow classifier | live classifier | armed | n/a |
| Strategy Lab campaign gate runner | campaign gate runner | on demand | n/a |
| Historical backtest job runner | backtest engine | on demand | n/a |
| Replay bias validator | replay validator | on demand | n/a |
Arming means a harness’s own guard would admit a signal. It is not the same as executing: whether the webhook processor is running right now is the live-feed row in the process table above.
Waiting on a human
Protected decisions freeze only their own action — never the whole campaignExecution-realism integrity audit (see completedItems, same date) found that under either execution-realistic entry variant (first-actionable-candle close, or canonical price only if later revisited), the ALREADY-APPROVED 'quality' tier component of the frozen V2 architecture (candidate-architecture-v2-tiered-quality-and-veto, Component 2) loses its positive edge entirely (+0.2508R canonical -> -0.0461R / -0.0289R realistic, a sign flip, n=113). The 'elite' tier (Component 3) and the PDH-veto (Component 4) both survive directionally (shrunk 33-80% but still correctly signed). The pooled/aggregate population also sign-flips (+0.1788R -> -0.0672R / -0.0246R, n=495).
Per AJ's instruction to freeze all promotion decisions and rebuild the validated architecture under Variant B (primary)/Variant C (secondary) causal execution, re-ran the full leak-free walk-forward ledger (same population construction as candidate-architecture-v2, WARMUP=50) plus a full hardening battery on each population. RESULT (classification B -- only a narrow subset survives): pooled/baseline population collapses to statistical noise under Variant B (exp +0.1952R->+0.0039R, PDH-PASS one-sample CI crosses zero) and is outright negative under Variant C. The 'quality' displacement-only tier is weak and not robust under either variant (~81% degraded under B, not significant and sign-flipping on recency under C). The displacement+PDL-swept 'elite' population remains genuinely robust under Variant B (exp +0.4173R, permutation p=0.0016, block-bootstrap CI excludes zero, survives LOYO/top-5-removal/warmup sensitivity/recency split) but is materially more fragile under the stricter Variant C (p=0.0851, not significant; 81.1% of total R concentrated in its top 5 trades; 2026 turns negative) -- so even this surviving subset should be read as 'narrow and execution-sensitive,' not as a settled edge.
Per AJ's item 10 (this same turn): open a future implementation item so a production READY alert can never advertise a stale confirmation-bar entry price, given the execution-realism audit confirmed both (a) the confirmation-bar price is frequently not the earliest-actionable price (lag >0 in 60.2% of Phase C trades) and (b) lib/live/notifications.ts's READY push body reads `setup.confirmationClose.close` directly with no current-market-price check at send time. Explicitly NOT implemented this turn -- AJ's instruction was to queue this item only.
Independent Strategy Family #1 (Liquidity Sweep -> Failed Breakout / Reclaim) is complete -- pre-registered manifest at research-output/liquidity-sweep-reclaim/CAMPAIGN_MANIFEST.md (commit 6348e9f) + PHASE0_DATA_CAUSALITY_AUDIT.md, full synthesis in research-output/liquidity-sweep-reclaim/FINAL_REPORT.md, raw results in phase3to7_results.txt. This is a wholly new, non-V1 setup family (level sweep -> failed breakout -> close-based reclaim -> next-bar-open entry), causally reconstructed from MarketCandle history with no V1 condition/displacement/inversion vocabulary reused. One mechanical, pre-outcome bug was found and fixed during execution (funnel-counter over-counting for consumed levels, ~300x inflation, confirmed to NOT affect the actual traded population -- commit a95bdcd), logged per manifest Sec. 10, not a definitional change. Full-history scan (2,518 executed trades, 2022-06-03..2026-09-10, ~503.6 trades/yr -- frequency was never the limiting factor): Phase 3 BASE (fixed 2R target, no filters) is dead flat (expectancy=-0.0016R, PF=0.998, block-bootstrap 95% CI [-0.0634, 0.0604] straddles zero, sign-test p=0.966). Phase 4: ZERO of 10 pre-registered mechanism dimensions survive Bonferroni correction (family alpha=0.005); none even reach nominal significance except two borderline continuous measures (time/closes beyond level before reclaim, p=0.06/0.04) that still fail correction. Phase 5: both structural exit variants (opposing-range, nearest-opposing-liquidity) are substantially WORSE than the flat baseline (exp=-0.145R and -0.055R respectively, driven by 5.8-6.2% win rates). Phase 6: not eligible (zero Phase 4 survivors, so no combination architecture was even tested). Phase 7: chronological half-split and leave-one-year-out both show the sign flipping depending on which slice is examined (exactly the signature of a null population, not a decaying real edge); top-winner removal barely moves the number; a full parameter-neighborhood sensitivity sweep (4H-swing lookback 10/20 vs 15, acceptance timeframe 15M vs 5M, observation horizon 180/300min vs 240min -- 5 variant re-scans, all via CI dispatch) reproduces the same near-zero result in every variant (expectancy range -0.0027R to +0.0046R, PF range 0.996-1.007, every bootstrap CI straddling zero, frequency actually rising to 560-741/yr under looser variants with no added edge) -- the null result is robust to the exact parameter choice, not a fragile artifact of the specific pre-registered defaults. FINAL CLASSIFICATION: D -- FAMILY FAILS. Manifest Sec. 9 prospective/shadow logging (PB-context feature values on this new population, firewalled from every Phase 3-8 statistic) was executed as part of the Phase 2 scan itself (all 2,518 events carry pbShadow metadata, 87-100% field coverage) -- interpreted as satisfying AJ's 'parallel research-only prospective logging' instruction within the manifest's own pre-registered scope (Sec. 0: lives entirely under lib/strategy-engine/research/sweepReclaim/ and scripts/, read-only against MarketCandle); no live-pipeline integration was built, since the manifest's own standing scope statement commits this campaign to historical read-only analysis and a D classification creates no candidate finding that would need forward validation -- this scope choice is stated explicitly for AJ to override if genuine forward-in-time logging is wanted regardless of outcome. No V1/V2/production code touched; no sizing performed; no research finding promoted to live execution; no merge to main of research/strategy code. Two small, transparently-flagged CI workflow-definition changes were merged to main (PR #80: add the scan workflow; PR #81: plumb sensitivity-sweep params through it) -- read-only CI plumbing required to dispatch this campaign's own scans, not strategy logic.
Independent Strategy Family #2 (Breakout Acceptance -> Retest/Hold -> Continuation) is complete -- pre-registered manifest at research-output/breakout-acceptance-continuation/CAMPAIGN_MANIFEST.md (commit 4630541) + PHASE0_DATA_CAUSALITY_AUDIT.md, full synthesis in research-output/breakout-acceptance-continuation/FINAL_REPORT.md. Deliberately the mirror-image mechanism of Family #1 (break -> accept -> retest -> hold -> continue, vs. Family #1's break -> fail -> reclaim -> reverse); reused Family #1's already-proven LevelTracker and PB-shadow firewall verbatim (generic causal level arithmetic, not either family's own strategy logic), built an entirely new state machine (BreakoutContinuationEngine) with 3 pre-registered acceptance-definition variants (A0 single 5M close primary, A1 two consecutive closes, A2 ATR-normalized min distance) and 3 entry arms (A=acceptance, B=retest/hold, C=no-retest late continuation). Per AJ's explicit efficiency directive, all 3 variants were extracted in ONE causal forward pass each within a SINGLE CI job/DB fetch (~5 min total for the full 2022-06-03..2026-09-14 history) -- deliberately avoided Family #1's own concurrent-push race by never parallel-dispatching scan jobs. Cross-validated against Family #1's identical shared primitives (touchedAndBroken/duplicateLevel counts match almost exactly; acceptedCount+immediatelyRejected+breakoutExpiredUnresolved = touchedAndBroken-duplicateLevel exactly, both in the 6-week validation window and full history) before trusting any downstream statistic. RESULTS (n=1,353 ACCEPTED events, 1,345/975/331 executed trades in Arms A/B/C respectively): Arm A (acceptance-only entry, 269/yr) is directionally positive at the primary FIXED_2R metric (+0.0402R) but NOT robust -- bootstrap CI crosses zero, LOYO flips sign excluding 2025, half-year expectancy oscillates both directions with no trend. Arm B (retest/hold required, 195/yr) actively HURTS -- significantly NEGATIVE at FIXED_1R (p=0.0027), directly answering AJ's Q2 that requiring a retest hurts rather than helps. Arm C (late entry only after confirmed NO retest within horizon, 61-66/yr) is the one credible specialist lead: FIXED_3R is robust across every check (LOYO all-5-years-same-sign, PF 1.31-1.49 in every year-exclusion, top-10-winner-removal still strongly positive, half-year positive in 8/10 buckets), and FIXED_2R (the pre-registered primary) is borderline at the exact 240-minute default (CI=[-0.0249,0.3411], barely crosses zero) but reaches full significance under a modestly widened (not narrowed) 300-minute retest-horizon sensitivity check (both bootstrap CIs excluding zero), with the effect strengthening rather than weakening under that neighborhood perturbation. Phase 6: 3 of 11 mechanism dimensions survive Bonferroni correction (minutes-to-first-retest, failed-retest-attempt-count, pre-entry continuation-strength -- all describing retest-hold conviction). Phase 7: zero of 7 context dimensions survive; one (intraday-trend-alignment) is mechanically degenerate by construction (a level broken after the session open structurally requires price already on that side of the open -- verified directly against raw event data, confirmed not a bug). Phase 8: both structural exits (nearest-opposing-liquidity, measured-move) underperform the flat fixed-R baseline. Phase 9: the one economically-coherent combination of the two related Phase 6 survivors (zero failed attempts AND top-tertile continuation strength) COLLAPSES rather than compounds (exp=-0.1061R vs parent Arm A's +0.0402R) -- a real finding, not a rescue. FINAL CLASSIFICATION: C -- SPECIALIST EDGE ONLY (Arm C is the specialist edge at 61-66 trades/yr; Arms A and B do not clear the bar; no broad BASE exists; no combination rescues anything). PB-shadow prospective logging executed for all 1,353 events (87-100% field coverage), firewalled from every Phase 5-12 statistic per the same convention as Family #1. No V1/V2/production code touched; no sizing performed; no research finding promoted to live execution; no merge to main of research/strategy code (one CI-workflow-definition-only PR, #82, merged to main -- read-only plumbing, not strategy logic).
Read from research-output/campaign-state.json
Prospective live shadow
Phase 5 · last updated 2026-09-15T03:16Z (startup audit + first report)TRUE LIVE SHADOW — COLLECTINGstartup audit passed, system observing prospectively, sample still small/early. Whether the shadow pipeline is executing right now is the live-feed process row above, not this document field.
Read from research-output/phase5-live-shadow/PHASE5_STATUS.md
Process state read from GitHub Actions REST API (when a token is configured) · BacktestJob rows + JOB_LOCK_TTL_MS liveness · LiveFeedState processing lock · docs/status/*.json (declared states only)