Spaces:
Running
Running
Commit History
-
feat(ingest+resolve): classify sources, delegate feeds, resolve by metadata
Ingestion: SourceHydrator had no classifier — anything that was not JSON went to csv.reader(), so RSS XML surfaced as a newline/unquoted-field error. It now classifies feed/html/json/csv/text from Content-Type AND body, follows an HTML page's <link rel="alternate">, and hands feeds to FeedHydrator rather than growing a second parser. The pointer is dropped on handoff so two engines never poll one frequency. CSV requires real delimiter sniffing, so a lying header cannot force markup down that path. Resolution: matching against the frequency name alone could only answer asks that already knew the key. Live probe of the Space showed "typewriter" hitting oz.typewriter.posts while "Robert", "Robert Messenger", "What has Robert posted lately" and "oztypewriter.blogspot.com" all missed — every miss a word present in the signal's own metadata. Adds an alias index fed automatically from feed title/description, author, hostname, label and article titles, with rarity-weighted coverage so "robert…68514f4