Skip to content

Releases: axisrow/tg_content_factory

v0.1.17 — Content Pipelines, Image Generation & Auto-Publish

22 Mar 06:18

Choose a tag to compare

What's Changed

  • perf: fix N+1 query in pipelines page, add batch job lookup (#151) by @axisrow in #161
  • fix: resolve 6 remaining bugs (analyzer, csrf, queue, scheduler, logging) by @axisrow in #172
  • db: extend generation_runs for moderation and publishing (#117) by @axisrow in #153
  • feat: add PublishService for sending content to Telegram targets (#120) by @axisrow in #158
  • feat: add moderation queue UI (#119) by @axisrow in #157
  • feat: add CLI publish/queue/approve/reject commands (#122) by @axisrow in #160
  • feat: add ContentGenerationService for pipeline orchestration (#115) by @axisrow in #154
  • feat: add ProductionLimitsService for rate limiting and cost caps (#130) by @axisrow in #169
  • feat: add ErrorRecoveryService with circuit breaker (#130) by @axisrow in #171
  • feat: add ContentAnalyticsService and dashboard (#127 Phase 1) by @axisrow in #166
  • feat: add CLI generate, runs, and run-show commands (#118) by @axisrow in #156
  • feat: add DraftNotificationService for new draft notifications (#126) by @axisrow in #165
  • feat: add QualityScoringService for content assessment (#128) by @axisrow in #167
  • feat: add ABTestingService for variant generation (#129) by @axisrow in #168
  • Fix session cursor cleanup and pipeline CLI test doubles by @axisrow in #177
  • test: add DB assertions to filter purge/hard-delete tests by @axisrow in #181
  • test: add web routes test coverage (~144 new tests) by @axisrow in #182
  • feat: portable semantic backend — NumPy KNN without sqlite-vec by @axisrow in #183
  • feat: full telethon-cli API coverage (63/63 commands) by @axisrow in #194
  • test: increase coverage to 87% (+50 new tests) by @axisrow in #195
  • feat: trend analyzer, channel creator & traffic analytics (#175) by @axisrow in #180
  • feat: portable semantic backend via numpy fallback (#173) by @axisrow in #179
  • perf: cache scheduler jobs with 5s TTL (#151) by @axisrow in #178
  • Refactor Telegram flood-wait handling across runtime and live tests by @axisrow in #176
  • feat: add ContentCalendarService and calendar UI (#124) by @axisrow in #170
  • feat: add publish_times field to ContentPipeline (#125) by @axisrow in #164
  • feat: add CONTENT_GENERATE and CONTENT_PUBLISH task types (#123) by @axisrow in #163
  • feat: add DeepAgents researcher-writer backend for content generation (#152) by @axisrow in #162
  • feat: add auto-publish mode for pipelines (#121) by @axisrow in #159
  • feat: add ImageGenerationService stub (#116) by @axisrow in #155
  • feat: implement image generation adapters (#116) by @axisrow in #196

Highlights

  • Image Generation Adapters — HTTP adapters for Together AI (FLUX), HuggingFace (SDXL), OpenAI (DALL-E), and Replicate with auto-registration from env vars and provider:model_id routing.
  • ContentGenerationService — Orchestration layer for pipeline-driven LLM text generation: resolve prompt template, fetch RAG source messages, call provider, and persist results.
  • Auto-Publish Mode — Pipelines can now auto-publish generated content to target channels without manual moderation approval.
  • PublishService — Transport layer to send text and media to Telegram target channels via the client pool.
  • Moderation Queue UI — Web UI for reviewing, editing, approving and rejecting generated drafts before publishing.
  • DeepAgents Backend — Researcher-writer agent backend for content generation using multi-step reasoning pipeline.
  • CLI Pipeline Commands — Full CLI coverage for pipeline operations: generate, publish, queue management.
  • Scheduler Cache — Cache scheduler jobs list with 5s TTL to eliminate N+1 queries in page context.

Full Changelog: v0.1.16...v0.1.17

v0.1.16 — Content Generation Service & Provider Adapters

17 Mar 03:15
9043b0f

Choose a tag to compare

What's Changed

  • v0.1.16: RAG generation - provider registry & CLI/agent wiring by @axisrow in #147
  • Scheduler: run-now endpoint, next_run display, helper, docs, tests by @axisrow in #149

Highlights

  • GenerationService — Orchestration layer for pipeline-driven content generation: resolve prompt template, fetch RAG messages, call LLM, and persist results to generation_runs table.
  • ProviderService & LangChain Adapter — Provider-agnostic LLM abstraction with LangChain backend supporting OpenAI, Anthropic, Google, and Ollama models with unified async interface.
  • Scheduler Run-Now — Add trigger-now action to the scheduler web UI and CLI so pipelines can be executed on demand without waiting for the next scheduled interval.
  • Logging Hardening — Replace all silent except Exception: pass clauses in pipeline routes with logger.warning/exception calls to surface errors in production logs.

Full Changelog: v0.1.15...v0.1.16

v0.1.15 — Semantic Search & Vector Embeddings

17 Mar 03:15
d5c4175

Choose a tag to compare

What's Changed

  • Complete semantic search milestone v0.1.15 by @axisrow in #146

Highlights

  • sqlite-vec Integration — Load sqlite-vec extension at runtime, create vec_messages virtual table (cosine distance) and add KNN search via MATCH operator to the local search engine.
  • EmbeddingService — Provider-agnostic embedding abstraction supporting OpenAI text-embedding-3-small, Ollama nomic-embed-text and Cohere with incremental batch vectorization.
  • Hybrid FTS5 + Vector Search — Combine keyword (FTS5) and semantic (KNN) results with Reciprocal Rank Fusion for relevance-ranked hybrid queries.
  • semantic_search MCP Tool — Add semantic_search tool to the AI agent MCP server for meaning-based queries — foundation for RAG in content generation pipelines.

Full Changelog: v0.1.14...v0.1.15

v0.1.14 — Content Pipelines Foundation

17 Mar 03:15
cf3b4be

Choose a tag to compare

What's Changed

  • Add Claude Code GitHub Workflow by @axisrow in #135
  • Add per-message engagement stats (views, forwards, reply_count) by @Copilot in #109
  • Channel stats (avg_views, avg_reactions, avg_forwards) in Web UI and CLI list by @Copilot in #107
  • Add message analytics dashboard (top posts, engagement by content type, hourly patterns) by @Copilot in #106
  • Normalize reactions storage into dedicated message_reactions table by @Copilot in #108
  • Add configurable agent prompt templates with validated context variables by @Copilot in #139
  • test: Phase 2 - Repository tests for 85% coverage by @axisrow in #141
  • Fix CI test failures: stale mocks and renamed methods by @axisrow in #143
  • feat: pipelines system & clear pending tasks improvements by @axisrow in #144
  • Add content pipeline foundation by @axisrow in #145

Highlights

  • Content Pipelines DB Schema — Add content_pipelines, pipeline_sources and pipeline_targets tables with source channels, target dialogs, LLM/image model config, publish mode and scheduling interval.
  • Pipeline Web UI — Full CRUD for content pipelines at /pipelines: create, edit, delete, toggle active state, configure source channels and target dialogs.
  • Pipeline CLI — pipeline list|add|edit|delete|toggle subcommands for full CLI parity with the web interface.
  • Prompt Template Engine — Validated template variables ({source_messages}, {channel_title}, {topic}, {date}) with configurable agent prompt templates via Web UI and CLI.

Full Changelog: v0.1.13...v0.1.14

v0.1.13 — Analytics, Engagement Stats & CLI Commands

17 Mar 03:15
91bb9b8

Choose a tag to compare

What's Changed

  • CLI: add my-telegram cache-clear and my-telegram cache-status subcommands by @Copilot in #89
  • refactor: replace single-letter and opaque variable names with descriptive ones by @Copilot in #96
  • CLI: add collect sample — read-only message preview for a channel by @Copilot in #97
  • CLI: add account flood-status and account flood-clear subcommands by @Copilot in #100
  • CLI: add my-telegram topics subcommand for forum channel topics by @Copilot in #98
  • CLI: add my-telegram leave subcommand by @Copilot in #99
  • CLI: add account info subcommand for connected account profiles by @Copilot in #101
  • fix: skip avatar download in CLI account info command by @axisrow in #110

Highlights

  • Message Analytics Dashboard — Add top-posts ranking, engagement breakdown by content type, and hourly activity patterns to the web dashboard.
  • Channel & Per-Message Engagement Stats — Track views, forwards, reply_count and store per-reaction data in a dedicated message_reactions table; surface averages in Web UI and CLI channel list.
  • CLI Account & Channel Commands — Add account auth/info/flood-status/flood-clear and channel resolve subcommands for full Telegram account management from the terminal.
  • CLI my-telegram & collect Commands — Add my-telegram leave/topics/cache-status/cache-clear and collect sample — read-only message preview without DB writes.

Full Changelog: v0.1.12...v0.1.13

v0.1.12 — PyPI Packaging

16 Mar 04:53

Choose a tag to compare

What's Changed

  • Add agent history support and UI improvements by @axisrow in #43
  • feat: add pagination and filters to scheduler tasks by @axisrow in #44
  • feat: inline len<N / len>N filters in search query by @axisrow in #46
  • fix: duplicate identifiers cause incorrect error reporting in bulk import by @axisrow in #47
  • fix: prevent zombie _current_task_id in CollectionQueue by @axisrow in #48
  • fix: wire SearchQuery.name field to DB column by @axisrow in #49
  • fix: replace recursive FloodWait recovery with iterative loop by @axisrow in #50
  • fix: re-raise CancelledError in notifier by @axisrow in #51
  • fix: prevent scheduler double-start from orphaning instance by @axisrow in #52
  • fix: track FTS5 availability and fix connection close() race by @axisrow in #53
  • Improve scheduler page UX: descriptions, unified buttons, test notifications by @axisrow in #54
  • Add SearchQuery-aware search and improve test notifications by @axisrow in #55
  • Unify button styles and add loading feedback by @axisrow in #57
  • Add test coverage for agent tools, CLI, notifier and web auth by @axisrow in #56
  • Unify SearchQuery SQL building into single _build_sq_parts method by @axisrow in #58
  • feat: global exception handler for 500 error debugging by @axisrow in #59
  • refactor: unified task dispatcher and enqueue-based scheduler by @axisrow in #60
  • refactor: complete UnifiedDispatcher migration (P0) by @axisrow in #62
  • fix: narrow _stats_lock scope to prevent starvation by @axisrow in #64
  • fix: atomic task creation to prevent duplicate collection tasks by @axisrow in #65
  • refactor: remove NOTIFICATION_SEARCH, unify notifications by @axisrow in #66
  • fix: resolve PointerEvent bug, unify model list, improve stats display by @axisrow in #67
  • fix: handle stale transaction in apply_filters by @axisrow in #68
  • feat: collect message reactions from Telegram channels by @axisrow in #69
  • feat: filter cleanup page with soft/hard delete by @axisrow in #87
  • refactor: redesign settings page UI with tabs, extracted JS, Bootstrap Icons by @axisrow in #88

Highlights

  • PyPI-Ready Project Metadata — Round out the package metadata with project URLs, classifiers, keywords, author information, and an explicit MIT license so the distribution is ready for a proper PyPI release.
  • Installable CLI and Web Assets — Expose the tg-agent console entry point and include the bundled web templates and static assets in package data so installed builds behave like the source checkout.
  • Release Publishing Workflow — Add the repository release script, token placeholders in .env.example, and the missing license file so the staged TestPyPI-to-PyPI publication flow is reproducible.

Full Changelog: v0.1.11...v0.1.12

v0.1.11 — telethon-cli Backend, Parallel Tests & Benchmark CLI

13 Mar 15:27
b9237f5

Choose a tag to compare

What's Changed

  • refactor: ClientPool architecture with backend abstraction and account leasing by @axisrow in #41
  • feat: prefer db-backed deepagents over Claude when provider configs exist + add test benchmark CLI by @axisrow in #42

Highlights

  • telethon-cli Backend — added telethon-cli==0.1.1 as an alternative Telegram transport; BackendRouter selects between native Telethon and CLI backend via TG_BACKEND_MODE (auto/native/telethon_cli) with automatic fallback
  • Account Lease Pool — new AccountLeasePool manages account availability with rotation-fallback, replacing the previous manual tracking
  • Session MaterializerSessionMaterializer persists sessions to disk and restores them across restarts
  • Parallel Test Suitedb fixture switched to :memory:, tests split into parallel (-n auto) and serial (aiosqlite_serial) runs; ~1.8× speedup (59s → 33s)
  • test benchmark CLIpython -m src.main test benchmark measures speedup of parallel vs. serial test run
  • DeepAgents Priority — when provider configs exist in DB, the agent prefers them over the default Claude backend
  • Real Telegram Policy — added real_tg_safe / real_tg_manual / real_tg_never markers and docs/testing/real-telegram.md policy document

Full Changelog: https://github.com/axisrow/tg_user_search/compare/v0.1.10...v0.1.11

v0.1.10 — Deepagents Fallback

12 Mar 13:35

Choose a tag to compare

What's Changed

  • Enforce explicit photo target selection by @axisrow in #37
  • Codex/agent deepagents fallback by @axisrow in #38

Highlights

  • Explicit Photo Targets — Require an explicit Telegram target for Photo Loader actions, restore the last selected target per account, and surface clear validation errors for missing or invalid destinations.
  • Agent Fallback Availability — Keep the /agent flow available when DeepAgents runs through the legacy fallback path and optional provider libraries are not installed.

Full Changelog: v0.1.9...v0.1.10

v0.1.9 — Photo Loader & Server Controls

11 Mar 11:39

Choose a tag to compare

What's Changed

  • fix: address code review findings for df8537d by @axisrow in #30
  • feat: add CLI stop and restart commands for server by @axisrow in #31
  • feat: improve my-telegram loading and footer layout by @axisrow in #32
  • feat: update search routing and docs by @axisrow in #33
  • feat(photo-loader): add photo upload UI, scheduling, batch sends, and auto-upload jobs by @axisrow in #34
  • revert: rollback dialog cache changes from photo loader by @axisrow in #35
  • feat: persist Telegram dialog cache by @axisrow in #36

Highlights

  • Photo Loader — new web UI for uploading photos to Telegram with multi-file upload, optional captions, and album or separate send modes
  • Scheduled & Batch Photo Sending — queue photo uploads for a specific time or create multiple delayed tasks from a manifest
  • Auto-Upload Jobs — watch a folder and automatically send new photos to a selected Telegram target on a schedule
  • Telegram Dialog Cache — persistent dialog cache with manual refresh support for faster and more stable target selection
  • Server Control Commands — new CLI stop and restart commands for managing the web server
  • UI & Routing Improvements — improved My Telegram loading flow, footer layout fixes, and updated search routing/docs

Full Changelog: v0.1.8...v0.1.9

v0.1.8 — Bootstrap 5 UI, Forum Topics & Agent Improvements

10 Mar 13:47

Choose a tag to compare

What's Changed

  • feat: cache forum topics in DB with API fallback by @axisrow in #27
  • feat(agent): JSONL context with forum topic grouping by @axisrow in #28
  • refactor: migrate web UI to Bootstrap 5 with mobile-responsive layout by @axisrow in #29

Highlights

  • Forum Topics Caching — database-backed forum topics with API→DB fallback, efficient retrieval for forum channels
  • JSONL Context Format — agent context grouped by forum topics for better organization and relevance
  • Pico.css → Bootstrap 5 — migration to Bootstrap 5 with mobile-optimized card views, offcanvas navigation, improved accessibility
  • Mobile-First Design — adaptive layouts for all tables with card-based views on mobile devices

Full Changelog: v0.1.7...v0.1.8