MythEclipse
be813b1c0e
feat: update Traefik router rule to use new domain for file upload service
2026-05-29 02:57:50 +07:00
MythEclipse
db5de1367d
feat: extend file schema with archive metadata, implement batch upload processing, and add zip utilities for file handling
2026-05-22 00:51:49 +07:00
MythEclipse
56b929ffb1
feat: enhance file upload process with temporary file handling, improved error management, and metrics logging
2026-05-22 00:29:54 +07:00
MythEclipse
fd5eb98586
feat: implement caching for file info, add rate limiting, and enhance upload handling with retry logic
2026-05-21 23:31:49 +07:00
MythEclipse
10c968cf01
feat: add file_hash column and related index to files table; refactor Telegram API utilities for improved file handling
2026-05-21 22:55:42 +07:00
MythEclipse
52340ee77d
feat: enhance file upload handling with improved file detection, size limits, and response formatting
2026-05-21 22:31:55 +07:00
MythEclipse
06844f1fa1
docs: update CLAUDE.md to include details on temporary file handling for API uploads
2026-05-18 22:03:55 +07:00
MythEclipse
884710fd42
feat: implement temporary file handling for uploads and update tests for dynamic ID verification
2026-05-18 22:01:26 +07:00
MythEclipse
cc3f85284b
docs: add dynamic image fetching details for unit tests in CLAUDE.md
2026-05-18 21:54:57 +07:00
MythEclipse
d58b2390ef
refactor: remove concurrency limit from Telegram upload queue and enhance media group handling
2026-05-18 21:54:39 +07:00
MythEclipse
b91b276214
feat: add support for batch uploads of media groups to Telegram with debounce handling
2026-05-18 21:31:20 +07:00
MythEclipse
0bc12651db
fix: clean up logger info message formatting and remove unused import in rate limit tests
2026-05-18 21:19:38 +07:00
MythEclipse
825e969569
feat: implement multi-bot support for Telegram API with rate limit handling and add task queue for uploads
2026-05-18 21:18:16 +07:00
MythEclipse
721fa3db7d
feat: implement auto-retry for Telegram API requests on error 429 and update documentation
2026-05-18 21:02:38 +07:00
MythEclipse and Claude Opus 4.7
91cfee0b37
fix: load BOT_TOKEN from process.env in tests to prevent leaks
...
- Update test/bot.test.ts to use process.env.BOT_TOKEN || 'fallback'
- Update docs/superpowers/plans/2026-05-18-deploy-plan.md to use placeholders
- Completely eliminates hardcoded active API token from codebase
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:55:03 +07:00
MythEclipse and Claude Opus 4.7
525348b1f3
fix: make forwardToStorage fully dynamic based on fileType
...
- Replace forceDocument boolean with fileType string in forwardToStorage
- Dynamically call matching sendPhoto, sendAudio, sendVideo, sendVoice, sendAnimation, sendSticker, or sendDocument Telegraf API method
- Correctly extract uploaded file details based on what Telegram returned
- Fixes IMAGE_PROCESS_FAILED 500 error when uploading ogg audio, video, sticker, or voice notes via HTTP
- Update upload.ts, bot.ts, and test suites to match the new dynamic signature
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:52:46 +07:00
MythEclipse and Claude Opus 4.7
bf6d5f04c4
fix: bundle migration script and ensure file_hash column exists
...
- Compile src/db/migrate.ts to dist/migrate.js during build
- Copy dist/migrate.js to Stage 2 (runner) inside Dockerfile
- Run bun dist/migrate.js on db:migrate command
- Modify schema.sql to use CREATE TABLE IF NOT EXISTS and ALTER TABLE to add file_hash to existing database instances on VPS
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:46:21 +07:00
MythEclipse
b2de5f583d
feat: add design document for multi-format upload and anti-duplication feature
2026-05-18 19:42:17 +07:00
MythEclipse
a0262e2d46
style: run formatter on modified files
2026-05-18 19:41:51 +07:00
MythEclipse and Claude Opus 4.7
ea4341fdfe
feat: implement deduplication and all media types in bot listener
...
- Expand registered bot listener to support sticker and video_note media types
- Check database for existing telegramFileUniqueId to bypass forwarding duplicates
- Update tests to assert deduplication and new formats handling in bot.test.ts
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:41:16 +07:00
MythEclipse and Claude Opus 4.7
04a2e52250
feat: implement deduplication in HTTP upload router
...
- Compute SHA-256 hash using computeHash for multipart and JSON uploads
- Query database for existing file records with the same hash
- Return existing metadata and download URL immediately on duplicate match without reforwarding to Telegram
- Include fileHash in newly inserted file database records
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:39:55 +07:00
MythEclipse and Claude Opus 4.7
4e805689c1
feat: extend file type classification and implement computeHash
...
- Add sticker (webp) and video_note to classification mapping and file limits
- Handle unknown mime or caption fallback to document
- Implement computeHash utility using Bun.CryptoHasher for sha256 checksums
- Update and add comprehensive tests in file.test.ts
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:38:12 +07:00
MythEclipse and Claude Opus 4.7
22c2133b24
feat: add fileHash column to files schema
...
Update files database schema and test suite to support fileHash property.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 19:36:19 +07:00
MythEclipse
3d2500ed7f
fix: auto-append file extension based on magic bytes or mime type if missing
2026-05-18 09:20:03 +07:00
MythEclipse
5de424bf8e
ci: add write permission for packages to GHCR pushing
2026-05-18 08:56:22 +07:00
MythEclipse
ed7f607ee4
style: sort imports in telegram test to satisfy Biome check
2026-05-18 08:55:22 +07:00
MythEclipse
ed88069e60
fix: assert sendDocument with config.storageChatId to match dynamic mock env in CI
2026-05-18 08:54:24 +07:00
MythEclipse
910d29d5b9
fix: upgrade Bun setup version to latest to support modern lockfile format
2026-05-18 08:53:44 +07:00
MythEclipse
c0827b09c5
fix: make DB tests more robust by checking definition rather than strict module identity
2026-05-18 08:42:49 +07:00
MythEclipse
7f1178d72b
Merge branch 'worktree-agent-a7a26e7873ab5b94e'
2026-05-18 08:41:37 +07:00
MythEclipse and Claude Opus 4.7
1fc4080466
ci: add GitHub Actions pipeline for tests, Docker build, and deployment
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 08:41:29 +07:00
MythEclipse
06a1b38c02
Merge branch 'worktree-agent-aae37f6f3cccac163'
2026-05-18 08:41:00 +07:00
MythEclipse
e4c074c81f
docs: add deployment design and implementation plan
2026-05-18 08:40:56 +07:00
MythEclipse and Claude Opus 4.7
b41fdb4a88
chore: add docker-compose.yml with Traefik configurations
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 08:40:42 +07:00
MythEclipse and Claude Opus 4.7
d7f5180eab
chore: add Dockerfile and dockerignore for production build
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 08:39:57 +07:00
MythEclipse
2c1c5ad638
fix: add Bun database migration runner
2026-05-18 08:25:24 +07:00
MythEclipse
91986d1d51
fix: upload binary files to Telegram with source payload
2026-05-18 08:18:55 +07:00
MythEclipse
9aedc59b69
fix: refine Swagger docs headers and dynamic examples
2026-05-18 07:43:15 +07:00
MythEclipse
6feca3564a
feat: add Swagger OpenAPI documentation endpoints
2026-05-18 07:39:27 +07:00
MythEclipse
aae8ebfbcf
chore: update bun.lock to include @biomejs/biome, typescript, and related CLI packages
2026-05-18 07:30:47 +07:00
MythEclipse
825a8f42cb
chore: add build script and target bun bundle output
2026-05-18 07:30:33 +07:00
MythEclipse
cf79a1f195
style: format and lint codebase using Biome v2
2026-05-18 07:29:01 +07:00
MythEclipse
3f4e697733
feat: migrate entire codebase to TypeScript
2026-05-18 07:27:06 +07:00
MythEclipse
9c5a855f7d
chore: configure typescript, biome, and package scripts
2026-05-18 07:23:22 +07:00
MythEclipse
252b2e4a1f
test: isolate module mocking and add sequential test script
2026-05-18 07:16:30 +07:00
MythEclipse and Claude Opus 4.7
434905313c
refactor: replace TypeScript with ESM JavaScript
...
Remove index.ts and tsconfig.json, update package.json, and install dependencies.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 07:15:05 +07:00
MythEclipse and Claude Opus 4.7
99b820709d
feat: setup HTTP server and bootstrap application
...
Setup HTTP server with Bun.serve and bootstrap Telegram bot and other services.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 07:14:35 +07:00
MythEclipse and Claude Opus 4.7
4996d7548a
feat: add Telegram bot handler
...
Implement Telegraf bot instance with file upload/forward handlers and mock test verification.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 07:13:17 +07:00
MythEclipse and Claude Opus 4.7
be93a06918
feat: add health check route
...
Implement handleHealth endpoint for Bun.serve to verify DB connection.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 07:10:55 +07:00
MythEclipse and Claude Opus 4.7
d915814277
feat: add file routes (download redirect & info)
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-18 07:09:29 +07:00