dhaga.docs
Using Dhaga

Tags

Tags are real entities in your graph — browse every tag with its people count, filter your list by one, and merge synonyms so a folded-away name keeps resolving.

A tag is your own vocabulary about your own people — investor, ex-colleague, delhi-trip. Some arrive from extraction when you write a note; some you pin by hand. Either way each one is a real row in your graph, not just a word on a contact, so it can be counted, filtered, merged and given alternate spellings.

Where tags come from

  • Extraction. Writing a note about someone can suggest tags, and each one keeps a receipt pointing at the note that produced it. Delete that note and the tag goes with it — unless a second note, or you, also vouch for it.
  • By hand. Add one from a person's header, or to many people at once from the Tag bulk action on /app/people. A hand-pinned tag has no source note, so it survives the deletion of any note that happened to mention the same word.

See everyone with a tag

Every tag chip on a person's page is a link. Click one and you land on /app/people filtered to everyone carrying it, with the active filter shown and a way to clear it. The × on each chip still removes the tag from that person.

The Tags page

Open /app/tags — it's in the nav More menu. The table lists every tag you have, with:

  • its people count, so you can see which labels actually carry your network,
  • how many alternate spellings it answers to,
  • a link straight to the filtered people list.

Select several tags at once — the selection persists across pages — to delete or merge them.

Delete a tag

Deleting a tag removes it from every contact carrying it, along with its receipts. It never deletes people. Your contacts stay; they just no longer carry that label. It can't be undone.

Merge tags — and why the old name keeps working

VC and investor mean the same thing to you, but extraction wrote both. Select two or more and Merge:

  1. Pick the survivor.
  2. Everyone carrying a folded-away tag ends up carrying the survivor — exactly once, even if they already had both.
  3. Every receipt moves with them, so you never lose the record of which note put a label on someone.
  4. The folded-away names are kept as aliases of the survivor.

That last step is the point. Without it the next note mentioning "VC" would be extracted as a brand-new VC tag and you would merge the same pair forever. Because the name survives as an alias, a later note saying "VC" resolves to investor instead of re-creating the tag you just merged away.

It's one atomic step — either the whole merge lands or none of it does.

Alternate spellings

Each tag has an Also known as list you can edit directly, and there's a global view at /app/tags/aliases. An alias can't be blank, can't duplicate the tag's own name, and can't collide with a tag or alias you already have. (A merge is deliberately more forgiving — a clashing name is skipped rather than failing the whole merge.)

Under the hood

Tags are stored as tags, contact_tags and tag_aliases tables, with contact_tag_sources holding the receipts. The older contacts.tags array is still maintained as a derived cache so existing views keep working, but the tables are the source of truth. All four are included in your export — you can always leave with everything. The contents of files you attached ride in the archive export rather than the JSON one.

On this page