feat: M4 content — connectors, library, transcript player and local search - #4
Closed
EliseuSantos wants to merge 3 commits into
Closed
feat: M4 content — connectors, library, transcript player and local search#4EliseuSantos wants to merge 3 commits into
EliseuSantos wants to merge 3 commits into
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…earch - connectors: wikipedia/stackexchange/youtube (fetch-injectable, <=10 results, failures return empty) + timedtext transcript parser - worker: /proxy/youtube/search|transcript and /proxy/rss with Cache API seam (testable), optional YOUTUBE_API_KEY (503 when absent) - db: content repo (attach/list/delete via oplog) + local-only FTS5 search_index (ensure/reindex/searchLocal with bm25 + snippet) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…earch - /library: parallel connector search (wikipedia, stack exchange, youtube via authed proxy), source filter chips, attach-to-topic picker - /library/watch/[id]: youtube-nocookie embed + transcript panel with click-to-seek and follow mode (postMessage api) - topic content list on track view; global search combobox in the header over the local FTS5 index (reindex debounced on table changes) - e2e: library-loop.cy.ts with fully intercepted network; ignore cypress downloads dir Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Milestone 4 (content), complete — search a subject, attach a video to a topic, open it with a synced transcript, and find anything through local full-text search:
packages/connectors):Connectorinterface + registry; Wikipedia and Stack Exchange run client-side (CORS-friendly APIs), YouTube goes through the Worker proxy. All fetch-injectable, ≤10 results, failures degrade to empty — never throw. Plus aparseTimedTexttranscript parser (entity-decoding, attribute-order agnostic)./proxy/youtube/search(Data API key as optional secret — 503 when absent),/proxy/youtube/transcript(pt → en fallback),/proxy/rss(https-only, private-host blocklist, 5s timeout). All bearer-auth'd and cached via a testable Cache API seam (6h/24h/1h).packages/db/search.ts):search_indexvirtual table created client-side only (D1 lacks FTS5, shared migrations untouched), rebuilt via atomicreindexAll, queried with per-token prefix + bm25 + snippets; hostile input sanitized./librarywith parallel unified search, source filter chips and an attach-to-topic picker;/library/watch/[id]— youtube-nocookie embed with clickable transcript cues (seek via postMessage) and follow mode; content list on the topic view; global search combobox in the header (keyboard navigable, reindex debounced on table changes).Tests
library-loop.cy.tswith fully intercepted network: stubbed sources → attach → topic content link → transcript renders → global FTS finds topic and content🤖 Generated with Claude Code