Repository navigation
Conversation
Solid Memo wrote up to seven type index registrations per instance: its own sm:Instance one, and one for each class of its data (the catalog, decks, cards, review states, answers and drafts). Solid apps register the library a user owns and reach what is inside through its own links; the type index proposal asks for coarse library types, not every class an app writes. Nothing read the extra registrations, and users were left to tidy them by hand. Creating an instance, a format update and a guest's study moved into the pod now write only the sm:Instance registration. The format update writes nothing outside the instance, so it no longer adds back a registration the user removed. "Findable by other apps" in Preferences goes with them. Removing, deleting and renaming an instance still recognize the registrations earlier versions wrote, so those go when the instance does. Closes: #644 BREAKING CHANGE: Solid Memo no longer registers the classes of an instance's data in the type indexes (dcat:Catalog, sm:Deck, sm:Card, sm:ReviewState, sm:Answer, and sm:Deck for the drafts). A new instance has only its sm:Instance registration, and a format update no longer adds the others. An app that found the data by those classes finds the instance by sm:Instance instead, and its data at the places the instance's folder gives it (docs/data-model.md). Those earlier versions wrote stay until the user removes them in Preferences or removes the instance.
Earlier versions registered each class of an instance's data in the user's type indexes. The app no longer writes them, but they stay in the pods of instances users keep, and cleaning a type index by hand is hard. Preferences now lists those still there for the open instance and removes them when the user asks; it shows nothing when there are none, and is not offered to a guest. Only what is surely Solid Memo's goes: a registration of one of those classes, naming exactly that class's place in the instance, with the id the app gave it in the index document itself. The instance's own registration and other apps' stay, and a registration that also names something else keeps it. Nothing is removed without the user's say, on opening an instance or in a format update. Refs: #644
ixuz
force-pushed
the
fix/type-index-instance-only
branch
from
November 8, 2026 21:54
7aeeb36 to
c21ab91
Compare
This branch has not been deployed
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 and why
Solid Memo wrote up to seven type index registrations per instance: its own
sm:Instanceone, plus one for each class of the instance's data (dcat:Catalog,sm:Deck,sm:Card,sm:ReviewState,sm:Answer, andsm:Deckagain for the drafts). The issue points out that Solid apps register the library a user owns and reach what's inside through their own links. The type index proposal also asks for coarse library types, not every class an app writes. Nothing read the extra registrations, Solid Memo included, and users were left to clean them up by hand.Only the instance is registered
sm:Instanceregistration.Existing pods
#sm-…-id the app gave it in that index document all match.Contract
sm:Instanceand its data from there.api/pod-layout.txtnow lists only thesm:Instanceregistration. The first commit says it breaks (!and aBREAKING CHANGE:footer), andcheck:breakingaccepts it.Checks
npm run check,lint:reuseandlint:commitspass.Closes: #644