A chronological log of major development milestones, changes, and decisions in TechScry.
Date: March 27, 2025
- ✅ Setup initial project scaffold
- ✅ RSS scraping for YouTube videos
- ✅ Transcript fetching and summarization with OpenAI
Date: March 28–30, 2025
- ✅ Designed HTML email digest templates
- ✅ Implemented
send_digest.pywith preview and mock flags - ✅ SMTP email agent configured via
.env - ✅ Global digest/delivery system with mock/test support
Date: March 30, 2025
- ✅
smart_scorer.py: LLM-based scoring using GPT - ✅ Scoring prompt includes user profile context (interests, channels)
- ✅
user_profile.py: JSON-based per-user interests and notification settings - ✅ Added multi-user support via
run_pipeline.py
Date: March 31, 2025
- ✅ Moved
seen_videos.json,skipped.json, anddigest_queue.jsonunderusers/<user_id>/ - ✅ Created per-user directories with isolated state
- ✅ Updated all logic to use user-based state paths
Date: March 31, 2025
- ✅
send_curated_digest.pyintroduced (user-based curated queue) - ✅ Notification cooldown logic added via
notification_gate.py - ✅ Followed channels now go to digest instead of instant alert
Date: April 1, 2025
- ✅
summary_cache.pyimplemented - ✅ Skips LLM if summary already exists in cache
- ✅ Cache stored in
data/summary_cache.json - ✅ Global summary log continues in
summary_log.jsonl
Date: April 1, 2025
- ✅
tests/mock/structure for digest/skipped previewing - ✅ Flags for
--mock,--preview,--email-safe - ✅ Mock digest data used for email styling/dev testing
- ✅ README.md rewritten to reflect current architecture and future plans
Date: April 1, 2025
- ✅ Archived legacy
scorer.py(replaced by smart scoring) - ✅ Moved mock files into
tests/ - ✅ Modularized summary logic, transcript skipping, and smart scoring
- ✅ Structured
scripts/directory for CLI entrypoints
Date: April 1, 2025
- ✅
loop_runner.pyadded for repeat execution with interval control - ✅ Introduced
--dry-runforrun_pipeline.py - ✅ Introduced
--log-onlyand--save-htmlforsend_curated_digest.py - ✅ Created
logs/pipeline_log.jsonlfor system-wide event logging - ✅ .gitignore updated to exclude data, logs, digests, and user state
Date: April 3, 2025
- ✅
transcript_cache.pycreated to cache transcripts underdata/transcript_cache.json - ✅
transcript_fetcher.pypatched to use cache hits before triggering fetch - ✅ Tested repeated runs with cleared
seen_videosto confirm skip behavior - ✅ Added logging for cache hit/miss and summarization skipping
- ✅ Verified faster runs and no redundant LLM calls
- ✅ Removed experimental
utils/runtime.pyenforcement system (no longer needed)
Date: April 4–6, 2025
- ✅
create-next-appscaffolded with Tailwind, App Router, and shadcn/ui - ✅ Built
DigestPreviewandSkippedVideoscomponents - ✅ Added responsive grid layout, score badges, thumbnails
- ✅ Introduced YouTube modal playback with ESC to close
- ✅ Used real-world sample data to test UI under load
- ✅ Structured mock data under
/mock/, decoupled from preview-only logic - ✅ UI polish: typography, spacing, transitions, hover play icon, blur effect
- ✅ Began refactoring
UserAdminPaneland debug tools - ✅ Created
RISK_RADAR.mdto clarify priorities and prevent overbuilding
To be continued...