Files
ai-exchange/SESSION.md
T
2026-05-12 09:21:43 +08:00

30 KiB

ai-exchange Session

Current Goal

Automation execution-layer P24 is closed. Current HEAD was deployed to the remote host and P24 remote ops smoke passed across health, runtime status, review packet, alert quality, operator digest, runtime incidents, maintenance summary, visual-watch dry-run, and P23 unattended harness. The default next action is PXX Automation Execution Closure Gate.

Current Branch

main

Last Updated

2026-05-12 UTC

Automation Status

  • state: automation_execution_layer_p24_remote_smoke_ops_closure_closed
  • current_phase: P24 Remote Smoke And Ops Closure
  • latest_p7_selector_choice: continue_periodic_analysis_decision_monitoring_with_maturity_rollup
  • latest_p14_slice: webhook_transport_retry
  • latest_p15_pxx_tasklist_status: ready
  • latest_p15_pxx_tasklist_path: docs/AI_ICT_自动化执行层_P15-PXX闭环任务清单_v1.md
  • latest_p15_slice: alert_noise_policy_matrix
  • latest_alert_noise_policy_status: implemented
  • latest_alert_noise_policy_route_status: visible_existing_quality_summary
  • latest_alert_noise_policy_runtime_status: visible
  • latest_p16_slice: browser_screenshot_capture_adapter
  • latest_visual_browser_capture_status: implemented
  • latest_visual_browser_capture_smoke_status: captured
  • latest_visual_capture_script_noop_status: ignored_watch_run_missing
  • latest_p17_slice: visual_trigger_roi_router
  • latest_visual_trigger_policy_status: implemented
  • latest_visual_trigger_policy_smoke_status: idle_no_pending_watch_runs
  • latest_visual_trigger_runtime_status: visible
  • latest_visual_trigger_quality_summary_status: visible
  • latest_p18_slice: visual_evidence_media_dispatch
  • latest_visual_media_evidence_status: implemented
  • latest_visual_media_evidence_dispatch_status: visible
  • latest_visual_media_evidence_smoke_status: no_pending_alerts_safe_noop
  • latest_p19_slice: multi_channel_alert_routing
  • latest_channel_router_status: implemented
  • latest_channel_health_status: visible
  • latest_disabled_adapter_status: visible_credential_missing
  • latest_channel_routing_smoke_status: no_pending_alerts_safe_noop
  • latest_p20_slice: operator_digest_review_queue
  • latest_operator_digest_status: implemented
  • latest_operator_digest_route_status: ok
  • latest_operator_digest_workbench_status: visible
  • latest_operator_digest_smoke_status: safe_noop_or_completed
  • latest_p21_slice: runtime_incident_journal
  • latest_runtime_incident_journal_status: implemented
  • latest_runtime_incident_journal_route_status: ok
  • latest_runtime_incident_journal_workbench_status: visible
  • latest_runtime_incident_journal_smoke_status: idle_persisted
  • latest_p22_slice: maintenance_retention_rollup
  • latest_maintenance_summary_status: implemented
  • latest_maintenance_summary_route_status: ok
  • latest_maintenance_summary_workbench_status: visible
  • latest_maintenance_summary_smoke_status: warning_feedback_sample_health
  • latest_p23_slice: end_to_end_unattended_harness
  • latest_unattended_harness_status: implemented
  • latest_unattended_harness_route_status: ok
  • latest_unattended_harness_smoke_status: passed_9_checks
  • latest_p24_slice: remote_smoke_ops_closure
  • latest_remote_deploy_status: deployed_current_head
  • latest_remote_ops_smoke_status: passed
  • latest_remote_ops_smoke_base_url: http://192.168.3.90:8000
  • next_execution_layer_phase: PXX Automation Execution Closure Gate
  • latest_visual_review_script_status: idle
  • latest_runtime_visual_watch_task_status: ok
  • latest_visual_capture_cleanup_task_status: ok
  • latest_runtime_watchdog_task_status: implemented
  • latest_runtime_visual_watch_state: idle
  • latest_visual_snapshot_capture_status: implemented
  • latest_visual_reviews_panel_status: visible
  • latest_visual_feedback_status: implemented
  • latest_visual_alert_evidence_dispatch_status: implemented_existing_channels
  • latest_alert_quality_summary_status: implemented
  • latest_review_packet_alert_quality_status: visible
  • latest_alert_quality_route_status: ok
  • latest_visual_capture_cleanup_status: implemented
  • latest_visual_capture_cleanup_route_status: ok
  • latest_runtime_watchdog_status: implemented
  • latest_runtime_watchdog_route_status: ok
  • latest_alert_silent_window_status: implemented
  • latest_alert_silent_window_route_status: ok
  • latest_alert_retry_recovery_status: implemented
  • latest_alert_transport_retry_status: implemented
  • latest_runtime_blockers: none
  • guards_unchanged: execution_allowed, real_live_ready, risk_governor, trust_bucket, operator_confirmation_protocol

Completed In This Run

  • Verified GSTACK_OK.
  • Promoted the visual-watch prewire into a P8 review loop slice.
  • Added VisualReviewService to review reserved watch runs, create optional snapshot records, create visual reviews, and mark watch runs reviewed.
  • Added scripts/run_visual_review.py for manual or automation-driven review processing.
  • Added VisualSnapshotCaptureService and scripts/run_visual_snapshot_capture.py for advisory review-packet snapshot capture.
  • Added API helpers and routes for POST /trading/visual-watch/review and POST /trading/visual-watch/review-pending.
  • Added a read-only workbench panel for recent visual reviews.
  • Added a runtime visual_watch task that processes pending visual-watch reviews without changing trading gates.
  • Added alert_feedback persistence and feedback service support for alert and visual-review labels.
  • Added visual-review feedback API routes and workbench actions for useful / misleading / actionable labels.
  • Extended alert dispatch messages and delivery payloads with the latest visual evidence for the decision packet.
  • Added AlertQualitySummaryService to aggregate recent alert deliveries, alert feedback, visual feedback, and visual-review states.
  • Added GET /trading/alerts/quality-summary and attached the same summary to review_packet.alert_quality_summary.
  • Added a dashboard Alert Quality panel with delivery success, alert usefulness, visual helpfulness, flags, and operator summary.
  • Applied local migrations through 042_create_alert_feedback.sql so P9 can be exercised on the current database.
  • Added VisualCaptureRetentionService to remove stale .claude/visual_watch/captures HTML/JSON artifacts by retention window.
  • Added scripts/run_visual_capture_cleanup.py and POST /trading/visual-watch/cleanup-captures.
  • Added runtime task visual_capture_cleanup and a workbench Cleanup Old Captures button in the Visual Reviews panel.
  • Added RuntimeTaskWatchdogService to detect runtime tasks that are overdue or running too long.
  • Added scripts/run_runtime_task_watchdog.py and GET /trading/runtime-watchdog.
  • Extended runtime_status and the runtime workbench panel with runtime_watchdog, stalled task names, and per-task stall details.
  • Added AlertSilentWindowService for configurable quiet-hour suppression of outbound non-workbench alerts.
  • Added scripts/run_alert_silent_window_status.py and GET /trading/alerts/silent-window-status.
  • Extended alert dispatch, alert quality summary, runtime alert_dispatch task details, and the Alert Quality panel with silent-window visibility and suppression counts.
  • Added failed-alert retry recovery to AlertDispatcherService with bounded retry attempts and retry backoff.
  • Added retry observability in dispatcher payloads, delivery summary fields, runtime alert_dispatch details, and Alert Quality delivery cards.
  • Added bounded webhook transport retry inside AlertDispatcherService._send so transient outbound failures can be retried before the alert is marked failed.
  • Added transport-retry observability in dispatcher payloads, delivery summary fields, and runtime alert_dispatch details.
  • Added focused unit tests for the service, script, API routing, and runtime task.
  • Added docs/AI_ICT_自动化执行层_P15-PXX闭环任务清单_v1.md to define a finite continuation queue from P15 through PXX.
  • Updated the state anchors so future continuation starts at P15 instead of inventing new unbounded phases.
  • Added alert noise policy matrix settings for external minimum severity, workbench-only alert types, suppressed duty modes, and suppressed operator modes.
  • Extended DeliveryPolicyService with evaluate_alert_delivery_policy() so alert status, silent window, alert type, severity, channel, duty mode, operator mode, and cooldown return a structured policy decision.
  • Extended AlertDispatcherService to persist delivery_policy metadata and expose policy_external_allowed, workbench_only, and suppressed_noise_policy counters.
  • Extended AlertQualitySummaryService, runtime alert_dispatch task details, run_alert_dispatcher.py, and the workbench Alert Quality panel with noise-policy visibility.
  • Added focused unit tests for policy matrix, dispatcher suppression, summary rollup, runtime details, and docs inventory alignment.
  • Added browser-backed screenshot capture support to VisualSnapshotCaptureService using local Edge/Chrome headless when available.
  • Extended visual capture payloads with html_path, screenshot_path, metadata_path, capture_url, browser_capture_status, and structured browser_capture details.
  • Extended scripts/run_visual_snapshot_capture.py, POST /trading/visual-watch/capture, and the workbench Visual Reviews panel with browser capture visibility.
  • Verified a real local browser screenshot smoke produced a PNG from a generated review-packet HTML artifact.
  • Added structured evaluate_visual_trigger_policy() for visual trigger/skip routing with auditable reason codes.
  • Wired decision alert payloads and reserved visual watch requests with visual_trigger_policy, visual_trigger_skip_reason, and visual_trigger_roi.
  • Extended runtime decision_packet and visual_watch task details with visual trigger policy statuses, skip reasons, trigger type counts, and review state counts.
  • Extended visual review payloads, alert quality summary, scripts/run_visual_review.py, and the workbench panels with trigger type and ROI visibility.
  • Added build_visual_media_evidence() and summarize_visual_media_evidence() so visual reviews produce a stable media evidence block.
  • Extended alert dispatcher delivery payloads, dispatcher results, alert messages, alert quality summary, runtime alert_dispatch details, and run_alert_dispatcher.py with media evidence status.
  • Extended visual review API enrichment and workbench Visual Reviews with media evidence status and primary media path.
  • Added structured channel route/capability helpers with workbench, webhook, WeCom, and email channel descriptions.
  • Added channel health summary and disabled adapter metadata for WeCom/Email credential-missing states.
  • Extended alert dispatcher payloads/results, delivery summary, runtime alert_dispatch details, dispatcher script output, and workbench delivery cards with per-channel observability.
  • Added OperatorDigestService to aggregate recent alerts, deliveries, visual reviews, quality flags, and missing feedback into an operator review queue.
  • Added scripts/run_operator_digest.py and GET /trading/alerts/operator-digest.
  • Extended the workbench Alert Quality panel with operator digest status, review queue counts, and top review item types.
  • Added runtime_incidents persistence with upsert aggregation by incident key.
  • Added RuntimeIncidentJournalService, scripts/run_runtime_incident_journal.py, and GET /trading/runtime-incidents.
  • Extended runtime_status, run_trading_runtime.py, and the workbench runtime panel with incident summary, severity/source counts, and recommended actions.
  • Added MaintenanceSummaryService for read-only storage/delivery/feedback/runtime maintenance rollups.
  • Added scripts/run_maintenance_summary.py and GET /trading/maintenance-summary.
  • Extended the workbench runtime panel with maintenance status, blockers/warnings, actions, and P23 assertion visibility.
  • Added UnattendedHarnessService, scripts/run_unattended_harness.py, and GET /trading/unattended-harness.
  • The harness validates policy suppression, dispatch retry contract, runtime watchdog, visual capture fallback, alert quality feedback rollup, visual media/channel rollup, operator digest, maintenance summary, and runtime environment blockers without using external channels or real trades.
  • Added scripts/run_remote_ops_smoke.py for P24 remote API validation.
  • Extended password deploy smoke coverage to include alert quality, operator digest, runtime incidents, maintenance summary, and the P23 harness.
  • Deployed current HEAD to http://192.168.3.90:8000 and confirmed P24 remote ops smoke passed without warnings or blockers.

Current Working State

  • P7 is closed and remains a monitor-maturity routing layer, not a Research Council expansion.
  • P8 review/capture/feedback surfaces remain implemented and unchanged in their execution guards.
  • P9 quality rollup remains implemented and visible in both the dashboard and review packet.
  • P10 retention cleanup remains implemented and visible in runtime plus workbench flows.
  • P11 runtime watchdog remains implemented and visible in runtime status, API, script, and workbench flows.
  • P12 silent-window noise control remains implemented and visible in dispatcher, summary, runtime, and workbench flows.
  • P13 retry recovery remains implemented: failed alerts can be re-scanned, deferred during backoff, and stopped after bounded retry exhaustion.
  • P14 transport retry is implemented: single webhook send attempts can now be retried in-process before the alert falls back to failed delivery state.
  • P14 transport visibility is implemented: dispatcher results expose transport_attempt_count, delivery summary exposes transport_retried_delivery_count / transport_retry_failed_count, and runtime alert_dispatch details expose transport retry counters.
  • P15-PXX is now a finite known-scope queue: P15 noise policy matrix, P16 browser screenshot capture adapter, P17 visual trigger ROI router, P18 visual evidence media dispatch, P19 multi-channel routing, P20 operator digest/review queue, P21 runtime incident journal, P22 maintenance rollup, P23 unattended harness, P24 remote smoke, and PXX closure gate.
  • P15 noise policy matrix is implemented: external alert sends can be suppressed by severity, alert type, duty mode, operator mode, silent window, or cooldown while workbench visibility remains intact.
  • P15 visibility is implemented: dispatcher payloads include delivery_policy, delivery summary includes noise-policy/workbench-only/external-allowed counters, runtime alert_dispatch details expose policy counters, and the workbench Alert Quality panel displays them.
  • P16 browser screenshot capture is implemented: visual snapshot capture now writes HTML/JSON artifacts and, when browser capture is available, a PNG screenshot; when unavailable, it returns structured browser_capture_status=unavailable without interrupting the visual-watch flow.
  • P16 workbench visibility is implemented: Visual Reviews now expose browser capture status, image path, HTML path, and artifact path.
  • P17 visual trigger ROI routing is implemented: ordinary observe/monitoring states now produce observe_monitoring_not_high_value instead of reserving visual review, while actionable, blocked, market degraded, broker/reconciliation degraded, and council-recommended watch items produce explicit trigger types.
  • P17 visibility is implemented: decision alert payloads carry visual_trigger_policy/visual_trigger_roi, runtime exposes trigger/skip counts, visual review summaries count trigger types and review results, and the workbench displays trigger counters.
  • P18 visual media evidence dispatch is implemented: visual review context now becomes a stable media_evidence block with channel-aware media_attached, media_linked, or media_unavailable status.
  • P18 visibility is implemented: dispatcher payloads/results, delivery summary, runtime alert_dispatch details, script output, visual review API, and workbench panels expose media evidence status.
  • P19 multi-channel alert routing is implemented: routing now returns channel_route, channel_health, channel capability metadata, and explicit disabled-adapter states for WeCom/Email when credentials/adapters are unavailable.
  • P19 visibility is implemented: dispatcher result exposes channel_summary / channel_health / channel_disabled, delivery summary exposes channel_status_counts, runtime alert_dispatch details expose channel health, and the workbench Alert Quality panel shows channel counts.
  • P20 operator digest/review queue is implemented: recent high-value alerts, suppressed deliveries, failed/retry deliveries, visual mismatches, and pending feedback items are aggregated into a bounded review queue.
  • P20 visibility is implemented: scripts/run_operator_digest.py, /trading/alerts/operator-digest, focused tests, and the workbench Alert Quality panel expose digest status, counts, warnings, and top queue items.
  • P21 runtime incident journal is implemented: runtime/watchdog/blocker/noisy incident signals can be normalized into persisted incidents with severity, source, reason, subject, first/last seen timestamps, occurrence count, and recommended action.
  • P21 visibility is implemented: /trading/runtime-incidents, scripts/run_runtime_incident_journal.py, runtime_status.incident_summary, run_trading_runtime.py, and the workbench runtime panel expose incident counts and recommendations.
  • P22 maintenance retention rollup is implemented: visual capture retention dry-run stats, alert delivery health, feedback sample health, runtime watchdog, and incident journal health are aggregated into checks, blockers, warnings, maintenance_actions, and p23_assertions.
  • P22 visibility is implemented: /trading/maintenance-summary, scripts/run_maintenance_summary.py, and the workbench runtime panel expose maintenance state without deleting business data.
  • P23 unattended harness is implemented: a single local command/API call returns mode, passed checks, warnings, blockers, and trimmed payloads across P15-P22 key paths.
  • P23 is analysis/decision-only: external_channels_used=false and real_trade_required=false.
  • P24 remote deployment is complete for current HEAD.
  • P24 remote smoke is implemented and passed: /health, /trading/runtime-status, /trading/review-packet, /trading/alerts/quality-summary, /trading/alerts/operator-digest, /trading/runtime-incidents, /trading/maintenance-summary, visual-watch cleanup dry-run, and /trading/unattended-harness all passed on http://192.168.3.90:8000.
  • Latest scripts/run_visual_review.py smoke found no pending reviews: attempted=0, reviewed=0, status=idle.
  • Latest capture smoke returned status=ignored when no watch run was supplied, which is the expected safe no-op.
  • Latest cleanup smoke deleted one expired temporary artifact through scripts/run_visual_capture_cleanup.py.
  • Latest watchdog smoke returned stalled_task_count=0 through scripts/run_runtime_task_watchdog.py.
  • Latest silent-window smoke returned active=true through scripts/run_alert_silent_window_status.py and exposed the same state through /trading/alerts/silent-window-status.
  • Latest dispatcher smoke returned retry-related fields (retry_candidates=0, retried=0, deferred_retry_backoff=0, retry_exhausted=0) through scripts/run_alert_dispatcher.py.
  • Latest scripts/run_trading_runtime.py smoke returned blockers=none and includes a healthy visual_watch runtime task.
  • Latest local runtime smoke confirmed runtime_status.tasks.alert_dispatch.details now exposes retry and silent-window counters with blockers=none.

P24 Blockers

  • none

Current Risks Or Open Questions

  • Browser screenshot capture adapter is a future enhancement, not a P8 closure blocker. The current adapter is an advisory review-packet HTML capture, and the review loop can still use an existing snapshot, an explicit image_path, or write an unavailable structured review.
  • Visual review remains advisory and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Alert-quality statistics remain advisory and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Capture cleanup remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Runtime watchdog remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Silent-window suppression remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Retry recovery remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • Transport retry remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P15-PXX must remain automation execution-layer work and must not reopen Research Council phases or create new trading permissions.
  • P15 noise policy remains operational only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P16 browser screenshot capture remains advisory evidence only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P17 visual trigger routing remains advisory evidence routing only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P18 media evidence remains delivery metadata/fallback routing only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P19 channel routing remains notification routing/observability only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P20 operator digest remains read-only review aggregation only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P21 runtime incident journal remains observability/persistence only and must not change execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P22 maintenance summary remains read-only and uses visual capture retention dry-run statistics only; it must not delete business data or alter execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P23 unattended harness remains a local/remote smoke verifier only and must not use external channels, require real trades, or alter execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • P24 remote ops smoke remains verification only: its visual-watch step uses dry-run cleanup and it must not use external channels, require real trades, or alter execution permission, live readiness, trust bucket, risk governor, or operator confirmation.
  • A final rerun of scripts/run_alert_dispatcher.py and scripts/run_trading_runtime.py hit local PostgreSQL connection timeout because nothing was listening on 127.0.0.1:5432; the P14 code path is still covered by full unit tests and earlier successful smoke during implementation.
  • P15 dispatcher smoke succeeded with suppressed_noise_policy, workbench_only, and policy_external_allowed counters present. P15 runtime smoke reached alert_dispatch successfully, but the overall runtime returned external environment blockers for market stream disconnected and OKX read transport connection refused.
  • P16 direct browser smoke succeeded locally with browser_capture_status=captured. Script-level capture without a watch run still returns safe no-op watch_run_missing.
  • P17 visual review smoke returned status=idle, skip_reason=no_pending_visual_watch_runs, and empty trigger/review counters, which is the expected safe no-op when no policy-backed visual watch is pending.
  • P17 quality-summary API smoke returned 200 and exposed visual_review_summary.trigger_type_counts / review_result_counts.
  • Latest P17 runtime smoke returned blockers=none and exposes decision_packet.details.visual_trigger_* plus visual_watch.details.skip_reason / trigger counts.
  • P18 dispatcher smoke returned attempted=0 and media counters present as safe no-op: media_attached=0, media_linked=0, media_unavailable=0.
  • P18 quality-summary API smoke returned 200 and exposed delivery_summary.media_attached_count, media_linked_count, and media_unavailable_count.
  • Latest P18 runtime smoke returned blockers=none and exposes alert_dispatch.details.media_attached/media_linked/media_unavailable.
  • P19 dispatcher smoke returned attempted=0 and exposed channel_health.enabled_channels=["workbench"] plus disabled webhook, wecom, and email credential-missing states.
  • P19 quality-summary API smoke returned 200 and exposed delivery_summary.channel_status_counts.
  • Latest P19 runtime smoke returned blockers=none and exposes alert_dispatch.details.channel_health and channel_summary.
  • P20 focused tests passed for digest service, script JSON/text output, API route, and dashboard route inventory; full tests/unit passed with 685 tests.
  • P20 smoke returned status=completed through scripts/run_operator_digest.py with review_queue=10, API route smoke returned 200 with review_queue=3, and runtime smoke returned blockers=none.
  • P21 local migration applied 043_create_runtime_incidents.sql.
  • P21 full validation passed: 691 unit tests, 69 script static checks, node --check src/web/app.js, and runtime smoke blockers=none with Incident journal: idle / 0.
  • P21 script/API smoke returned idle persisted incident journal state, which is expected when no current runtime incidents are present.
  • P22 full validation passed: 696 unit tests, 70 script static checks, and node --check src/web/app.js.
  • P22 script/API smoke returned status=warning with warnings=['feedback.sample_health'], blockers=[], automatic_actions=[], and P23 assertions visible.
  • P23 full validation passed: 701 unit tests, 71 script static checks, and node --check src/web/app.js.
  • P23 script/API smoke returned status=passed, passed_checks=9, warnings=[], blockers=[], external_channels_used=false, and real_trade_required=false.
  • P24 focused validation passed: remote ops smoke tests and deploy smoke coverage tests passed; script static checks passed across 72 scripts.
  • P24 deploy passed through scripts/deploy_with_password.py with 11 HTTP smoke endpoints.
  • P24 remote ops smoke passed on http://192.168.3.90:8000 with 9 passed checks, warnings=[], blockers=[].
  • Real-live order submission remains intentionally disabled because the OKX order adapter is still not a real-live submitter.

Exact Next Step

P24 is closed. Default next action is PXX Automation Execution Closure Gate: verify P15-P24 are all closed, rerun final quality gates, freeze known automation execution-layer scope, and write the final closure status.

Validation Commands Used Recently

D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_visual_review_service tests.unit.test_run_visual_review tests.unit.test_trading_runtime_service tests.unit.test_api_and_main tests.unit.test_api_server
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_script_static_checks.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_run_until_blocked tests.unit.test_monitoring_alert_rollout tests.unit.test_runtime_script_json
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_visual_review.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_visual_snapshot_capture.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_visual_capture_cleanup.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_runtime_task_watchdog.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_alert_silent_window_status.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_trading_runtime.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_visual_snapshot_capture_service tests.unit.test_run_visual_snapshot_capture tests.unit.test_api_static_server
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_visual_trigger_policy_service tests.unit.test_decision_packet_service tests.unit.test_research_council_decision_packet_fields tests.unit.test_visual_review_service tests.unit.test_alert_quality_summary_service tests.unit.test_trading_runtime_service tests.unit.test_run_visual_review
D:\ai-exchange\.venv\Scripts\python.exe -m unittest discover -s tests/unit
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_visual_review.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_visual_media_evidence_service tests.unit.test_alert_feedback_service tests.unit.test_alert_quality_summary_service tests.unit.test_trading_runtime_service tests.unit.test_api_and_main
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_alert_dispatcher.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_channel_router_service tests.unit.test_alert_feedback_service tests.unit.test_alert_quality_summary_service tests.unit.test_trading_runtime_service
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_operator_digest_service tests.unit.test_run_operator_digest tests.unit.test_api_server.ApiServerRoutingTests.test_routes_trading_alert_operator_digest tests.unit.test_api_static_server.ApiStaticServerTests.test_dashboard_uses_canonical_trading_routes
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_operator_digest.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_runtime_incident_journal_service tests.unit.test_run_runtime_incident_journal tests.unit.test_trading_runtime_service tests.unit.test_api_static_server.ApiStaticServerTests.test_dashboard_uses_canonical_trading_routes
D:\ai-exchange\.venv\Scripts\python.exe scripts\apply_migrations.py
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_runtime_incident_journal.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_maintenance_summary_service tests.unit.test_run_maintenance_summary tests.unit.test_api_server.ApiServerRoutingTests.test_routes_maintenance_summary tests.unit.test_api_static_server.ApiStaticServerTests.test_dashboard_uses_canonical_trading_routes
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_maintenance_summary.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_unattended_harness_service tests.unit.test_run_unattended_harness tests.unit.test_api_server.ApiServerRoutingTests.test_routes_unattended_harness
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_unattended_harness.py
D:\ai-exchange\.venv\Scripts\python.exe -m unittest tests.unit.test_run_remote_ops_smoke tests.unit.test_deploy_with_password
D:\ai-exchange\.venv\Scripts\python.exe scripts\run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 20