diff --git a/TODO.md b/TODO.md index d4ed143..bd9b169 100644 --- a/TODO.md +++ b/TODO.md @@ -85,4 +85,4 @@ | 2026-09-17 | Фикс: при открытии поста (?selected=N) чекбоксы массового выбора на /candidates и /selected сбрасывались, оставался только чекбокс открытого поста. Нужно сохранять отметки при навигации для быстрого массового отказа/отбора | ✅ закрыта | change keep-bulk-checkboxes (sessionStorage vesti_bulk_candidates/vesti_bulk_selected; коммит c8fe5f7, запушен в gitverse; баг-фикс: селектор input[name=ids] вместо #bulk-form input) | | 2026-09-18 | Перевод поста на русский в карточках (кандидатов и отобранных): метка «Оригинал» → закладка, кнопка «🌐 Перевести» → закладка «Перевод». Перевод локальной моделью qwen3:8b-nothink, результат в posts.translated_text (идемпотентный ALTER при старте). Повторный клик без вызова модели. call_ollama не подошла (парсит JSON) — прямой запрос к Ollama /v1 | ✅ закрыта | change post-translate (коммит 4a166fa, запушен в gitverse; e2e на реальной модели пройден) | | 2026-09-18 | **Кросспостинг личных источников** (идея пользователя): Телеграм (@dedinit, свой канал), fediverse GtS (@kpa39l@social.dedinit.ru), блог dedinit.ru (Hugo) должны обмениваться данными и кросспоститься — написанное в Телеграме появляется в блоге, ВК и fediverse; эпогей — в моих новостных каналах (VESTI). Требуется: система-оркестратор (подобно publisher VESTI), интерфейсы: TG (Telethon/Bot API), VK API (VK.ru — личная страница, нужен токен/подтверждение), GtS Mastodon API (есть токен vesti; для kpa39l — отдельный), Hugo-блог (git+deploy). Обмен данными между источниками (двусторонний), дедуп, не перезаписывать чужое | 🔵 открыта | (идея зафиксирована, спроектировать отдельный change) | -| 2026-09-18 | **Markdown-редактор по аналогии с Dillinger/StackEdit** — ОТДЕЛЬНЫЙ модуль для встраивания в другие проекты (сначала в VESTI), основа блогоплатформы chronicle (c7e.ru, гипотеза). Требования пользователя: блоки кода с кнопкой «Скопировать»; включение/выключение нумерации строк (копирование без номеров); подсветка синтаксиса по выбранному языку; выделение инлайн-команд в тексте; живой предпросмотр + GFM. Репозиторий: gitverse kpa39l/chronicle.nixg.ru (клон /opt/chronicle.nixg.ru, ветка master) — там это Фаза 2 ROADMAP.md (задачи 2.1–2.5: веб-редактор React/Vue, Monaco Editor, языки Python/JS/Go/Rust/Bash/SQL, темы, кнопка «скопировать», Markdown-режим+WYSIWYG) | 🔵 открыта | (идея зафиксирована; спроектировать change; увязать с chronicle Фазой 2) | \ No newline at end of file +| 2026-09-18 | **Markdown-редактор по аналогии с Dillinger/StackEdit** — ОТДЕЛЬНЫЙ модуль для встраивания в другие проекты (сначала в VESTI), основа блогоплатформы chronicle (c7e.ru, гипотеза). Требования пользователя: блоки кода с кнопкой «Скопировать»; включение/выключение нумерации строк (копирование без номеров); подсветка синтаксиса по выбранному языку; выделение инлайн-команд в тексте; живой предпросмотр + GFM. Репозиторий: gitverse kpa39l/chronicle.nixg.ru (клон /opt/chronicle.nixg.ru, ветка master) — там это Фаза 2 ROADMAP.md (задачи 2.1–2.5: веб-редактор React/Vue, Monaco Editor, языки Python/JS/Go/Rust/Bash/SQL, темы, кнопка «скопировать», Markdown-режим+WYSIWYG) | ✅ перенесена | 2026-09-20: вынесена в отдельный проект /opt/md-editor (README, ADR, glossary, openspec change md-editor-core) | \ No newline at end of file