Skip to content

v3.27.1

Choose a tag to compare

@osauer osauer released this 23 Oct 11:31
· 203 commits to main since this release

Canary — portfolio, risk and order tools for Interactive Brokers

Canary runs locally with TWS or IB Gateway, providing portfolio monitoring, market analysis, risk checks, performance review and order management. Order submission requires the trading build and its approval checks. Standard downloads and MCP remain read-only.

New in v3.27.1

Canary keeps option quantities and underlying position capacity reserved while
an exercise is unresolved. The human-only reconciliation command
requires a matching IBKR statement record, updated holdings and confirmation
that the exact request is fully resolved. Uncertain requests stay blocked.
Older exercise requests without the required record remain blocked; this
command cannot clear them.

Existing trading limits are unchanged. Standard binaries and all MCP tools
remain read-only.

Install

For the standard read-only CLI and local MCP server:

curl -fsSL https://raw.githubusercontent.com/osauer/canary/main/install.sh | sh

For Claude Desktop, download canary.mcpb from the assets below. For order submission, choose a canary-trading-v3.27.1-* archive and follow the trading guide and security guidance.

Requires a local TWS or IB Gateway session on macOS, Linux or Windows through WSL. See the installation guide for setup, signature verification and other MCP clients.

  • Go module and source-built CLI: product v3 and later ship through the signed installer and release assets above. The public Go module remains on its maintained v2 line; go install github.com/osauer/canary/v2/cmd/canary@latest installs the newest v2 release, not this product release.

Detailed changes

Fixed

  • Budget reductions exclude locked holdings while still counting their exposure. Automatic budget reductions recheck the keep list before sending and stop if it cannot be read.
  • Selling a holding cannot cancel an attached protective stop while its entry is still unfinished, including after a partial fill.
  • Changing a partly filled order preserves the requested remaining quantity when converting to IBKR's total quantity. A fill arriving during review invalidates the change before sending.
  • Automatic strategy pricing requires current, live quotes during each leg's trading session. Delayed, frozen or old quotes cannot authorize an automatically priced order.
  • Pending exercises reserve capacity across restarts and block competing orders, including combo legs and unacknowledged orders. A fill notification alone cannot free capacity before holdings reflect the exercise.
  • Exercise recovery consumes matching broker evidence only once and refuses incomplete or ambiguous evidence. CLI help, JSON errors and documentation explain how to inspect unresolved requests and reconcile a completed exercise.
  • EUR bill quantities now use IBKR's units of EUR 1,000 face value, keeping cash-sweep sizing, previews and holdings valuation consistent.
  • Missing IBKR order-preview figures remain unknown instead of becoming zero. A commission-only broker preview can bound the fee when supplied in the cash currency with no commission range.