Commit Graph

1605 Commits

Author SHA1 Message Date
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
3888eabaa8
Merge branch 'ames-set-port' (#2057)
* origin/ames-set-port:
  ames: refactors udp init() and bind()
  ames: honor -p for galaxies, with warning
  ames: adds port printfs for all ships
  ames: honor -p for non-galaxies

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-12 15:49:34 +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
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
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
853e33d88a
Merge branch 'newt-test' (#2069)
* origin/newt-test:
  vere: adds tests for newt ipc framing, fixes infinite loop

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 19:40:39 +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
Jared Tobin
69c2f5517c
Merge branch 'malloc-print' (#2061)
* origin/malloc-print:
  vere: print arg to c3_malloc() et. al. on failure

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-10 16:19:11 +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
Joe Bryan
1f05927558 vere: adds tests for newt ipc framing, fixes infinite loop 2019-12-09 18:18:07 -08: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
Joe Bryan
0235b178f9 ames: refactors udp init() and bind() 2019-12-09 11:11:32 -08:00
Joe Bryan
6bd34bbd00 ames: honor -p for galaxies, with warning 2019-12-09 11:10:40 -08:00
Ted Blackman
10e7c0945a vere: print arg to c3_malloc() et. al. on failure 2019-12-08 19:32:55 -05:00
Fang
6722f789a9
chat-hook: no-op on /backlog kick if not synced
This matches the behavior that's used for +kick on /mailbox, among other flows.
2019-12-08 20:08:23 +01:00
Joe Bryan
134e947481 ames: adds port printfs for all ships 2019-12-07 23:59:21 -08:00
Joe Bryan
5784373bb6 ames: honor -p for non-galaxies 2019-12-07 23:56:38 -08:00
Jared Tobin
fa4544406e
Merge branch 'chat-safe-tab' (#2053)
* origin/chat-safe-tab:
  chat: give terminal bell on tab in an empty buffer
  chat: don't crash on tab in an empty buffer

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 17:03:44 +08:00
Jared Tobin
74c3ad619a
Merge branch 'decommission' (#2051)
* origin/decommission:
  ames: remove last remnants of |nuke

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 17:02:55 +08:00
Jared Tobin
31f20c30c6
Merge branch 'philip/ew-printfs' (#2050)
* origin/philip/ew-printfs:
  eth-watcher: silence printfs

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 17:01:01 +08:00
Jared Tobin
dc45806e99
Merge branch 'mp/chat-design-tweak' (#2049)
* mp/chat-design-tweak:
  chat: chat tab bar re-aligned and resized

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 16:55:29 +08:00
Jared Tobin
63bd7c62db
Merge branch 'mp/soto-catch-unidentified' (#2018)
* mp/soto-catch-unidentified:
  soto: mutate cursor for tab complete inserts
  soto: click sets cursor
  soto: catch 'unidentified' key

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 16:51:52 +08:00
Jared Tobin
de7b7d80f0
Merge branch 'pkova/patch-1' (#2017)
* pkova/patch-1:
  vere: filter out content-length header from eyre

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 16:51:00 +08:00
Jared Tobin
27b5ded1d2
Merge branch 'm/chat-eval' (#2009)
* m/chat-eval:
  chat: include .^ paths in its eval failure case
  chat: improve eval implementation

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-07 16:48:42 +08:00
Matilde Park
f5faf6eb11 chat: chat tab bar re-aligned and resized
The placement of the buttons and chat title on Landscape were slightly
off-line with each other. This commit lines them up
and changes font size to f8 to match the mockup closely.
2019-12-06 16:44:45 -05:00
Philip Monk
abde1d8aa9
ames: reduce load by increasing timer delays 2019-12-06 12:11:06 -08:00
Joe Bryan
c8958a2553 chat: give terminal bell on tab in an empty buffer 2019-12-06 12:03:32 -08:00
Joe Bryan
706d25ba79 chat: don't crash on tab in an empty buffer 2019-12-06 12:02:59 -08:00
Joe Bryan
a0d2d41d0c ames: remove last remnants of |nuke 2019-12-06 11:46:55 -08:00
Philip Monk
2d9a043e6f
eth-watcher: silence printfs 2019-12-06 11:19:05 -08:00
Jared Tobin
ea8e331d93
vere: patch version bump [ci skip] 2019-12-06 21:25:01 +08:00
Jared Tobin
5cbfb844e8
Merge branch 'newt-clean' (#2042)
* newt-clean:
  vere: refactors ipc message parsing and assembly

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 21:15:21 +08:00
Joe Bryan
acddc88d66
vere: refactors ipc message parsing and assembly
We've periodically seen malloc failures (ie, returning a null pointer)
in newt.c, our IPC implementation ("memory lost" assertion failures).
I've suspected that they were caused by attempts to allocate zero bytes.
We were not properly following libuv's read callback conventions for
EAGAIN/EWOULDBLOCK, which would've had that result.

The message parsing and assembly was in one large function that I found
it hard to follow, so I've refactored into smaller pieces, so it should
be more maintainable going forward.
2019-12-06 21:13:42 +08:00
Pyry Kovanen
864fa7ef47 vere: filter out content-length header from eyre 2019-12-06 13:21:25 +02:00
Jared Tobin
d5f1efc7bc
Merge branch 'permisson-group-hook-fix' (#2044)
* permisson-group-hook-fix:
  permission-group-hook: fixed permission associate flow

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:24:07 +08:00
Jared Tobin
16b81727d2
Merge branch 'la-scrollback' (#2037)
* la-scrollback:
  chat-store: fix scrollback issue due to malformattedd peek

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:22:20 +08:00
Jared Tobin
383a86032f
Merge branch 'philip/dns-quiet' (#2036)
* philip/dns-quiet:
  dns: give quieter errors

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:21:21 +08:00
Jared Tobin
0bad1401f0
Merge branch 'philip/drum-order' (#2035)
* philip/drum-order:
  drum: print tangs in order

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:20:53 +08:00
Jared Tobin
4251b13d0e
Merge branch 'matilde/chat-feedback' (#2027)
* matilde/chat-feedback:
  chat: Fix chat join link - %ask-history error
  chat: join channel on enter
  chat: wrap long links, join button uses pointer

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:10:55 +08:00
Jared Tobin
3fc349d995
Merge branch 'philip/eth-watcher-silence' (#2022)
* philip/eth-watcher-silence:
  eth-watcher: be quieter about parse errors

Signed-off-by: Jared Tobin <jared@tlon.io>
2019-12-06 12:10:12 +08:00
Isaac Visintainer
5a7c0b1181 permission-group-hook: fixed permission associate flow 2019-12-05 15:45:30 -08:00