126 Commits

Author SHA1 Message Date
595d059151 feat: add broker events calendar and payout projections for T-Bank accounts
Some checks failed
CI / ci (push) Failing after 3m1s
2026-06-22 06:41:37 +03:00
7b1d649853 docs: add broker events and payouts feature docs
Some checks failed
CI / ci (pull_request) Failing after 2m48s
CI / ci (push) Failing after 2m44s
2026-06-21 21:22:56 +03:00
723250f0b2 docs: add table migration planning docs
Some checks are pending
CI / ci (push) Has started running
2026-06-21 21:14:30 +03:00
6c768ef6a9 docs: mark pilot-migration and broker-accounts-page-migration as implemented
Some checks failed
CI / ci (pull_request) Failing after 3m9s
CI / ci (push) Failing after 3m8s
2026-06-21 20:51:46 +03:00
5ea1fcfe14 docs: mark broker-account-sections-ds-migration spec as implemented 2026-06-21 20:47:01 +03:00
6debf66ac8 docs: mark broker account sections DS migration tasks complete 2026-06-21 20:31:52 +03:00
bd27bba66d docs(sdd): add broker account sections DS migration spec/plan/tasks 2026-06-21 18:00:39 +03:00
860bed159c feat(frontend): migrate BrokerAccountsPage and widgets to design system 2026-06-21 17:42:05 +03:00
bd33412691 feat(frontend): migrate HomePage and SearchBar to design system components
- HomePage: replace inline styles with <Heading>, <Text>, <Box>
- SearchBar: replace <input> with <TextField>, <ul> with <Surface>,
  <li> with <Box>+<Text>+<Chip>, hardcoded hex with theme tokens
- ESLint no-restricted-imports respected via @mui/material/Box deep import
- Logic unchanged, all 111 tests pass
2026-06-21 16:57:19 +03:00
339845dd57 ci(design-system): enforce foundation quality gates 2026-06-21 15:40:21 +03:00
ec13fa8ca2 docs(design-system): add foundation implementation plan 2026-06-21 09:13:19 +03:00
e8dcb27a03 docs(design-system): add foundation specification 2026-06-21 08:56:32 +03:00
1b6fd39be3 feat: add frontend infrastructure libraries (ky, Zustand, MUI, dayjs, clsx, tanstack-table, rhf, zod)
Some checks failed
CI / ci (pull_request) Failing after 2m55s
CI / ci (push) Failing after 2m53s
- install ky, zustand, @mui/material, @fontsource/roboto, dayjs, clsx
- install @tanstack/react-table, react-hook-form, zod, @hookform/resolvers
- create kyClient.ts with auth interceptors
- create Zustand store for session (useSessionStore.ts)
- add MUI theming (theme.ts, ThemeProvider in AppProviders)
- add dayjs utils with ru locale (formatDate, formatRelative)
- add clsx cn() utility
- add base Table component using @tanstack/react-table
- create ADR-015 documenting architectural decisions
- create SDD artifacts: spec.md, plan.md, tasks.md
- build, lint, and 111 tests passing
2026-06-21 08:26:27 +03:00
943a6aec2d fix: move test SessionProvider and SessionContext to shared layer for FSD compliance 2026-06-20 23:10:56 +03:00
1774c7ffd6 refactor(frontend): bring FSD architecture into compliance
Some checks failed
CI / ci (pull_request) Failing after 2m32s
CI / ci (push) Failing after 2m17s
- Remove cross-entity import (broker-position -> broker-operation)
- Extract duplicated formatters to shared/lib/formatters.ts
- Flatten shared/ui/broker-allocation-bar nesting
- Clean up entities/stock/index.ts public API

All 111 tests pass, build clean.
2026-06-20 22:43:44 +03:00
2fd2f0611b refactor(frontend): move BrokerAllocationBar to shared/ui, fix cross-entity imports and missing barrel exports 2026-06-20 22:07:25 +03:00
b9d7a6ad69 refactor(frontend): complete FSD migration - import aliases, BrokerAccountLayout move, search api/ layer 2026-06-20 21:57:04 +03:00
055bc23097 refactor(frontend): migrate auth/portfolio pages to FSD, add layer boundaries
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
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
All checks were successful
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
All checks were successful
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 подходу
All checks were successful
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
All checks were successful
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
All checks were successful
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