Theospe opened a new pull request, #5110: URL: https://github.com/apache/texera/pull/5110
### What changes were proposed in this PR? Closes #5109. #### Motivation Texera already lets users compose workflows, import workflow JSON, and inspect execution results, but hackathon demos still need a concise way to show what a workflow-powered domain app can look like after the pipeline exists. New users see the canvas first, while stakeholders often want the opposite view: a focused application surface that explains the workflow outcome, links back to the underlying DAG, and makes model decisions reviewable. This PR adds **Bet Pilot**, a self-contained dashboard prototype that presents a Valorant prop-bet analysis workflow as a polished Texera app. It uses stand-in data and imported-workflow ids today, but the UI shape demonstrates how Texera can host a specialized decision app on top of workflow outputs. #### Changes This PR ships three pieces that together turn workflow output into a product-style dashboard. A user can open Bet Pilot from the dashboard, inspect the day's candidate lines, drill into model reasoning, and jump back to the Texera workflows that produce the data. 1. Bet Pilot dashboard app shell - Adds a new authenticated dashboard route under `Dashboard > Apps > Bet Pilot`. - Adds a right-side Bet Pilot navigation shell with Today, Lines Input, Model Health, Scouting Report, Bankroll, Calibration, and Glossary screens. - Adds a dashboard theme toggle that persists the selected dark/light mode and guards storage access for test/runtime environments without `localStorage`. 2. Workflow-backed decision screens - Today's Bets explains skipped and needs-review lines with short user-facing reasoning. - Lines Input supports pasted lines and staged image filenames, then validates parsed player/line/direction rows before the workflow handoff. - Scouting Report shows recent matches, map scenarios, projection deltas, confidence, Kelly sizing, and plain-English model reasoning. - Model Health, Bankroll, and Calibration screens show calibration bands, coverage, CLV slices, bankroll trend, hit rate, and refit history. 3. Workflow previews and tests - Adds a reusable workflow preview component that loads imported Texera workflow JSON and renders a compact DAG preview in the dashboard. - Adds a Bet Pilot service contract with stand-in data and workflow-id mapping so the current prototype can be replaced by real workflow calls later. - Adds focused tests for workflow-link generation, daily-pick service data, and manual line parsing positive/negative/reset behavior. #### Demos Screenshots/GIFs should be added after running the full stack with the imported demo workflows: | Demo | What to capture | | --- | --- | | Bet Pilot nav | Dashboard Apps menu and Bet Pilot shell. | | Today's bets | Candidate lines with skip/review reasoning and workflow preview. | | Lines input | Manual line validation plus staged screenshot filenames. | | Scouting report | Projection, scenarios, recent match table, and reasoning panel. | | Model health / bankroll | Calibration and performance views. | #### Future improvements - Replace stand-in data in `BetPilotService` with real workflow execution results. - Replace hard-coded workflow ids with workspace/user-specific imported workflow lookup. - Add an execution trigger from Lines Input that posts parsed lines to the daily prediction workflow and polls for results. - Add screenshots/GIFs from a deployed hackathon demo environment once the backing workflows are imported. ### Any related issues, documentation, discussions? - Closes #5109 - Related to https://github.com/apache/texera/discussions/5059 ### How was this PR tested? ```bash cd frontend && yarn install cd frontend && yarn format:fix cd frontend && yarn lint cd frontend && yarn build:ci cd frontend && yarn nx test gui --watch=false --include=src/app/dashboard/component/user/bet-pilot/bet-pilot.service.spec.ts --include=src/app/dashboard/component/user/bet-pilot/screens/bp-lines-input.component.spec.ts cd frontend && yarn nx test gui --watch=false --include=src/app/dashboard/component/dashboard.component.spec.ts ``` `yarn build:ci` passes with existing project warnings for Sass deprecations, unused `FormlyRepeatDndComponent` imports, and CommonJS optimization bailouts. I also ran full `cd frontend && yarn test:ci`; it reached the broader suite but failed in unrelated existing specs because this local test runtime reports `localStorage` as unavailable for AuthService/workspace tests. The Bet Pilot-focused specs and dashboard spec pass through the configured Nx runner. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: OpenAI Codex (GPT-5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
