Agent identity
Most applications ask for an account before showing anything. Nondominium inverts that: the whole lobby reads with no identity, and each rung is climbed only when an action needs it.
Level 0
Anonymous
nothing stored
None. Browse the lobby, open any NDO.
The lobby renders in full with no profile at all.
Level 1
LobbyUserProfile
localStorage
A nickname. Reversible, local to this browser, never gossiped.
ProfileSetupModal on first launch; it cannot be dismissed until a nickname exists.
Level 2
GroupMemberProfile
localStorage, per group
A disclosure choice per group. Membership itself is a DHT entry on the group cell.
GroupProfileModal on first entry to each group.
Level 3
Person entry
zome_person, public DHT
Permanent. Person entries cannot be deleted.
No screen. It is committed as a side effect of acting.
Where the ladder shows in the UI
- The sidebar's bottom row reads Set up profile at level 0 and nickname · Edit profile from level 1.
- The lobby's top strip reads No Lobby profile yet or Signed in as …, duplicating that state two hundred pixels away.
- The lobby header adds Agent: name only once a Person entry exists — the only level-3 indicator anywhere.
- An NDO's initiator renders as a linked name if a Person exists, and as a truncated key if not.
Open questions
- Three different places tell you who you are, and none of them tells you which level you are on.
- Nothing warns before the level-3 write. A Person entry is permanent and is created as a side effect.
- The initiator link points at
/agent/<key>, a route the app does not have.
Live: level 1, level 2, the missing agent route.