mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
"Which kinds can a search return?" was answered in three places that disagreed. Android's relay subscription listed 34 kinds; desktop's filter factory listed its own copy, which had lost the calendar slots and code snippets; the local cache scan had no kind window at all, so it matched kinds no relay was ever asked for. Same query, three answers. Quartz already knew the protocol half of it — SearchableEvent, 142 reachable kinds, referenced zero times by the client — but only as an interface nothing could enumerate. So it gains SearchableKinds.ALL, and a test that sweeps the whole 16-bit kind space through EventFactory and asserts the recorded list is exactly what came back searchable. A kind added to quartz now lands as a failing test naming the number. Commons gains RenderableKinds: the 46 of those Amethyst has a card for, plus three (pin lists, poll responses, NNS records) that match on content alone and are named as such. Both front ends and the local scan read it. The audit that produced it found fifteen searchable, renderable kinds the search never asked for: pictures, all four video kinds, workouts, git repos, sites, napplets, meeting spaces and rooms, calendar events and software applications. Searching for your own pictures returned nothing. Two findings on the way, from the sweep rather than from reading: - quartz's indexable-content golden test pinned 126 kinds when 142 were searchable, so seventeen — every video kind among them — had their indexed text unpinned. It now reads SearchableKinds.ALL; the regenerated golden adds those seventeen and drops 31890, which is not buildable. - twelve event classes are absent from EventFactory, so their events parse as a plain Event and nothing ever calls indexableContent(). One of them, FeedDefinitionEvent, implements SearchableEvent. Left alone and written down in the plan: a factory bug is not search's to fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DWTxEzzvD3mKkkgE4N7H66