Commit Graph

1089 Commits

Author SHA1 Message Date
Liam Fitzgerald
a7a539bb24 link: leave collection on leaving associated group
Automatically leaves a collection when the user is removed from a group
2020-04-16 21:45:58 +10:00
Fang
4c4858f198
chat-hook: clarify backlog wire handling logic 2020-04-16 01:44:36 +02:00
Fang
0f05ed3149
chat-hook: consistently pull backlog subs
We weren't accounting for backlog subscriptions with non-zero message
indexes in their wires. Now, we look through all of our outgoing
subscriptions to identify relevant backlog subscriptions, and leave all
of those.

The more proper fix here is to not include message indexes in the wire
in the first place, since we don't ever reuse that anywhere. But that's
a more invasive change, so we just leave a TODO for it instead.
2020-04-15 19:26:58 +02:00
Fang
084ce356a8
chat-hook: on %remove, try our best to pull subs
Previously, we were removing the relevant entry from the `synced` map
before calling `+pull-wire`, which requires an entry to still be there.
This lead to subscriptions not actually being pulled, commonly leading
to "subscribe wire not unique" errors on re-join.

In addition to fixing that, `%remove` actions now try to pull the
subscription regardless of whether they have an entry in the `synced`
map or not. `%leave` is always safe, and we might want to clean up
subscriptions that shouldn't be there anymore in the first place.
2020-04-15 16:29:26 +02:00
Liam Fitzgerald
963d04831d Merge branch 'master' into lf/publish-del-edit 2020-04-15 10:07:29 +10:00
Liam Fitzgerald
c46642af8d publish: fix check on edit-comment delta
An incorrect check caused comment editing to never be propagated.
2020-04-15 09:57:07 +10:00
Logan Allen
bfcaf6468e contact-hook: tested it, got /synced path working, and subscriptions loading 2020-04-14 18:05:32 -04:00
Logan Allen
b6e4566e61 contacts: fix group deletion and do some quality of life fixes 2020-04-14 21:33:01 +00:00
ixv
e5cf4fb813
Merge pull request #2720 from urbit/la-channel-err
channel.js: added way to handle event source errors more smoothly, and implemented in chat
2020-04-14 11:40:02 -07:00
Fang
7b5f7cde6b
link-listen-hook: partially revert 05e6519
We still want to auto-opt-in to new collections for _unmanaged groups_,
because we have no other way to join them.
2020-04-14 16:12:09 +02:00
Isaac Visintainer
d8cdbfdeb8 release: urbit-os-v1.0.13 2020-04-13 19:26:13 -07:00
ixv
228bee42e4
Merge pull request #2707 from urbit/ixv/cache-posts
publish: eagerly store your own changes
2020-04-13 16:54:41 -07:00
Isaac Visintainer
78023b8eff publish: ignore edit updates if they originated with us 2020-04-13 13:34:50 -07:00
Isaac Visintainer
7edcd65699 publish: add facilities for managing limbo state 2020-04-13 13:33:34 -07:00
Fang
4da0d636d3
link-view: in pagination logic, only +lent once
Also just use +swag instead of chaining +scag and +slag manually.
2020-04-13 21:26:44 +02:00
Fang
8f3d174c94
link: minimal initial view result
On initial load, instead of getting the first 25 links for every
collection, only get their totals and unread counts. This drastically
reduces the pageload time.

Updates the frontend to match:
- Handle initial results without link content.
- Dynamically load in collection's links, even for page 0.
2020-04-13 21:26:09 +02:00
Fang
bf42afbd56
link-view: add some hints to aid profiling 2020-04-13 21:15:51 +02:00
Isaac Visintainer
2608dea563 publish: style changes and comments 2020-04-13 00:04:33 -07:00
Isaac Visintainer
d3ab26e57c publish: restore OS0 -> OS1 transition logic 2020-04-12 23:38:54 -07:00
Isaac Visintainer
a40d292bb7 publish: remove or add posts/comments from limbo depending on whether they succeeded or failed 2020-04-12 23:21:42 -07:00
Isaac Visintainer
d2fdae4d4b publish: immediately store post and comment changes 2020-04-12 23:21:42 -07:00
Isaac Visintainer
f9e17e61a2 publish: update state with limbo field 2020-04-12 23:21:42 -07:00
Logan Allen
fb3111e88a channel.js: added way to handle event source errors more smoothly, and implemented in chat 2020-04-10 19:38:13 -04:00
Logan Allen
8ffca926e7 chat-js: reverted built files 2020-04-10 17:34:23 -04:00
Logan Allen
6d1efde884 chat-js: fixed scrollback for reverse message chatrooms 2020-04-10 17:29:23 -04:00
Logan Allen
b85697cbec chat-hook: respect backlog index, no longer truncate 2020-04-10 15:25:58 -04:00
Logan Allen
be1d5cee56 chat-store: flop envelopes in handle-messages so backlog comes in correct order 2020-04-10 15:25:58 -04:00
Logan Allen
8cdfb559f6 chat-view and hook: style pass and backlog truncation 2020-04-10 15:25:58 -04:00
Logan Allen
ecc8942eaf chat: reversed order that messages are stored in for faster performance 2020-04-10 15:25:58 -04:00
Isaac Visintainer
eef6e56dca release: urbit-os-v1.0.12 2020-04-09 17:47:55 -07:00
Fang
05e651970e
link: require explicit opt-in for new collections
Instead of auto-watching a new collection when it gets added to group
associations, require that the user explicitly choose to view it.

Of course, creation counts as opting in, so watch the collections we
create by default.
2020-04-09 19:01:58 +02:00
ixv
482e87f8fc
Merge pull request #2662 from urbit/la-app-hints
apps: added hints to the top of many networked apps
2020-04-03 10:22:23 -07:00
Isaac Visintainer
b5b19adb8c launch: handle change in url parsing 2020-04-02 19:01:36 -07:00
Fang
f494854dc0
Merge pull request #2641 from urbit/m/eth-watcher-timeout
eth-watcher: separate timeout from refresh-rate
2020-04-03 02:00:07 +02:00
Isaac Visintainer
5faaa6c710 release: urbit-os-v1.0.10 2020-04-02 15:54:24 -07:00
ixv
35fa913113
Merge pull request #2661 from urbit/ed/groups-add-channel-icons
groups: add channel type icons
2020-04-02 15:30:13 -07:00
Matilde Park
c873c4d01b chat: add spinner component and behaviours 2020-04-02 18:19:50 -04:00
Matilde Park
afec74cb2e groups: add componentised spinner and behaviours 2020-04-02 18:19:48 -04:00
Matilde Park
d49ace002d soto: add componentised spinner 2020-04-02 18:18:14 -04:00
Matilde Park
1bc973c520 link: reimplement spinner as component 2020-04-02 18:18:10 -04:00
Matilde Park
48c9bdc702 publish: componentise spinner as part of layout
This commit pulls the spinner out of the header bar -- and
reincorporates it as a component that hooks into local state when
awaiting a new prop, or disabling an input.
2020-04-02 18:17:11 -04:00
édouard
4cd7c77ad3 groups: add channel type icons
Adding three new icons for group channels (as seen in the groups view)
2020-04-02 18:15:51 -04:00
Logan Allen
99878eb65d apps: added hints to the top of many networked apps 2020-04-02 17:49:46 -04:00
Logan Allen
717b02ad6f chat: added jet hints 2020-04-02 17:43:03 -04:00
ixv
f6954e6a55
Merge pull request #2644 from urbit/mp/group-typing
groups: show tile icon, not full color; alphabetically sort group channels
2020-04-02 07:18:05 -07:00
ixv
d1a440fab9
Merge pull request #2636 from liam-fitzgerald/lf/dojo-gen-autocomplete
dojo: add autocomplete for various dojo syntaxes
2020-04-02 07:17:02 -07:00
ixv
e2022ed3a6
Merge pull request #2619 from liam-fitzgerald/lf/who-endpoint
/who JSON endpoint
2020-04-02 07:16:50 -07:00
Logan
0ce28806a9
Merge branch 'master' into matilde/interface-prod 2020-04-01 22:24:33 -04:00
Liam Fitzgerald
0115177eea launch: create new state-version for %serve 2020-04-02 09:12:39 +10:00
Liam Fitzgerald
ed7d9fb164 launch: move %serve card to types core 2020-04-02 08:52:59 +10:00
Liam Fitzgerald
eeebfc0114 launch: address review comments for /who endpoint 2020-04-02 08:50:01 +10:00
Liam Fitzgerald
e16c999c76 launch: add /who endpoint
The /who endpoint responds with the name of the ship in JSON
2020-04-02 08:16:08 +10:00
Fang
809befb6fc
clock: ensure launch is listening correctly
In the wild, ships that were live pre-OS1 still had launch subscriptions
open to the clock on the /tile path, instead of the currently-used
/clocktile path. Additionally, launch state for the clock tile seemed
incomplete.

Here, we simply re-%add the clock to launch.

Note that launch currently does not clean up old subscriptions on
path change. For the pre-OS1 case, the old path is no longer in use,
rendering the subscription harmless. For cases where the correct
subscription was already in place, it'll print a %watch-wire-not-unique,
but doesn't do any harm besides that.
2020-04-01 23:13:57 +02:00
Fang
b62105cce4
clock: add dbug 2020-04-01 22:26:07 +02:00
Fang
6fef6a996a
weather: add verb 2020-04-01 22:25:54 +02:00
Matilde Park
e1af036f1c groups: show tile icon, not full color 2020-04-01 15:26:47 -04:00
Fang
2223a85666
eth-watcher: separate timeout from refresh-rate
Previously, when the refresh-rate timer activated, and the thread from
the previous activation was still running, we would kill it and start
a new one. For low refresh rates, on slower machines, nodes, or network
connections, this could cause the update to never conclude.

Here we add a timeout-time to eth-watcher's config. If the refresh-rate
timer activates, and a thread exists, but hasn't been running for at
least the specified timeout-time yet, we simply take no action, and wait
for the next refresh timer.

Note that we opted for "at least timeout-time", instead of killing &
restarting directly after the specified timeout-time has passed, to
avoid having to handle an extra timer flow.

In the +on-load logic, we configure the timeout-time for existing
watchdogs as six times the refresh-rate. We want to set
azimuth-tracker's timeout-time to ~m30, and don't care much about other,
less-likely-to-be-active use cases of eth-watcher.
2020-04-01 12:47:38 +02:00
Liam Fitzgerald
4433b99011 dojo: change autocomplete to use sell
Change autocomplete to prettyprint variables with sell instead of
xsell
2020-04-01 14:22:04 +10:00
Liam Fitzgerald
ff8c7a61d5 dojo: fix hood shortcut 2020-04-01 12:29:14 +10:00
Liam Fitzgerald
ed7f8be424 dojo: add autocomplete for various dojo syntaxes
Adds autocomplete for
- :app poke syntax
- :app|gen poke generator syntax
- +gen naked generator syntax
- =var variable syntax
2020-04-01 11:28:27 +10:00
Isaac Visintainer
93c881cec9 release: urbit-os-v1.0.9 2020-03-31 16:45:40 -07:00
ixv
e76fe83ea1
Merge pull request #2615 from urbit/mp/grouping-take-2
os1: reintegrating groups into all Landscape applications
2020-03-31 15:17:57 -07:00
Isaac Visintainer
64a6e89be6 launch: remove groups tile here rather than in contact-view 2020-03-31 11:49:57 -07:00
Fang
56df6dc94f
link-listen-hook: recover neglected collections
During the #2607 upgrade, strictly local collections got left out of the
listening set. (Because they did not have any outgoing subscriptions.)
This led to personal collections not being available on the frontend.

Here, we add upgrade logic for adding those back to our listening set again.
If a user had explicitly left a personal collection (instead of deleted it, for
whatever reason), they will have to leave it again. This case seems much more
rare than the "my collection is gone" one.
2020-03-31 19:10:07 +02:00
Isaac Visintainer
12f150659b release: urbit-os-v1.0.8 2020-03-30 20:28:35 -07:00
ixv
31794ebacf
Merge pull request #2609 from urbit/m/group-kick-fix
group-hook: fix resubscribe bug
2020-03-30 17:59:51 -07:00
ixv
8f1655171d
Merge pull request #2616 from urbit/two-round
chat-js: improve subscription speed by doing two rounds of subscriptions and no longer subscribing to groups
2020-03-30 17:48:39 -07:00
Logan Allen
49476aac66 chat-js: refactored subscriptions to auto-resubscribe 2020-03-30 18:07:33 -04:00
Logan Allen
c2070dbcc6 chat-js: pass in groups property, convert from permissions 2020-03-30 17:59:52 -04:00
matildepark
2f3d681975
launch, link: apply @Fang- suggestions to #2615 review
Co-Authored-By: Fang <git@fang.io>
2020-03-30 15:50:16 -04:00
Logan Allen
f1a0b30c1f apps: added a duplicate channel.js for caching, updated script tags to point to it 2020-03-27 20:08:44 -04:00
Isaac Visintainer
6443424012 contact-view: remove tile 2020-03-27 14:18:03 -07:00
Matilde Park
003089bf11 soto: add %add launch-action 2020-03-27 15:30:55 -04:00
Matilde Park
891018159a launch: add group filter dropdown, header redesign 2020-03-27 12:45:51 -04:00
Matilde Park
5516d2ebdb launch: add %remove launch-action 2020-03-27 12:44:49 -04:00
Fang
058dcdf100
contact-hook: less destructive catch-up on-sub
(Re)subscribing gets us a %contacts update, containing the full set of
contacts as it currently exists.

Previously, we would fully delete our local state, only to recreate it
using the data from the update.

Now, we never delete existing data, instead only creating if we don't
have it yet, and adding, removing or recreating contacts if they
changed.

In the future, we'll want an easy way to turn two contacts into an %edit
diff, to let us apply correct semantics to individual contacts, too.
2020-03-27 14:21:03 +01:00
Fang
4551c74e3a
group-hook: on %path group-update, don't %unbundle
Instead, %bundle and %add if we don't have the group locally yet,
or %add and %remove whatever the difference is between the local group
and the group as specified in the %path update.
2020-03-27 12:38:08 +01:00
Fang
4220b91fae
metadata-hook: use dbug agent wrapper 2020-03-27 01:30:30 +01:00
Fang
4940501f3b
group-hook: use actual synced data in +on-load
It's gonna be ~ if we pull it from the app core during +on-load.
2020-03-26 23:58:15 +01:00
Logan Allen
221238c0fa chat-js: improve subscription speed by doing two rounds of subscriptions and no longer subscribing to groups 2020-03-26 17:41:11 -04:00
Fang
22bb2a0d86
group-hook: on-load, re-establish subscriptions
For every item in the synced map that doesn't have a matching outgoing
subscription, re-establish the subscription we expect to have.
2020-03-26 20:19:18 +01:00
Fang
ea48161334
group-hook: touch up watch-nack and kick logic
In both, we make clear that the wire is always of the /@/group/^ form,
and alias the "group path" portion of the wire for clarity.

For kick, more obviously reuse the same wire, don't reconstruct it.

For watch-nack, only delete from the synced map if the source of the
watch-nack is still relevant. While we don't expect this to be relevant
considering current mode of operation, this does protect us against
strange cases.
2020-03-26 20:18:45 +01:00
Fang
bf912f6aac
group-hook: fix incorrect on-kick logic
It was checking and resubscribing on the full wire, instead of the
part of the wire that represents the group path.
2020-03-26 20:06:31 +01:00
Isaac Visintainer
0d3e409f7c release: urbit-os-v1.0.7 2020-03-26 09:25:02 -07:00
ixv
b8a222ea75
Merge pull request #2606 from urbit/la-scrollback
Scrollback fixed and tested in Brave, Safari, and Chrome
2020-03-26 09:02:24 -07:00
Logan Allen
2719a24dcc chat: decreased message limit to 20, now asking for more messages upon navigating to a chat channel when we have < 100 messages for that channel 2020-03-25 19:48:35 -04:00
ixv
755fbb7d14
Merge pull request #2583 from urbit/mp/os1/welcome
os1: add startup content
2020-03-25 16:26:01 -07:00
Fang
5f94fe0cf4
link-listen-hook: explicitly track subscriptions
Instead of going purely off metadata, we now track the collections we're
listening to, and allow the user to remove collections from that list.

This allows us to remove/ignore collections, without mutilating group
assocations locally.
2020-03-25 22:41:20 +01:00
Logan Allen
a787eceae9 chat-js: turned off perf testing 2020-03-25 17:36:51 -04:00
Logan Allen
eb51ff693c chat: changed initial scrollback to 50 because 25 short messages wouldn't trigger any scrollbar at all, and fixed scrollback condition 2020-03-25 17:35:51 -04:00
Logan Allen
8d64d9d253 chat: fixed indentation
logging for scrollback
2020-03-25 17:34:59 -04:00
Fang
073b86be15
link-store: don't send update if not new
We were taking care not to re-add something to our data store if we
already had it in there, but were still sending out an update
regardless.

With this, we only send out an update if we weren't previously aware
of the content.
2020-03-25 22:12:49 +01:00
Isaac Visintainer
f7133f77e0 release: urbit-os-v1.0.6 2020-03-24 15:45:34 -07:00
Jared Tobin
cd9f23d6db
Merge branch 'liam-fitzgerald/lf/chat-patp-autocomplete' (#2571)
* liam-fitzgerald/lf/chat-patp-autocomplete:
  chat-fe: fix incorrect property in css
  chat-fe: improve name legibility in autocomplete
  chat-fe: match autocomplete to designs
  chat-fe: autocomplete nicknames in message input
  chat-fe: ignore comets in autocomplete
  chat-fe: correct light mode autocomplete styling
  chat-fe: add patp autocomplete to message input

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-03-24 17:37:51 +04:00
Liam Fitzgerald
ca8f436fd0 chat-fe: fix incorrect property in css 2020-03-24 11:01:46 +10:00
Liam Fitzgerald
302c3dc4cc chat-fe: improve name legibility in autocomplete 2020-03-24 10:50:53 +10:00
Fang
f2986af4b3
Merge pull request #2582 from urbit/m/chat-backlog-limit
chat-view: limit initial scrollback to 25 msgs
2020-03-23 19:14:26 +01:00
Liam Fitzgerald
6c403f5135 chat-fe: match autocomplete to designs 2020-03-21 13:52:41 +10:00
Liam Fitzgerald
9c759a7e68 chat-fe: autocomplete nicknames in message input 2020-03-21 13:49:57 +10:00
Fang
376af254af
chat-view: limit initial scrollback to 25 msgs
Provided "load backlog on-scroll" actually works, you don't really need
all that much on initial load.
2020-03-20 20:47:15 +01:00