Re-implements the behavior of the previous azimuth-tracker as an app
that pokes and peers eth-watcher. Should have maintained identical
outward semantics to the original.
When configuring a watchdog on a path that already exists, we now
"overwrite" it, meaning we throw away all history and trawl the node
for logs again.
If the only config change is the url, however, we silently modify it,
and simply use it "from this point onward".
This matches the behavior of the original azimuth-tracker.
In order to give an initial response to incoming subscriptions (without
resorting to retrieving that data from chain again) we now store event
log history in state.
Instead of discarding pending-logs entirely after sending out updates,
we add them to the watchdog's history.
Just like pending-logs, we remove from the head during a rewind (though
not before exhausting the pending-logs).
Kicks the update timer on application start, then sets a new timer
whenever it's awoken. This aims to ensure eth-watcher never stops
looking for updates periodically.
No longer overwrite messages' timestamp on-receive, instead keeping whatever
timestamp was set by the sender.
This behavior matches that of the late Hall.
Uses the logic existing in azimuth-tracker to implement a new
eth-watcher, which can look at Ethereum nodes for _any_ events, as
opposed to exclusively a subset of the Azimuth contract's events.
Azimuth-tracker will be reimplemented as a dependent of this in
forthcoming commits.
These were deprecated in favor of azimuth-tracker in #1320.
(Azimuth-tracker, however, isn't a general-purpose Ethereum log watcher
tool. Commits to transform it into a more broadly useful tool are
forthcoming.)
* claz-invites-newline:
claz: do invite file reading in +read-invites
claz: ignore empty lines in invites file
Signed-off-by: Jared Tobin <jared@tlon.io>
* publish-fixes:
publish: auto-resubscribe on quit, crash on failed subscription
publish: added permission logic to %serve and import flows
Signed-off-by: Jared Tobin <jared@tlon.io>
* claz-checks:
claz: group state check arms together
claz: factor asserts out of callsites
claz: check pool sizes when inviting
claz: check planet availability for %invites
claz: print proper error messages
Signed-off-by: Jared Tobin <jared@tlon.io>
09cb5f2 added a %send-point call, which is meant to target the delegated sending
contract. For %invites batches, this was the case. Handling of %single, however,
still sent all calls to the ecliptic contract.
This looks at the call tag to determine the target contract.
For generating many sendPoint() transactions for the Delegated Sending
contract. Specify what ship to send the invites as, and a path to a file
containing lines of "~ship,~ticket,0xaddress".
Comes with a generator, |claz-invites, for generating such files, given
a star and a range of its children (and an output path).
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.
We don't care about the static types in the use-cases where we need to
prevent scry (to prevent accidental data disclosure). We can evaluate
the expression, virtualized and untyped, and then just clam.
Publish's %serve command makes builds for notes even if the
publish-info file is missing. It now crashes the build if the file is
missing with a one-line ?> asserting that the file is found in the
list of paths associated with the collection.
Updates all Landscape applications to use the
latest version of urbit-ob, from 3.1.1 to 4.1.2.
Removes urbit-ob from applications that don't
use it (Clock, Launch, Weather).
Compiled JS for all the above included in this
commit.
In Publish, users could get in a bad state if they made a post with
valid udon, and subsequently edited to contain invalid udon.
Furthermore, users subscribed to them would get in the same bad state.
This fixes the original bug, and users who are already in the broken
state will be able to run a recovery command: :publish %state-surgery
which will also fix the downstream broken state of their subscribers.
* jt-gall-refactor: (76 commits)
gall: fix issue id in comment
pills: update solid
gall: handle foreign coup success
gall: only print peek bad result if bad
gall: add basic test harness
pills: update solid, brass, ivory
gall: fix obvious nest-failing tisdot
gall: change '-state' to '-core' for +mo and +ap
zuse, gall: deprecate 'club'
zuse, gall, eyre: deprecate 'cush'
zuse, gall, eyre, dojo: deprecate 'cuft'
gall: remove slam-related printfs
gall: remove deprecated 'mak' from 'agents'
gall: use less vertical spacing throughout
gall: add comment re: unpopulated wex
gall: use less vertical separation when wuthepping
gall: fix whitespace
gall: don't define 'move' as a pair
gall: don't give faces to tags
gall: gut some unused stuff
...
Edit post's UI appearance looked quite different
from what creating a new post looked like.
This commit just brings the styling of post
editing UI a bit closer together with new posts.
Read-only chats had a slightly bigger sigil box, looking skewed to
the left. Its copy also had a different line height than the
chat input itself, which was vertically aligned slightly higher.
This commit standardises the sigil box to 32px across both
and brings both to the same, centered vertical alignment
for the chat input and read-only notice.
If your screen wasn't wide enough, the flex rules would destroy the gap
between columns, which destroyed the look of a table altogether.
By removing the 'one-line' class, and moving the margin-left from
the span element to the parent paragraph (for rows that aren't
the header rows), titles wrap onto another line, which enables
a responsive table and firm table margins.
Additional logic for reducer + array manips
Removing multi-array mutation and comments
Adding comments and working logic.
Fix sigil showing for pending from same aut
Pending messages persist upon circle change
Scaffolding message pending injection
Additional logic for reducer + array manips
Removing multi-array mutation and comments
Adding comments and working logic.
Fix sigil showing for pending from same aut
Pending messages persist upon circle change
Reworking pending boolean logic.
Data structure changed to Map
Checking correct scope of prop, removing dev TODO
Rebase mistake.