| 2026-09-21 |
Мультиюзерность: фронтенд и ТЗ (ТЗ 0.34, батч 3)
...
- userScope.ts: localStorage-ключи скоупятся по user_id (второй аккаунт
в том же браузере не видит чужих фильтров/дедупа тостов)
- realtime.ts (дедуп own-activity) и ProjectView.vue (фильтры проекта) —
через scopedKey
- App.vue: setStorageUserId из /auth/me
- SettingsView: раздел «Токены MCP» — генерация (plaintext один раз,
с копированием), список, отзыв; api.ts: типы + listMcpTokens/
createMcpToken/deleteMcpToken
- McpView: текст «токен в Настройках» (connectTokenText) в ru/en/uk
- Локали: ключи mcpToken* в ru/en/uk (в ru/en/uk попали литералы
ru_new/en_new/uk_new вместо блоков — исправлено)
- docs/TZ.md → 0.34: 1.2 (мультиюзерность + claim-on-first-login),
3.10 (per-user токены, MCP_TOKEN удалён), 5 (User, McpToken,
AppSetting/AppSettingGlobal)
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
5 hours ago
|
Страница-инструкция по MCP + ссылка в настройках (ТЗ 0.31)
...
- Новый вид McpView (/mcp-help): что реализует, инструменты, адрес сервера
(из location.origin, кнопка «Скопировать»), токен, примеры подключения
(Claude Code и универсальный JSON), раздел про контекст проекта.
- Карточка-ссылка «MCP для ИИ-агентов» в «Настройках».
- Тексты i18n ru/en/uk.
- vite-прокси: '/mcp' регэкспом ^/mcp(/|$) — путь страницы /mcp-help
не должен проксироваться в backend (префиксный матч ловил её).
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
8 hours ago
|
Пачка UI + Ollama + SSE-реактивность (ТЗ 3.14)
...
- Бейдж приоритета с иконкой (PriorityBadge) во всех видах
- Фильтры страницы проекта запоминаются в localStorage (глубокий watch)
- DurationInput (ч/мин, шаг 5), ConfirmDialog, пагинация, иконки удаления
- Диалоги: «В архив» warning, кнопки поменяны местами
- Автодетализация на Ollama 192.168.1.130 (qwen3.5:2b, think:false)
- SSE /api/events: шина realtime, публикации после коммита, coarse-события + refetch
- Фронт: realtime.ts, удаление поллинга StackView, refetch по видам,
подавление во время drag сада, дедуп XP-тостов
- Тесты 93 passed, e2e двух вкладок; ТЗ 0.24
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
11 hours ago
|
| 2026-09-20 |
feat(frontend): переименование в GNexus Tasks, тайтлы страниц
...
- Сервис «gntodo» → «GNexus Tasks»: brand топбара, kicker шапок видов,
subtitle навигации (ru/en/uk), index.html, PWA-манифест (short_name Tasks)
- taskui: APP_NAME + setPageTitle(); тайтлы через meta.title роутов
(afterEach в main.ts) — «{страница} — GNexus Tasks»
- TaskView/ProjectView уточняют тайтл после загрузки (watchEffect):
заголовок задачи / имя проекта
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
2 days ago
|
| 2026-09-19 |

UI: ревью всех страниц (mobile+desktop), полный набор компонентов кита
...
- Root-фикс intrinsic-ограничений кита: .card max-width 340px → 100%,
overflow visible (иначе dropdown-меню обрезается).
- Все виды задач (стек/дерево/список) — двухстрочные карточки:
заголовок + меню «⋯» (GnDropdown c GnIconButton-триггером, статусы
с отметкой текущего, подзадача в дереве, удаление с подтверждением)
и строка бейджей (новый TaskBadges: статус, проект, P{n}, ≈время,
recurring, дедлайн, бюджет, теги).
- Редактирование задач/проектов перенесено в GnDrawer (детализация
в стеке, карточка — только просмотр).
- Удаления — через GnConfirmDialog (confirm-variant danger), промпты
создания проекта/тега/подзадачи — через модалку QuickPrompt вместо
window.prompt.
- Действия — тосты (useToast) вместо inline-алертов; при загрузке —
GnSkeleton; пустые состояния — GnEmptyState с CTA-кнопками.
- Список: фильтры в GnToolbar с авто-применением (компактные,
фиксированная ширина select-wrap).
- Настройки: GnRadioGroup для валюты и языка; «3 варианта» —
компактная форма времени.
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
2 days ago
|
i18n: ru/en/uk, язык из gnexus auth + переопределение в настройках
...
- vue-i18n v11 (legacy:false, fallback ru); локали src/locales/{ru,en,uk}.ts,
en/uk типизированы как typeof ru — полнота проверяется vue-tsc
- резолюция: settings.language (override, ''=auto) → SSO profile.locale → ru
- backend: /auth/callback прокидывает profile.locale в сессию; /api/settings
получил поле language, PUT стал частичным (model_fields_set)
- taskui.ts и все views переведены на t(); дни недели и даты через Intl
- в Настройках — карточка «Язык интерфейса», переключение мгновенное
- тесты: test_settings.py (частичный PUT, 422), AUTH_USER += locale
- ТЗ 0.5: новый пункт 3.11 «Мультиязычность»
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
2 days ago
|
Правки по обратной связи: прогноз = LLM, валюта в настройках, «3 варианта» +50%
...
- прогноз длительности: убрана медиана истории и эндпоинт /predict —
оценка приходит только из LLM-детализации (или вручную)
- валюта бюджетов — глобальная настройка (app_settings): UAH/USD/EUR/GBP/PLN,
выбирается один раз и применяется всюду; UI — страница «Настройки»,
суммы через formatMoney (символ по настройке)
- «3 варианта»: допуск нестрогий — оценка может превышать доступное время
до +50%, короткие задачи подходят всегда; задачи без оценки — фолбэк
Co-Authored-By: Claude Code <noreply@anthropic.com>
root
committed
2 days ago
|