diff --git a/pkg/arvo/app/neo.hoon b/pkg/arvo/app/neo.hoon
index bd2dbd1b15..71aced568f 100644
--- a/pkg/arvo/app/neo.hoon
+++ b/pkg/arvo/app/neo.hoon
@@ -197,6 +197,7 @@
++ do-ack
|= =ack:neo
^- (list card)
+ %- (slog leaf/"do from: {
} to: {}" ~)
?: =(p.ack sys-pith)
%. *(list card)
?~ q.ack
@@ -272,7 +273,7 @@
++ on-move
|= =move:neo
^+ run
- %- (slog leaf/"{(en-tape:pith:neo p.move)} -> {(en-tape:pith:neo p.q.move)}: {<-.q.q.move>}" ~)
+ :: %- (slog leaf/"{(en-tape:pith:neo p.move)} -> {(en-tape:pith:neo p.q.move)}: {<-.q.q.move>}" ~)
=/ src=name:neo (de-pith:name:neo p.move)
=/ dst=name:neo (de-pith:name:neo p.q.move)
?> =(src.bowl ship.src)
@@ -291,6 +292,7 @@
%gone (slog leaf/"Missing dep: {}" ~)
%goof (slog leaf/"nacked on flow {}" tang.u.q.ack)
==
+ %- (slog leaf/"on-ack from: {} to: {}" ~)
(on-move q.p.ack p.p.ack %poke ack/!>(q.ack))
::
++ on-dirt-card
@@ -1728,9 +1730,17 @@
::
++ trace-card
|= =move:neo
- ^- tank
+ ::?: =((snag 1 p.q.move) %srv)
+ :: same
+ %- trace
+ ^- tang
+ :_ ~
:- %leaf
- "{(en-tape:pith:neo p.move)} -> {(en-tape:pith:neo p.q.move)}: {<-.q.q.move>}"
+ %+ welp
+ "{(en-tape:pith:neo p.move)} -> {(en-tape:pith:neo p.q.move)}: "
+ ?+ -.q.q.move (trip -.q.q.move)
+ %poke "%poke {}"
+ ==
++ trace
|= =tang
?. verb same
@@ -1784,6 +1794,7 @@
++ apply
|= =move:neo
^+ arvo
+ %- (trace-card move)
?. =(~ err.block)
:: skip if we have errored
arvo
@@ -1791,7 +1802,6 @@
=. src (de-pith:name:neo p.move)
=/ =name:neo (de-pith:name:neo p.q.move)
=. here +:p.q.move
- %- (trace leaf/"{<-.q.q.move>} {(spud (pout here))}" ~)
?- -.q.q.move
%make (make +.q.q:move)
%poke (poke +.q.q:move)
@@ -1832,26 +1842,33 @@
|- ^+ [bad arvo]
?~ deps
[bad arvo]
- =/ [=term required=? =quay:neo] i.deps
+ =/ [=term =deed:neo =quay:neo] i.deps
+ =/ req=?
+ ?@(deed deed req.deed)
+ =/ timeout=(unit @dr)
+ ?@(deed ~ time.deed)
=/ =care:neo (get-care:quay:neo quay)
- ?: &(required !(~(has by conf) term))
+ ?: &(req !(~(has by conf) term))
=. bad (~(put in bad) term)
$(deps t.deps)
- ?: &(!required !(~(has by conf) term))
+ ?: &(!req !(~(has by conf) term))
$(deps t.deps)
=/ pit=pith:neo (~(got by conf) term)
=/ res (look care pit)
=/ nam=name:neo (de-pith:name:neo pit)
?~ res
?: =(our.bowl ship.nam)
- ?. required
+ ?. req
$(deps t.deps)
=. bad (~(put in bad) term)
$(deps t.deps)
- =? get.block required
+ ?: &(=(timeout `0) req)
+ =. bad (~(put in bad) term)
+ $(deps t.deps)
+ =? get.block req
(~(put in get.block) care pit)
=. run abet:(~(start sale pit) [p/our.bowl here] care)
- =? run !required
+ =? run !req
(stalk:rage care^pit %rely term here)
$(deps t.deps)
?^ u.res
@@ -1867,11 +1884,13 @@
?~ cew
arvo
=/ [=term =pith:neo] i.cew
- =/ d=(unit [req=? =quay:neo]) (~(get by band) term)
+ =/ d=(unit [=deed:neo =quay:neo]) (~(get by band) term)
:: skip extraneous, XX: is correct?
?~ d
$(cew t.cew)
- =/ [req=? =quay:neo] u.d
+ =/ [=deed:neo =quay:neo] u.d
+ =/ req=?
+ ?@(deed deed req.deed)
=/ =hunt:neo [(get-care:quay:neo quay) pith]
=/ =name:neo (de-pith:name:neo pith)
?: &(req =(~ (moor quay name)))
@@ -1976,18 +1995,19 @@
%- ~(gas by *(map term [pith lore:neo]))
^- (list [term pith lore:neo])
%+ murn ~(tap by deps:kook)
- |= [=term required=? =quay:neo]
+ |= [=term =deed:neo =quay:neo]
^- (unit [^term pith:neo lore:neo])
=/ dep=(unit pith) (~(get by crew.wave) term)
+ =/ req ?@(deed deed req.deed)
?~ dep
~| invariant-missing-required-conf/term
- ?< required
+ ?< req
~
=/ =name:neo (de-pith:name:neo u.dep)
=/ =care:neo (get-care:quay:neo quay)
?~ lor=(moor quay name)
- ?< required
- ~
+ ?< req
+ `[term u.dep *lore:neo]
:: %- (slog term (epic:dbug:neo epic) ~)
`[term u.dep u.lor]
::
@@ -2012,7 +2032,7 @@
++ su-give
|= =gift:neo
?. (~(has in poke.dock.wave) %gift)
- ~& skipping-give/here
+ :: ~& skipping-give/here
su-core
(su-poke gift/!>(gift))
::
@@ -2027,7 +2047,7 @@
same
(slog (print-quit:neo u.ack))
?: ?=(%rely p.pail)
- ((slog leaf/"no support for %rely" ~) su-core)
+ su-core :: ((slog leaf/"no support for %rely" ~) su-core)
(mean leaf/"no support for {}" ~)
=/ [caz=(list card:neo) new=pail:neo]
(poke:su-form pail)
diff --git a/pkg/arvo/lib/neo-two.hoon b/pkg/arvo/lib/neo-two.hoon
index 93599f17f4..069625b698 100644
--- a/pkg/arvo/lib/neo-two.hoon
+++ b/pkg/arvo/lib/neo-two.hoon
@@ -498,7 +498,7 @@
++ piek
|= [=care:neo =pith:neo]
^- (unit (unit (axal:neo saga:neo)))
- ~& peek-no-once/[care pith]
+ :: ~& peek-no-once/[care pith]
``(fallback-peek care pith)
::
@@ -506,7 +506,7 @@
|= [=care:neo =pith:neo]
^- (unit (unit (axal:neo saga:neo)))
?~ nce=(now-once care pith)
- ~& peek-no-once/[care pith]
+ :: ~& peek-no-once/[care pith]
~
:: =/ res
:: (fallback-peek care pith)
diff --git a/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon b/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon
index 21140d8afa..963c5cd909 100644
--- a/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon
+++ b/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon
@@ -5,6 +5,7 @@
++ build
|= [=bowl:neo conf=accel-conf]
^- (quip card pail:neo)
+ ~& build/conf
:_ accel-conf/!>(conf)
=/ =term
`@tas`(cat 3 'accel-' (scot %t (spat (pout (snip here.bowl)))))
@@ -30,14 +31,32 @@
|= [=term =pith:neo =lore:neo]
^- [^term vase]
[term (lift-lore lore)]
+ ++ check-prelude
+ =| res=(set term)
+ |= =bowl:neo
+ ^+ res
+ =/ deps ~(tap by deps.bowl)
+ |- ^+ res
+ ?~ deps
+ res
+ =/ [=term =pith:neo =lore:neo] i.deps
+ ?. =(lore *lore:neo)
+ $(deps t.deps)
+ $(deps t.deps, res (~(put in res) term))
::
++ produce
|= =bowl:neo
^- pail:neo
+ =/ missing (check-prelude bowl)
+ ~& hoon/hoon.conf
+ ?. =(missing ~)
+ :- %tang !> ^- tang
+ [leaf/"Missing deps" (turn ~(tap in missing) |=(=term leaf/(trip term)))]
=/ res=(each vase tang)
(mule |.((slap (get-prelude bowl) (ream hoon.conf))))
?: ?=(%& -.res)
vase/p.res
+ %- (slog p.res)
tang/!>(p.res)
--
^- kook:neo
@@ -50,7 +69,7 @@
%+ turn ~(tap in ~(key by crew.conf))
|= =term
^- [_term fief:neo]
- [term req=& [any/~ ~] ~]
+ [term req=| [any/~ ~] ~]
++ form
^- form:neo
|_ [=bowl:neo =aeon:neo =pail:neo]
@@ -58,16 +77,18 @@
|= [=stud:neo vax=vase]
^- (quip card:neo pail:neo)
=/ new=pail:neo (produce bowl)
- ?: =(new pail)
- `pail
- :_ pail
+ %- (slog leaf/"New val: {}" (sell q.new) ~)
+ ?: =(new pail) `new
+ :_ new
%+ turn ~(tap by poke.conf)
|= [=pith:neo =stud:neo]
- [pith %poke [stud q.pail]]
+ [pith %poke [stud q.new]]
::
++ init
|= pal=(unit pail:neo)
- `(produce bowl)
+ =/ new=pail:neo (produce bowl)
+ %- (slog leaf/"New val: {}" (sell q.new) ~)
+ `new
--
--
--
diff --git a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon
index 6386ba980b..9bcb473c9e 100644
--- a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon
+++ b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon
@@ -29,7 +29,7 @@
=/ =crew:neo (~(gas by *crew:neo) src/inner ~)
=/ =made:neo [%hawk-eyre-handler `[stud vax] crew]
:_ sig/!>(~)
- :~ [(welp here.bowl #/[uv/eny.bowl]) %make made]
+ :~ [(welp here.bowl #/[uv/(end [3 4] eny.bowl)]) %make made]
==
==
++ init
diff --git a/pkg/arvo/sur/neo.hoon b/pkg/arvo/sur/neo.hoon
index 29e684f3ce..ec1294ba22 100644
--- a/pkg/arvo/sur/neo.hoon
+++ b/pkg/arvo/sur/neo.hoon
@@ -851,6 +851,12 @@
++ duck (dial dole)
--
::
++$ deed
+ $@ ?
+ $: time=(unit @dr)
+ req=?
+ ==
+::
:: $gift: notification that a children changed
::
+$ gift (axal loot)
@@ -2007,7 +2013,7 @@
%x
p.u.q.q
--
-+$ fief [required=? =quay]
++$ fief [=deed =quay]
::
:: $port: Children API
::