Skip to content

calesthio/OptionsCanvas

v0.1.5 Bugfix

This release fixes issues for SREs watching stability and regressions.

Published 8d Self-Hosted
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

0dte algorithmic-trading alpaca charting day-trading fintech
+9 more
flask lightweight-charts local-first options options-trading python self-hosted trading-platform vanilla-js

Summary

AI summary

Day P&L updates immediately after a close and chart rendering works correctly when switching symbols.

Changes in this release

Feature Low

/api/day_pnl exposes separate realized_pnl and unrealized_pnl fields in response.

/api/day_pnl exposes separate realized_pnl and unrealized_pnl fields in response.

Source: granite4.1:30b@2026-05-29-audit

Confidence: low

Bugfix Medium

/api/day_pnl now queries SQLite journal_entries table for accurate P&L on close.

/api/day_pnl now queries SQLite journal_entries table for accurate P&L on close.

Source: llm_adapter@2026-05-29

Confidence: high

Bugfix Medium

ChartManager.setSymbol() re-fits price axis after symbol switch, preventing blank charts.

ChartManager.setSymbol() re-fits price axis after symbol switch, preventing blank charts.

Source: llm_adapter@2026-05-29

Confidence: high

Full changelog

Two visible bugs fixed after using the platform end-to-end through a real close + symbol-switch flow.

What's fixed

Day P&L now updates on close

/api/day_pnl read from journal_dir/<date>/trades.json — but no code path in v0.1.x writes to that file. Realized P&L is recorded to the SQLite journal_entries table (via the per-close auto-recompute we shipped earlier today). The endpoint now queries the right place, so Day P&L updates immediately after a close instead of staying at $0.

The response also now exposes realized_pnl and unrealized_pnl as separate fields if you want to surface the breakdown in the UI later.

Chart no longer blank after switching symbols

ChartManager.setSymbol() called timeScale().fitContent() to fit the new symbol's bars — but that only fits the time axis. The price axis stayed at the previous symbol's range. Switching from SPY (~$750) to AMZN (~$268) left the chart's price scale at 744-755 and every AMZN bar rendered off-screen. Added priceScale('right').applyOptions({ autoScale: true }) after fitContent() so the price axis re-fits.

How to upgrade

git pull
# restart the launcher, refresh the browser tab

Verified

  • Closed a SPY 751P position → Day P&L immediately shows the realized P&L (no manual journal-file step needed)
  • AAPL → AMZN → SPY symbol switches all render bars at the correct price range
  • All v0.1.1 — v0.1.4 fixes intact (CSRF, gevent, position auto-import, 0 DTE)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track calesthio/OptionsCanvas

Get notified when new releases ship.

Sign up free

About calesthio/OptionsCanvas

All releases →

Related context

Related tools

Earlier breaking changes

  • v0.1.1 External scripts must read and include the CSRF token in X-CSRF-Token header for POST/PUT/PATCH/DELETE calls.

Beta — feedback welcome: [email protected]