Commit Graph

1285 Commits

Author SHA1 Message Date
Liam Fitzgerald
680e60b2a5 language-server: dynamic error highlighting 2020-01-22 11:30:05 +10:00
Liam Fitzgerald
8822097cd2 language-server: basic request/response cycle 2020-01-22 11:25:19 +10:00
Liam Fitzgerald
ed3fc3f54c language-server: first pass at JSON parsers 2020-01-22 11:25:05 +10:00
Fang
da6f27c55c
dbug: augment various apps with /lib/dbug
Also includes lib/verb where it wasn't being used yet.
2020-01-21 12:36:03 -08:00
Fang
421dae13cf
dbug: add agent wrapper for debugging pokes
Use :app +dbug to get the entire bowl, or specific subscriptions.
2020-01-21 12:34:50 -08:00
Jared Tobin
a0cb74b658
Merge branch 'matilde/chat-dark-mode' (#2144)
* origin/matilde/chat-dark-mode:
  chat: fade images on dark mode
  chat: add dark mode

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-14 11:09:18 -08:00
Jared Tobin
430f4c36d6
Merge branch 'lens-fix' (#2162)
* origin/lens-fix:
  lens: don't prematurely flush state

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-14 08:52:01 -08:00
Philip Monk
d578159791
ames: fix assertion bug and add debug info
If we receive the naxplanation before the nack, the assertion in the gte
direction fails.  The intent of the assertion is to make sure top of the
live queue never falls behind current.state, so it was simply in the
wrong direction.
2020-01-14 08:34:12 -08:00
Isaac Visintainer
2cd9fc75a4 lens: don't prematurely flush state 2020-01-10 12:55:58 -08:00
Isaac Visintainer
a07a3747d1 invite-hook: fixed incorrect assertion about outgoing invites 2020-01-09 16:16:39 -08:00
Jared Tobin
754fba30e3
Merge branch 'matilde/meta-morgue' (#2159)
* origin/matilde/meta-morgue:
  soto: add "dead" alt keys to ignored list

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-08 10:12:10 +08:00
Jared Tobin
795b811aca
Merge branch 'matilde/chat-timestamp' (#2146)
* origin/matilde/chat-timestamp:
  chat: correct datestamp to match @da

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-08 10:11:33 +08:00
Matilde Park
a5e68f280d soto: add "dead" alt keys to ignored list
alt+n produces a ~, on top of a key called "Dead". This ignores "dead"
to send the ~ and function as normal.
2020-01-07 20:14:39 -05:00
Jared Tobin
8afad66138
Merge branch 'm/chat-cli-reconnect' (#2147)
* m/chat-cli-reconnect:
  chat-cli: reconnect with actual bowl

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-07 04:25:14 +08:00
Fang
0ff2f44f31
chat-cli: reconnect with actual bowl
Fixes a bug introduced in 4798b9d.

This, uh, fell into the same old case of using an arm from a |_ without
initializing that core with a sample first. In this case, that resulted
in the bowl in connect being the default bowl here. This is fine for
~zod, since it's the default ship, but gives incorrect behavior for
anyone else.
2020-01-07 04:21:49 +08:00
Jared Tobin
01afc2a143
Merge branch 'm/gall-gift-paths' (#2134)
* origin/m/gall-gift-paths:
  gall: (list path) in %fact and %kick

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-07 04:17:32 +08:00
Matilde Park
4143b0060f chat: fade images on dark mode
Adds 60% opacity to dim images within messages in dark mode.
2020-01-06 08:09:53 -05:00
Jared Tobin
cd9624e097
Merge branch 'm/whitespace' (#2149)
* origin/m/whitespace:
  various: remove trailing whitespace
  ci: reject trailing whitespace

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 10:55:13 +08:00
Jared Tobin
f94ba8ce9c
Merge branch 'm/xmas' (#2143)
* origin/m/xmas:
  xmas: remove, obsoleted by alef

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 10:53:15 +08:00
Jared Tobin
836142ad0d
Merge branch 'rcrdlbl/chat-sidebar-margin-fix' (#2137)
* rcrdlbl/chat-sidebar-margin-fix:
  chat: add bottom padding to sidebar items

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 07:45:25 +08:00
Jared Tobin
5b0fd5fb78
Merge branch 'm/webchat-me' (#2135)
* origin/m/webchat-me:
  webchat: render "me" messages in italics

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 07:25:53 +08:00
Jared Tobin
6f7aae3574
Merge branch 'ames-clean' (#2127)
* origin/ames-clean:
  ames: update comment docs

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-01-06 07:25:22 +08:00
Fang
fcf1846b6f
various: remove trailing whitespace 2020-01-03 22:06:42 +01:00
Matilde Park
271e594f61 chat: correct datestamp to match @da
The datestamp in webchat currently leftpads the month numeral.
This commit amends it so that the month numeral doesn't pad with zeroes.
2020-01-01 08:54:36 +01:00
Matilde Park
d45be05c26 chat: add dark mode
Adds custom classes and declarations for dark mode color scheme.
Uses prefers-color-scheme media query to check preference.
2019-12-27 12:15:03 +01:00
Fang
e005cefe77
xmas: remove, obsoleted by alef 2019-12-27 02:19:36 +01:00
Przemyslaw Dabrowski
f8c305b65b chat: add bottom padding to sidebar items
Pretty simple really, fixes issue #2131.
Decided to use padding instead of margin because the underflow is nice,
but not at the detriment of being able to see the last chat preview
2019-12-23 22:24:24 -05:00
Fang
b8a336c607
webchat: render "me" messages in italics 2019-12-23 23:11:04 +01:00
Fang
ae8a57ca25
gall: (list path) in %fact and %kick
Instead of providing a (unit path), allows for (list path), which better
supports the "update to path and subpath cases".

For example, if /things wants updates about everything, and
/things/specific wants updates about the specific thing, they'll both
need to receive a %fact when the specific thing changes.
Previously, these would have been two separate moves. Now, gall handles
the multi-targeting for you.
2019-12-23 13:37:32 +01:00
Fang
ea7c1db61c
various: use =/ in place of =+ ^-
Also faceless =; where appropriate.
2019-12-21 14:29:14 -03:30
Fang
21ac0e513b
hoon: parse =; without face
Allows for =;([a=@ b=@] ...) and similar constructions.

Also affects =/ and =^.
2019-12-21 14:20:11 -03:30
Fang
4798b9df1f
chat-cli: reconnect to chat-store on-kick
Also reconnects on-load, if no chat-store subscription appears to be
open. This should resolve any current disconnects.
2019-12-21 13:02:33 +01:00
Fang
c814114d93
chat-cli: add trace printf for tuba crashes 2019-12-21 12:59:45 +01:00
Fang
5cd8d98dd6
chat-cli: don't pass mark into +poke-noun 2019-12-21 12:58:22 +01:00
Ted Blackman
895f1c069d ames: update comment docs 2019-12-21 01:56:51 -05:00
Jared Tobin
103e375417
Merge branch 'ford-safe' (#2117)
* origin/ford-safe:
  ford: clear build results on +load

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-20 13:22:23 -03:30
Jared Tobin
e1df5545e5
Merge branch 'matilde/chat-name-validation' (#2116)
* origin/matilde/chat-name-validation:
  chat: validate chat names

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-20 10:44:30 -03:30
Jared Tobin
ee0de1a657
Merge branch 'm/clay-u' (#2119)
* origin/m/clay-u:
  clay: implement %u care

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-19 14:09:52 -03:30
Benjamin Summers
5b931657c8 Merge branch 'master' of github.com:urbit/urbit into king-haskell 2019-12-19 08:14:49 -08:00
Jared Tobin
eee651042c
Merge branch 'm/eth-sending' (#2094)
* origin/m/eth-sending:
  eth-sender: do proper nonce reading
  zuse: implement eth rlp decoding
  zuse: correctly encode leading zeroes in rlp data
  zuse: lightly restructure encode:rlp:ethereum
  static gall: update send-txs
  ethio: implement +request-batch-rpc-loose

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-19 11:20:06 -03:30
Fang
3808f02287
clay: implement %u care
Previously, it would always produce ~, regardless of the path asked
about.

Now, it produces a loobean, based on whether or not a file exists at the
specified path.
2019-12-18 21:02:38 +01:00
Jared Tobin
9b0582323c
Merge branch 'philip/eth-watcher' (#2113)
* philip/eth-watcher:
  ph: fix tests by spamming blocks regularly
  gaze: reflect changes to eth-watcher
  ames: better printfs
  jael: only advance lifes
  jael: stop ship-to-ship
  jael: add "eager" mode to avoid hitting nodes as much
  jael: properly store ship sources
  gen: add +azimuth-sources
  jael: re-enable ship-to-ship communication
  eth-watcher: actually stop pending thread when restarting

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-18 12:13:27 -03:30
Philip Monk
1a7658bd91
ph: fix tests by spamming blocks regularly 2019-12-18 11:53:36 -03:30
Philip Monk
de2d0f3014
gaze: reflect changes to eth-watcher 2019-12-18 11:38:56 -03:30
Philip Monk
0e876b3cd4
ames: better printfs 2019-12-18 11:31:17 -03:30
Philip Monk
3d30b3b73c
jael: only advance lifes
This matches the semantics of rifts and makes it more forgiving of
misordered updates.
2019-12-18 11:31:14 -03:30
Philip Monk
16d98e5eda
jael: stop ship-to-ship 2019-12-18 11:19:41 -03:30
Philip Monk
18c3e7253b
jael: add "eager" mode to avoid hitting nodes as much 2019-12-18 10:58:00 -03:30
Philip Monk
15bd35301e
jael: properly store ship sources 2019-12-18 10:42:57 -03:30
Philip Monk
7706ed6a0c
gen: add +azimuth-sources 2019-12-18 10:41:39 -03:30
Matilde Park
e2cfcafc92 chat: validate chat names
Add a regex check for non-lowercase, non-slash, non-hyphen characters,
or numerals, and a quick check for starts-with-slashes, double-slashes,
to a boolean before creating a chat at that path.
2019-12-18 00:53:18 -05:00
Ted Blackman
9fb37543ec ford: clear build results on +load 2019-12-18 00:25:27 -05:00
Philip Monk
7ca3d9624e
ames: handle misordered crashing boons
Two bugs fixed here: first, if the %done reentrancy triggered another
%boon, that wasn't getting translated to a %lost, even though it could
have been the reason the event crashed in the first place.

Second, the %done reentrancy needs to happen after we emit our move, so
that we don't invert the order of the %boon's we produce.
2019-12-17 20:58:30 -08:00
Philip Monk
e5ac690fd3
jael: re-enable ship-to-ship communication
Also fix bug in eth-watcher that didn't cancel outstanding threads when
config changes.

And set default rift for ourselves to 0.
2019-12-17 16:14:07 -08:00
Philip Monk
e88f91f3b2
eth-watcher: actually stop pending thread when restarting 2019-12-17 16:14:02 -08:00
Benjamin Summers
36692278e1 Merge branch 'master' of github.com:urbit/urbit into merge-king 2019-12-16 14:49:20 -08:00
Fang
bdc7fb81e0
eth-sender: do proper nonce reading 2019-12-14 21:50:07 +01:00
Fang
1647d760d1
zuse: implement eth rlp decoding
Also updates existing tests to check both en- and decoding.
2019-12-14 21:39:54 +01:00
Fang
7755bc9718
zuse: correctly encode leading zeroes in rlp data 2019-12-14 21:25:20 +01:00
Fang
5c56cce6ea
zuse: lightly restructure encode:rlp:ethereum 2019-12-14 21:24:56 +01:00
Philip Monk
769a1c96af
eyre: turn sigpam into flog
This error is mostly harmless, but it does indicate we aren't cleaning
up our subscriptions properly.  This lets you silence with |knob.

fixes #2088
2019-12-14 00:49:23 -08:00
Philip Monk
bfd2e533a1
goad: make startup resilient to errors
By not running the risky %goad card in on-init.  Also includes some qol
fixes.
2019-12-13 18:50:26 -08:00
Philip Monk
b14606660a
goad: recompile apps after changes to /sys
OTAs commonly end up in an inconsistent state if apps depend on changes
to /sys.  For example, the %sift changes break on OTA because %spider
needs to be reloaded so that it's aware of the new thread type.  This
adds a %goad app, which reloads all apps after every change to /sys.

Getting this to start OTA is nontrivial, but this pattern should work
for apps in the future.  The changes to clock shouldn't generally be
necessary; they are only necessary here because we can't rely on hood to
start goad, since hood fails to compile if it's run before zuse is
reloaded.  Once goad is active, this will cease to be a problem.
2019-12-13 17:14:51 -08:00
Fang
fc1d852faf
static gall: update send-txs
Renamed to eth-sender. Can still sign eth-txs at multiple gas prices,
fan transactions to multiple nodes, wait for confirmation between
transaction batches (now of user-specified size).

The previous nonce reading implementation was broken beyond belief and
has been taken out. Can be reimplemented once RLP decoding is in the
stdlib.
2019-12-14 00:18:30 +01:00
Fang
b482249712
ethio: implement +request-batch-rpc-loose
Produces batch request results regardless of node-side error.

Reimplements +request-batch-rpc-strict using it.
2019-12-13 23:30:52 +01:00
Elliot Glaysher
44f6a90a4c
hoon: fix typo in +put:in
This fixes +put:in so that it works without the correct jet.  There's a
mismatch where the hoon code is wrong and the jet is correct, so that
when we try to run this on alternate interpreters which may not have the
+in jets, things won't work.
2019-12-13 21:00:21 +08:00
Jared Tobin
aff97bf150
Merge branch 'm/eth-apps' (#2084)
* origin/m/eth-apps:
  claz: clean up head of app file
  static gall: update claz
  ethio: add +get-next-nonce
  zuse: update %eth-get-transaction-count
  zuse: include all relevant azimuth addresses
  ethio: implement +batch-read-contract-strict
  ethio: fail request-rpc more properly
  static gall: update gaze

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 16:27:04 +08:00
Jared Tobin
9ba4505086
Merge branch 'ames-sift' (#2081)
* ames-sift:
  ames: refactor +load
  ames: +send-blob better ship printing
  hood: |ames-sift generator to trace by ship
  ames: add %sift  to trace by ship

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 16:06:32 +08:00
Ted Blackman
35596ca7de
ames: refactor +load 2019-12-12 15:55:37 +08:00
Ted Blackman
d4574b5da4
ames: +send-blob better ship printing 2019-12-12 15:55:36 +08:00
Ted Blackman
c500e03b81
hood: |ames-sift generator to trace by ship 2019-12-12 15:55:36 +08:00
Ted Blackman
d77fb0f685
ames: add %sift to trace by ship 2019-12-12 15:55:32 +08:00
Jared Tobin
85d447f173
Merge branch 'philip/gall-noop' (#2073)
* origin/philip/gall-noop:
  gall: no-op on duplicate watch-ack

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:50:19 +08:00
Jared Tobin
2aa86e3121
Merge branch 'philip/stuck-flow' (#2071)
* origin/philip/stuck-flow:
  ames: recover from mismatched message nums

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:49:53 +08:00
Jared Tobin
e4a7dae888
Merge branch 'philip/login-instructions' (#2039)
* origin/philip/login-instructions:
  eyre: add instructions to login page

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:46:36 +08:00
Fang
8857213000
claz: clean up head of app file 2019-12-11 23:00:49 +01:00
Fang
864b19e075
link-server-hook: disable verb by default 2019-12-11 21:16:20 +01:00
Fang
2048f7ab9e
link: make network comms work
This resolves a number of issues that were keeping communications with
foreign ships from working.

- there was no link-update mark
- there was no +on-arvo handling in link-listen-hook
- link-listen-hook was subscribing to the non-existent "link-hook"
- link-proxy-hook permission check was looking at a wrong path

Also makes link-listen-hook aware that subscriptions might get rejected
because of permissions, so that it ignores failed subscriptions instead
of being loud about it.
2019-12-11 20:49:50 +01:00
Fang
3a859ef585
link: add minimal link-server-hook and link-webext
link-server-hook exposes (parts of) the link-store over eyre, on the
condition that the client is authenticated as the host ship.

link-webext as committed is a very minimal web extension. When its
toolbar button is clicked, it saves the current webpage to /private
in the link-store.
In the future, this should support choosing a target to save to,
highlighting already-saved pages, and many other features.
2019-12-11 20:49:50 +01:00
Fang
25d390d6b1
server: properly defined request-line type 2019-12-11 20:49:49 +01:00
Fang
a95449cc64
link: social bookmarking core implementation
Stores URLs and their titles for the local ship. Can listen to
"submissions" on foreign ships.

Has a primitive perspective on groups, treating them as
always-interesting. Auto-subscribes to all ships in all groups.

Foreign communications untested.
2019-12-11 20:49:49 +01:00
Fang
a272f7c868
group-store: create, add, remove generators 2019-12-11 20:49:48 +01:00
Fang
fab9097110
static gall: update claz
Largely one-to-one port feature-wise.

Support for document polls was added.

Command preparation and verification got split out into
/ted/claz/prep-command, and got a dedicated +prep-result type to
facilitate future support for more complex preparation steps.
2019-12-11 17:32:33 +01:00
Fang
965529525b
ethio: add +get-next-nonce 2019-12-11 17:32:33 +01:00
Fang
a16fbd20ae
zuse: update %eth-get-transaction-count
It apparently now requires a second argument indicating the block to get
the result at.
2019-12-11 17:32:33 +01:00
Fang
f5ea5a4401
zuse: include all relevant azimuth addresses 2019-12-11 17:11:47 +01:00
Fang
9a708fb8f8
ethio: implement +batch-read-contract-strict
And re-implement +read-contract to use that under the hood.
2019-12-11 17:11:47 +01:00
Fang
abe92e289a
ethio: fail request-rpc more properly
strand-fail instead of crashing.
2019-12-11 17:11:47 +01:00
Fang
67825a08d1
static gall: update gaze
Noteworthy changes:
- split block timestamp requests into smaller batches
- track invite events
- improved debug pokes
2019-12-11 17:11:46 +01:00
Benjamin Summers
fa394649ef Merge branch 'master' of github.com:urbit/urbit into merge-king 2019-12-10 22:57:52 -08:00
Philip Monk
3b41a8be15
gall: no-op on duplicate watch-ack
fixes #2070
2019-12-10 18:49:50 -08:00
Philip Monk
29f078bb14
ames: don't forward up the sponsorship chain
This is *actually* why the galaxies are under so much load.  They're in
a forwarding loop with their stars, and this breaks the loop.
2019-12-10 16:20:12 -08:00
Jared Tobin
733d7fd7e5
Merge branch 'philip/leave' (#2068)
* philip/leave:
  gall: remove message type from wire

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 19:34:30 +08:00
Philip Monk
68279d91e4
gall: remove message type from wire
%leave over the network didn't work because we included the message type
in the wire from gall, so the duct for the initial %watch and the %leave
were different.  We need to know the message type so we can route the
acknowledgment as %poke-ack, %watch-ack, or no-op.

This moves this piece of information to a piece of state, where we queue
up the message types per [duct wire].  Ames guarantees that
acknowledgments will come in order.

This also includes an easy state adapter.  The more interesting part of
the upgrade is that we likely have outstanding subscriptions with the
old wire format.  The disadvantage of storing information in wires is
that it can't be upgraded in +load.  So, here we listen for updates on
the old wire format, and when we get them we kill the old subscription,
so that it will be recreated with the new wire format.

As an aside, this is a good example of what we mean when we say
subscriptions may be killed at any time, so apps must handle this case.

Finally, this fixes the "attributing" ship to ~zod for agent requests.
This information was ignored for agent requests, but including it causes
spurious duct mismatches.
2019-12-10 19:32:26 +08:00
Jared Tobin
d21310ace8
Merge branch 'la-unread' (#2064)
* origin/la-unread:
  chat-js: fix unread counts and indentation

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 17:05:43 +08:00
Jared Tobin
3f50a11e48
Merge branch 'philip/drum' (#2063)
* origin/philip/drum:
  drum: revert tang ordering change

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 16:26:49 +08:00
Philip Monk
e7c8a44e11
ames: recover from mismatched message nums
We've seen issues where the message-num of the head of live.state is
less than current.state.  When this happens, we continually try to
resend message n-1, but we throw away any acknowledgment for n-1 because
current.state is already n.  This halts progress on that flow.

We don't know what causes us to get in this bad state, so this adds an
assert to the packet pump that we're in a good state, run every time
the packet pump is run.  When this crashes, we can turn on |ames-verb
and hopefully identify the cause.

This also adds logic to +on-wake in the packet pump to not try to resend
any messages that have already been acknowledged.  This is just to
rescue ships that currently have these stuck flows.

(Incidentally, I'd love to have a rr-style debugger for stuff like this.
Just run a command that says "replay my event log watching for this
specific condition and then stop and let me poke around".)
2019-12-09 23:31:18 -08:00
Ted Blackman
3ebeb8243f Merge remote-tracking branch 'origin/master' into king-haskell 2019-12-09 20:26:07 -05:00
Logan Allen
30264bbc93 chat-js: fix unread counts and indentation 2019-12-09 13:05:56 -08:00
Philip Monk
5ff9e04204
drum: revert tang ordering change
Turns out this wasn't a regression, it was intended behavior.  I
continue to believe it's the wrong behavior, but that will require a
longer discussion.
2019-12-09 11:47:48 -08:00