Versão
4.9.8
- Melhorou
Platform
BREAKING: From 25 October 2026 the published version is the Obermind Platform version (year.month.release in that month, starting 2026.10.1). Every app in a deployment shares that number. The Obermind Framework (OberMind.dll only) keeps its own version, 4.9.8.0 until a breaking Framework change, so existing strategies and algos keep loading.
- Adicionado
Trading
Edgewater FIX 4.4 taker on Obermind Stream against the Edgewater Vision FIX specification 2.0, Obermind provider id 45 (OberMind.EW). Separate quote and order sessions: the quote logon resets sequence numbers (141=Y), the order logon keeps them (141=N) and runs as a non-stop session. Quotes, NewOrderSingle, cancel and replace, with time in force Day, GTC, IOC, FOK and GTD. Orders can be dealt in base or term currency; term fills are divided by the contract factor.
- Adicionado
Trading
Added instrument types NDF (18) and Forward (19); existing type numbers are unchanged. An alt id with a tenor suffix such as USD/KRW-1M is sent as 55=USD/KRW and 63=1M, with 167=FXFWD for Forward and 167=FXNDF otherwise. A hyphen that is not a tenor (1M, 2W, 10D, 1Y) stays on tag 55. Spot symbols send neither tag 63 nor tag 167.
- Adicionado
Trading
Added good-till-date orders to the user order ticket on the trading terminal and on mobile. GTD requires an expiry in the future, which is normalised to UTC and sent as ExpireTime (tag 126). Venue time-in-force rules now include provider 45, which accepts Day, GTC, IOC, FOK and GTD and falls back to GTC.
- Adicionado
Admin
Added Dash Providers > Edgewater for venue conformance: subscribe and hold a symbol, release, logout, base or term dealt currency, an order form, an order with no symbol, cancel working orders, and cancel a closed or unknown order id. The unused CQGWebAPI provider moved from id 45 to id 98. FIX OrderCancelReject (35=9) now treats OrderID (37) and OrdStatus (39) as optional, so an unknown-order reject that omits them is no longer session-rejected.
- Melhorou
Trading
OneZero taker (provider id 66): tag 1 (Account) is always sent on NewOrderSingle, from the order account or the provider Account setting (UAT when empty). SenderSubID (50) carries the execution command's originator and Text (58) is passed through. MDEntrySize on bid, offer and trade is divided by Instrument.Factor before top of book, Level 2 and trade prints are stored. Indicative quotes are dropped. Dash adds Conformance and Inquiries tabs to the OneZero provider page.
- Fixado
Trading
Fixed Level 2 flickering and showing venue units instead of lots in the trading terminal and the mobile instrument overview. Level 2 and trade-print subscriptions are no longer dropped when they reach the server before the page-level tick subscription. Quotes without an exchange timestamp no longer carry a year-1 exchange time.
- Melhorou
Trading
The trading terminal market data panel adds a status bar with connection state, heartbeat round-trip and server clock with UTC offset, and a Performance chip that shows the instrument overview (live price, bid, ask, spread, day range, periods) at the top. A searchable instrument picker is used in the instrument header, Level 2 and the trade sheet. The instrument-list toolbar now moves with the list while scrolling and returns on scroll up.
- Adicionado
Trading
MT5Synced now reads each linked login's MetaTrader 5 group on connect and about every 30 minutes and stores it on the external OMS link. Dash Accounts > OMS shows that live group instead of the configured default, so a login moved in MetaTrader 5 Administrator is visible within about a minute. Netting or hedging is set by the login's MT5 group, not by the bridge.
- Adicionado
Admin
Added instrument catalog download and upload on Dash Instruments, as an Excel workbook or a zip of CSV files, plus a sample file. Upload previews every row and applies only when all rows pass. Rows match on Id and the symbol must equal the stored one; a blank Id creates an instrument; rows not in the file are left unchanged; Deleted sets the deleted flag; alt ids are upserted per provider. Changes apply through Obermind Stream in batches of 200 without a restart.
- Adicionado
Admin
Added provider symbol sync on Dash Instruments. It reads the FinancialsAPI lists (provider 68) for stocks, ETFs, indices, commodities, crypto, forex and mutual funds, and the crypto venue asset pairs (provider 70) for Crypto and Spot crypto. Matching uses the existing alt id, the platform symbol, or symbol plus exchange suffix, and skips ambiguous hits. Only alt ids are written; instruments are not created and names are not matched.
- Fixado
Admin
Dash close position now resolves the account owner and applies the user-scoped close_position check, so brand and configuration-group limits apply. New UUAC operations for Operations Manager and Operations Director: send_order (Create Order, route picker) and manage_stream_session (Init User, Logout, Reload Risk Parameters, Reload Algo Items). close_position now only closes positions and cancels close-out orders.
- Melhorou
Admin
Account Details Deposit and Withdraw follow the deposit and withdraw permissions, matching the server. The global-permission fallback after user-scoped account checks and logged-on account logout was removed.
- Adicionado
Obermind Web
Sign-in, registration, account recovery, two-factor, PIN and sign-out pages moved from server-rendered pages into the user app at the same URLs, backed by a JSON identity API (/api/v1/identity). The admin setting UseFrontendAuthPages switches back to the previous pages under /legacy/* for one release. PIN entry is verified server-side with a failure counter. The server selector appears on sign-in pages, the navigation drawer and Profile.
- Fixado
Obermind Web
Fixed parallel /api/v1/auth calls ending a newly created session. The country check now fails closed. Return URLs are validated on every sign-in and sign-out path, and strong customer authentication redirects keep the original path and query.
- Adicionado
Platform
Added a service-unavailable modal with a reload guard and a route error boundary to the user app, and a per-brand maintenance page (app_offline) written by the MaintenanceOn and MaintenanceOff scripts. While the app loads, a flashing logo replaces the connection status rows.
- Fixado
Mobile
Biometrics now sign in first whenever enabled, then the app PIN when strong customer authentication is on, and a stored PIN lets the sensor unlock the in-app PIN modal. Biometric buttons show on first sign-in when the device kept them after a normal logout. Fixed mobile sign-in returning a server error while issuing the quick sign-in token; sign-in now continues without it. Fixed the keyboard offset on sign-in pages.
- Fixado
Mobile
Fixed the footer sitting under the Android navigation bar after a cold start: an all-zero inset reply is ignored and retried until the bottom inset arrives, and a later zero does not clear it. Fixed the language and country picker sheets resizing on mobile.
- Fixado
Admin
Saving Other servers in Admin Settings now updates the default brand's server links, which every server switcher reads. Re-saving with no changes repairs a stale link.
- Adicionado
Payments
Enhanced payment service provider framework. Bank-transfer deposits and withdrawals go straight to Obermind Stream portfolios, with no payment account or Payments role. Withdrawals are debited at request after an equity check and refunded on decline or failure; deposits are credited on approval, and amounts can be amended. Fees use a fiat or settlement basis, house or client bearer, and per-rail rules. All settings are off by default.
- Adicionado
Payments
Dash Application Settings adds Payment service providers with per-provider settings, admin tasks to approve, amend or decline transfers, and Mark paid / Mark failed (process_payments). Per-rail minimums (direction, rail, minimum, message) override the provider minimum. A deposit that arrives without a request asks the client to choose the portfolio, but only when the client can do that in the app.
- Adicionado
Wallets
Added a Transfer hub (/main/wallets/transfer) and a Transfer money button on home. Bank Deposit shows instructions, a conversion estimate and a deposit request. Bank Withdrawal adds a bank account picker and a stepped add-account form with a details check and PIN or one-time code. IBAN entry is validated for format, country length and mod-97.
- Adicionado
Platform
Added home action items: tasks the user must complete in the app, such as choosing the portfolio for a deposit, appear in an Important section above the wallet cards together with the notification prompt. An item opens the same screen as its push notification and disappears when the task is done.
- Adicionado
Payments
Settlement-currency payouts are quoted before sending (GET /api/v1/payments/quote): amount the beneficiary receives, debit, fee, rate and minimum. The minimum payout (default 5 in the settlement stablecoin, including fee) and whether third-party beneficiaries are allowed (default off) are set in Dash. Payment records, transaction details, the admin email and the statement PDF show the fiat amount, fee and rate.
- Adicionado
Payments
Payout beneficiaries now require an address and are registered as the customer's own account when the name matches. With third-party payments off, a personal account can add only an individual and a business account only a company, and the form prefills the user's own name. Beneficiaries awaiting approval show Awaiting approval or Not approved and cannot be paid until active. Users get email and push on payout start, review, completion and failure.
- Fixado
Payments
Payment-account balances are now counted from transaction history and can go negative. Withdrawals made outside the platform are debited, and only the settlement coin moves the balance. Importing a customer stores history without emailing the user for each row. A withdrawal the safe balance cannot cover is held for Finance review. Dash adds a balance repair dialog for Operations Director and Super Admin.
- Fixado
Payments
Each virtual account now keeps its own currency, rail, account and routing numbers, bank country and address, and holder. Receive shows one card per currency and rail, and the account IBAN no longer changes when a second currency is approved. Fixed empty payment history caused by requesting the transaction list without an account id. Dash shows the stored transaction hash, applied credit, exchange rate and beneficiary bank fields.
- Fixado
Payments
Users outside the payment-account allow list get a clear message and an empty list instead of a server error. Completing verification grants the Payments role. The From line in transaction details is hidden only for settlement-currency payouts. A payout to a EUR or USD beneficiary is converted from the settlement balance and does not need an account in that currency.
- Adicionado
KYC
The payment-account verification requirement can be None, Bank transfer or Whole app; existing deployments stay on None, which does not lock the app. Individuals complete it on the existing verification screen, including in payment service provider mode. A passed verification level can be shared automatically when the named levels pass, or sent later from Dash.
- Fixado
Investments
Fixed investing from an account in a different currency. The server quotes the source debit and rejects the request before creating an account when it exceeds equity, and the invest screen blocks the same case. A failed exchange removes the link when the new account is still empty, otherwise it keeps the link and alerts support. Investor, strategy manager and payments get the debited and credited legs on success and failure.
- Fixado
Platform
Fixed market data capture silently stopping after hours or days. ObermindDB's series trim (DataSeries.RemoveRange) was rewritten: it could corrupt cursors, delete data inside the retention window and drop the job's connection. The Market Data job now reconnects to ObermindDB with backoff, buffers capture while it is down, and sends one alert per outage. ObermindDB must be redeployed for the fix.
- Fixado
Platform
Fixed unbounded memory growth in the Market Data job caused by per-row cancellation registrations on a process-lifetime token. Background loops now use a per-cycle token. Clears advisory GHSA-98g6-xh36-x2p7. Every app that uses the data access library, including Obermind Stream and ObermindDB, must be redeployed.
- Fixado
Platform
Fixed new deployments created from the full database scripts: the statistics checkpoint table, legacy user profile columns, the payment confirmations table, partner rebate columns and a nullable app host name were missing or wrong. The default administrator and system user emails are now seeded. A guarded repair script covers databases already created from an older script.
- Melhorou
Research
User chat and Ask Obermind: a general research reply stays short, with two news rows and two events per calendar section. Full news, calendars and rate lists open when asked for or through More. Questions about Treasury, rates, country profiles or GDP open the matching Research panel in the answer. The transcript no longer pins the last question to the top while a reply streams.
- Adicionado
Platform
Chat on licensed deployments now sends model completions to the platform relay with a registered deployment key. Prompts, tools and deployment data stay on the deployment, and message text is not stored on the relay. Usage is recorded monthly per deployment host, brand and audience for invoicing. Dash Sales manages deployment keys and token usage by brand on origin servers only.
- Adicionado
Admin
Ask Obermind in Dash can list the published API catalog, read one operation's parameters, and search operator documentation with source code and secrets removed.
- Melhorou
Research
Country-profile leader portraits are reused by content hash instead of being downloaded on every sync, and unreferenced portraits are deleted after six hours. News images are downloaded only when a new article is stored.
- Fixado
Reporting
PDF statements in the mobile app open the native share sheet with a public PDF link instead of a failed device download. Every portfolio and payment statement can also be emailed to the signed-in user.
- Melhorou
Platform
Published User API and Admin API docs use a short action title in menus and show the method and full path on the detail page. Response examples are built from the declared return type, and actions that had no declared response now declare the type they return.