WIP! Feature tapestry discovery#32
Open
vcavallo wants to merge 2 commits into
Open
Conversation
…show cross-instance schema divergence
aburra16
added a commit
that referenced
this pull request
Jun 5, 2026
aburra16
added a commit
that referenced
this pull request
Jun 5, 2026
aburra16
added a commit
that referenced
this pull request
Jun 5, 2026
aburra16
added a commit
that referenced
this pull request
Jun 5, 2026
3 tasks
ark-clawds4
added a commit
that referenced
this pull request
Jun 5, 2026
…nition docs(BIBLE): §26 Resolved Definition (story #32, ADR 0028)
4 tasks
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.
local relay concept:
foreign relay concept:
relay discovery UI when selecting the "dog" concept:
foreign concept Element:
local concept Element:
Concept Discovery (This instance):
Concept Discovery foreign concept:
Concept Discovery: cross-instance schema sharing
Adds a "View through concept" picker on
/kg/relay-discoveryso the canonical relay view can be re-scoped to any installed ConceptHeader — including foreign concepts imported from another instance's TA. Picking a foreign concept narrows the table to events under that coordinate, surfaces a banner naming the schema fields this UI doesn't natively render (e.g.country,languagefromnostr-relay-v2), and adds an "Extras" column that pills out their values per row. Picking a non-relay concept (likedog) yields an empty state that explains the mismatch — making the schema-as-contract relationship visible.New
src/api/concept-discovery/module wires the import path:suggested-authors(config-backed today, DCoSL-backed later),concepts-by-pubkey,concept-preview,import(lands foreign events in strfry, runsbuildImportCypher, applies content-aware Neo4j labels, wires the 7 structural ConceptHeader edges viacoreMemberOf, then triggers the existing Pass-3 derive pipeline).installed-conceptsexposes the catalogue for the picker. New/kg/concept-discoverypage provides the import UX with bootstrap suggestion cards + free-form pubkey search + schema preview modal.relay-discovery/aggregatedis now multi-TA aware — it resolves every installed concept coordinate matching a slug instead of hardcoding our TA, and acceptsconceptCoordto scope the view.extrasandappearsUnderare exposed per row so the UI can render schema divergence and which concept(s) each row is published under. Demo panels (Demo Setup + GrapeRank Pipeline) move below the table — operational, not primary.mint-foreign-concept.jsnow mints the full 8-event firmware-shaped bundle plus 3 seed relay elements with the v2-only fields, so the foreign concept appears properly populated in the existing Concepts UI and has real demo data to render.Concept Discovery caveats
The "suggested concept authors" comes from
tapestry/config/suggested-concept-authors.json— the bootstrap config file we set up. Concretely:Seeded by the demo script. When you run
node mint-foreign-concept.js --seed-config, the script appends Magic Mirror's pubkey + name + description to that JSON file (alongside the self-referencing entry that ships by default).Served by the API.
GET /api/concept-discovery/suggested-authorsreads the file at request time, filters out malformed entries, and returns{ success: true, authors: [...] }.Rendered by the UI.
ConceptDiscovery.jsxfetches that endpoint on mount and renders one card per author in the "Suggested concept authors" section. Click → it pre-fills the search input and triggers aconcepts-by-pubkeyfetch.The TODO item below changes only step 2: the same endpoint stops reading the file and instead resolves a DCoSL "concept-author" DList from Neo4j. UI and config-file consumers are unchanged because the response shape stays the same.
TODO (at least)
suggested-concept-authorsto a DCoSLconcept-authorDList; make the canonical DList coordinate configurable inbrainstorm.conf....also....
useTrustWeightsagainst the configured POV):ConceptHeaderfrom reconciliation pruning, so imported foreign TAs aren't repeatedly dropped + their concepts orphanedstrfry import --no-verify)appearsUnderon collapsed rows (icon or tooltip) so users can see at a glance which concepts a relay is endorsed under without expandingPublishRelayForm(andRelayTagPanel) once a real "publish to a foreign concept" use case emergesnostr-relay-v2could declare it supersedesnostr-relay-v1via a tag, and the UI could suggest migrationtagconcept with different vocabulary — to demonstrate plurality across the whole feature surface