055bc23097
refactor(frontend): migrate auth/portfolio pages to FSD, add layer boundaries
...
CI / ci (pull_request) Failing after 2m45s
CI / ci (push) Failing after 2m41s
- Convert LoginPage, RegisterPage, ProfilePage to FSD structure (index.ts + ui/)
- Convert PortfoliosListPage, PortfolioDetailPage to FSD structure
- Replace relative imports with @/ aliases in portfolio pages
- Add ESLint import/no-restricted-paths for FSD layer boundaries
- Refactor useSession test to mock context instead of import from app/
- Mark frontend-fsd-screener tasks as complete
2026-06-20 21:42:33 +03:00
2fc98341a6
docs: add FSD screener feature spec, plan, and tasks
2026-06-20 21:23:01 +03:00
2619a27b80
docs: mark portfolio FSD migration tasks complete
CI / ci (pull_request) Failing after 2m38s
CI / ci (push) Failing after 2m56s
2026-06-20 21:11:54 +03:00
36f39d2d3f
docs: add frontend fsd portfolios plan and tasks
2026-06-20 21:11:30 +03:00
49dcbb4e33
docs: define frontend fsd portfolios spec
2026-06-20 21:11:30 +03:00
b069575fbb
refactor(frontend): remove FSD shim files and dead code
...
CI / ci (pull_request) Failing after 2m51s
CI / ci (push) Failing after 2m38s
- Break entity shim chain: brokerPositionApi, brokerOperationApi now use shared/api/client directly
- Remove all 43 shim re-export files (api/, hooks/, context/, components/, pages/ flat shims, routes.tsx)
- Remove entire pages/broker/ dead code directory
- Remove api/broker.ts after breaking the shim chain
- Switch auth consumers from AuthProvider (shim) to SessionProvider (FSD)
- Fix api/screener.ts imports to use @/shared/api
- Update frontend hooks.md and routes.md documentation
- 2840 lines removed, 71 lines added
2026-06-20 20:42:44 +03:00
40d7792b9e
docs: add specification for frontend FSD market
2026-06-20 19:57:37 +03:00
20f0efa083
docs: update spec status, tasks, and frontend overview for FSD app+auth migration
CI / ci (push) Failing after 6m18s
2026-06-20 14:54:53 +03:00
af36d2e7cf
docs: define frontend fsd app+auth spec, plan, tasks
2026-06-20 14:54:53 +03:00
ad8ff6a875
docs: mark fsd entities migration tasks complete
2026-06-20 14:54:52 +03:00
dd727f9fb2
refactor(frontend): migrate entities/stock to FSD
2026-06-20 14:54:52 +03:00
93d18f1218
docs: add pre-flight checklist to AGENTS.md, commit missing plan.md
2026-06-20 14:54:52 +03:00
23a077536c
docs: mark frontend fsd shared layer tasks complete
2026-06-20 14:54:52 +03:00
df4b778d95
docs: define frontend fsd shared layer spec
2026-06-20 14:54:52 +03:00
4db95146a7
docs: finalize sdd artifacts — mark checkboxes, update status, document cross-slice export
2026-06-20 14:54:52 +03:00
b02ee9cd74
docs: document broker fsd pilot completion
2026-06-20 14:54:52 +03:00
9287b97880
docs: prefer subagent-driven execution
2026-06-20 14:54:51 +03:00
3b618d3da0
docs: define frontend fsd broker pilot
2026-06-20 14:54:51 +03:00
52ebe3256d
docs: expand product vision and technical debt
CI / ci (pull_request) Successful in 3m16s
CI / ci (push) Successful in 3m9s
2026-06-19 15:50:21 +03:00
1e007de5be
feat: add broker accounts overview
CI / ci (pull_request) Successful in 3m21s
CI / ci (push) Successful in 3m6s
2026-06-19 14:31:53 +03:00
706bb12b6c
docs: plan broker accounts overview
2026-06-19 14:01:57 +03:00
b7b627a0f3
docs: define broker accounts overview
2026-06-19 13:55:35 +03:00
1dc27a6e9b
feat: добавил инструкции к SDD подходу
CI / ci (push) Successful in 3m13s
2026-06-19 07:38:33 +03:00
d8b3886130
docs: complete broker account sections
2026-06-19 07:11:18 +03:00
be24184e4f
docs: approve broker account sections plan
2026-06-18 23:07:42 +03:00
62cef9b1c4
docs: plan broker account sections
2026-06-18 23:04:47 +03:00
30922aaa28
docs: link broker account feature to roadmap
2026-06-18 22:51:08 +03:00
0c12e6d610
docs: specify broker account sections
2026-06-18 22:47:24 +03:00
5b9d7f3a27
docs: fix historical files to new structure and update
CI / ci (pull_request) Successful in 3m20s
CI / ci (push) Successful in 3m1s
2026-06-18 22:04:09 +03:00
dca8418843
feat: добавил инструкции к SDD подходу
2026-06-18 21:50:38 +03:00
ce538ff443
docs: add pagination loading overlay design spec (C3)
2026-06-18 07:29:35 +03:00
feaff2103e
perf(broker): parallel instrument name loading with per-service rate limit queues
...
- Split single p-queue (5 req/s) into 3 isolated queues:
operations (5/s), instruments (20/s), users (5/s)
- Removed dead instruments param from mapBrokerPortfolio
- portfolio/positions endpoints share raw GetPortfolio cache
- Docs: T_BANK_INSTRUMENTS_RATE_LIMIT, CACHE_TBANK_POSITIONS_TTL,
rate limiting section in tbank-invest.md
2026-06-18 06:34:55 +03:00
49ee364856
feat(broker): per-type positions pagination with independent tables
...
CI / lint (pull_request) Successful in 2m9s
CI / test (pull_request) Successful in 1m56s
CI / build (pull_request) Successful in 2m6s
CI / lint (push) Successful in 1m56s
CI / test (push) Successful in 1m55s
CI / build (push) Successful in 2m19s
- Add type query param to GET /accounts/:accountId/positions endpoint
- Backend filters T-Bank portfolio positions by instrument type before pagination
- Each instrument type (share, bond, etf, fund) has its own frontend table with
independent cursor-based pagination and skeleton loading
- Groups with no positions are automatically hidden
- Cache key includes type for correct per-type caching
- Remove centralized positions pagination state from BrokerAccountDetailPage
- 94 backend tests / 112 frontend tests pass
2026-06-18 06:02:54 +03:00
0517501415
chore: address review feedback - consistent style, spec accuracy, test regex
2026-06-17 13:50:36 +03:00
d16078fce9
docs: add broker operations UI improvements spec
2026-06-17 13:37:52 +03:00
bd8d6c11fe
feat: improove ui
CI / lint (pull_request) Successful in 2m3s
CI / test (pull_request) Successful in 2m5s
CI / build (pull_request) Successful in 2m0s
CI / lint (push) Successful in 1m55s
CI / test (push) Successful in 8m13s
CI / build (push) Successful in 2m8s
2026-06-17 13:15:01 +03:00
a8715258ca
fix: avoid stale tbank grpc deadlines
CI / lint (pull_request) Successful in 2m15s
CI / test (pull_request) Successful in 2m2s
CI / build (pull_request) Successful in 2m7s
CI / lint (push) Successful in 2m2s
CI / test (push) Successful in 2m10s
CI / build (push) Successful in 2m7s
2026-06-17 12:08:48 +03:00
a971d0c8bf
docs: require russian specs
2026-06-16 06:01:48 +03:00
a3817edfc7
docs: add tbank broker portfolios design
2026-06-16 05:40:53 +03:00
106467e5c4
docs: translate docs to russian
CI / lint (pull_request) Successful in 2m8s
CI / test (pull_request) Successful in 1m57s
CI / build (pull_request) Successful in 2m5s
CI / lint (push) Successful in 2m1s
CI / test (push) Successful in 1m51s
CI / build (push) Successful in 2m9s
2026-06-16 05:13:34 +03:00
739405a597
docs: consolidate SDD documentation
CI / lint (pull_request) Successful in 2m10s
CI / build (pull_request) Has been cancelled
CI / test (pull_request) Has been cancelled
CI / lint (push) Has been cancelled
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
2026-06-15 21:04:24 +03:00
c062850e83
docs: refine openapi null response schema
2026-06-15 19:54:31 +03:00
835686d886
docs: improve openapi schema metadata
2026-06-15 05:58:45 +03:00
143b4758c3
docs: refresh openapi contract artifacts
2026-06-15 05:31:55 +03:00
bc2d2af141
docs: add quality gate implementation plan
2026-06-14 22:01:36 +03:00
2e79e69403
docs: translate quality gate spec to russian
2026-06-14 21:50:58 +03:00
ee88b29181
docs: add quality gate contract docs spec
2026-06-14 21:46:38 +03:00
96f003852d
feat: implement portfolio analytics, PnL calculation, and security screener
...
CI / lint (pull_request) Failing after 1m48s
CI / test (pull_request) Successful in 1m47s
CI / build (pull_request) Successful in 1m53s
CI / lint (push) Failing after 1m59s
CI / test (push) Successful in 1m56s
CI / build (push) Successful in 1m50s
- Add buyPrice and buyDate to positions for PnL tracking
- Implement backend analytics service for real-time portfolio performance
- Add server-side security screener with filtering, sorting, and pagination
- Update frontend UI with analytics summaries and sortable screener table
- Optimize MOEX API calls with batch fetching and portfolio-specific caching
- Add unit tests for analytics and screener services
2026-06-14 15:59:25 +03:00
1017fd4f08
docs: add spec and plan for portfolio list enrichment
CI / lint (pull_request) Successful in 2m31s
CI / test (pull_request) Successful in 1m37s
CI / build (pull_request) Successful in 1m57s
CI / lint (push) Successful in 1m57s
CI / test (push) Successful in 1m48s
CI / build (push) Successful in 1m54s
2026-06-14 14:18:29 +03:00
60e456fbb5
perf: reduce portfolio enrichment from 298 to 2 MOEX API calls (-99.3%)
...
Three optimizations:
1. Merge getBondData + getBondMarketData into single batch call
(same endpoint, parse both tables)
2. Remove redundant getSecurityDescription for shortName
(shortName already in market data responses)
3. Batch by market: 1 call for all shares, 1 call for all bonds
(instead of N individual calls)
Before: 298 API calls for 104 positions -> ~29.8s
After: 2 API calls for 104 positions -> ~0.3s
2026-06-14 13:19:22 +03:00