Per yosoyubik's commentary in urbit/urbit#1799:
The test is expecting that qeu to not be correct.. when it is.
The test [98 [97 ~ ~] [100 ~ [99 ~ ~]]] is a correct queue if we look at
vertical ordering: (mor 98 97), (mor 98 100) & (mor 100 99) all return
%.y, so vertical ordering is correct.
The previous implementation of +apt:to checked only horizontal ordering
between siblings, in this case that would fail: (mor 97 100) returns
%.n, but that is not how you check correctness of hoon treaps.
The solution is to modify that test with a proper "incorrect" +qeu, for
example: ((soft (qeu)) [97 [98 ~ ~] [100 ~ [99 ~ ~]]]). Vertical
ordering is not correct with any of the children.
* algorithm-tests:
pills: update solid
tests: unit tests for +in (set)
tests: unit tests for +to (queue)
tests: unit tests for +by (map)
tests: unit tests for +differ (diff/merge)
hoon: fix for +uno/uni (#1779) set/map union
hoon: fix for +apt:to (#1778) queue correctness
Signed-off-by: Jared Tobin <jared@tlon.io>
* odyssey-wip: (31 commits)
chat-cli: Add clarity
drum: Boot with %chat-cli, without %hall & %talk
chat-cli: Cosmetic improvements
chat: Move eval logic out of /lib/chat-json
chat-cli: Properly support deleting local chats
chat-cli: Subscribe to /updates instead of /all
chat: Move eval logic into lib
chat: removed unnecessary cast
chat: removed overly specific pattern match
chat: style fix for a comment
chat: remove poke-noun arms
chat: fixed eval function to disable scry
chat-cli: Simplify message command type & logic
chat-cli: Implement permission management
chat: /primary path provides truncated initial as well as updates
chat: style fixes, removed some redirect bugs from chat
chat-cli: Match store and hook's path handling
chat-cli: Update prompt on-create
chat: changed wire format and quitting subscription properly on ban
chat-cli: Add debug poke for connecting to store
...
Signed-off-by: Jared Tobin <jared@tlon.io>
Since the current implementation of ;leave is silently destroying state
instead of unsubscribing, we disallow running ;leave on local chats and
provide an explicit ;delete instead.
Set security type during ;create. Use ;invite and ;banish to dis/allow
ships from reading and/or writing.
Talks to the group-store to modify permission groups. Scries into
permission-store to check for white- vs blacklist.
Creating a mailbox would refresh the prompt before setting a new
audience, instead of after. This change corrects the behavior.
Also updates glyph binding code and print style.
Renames, refactors, and occasionally rewrites many of the arms used
within the application. Splits +sh into +sh-in and +sh-out, improves
naming for rendering cores, moves arms around for better organization,
and adds descriptions to all arms.
Brings it largely up to parity with Talk, save for features relating to:
- presence & nicknames
- circle management (permissions, sources)
- deprecated message types
In addition to implementing remaining functionality for basic usage
patterns, makes the following changes:
- glyphs per target, not multiple targets
- assume /~ship/path paths are created/used by the chat-hook
Code cleanup pending.
The subtree in pkg/arvo apparently still has a README in it, which had
gotten only slightly out of sync with the overall project README. This
commit updates its 'contributing' section to point at the appropriate
contributing document.