Commit Graph

2725 Commits

Author SHA1 Message Date
Matilde Park
08e511db87 soto: add light theme 2020-02-21 19:32:08 -05:00
Logan Allen
cf21ada1c2 metadata: style fixes, some bug fixes 2020-02-21 16:14:57 -08:00
Matilde Park
5b2d58bd22 publish: wrap or truncate title / snippet overflow 2020-02-21 19:03:38 -05:00
Matilde Park
382a4da4b1 chat: remove spinner.css from index.css 2020-02-21 18:42:16 -05:00
Matilde Park
657dc5b408 link-fe: truncate titles properly 2020-02-21 18:33:55 -05:00
Fang
e5525b7d9e
chat-hook: on-migrate, configure permission-hook also
Permissions for the new group need to be exposed to the members of those
new groups. This makes the on-migrate logic poke the permission-hook for
that.
2020-02-21 23:57:58 +01:00
Fang
c3becc9f5f
chat-hook: fall back if metadata-store not live
This temporary, upgrade-oriented logic depends on two assumptions:
- If the metadata-store is not running, we are still in the process of
  applying the upgrade.
- If the above is true, all chats are /~host/name, all groups are
  /~/~host/name, and they have a strict one-to-one relation.

Armed with those assumptions, we can deduce groups from chats and vice
versa without depending on the metadata-store, allowing us to carry on
as if it were already running.
2020-02-21 23:57:57 +01:00
Fang
337dc03f6b
permission-group-hook: support /lib/dbug interface 2020-02-21 23:57:57 +01:00
ixv
d1c54a7c2d
Merge pull request #2333 from urbit/ixv/publish-ota
OS1: fix publish ford OTA issues
2020-02-21 14:25:03 -08:00
Isaac Visintainer
09b381e8c6 ford: add state version and perform flush on migration between versions 2020-02-21 14:10:16 -08:00
Logan
fee50ff9e7
Merge pull request #2325 from pkova/os1-rc
chat-store: immediate handle-read on our %message
2020-02-21 13:45:50 -08:00
Isaac Visintainer
f7aa1298bb ford: explain +load change in comment 2020-02-21 13:29:59 -08:00
Logan
75644a2c38
Merge pull request #2329 from urbit/mp/os1/contacts/share-with-group-redirect
contacts: redirecting share view, sigil color fix
2020-02-21 13:26:07 -08:00
Fang
d80b5d24bc
permission-hook: clean up access-control on %delete
If we %add-owned, then we add an entry to the access-control jug matching the
data we put into the synced map. When a permission gets deleted, we remove it
from synced, but previously neglected to clean up the matching access-control
entry.

This ensures that if a permission was deleted, and we had it registered as
owned, that the relevant access-control entry is removed from state.
2020-02-21 21:45:04 +01:00
Matilde Park
366c4e671a link-fe: remove header-bar from index.js 2020-02-21 15:32:02 -05:00
Isaac Visintainer
19e70368e8 ford: flush state on upgrade 2020-02-21 11:12:33 -08:00
Isaac Visintainer
6e8643000b fixed call to make-groups in outer core 2020-02-21 11:11:38 -08:00
matildepark
910f19c21d
Merge pull request #2328 from urbit/mp/os1/link/spinner
link-fe: add spinner, behaviour
2020-02-21 09:42:35 -05:00
Matilde Park
4770d78198 contacts: pass "#" prefix to sigil colour 2020-02-20 21:39:46 -05:00
Matilde Park
61e26c8fc2 contacts: redirect from 'share' option correctly 2020-02-20 21:39:31 -05:00
matildepark
2c39e70cc0
Merge pull request #2327 from urbit/mp/os1/contacts/invite-polish
contacts: add spinner, invite-search, and blend unknown sigils
2020-02-20 21:09:03 -05:00
Matilde Park
14d2275054 link-fe: remove spinner.css from index.css 2020-02-20 20:50:39 -05:00
Matilde Park
805a7c444d contacts: remove spinner.css from index.css 2020-02-20 20:49:55 -05:00
Matilde Park
2e1ff70fb0 link-fe: add spinner, behaviour
Also refactors the header bar back into the skeleton to pass the
spinner.
2020-02-20 20:11:12 -05:00
Matilde Park
748a9059e1 contacts: use invite-search for adding contacts 2020-02-20 18:56:30 -05:00
Matilde Park
b2404d0cdc chat: add groupResults prop, fix peer set 2020-02-20 18:56:30 -05:00
Matilde Park
f2434f288c publish: add groupResults prop, fix peer set 2020-02-20 18:56:30 -05:00
Matilde Park
ca9bc45511 contacts: use invite-search for new.js 2020-02-20 18:56:25 -05:00
Fang
4a45d2caa6
chat-hook: implement group/permission migration
We want to move from group/permission paths of the form /chat/~host/name
to /~/~host/name, merging the ./read and ./write permission paths into a
single permission matching the group path.
(The leading /~ signifies an "unmanaged" group, one used by apps
internally, and not explicitly exposed to the user as a contacts group.)

This upgrade logic does roughly the following, for every chat path, to
accomplish the migration:
1. delete ./read and ./write groups associated with the chat
2. create a new group containing an approximate "uni" of the old groups
3. register the chat + new group with the metadata-store
4. hook the group up to its matching permission set

Note that because existing groups are hooked up through the
permission-group-hook, doing step 1 deletes the associated permissions.
Step 4 then re-establishes that relation for the newly created group.

The logic here scries into the metadata-store, and as such depends on
that having been started prior to this upgrade process.
2020-02-21 00:50:17 +01:00
Fang
491ac5689f
chat-hook: use metadata-store for permission checks
When permissions change, find out which chats are impacted (on the
assumption that permission paths are group paths), then perform actions
wrt that chat accordingly.

When a chat is interacted with, find out which groups the chat is
associated with, then use those to perform permission checks. If the
check passes for any group, permission is granted.
2020-02-21 00:50:17 +01:00
Fang
9a9aaaaf17
chat-hook: add scry helper 2020-02-21 00:50:16 +01:00
Fang
16886c4876
metadata-store: support /lib/dbug interface 2020-02-21 00:50:16 +01:00
Fang
5a029967b7
drum: start metadata-store on-upgrade 2020-02-21 00:50:15 +01:00
Logan Allen
5ef4cd50ac metadata-hook: implemented watch, kick, added group-scry to store 2020-02-20 14:55:46 -08:00
Matilde Park
18846d4c7c contacts: blend unknown contact sigils 2020-02-20 17:37:36 -05:00
pkova
2062c9c92e chat-store: immediate handle-read on our %message 2020-02-21 00:27:35 +02:00
Matilde Park
9ff2864f9c contacts: add spinner and behaviour 2020-02-20 17:19:33 -05:00
Logan
a0b9e84ae5
Merge pull request #2318 from urbit/mp/os1/chat/spinner
chat: add new spinner, behaviours
2020-02-20 13:40:45 -08:00
Logan
d203c684e7
Merge pull request #2319 from urbit/mp/os1/chat/blended-sigil
chat: blend uncustomised sigils
2020-02-20 13:38:47 -08:00
matildepark
f78f53525a
Merge pull request #2317 from urbit/mp/os1/publish-progress
publish: add spinner, transition behaviours
2020-02-20 15:05:13 -05:00
Matilde Park
a960a7778a publish: remove header-bar render from index.js 2020-02-20 14:40:43 -05:00
édouard
5a6b859a07 Replacing the nonexistent soto tile image depicting "tiscen" with "barcen" 2020-02-20 13:43:48 -05:00
Benjamin Summers
957c0da9bb
king: Terminal input line wasn't being shown b/c line buffering. 2020-02-20 14:41:07 +04:00
Benjamin Summers
e1f6db7250
king: Remove TERMINFO_DIRS hack. 2020-02-20 14:41:07 +04:00
Benjamin Summers
9d2d6c42c6
king: First stab at removing terminfo dependency. 2020-02-20 14:41:07 +04:00
Benjamin Summers
a318462836
king: New dependency: ansi-terminal 2020-02-20 14:41:06 +04:00
Benjamin Summers
3b1bd6600a
king: Factored all terminal rendering logic into its own module. 2020-02-20 14:41:03 +04:00
Matilde Park
09d2057284 chat: blend uncustomised sigils 2020-02-20 01:37:16 -05:00
Matilde Park
075de2cf3b chat: add spinner behaviours 2020-02-20 01:18:19 -05:00
Jared Tobin
bed28da17f
Merge branch 'kh/release-build' (#2293)
* origin/kh/release-build:
  king: Use newer static-haskell-nix script for KH build.

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-02-20 09:33:36 +04:00
Matilde Park
45af92c173 publish: sidebar and note -m, -l viewport fixes 2020-02-20 00:28:16 -05:00
Matilde Park
68f38dbf5b publish: spinner on post comment, proper disabling 2020-02-20 00:11:15 -05:00
Matilde Park
a0c06dbdf0 publish: new-post.js uses spinner 2020-02-20 00:11:00 -05:00
Matilde Park
86a0993975 publish: new.js uses spinner and disables button 2020-02-20 00:10:41 -05:00
Matilde Park
108f3d9e4a publish: move header into skeleton, add spinner 2020-02-20 00:10:18 -05:00
Matilde Park
ccde2a6a76 publish: proper sidebar height, overflow behaviour 2020-02-20 00:08:35 -05:00
Logan Allen
99663fec50 metadata-hook: handle metadata facts 2020-02-19 17:56:36 -08:00
~litpub
ea6d0a0502 Fixes DOM nesting error on <Message> 2020-02-19 17:49:53 -08:00
Isaac Visintainer
00a9eb9eab Merge branch 'master' into os1-rc 2020-02-19 16:04:21 -08:00
matildepark
7d4f9bc6b2
Merge pull request #2315 from urbit/mp/os1/weather/hotfix-border
weather: add border to manual entry
2020-02-19 16:41:41 -07:00
Matilde Park
9de5ee87af publish: dropdown component as sidebar sort
also adds 'align' to dropdown component as prop
2020-02-19 17:55:11 -05:00
Logan
11d8953873
Merge pull request #2310 from urbit/mp/os1/invite-search-ship
chat, publish: invite-search surfaces valid ship name as result
2020-02-19 13:48:43 -08:00
Logan
1e05f47d91
Merge branch 'os1-rc' into support-line-breaks 2020-02-19 13:48:14 -08:00
Matilde Park
c3f0743053 publish: new post has same width as other views 2020-02-19 16:24:36 -05:00
Matilde Park
eec6713338 weather: add border to manual entry 2020-02-19 15:43:05 -05:00
matildepark
76576003be
Merge pull request #2308 from urbit/mp/os1/weather/colors
weather: add blurred color gradient, changes based on weather
2020-02-19 13:05:46 -07:00
Matilde Park
1638c62406 weather: style fixes 2020-02-19 15:01:21 -05:00
Logan
820e14757a
Merge branch 'os1-rc' into la-group-create 2020-02-19 11:23:05 -08:00
Matilde Park
3d0f1ff898 weather: increase blur 2020-02-19 13:20:52 -05:00
~litpub
b96df813aa Supports translating /n into new <p> tags 2020-02-18 23:07:41 -08:00
~litpub
e687b8988b Adds autoresize functionality to chat input 2020-02-18 22:26:05 -08:00
Matilde Park
c4bba73833 publish: invite-search shows valid ship in results 2020-02-18 23:32:21 -05:00
Matilde Park
7aeb593fb4 chat: invite-search shows valid ship in results 2020-02-18 23:32:11 -05:00
Matilde Park
069df98edd weather: colors change based on weather 2020-02-18 21:22:19 -05:00
Logan Allen
688f9c33a1 chat-js: fixed group creation 2020-02-18 18:05:12 -08:00
Logan Allen
ea7e960c0d metadata-hook: work on pokes 2020-02-18 17:35:00 -08:00
Fang
5b1c3f3cca
Merge pull request #2302 from urbit/m/link-listen-bugfix
link: peer subscription fixes
2020-02-18 23:40:58 +01:00
Isaac Visintainer
7fced14cfc automatically start contacts and links apps upon recieving ota 2020-02-18 11:22:36 -08:00
Fang
199f7e6279
link fe: ensure items remain sorted by timestamp
So that they're always displayed in post-order, and our index of them
stays consistent with the data on the backend.
2020-02-18 16:31:47 +01:00
Fang
583c3dc364
link-store: ensure latest-first ordering of state
We may %hear or %read content that was posted some time ago, so we need
to make sure we add it at the appropriate position (wrt timestamp)
rather than just sticking it at the head of the list.
2020-02-18 16:00:50 +01:00
Fang
a5889794b9
link-listen-hook: ping groupies for retry on-join
Shortcuts the existing retry timer by having new members send out a poke
when they acknowledge joining the group.
The existing retry logic is left in place to deal with other cases of
subscription failure.

Also fixes an incorrect relevancy check during subscription retries, now
properly preventing duplicate subscriptions.
2020-02-18 15:43:04 +01:00
Logan
bf789b987c
Merge pull request #2297 from pkova/os1-rc
chat: fix station string format
2020-02-16 19:28:10 -08:00
pkova
b850fc0a0d chat: fix station string format 2020-02-16 14:21:33 +02:00
Matilde Park
bf87ee3daf link: correct unread color class 2020-02-15 16:42:43 -07:00
Logan Allen
3526d835dd metadata-hook 2020-02-14 16:51:41 -08:00
Logan
1106e4b5b3
Merge pull request #2291 from urbit/metadata-os1
metadata-store: associate groups with resources within apps, and allow various types of queries
2020-02-14 16:50:51 -08:00
Logan Allen
962ac2e184 metadata-store: sanitized paths and %y to %x 2020-02-14 16:41:39 -08:00
Logan Allen
6e2bcd9428 metadata-store: updated to use better naming for resources, added a few metadata fields 2020-02-14 14:59:22 -08:00
Fang
f2cf3d43d3
link-proxy-hook: fix incorrect scry paths
We were scrying for /gx/path instead of /gx/=link-store=/path.
In the %annotations case, that path wasn't even correct.

Also refactors scries out into a +scry-for helper.
2020-02-14 23:35:04 +01:00
ixv
d49987bcc7
Merge pull request #2286 from urbit/ixv/publish-members-settings
OS1: added members and settings page to publish
2020-02-14 14:34:43 -08:00
Isaac Visintainer
ac620baadb dont send invite on unban
split dropdown component out from api actions in subscribers
2020-02-14 13:55:55 -08:00
Logan
c71bc22bbc
Merge pull request #2221 from pkova/chat-bugfix
chat: fix double message bug
2020-02-14 11:03:53 -08:00
Logan
9410b3ad1e
Merge pull request #2292 from urbit/mp/os1/contacts/notes-design-updates
contacts: resizable "notes" field, sidebar scroll tweak, os1 nav buttons
2020-02-14 10:58:38 -08:00
Jared Tobin
36e770f722
Merge branch 'philip/gall-ack-fix' (#2288)
* origin/philip/gall-ack-fix:
  gall: give both acks in case of unexpected ack
  gall: make 2140e07 ota-able
  gall: properly track remote acknowledgments

Signed-off-by: Jared Tobin <jared@tlon.io>
2020-02-14 20:00:50 +04:00
Benjamin Summers
4be4551f18 king: Use newer static-haskell-nix script for KH build. 2020-02-14 07:13:55 -08:00
Fang
5d01b4750b
Merge pull request #2289 from urbit/m/link-tile
link: properly support the launch tile
2020-02-14 12:50:26 +01:00
Matilde Park
0cb03b0461 contacts: sidebar scrollbar automatic, os1 buttons 2020-02-14 00:29:03 -07:00
Philip Monk
4fda5e8e38
gall: give both acks in case of unexpected ack
It's hard to say what's the safest thing to do when we get an ack we
weren't expecting due to losing outstanding.agents.state in +load
3-to-4, so this gives both a watch-ack and a poke-ack.  This seems most
likely to succeed.
2020-02-13 17:48:33 -08:00
Logan Allen
498c6e8e97 metadata-store: added scry + watch paths, an %update-metadata update 2020-02-13 17:22:52 -08:00
Philip Monk
e082845e0d
gall: make 2140e07 ota-able
Does not change state type, but clears outstanding.agents.state since
it's full of garbage values.  This introduces a possibility that we may
have been in the middle of something, so we handle that in a reasonably
sane way.
2020-02-13 17:20:27 -08:00
Fang
c86b1c9944
link fe: render unseen count in the launch tile 2020-02-14 02:03:19 +01:00
Fang
45088621f4
link-view: properly support the launch tile 2020-02-14 02:02:47 +01:00
Fang
1f4a41e550
link-store: support "all unseen" scry
Instead of forcing clients to scry at every path, they can now scry for
all paths at once.
2020-02-14 01:57:58 +01:00
Fang
fafe4cf2bd
link-store: always mark our own submission as seen 2020-02-14 01:55:17 +01:00
Fang
102424af40
link-store: fix incorrect arm calls
Also changes a typecheck to be more correct, and updates docs to match
implementation.
2020-02-14 01:54:16 +01:00
Philip Monk
2140e07a99
gall: properly track remote acknowledgments
outstanding.agents.state is a queue of what sort of message we sent to a
foreign app.  We use it so that when the acknowledgment comes back we
know whether to treat it as a watch-ack, poke-ack, or neither.  We used
to put this info in the wire, but this gave us a different ames flow,
which meant %leave and %watch didn't get associated (causing #2079).

The error was that when when retrieving the item from the queue, we put
the new 1-item-shorter queue back in outstanding.agents.state at a
different wire than it came from, so the queues never actually got
shorter, and acknowledgments of the wrong sort were commonly produced.
This caused problems mainly in situations where we poke and peer on the
same wire, and possibly when a subscription was cancelled.

Possibly related to #2206 and #2176.  I would expect this bug to cause
those issues, but I haven't verified the converse.  Also possibly
related to #2153 and #2079.
2020-02-13 15:12:07 -08:00
Fang
fa138ef216
hoon: clarify comments for +rep:in and +rep:by
"Replace" suggests this function either produces an updated set/map when done,
like +snap, or changes all values in-place, like +turn. In truth, it's more
similar to +roll, which does reduction/accumulation.

("Reduce" specifically was chosen because it maintains the mnemonic relation to
the arm name.)
2020-02-13 23:56:44 +01:00
Isaac Visintainer
56807dd52f added members and settings page 2020-02-13 14:00:55 -08:00
Logan Allen
9205c7c7db sur: added metadata-store structures 2020-02-13 13:13:10 -08:00
Logan Allen
ca7cc1fc10 metadata-store: first compiling version of metadata-store 2020-02-13 13:13:10 -08:00
Logan Allen
a9231fd5f9 chat-js: one line fix to create chat screen to enable managed group creation 2020-02-13 13:11:22 -08:00
Matilde Park
ced119271f contacts: add resizable "notes" field 2020-02-13 12:27:27 -07:00
Logan
f316d0f118
Merge pull request #2282 from urbit/fix-remove
contacts: improve remove from group experience in UI and terminal log
2020-02-13 11:08:12 -08:00
Matilde Park
914d312f06 publish: refine "all notebooks" on mobile 2020-02-12 20:59:49 -05:00
Matilde Park
231ead27df publish: add mobile back nav to notebook.js 2020-02-12 20:57:48 -05:00
Matilde Park
60c496ccf8 publish: sidebar switch + popout to note.js 2020-02-12 20:50:58 -05:00
Matilde Park
778ba9849d publish: sidebar switch + popout to notebook.js 2020-02-12 20:17:13 -05:00
Matilde Park
213ab1e0a9 publish: add popout/sidebar switch to new-post.js 2020-02-12 19:51:27 -05:00
Matilde Park
0075668065 publish: remove scrolling overflow from skeleton 2020-02-12 19:51:06 -05:00
Matilde Park
6c6e33f5a7 publish: add sidebar switcher and popout logic
The scaffold and reducer work thus far had some bugs and shims. This commit
adds the parameters, API calls and fixes the reducers for the two
features.
2020-02-12 19:08:13 -05:00
Logan
610474795f
Merge pull request #2280 from urbit/m/chat-cli-perms
chat-cli: remove r/w specifiers for invite and banish
2020-02-12 14:58:19 -08:00
Logan
b1b141faa8
Merge pull request #2281 from urbit/m/link-fe-uxtohex
link fe: make uxToHex more safe
2020-02-12 14:57:50 -08:00
Logan Allen
ef8aa94171 contact-js: change text to 'delete group' when removing yourself as a member when you own the group 2020-02-12 14:33:07 -08:00
Logan Allen
5aa7a91134 contact-hook: suppress resubscribe stack trace 2020-02-12 14:29:29 -08:00
Logan Allen
fb0ef50f43 contacts-js: fix case where default contact can be removed 2020-02-12 14:09:04 -08:00
matildepark
a6133e44b2
Merge pull request #2278 from urbit/mp/os1/publish-comments-contact
publish: add nicknames and sigils to interface
2020-02-12 15:34:34 -05:00
Fang
a675e5442b
link fe: make uxToHex more safe
Matching implementation from contacts' lib/util.js.
2020-02-12 21:03:04 +01:00
Fang
d840c384e1
chat-cli: remove r/w specifiers for invite and banish
No longer supported. As such, we also don't include that in the
permission path anymore.
2020-02-12 15:53:44 +01:00
Matilde Park
e59b783337 publish: add nicknames and sigils to interface 2020-02-11 17:49:35 -05:00
Logan
33f7d62186
Merge pull request #2273 from urbit/mp/os1/weather-error
weather: concise error, input layout placement
2020-02-11 13:13:43 -08:00
Logan
e2a07efef8
Merge pull request #2269 from urbit/mp/os1/authenticate
eyre: add new os1 login screen
2020-02-11 13:13:04 -08:00
Logan
0ec32f0606
Merge pull request #2270 from urbit/mp/os1/contact-design-tweaking
contacts: design tweaks for share sheet
2020-02-11 13:11:48 -08:00
Jimmy
e10b6784ae chat-js: slightly cleaner sig string 2020-02-11 13:09:03 -08:00
Jimmy
8b8472f231 removing console log 2020-02-11 13:06:42 -08:00
Jimmy
a5301251c3 patp name now has sigil, and nickname now renders inter 2020-02-11 13:06:42 -08:00
Logan
5bb0f5d59f
Merge pull request #2277 from urbit/chat-os1-fixes
chat-js: fix ui regression for new and join (always create /~/ groups)
2020-02-11 13:04:36 -08:00
Logan Allen
ebab101213 chat-js: fix ui regression for new and join (always create /~/ groups) 2020-02-11 12:59:10 -08:00
matildepark
ffff42d371
Merge pull request #2274 from urbit/m/link-fe-previews
link fe: properly downscale wide images to fit screen
2020-02-11 15:49:55 -05:00
Matilde Park
7a530d1001 eyre: amend "purchase an id" link to urbit.org 2020-02-11 15:27:08 -05:00
Logan
1406363623
Merge pull request #2276 from urbit/chat-double-invite
chat-hook: fix double invite bug
2020-02-11 11:51:00 -08:00
Logan Allen
d7d7cc6f94 chat-hook: fix double invite bug 2020-02-11 11:47:34 -08:00
Fang
27be1861db
chat-cli: no longer allows %mailbox and %journal chats
Also adds in some casts to ensure sane action data. The chat-view-action
changed in this commit should've been nest-failing.
2020-02-11 20:39:14 +01:00
Logan
d5c94a4421
Merge pull request #2265 from urbit/chat-disable-name-on-group
chat-js: on selecting a group from search, set id of chat to that nam…
2020-02-11 11:17:13 -08:00
Fang
4d78808075
link fe: properly downscale wide images to fit screen
We no longer downscale to 500px wide, but rather however wide fits
within the container, and doesn't exceed 500px in height.
2020-02-11 19:17:07 +01:00
Matilde Park
5c06d1b464 weather: concise error, input layout placement
This lines up the input with the "Set location" button,
and makes the latitude/longitude setting error
more concise, in order to fit within the tile without overflow.

This commit also removes some Tachyons-specific CSS classes.
2020-02-11 13:05:52 -05:00
Fang
9a29e72560
link fe: prefix ship names in comments with sig 2020-02-11 17:41:32 +01:00
Fang
8d7d1af3aa
link fe: rename members -> contacts and refactor
Renames the somewhat ambiguous "members" property into "contacts", to
more clearly indicate the source/nature of the data within. (Avoid
confusion with "members of a group", which is contained in groups
instead.)

Also refactors the retrieving of appropriately-defaulted contact values
into a utility function.
2020-02-11 17:39:03 +01:00
Fang
e801316368
link fe: display correct member counts
We were passing in a contacts object, which may not always contain all
group members. We now pass in a groups object (set of ships) instead,
and derive contributor count from that.
2020-02-11 17:17:33 +01:00
Fang
94feb5bf2e
link fe: ensure item and page counts
Getting updates for things we hadn't gotten initial data on would leave
us without any counters. This defaults them to zero, if we don't have
any yet.
2020-02-11 16:50:42 +01:00
Fang
5caf5fa00d
link fe: display unread counts for public channels
Was previously only displaying for the private channel.
2020-02-11 16:47:00 +01:00