Changelog
This changelog tracks visible product progress. Version labels use 0.X.Y: 0 means pre-1.0, X is the main topic line, and Y is an iteration inside that line.
Entries group shipped product capabilities by work area.
0.3.1 — May 2026 — Product docs and Lab review surface
Public website work for product docs, HQ, and the Hey-LiSA Lab review surface.
Added
- Added
/lab/and/fr/lab/as static review routes for Hey-LiSA Lab cards: Strategy Lab, Run Layer, Strategy Exchange, and$LISA Token. - Added trailing-slash route config for the Lab pages so the static adapter emits
build/lab/index.htmlandbuild/fr/lab/index.html. - Added HQ article skeletons for the daily BTC DCA comparison series.
- Added the roadmap template and changelog docs pages.
Verification
- Website changes in this group were verified through
npm run check,npm run build, and static route checks during implementation.
0.3.0 — May 2026 — Bilingual static website routes
Language routing and static output work for English and French pages.
Added
- Added
/fr/website routing with French homepage, docs, HQ, and contact routes. - Added canonical English paths with French equivalents for docs, HQ, contact, and homepage routes.
- Added canonical and alternate language metadata.
- Added language-aware docs and HQ rendering paths.
- Added a French docs content tree.
Changed
- Set English as the canonical content path and French as
/fr/. - Added separate English and French HQ content paths.
- Moved the language switcher from navbar to footer, then reduced visible labels to flag-only controls with accessible labels.
- Updated contact routing so
/contact/remains canonical English and/fr/contact/is generated for French.
Fixed
- Added trailing-slash route config for HQ and contact pages where needed so static nginx can serve
/hq/,/contact/, and/fr/contact/fromindex.htmlfiles. - Updated website X links to
https://x.com/0xLalicein shared config.
Verification
- Static builds confirmed generated files for English and French docs, HQ, contact, and root routes.
0.2.2 — May 2026 — Curated Strategy Lab catalog
Catalog cleanup for the Strategy Lab example set and precompute surface.
Changed
- Reduced the Strategy Lab example catalog to representative strategies instead of parameter-sweep variants.
- Added normalized comparison metadata so comparable strategies share the same simulated 50 USDC/day contribution profile.
- Split catalog entries into comparable strategies and special experiments, with caveats attached to strategies that need context.
- Removed redundant drawdown, Fear and Greed, and duplicate Sunny Po variants from the main example catalog.
- Kept strategy examples that cover baseline DCA, cash-aware drawdown buying, CBBI, Fear and Greed, Pi Cycle, 2-Year MA, moving-average rules, stateful counters, monthly value averaging, and the Sunny Po simple drawdown regime.
- Simplified
app/hey_lisa/strategy_lab/precompute.pyafter removing catalog entries that no longer needed special-case comparison handling. - Added stored card traces for compact strategy-card sparklines without loading full result payloads.
Fixed
- Updated app tests that assert catalog contents and validation behavior after strategy removal.
- Updated Strategy Lab README counts and catalog expectations.
Verification
- Relevant evidence comes from
app/tests/test_app.py,app/tests/test_strategy_backtest.py, andapp/tests/test_strategy_validation.pychanges in the catalog curation commit.
0.2.1 — May 2026 — Strategy Lab SPA and graph renderer
Frontend and engine changes for strategy detail pages, graph rendering, nested actions, and saved strategy APIs.
Added
- Added
@xyflow/sveltetoapp/frontend/package.jsonandpackage-lock.jsonfor graph rendering. - Added custom graph node components at
app/frontend/src/components/strategy-graph/IfGraphNode.svelteandActionGraphNode.svelte. - Added
StrategyLabApp.svelteas the main app shell for strategy browser/detail views. - Added example strategies
sunny_po_simple_ath_drawdown_dca.jsonandsunny_po_ath_drawdown_regime_dca.json. - Added Strategy Lab CRUD routes in
app/hey_lisa/app.py: saved strategies, single strategy lookup/update/delete, and backtest run listing. - Added
setaction support and graph normalization for nested IF/action trees inapp/hey_lisa/strategy_lab/generic.py,schema.py, andvalidate.py. - Added a strategy detail review surface with raw JSON, strategy chart, equity comparison, trade inspector, and decision graph.
- Added graph action statistics from backtest action events, including full, partial, and zero-fill rates per action identity.
Changed
- Replaced manual SVG graph routing with Svelte Flow nodes and edges in
StrategyGraph.svelte. - Rendered IF/action logic with then/else labels, nested branch paths, and sequential action nodes.
- Kept multiple
actions[]entries as separate sequential action nodes in the graph instead of visually merging them. - Updated
PeriodSelector.svelte,StrategiesPage.svelte,StrategyCard.svelte, andStrategyDetailPage.sveltefor the revised strategy detail workflow. - Updated backtest result types in
app/frontend/src/lib/types.tsto carry expanded strategy and graph data.
Fixed
- Fixed nested IF/ELSE graph rendering so nested then/else paths remain connected and readable.
- Extended validation tests for nested branches, action sequences,
setactions, and unsupported fields. - Extended backtest tests for state handling, action order, and graph-compatible normalized strategies.
Verification
- Evidence comes from
app/tests/test_app.py,app/tests/test_strategy_backtest.py, andapp/tests/test_strategy_validation.py.
0.2.0 — May 2026 — External series, comparison periods, and indicator strategies
Strategy Lab support for external daily series, additional indicator functions, and period comparisons.
Added
- Added external series storage and loading in
app/hey_lisa/market_data/external_series.py. - Added CBBI strategy support with
series('cbbi')and examples such ascbbi_basic_confidence_dca.json. - Added Fear and Greed strategy variants that read
series('fear_greed'). - Added Pi Cycle and 2-Year MA expression functions in
app/hey_lisa/strategy_lab/builtins.py. - Added strategy examples for Pi Cycle, 2-Year MA, Fear and Greed, drawdown buffers, and value-style accumulation.
- Added period comparison UI in
app/frontend/src/components/PeriodSelector.svelte. - Added external-series import commands for Fear & Greed and CBBI local artifacts.
- Added unavailable-result handling when a selected period requires external series data that is missing or incomplete.
- Added chart output for external oscillator panes and state-derived indicators.
Changed
- Updated
app/docs/strategy-language.mdto document external series reads, CBBI, Pi Cycle, 2-Year MA, and indicator declarations. - Updated
app/hey_lisa/strategy_lab/precompute.pyto precompute strategy-period combinations with external-series coverage checks. - Stored external-series coverage and dependency signatures with precomputed results.
- Updated Strategy Lab cards and charts to show period labels, marker colors, and comparison-oriented metrics.
Fixed
- Added validation errors for undeclared external series and missing indicator declarations.
- Added tests in
app/tests/test_external_series.py,test_cli.py,test_strategy_backtest.py, andtest_strategy_validation.py.
Verification
- The commit includes tests for external-series import paths, CLI behavior, strategy validation, and backtest execution.
0.1.1 — May 2026 — Strategy browser and backtest analytics
Core Strategy Lab UI and analytics work before the graph-library migration.
Added
- Added strategy browser cards, strategy detail pages, trade inspection, market panels, and chart components under
app/frontend/src/components. - Added result analytics for orders, cash deployment, portfolio value, equity curves, and trade rows in
app/hey_lisa/strategy_lab/backtest.pyand related modules. - Added strategy language examples for moving-average, drawdown, monthly, weekly, and stateful strategies.
- Added backtest result payloads for action events, cashflows, variable events, range metadata, warnings, and assumptions.
- Added comparison outputs for strategy equity, Daily DCA baseline, held cash, lump-sum-at-start, and buy-and-hold.
- Added explicit execution semantics for candle-close and next-candle-open fills, including signal candle, execution candle, fees, slippage, requested spend, and filled spend.
- Added preset BTC history periods for stress and regime comparison.
Changed
- Set the active Strategy Lab runtime to BTC daily candles.
- Consolidated Strategy Lab builtins and expression handling so
price(),ma(...),highest_close(...),time(...), andget(...)use the same validation/backtest path. - Updated the local FastAPI app to serve the SPA and strategy APIs from localhost.
Fixed
- Fixed cashflow accounting and PnL treatment so simulated contributions are tracked separately from buy execution.
- Added partial, cash-limited, budget-limited, and zero-requested fill status handling for simulated buy actions.
- Clarified portfolio summary behavior for available quote cash, spent amount, and BTC value.
Verification
- Evidence comes from app tests for backfill, bootstrap, config, DB, Kraken, strategy validation, and backtest behavior.
0.1.0 — May 2026 — Initial Strategy Lab
Foundation for the public website and the local Strategy Lab app.
Added
- Added a static public website with homepage, docs, HQ, and contact pages.
- Added a local FastAPI service, SQLite storage, CLI entry points, and static frontend build serving.
- Added Kraken daily candle backfill/bootstrap modules under
app/hey_lisa/market_data. - Added the first Strategy Lab JSON language, validator, generic backtester, preset periods, precompute storage, and example strategies.
- Added strict Strategy Lab validation for allowed fields, forbidden live-trading inputs, supported market/timeframe, portfolio, execution, rules, and constraints.
- Added local Strategy Lab routes and APIs for strategy research workflows.
Changed
- Set the active app safety boundary to localhost, public market data, SQLite, and read-only backtests.
- Set the local app API posture to read-only Strategy Lab workflows with public docs and OpenAPI disabled.
- Seeded BTC daily data from a local Kraken archive first, then used best-effort REST top-up with app-state reporting.
Verification
- Added the first pytest coverage for app creation, CLI commands, configuration, DB setup, Kraken/backfill behavior, strategy validation, and strategy backtests.