Releases: axisrow/tg_content_factory
Releases · axisrow/tg_content_factory
v0.1.17 — Content Pipelines, Image Generation & Auto-Publish
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
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
What's Changed
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
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
What's Changed
- CLI: add
my-telegram cache-clearandmy-telegram cache-statussubcommands 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-statusandaccount flood-clearsubcommands by @Copilot in #100 - CLI: add
my-telegram topicssubcommand for forum channel topics by @Copilot in #98 - CLI: add
my-telegram leavesubcommand by @Copilot in #99 - CLI: add
account infosubcommand 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
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-agentconsole 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
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 benchmarkCLI by @axisrow in #42
Highlights
- telethon-cli Backend — added
telethon-cli==0.1.1as an alternative Telegram transport;BackendRouterselects between native Telethon and CLI backend viaTG_BACKEND_MODE(auto/native/telethon_cli) with automatic fallback - Account Lease Pool — new
AccountLeasePoolmanages account availability with rotation-fallback, replacing the previous manual tracking - Session Materializer —
SessionMaterializerpersists sessions to disk and restores them across restarts - Parallel Test Suite —
dbfixture switched to:memory:, tests split into parallel (-n auto) and serial (aiosqlite_serial) runs; ~1.8× speedup (59s → 33s) test benchmarkCLI —python -m src.main test benchmarkmeasures 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_nevermarkers anddocs/testing/real-telegram.mdpolicy document
Full Changelog: https://github.com/axisrow/tg_user_search/compare/v0.1.10...v0.1.11
v0.1.10 — Deepagents Fallback
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
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
albumorseparatesend 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
stopandrestartcommands 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
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