feat(ui): Complete Dashboard high-fidelity implementation and Playwright testing

Dashboard 고도화:
  - KPI 카드 4개 (Active Positions, Portfolio Value, Signal Quality, System Status)
  - Market Overview 섹션 (Market Status + System Health)
  - Performance Metrics 그리드 (YTD Return, Sharpe Ratio, Max Drawdown 등)
  - Algorithm Status 테이블 (P0~P6 진행 상황)
  - Live Signal Feed 테이블 (최근 5개 신호)

UI 완성도: 91/100 (우수)
  - Page Load: 15/15 (HTTP 200, 1.2s)
  - MudBlazor Components: 20/20 (Layout, AppBar, Card, Table, Chip 등)
  - Layout Structure: 20/20 (3단계 구조, Grid responsive)
  - Dashboard Content: 15/15 (KPI + 시장현황 + 성과 + 알고리즘 + 신호)
  - Navigation: 8/15 (기본 구현, 추가 페이지 필요)
  - Responsive Design: 10/10 (Mobile/Tablet/Desktop)
  - Accessibility: 3/5 (HTML meta 설정, ARIA 개선 필요)

Playwright 자동화 테스트:
  - test_ui_completeness.py: 종합 평가 스크립트
  - test_ui_with_details.py: 상세 DOM 분석 스크립트
  - DOM 요소: h4(1) h5(4) h6(12) / Card(9) Table(2) Chip(15)
  - 성능: Load ~1200ms, Memory ~12MB

UI Completeness Report:
  - 전체 평가 문서 생성
  - 성공 항목 (레이아웃, 컴포넌트, 콘텐츠, 반응형)
  - 개선 사항 (네비게이션 추가 페이지, 접근성)
  - 다음 단계 권장사항

기술:
  - MudBlazor 6.10.0 (Material Design)
  - Blazor Server (InteractiveServer)
  - PostgreSQL Dapper ORM
  - Program.cs: AddMudServices() 추가

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-25 18:05:57 +09:00
parent 325c6d64e1
commit 2ee759fed1
182 changed files with 13577 additions and 127 deletions
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5bdbf176861e52002da4567ab54382d17053742c")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+325c6d64e17702c514691d989194bc4dc0d08460")]
[assembly: System.Reflection.AssemblyProductAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyTitleAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
cab8e90b2d40c0cb05095bf629c8054340e80dd38c99eb3f89581a22ab71823c
cb8ab21efbcec9c201bb4643c76b5e8873821d21fc9970abd6d2a8b567b63809
@@ -1 +1 @@
6956cb7c3b7f8dc161be037f277ca8ad489746b41b4cfc6aebd5bf4b3bc73bea
88d0f7af4412902652f47d047de48cda1a0ecc11278a5659d99a578ea7a960e4
@@ -93,3 +93,7 @@ C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\ref\QuantEngine.W
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\Dapper.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\Npgsql.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\compressed\q2w3mddmwi-{0}-hhus5bms5i-hhus5bms5i.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\MudBlazor.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\compressed\tzxjg6is5z-{0}-vfkweikjak-vfkweikjak.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Debug\net10.0\compressed\0wz98yz2xy-{0}-zz3vgy03mq-zz3vgy03mq.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Debug\net10.0\Temp\ui_test_results.json
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"GlobalPropertiesHash":"61ZzOkAafDUCzt7x0mEjc+KORTs/Of52hN2aYDIQSWo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","smhp7anQWP72vFhTUkVXZ6aozdFRZXzKLVpQ7Te8Lrc=","IlIoElTjrwmvYaM/aIPu8As/zzB/56nrRyKb5AUNbc8=","MS2smgrxLDruA/Hhd7ShxHl1kXLLFAGzSyOXNrp0Oi0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","ZXLpStFgNr41jTzYR/q9Ev2uYfj/obNSnvcJ\u002B0HfVZs=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","CgNUJ4Ftgl5E7BKiqkHVNIkng0J7RnUPdK3h/p1VZ/Q=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","k/9Kavxbft96rjBhV5faXqmheTCs9vkNQ6\u002BdzZWPveo="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"61ZzOkAafDUCzt7x0mEjc+KORTs/Of52hN2aYDIQSWo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","\u002Bhi90nNM2D4jt0dT0Yyg5mUyNKGPVJo8nlEnmrDqp8A=","R1tUM5wHPsFzYHITLbV\u002BNnoQVIlUY10RPpzveuC7L5c=","/YHnfYz9ryrWGVRYNAA45QsqSl4S6cev9g7yGfD9FlQ=","Sr5Tb7XfQeKbD9SIcX5mFqPcYd1bIXVaZ/h/ci6Z2y0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","UmvjAnnHn9znbWX/FeiMWyXI9kiyMMp8TM2rbKTF0/Y=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","gm50Z5MQfUHYs69ApohEgLv/qbS/VnrtZExvo8dOWOM=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","2rYyg\u002BCg9S/WGMXq69A2mQLpqPNyet1P9mxZwxQK7po="],"CachedAssets":{},"CachedCopyCandidates":{}}
@@ -1 +1 @@
{"GlobalPropertiesHash":"hb9Mk8Q4BfRLjPFbSBNw4B6QTKNWFUuDQL43Qwq5ZuI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","smhp7anQWP72vFhTUkVXZ6aozdFRZXzKLVpQ7Te8Lrc=","IlIoElTjrwmvYaM/aIPu8As/zzB/56nrRyKb5AUNbc8=","MS2smgrxLDruA/Hhd7ShxHl1kXLLFAGzSyOXNrp0Oi0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","ZXLpStFgNr41jTzYR/q9Ev2uYfj/obNSnvcJ\u002B0HfVZs=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","CgNUJ4Ftgl5E7BKiqkHVNIkng0J7RnUPdK3h/p1VZ/Q=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","k/9Kavxbft96rjBhV5faXqmheTCs9vkNQ6\u002BdzZWPveo="],"CachedAssets":{"Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=":{"Identity":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\Components\\Layout\\ReconnectModal.razor.js","SourceId":"QuantEngine.Web","SourceType":"Discovered","ContentRoot":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\","BasePath":"/","RelativePath":"Components/Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"13ja33weya","Integrity":"4zGYCWZ4pfXdYacNs7XaH1BXGvludoT6JCkX9NZucgI=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Components\\Layout\\ReconnectModal.razor.js","FileLength":2364,"LastWriteTime":"2026-06-25T07:46:06.142932+00:00"}},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"hb9Mk8Q4BfRLjPFbSBNw4B6QTKNWFUuDQL43Qwq5ZuI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["b2UQhMCi5hibFgT1hKycKmX36\u002BdO0CvoOOlri9gjB/o=","mcgeE9u7XLPrKetM55S0UJDkLZ3mRXUyplZkKd0KYX0=","7\u002BLDa\u002BEEI4Hwwxl58wVJGR0S92WloTRFTlRTa1V2vYQ=","j9TkvyuvJdRVauMmJ0IeMKMSlCMeeJ3HQZ0qqAMfcs8=","ggrQwz1UnwKr/y\u002ByVVBeC0TWVPvDOl3slpahudPluFQ=","kXjy8AkO7GYH4xZvRqF/0X7Zb2VKXh/dy2u6tjruT5U=","Kg6LgPrRxS2bEzDorggKyRCR260CyhHy9RAbQIJ2nFg=","bPoEahA5V5rzofty4Gdw8KxyOhzv1IG1FY\u002BvOS7K58g=","ni3VOr7YgZXUZ6s4rRvEul4rzANWP1h3WQrdrY7PjGI=","Rk\u002BOP3d3ePTZ46ynDgtFmboivit55WL8AZwnt6kFRIw=","FHdjaB92aTeG/hXupMZFxS2wPuh1t6QIR0YDbsJtqLc=","jAhagElO4K4FqxpRqPQYU9HAjrxyLJF/qd4lrRazVrg=","b5OYIV1\u002BzBizs0s1xyAmQ2frTaAxPPcIjOOIv\u002B/lY38=","BsBnYmH/R2Bilp9UWWmKBiDYbtIt\u002B4yXJcCSOgYoaNE=","vNr2b76DRChSiN0zC2rnNs0\u002Bd3W05nQG4H4oCINebYA=","dmm3NBFGK15BgR0HyC406h4V\u002BGkPUYTPr7Vnn0B7L7k=","rR\u002BuQQ3VVG8Vu536cz3k\u002BEKXcII82GldU4ES5dM4qgQ=","p\u002BSsiAXz6Rht84D1CB2/4wS8yKTKQb13MKmU6uwz80k=","yd4P53IcJ0wZgOPtBjpPBZ/mkrLljHZfEAcf\u002BN6rYao=","DTlHRkcfRa14EriUWe/mBJGHJi/JA\u002BME7/J8TexosOM=","FR\u002BjAWADFo5dyJYRtnxPNvWTzKPXbeO8PNaCqU9XiV8=","rMk0iDVdS/fN0mvHsTNMI5/1fBXL3RCJUqbdRiNDUus=","iE/MGO3koWboDYdG0vxe8CA\u002B0gNZ2qUw8N/OSv0Zzuw=","4/1odVci0MEWnJbhDyWDPsqjZbjrWd1t/JvBGIQwTWU=","RsN1J/CgA8JdkodXuKevxdb\u002B5Mk/CJYEic/OeiDnf5Y=","KsN5zIPdVrUEY2BybZkK1P7y\u002B2lHSq6U196U1D9YXiI=","vMBw1fqbgZbnqox4lPJHWeaRE57WF4FYTs\u002Btw0Ut6ds=","TrlLGrtczuvBVwhDULfyuZMhSsTCZMbnLpV0kV3NBP8=","4JMegibvWflCspqOQyQoYSFBv4qc6584qsmWW94dAPM=","3MQf6krWBAcHcEbKUeDf1WkrN8lk0N4099NepU3ioEw=","nSKAYYKU4/pczhUlvIUteyZ1XOdlJ3LZe5/khw0yn2Q=","xhPje1AGspffhcg8PLRmekJ51gip0m7dj\u002B/i5bz4uWM=","OYeZnpVMcjyasKt/WFkDKDxPGorRXayYEeS9q/qwWDs=","kGr0D7PKuuX\u002B2XsuN9lVg3KTTBumeX0\u002BVMcZk2IeHWc=","AoSw3OxeZA1mjxC5z3ivDlaCRpOsKntwDy06V9l8XV8=","JdBhV2/x8OpJ51KvVYTnUYHN/9X9JsisSJNqBYxRI\u002B0=","1tg9vOuOTgrwewWafa0Gwkl2iydgmkbgyOVh8vUtARk=","Hw7YtaydxGuR603xyjtxrMbQkMHhn\u002BmToPoMjv/yHFM=","B\u002BC\u002B6PdV7sZSXp6u103B/Yi0i9ecmVO6Wf2WgKrZVVQ=","P\u002B\u002BNdHOwIXSzmlzgIUxQ4\u002B7ulu7Au/W/iP6hCpWG1A8=","W\u002BKIki670Do/4s6Xnq0FlExI2mXfbzgFYnuEzzapBss=","ouyEobtmKMxv2I6YzckQpXnsDsHk\u002BjqwntQVBbTF5cI=","6GqYTvKmQPX4XEMCy6jG/dr5vWJ5EIX/oL9TSOTqFFM=","ETHexDuAGcLe/mke9HZP2mrOjFA\u002BjEN\u002Bf4WAXWPdTVc=","8wlK7zop19xb05vC6iBa91S9QKL20EOiMwv/NtM\u002Bdlw=","6sxr9SMN5kZMO/sRAxO2yqpQtc43dDOQOdA5RTjophA=","9cp2ijQYoLJZ2I0173ZK5\u002BW\u002B/hObdst72Km6l683RK4=","7jMH1nILnwHGg/LsF/f8wVMrJDcCKBYXYf\u002BWVi1KoXs=","\u002Bhi90nNM2D4jt0dT0Yyg5mUyNKGPVJo8nlEnmrDqp8A=","R1tUM5wHPsFzYHITLbV\u002BNnoQVIlUY10RPpzveuC7L5c=","/YHnfYz9ryrWGVRYNAA45QsqSl4S6cev9g7yGfD9FlQ=","Sr5Tb7XfQeKbD9SIcX5mFqPcYd1bIXVaZ/h/ci6Z2y0=","I6jSJ4WOKswJCt9FvNg921ZLmTs7mbkpZRI7jtS9pwM=","X2riht7Gj7rEzg8kMmvWkEJ4LIPdnrwtiJQ8lRuUR4o=","UmvjAnnHn9znbWX/FeiMWyXI9kiyMMp8TM2rbKTF0/Y=","zvAD5S5PC/N4XTUslhmsDq/JbcnvcQssLCZPJGtfjy8=","KpjMMyUUgdQejIAGUGmKeZrRlHuOt1NnWKTuEpq21A8=","T1MZrryituXFlQirMF9xDNBhXlpJncfuARYOsdNUuA0=","lXp8uCB6YnG3l1wJMxaOwQfKGQB7Rj8bNSYUJFyhDDY=","gm50Z5MQfUHYs69ApohEgLv/qbS/VnrtZExvo8dOWOM=","VJxkHjFf37bkflXzzyf0kQyZGXYshABruYz9OBgdqso=","vn2f8FVLWAK8cq3B5BsN0dmStXwATRAlXMlEvpRkmFg=","EhO\u002B2IKIvR4CF7ZnCh9p6qRr\u002B84Zo3PIlqbGqVgC6YQ=","Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=","j43aY8tynqP0Kmc\u002B9frlr3ICHvY5ejyi0BR2TD1zt7c=","2rYyg\u002BCg9S/WGMXq69A2mQLpqPNyet1P9mxZwxQK7po="],"CachedAssets":{"Hms1NaH6k20pSRsUgmHKnw1/1F3CGiWCYh9fTTr3KKQ=":{"Identity":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\Components\\Layout\\ReconnectModal.razor.js","SourceId":"QuantEngine.Web","SourceType":"Discovered","ContentRoot":"C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\","BasePath":"/","RelativePath":"Components/Layout/ReconnectModal#[.{fingerprint}]?.razor.js","AssetKind":"All","AssetMode":"All","AssetRole":"Primary","AssetMergeBehavior":null,"AssetMergeSource":"","RelatedAsset":null,"AssetTraitName":null,"AssetTraitValue":null,"Fingerprint":"13ja33weya","Integrity":"4zGYCWZ4pfXdYacNs7XaH1BXGvludoT6JCkX9NZucgI=","CopyToOutputDirectory":"Never","CopyToPublishDirectory":"PreserveNewest","OriginalItemSpec":"Components\\Layout\\ReconnectModal.razor.js","FileLength":2364,"LastWriteTime":"2026-06-25T07:46:06.142932+00:00"}},"CachedCopyCandidates":{}}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
cqiIbH+eDfAiStf6VN7lIxDTiiROSMeGdzEJLkG8J3Q=
Yo6dfrb7LW1rUJ0WbJll1tkujUuj7EyL5amKjmgKK5I=
File diff suppressed because one or more lines are too long
@@ -1119,6 +1119,10 @@
"target": "Package",
"version": "[10.0.0, )",
"autoReferenced": true
},
"MudBlazor": {
"target": "Package",
"version": "[6.10.0, )"
}
},
"imports": [
@@ -15,6 +15,7 @@
<SourceRoot Include="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)mudblazor\6.10.0\buildTransitive\MudBlazor.props" Condition="Exists('$(NuGetPackageRoot)mudblazor\6.10.0\buildTransitive\MudBlazor.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.0\build\Microsoft.AspNetCore.App.Internal.Assets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.0\build\Microsoft.AspNetCore.App.Internal.Assets.props')" />
</ImportGroup>
</Project>
@@ -0,0 +1,16 @@
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Web.exe
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\appsettings.Development.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\appsettings.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Web.runtimeconfig.json
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Web.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\Dapper.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\MudBlazor.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\Npgsql.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Application.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Core.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Infrastructure.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Infrastructure.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Application.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Core.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\publish\QuantEngine.Web.deps.json
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5bdbf176861e52002da4567ab54382d17053742c")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+325c6d64e17702c514691d989194bc4dc0d08460")]
[assembly: System.Reflection.AssemblyProductAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyTitleAttribute("QuantEngine.Web")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
49348222cf59f93c936ed4758fc70d07ff04f4d42e565ab68148dea49ba81d2e
808f40d0c8795da86d58583ea6e4c1d786164aaa4ea0cfd0f8cc0d0e5b89a75b
@@ -1 +1 @@
607552d0cc1da6248e84037c4d5ec1c83b65a0c388535f2164fa866516b275b4
f9de91b8637f49e90dabab6e590dd2988f14203aab05d93253bee84bbd73f8cd
@@ -93,3 +93,6 @@ C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\refint\QuantEng
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.pdb
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\QuantEngine.Web.genruntimeconfig.cache
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\ref\QuantEngine.Web.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\bin\Release\net10.0\MudBlazor.dll
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\tzxjg6is5z-{0}-vfkweikjak-vfkweikjak.gz
C:\Temp\data_feed\src\dotnet\QuantEngine.Web\obj\Release\net10.0\compressed\0wz98yz2xy-{0}-zz3vgy03mq-zz3vgy03mq.gz
@@ -8,6 +8,7 @@
".NETCoreApp,Version=v10.0": {
"QuantEngine.Web/1.0.0": {
"dependencies": {
"MudBlazor": "6.10.0",
"QuantEngine.Application": "1.0.0",
"QuantEngine.Core": "1.0.0",
"QuantEngine.Infrastructure": "1.0.0"
@@ -24,6 +25,14 @@
}
}
},
"MudBlazor/6.10.0": {
"runtime": {
"lib/net7.0/MudBlazor.dll": {
"assemblyVersion": "6.10.0.0",
"fileVersion": "6.10.0.0"
}
}
},
"Npgsql/10.0.3": {
"runtime": {
"lib/net10.0/Npgsql.dll": {
@@ -80,6 +89,13 @@
"path": "dapper/2.1.79",
"hashPath": "dapper.2.1.79.nupkg.sha512"
},
"MudBlazor/6.10.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Dpjouo3MVva4p8Nh2VCzHzvzReWhnzmCBNlrhymeXjn6oBEtT3Oi9z/R2sHOg/jYrW/hIPKMhfZHnptilHScsw==",
"path": "mudblazor/6.10.0",
"hashPath": "mudblazor.6.10.0.nupkg.sha512"
},
"Npgsql/10.0.3": {
"type": "package",
"serviceable": true,
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
ttXrRBrLplYlrWPxg/ngRkjUnaPW3aRVmHvNV5t3/ho=
x7J6/TrlQ0O4FTYKeGiivUd6F1oeo8DAvbfRyHxv4v0=
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -25,6 +25,25 @@
"buildMultiTargeting/Microsoft.AspNetCore.App.Internal.Assets.targets": {}
}
},
"MudBlazor/6.10.0": {
"type": "package",
"compile": {
"lib/net7.0/MudBlazor.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net7.0/MudBlazor.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/MudBlazor.props": {}
},
"buildMultiTargeting": {
"buildMultiTargeting/MudBlazor.props": {}
}
},
"Npgsql/10.0.3": {
"type": "package",
"compile": {
@@ -124,6 +143,29 @@
"microsoft.aspnetcore.app.internal.assets.nuspec"
]
},
"MudBlazor/6.10.0": {
"sha512": "Dpjouo3MVva4p8Nh2VCzHzvzReWhnzmCBNlrhymeXjn6oBEtT3Oi9z/R2sHOg/jYrW/hIPKMhfZHnptilHScsw==",
"type": "package",
"path": "mudblazor/6.10.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"Nuget.png",
"build/Microsoft.AspNetCore.StaticWebAssets.props",
"build/MudBlazor.props",
"buildMultiTargeting/MudBlazor.props",
"buildTransitive/MudBlazor.props",
"lib/net6.0/MudBlazor.dll",
"lib/net6.0/MudBlazor.xml",
"lib/net7.0/MudBlazor.dll",
"lib/net7.0/MudBlazor.xml",
"mudblazor.6.10.0.nupkg.sha512",
"mudblazor.nuspec",
"staticwebassets/MudBlazor.min.css",
"staticwebassets/MudBlazor.min.js"
]
},
"Npgsql/10.0.3": {
"sha512": "7nb5YzXuvWWJxB0J8DiyL3we+X4FOctZrt0fIBnucOIaIevFEEwGQVZKtiu9olXdlNAK1eNgqSral6r/jlhI4w==",
"type": "package",
@@ -162,6 +204,7 @@
"projectFileDependencyGroups": {
"net10.0": [
"Microsoft.AspNetCore.App.Internal.Assets >= 10.0.0",
"MudBlazor >= 6.10.0",
"QuantEngine.Application >= 1.0.0",
"QuantEngine.Core >= 1.0.0",
"QuantEngine.Infrastructure >= 1.0.0"
@@ -236,6 +279,10 @@
"target": "Package",
"version": "[10.0.0, )",
"autoReferenced": true
},
"MudBlazor": {
"target": "Package",
"version": "[6.10.0, )"
}
},
"imports": [
@@ -1,11 +1,12 @@
{
"version": 2,
"dgSpecHash": "+FGEmyd+6Ek=",
"dgSpecHash": "UF3TbyUT1BY=",
"success": true,
"projectFilePath": "C:\\Temp\\data_feed\\src\\dotnet\\QuantEngine.Web\\QuantEngine.Web.csproj",
"expectedPackageFiles": [
"C:\\Users\\kjh20\\.nuget\\packages\\dapper\\2.1.79\\dapper.2.1.79.nupkg.sha512",
"C:\\Users\\kjh20\\.nuget\\packages\\microsoft.aspnetcore.app.internal.assets\\10.0.0\\microsoft.aspnetcore.app.internal.assets.10.0.0.nupkg.sha512",
"C:\\Users\\kjh20\\.nuget\\packages\\mudblazor\\6.10.0\\mudblazor.6.10.0.nupkg.sha512",
"C:\\Users\\kjh20\\.nuget\\packages\\npgsql\\10.0.3\\npgsql.10.0.3.nupkg.sha512"
],
"logs": []