Releases: memoryfraction/Quant.Infra.Net.Pro-Public
Release list
Quant.Infra.Net.Pro.Web.CharleSchwab
Fix: Settings page now correctly navigates to Dashboard after saving Schwab credentials
Problem: On macOS and Linux, after entering Schwab API credentials (AppKey, AppSecret, AccountNumber) on the Settings page and completing the OAuth login flow, the application would return to the Settings page instead of proceeding to the Dashboard. This prevented users from completing the initial setup and accessing the trading dashboard.
Resolution: The post-authentication flow now properly directs users to the Dashboard after saving credentials and completing Schwab authorization. The end-to-end workflow — Settings → Schwab authorization → Dashboard — is now seamless on all platforms.
Quant.Infra.Net.Pro.Web.CharleSchwabIntegration
Fix: Cross-platform interactive authorization—replaced the system browser with Playwright to resolve Firefox/dconf authorization failures under Linux sudo.
Key changes:
- Added
SchwabInteractiveAuthService: Uses Playwright Chromium (visible window) to complete the initial OAuth authorization, eliminating reliance on the system browser. - Added a "Quick Authorize" button to the Sign-In page.
Program.cs: Skipped automatic browser launching viaProcess.Starton Linux (to avoidsudo+ snap dconf issues).SignInControllerfixes: Changed "fire-and-forget"Task.Runtoawait; changedHttpContext.RequestAbortedtoCancellationToken.None.- Added status banners to the Dashboard for "Unauthorized" and "Authorization Expiring Soon" states.
Quant.Infra.Net.Pro.Web.CharleSchwab
Quant.Infra.Net.Pro v1.5.4
This release fixes the /Rebalance account-value basis so portfolio percentages and suggested rebalance actions align with Charles Schwab’s Total accounts value view.
What Changed
- Fixed rebalance calculations to use Charles-style Total accounts value instead of the previously mapped
NetLiquidateValuewhen they differ. - Included cash and money market positions consistently in the rebalance basis.
- Fixed Target Portfolio rows so
Value,Current %,Drift, andActionshow calculated data instead of always staying at$0,0%, or—. - Updated account-level
Current %andDriftto align with Charles% of Acctbehavior. - Allowed
Rebalance %/ core allocation to be set to100%when no free allocation is desired. - Updated in-app version history and README to
1.5.4.
Why It Matters
Previously, accounts holding cash or money market positions such as SWVXX could show incorrect rebalance percentages because the calculation basis excluded part of the Charles account value. This could make target allocations appear overly large and produce incorrect sell/buy suggestions.
Validation
dotnet build --no-restorepasseddotnet test --no-buildpassed- 58 tests passed
Quant.Infra.Net.Pro.Web.CharleSchwab
This release focuses on financial compliance logging hardening and safer error handling.
Key improvements:
- Added centralized sensitive-data redaction for logs and user-facing error surfaces
- Stopped emitting OAuth authorization codes, token fragments, and token refresh response bodies in normal logs
- Removed account value amounts, order identifiers, and cookie storage paths from routine operational logs
- Replaced raw exception messages in API errors, redirect query strings, and Blazor error banners with safer generic messages
- Updated version history and documentation to reflect the new compliance safeguards
Result:
Reduced risk of leaking financial or credential-sensitive information through local logs, API responses, browser history, screenshots, or support captures
Quant.Infra.Net.Pro.Web.CharleSchwab
✨ New Features
Options API (OptionsController) — 3 Swagger-documented endpoints:
GET /api/v1/options/chain/{symbol} — Real-time option chain with full Greeks (Delta, Gamma, Theta, Vega, Rho, Implied Volatility). Supports contractType (CALL/PUT) and strikeCount filters.
GET /api/v1/options/history/{symbol}?download=csv — Historical OHLCV price data for any option OCC symbol (e.g., AAPL_{expiry}_{strike}C00). Returns JSON by default; append ?download=csv for a downloadable CSV file. Supports minute/daily/weekly/monthly frequency.
POST /api/v1/options/history/batch — Batch download historical OHLCV data for up to 50 option symbols in a single request. Returns a downloadable JSON file.
All endpoints are fully documented in Swagger UI at /swagger.
🛠️ Code Quality
Fixed XML doc warnings in AccountManager, LicenseTelemetryService, and RebalanceService (missing/broken param tags, missing bilingual Chinese/English comments)
Added bilingual Chinese/English XML comments to the AccountManager class and constructor
Quant.Infra.Net.Pro.Web.CharleSchwabIntegration
This release focuses on reliability, safety, compliance messaging, and user-visible product polish for the Charles Schwab local trading gateway.
Highlights
-
Restored the global bottom-right version badge.
- The badge now links to the in-app version history page.
- The current version is read from the application assembly instead of being hard-coded.
-
Updated the in-app version history.
- Added recent release entries for v1.4.6, v1.4.7, and v1.4.8.
- The version history page now reflects the real current application version.
-
Added Schwab-aligned compliance wording.
- Clarified that the product is intended for Schwab Individual Developers using their own Schwab brokerage account and their own approved Schwab Trader API credentials.
- Added self-directed trading, non-advisory, and user-responsibility language across onboarding, settings, EULA, README, and license text.
- Added a US financial compliance checklist for product, support, marketing, and documentation boundaries.
-
Strengthened auto-execution safeguards.
- Auto execution now requires an explicit risk acknowledgement.
- External positions are treated as manual instructions and are not submitted automatically through Schwab.
- Rebalance messaging now better separates Schwab auto actions from external manual actions.
-
Improved test compatibility and build health.
- Updated license telemetry tests to match the current
LicenseTelemetryServiceconstructor. - Full solution tests now pass: 50 tests passed, 0 failed.
- Updated license telemetry tests to match the current
Notes
This release does not provide investment advice, legal advice, tax advice, financial planning, brokerage, custody, fiduciary, or discretionary asset-management services. All trading strategies, symbols, allocations, thresholds, and execution choices remain user-configured and self-directed.
Validation
dotnet buildpassed.dotnet test src\Quant.Infra.Net.Pro\Quant.Infra.Net.Pro.sln --no-restorepassed.- Test result: 50 passed, 0 failed.
Quant.Infra.Net.Pro.Web.CharleSchwab
Technical Requirements & Bug Reports Resolved
1. Loading Masks for Time-Consuming Communication
All time-consuming communication/API requests currently only display prompt messages. They should be updated to use a loading mask (overlay).
1.1 Display an appropriate loading message, e.g., "Communicating, please wait patiently. Do not close the software." At the same time, user modifications must be disabled during this period.
1.2 Utilizing a loading mask will effectively prevent users from making unauthorized changes during execution.
2. Multi-Asset Rebalancing Notification
If the Multi-Asset Rebalancing strategy is set to manual trigger, an email notification should be sent whenever a rebalancing event is triggered.
3. [Bug] Inactive Buttons in Multi-Asset Rebalancing
In the Multi-Asset Rebalancing module, clicking the Add, Import, or Export buttons results in no response.
4. [Bug] Inactive Calculate Button
In the Multi-Asset Rebalancing module, clicking the Calculate button results in no response.
Quant.Infra.Net.Pro.Web - V1.4.5
Quant.Infra.Net.Pro
Restart after the lost of Internet Automatically.
Quant.Infra.Net.Pro.Web.CharleSchwabIntegration
Increased free trial to 90 days in this version
