Releases: Sinotrade/scone
Releases · Sinotrade/scone
Mobile 1.0.0
[1.0.0] - 2026-01-16
🚀 Features
- Implement v2 store modules for multi API key management
- Implement account merging utility and refine feature scope
- Import v2 store
- CaStore, positionStore, tradeStore, watchlistStore use v2
- Connection counter for sessionManager
- ServiceStore add primarySessionId_v2
- AddEnabledAccount and removeEnabledAccount receive array
- Implement CONNECT_AND_LOGIN for session connection management
- Implement CONNECT_AND_LOGIN and exclude authed from persistence
- Implement AccountManagement UI with tab navigation
- Implement session migration for multi-session architecture
- AccountManagement add login functionality and fix v2 error toast display
- Implement NavigationStack component with slide animations for Settings
- Redesign ApiKeyDetail UI with Settings-style layout and improved UX
- Implement multi-API key management with certificate support
- ApiKeys improve session name editing and temp session cleanup
- Implement auto-login for additional sessions after primary login
- Implement multi-session certificate auto-activation
- ApiKeyDetail add auto-login toggle and certificate auto-fill
- Refactor ApiKeyDetail to use real-time storage reads and fix toggle states
- Remove connecting intermediate state from AddSessionModal
- Implement AccountManagement UI with dynamic loading optimization
- Migrate Setting components to v2 store and simplify UsageQuery
- Implement multi-account support for PortfolioInfo component
- Add multi-account support for position/status watchlists
- Implement form data persistence for AddSessionModal
- Implement QR code scanning for login credentials and fix session management
- Implement account selector for desktop portfolio
- Implement group account management and fix concurrent order issues
- Enhance account selector with group support
- Auto-update clientName when reconnecting to different site
- Add transaction amount display to LadderPanel for securities
- Aggregate settlement data by date and T value in all accounts mode
- Position and Status display username in account sections
- Implement iOS resume verification flow with batch token validation
- Quick login feature for additional API keys
- QR code generator link to API keys management page
- Implement delete API key status tracking with store-based flow
- Complete account visibility refactor with userEnabledAccounts
- Order presets store
- Order presets management
- Improve order error messages
- OrderPresets edit functionality
- Add timestamp tracking and sorting for OrderPresets
- Auto-save for order presets on navigation
- Double clientName update on reconnection
- Implement intelligent API Key update strategy and fix sessionId mismatch bug
- App resume login issue for manually logged out sessions
- Support full_code field in futures/options callbacks
- Display status message in TradeRow for failed orders
- Auto-trigger UPDATE_STATUS for presubmitted orders and fix cancel handling
- Differentiate simtrade status display in LadderPanel
- Extract AccountSelector component and add trade confirm toggle to LadderPanel
- DisconnectScreen overlay for mid-session disconnects
- Add trade confirm toggle to Position offset panel
- Position display account position summary
- Per-account fetch tracking
- Auto re-enable group when members reconnect
- Block CA activation when certificate is expired
- Handle API key production permission errors gracefully
- Add site info when not authed
- Account selector with subLabel display and sorting
- Add edit/browse mode toggle for Desktop Watchlist
- Sync autoLogin setting from apiKeysStore to sessionAuth_v2
- Add multi-key IP declaration warning
- Implement batch loading for FETCH_KBAR to improve Watchlist performance
- Add position refresh with loading feedback and group account support
- Implement store migration system for version upgrades
- Enable navigation when clicking watchlist row icon
- Add unsigned account warning and improve account management UI
- Add unsigned account warning and improve account management UI
- Temporarily hide sub-brokerage accounts
- Hide sub-brokerage accounts and adjust dropdown style
- Block API requests in App Store review mode
🐛 Bug Fixes
- Synchronize primaryApiKeyId and primarySessionId
- ApplyDeal remove accountKey dependency
- Connecting state change boolean to number
- UseConnection support multi session creation
- Sync primary session between store and SessionManager on app restart
- Prevent CA operations on temporary sessions
- Non-primary session login
- Token expiration handling with proper sessionId tracking
- Dynamic clientName mode for biometric reconnection
- Unify accountKey format and resolve trades_v2 key mismatch issue
- Prevent token expired re-login from clearing other session accounts
- Resolve batch import session connection race conditions
- Handle multiple session token expiration correctly
- Resolve batch import Session 2 connection timeout issue
- Implement cross-platform CSV template download for mobile devices
- Accumulate Build Information history in staging releases
- Prevent temp session disconnect on app background switch
- Improve token expiration handling for sessions without stored credentials
- Prevent disabled accounts from being used for trading
- Temp session login issue
- Auto-disable groups with disabled accounts
- Limit isTokenExpired check to primary session only
- Resolve concurrent session auto-login cancellation issue
- Resolve ghost connections after data clearing
- Resolve group order confirmation issue in both order panels
- Test
- Test authEpic
- Chart rendering issue caused by holiday period filtering
- State preservation issues on app resume
- Resolve "no expired connections" error when connections auto-reconnect
- Prevent duplicate accounts in store with final deduplication logic
- Resolve duplicate token expiration modals after app resume
- Resolve account name displaying as '--' due to state inconsistency
- Trigger re-login when session reconnects to site without clientName/token
- Preserve user preferences when auth reset to prevent secretKey deletion
- Enable auto-reconnect in SplashScreen after logout
- Prevent SplashScreen flickering on app startup
- Prevent empty token from being sent to backend
- Distinguish never-logged-in sessions from token-expired sessions
- SolaceService test
- Add timeout wait in updateProperty to prevent API auth failures
- Set authed to false when token expires to enable auto re-login
- Prevent error notifications for auto-triggered API calls to unauthenticated accounts
- Prevent unauthenticated accounts from displaying in UI and auto-validate persisted selections
- Prevent premature fetchUsage API calls during App resume with polling mechanism
- Resolve incorrect API key loading after logout
- Prevent order placement to wrong account during position closing
- Clear apiKeysStore and pfxPasswordsStore when primary user changes
- Enhance multi-session management and cleanup unused temp sessions
- Resolve token assignment issue during temp session migration
- SecretKey not loading issue in PasswordLogin
- Resolve site-switch login issues and secretKey loading
- Preserve session names after re-login with same account
- Handle delisted products in inventory display
- Prevent pfxB64 from accumulating multiple CA files
- DebouncedFetchPosition use accountKey
- Clean up orphan sessions to prevent navigation blocking
- Handle expired sessions without secretKey to prevent UI blocking
- Logout flow improvements
- Add lock mechanism to apiKeysStore to prevent secretKey loss
- Use session instance state instead of store state in RESUME_APP epic
- Resolve token being stored to wrong site after resume
- Prevent premature API requests during app resume
- Prevent duplicate accounts by serializing LOGIN events
- Block group orders when members have connection/auth/CA
- Session naming and login error handling
- Prevent false disconnect toast on app startup
- Add setErrorOnFail param to detect BatchImport login failures
- Sync autoLogin setting to apiKeysStore for attached sessions
- Await initializeStorage to prevent reading wrong SecureStorage key
- Detect historical data arrival and re-render charts correctly
- Show loading animation for temp session login
- Prevent secretKey loss after store migration
- Only display certificate file when data exists in pfxB64
- Skip PERMISSION_DENIED sessions in CA verification and bio auth
- Remove SET_PRIMARY race condition in serviceEpic CONNECT handler
- Align tutorial component layouts with actual UI components
- Delay authed state for App Store login to prevent watchlist timeout
- Disable LadderPanel access for App Store login mode
- Only clear primary session secretKey when unchecking remember password
- Prevent login stuck due to additional sessions without secretKey
- Stop login spinner when temp session login fails
- Prevent session name from being overwritten by race condition
- Add delay to ApiKeys list refresh to ensure storage write completion
- Resolve watchlist item removal visual bug with soft delete approach
💼 Other
- Update trade tests from develop
- 1.0.0
- 1.0.0
🚜 Refactor
- Extend SessionManager for multi-API key support
- Separate account-related logic from SessionManager
- Account stores
- Trade stores
- Position stores
- Ca stores
- Watchlist stores
- AuthEpic use v2 store
- ServiceEpic use v2 store
- AccountEpic use v2 store
- TradeEpic use v2 store
- WatchlistEpic use v2 store
- AuthStore replace apiKeyId to sessionId
- ServiceStore replace apiKeyId to sessionId
- AccountStore replace apiKeyId to sessionId
- CaStore replace apiKeyId to sessionId
- Service replace apiKeyId to sessionId
- AuthEpic replace apiKeyId to sessionId
- ServiceEpic replace apiKeyId to sessionId
- AccountEpic replace apiKeyId to sessionId
- TradeEpic replace apiKeyId to sessionId
- Store state rename
- SessionManager replace connectionCounter to sessionCounter
- Move isTokenExpired from statusSto...
Desktop 1.0.0
[1.0.0] - 2026-01-16
🚀 Features
- Implement v2 store modules for multi API key management
- Implement account merging utility and refine feature scope
- Import v2 store
- CaStore, positionStore, tradeStore, watchlistStore use v2
- Connection counter for sessionManager
- ServiceStore add primarySessionId_v2
- AddEnabledAccount and removeEnabledAccount receive array
- Implement CONNECT_AND_LOGIN for session connection management
- Implement CONNECT_AND_LOGIN and exclude authed from persistence
- Implement AccountManagement UI with tab navigation
- Implement session migration for multi-session architecture
- AccountManagement add login functionality and fix v2 error toast display
- Implement NavigationStack component with slide animations for Settings
- Redesign ApiKeyDetail UI with Settings-style layout and improved UX
- Implement multi-API key management with certificate support
- ApiKeys improve session name editing and temp session cleanup
- Implement auto-login for additional sessions after primary login
- Implement multi-session certificate auto-activation
- ApiKeyDetail add auto-login toggle and certificate auto-fill
- Refactor ApiKeyDetail to use real-time storage reads and fix toggle states
- Remove connecting intermediate state from AddSessionModal
- Implement AccountManagement UI with dynamic loading optimization
- Migrate Setting components to v2 store and simplify UsageQuery
- Implement multi-account support for PortfolioInfo component
- Add multi-account support for position/status watchlists
- Implement form data persistence for AddSessionModal
- Implement QR code scanning for login credentials and fix session management
- Implement account selector for desktop portfolio
- Implement group account management and fix concurrent order issues
- Enhance account selector with group support
- Auto-update clientName when reconnecting to different site
- Add transaction amount display to LadderPanel for securities
- Aggregate settlement data by date and T value in all accounts mode
- Position and Status display username in account sections
- Implement iOS resume verification flow with batch token validation
- Quick login feature for additional API keys
- QR code generator link to API keys management page
- Implement delete API key status tracking with store-based flow
- Complete account visibility refactor with userEnabledAccounts
- Order presets store
- Order presets management
- Improve order error messages
- OrderPresets edit functionality
- Add timestamp tracking and sorting for OrderPresets
- Auto-save for order presets on navigation
- Double clientName update on reconnection
- Implement intelligent API Key update strategy and fix sessionId mismatch bug
- App resume login issue for manually logged out sessions
- Support full_code field in futures/options callbacks
- Display status message in TradeRow for failed orders
- Auto-trigger UPDATE_STATUS for presubmitted orders and fix cancel handling
- Differentiate simtrade status display in LadderPanel
- Extract AccountSelector component and add trade confirm toggle to LadderPanel
- DisconnectScreen overlay for mid-session disconnects
- Add trade confirm toggle to Position offset panel
- Position display account position summary
- Per-account fetch tracking
- Auto re-enable group when members reconnect
- Block CA activation when certificate is expired
- Handle API key production permission errors gracefully
- Add site info when not authed
- Account selector with subLabel display and sorting
- Add edit/browse mode toggle for Desktop Watchlist
- Sync autoLogin setting from apiKeysStore to sessionAuth_v2
- Add multi-key IP declaration warning
- Implement batch loading for FETCH_KBAR to improve Watchlist performance
- Add position refresh with loading feedback and group account support
- Implement store migration system for version upgrades
- Enable navigation when clicking watchlist row icon
- Add unsigned account warning and improve account management UI
- Add unsigned account warning and improve account management UI
- Temporarily hide sub-brokerage accounts
- Hide sub-brokerage accounts and adjust dropdown style
- Block API requests in App Store review mode
🐛 Bug Fixes
- Synchronize primaryApiKeyId and primarySessionId
- ApplyDeal remove accountKey dependency
- Connecting state change boolean to number
- UseConnection support multi session creation
- Sync primary session between store and SessionManager on app restart
- Prevent CA operations on temporary sessions
- Non-primary session login
- Token expiration handling with proper sessionId tracking
- Dynamic clientName mode for biometric reconnection
- Unify accountKey format and resolve trades_v2 key mismatch issue
- Prevent token expired re-login from clearing other session accounts
- Resolve batch import session connection race conditions
- Handle multiple session token expiration correctly
- Resolve batch import Session 2 connection timeout issue
- Implement cross-platform CSV template download for mobile devices
- Accumulate Build Information history in staging releases
- Prevent temp session disconnect on app background switch
- Improve token expiration handling for sessions without stored credentials
- Prevent disabled accounts from being used for trading
- Temp session login issue
- Auto-disable groups with disabled accounts
- Limit isTokenExpired check to primary session only
- Resolve concurrent session auto-login cancellation issue
- Resolve ghost connections after data clearing
- Resolve group order confirmation issue in both order panels
- Test
- Test authEpic
- Chart rendering issue caused by holiday period filtering
- State preservation issues on app resume
- Resolve "no expired connections" error when connections auto-reconnect
- Prevent duplicate accounts in store with final deduplication logic
- Resolve duplicate token expiration modals after app resume
- Resolve account name displaying as '--' due to state inconsistency
- Trigger re-login when session reconnects to site without clientName/token
- Preserve user preferences when auth reset to prevent secretKey deletion
- Enable auto-reconnect in SplashScreen after logout
- Prevent SplashScreen flickering on app startup
- Prevent empty token from being sent to backend
- Distinguish never-logged-in sessions from token-expired sessions
- SolaceService test
- Add timeout wait in updateProperty to prevent API auth failures
- Set authed to false when token expires to enable auto re-login
- Prevent error notifications for auto-triggered API calls to unauthenticated accounts
- Prevent unauthenticated accounts from displaying in UI and auto-validate persisted selections
- Prevent premature fetchUsage API calls during App resume with polling mechanism
- Resolve incorrect API key loading after logout
- Prevent order placement to wrong account during position closing
- Clear apiKeysStore and pfxPasswordsStore when primary user changes
- Enhance multi-session management and cleanup unused temp sessions
- Resolve token assignment issue during temp session migration
- SecretKey not loading issue in PasswordLogin
- Resolve site-switch login issues and secretKey loading
- Preserve session names after re-login with same account
- Handle delisted products in inventory display
- Prevent pfxB64 from accumulating multiple CA files
- DebouncedFetchPosition use accountKey
- Clean up orphan sessions to prevent navigation blocking
- Handle expired sessions without secretKey to prevent UI blocking
- Logout flow improvements
- Add lock mechanism to apiKeysStore to prevent secretKey loss
- Use session instance state instead of store state in RESUME_APP epic
- Resolve token being stored to wrong site after resume
- Prevent premature API requests during app resume
- Prevent duplicate accounts by serializing LOGIN events
- Block group orders when members have connection/auth/CA
- Session naming and login error handling
- Prevent false disconnect toast on app startup
- Add setErrorOnFail param to detect BatchImport login failures
- Sync autoLogin setting to apiKeysStore for attached sessions
- Await initializeStorage to prevent reading wrong SecureStorage key
- Detect historical data arrival and re-render charts correctly
- Show loading animation for temp session login
- Prevent secretKey loss after store migration
- Only display certificate file when data exists in pfxB64
- Skip PERMISSION_DENIED sessions in CA verification and bio auth
- Remove SET_PRIMARY race condition in serviceEpic CONNECT handler
- Align tutorial component layouts with actual UI components
- Delay authed state for App Store login to prevent watchlist timeout
- Disable LadderPanel access for App Store login mode
- Only clear primary session secretKey when unchecking remember password
- Prevent login stuck due to additional sessions without secretKey
- Stop login spinner when temp session login fails
- Prevent session name from being overwritten by race condition
- Add delay to ApiKeys list refresh to ensure storage write completion
- Resolve watchlist item removal visual bug with soft delete approach
💼 Other
- Update trade tests from develop
- 1.0.0
- 1.0.0
🚜 Refactor
- Extend SessionManager for multi-API key support
- Separate account-related logic from SessionManager
- Account stores
- Trade stores
- Position stores
- Ca stores
- Watchlist stores
- AuthEpic use v2 store
- ServiceEpic use v2 store
- AccountEpic use v2 store
- TradeEpic use v2 store
- WatchlistEpic use v2 store
- AuthStore replace apiKeyId to sessionId
- ServiceStore replace apiKeyId to sessionId
- AccountStore replace apiKeyId to sessionId
- CaStore replace apiKeyId to sessionId
- Service replace apiKeyId to sessionId
- AuthEpic replace apiKeyId to sessionId
- ServiceEpic replace apiKeyId to sessionId
- AccountEpic replace apiKeyId to sessionId
- TradeEpic replace apiKeyId to sessionId
- Store state rename
- SessionManager replace connectionCounter to sessionCounter
- Move isTokenExpired from statusSto...
Desktop-Test 1.0.1
[unreleased]
🚀 Features
- Debug log tool for offline debugging
- Probe mechanism for resume verification optimization
- Enhance debug logger with dual storage and Sentry integration
- Add debug logging for position offset tracking
- Auto refetch stream data on app resume
- Hide delisted products from inventory watchlist and prevent navigation
- Add debug logs for login stuck issue tracking
- Scanner API with store and epic
- Market page structure for mobile
- Ranking container with sort toggle and refresh
- Add Ranking UI improvements with fetching state and virtual scroll
- Add beginBackgroundTask to extend iOS background survival time
- Add connection stability mechanism for iOS resume experience
- Add comprehensive stream store benchmarks for performance analysis
- Performance testing page for UI update frequency measurement
- Remove ExpiredModal popup usage in favor of AUTO_RELOGIN
- Implement SmartVirtualScroll with store interface refactoring
- Add UI Benchmark and fix solidStore to use real SolidJS Store
- Add refetchStream to retry empty stream data on watchlist refresh
- Marquee warning banner to LadderPanel
- Daily warning modal before enabling LadderPanel
- Auto-lock overlay when returning to LadderPanel from background
- Auto-lock overlay when returning to LadderPanel from background
- Add punish and notice API integration with TDD
- Integrate punish/notice API with ContractHeader labels and detail modal
- Add red color highlight for punish/notice stocks on ContractHeader and WatchlistRow
- Retry mechanism to data and account API calls
- Crosshair info bar to QuoteChart
- Market closed label to ContractHeader and WatchlistRow
🐛 Bug Fixes
- Disable PauseScreen to avoid SolidJS re-render delay on resume
- Keep save/cancel buttons visible when many accounts in GroupEditModal
- Add missing simulation field in AUTO_RELOGIN payload
- Set isTokenExpired flag in handleExpiredSession and add account tracking logs
- Resolve cold start login stuck issues with session reconnection
- Add error boundary to Epic system to prevent complete failure
- Chart data gap issue after app resumes from background
- Align unit tests with current implementation
- Resolve history mode jumping and clear button issues in SmartVirtualScroll
- Correct Blob mock in csvParser tests to use class-based approach
- Exclude ca object from persistence to prevent sign method loss
- Restore ListBidAsk volume bar animations using Index component
- Make ListTick referencePrice reactive and optimize useStreamData throttle
- Use immutable update in tickStore.prependMany for reactivity
- Add missing API mock in weekend cache test for weekday execution
- Remove duplicate mockContractResp declaration after merge
- Prevent duplicate history API requests for subscribed streams
- Prevent API requests during Solace reconnecting state
- Unify ladder trade daily warning check into Trade page guard
💼 Other
- 1.0.1
🚜 Refactor
- Migrate tick data from Storeon to SolidJS native store
- Add In-Memory implementation for streamStore with throttled UI updates
- UseStreamData hook and restructure streamStore
- Migrate snapshot from Storeon to streamStore
- Migrate bidask from Storeon to streamStore
- Migrate kBar from Storeon to streamStore
- Rename scanner store to market store
⚡ Performance
- Optimize tick array update from spread to push
- Remove JSON deep copy in QuoteChart
- Decouple ListTick from snapshot notify to reduce re-renders
- Add rAF batched notify to reduce UI updates during high-frequency ticks
🧪 Testing
- Refactor benchmarks with isolated step measurements
- Add performance testing page for Storeon vs SolidJS Native comparison
- Resolve failing unit tests for csvParser and contractEpic
- Fix broken tests after scanner-to-market rename and rAF notify refactor
⚙️ Miscellaneous Tasks
- Open SessionStatusContainer
- Add debug logs for CA auto-verify issue tracking
- Add more debug logs for CA auto-verify session state tracking
- Add detailed debug logs for login stuck issue diagnosis
- Add agent-browser skill and update gitignore
- Add debug logs for LOGIN_STUCK issue investigation
- Close Market tap
- Ignore ai files
- Add benchmark flow
- Permission status display and disable debug features
- Three store implementations for tick data comparison
- Add worker ES module format for PGLite build support
- Remove benchmark step from PR checks workflow
📦 Build Information
Version: staging-1.0.1-133
- Commit:
3d4d958 - Build Time: 2026-03-27 08:30:44 UTC
- Build Number: #133
Desktop-Test 1.0.0
[unreleased]
🚀 Features
- Implement v2 store modules for multi API key management
- Implement account merging utility and refine feature scope
- Import v2 store
- CaStore, positionStore, tradeStore, watchlistStore use v2
- Connection counter for sessionManager
- ServiceStore add primarySessionId_v2
- AddEnabledAccount and removeEnabledAccount receive array
- Implement CONNECT_AND_LOGIN for session connection management
- Implement CONNECT_AND_LOGIN and exclude authed from persistence
- Implement AccountManagement UI with tab navigation
- Implement session migration for multi-session architecture
- AccountManagement add login functionality and fix v2 error toast display
- Implement NavigationStack component with slide animations for Settings
- Redesign ApiKeyDetail UI with Settings-style layout and improved UX
- Implement multi-API key management with certificate support
- ApiKeys improve session name editing and temp session cleanup
- Implement auto-login for additional sessions after primary login
- Implement multi-session certificate auto-activation
- ApiKeyDetail add auto-login toggle and certificate auto-fill
- Refactor ApiKeyDetail to use real-time storage reads and fix toggle states
- Remove connecting intermediate state from AddSessionModal
- Implement AccountManagement UI with dynamic loading optimization
- Migrate Setting components to v2 store and simplify UsageQuery
- Implement multi-account support for PortfolioInfo component
- Add multi-account support for position/status watchlists
- Implement form data persistence for AddSessionModal
- Implement QR code scanning for login credentials and fix session management
- Implement account selector for desktop portfolio
- Implement group account management and fix concurrent order issues
- Enhance account selector with group support
- Auto-update clientName when reconnecting to different site
- Add transaction amount display to LadderPanel for securities
- Aggregate settlement data by date and T value in all accounts mode
- Position and Status display username in account sections
- Implement iOS resume verification flow with batch token validation
- Quick login feature for additional API keys
- QR code generator link to API keys management page
- Implement delete API key status tracking with store-based flow
- Complete account visibility refactor with userEnabledAccounts
- Order presets store
- Order presets management
- Improve order error messages
- OrderPresets edit functionality
- Add timestamp tracking and sorting for OrderPresets
- Auto-save for order presets on navigation
- Double clientName update on reconnection
- Implement intelligent API Key update strategy and fix sessionId mismatch bug
- App resume login issue for manually logged out sessions
- Support full_code field in futures/options callbacks
- Display status message in TradeRow for failed orders
- Auto-trigger UPDATE_STATUS for presubmitted orders and fix cancel handling
- Differentiate simtrade status display in LadderPanel
- Extract AccountSelector component and add trade confirm toggle to LadderPanel
- DisconnectScreen overlay for mid-session disconnects
- Add trade confirm toggle to Position offset panel
- Position display account position summary
- Per-account fetch tracking
- Auto re-enable group when members reconnect
- Block CA activation when certificate is expired
- Handle API key production permission errors gracefully
- Add site info when not authed
- Account selector with subLabel display and sorting
- Add edit/browse mode toggle for Desktop Watchlist
- Sync autoLogin setting from apiKeysStore to sessionAuth_v2
- Add multi-key IP declaration warning
- Implement batch loading for FETCH_KBAR to improve Watchlist performance
- Add position refresh with loading feedback and group account support
- Implement store migration system for version upgrades
- Enable navigation when clicking watchlist row icon
- Add unsigned account warning and improve account management UI
- Add unsigned account warning and improve account management UI
- Temporarily hide sub-brokerage accounts
- Hide sub-brokerage accounts and adjust dropdown style
- Block API requests in App Store review mode
🐛 Bug Fixes
- Synchronize primaryApiKeyId and primarySessionId
- ApplyDeal remove accountKey dependency
- Connecting state change boolean to number
- UseConnection support multi session creation
- Sync primary session between store and SessionManager on app restart
- Prevent CA operations on temporary sessions
- Non-primary session login
- Token expiration handling with proper sessionId tracking
- Dynamic clientName mode for biometric reconnection
- Unify accountKey format and resolve trades_v2 key mismatch issue
- Prevent token expired re-login from clearing other session accounts
- Resolve batch import session connection race conditions
- Handle multiple session token expiration correctly
- Resolve batch import Session 2 connection timeout issue
- Implement cross-platform CSV template download for mobile devices
- Accumulate Build Information history in staging releases
- Prevent temp session disconnect on app background switch
- Improve token expiration handling for sessions without stored credentials
- Prevent disabled accounts from being used for trading
- Temp session login issue
- Auto-disable groups with disabled accounts
- Limit isTokenExpired check to primary session only
- Resolve concurrent session auto-login cancellation issue
- Resolve ghost connections after data clearing
- Resolve group order confirmation issue in both order panels
- Test
- Test authEpic
- Chart rendering issue caused by holiday period filtering
- State preservation issues on app resume
- Resolve "no expired connections" error when connections auto-reconnect
- Prevent duplicate accounts in store with final deduplication logic
- Resolve duplicate token expiration modals after app resume
- Resolve account name displaying as '--' due to state inconsistency
- Trigger re-login when session reconnects to site without clientName/token
- Preserve user preferences when auth reset to prevent secretKey deletion
- Enable auto-reconnect in SplashScreen after logout
- Prevent SplashScreen flickering on app startup
- Prevent empty token from being sent to backend
- Distinguish never-logged-in sessions from token-expired sessions
- SolaceService test
- Add timeout wait in updateProperty to prevent API auth failures
- Set authed to false when token expires to enable auto re-login
- Prevent error notifications for auto-triggered API calls to unauthenticated accounts
- Prevent unauthenticated accounts from displaying in UI and auto-validate persisted selections
- Prevent premature fetchUsage API calls during App resume with polling mechanism
- Resolve incorrect API key loading after logout
- Prevent order placement to wrong account during position closing
- Clear apiKeysStore and pfxPasswordsStore when primary user changes
- Enhance multi-session management and cleanup unused temp sessions
- Resolve token assignment issue during temp session migration
- SecretKey not loading issue in PasswordLogin
- Resolve site-switch login issues and secretKey loading
- Preserve session names after re-login with same account
- Handle delisted products in inventory display
- Prevent pfxB64 from accumulating multiple CA files
- DebouncedFetchPosition use accountKey
- Clean up orphan sessions to prevent navigation blocking
- Handle expired sessions without secretKey to prevent UI blocking
- Logout flow improvements
- Add lock mechanism to apiKeysStore to prevent secretKey loss
- Use session instance state instead of store state in RESUME_APP epic
- Resolve token being stored to wrong site after resume
- Prevent premature API requests during app resume
- Prevent duplicate accounts by serializing LOGIN events
- Block group orders when members have connection/auth/CA
- Session naming and login error handling
- Prevent false disconnect toast on app startup
- Add setErrorOnFail param to detect BatchImport login failures
- Sync autoLogin setting to apiKeysStore for attached sessions
- Await initializeStorage to prevent reading wrong SecureStorage key
- Detect historical data arrival and re-render charts correctly
- Show loading animation for temp session login
- Prevent secretKey loss after store migration
- Only display certificate file when data exists in pfxB64
- Skip PERMISSION_DENIED sessions in CA verification and bio auth
- Remove SET_PRIMARY race condition in serviceEpic CONNECT handler
- Align tutorial component layouts with actual UI components
- Delay authed state for App Store login to prevent watchlist timeout
- Disable LadderPanel access for App Store login mode
- Only clear primary session secretKey when unchecking remember password
- Prevent login stuck due to additional sessions without secretKey
- Stop login spinner when temp session login fails
- Prevent session name from being overwritten by race condition
- Add delay to ApiKeys list refresh to ensure storage write completion
- Resolve watchlist item removal visual bug with soft delete approach
💼 Other
- Update trade tests from develop
- 1.0.0
🚜 Refactor
- Extend SessionManager for multi-API key support
- Separate account-related logic from SessionManager
- Account stores
- Trade stores
- Position stores
- Ca stores
- Watchlist stores
- AuthEpic use v2 store
- ServiceEpic use v2 store
- AccountEpic use v2 store
- TradeEpic use v2 store
- WatchlistEpic use v2 store
- AuthStore replace apiKeyId to sessionId
- ServiceStore replace apiKeyId to sessionId
- AccountStore replace apiKeyId to sessionId
- CaStore replace apiKeyId to sessionId
- Service replace apiKeyId to sessionId
- AuthEpic replace apiKeyId to sessionId
- ServiceEpic replace apiKeyId to sessionId
- AccountEpic replace apiKeyId to sessionId
- TradeEpic replace apiKeyId to sessionId
- Store state rename
- SessionManager replace connectionCounter to sessionCounter
- Move isTokenExpired from statusStore to authStore
...
Mobile 0.5.9
[0.5.9] - 2025-09-12
🚀 Features
- Tauri desktop version sync
- Add tauri auto updater plan
- Tauri desktop auto-updater
- Simple update flow
- Gen update manifest to github page
- Desktop LadderPanel add hover popover for individual order cancellation
🐛 Bug Fixes
- Tauri sign key without password
- Sig path
- Ci build flow
- Semver
- Staging asset clean
- Mac with universal update support
- ListTick resolve reactive context errors in infinite scroll
- Prevent memory leak by cleaning up timeout in LadderPanel
- Correct BASE_VERSION extraction logic for staging builds
- Modified_price handling
⚡ Performance
- Implement VirtualScroll in ListTick
- Desktop LadderPanel add hover popover for individual order cancellation
🎨 Styling
- Desktop Status GroupRow layouts
- LadderOrderPopover layouts
⚙️ Miscellaneous Tasks
- Use typescript to check import path
- Tauri sig upload
- Improve staging version numbering for proper update detection
- Update staging version in Cargo.toml during build
- Prevent sync-version from overwriting staging version in Cargo.toml
- Fix pnpm tauri command to resolve command not found error
- Correct env variable name for staging version
- Support both true and True in build conditions
- Use run_number instead of timestamp for staging version
- Simplify staging version to 0.5.9-123 format for MSI compatibility
- Unify staging version format
- Code format
Desktop 0.5.9
[0.5.9] - 2025-09-12
🚀 Features
- Tauri desktop version sync
- Add tauri auto updater plan
- Tauri desktop auto-updater
- Simple update flow
- Gen update manifest to github page
- Desktop LadderPanel add hover popover for individual order cancellation
🐛 Bug Fixes
- Tauri sign key without password
- Sig path
- Ci build flow
- Semver
- Staging asset clean
- Mac with universal update support
- ListTick resolve reactive context errors in infinite scroll
- Prevent memory leak by cleaning up timeout in LadderPanel
- Correct BASE_VERSION extraction logic for staging builds
- Modified_price handling
⚡ Performance
- Implement VirtualScroll in ListTick
- Desktop LadderPanel add hover popover for individual order cancellation
🎨 Styling
- Desktop Status GroupRow layouts
- LadderOrderPopover layouts
⚙️ Miscellaneous Tasks
- Use typescript to check import path
- Tauri sig upload
- Improve staging version numbering for proper update detection
- Update staging version in Cargo.toml during build
- Prevent sync-version from overwriting staging version in Cargo.toml
- Fix pnpm tauri command to resolve command not found error
- Correct env variable name for staging version
- Support both true and True in build conditions
- Use run_number instead of timestamp for staging version
- Simplify staging version to 0.5.9-123 format for MSI compatibility
- Unify staging version format
- Code format
Desktop-Test 0.5.9
[unreleased]
🚀 Features
- Tauri desktop version sync
- Add tauri auto updater plan
- Tauri desktop auto-updater
- Simple update flow
- Gen update manifest to github page
- Desktop LadderPanel add hover popover for individual order cancellation
🐛 Bug Fixes
- Tauri sign key without password
- Sig path
- 修復 LadderPanel 熱更新後委託數量無法顯示問題
- Ci build flow
- Semver
- Staging asset clean
- Mac with universal update support
- ListTick resolve reactive context errors in infinite scroll
- Prevent memory leak by cleaning up timeout in LadderPanel
- Correct BASE_VERSION extraction logic for staging builds
- Modified_price handling
⚡ Performance
- Implement VirtualScroll in ListTick
- Desktop LadderPanel add hover popover for individual order cancellation
🎨 Styling
- Desktop Status GroupRow layouts
- LadderOrderPopover layouts
⚙️ Miscellaneous Tasks
- Use typescript to check import path
- Tauri sig upload
- Improve staging version numbering for proper update detection
- Update staging version in Cargo.toml during build
- Prevent sync-version from overwriting staging version in Cargo.toml
- Fix pnpm tauri command to resolve command not found error
- Correct env variable name for staging version
- Support both true and True in build conditions
- Use run_number instead of timestamp for staging version
- Simplify staging version to 0.5.9-123 format for MSI compatibility
- Unify staging version format
- Code format
📦 Build Information
- Version: staging-0.5.9-94
- Commit:
b50f5bc - Build Time: 2025-09-10 08:32:30 UTC
- Build Number: #94
Mobile 0.5.8
[0.5.8] - 2025-08-15
🚀 Features
- LadderPanel display with price percentage
- Actions support to Widget component with hide amount toggle
- Desktop Portfolio add securityType subtitle
🐛 Bug Fixes
- Update contract from placeOrder response
- Handle order_quantity correctly
- FetchLogo
- Prevent ExpiredModal from reopening repeatedly
🎨 Styling
- LadderRow Price info layout
- Desktop Watchlists row layout
- Desktop Widget background
- Desktop ContractHeader layouts
🧪 Testing
- Add test for trade store
⚙️ Miscellaneous Tasks
- Claude setting
- Update contract icon
- MacOS signature timeout
- MacOS signature timeout
Desktop 0.5.8
[0.5.8] - 2025-08-15
🚀 Features
- LadderPanel display with price percentage
- Actions support to Widget component with hide amount toggle
- Desktop Portfolio add securityType subtitle
🐛 Bug Fixes
- Update contract from placeOrder response
- Handle order_quantity correctly
- FetchLogo
- Prevent ExpiredModal from reopening repeatedly
🎨 Styling
- LadderRow Price info layout
- Desktop Watchlists row layout
- Desktop Widget background
- Desktop ContractHeader layouts
🧪 Testing
- Add test for trade store
⚙️ Miscellaneous Tasks
- Claude setting
- Update contract icon
- MacOS signature timeout
- MacOS signature timeout
Mobile 0.5.7
Changelog
All notable changes to this project will be documented in this file.
[0.5.7] - 2025-07-15
🚀 Features
- Integrate sensitive amount formatting across UI components
- SplashScreen Logger toggle
- SplashScreen add text displaying and button for reconnect
- CallBack notificator
- Menu add notificator center
- Notification duration
- Multi API key specification and development plan
- Restore Task Master configuration and localized tasks
- App updater
- Portfolio update button add fetch account
- Implement pre-opening logic for QuoteChart
- Implement pre-opening logic for ListTick
- ListTick implement infinite scroll for historical ticks
- Enhance QuoteChart robustness and pre-market display
- ListTick and QuoteChart clean data after pre-market
- MiniLineChart add external controller for limit price visibility
- QuoteChart memorize status of showing all price
- OrderOptions for order account setting
- SplitOrder for PLACE_ORDER
- SplitOrder for NormalPanel, LadderPanel, ConfirmModalProvider
- LadderPanel add CumulativeBar
- Status can redirect Trade
- Clean localized data
- CaActivator error hint
- PasswordLogin and CaActivator guide modal
- Profits divided into stk and fop
🐛 Bug Fixes
- Resolve errors from nullable acc_balance
- Handle token expiration on BioLogin
- Resolve session removal issue during disconnection and reconnection
- Cancel order from other platform ordering
- Prevent DownError logging on background disconnect
- OES order blocked and bidask decimal point problem
- No account warning text
- Trade reset
- ListBidAsk H L label displaying condition
- FETCH_TICK_TIME query date for futures
- ListTick display opening time label after pre-market
- ListTick TDZ problem
- ListTick and QuoteChart set opening time after pre-market
- Login not show after logout
- SearchBox remove keyboard while scroll
- Usage support bigInt
- Account balance error message display
- Tutorials open error due to no 2890 contract
- CA download from newweb
- BioAuth activate after login
- NormalPanel remove cost for FUT
- Random split order
- Tutorial check contracts
- UPDATE_STATUS fetch contract infinite loop
- Epic format
- Test report
- PasswordLogin state clean in background
- Tablet layouts
- SplashBackground storeon decode
- ListSelector watchlist name length limit
- EditTable auto scroll
- AppReviewing simulation state
- Watchlist prevent unnecessary re-registration during reordering
- CANCEL_ORDER response PendingSubmit error
- FetchAccountBalance error
🚜 Refactor
- Not use rgb calculation in css
- OrderNotification use store
- StySmallLineChart rename to MiniLineChart
- Bubble use Portal to render
📚 Documentation
- Integrate Task Master workflow and update project state
- Add AI-assisted development guidelines and file creation rules
⚡ Performance
- Controller use transform for relocating Indicator
🎨 Styling
- OrderConfirmator adjust layouts
- Controller add triggerHapticImpact
- Controller indicator use circle
- WatchlistRow hint for simtrade
- WatchlistRow change simtrade hint
- OrderNotification blur less
- Settlement table use slide
- Dropdown use liquid glass background
- ListSelector use liquid glass and bubble
- Bubble boxShadow
- OrderNotification border
- DropdownMenu add highlights
- Change highlight spread and blur
- Portfolio title and controller layouts
- Settlement layouts
- Watchlist EditRow layouts
- SplashScreen border
- ListSelector border radius
- ListSelector add check icon at selected watchlist
- ListSelector background
- EditTable select border color
🧪 Testing
- Fix account info for subOrder2NewTrade
- Remove serviceManager test
⚙️ Miscellaneous Tasks
- Promote notificator user experience
- Set tasks master
- Gitignore add .taskmaster/state.json
- Remove taskmaster on Git
- Sync develop branch with latest changes
- Set tsconfig for test.ts
- ContractRules change for FXF ZFF
- Biomejs setting
- Format by biomejs
- Format quoteStyle
- Update capacitor package
- Api response timeout
- Update bundle:encrypt
- Ios update cocoapods
- Watchlist setting
- Default contracts
- Signature guiding text
- IsOrderResNoticeable default open
- Holiday setting
- Solclientjs update to 10.18.2
- Solace log
- Solace login client name