diff --git a/pkg/arvo/sys/vane/behn.hoon b/pkg/arvo/sys/vane/behn.hoon index 78f13c81a..d5eb8f5df 100644 --- a/pkg/arvo/sys/vane/behn.hoon +++ b/pkg/arvo/sys/vane/behn.hoon @@ -108,10 +108,9 @@ [duct card] =/ =tang (weld u.error `tang`[leaf/"drip failed" ~]) - :: XX should be - :: [duct %hurl fail/tang card] + :: XX we don't know the mote due to the %wake pattern :: - [duct %pass /drip-slog %d %flog %crud %drip-fail tang] + [duct %hurl fail/tang card] :: +| %tasks :: diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 27491080c..b443b5903 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -1384,7 +1384,7 @@ `[[care.mood case.mood syd] path.mood cage]:[u.res syd=syd] ?~ ref [%give %writ riot] - [%slip %b %drip !>([%writ riot])] + [%pass /drip %b %drip !>([%writ riot])] :: ++ case-to-date |= =case @@ -3781,7 +3781,7 @@ (~(run in moods) |=(m=mood [care.m path.m])) =/ gift [%wris cas res] ?: ?=(^ ref) - [%slip %b %drip !>(gift)] + [%pass /drip %b %drip !>(gift)] :: XX s/b [%behn %wris ...] in $sign? [%give gift] ?> ?=([* ~ ~] res) :_ ~ @@ -5753,7 +5753,25 @@ |= [tea=wire hen=duct dud=(unit goof) hin=sign] ^+ [*(list move) ..^$] ?^ dud - ~|(%clay-take-dud (mean tang.u.dud)) + ?+ tea + ~|(%clay-take-dud (mean tang.u.dud)) + :: + [%drip ~] + %. [~ ..^$] + %- slog + ^- tang + :* 'clay: drip fail' + [%rose [": " "" ""] 'bail' mote.u.dud ~] + tang.u.dud + == + == + :: + :: pseudo %slip on %drip + :: + ?: ?=([%drip ~] tea) + ?> ?=([?(%behn %clay) ?(%writ %wris) *] hin) + [[`move`[hen %give +.hin] ~] ..^$] + :: ?: ?=([%lu %load *] tea) ?> ?=(%unto +<.hin) ?> ?=(%poke-ack -.p.hin) @@ -5909,7 +5927,7 @@ ~(tap in ducts) =/ cancel-moves=(list move) %+ turn cancel-ducts - |=(=duct [duct %slip %b %drip !>([%writ ~])]) + |=(=duct [duct %pass /drip %b %drip !>([%writ ~])]) :: delete local state of foreign desk :: =. hoy.ruf (~(del by hoy.ruf) who) diff --git a/pkg/base-dev/sur/hood.hoon b/pkg/base-dev/sur/hood.hoon index ece12a30e..f0ec60624 100644 --- a/pkg/base-dev/sur/hood.hoon +++ b/pkg/base-dev/sur/hood.hoon @@ -31,6 +31,18 @@ ++ $ |= [? ? ? ? ?] (report-vats:abed +<) + :: + ++ kel-path + |= =desk + ^- path + /[ego]/[desk]/[wen]/sys/kelvin + :: + ++ desk-exists + |= =desk + ?& !=(ud.cass 0):.^(=cass %cw /[ego]/[desk]/[wen]) + .^(? %cu (kel-path desk)) + == + :: ++ abed %= ..abed cone .^(^cone %cx /[ego]//[wen]/domes) @@ -47,7 +59,7 @@ |= desk=_`desk`%base =/ pike (~(got by pikes) desk) =/ zest -:(~(got by rock) desk) - =/ kel-path /[ego]/[desk]/[wen]/sys/kelvin + =/ kel-path (kel-path desk) =/ sink=sink ?~ s=(~(get by sor) desk) ~ @@ -62,8 +74,6 @@ desk=desk ^= running =(%live zest) ^= suspended =(%dead zest) - ^= exists !=(ud.cass 0):.^(=cass %cw /[ego]/[desk]/[wen]) - ^= bad-desk ?!(.^(? %cu kel-path)) ^= meb :: =(list @uv) ?~ sink [hash]~ (mergebase-hashes our desk now her.u.sink sud.u.sink) @@ -90,6 +100,7 @@ !=(%live zest.pike) !(~(has in wic.pike) kel) == == + :: ++ report-vats |= $: verb=? show-suspended=? @@ -97,33 +108,33 @@ show-blocking=? show-nonexistent=? == + =/ [real=(list desk) fake=(list desk)] + (skid ~(tap in desks) desk-exists) + =; reals=tang + ?. show-nonexistent + reals + %+ weld reals + `tang`(turn fake |=(=desk leaf+"nonexistent desk: {}")) %+ turn - %+ skim - %+ turn ~(tap in desks) - |= =desk (vat-info desk) + %+ skim (turn real vat-info) |= vat-info - :: just unconditionally show "bad" desks, whatever that means - ?| bad-desk - &(suspended show-suspended) + ?| &(suspended show-suspended) &(running show-running) &(blocking show-blocking) - &(!exists show-nonexistent) == |= =vat-info + ^- tank :+ %rose [" " " " "::"] :- leaf+"{}" %- flop %- report-vat [verb vat-info] + :: ++ report-vat |= [verb=? vat-info] ^- tang - ?: !exists - ~[leaf+"desk does not yet exist: {}"] ?: =(%kids desk) ~[leaf+"%kids %cz hash: {}"] - ?: bad-desk - ~[leaf+"bad desk: {}"] %- flop ?. verb :~ leaf/"/sys/kelvin: {kul}"