refactor(tags): β»οΈ π·οΈ prefix user tags with tag- to disambiguate from system classifiedAs#841
Merged
phoebus-84 merged 1 commit intomainfrom Apr 21, 2026
Merged
Conversation
β¦ system classifiedAs classifiedAs stores both user free-form tags and system-derived metadata (machine-*, material-*, category-*, powercompat-*, env-*, etc.), forcing display code to maintain drifting per-component blocklists to hide system tags from users. Introduce a dedicated TAG_PREFIX.USER = "tag" prefix applied symmetrically on save and read: - lib/tagging.ts: add userTag, isUserTag, stripUserTagPrefix, isSystemTag, extractUserTagValues, normalizeUserTagsForSave helpers plus SYSTEM_TAG_PREFIXES and LEGACY_SYSTEM_TAG_PATTERNS constants. - Save sites (useProjectCRUD handleProjectCreation + handleMachineCreation, resource claim) normalize user-entered tags to tag-<slug>. - URL filter producers (ProductsFilters, ProjectsFilters) prefix on apply and strip on load so chips show "laser cut" instead of "tag-laser-cut". - Display sites (ProjectCardNew, ProjectDetailNew, GeneralCard, ProjectsTableRow, ProductsActiveFiltersBar) route through extractUserTagValues, removing bespoke blocklists (including stale mat:, c:, pc:, env:, pwr:, rep:, m: entries). - Legacy un-prefixed tags remain visible via backwards-compat fallback in extractUserTagValues; no data migration required. Closes interfacer-gui-i46.
This was referenced Apr 21, 2026
Closed
phoebus-84
added a commit
that referenced
this pull request
Apr 21, 2026
- **style: π¨ lighter markdown editor (#763)** - **feat: β¨ links to projects now lead to new products page (#813)** - **feat: β¨ improve UX for unauthenticated users (#814)** - **fix: π project images editing (#817)** - **fix: π qr code disappear for projects that have it and new tabs mapping for url params (#818)** - **feat: β¨ add recyclability and repairability filters (#821)** - **feat: interfacer gui big rework phase 1 (#825)** - **fix: π migrate to mominatim for location autocomplete and lookup (#834)** - **feat(dpp): β¨ dedicated DPP detail page with prototype-matching UI (#835)** - **feat(layout): β¨ show top bar and sidebar for unauthenticated users (#836)** - **fix(nav): π Designs links to /designs, fix active state catch-all (#837)** - **feat: β¨ wire sorting orderBy and distinctPrimaryAccountableCount from backend (#838)** - **feat(dpp): β¨ redesign DPP tab to match Figma prototype (#839)** - **refactor(ui): remove redundant owner banners and fix search filters (#840)** - **refactor(tags): β»οΈ π·οΈ prefix user tags with tag- to disambiguate from system classifiedAs (#841)** --------- Co-authored-by: Puria Nafisi Azizi <puria@dyne.org>
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.
classifiedAs stores both user free-form tags and system-derived metadata (machine-, material-, category-, powercompat-, env-*, etc.), forcing display code to maintain drifting per-component blocklists to hide system tags from users.
Introduce a dedicated TAG_PREFIX.USER = "tag" prefix applied symmetrically on save and read:
Closes interfacer-gui-i46.