feat(#21): support selected Telegram topics for schedules #55

Closed
Toutsu wants to merge 0 commits from codex/feature/issue-21-telegram-topics into main
Owner

Closes #21

Что изменено

  • /newsession в Telegram Forum Topic теперь закрепляет расписание за выбранной темой вместо создания новой.
  • Если команда запущена из корня форума, бот по-прежнему создает отдельную тему и показывает понятное сообщение при нехватке прав admin/Manage Topics.
  • Групповые уведомления, переносы, отмены и web dashboard updates отправляются в сохраненный thread_id.
  • Добавлено хранение topic_created_by_bot, чтобы удалять только пустые темы, созданные ботом, и не трогать пользовательские темы.
  • Версия обновлена до 1.14.0 в props, compose, deploy workflow, nav и README.
  • PR checks обновлены: Trivy ставится latest, NuGet dependency scan получает packages.lock.json, workflow падает при 0 dependency targets, Dockerfile misconfig findings исправлены.

Проверки

  • TDD: сначала добавлены падающие тесты на routing/topic ownership/topic-aware smoke, затем реализация.
  • dotnet format --verify-no-changes --verbosity minimal — passed.
  • dotnet test — 129 passed.
  • dotnet build — success, 0 warnings, 0 errors.
  • dotnet list package --vulnerable --include-transitive — vulnerable packages не найдены.
  • git diff --check — только стандартные CRLF warnings от Git, whitespace errors нет.
  • Gitea Actions PR Checks run #165 — success; Trivy latest 0.70.0, dependency targets num=5, config files num=2.
  • Fallback merge commit 320aba2877c33f0d82b3c7854b0448a57436b869 pushed to main; deploy run #166 — success.
  • Release: https://git.codeanddice.ru/Toutsu/GmRelayBot/releases/tag/v1.14.0
Closes #21 ## Что изменено - `/newsession` в Telegram Forum Topic теперь закрепляет расписание за выбранной темой вместо создания новой. - Если команда запущена из корня форума, бот по-прежнему создает отдельную тему и показывает понятное сообщение при нехватке прав admin/Manage Topics. - Групповые уведомления, переносы, отмены и web dashboard updates отправляются в сохраненный `thread_id`. - Добавлено хранение `topic_created_by_bot`, чтобы удалять только пустые темы, созданные ботом, и не трогать пользовательские темы. - Версия обновлена до `1.14.0` в props, compose, deploy workflow, nav и README. - PR checks обновлены: Trivy ставится latest, NuGet dependency scan получает `packages.lock.json`, workflow падает при 0 dependency targets, Dockerfile misconfig findings исправлены. ## Проверки - TDD: сначала добавлены падающие тесты на routing/topic ownership/topic-aware smoke, затем реализация. - `dotnet format --verify-no-changes --verbosity minimal` — passed. - `dotnet test` — 129 passed. - `dotnet build` — success, 0 warnings, 0 errors. - `dotnet list package --vulnerable --include-transitive` — vulnerable packages не найдены. - `git diff --check` — только стандартные CRLF warnings от Git, whitespace errors нет. - Gitea Actions PR Checks run #165 — success; Trivy latest 0.70.0, dependency targets `num=5`, config files `num=2`. - Fallback merge commit `320aba2877c33f0d82b3c7854b0448a57436b869` pushed to main; deploy run #166 — success. - Release: https://git.codeanddice.ru/Toutsu/GmRelayBot/releases/tag/v1.14.0
Toutsu added 1 commit 2026-05-12 12:08:24 +03:00
feat(#21): support selected telegram topics for schedules
PR Checks / test-and-build (pull_request) Failing after 3m18s
de9f56c97d
Route new schedules to an existing forum topic when /newsession is sent inside one, create bot-owned topics only from the forum root, and keep group notifications/dashboard updates threaded to the stored topic.

Persist topic ownership so deletion only removes empty bot-created topics, add topic routing tests and smoke coverage, and bump release metadata to 1.14.0.
Toutsu force-pushed codex/feature/issue-21-telegram-topics from dd0c2d1488 to de9f56c97d 2026-05-12 12:08:24 +03:00 Compare
Toutsu added 1 commit 2026-05-12 12:21:11 +03:00
ci: install latest trivy and verify scan inputs
PR Checks / test-and-build (pull_request) Failing after 6m30s
105a051c2f
Enable NuGet lock files so Trivy has dependency targets, fail PR checks when no lock files or language-specific files are detected, and let the installer fetch the latest Trivy release.
Toutsu added 1 commit 2026-05-12 12:31:33 +03:00
ci: satisfy trivy dockerfile checks
PR Checks / test-and-build (pull_request) Successful in 5m12s
e3fdac15b5
Run runtime images as the built-in non-root .NET app user and install Web runtime OS dependencies with --no-install-recommends.
Author
Owner

PR был влит fallback-merge commit 320aba2877c33f0d82b3c7854b0448a57436b869, потому что Gitea не разрешил approve/merge собственного PR через MCP (HTTP 405). PR Checks run #165 и deploy run #166 прошли successfully.

PR был влит fallback-merge commit `320aba2877c33f0d82b3c7854b0448a57436b869`, потому что Gitea не разрешил approve/merge собственного PR через MCP (HTTP 405). PR Checks run #165 и deploy run #166 прошли successfully.
Toutsu closed this pull request 2026-05-12 12:53:17 +03:00
Some checks are pending
PR Checks / test-and-build (pull_request) Successful in 5m12s

Pull request closed

Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Toutsu/GmRelayBot#55