Releases: Sinotrade/scone
Releases · Sinotrade/scone
Mobile 1.0.1
[1.0.1] - 2026-04-02
🚀 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
- Change buildNoticeInfo text
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.1
[1.0.1] - 2026-04-02
🚀 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
- Change buildNoticeInfo text
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.2
[unreleased]
🚀 Features
- Extract ContractLabels with icon badge system for ContractHeader
- GetMarketStatus and MarketStatusBadge with breathing glow effect
- SecurityTypeBadge and refine badge color scheme
- Add BottomSheet component and replace MarketInfoModal trigger
- Add ContractInfoSheet with badge detail sections in BottomSheet
- Add punish/notice detail page in ContractInfoSheet with navigation
- MarketTimeline with interactive tooltip and dynamic status description
- MarketTimeline with interactive tooltip and dynamic status description
- Stock_reserve_summary API
- Stock_reserve_detail API
- Earmarking_detail API
- Reserve tab UI skeleton in Portfolio page
- Earmarking detail record list UI
- Reserve_earmarking API with CA signing
- Earmarking apply form UI with SliderAdjuster and validation
- Add contract search, trade navigation and UI refinements to earmarking
- Info modals for earmarking and move i18n to independent locale
- Global portfolioTab signal and navigate to Reserve from punish/notice detail
- Add person ID info to CA certificate expiration notification
- StockReserve UI with expandable cards
- Closed market label with circular badge on logo
- Distinguish notice and punish stocks with orange and red
- Reserve_stock API
- Per-card reserve application and batch apply to StockReserve UI
- Confirm modal and UI improvements to StockReserve
- Position_detail API
- Position detail BottomSheet UI
- Show loaded session name above PasswordLogin inputs
- Key selector dropdown to PasswordLogin and fix cross-key cleanup
- PasswordLogin key selector with primary mark and new key option
🐛 Bug Fixes
- Correct market timeline display for holidays
- Timeline tooltip not dismissing on tap and label overflow
- Prevent non-PasswordLogin paths from mutating primary key
- Drop sessions without createdAt from primary fallback selection
- Use mergeMap in CONNECT_AND_LOGIN to allow concurrent session init
- Extend verifying mode guard to subscribe / unsubscribe / updateProperty
- Stop ABANDON_SESSION from wiping sessionCa
💼 Other
- 1.0.2
🚜 Refactor
- Change shareMap to plain Map in StockReserve
- Restructure position detail UI with summary/item view
⚙️ Miscellaneous Tasks
- Update icon
📦 Build Information
Version: staging-1.0.2-140
- Commit:
74abcd2 - Build Time: 2026-04-30 08:44:43 UTC
- Build Number: #140
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