8.9 KiB
Glossary terminology TODO
Working list from a repo-wide audit of where code/docs use a different word for a concept that glossary.md already gives a canonical name. Nothing here has been changed yet, this is a collection point before any renaming/edit work starts. Grouped by glossary term; only real inconsistencies are listed, not every correct usage that was checked and cleared.
Backend
frontend/src/federation.js— the whole module (class ServerSet,add(server), every request method) talks about "server" throughout where the concept is a Backend.frontend/src/store.js—getHomeServers,getFriendServers,getAllKnownServers,setAllFriendsServers/all_friends_servers,home_servers,lookupServer(~line 313, 325, 332, 359, 76-77, 107-108, 334).frontend/src/views/Friends.vue:16,43— user-visible table column labeled "Server".docs/design-in-progress/tags.md(lines 10, 20, 45, 76-78, 117, 204, 228-229) — "server" used throughout for what the glossary calls Backend (same looseness federation.md already has, but worth normalizing here too since tags.md is in active editing).issues.md:58— "federated home servers" / "user identity" conflation.deploy/dev/docker-compose.yml(instance_a/instance_b) anddocs/development.md:106-108— "instance"/"backend instance" as a near-synonym for Backend.cli-client/toolshed-client.py:11-70,README.md:92—--host/self.hostfor "which backend to talk to".
Discovery
frontend/src/store.js:313—lookupServeraction is the discovery operation, never named "discovery".frontend/src/store.js:347—could not resolve server for friend— "resolve" used instead.docs/design-in-progress/items-labels.md:99,docs/development.md:108— describe the discovery operation via "resolves"/"direct the frontend to the correct backend" without naming it (minor, but candidates for a one-word tightening).
Handle / User handle
— no longer a finding: the glossary now has an explicit Identity entry (handle + keypair, held together as the unit a backend trusts), and this is exactly what these already name. No renaming needed here; if anything, these are the parts of the codebase the new Identity entry should point to as reference implementations.backend/authentication/models.py(class KnownIdentity...),signature_auth.py(author_identity...),frontend/src/identity.js(serializeIdentityRecord...)backend/toolshed/serializers.py:49-57(FriendSerializer) — API field is literally named"username"but its value is a full handle (username + '@' + domain). Already self-acknowledged in a comment atfrontend/src/store.js:404. Highest-value single fix — it's a live API contract, not just an internal name.frontend/src/store.js— several action params destructured as{username}that actually carry a full handle:lookupServer(313),getFriendServers(359),fetchFriendProfile(401-405),login(276-282).frontend/src/views/Login.vue(lines 24, 27-28, 82-83, 102-105, 115-117) — form label/variable "Username" for a field that must be a full user handle (user@domain, per its own validation message at line 103).frontend/src/router.js:51— route param/inventory/shared/:user/:iduses:userfor what's meant to eventually be a full handle; contrast with the sibling route at line 61 which already correctly uses:handle. (Already called out by items-labels.md itself, so low-risk to leave as-is, but listed for completeness.)
Availability policy, Friend/Friendship, Signature/Signing, Strict resolution, Actor, Targeted sharing
No real inconsistencies found — implemented code already uses the glossary's own terms
consistently (availability_policy field name throughout backend+frontend; friend/befriend
consistently; Signature/sign/verify consistently; _HandleNotFound/_resolve_handle in
backend/toolshed/offlinedata.py implement strict resolution faithfully without needing to name
it; Actor and Targeted sharing are unimplemented with no competing name anywhere).
- Checked and cleared, not a real conflict:
frontend/src/neigbors.js'sNeighborsCache/ "neighbor" vocabulary — refers to unreachable backend domains during discovery, not to friendship, despite reading like a synonym at a glance.
Group / Group handle / Membership list
backend/backend/settings.py:36—django.contrib.authships a built-inGroupmodel, shown as "Groups" in the Django admin. Not unregistered anywhere. Will collide by name with the proposed actor-type Group once that's implemented — worth a decision now (unregister the built-in admin Group, or otherwise disambiguate) before the real feature lands.issues.md(issue #3, "Group Concept", ~lines 62-156) — a standalone proposal that conflicts with the already-settleddocs/design-in-progress/groups.mddesign on three points at once:Group.public_key/private_keyfields (contradicts "does a group need its own keypair? No").GroupMembershipbacked by a signedmembership_certificaterather than a plain membership list (contradicts the glossary's Membership list entry).- Bare
Group.handlestrings with no#prefix, e.g."makerspace-nord", and aGroupInvitationIncoming.group_handlefield/API surface (POST /api/groups/etc., ~lines 65-66, 117-121, 150-156) that never uses the#groupname@domainshape. This is a design-conflict issue, not a wording tweak —issues.mdshould be reconciled with (or explicitly marked superseded by)groups.mdbefore anyone implements from it.
Keypair / Private key / Public key
- Wire-format drift on the one field that actually crosses the network:
befriender_keyis used for a public key atfrontend/src/store.js:435,449andbackend/toolshed/api/friend.py:107, while the model field, serializer field, and UI all call the same valuebefriender_public_key/public_key(backend/authentication/models.py:144,backend/toolshed/serializers.py:65,backend/toolshed/api/friend.py:118,frontend/src/views/Friends.vue:81). cli-client/toolshed-client.py(--key,TOOLSHED_KEY,self.signing_key, ~lines 12, 52, 57) andREADME.md:92— never say "private key," just "key"/"Toolshed key", even though it's specifically the private half.
Origin
backend/configure.py:130("Identifier set {} already imported, skipping") and the modelImportedIdentifierSets(backend/hostadmin/models.py:13-19) — call an imported origin dataset an "identifier set".issues.md:206-210— Instance Admin TODO list: "identifier-sets" for Origin and bare "identifiers" for Classification handle, both alternate terms not matching glossary names.
Alias
backend/shared_data/ee_packages.json:40,64— two tags already carry an"alias"field in real data (e.g.SOT54→alias: "TO-92"), but shaped as a bare name string, not anorigin#type:namehandle pointer, and with no unit-conversion concept. It's silently dropped on import today (Tag/TagSerializerhave noaliasfield). Not a different-word issue, but the design doc (which calls Alias "Proposed") doesn't acknowledge this pre-existing, inert precedent — worth reconciling either the data or the doc.
Tag / Property / Category
frontend/src/components/workflow/workflows/BulkItemImportWorkflow.vue:495— CSV column-auto-mapping heuristic treats"type"as a synonym for Category:lowerColumn.includes('category') || lowerColumn.includes('type').
Item Handle
frontend/src/views/Search.vue:30,52,110— a field literally namedhandleis computed here (e.owner==this.user ? e.id : "shared/"+e.owner+"/"+e.id), but it's a router-path fragment, not an Item Handle: no domain-qualifieduser@domain.tld:idshape, ande.owneris a bare username. Whoever implements the real Item Handle later is likely to collide with this existing variable.
Item Label
frontend/src/components/workflow/workflows/FotoFirstBulkImportWorkflow.vue:567-572,822andFotoFirstBulkImportWorkflow2.vue:593-598,847— checkbox "Generate QR codes for items" /importOptions.generate_qr_codesnames exactly the Item Label concept but never uses that term (and the option is currently unwired — declared and defaultedtruebut never read elsewhere).
Item URL / Local id / Domain / Frontend / Definition fingerprint / Fragmentation / Handle collision / Classification handle
No real inconsistencies found — each already uses consistent, glossary-matching vocabulary
(id/item_id for Local id; origin kept cleanly separate from domain everywhere it's used;
get_handle() consistently for Classification handle; no competing names found anywhere for
Fragmentation, Handle collision, or Definition fingerprint, which also doesn't collide with the
unrelated File.hash content-hash field despite both being called "hash").