-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
Add a first native candidates and shortlist surface to QuantLab Desktop so the shell can turn observation into decision.
Why
The shell already supports launch, run inspection, compare, artifacts, and launch failure review.
What is still missing is the minimal decision layer that lets an operator decide which runs deserve to stay alive.
Scope
This issue is intentionally small.
It should cover only:
- Candidate
- Shortlist
- Baseline
Minimal behaviors
- mark or unmark a run as candidate
- add or remove a run from shortlist
- mark one run as baseline
- store a short optional note
- keep explicit linkage to
run_id - open compare from selected candidates
- open artifacts from a candidate
Persistence
Start with a simple local, versionable store.
No complex sync or shared state yet.
UI expectations
Desktop shell only.
A small native surface with:
- candidate list
- shortlist view
- baseline badge
- quick actions to compare and open artifacts
Non-goals
Do not add:
- AI scoring or ranking
- recommendation engines
- Stepbit sync
- broad workflow states
- portfolio manager behavior
- knowledge-base style tagging systems
Implementation Notes
Data sources:
- current run registry from
outputs/runs/runs_index.json - desktop local state only; do not depend on Stepbit or
research_uibackend changes for v1
Reusable state and UI:
- extend the existing desktop renderer state in
desktop/renderer/app.js - reuse current compare and artifacts actions already present in the shell
Expected files to touch:
desktop/main.jsonly if a tiny local-store IPC helper is neededdesktop/preload.jsif a store helper must be exposeddesktop/renderer/app.jsdesktop/renderer/index.htmldesktop/renderer/styles.cssdesktop/README.mdonly if shell behavior changes materially
Store proposal:
outputs/desktop/candidates_shortlist.json- local JSON, versioned, keyed by
run_id
Minimal UI contract:
- one native
Candidatessurface - summary strip for total candidates / shortlist count / current baseline
- candidate rows with shortlist toggle, baseline toggle, note, open run, open artifacts, open compare
Notes
This slice should remain plan-first and small.
The purpose is to add the minimum decision layer that turns launch -> inspect -> compare into launch -> inspect -> compare -> decide.