Skip to content
Cirrus home
Sign in

Changelog

Every change you can see, newest first. Additive changes never break a client that ignores unknown fields; breaking ones are announced before they ship.

  1. Additive

    internal: Fyers conformance pack (scaffolded)

    No change for users (not in the API). A new fyers broker pack at stage scaffolded: its capability claims, fingerprint / redaction fields and empty types.json, errors.toml and status_map.json (nothing handled yet; no existing pack, recording or expectation changes). The Fyers adapter it describes is off unless FYERS_ENABLED=true.

  2. Additive

    internal: Alice Blue conformance pack scaffolded

    No change for users (not in the API). A new aliceblue pack at stage scaffolded (empty types.json, errors.toml and status_map.json) for the new Alice Blue (ANT A3) adapter, which is built only when ALICEBLUE_ENABLED=true (default off: Alice Blue accounts stay unsupported, as before). No existing pack changes.

  3. Additive

    internal: more Pocketful and first Motilal Oswal live trading recorded

    No change for users (not in the API). The broker conformance corpus gains the replies from today's live trading runs on Pocketful (S2372: fills, positions, trades, brackets) and Motilal Oswal (EBOM053637: far LIMIT place / cancel, fills, positions, trades, stream frames), and the scenarios that passed.

  4. Additive

    modifying a finished order is refused before the broker

    PATCH /v1/orders/{order_id} on an order the order book already shows finished (filled, cancelled, rejected or expired) is now refused with the existing order_not_open (409), as cancel already was; nothing is sent to the broker. Before, the modify was sent and the broker's answer returned (Pocketful answered HTTP 500, live 2026-10-05). The 409 is now listed for the operation, and the order_not_open description names modify as well as cancel. No error code or enum value is added.

  5. Additive

    a waiting Pocketful stop-loss order is TRIGGER_PENDING

    A Pocketful SL / SL-M order that has not triggered (nothing filled) is now reported TRIGGER_PENDING in order responses, webhooks and the stream, as other brokers report it; it was OPEN. No value is added (TRIGGER_PENDING already exists). Internal: the broker conformance corpus gains Pocketful's first live trading replies (orders, fills, trades, cancels, modifies, GTTs, brackets and their errors), today's passes, and three error classes; the catalogue gains broker-agnostic checks from the run.

  6. Additive

    internal: conformance passes recorded per pack

    No change for users (not in the API). Each broker pack gains passes.json: the live runs that passed (run id, account, date), which credit their scenarios when a run records nothing new. Motilal Oswal 8, Tradejini 8 and Upstox 7 scenarios passed live today (read-only and exchange-shut).

  7. Additive

    internal: a leaked Tradejini recording revoked

    No change for users (not in the API). A live-run recording that held an account record's values (tag, static IP, port, balance) is removed and lets a recording listed there (with a reason) be deleted, never edited.

  8. Additive

    internal: Motilal Oswal order rows and stream frames recorded

    No change for users (not in the API). Recordings from the Motilal Oswal c.closed_place live run: the order-book envelope with errorcode and message, its order rows (orderstatus "Error") and the stream's order-changed frames (orderstatus "SENT" and "ERROR"), now handled types.

  9. Additive

    internal: conformance catalogue and pack follow-ups

    No change for users (not in the API). r.stream_connects also passes on a stream the OMS reports up; c.closed_place also passes when the broker accepts the order and then rejects it. c.amo_lifecycle is skipped for Motilal Oswal and Tradejini (no after-market orders yet). Motilal's orderinitiatorid is redacted. Recordings of the passing Tradejini c.closed_place and Upstox r.stream_connects runs.

  10. Additive

    internal: first live runs on Motilal Oswal, Tradejini and Upstox

    No change for users (not in the API). Live-run accounts for Motilal Oswal (EBOM053637, full), Tradejini (HHS003, full) and Upstox (8BAMR3, read only); recordings from the read-only and market-closed runs; Tradejini stream packets PING (16), MARKET_STATUS (14) and EVENTS (15); Motilal's "ValuePlus Orders Not Allowed In This Session" (100048) classed market_closed; Upstox's first account record, margins, holdings and stream authorisation.

  11. Additive

    internal: Motilal Oswal and Tradejini production replies recorded

    No change for users (not in the API). The broker conformance corpus gains the first production replies from a Motilal Oswal and a Tradejini account (account records, empty and filled books, margins, stream acks and what we send on the streams), promoted from the unhandled list. Their expectations show three fixes: a Tradejini empty book is an empty answer (it was a refusal), Tradejini holdings are read (they were always empty) and Motilal position P&L uses the row's LTP without a live quote.

  12. Additive

    internal: Paper account records recorded

    No change for users (not in the API). The broker conformance corpus gains the two Paper account-record shapes production sees (session status connected and refreshed), promoted from the unhandled list.

  13. Additive

    an order the broker says to "check order book" for is confirmed there

    When a broker refuses an order but its text says the order may exist anyway (5paisa: "NEST Gateway timeout - please check order book"), POST /v1/orders now reads the broker's order book for it (up to three reads, a few seconds) before answering. Listed: the slice is accepted with the broker's order id. Not listed: rejected with the broker's message, as before. Order book unreadable: unknown, settled from the order book like a timeout. No field, enum or status code is added.

  14. Additive

    internal: 5paisa's holiday order answer recorded

    No change for users (not in the API). The broker conformance corpus gains 5paisa's answer to an order on a trading holiday ("NEST Gateway timeout - please check order book"), classed outcome_unknown.

  15. Additive

    internal: 5paisa stream subscribe recorded

    No change for users (not in the API). The broker conformance corpus gains what the OMS sends to subscribe to 5paisa's order stream, recorded live on 54183135.

  16. Additive

    5paisa live order updates on every feed server

    5paisa accounts whose login names a feed server other than A / B / C (seen: "O") now get live order updates on 5paisa's default feed host, as 5paisa's own SDK does. Before, they had none and relied on polling. No request, response or enum changes.

  17. Additive

    5paisa accounts with no orders, positions or trades read as empty

    A 5paisa account with an empty order book, positions or trade book now reads as empty. Before, 5paisa's "No Order found for this Client." / "No record found." / "No Trades found for this Client." answers made those reads fail and retry, so the account's books never refreshed. No request, response or enum changes. Internal: the broker conformance corpus gains 5paisa's first production replies (account record, empty books, holdings, margins).

  18. Additive

    internal: Kite's stream refusal recorded

    No change for users (not in the API). The broker conformance corpus gains Kite's 403 refusal of the order stream (the Kite Connect plan in use has none; the engine polls), as the pack already expected.

  19. Additive

    internal: Kite after-market order lifecycle in the broker corpus

    No change for users (not in the API). The broker conformance corpus gains a Kite after-market order placed, modified and cancelled live, Kite's refusals of such an order on the regular path (order_not_found, invalid_field), its kt-oms gateway refusal (outcome_unknown), and Pocketful's holiday-rejected orders as its order book lists them.

  20. Additive

    Kite after-market orders can be modified and cancelled

    PATCH and DELETE /v1/orders/{order_id} on a Zerodha order that Kite turned into an after-market order (placed while the market is shut) now reach it; before, Kite refused them ("Error parsing response (kt-oms)"). No request, response or enum changes. Internal (not in the API): the broker conformance corpus gains the Pocketful and Zerodha account records, first order refusals (Pocketful's trading-holiday refusal classed market_closed, Kite's circuit-band refusal invalid_price_or_qty) and a stream ending.