Commit Graph

949 Commits

Author SHA1 Message Date
Logan Allen
51eebf3407 chat-hook: send updates to synced every time the object changes 2020-03-11 16:45:01 -07:00
Logan Allen
64938e24e9 chat-hook: added ability to subscribe to chat-hook state from the frontend 2020-03-11 16:44:15 -07:00
ixv
d835cdbe0d
Merge pull request #2445 from urbit/m/link-proxy-initial
link-proxy-hook: correctly scry initial response
2020-03-11 16:31:19 -07:00
ixv
7ef54a1f09
Merge pull request #2442 from urbit/chat-ota-fix
chat-hook: ota fix and improvement on backlog fetching
2020-03-11 16:30:15 -07:00
Fang
f765b34459
link-proxy-hook: correctly scry initial response
Was using "manual" scries, and incorrect ones at that. Would crash, causing
subscriptions to not go through. Now uses the helper function and correct paths.
2020-03-11 23:38:09 +01:00
ixv
10f1e7e667
Merge pull request #2434 from urbit/m/chat-cli
chat-cli: support group-based chats
2020-03-11 14:11:07 -07:00
Fang
064131e530
chat-cli: render incoming invites
Also removes message from invites sent from chat-cli,
and refactors a scry.
2020-03-11 21:52:26 +01:00
Logan Allen
10e0dca58c chat-hook: ota fix and improvement on backlog fetching 2020-03-11 12:12:51 -07:00
édouard
4aadbccfae contacts, publish: fixed/edited Tile icons
Turned the assets into ones that will play nice with dark mode (will properly invert their coloration without having weird visual zones)
2020-03-11 15:03:41 -04:00
Fang
dfacd619eb
chat-cli: more-conventional state naming 2020-03-11 00:42:04 +01:00
Fang
22cc6ae629
chat-cli: support un- *and* managed chats
Re-enables chat creation, touches up invite logic, and makes everything
work with the new "un/managed" attribute of chats.

Changes the +target type, so requires state transition. We use that
opportunity to clean up our messages mirror (memory reclamation).

"Unmanaged" chats should work the same as they did before.
Group-based chats are secondary citizens, but supported by prepending
"group " to whatever target you want to use. ie:
;join group ~marzod/secret-club  ::  join a group-based chat
;group ~marzod/secret-club       ::  target a group-based chat

The latter case should be rarely needed, as glyphs remember this
attribute of their bound target.

Creating a group alongside a chat is supported through:
;create village-with-group /cool-kids

You can then invite to that group (and by extension the associated chat)
by doing:
;invite group /cool-kids ~rinsed-walrus
2020-03-11 00:40:21 +01:00
Fang
4740fdd493
chat-cli: use example of state instead of type
This prepares us for versioned state, and is more consistent with modern
app code style.
2020-03-10 23:56:24 +01:00
Fang
2c1539742b
chat-cli: add scry helper 2020-03-10 23:31:18 +01:00
Isaac Visintainer
5114cebfd7 publish: stop adding newlines, and fix post snippet on edit 2020-03-10 15:08:56 -07:00
Isaac Visintainer
0e9ea8c039 publish: fix notebook deletion card flushing bug 2020-03-10 15:08:38 -07:00
ixv
305a4874e2
Merge pull request #2428 from urbit/remote-pub-metadata
publish: update remote metadata group properly and only send invites …
2020-03-09 20:43:44 -07:00
Logan Allen
9a6a7b147d publish: update remote metadata group properly and only send invites for unmanaged notebooks 2020-03-09 17:05:06 -07:00
Logan Allen
17bea9a5bd chat: only send invites for unmanaged chats 2020-03-09 16:44:16 -07:00
Logan Allen
e0583be364 Merge branch 'merge-la-ota-work' of github.com:urbit/urbit into merge-la-ota-work 2020-03-09 12:40:43 -07:00
Logan Allen
e8c95157d4 chat-hook: emit cards upon upgrade AND store cards to be sent later upon chat-store trigger to support either order of updating 2020-03-09 12:40:04 -07:00
Logan
e160f0b0f4
Update pkg/arvo/app/contact-hook.hoon
Co-Authored-By: Fang <git@fang.io>
2020-03-09 12:29:49 -07:00
Logan Allen
3824402200 chat: upgraded chat-hook to move old chats to /~/chat-path
chat: ota attempt

chat: ota triggers chat-store to tell chat-hook to send cards to update chat-store's state

contact-view: commented out avatars and base64

chat: cleaned up commits
2020-03-08 13:05:10 -07:00
ixv
3e4d73d9e1
Merge pull request #2403 from urbit/publish-meta-ota
publish: check if metadata-store has started before scrying it
2020-03-05 20:35:27 -08:00
Logan Allen
1a8dfccf22 publish: check if metadata-store has started before scrying it 2020-03-05 15:43:12 -08:00
ixv
3c039bce39
Merge pull request #2378 from urbit/m/link-meta
link: metadata integration
2020-03-05 15:09:59 -08:00
Fang
fd9c6cee5d
link fe: various ui/ux fixes based on feedback
Also sneaks in a grammar correction for link-listen-hook documentation.
2020-03-05 22:42:02 +01:00
ixv
a16e40228d
Merge pull request #2399 from urbit/publish-metadata
publish: integration with metadata
2020-03-05 11:56:03 -08:00
Logan Allen
37820e5f51 publish: fill in title and description when importing, style 2020-03-05 11:44:34 -08:00
Logan Allen
3ace135c18 publish: integration with metadata 2020-03-04 15:56:48 -08:00
Matilde Park
aee2496588 contacts: rename, migrate '~contacts' to '~groups' 2020-03-04 16:13:12 -05:00
Fang
3e7f0dd9d8
link-view: support %delete and %invite actions
%delete tries to be as local as possible in its impact.
%invite deals with un/managed branching for you.
2020-03-04 22:11:54 +01:00
Fang
1f4e14f38a
link-view: include missing %create steps
Expose the metadata and set up a permission set for the group.
2020-03-04 22:06:24 +01:00
Fang
396d13ee1a
Merge branch 'os1-rc' of https://github.com/urbit/urbit into m/link-meta 2020-03-04 18:55:29 +01:00
Logan Allen
3210eac7e6 chat: only delete metadata for a chat if you created it 2020-03-03 16:10:54 -08:00
Fang
10842ecd92
link fe: remove references to chat & security 2020-03-03 18:31:08 +01:00
Fang
e524ffbdf6
link-view: use metadata-hook as advised in #2387 2020-03-03 16:47:07 +01:00
Logan Allen
eb1561cfc4 metadata-hook: support group members other than host creating shared resources 2020-03-02 16:50:20 -08:00
Fang
a382f7d41b
Merge branch 'os1-rc' of https://github.com/urbit/urbit into m/link-meta 2020-03-03 00:16:41 +01:00
Fang
111333ec93
link: can create managed groups for new collections
Just defers to contact-view for managed group creation.
2020-03-03 00:12:05 +01:00
Logan Allen
b8614cc7d8 chat + contact views: updated for style and to assert that group-path must be equal to app-path if there are ships in the members set 2020-03-02 11:10:29 -08:00
Logan Allen
e66fd1cbd6 chat-view: send invites when creating chat and group already exists 2020-03-01 17:08:16 -08:00
Logan Allen
5915840237 contacts + chat: move permission-hook syncing for managed groups to contact-view so everyone can depend on it 2020-03-01 16:38:46 -08:00
Logan Allen
bb0f56f17a chat + contacts: integrate managed groups with metadata 2020-03-01 15:40:49 -08:00
Fang
0539f3ca1f
link fe: metadata integration
- finds resources & displays details using metadata-store
- supports creating new collections for groups
- supports creating new collections with new unmanaged group
- supports receiving invites for new (unmanaged) collections
2020-03-01 02:10:35 +01:00
Fang
115fd1c14c
metadata-store: never crash fetching group metadata
In order to track & respond to all group-related metadata, hooks may
want to subscribe to the metadata-store in response to group creation.
In that case it is possible that there are no entries for the group-path
in group-indices yet.

This makes us fall back to the empty set in case group-indices has no
entry for the group-path yet.
2020-03-01 02:09:25 +01:00
Fang
0658367aaf
link hooks: discover resources with metadata-store
Instead of assuming groups to be singular resources, now depends on
metadata-store to discover %link resources, and the groups associated
with those.
2020-03-01 02:09:25 +01:00
Logan
3e235146ee
Merge pull request #2371 from litpub/bug/scroll-to-bottom-on-new-chat
chat: Fixes #2347 pushes chat to bottom on <Chat> mount
2020-02-29 16:35:38 -08:00
édouard
5474680e5c soto: swap out tile images
The previous Tile.png for the Dojo module (Soto) was a stylized rendering of "barcen" and could be seen as confusing. Fixing up the image to appear more *actually* glyph-like.
2020-02-28 16:16:37 -05:00
~litpub
701f83bc21 Fixes #2347 pushes chat to bottom on <Chat> mount 2020-02-28 13:02:31 -08:00
Logan
1cfd176434
Merge pull request #2369 from urbit/unmanaged-chats-rc
Unmanaged Chats Work Properly and Support Metadata Syncing
2020-02-28 11:52:54 -08:00
Logan Allen
c960075a11 chat: set metadata properly and incorporate fixes 2020-02-28 11:52:17 -08:00
Logan Allen
2b15010e66 chat: removed extraneous prints 2020-02-27 16:16:38 -08:00
Logan Allen
14b28a3d82 chat: unmanaged chats can be joined, have their title/description set, and send invites properly 2020-02-27 16:14:07 -08:00
édouard
f8bb003243
Merge branch 'os1-rc' into ed/qa-header-spacing-fixes 2020-02-27 19:06:33 -05:00
Logan
6587bc318d
Merge pull request #2367 from urbit/mp/os1/group/details
contacts: add group details page, metadata-store reducer
2020-02-27 15:28:44 -08:00
Fang
e7cbccbbf5
metadata-store: never crash fetching app metadata
In order to track & respond to all app-related metadata, hooks may want to
subscribe to the metadata-store as the first thing they do on-init. In that case
it is exceedingly likely that there are no entries for the app-name in
app-indices yet.

This makes us fall back to the empty set in case app-indices has no entry for
the app-name yet.
2020-02-28 00:16:09 +01:00
édouard
e8fdf3713d chat, contacts, dojo, links, publish: edited existing padding/margins/color/font-size of tab/header components
Basically, this PR includes a collection of edits made to the headers across each of our OS1 modules.
I flattened the font sizing, fixed edge margins/padding, and fixed some button copy in the case of the Contacts app.
2020-02-27 17:54:13 -05:00
Logan Allen
7abb371a20 chat: unmanaged chats are cleaned up and sync down metadata properly 2020-02-27 14:54:03 -08:00
Matilde Park
8ae2cc2680 metadata-store: fix 'associations' typo for /all 2020-02-26 22:43:40 -05:00
Isaac Visintainer
c502474942 Merge branch 'master' into os1-rc 2020-02-26 19:18:17 -08:00
Isaac Visintainer
8cd6160c55 publish: don't reset post dates on notebook import 2020-02-26 16:04:49 -08:00
Isaac Visintainer
8616bf06bf publish: ignore updates from old version 2020-02-26 16:04:42 -08:00
Isaac Visintainer
da31b74521 publish: don't leave notebooks on OTA 2020-02-26 16:02:39 -08:00
Isaac Visintainer
762bf136eb publish: set tile-num after OTA 2020-02-26 16:02:24 -08:00
Isaac Visintainer
db65ff546f publish: don't require a new notebook to trigger upgrading the old 2020-02-26 16:02:15 -08:00
Logan
c5f1f0f7d2
Merge pull request #2356 from urbit/os1-chat-integration
apps: main backend integration between metadata and chat
2020-02-26 14:51:36 -08:00
Logan Allen
eada785c2c chat-js + view: updated new page to work properly with group creation / selection 2020-02-26 14:21:20 -08:00
Logan Allen
0d69e17f3b apps: main backend integration between metadata and chat 2020-02-26 14:10:32 -08:00
matildepark
a1b9e34290
Merge pull request #2353 from urbit/mp/os1/publish/edit
publish: add 'edit note' functionality
2020-02-26 16:29:48 -05:00
Matilde Park
e6b38a1b47 publish: allow direct join from URL 2020-02-25 21:07:06 -05:00
Isaac Visintainer
9581a0535c publish: add publish invite path 2020-02-25 13:43:06 -08:00
Logan
1272a61443
Merge pull request #2324 from urbit/m/chat-ota
OS1 OTA: chat groups & permissions
2020-02-25 13:17:56 -08:00
Fang
82292cc152
chat-hook: on-migrate, only send invites for whitelists
Instead of also sending invites to blacklisted ships, which is obviously
incorrect.
2020-02-25 21:06:44 +01:00
Fang
53bc1d1996
chat-hook: on-migrate, send fresh invites
Accepting these post-upgrade should re-establish all the required
subscriptions. (But doesn't as of this commit, work still pending.)
2020-02-25 21:02:05 +01:00
Matilde Park
a81018a5b6 publish: add wildcard route for note endpoints
We take in /edit parameters (and possibly others) on notes,
so we let the front-end handle the routing regardless of the additional
params in the URL.
2020-02-25 14:19:15 -05:00
matildepark
1c87e329d3
Merge pull request #2345 from urbit/jy/copy
Copy changes to publish and contacts
2020-02-25 13:14:31 -05:00
Fang
d6da23f8c4
chat-hook: style touch-ups 2020-02-25 16:56:10 +01:00
Fang
51f1f9e3a2
chat-hook: on-migrate, delete permission-hook entry
If we don't host a group, we can't (locally) delete it, but we do still
have a permission-hook entry we want to clean up. This does that
deletion, but still relies on the permission-hook logic to clean it up
in the local group case.
2020-02-24 22:52:40 +01:00
Jimmy
e5be10dcc9 publish: sidebar dropdown copy change
update copy on contact

sidebarjs: sort dropdown copy change
2020-02-24 11:57:46 -08:00
~litpub
3f3a0b42e5 Firefox scroll support for chat 2020-02-24 11:40:14 -08:00
matildepark
f8dd807ae8
Merge pull request #2340 from urbit/mp/os1/soto/spinner
soto: add light/dark mode, spinner, prevent overflow
2020-02-24 13:58:39 -05:00
Logan
f64d720795
Merge pull request #2326 from urbit/os1-metahook
metadata-hook: a hook for sending metadata over the network
2020-02-21 20:05:07 -08:00
Logan
170003789a
Merge pull request #2316 from litpub/fixes-dom-nesting
chat: Fixes dom nesting warning on <Message>
2020-02-21 19:02:52 -08:00
Matilde Park
79ad3fa12c soto: add spinner, fix overflow case 2020-02-21 19:52:01 -05:00
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
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
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
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
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
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
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