diff --git a/app/talk-agent.hoon b/app/talk-agent.hoon
index e6bd7e01a1..b039882338 100644
--- a/app/talk-agent.hoon
+++ b/app/talk-agent.hoon
@@ -489,6 +489,14 @@
^+ +>
+>(moves :_(moves [ost.hid %diff %sole-effect fec]))
::
+ ++ sh-update
+ ::x adds a talk-update to ++ra's moves
+ ::
+ |= dup/update
+ ^+ +>
+ ::TODO is ost.hid okay here? or do we want to store bone of broker?
+ +>(moves :_(moves [ost.hid %diff %talk-update dup]))
+ ::
++ sh-peep :: peer to path
::TODO remove.
::
@@ -1241,10 +1249,7 @@
nak (~(put ju nak) cha lix)
==
%_ ..sh-work
- ..pa
- %- (ra-know man.she)
- ::TODO send %talk-update instead.
- |=(_pa pa-abet:(pa-report glyphers %glyph nak))
+ (sh-update %glyph cha lix)
==
::
++ join :: %join
@@ -1367,8 +1372,9 @@
[%txt "{
}: {}"]
%= ..sh-work
folks ?~ u.nym
- (~(del by folks) u.her)
- (~(put by folks) u.her [true=~ hand=nym])
+ (~(del by folks) u.her) ::x unset nickname
+ (~(put by folks) u.her [true=~ hand=nym]) ::x set nickname
+ ..sh-work (sh-update %human [true=~ hand=nym])
==
::
++ wo-set :: %set
@@ -1917,7 +1923,16 @@
==
::TODO sh-prod each shell?
$names
- +>(folks (~(uni by +.rad) folks))
+ %= +>
+ folks %- ~(gas by *(map ship human))
+ %+ murn
+ %~ tap by
+ %- ~(uni by +.rad)
+ (~(run by folks) some)
+ |= {s/ship h/(unit human)}
+ ?~ h ~
+ [s u.h]
+ ==
::
++ poke-sole-action :: accept console
::x incoming sole action. process it.
diff --git a/app/talk-guardian.hoon b/app/talk-guardian.hoon
index 5bc830385d..ebe1c2a4e5 100644
--- a/app/talk-guardian.hoon
+++ b/app/talk-guardian.hoon
@@ -346,12 +346,13 @@
pa-abet:(~(pa-notify n.p.dup story) our q.dup)
::
$human ::x change an identity.
- =+ who=(~(get by folks) her)
- ?. ?|(?=($~ who) !.=(who q.dup)) ::TODO? != won't work, right?
- +>.$ ::x no change.
- =. folks (~(put by folks) her q.dup)
+ ?. =((~(get by folks) her) q.dup)
+ +> ::x no change.
+ =. folks
+ ?~ hand.q.dup (~(del by folks) p.dup)
+ (~(put by folks) her u.q.dup)
%+ ra-inform %names
- (~(put by *(map ship human)) her q.dup)
+ (~(put by *(map ship (unit human))) her q.dup)
::
$bind ::x set glyph binding.
%. [%glyph nak]
diff --git a/sur/talk.hoon b/sur/talk.hoon
index 90beb12a56..e9e95dd389 100644
--- a/sur/talk.hoon
+++ b/sur/talk.hoon
@@ -12,7 +12,7 @@
== ::
++ update :: change shared state
$% {$status (pair (set knot) status) :: our status update
- {$human (pair ship human)} :: new identity
+ {$human (pair ship (unit human))} :: new identity
{$bind (pair char (set partner))} :: bind a glyph
== ::
++ cabal :: metaconfiguration
@@ -59,7 +59,7 @@
== ::
++ lowdown :: changed shared state
$% {$glyph (jug char (set partner))} :: new bindings
- {$names (map ship human)} :: new identities
+ {$names (map ship (unit human))} :: new identities
== ::
++ speech :: narrative action
$% {$lan p/knot q/@t} :: local announce