Releases: guimatheus92/social-knowledge-base
Releases · guimatheus92/social-knowledge-base
Release list
v0.2.0
Second release — a big round of library, notes, and profile features on top of v0.1.0, plus a nasty navigation bug fixed.
Library & notes
- Select all matching items in a profile's library (respects the active filter), with bulk Delete and Free up space (delete the video, keep the note).
- Note-only items: a freed video stays as a readable note — the curated note + transcript survive. The tile is dimmed with a "media freed" marker, and a Re-download video button restores it (ignores the archive).
- Live progress on note generation (elapsed timer) instead of a static "1–2 min", plus a guard so the same note can't be generated twice at once.
- Honest counts: freed videos show under a note badge instead of the video count, and an empty profile no longer reads as "all noted".
Profiles
- Per-profile categories (presets + custom) and a category filter to narrow the profile list.
- Delete media, profiles, and accounts — individual + bulk, with opt-in file deletion.
- Copy the download path, clickable profile links, library/disk polish.
Fixes
- Navigation could hang from a network view: every account card opened a persistent SSE connection, so six idle cards exhausted the browser's per-host connection limit and blocked opening a library. Streams now open only while a job is active.
- Freed notes stay readable in the UI; re-download restores the original file.
Quality
- Expanded test suite: component tests (Testing Library), integration against real SQLite (no mocks), and e2e; strict lint, typecheck, build, Docker image, and Python ruff all green in CI.
🤖 Generated with Claude Code
v0.1.0 — first release
First public release. Social Knowledge Base turns a creator's short videos into a searchable, markdown knowledge base — an LLM watches (frames + OCR) and listens (transcription) to each video and writes notes you can query. The app is bilingual (PT/EN).
What's in it
- Download engine — gallery-dl (+ yt-dlp + ffmpeg) pulls every Reel, Story, and Highlight from a public Instagram profile, authenticated by browser cookies. Resumable via a download archive; ffmpeg is injected into PATH so audio is never dropped.
- Bilingual Next.js 16 app — add multiple accounts, choose media types, hit Play, and watch live progress over SSE (counts, size, elapsed). Browse the collection through a global gallery and a per-account library with search, filters, and sort. Download a single video by link.
- Reading pipeline — bulk transcription with faster-whisper (GPU/CUDA with automatic CPU fallback) writing
.vtt/.txt/.jsonsidecars, plus themcp-video-analyzerMCP for frames + OCR + timeline. Notes are generated one video at a time via Claude Code (any capable LLM; Claude Opus recommended), in a configurable language (default English). - Search (RAG) — the library is searchable from the transcription alone (ChromaDB), with a per-profile theme overview and citations back to the notes.
- Per-account SQLite manifests (
node:sqlite) as the source of truth — resumable, with no reprocessing of already-handled videos. - Runs anywhere via Docker — a single image bundling Node 24 + Python + gallery-dl + yt-dlp + ffmpeg;
docker compose upand openhttp://localhost:3000.
Engineering foundation
- CI (GitHub Actions), all required on
main: lint, typecheck, unit tests (Vitest, 40 tests), production build, Playwright smoke e2e, a Docker image build, and a Pythonruffcheck. - Strict lint (
--max-warnings 0) with justified, documented exceptions. - Cross-platform stdout parsing (Windows
\and Linux/) so the engine behaves identically on the host and in the container. - Branch protection on
main: the required checks must pass before merging; no force-pushes or branch deletion. - Governance: MIT license, Code of Conduct, Contributing guide, and a Security policy (cookies are treated as a credential and are never versioned).
See the README for setup and usage.