This tutorial was AI-generated and is being fleshed out. Content may be incomplete or change.

Sharing with Others

Each developer has a local database. Here's how to share decisions across a team.

The Challenge

The decision graph lives in .deciduous/deciduous.db, which is gitignored. This is intentional—SQLite databases don't merge well in git.

But teams need to share decisions. When Alice makes architectural choices on her branch, Bob should be able to see them. When that branch merges, everyone should have the context.

The Solution: Patches

Deciduous uses a jj-inspired patch model. Instead of sharing the database, you share patches—JSON files containing nodes and edges.

Each node has two IDs:

ID Type Purpose
id (integer) Local database primary key, different on each machine
change_id (UUID) Globally unique, stable across all databases

Patches use the change_id to identify nodes. When you apply a patch, nodes are matched by their UUID, not their local ID.

The Workflow

  1. Export your branch's decisions as a patch file
  2. Commit the patch file (not the database)
  3. Teammates pull and apply the patch
  4. Idempotent—applying the same patch twice is safe

What's in This Chapter

Let's understand the problem first: The Multi-User Problem →