First minimally functional trading-oriented product surface for the evokernel.io family. It stays honest about current scope while providing a real workspace structure for later trading integration.
The trading workspace remains live through the bounded backend status connection and keeps product-access semantics separate from internal runtime roles.
Live backend status
This workspace performs a real same-origin fetch to the bounded backend access-layer endpoint and renders minimal runtime/environment information.
Status:loading
Environment:loading
Surface:loading
Build:loading
Route:loading
Source:loading
Guardrail:loading
Workspace overview
The trading surface is now the primary bounded workspace for future strategy, dataset, and execution flows. It is intentionally more specific than the generic shell baseline but does not claim deep workflows already exist.
Shows the current trading surface identity, the live connection posture, and the next bounded growth path for later feature attachment.
trading.evokernel.io remains the trading-specific domain
the live status panel confirms prod environment identity
future features attach here without structural rewrite
Strategy entry
Reserved entry zone for future strategy selection and configuration flows.
bounded placeholder for structured strategy selection
room for future configuration summary
does not pretend full strategy management exists yet
Dataset/execution read-only alignment
This bounded increment exposes one already materialized BacktestEngine-facing dataset/execution truth slice through a read-only same-origin fetch.
Dataset:loading
Slice:loading
Window:loading
Status:loading
Warmup bars:loading
Bars processed:loading
Final equity:loading
Net profit:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
workspace state is not automatically core state
derived from already materialized authoritative behavior only
Execution entry
This bounded increment exposes one additional read-only execution_entry slice for already materialized execution identity, admissibility, and window truth through a same-origin fetch.
Backtest execution:loading
Execution window:loading
Execution status:loading
Execution class:loading
Admissibility:loading
Admissibility basis:loading
Boundary basis:loading
Start boundary:loading
End boundary:loading
Model type:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, not a launch surface
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
no additional execution-detail slices are introduced here
Login / session binding
This bounded UI surface binds to the already materialized server-side session authentication. The UI keeps only non-authoritative session context; backend_api remains the session authority.
Login endpoint:/backend_api/auth/login
Session endpoint:/backend_api/auth/session
Logout endpoint:/backend_api/auth/logout
Authenticated:checking
User id:unknown
Session transport:backend_defined
Error:none
canonical login endpoint only: POST /backend_api/auth/login
canonical logout endpoint only: POST /backend_api/auth/logout
canonical session check endpoint only: GET /backend_api/auth/session
session validity is always determined by backend_api
UI session context is non-authoritative
API task submission
This bounded UI surface submits only to the existing backend_api research task endpoint. It does not write queue files directly, does not execute tasks, and does not become Core-State authority.
Endpoint:/backend_api/research/tasks
Status:not_submitted
UI feedback state:empty
Accepted task_id:not_submitted
Execution id:not_submitted
Backend error code:none
Backend message:none
Error:none
empty
not_submitted
canonical endpoint only: POST /backend_api/research/tasks
submission is gated by backend-validated session state
advisory validation hints cover required fields and malformed JSON before submission
backend remains the final validation authority
accepted response display includes task_id, execution_id, status, backend code/message, and raw JSON
fail-closed errors are displayed as returned and not reinterpreted
no direct file_queue write and no client_daemon_main trigger exists in this UI surface
Status / history / results
This read-only UI surface uses only already exposed backend/runtime surfaces. History is UI-local for the current browser session and is explicitly non-authoritative; results remain pending unless an existing backend result surface exposes them.
Status
Backend status:loading
Environment:loading
Surface:loading
Status source:/__live/runtime-surface-status
Status error:none
loading
loading
Submitted runs in current UI session
History state:empty
History count:0
Selected run:none
History authority:UI-local / non-authoritative / not Core-State / no persistence beyond session
no submitted tasks in current UI session
Results
Result surface:ready_for_read_only_endpoint_binding / static_read_only_placeholder only where endpoint section is unavailable
task_id:unavailable until submission response or manual value
execution_id:unavailable until submission response or manual value
status:empty
run_data:unavailable until real endpoint response exposes run_data; placeholder only; no result endpoint exposed for unavailable section
outputs:unavailable until real endpoint response exposes outputs; placeholder only; no result endpoint exposed for unavailable section
metrics:unavailable until real endpoint response exposes metrics; placeholder only; no result endpoint exposed for unavailable section
errors:none
Storage access:no direct storage or file_queue read from UI
empty
empty
protected view is meaningful only after backend session validation
unauthenticated or invalid session state remains fail-closed
initial user bootstrap may not have been executed; UI does not create users
backend unavailable is displayed without reinterpretation
task result endpoints are read-only and loaded only from existing S0789_RUNTIME_A routes
multiple runs can be selected sequentially; no computed comparison metrics or derived analytics are introduced
copy buttons copy only visible UI input/display identifiers and do not persist them
Execution outcome
This bounded increment exposes one additional read-only execution_entry outcome slice for already materialized execution outcome truth through a same-origin fetch.
Metric bundle:loading
Performance summary:loading
Summary status:loading
Completeness:loading
Result class:loading
Final equity:loading
Net profit:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
later adjacent slices remain unimplemented
Execution completeness
This bounded increment exposes one additional read-only execution_entry completeness/detail slice for already materialized execution completeness/detail truth through a same-origin fetch.
Result completeness:loading
Present artifact ids:loading
Required artifact ids:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
later adjacent slices remain unimplemented
Execution warmup
This bounded increment exposes one additional read-only execution_entry warmup requirement slice for already materialized execution warmup requirement truth through a same-origin fetch.
Warmup requirement:loading
Warmup basis:loading
Required warmup bars:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
remaining corridor candidates stay unimplemented
Execution dataset slice binding
This bounded increment exposes one additional read-only execution_entry dataset slice binding truth slice for already materialized dataset slice binding truth through a same-origin fetch.
Dataset slice binding:loading
Dataset:loading
Slice scope:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
prepared feature binding truth remains unimplemented
Execution prepared feature binding
This bounded increment exposes one additional read-only execution_entry prepared feature binding truth slice for already materialized prepared feature binding truth through a same-origin fetch.
Prepared feature binding:loading
Feature set:loading
Feature binding basis:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no execution-control semantics are introduced
no workflow expansion is implied
the finite remaining sequence is exhausted after this increment
Execution prepared / bound / validated
This bounded increment exposes one additional read-only execution_entry support-truth slice for already materialized prepared / bound / validated truth through a same-origin fetch.
Prepared artifact manifest:loading
Expected validation reference:loading
Normalized request valid:loading
Preparation manifest bound:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
no workflow/control capability is introduced
no broader result/detail breadth is implied
Execution run manifest
This bounded increment exposes exactly one additional read-only execution_entry run-manifest support-truth slice for already materialized execution-run identity truth through a same-origin fetch.
Task id:loading
Task type:loading
Canonical comparison basis:loading
Run data schema version:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
execution_status remains excluded from this bounded increment
no workflow/control capability is introduced
Execution status
This bounded increment exposes exactly one additional read-only execution_entryrun_manifest.execution_status truth slice for already materialized execution lifecycle status truth through a same-origin fetch.
Execution status:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
exactly one status field is added: run_manifest.execution_status
no broader lifecycle/state-transition family is implied
Execution status source path
This bounded continuation exposes exactly one additional read-only execution_entry status-alignment slice by naming the authoritative source path for the already materialized run_manifest.execution_status truth.
Execution status source path:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
exactly one additional status-alignment field is added: execution_status_source_path
the authoritative source path remains run_manifest.execution_status
no broader lifecycle/state-transition family is implied
Execution status source area
This bounded continuation exposes exactly one additional read-only execution_entry status-alignment slice by naming the authoritative source area for the already materialized run_manifest.execution_status truth.
Execution status source area:loading
Authority source:loading
Boundary:loading
UI is not semantic authority
not a control surface, not a workflow surface, and not a launch surface
exactly one additional status-alignment field is added: execution_status_source_area
the authoritative source area remains run_manifest
no broader lifecycle/state-transition family is implied
Integration notes
The trading workspace remains a product-access surface. It does not rename internal runtime roles into public navigation concepts.
frontend != client
backend_api remains backend-oriented
storage_controller is not a public workspace panel