diff --git a/.github/workflows/merge-master.yml b/.github/workflows/merge-master.yml
new file mode 100644
index 0000000000..627d9e802d
--- /dev/null
+++ b/.github/workflows/merge-master.yml
@@ -0,0 +1,27 @@
+name: merge
+on:
+ push:
+ branches:
+ - 'master'
+jobs:
+ merge-to-next-js:
+ runs-on: ubuntu-latest
+ name: "Merge master to release/next-js"
+ steps:
+ - uses: actions/checkout@v2
+ - uses: devmasx/merge-branch@v1.3.1
+ with:
+ type: now
+ target_branch: release/next-js
+ github_token: ${{ secrets.JANEWAY_BOT_TOKEN }}
+
+ merge-to-group-timer:
+ runs-on: ubuntu-latest
+ name: "Merge master to ops/group-timer"
+ steps:
+ - uses: actions/checkout@v2
+ - uses: devmasx/merge-branch@v1.3.1
+ with:
+ type: now
+ target_branch: ops/group-timer
+ github_token: ${{ secrets.JANEWAY_BOT_TOKEN }}
diff --git a/.github/workflows/merge.yml b/.github/workflows/merge-release.yml
similarity index 63%
rename from .github/workflows/merge.yml
rename to .github/workflows/merge-release.yml
index ff520c2658..eb7df325ab 100644
--- a/.github/workflows/merge.yml
+++ b/.github/workflows/merge-release.yml
@@ -1,17 +1,17 @@
-name: merge
+name: ops-merge
on:
push:
branches:
- - 'master'
+ - 'release/*'
jobs:
- merge-to-next-js:
+ merge-release-to-ops:
runs-on: ubuntu-latest
- name: "Merge master to release/next-js"
+ name: "Merge to ops-tlon"
steps:
- uses: actions/checkout@v2
- uses: devmasx/merge-branch@v1.3.1
with:
type: now
- target_branch: release/next-js
+ target_branch: ops-tlon
github_token: ${{ secrets.JANEWAY_BOT_TOKEN }}
diff --git a/.github/workflows/ops-group-timer.yml b/.github/workflows/ops-group-timer.yml
new file mode 100644
index 0000000000..f28a615abb
--- /dev/null
+++ b/.github/workflows/ops-group-timer.yml
@@ -0,0 +1,20 @@
+name: group-timer
+on:
+ push:
+ branches:
+ - 'ops/group-timer'
+jobs:
+ glob:
+ runs-on: ubuntu-latest
+ name: "Create and deploy a glob to ~difmex-passed"
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ lfs: true
+ - uses: ./.github/actions/glob
+ with:
+ ship: 'difmex-passed'
+ credentials: ${{ secrets.JANEWAY_SERVICE_KEY }}
+ ssh-sec-key: ${{ secrets.JANEWAY_SSH_SEC_KEY }}
+ ssh-pub-key: ${{ secrets.JANEWAY_SSH_PUB_KEY }}
+
diff --git a/.github/workflows/publish-npm-packages.yml b/.github/workflows/publish-npm-packages.yml
new file mode 100644
index 0000000000..0f0fc021e4
--- /dev/null
+++ b/.github/workflows/publish-npm-packages.yml
@@ -0,0 +1,60 @@
+name: publish-npm-packages
+on:
+ push:
+ branches:
+ - 'master'
+jobs:
+ publish-api:
+ runs-on: ubuntu-latest
+ name: "Publish '@urbit/api' if a new version is available"
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ lfs: true
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+ - run: 'npm install'
+ working-directory: 'pkg/npm/api'
+ - uses: JS-DevTools/npm-publish@v1
+ with:
+ check-version: true
+ package: './pkg/npm/api/package.json'
+ token: ${{ secrets.NPM_TOKEN }}
+
+ publish-http-api:
+ runs-on: ubuntu-latest
+ name: "Publish '@urbit/http-api' if a new version is available"
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ lfs: true
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+ - run: 'npm install'
+ working-directory: 'pkg/npm/http-api'
+ - uses: JS-DevTools/npm-publish@v1
+ with:
+ check-version: true
+ package: './pkg/npm/http-api/package.json'
+ token: ${{ secrets.NPM_TOKEN }}
+
+ publish-eslint-config:
+ runs-on: ubuntu-latest
+ name: "Publish '@urbit/eslint-config' if a new version is available"
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ lfs: true
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '14'
+ - run: 'npm install'
+ working-directory: 'pkg/npm/eslint-config'
+ - uses: JS-DevTools/npm-publish@v1
+ with:
+ check-version: true
+ package: './pkg/npm/eslint-config/package.json'
+ token: ${{ secrets.NPM_TOKEN }}
+
diff --git a/bin/solid.pill b/bin/solid.pill
index 62daecc18a..bd57c199a4 100644
--- a/bin/solid.pill
+++ b/bin/solid.pill
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:9433e0a7f1edbdcc6c8ac3e70c9516061d35218e5a1dc3192b2189dfb28cdc88
-size 9539470
+oid sha256:24e674adc2bc225cbf522da9ebbb6f1ca0364730392be4e59fbbd65b5028efa5
+size 9283548
diff --git a/pkg/arvo/app/contact-push-hook.hoon b/pkg/arvo/app/contact-push-hook.hoon
index 1503b2029e..f363e196e9 100644
--- a/pkg/arvo/app/contact-push-hook.hoon
+++ b/pkg/arvo/app/contact-push-hook.hoon
@@ -67,18 +67,20 @@
++ on-arvo on-arvo:def
++ on-fail on-fail:def
::
-++ should-proxy-update
- |= =vase
- ^- ?
- =/ =update:store !<(update:store vase)
+++ transform-proxy-update
+ |= vas=vase
+ ^- (unit vase)
+ :: TODO: should check if user is allowed to %add, %remove, %edit
+ :: contact
+ =/ =update:store !<(update:store vas)
?- -.update
- %initial %.n
- %add %.y
- %remove %.y
- %edit %.y
- %allow %.n
- %disallow %.n
- %set-public %.n
+ %initial ~
+ %add `vas
+ %remove `vas
+ %edit `vas
+ %allow ~
+ %disallow ~
+ %set-public ~
==
::
++ resource-for-update resource-for-update:con
diff --git a/pkg/arvo/app/dbug.hoon b/pkg/arvo/app/dbug.hoon
index f7132f05f9..e2c340ce29 100644
--- a/pkg/arvo/app/dbug.hoon
+++ b/pkg/arvo/app/dbug.hoon
@@ -593,10 +593,10 @@
%& (ship p.lane)
::
%|
- ?~ l=((soft ,[=@tas =@if =@ud]) (cue p.lane))
- s+(scot %x p.lane)
- =, u.l
- (tape "%{(trip tas)}, {(scow %if if)}, {(scow %ud ud)}")
+ %- tape
+ =/ ip=@if (end [0 32] p.lane)
+ =/ pt=@ud (cut 0 [32 16] p.lane)
+ "{(scow %if ip)}:{((d-co:co 1) pt)} ({(scow %ux p.lane)})"
==
==
::
diff --git a/pkg/arvo/app/file-server.hoon b/pkg/arvo/app/file-server.hoon
index f32697115f..121005b290 100644
--- a/pkg/arvo/app/file-server.hoon
+++ b/pkg/arvo/app/file-server.hoon
@@ -240,7 +240,12 @@
=/ mime-type=@t (rsh 3 (crip
))
:: Should maybe inspect to see how long cache should hold
::
- [[200 ['content-type' mime-type] max-1-da:gen ~] `q.u.data]
+ =/ headers
+ :~ content-type+mime-type
+ max-1-da:gen
+ 'Service-Worker-Allowed'^'/'
+ ==
+ [[200 headers] `q.u.data]
==
::
++ lowercase
diff --git a/pkg/arvo/app/glob.hoon b/pkg/arvo/app/glob.hoon
index 2ea06544ba..9a9b0652dc 100644
--- a/pkg/arvo/app/glob.hoon
+++ b/pkg/arvo/app/glob.hoon
@@ -5,7 +5,7 @@
/- glob
/+ default-agent, verb, dbug
|%
-++ hash 0v5.pmklm.qttdl.n8bs0.0tnc4.gg633
+++ hash 0v7.sjbvb.4gg0l.1qmbv.fmobl.d2tsq
+$ state-0 [%0 hash=@uv glob=(unit (each glob:glob tid=@ta))]
+$ all-states
$% state-0
@@ -105,12 +105,15 @@
(cat 3 js-name '.js')
=+ .^(js=@t %cx :(weld home /app/landscape/js/bundle /[js-name]/js))
=+ .^(map=@t %cx :(weld home /app/landscape/js/bundle /[map-name]/map))
+ =+ .^(sw=@t %cx :(weld home /app/landscape/js/bundle /serviceworker/js))
=+ !<(=js=mime (js-tube !>(js)))
+ =+ !<(=sw=mime (js-tube !>(sw)))
=+ !<(=map=mime (map-tube !>(map)))
=/ =glob:glob
%- ~(gas by *glob:glob)
:~ /[js-name]/js^js-mime
/[map-name]/map^map-mime
+ /serviceworker/js^sw-mime
==
=/ =path /(cat 3 'glob-' (scot %uv (sham glob)))/glob
[%pass /make %agent [our.bowl %hood] %poke %drum-put !>([path (jam glob)])]~
diff --git a/pkg/arvo/app/graph-push-hook.hoon b/pkg/arvo/app/graph-push-hook.hoon
index aff6801136..0ac5026377 100644
--- a/pkg/arvo/app/graph-push-hook.hoon
+++ b/pkg/arvo/app/graph-push-hook.hoon
@@ -63,31 +63,110 @@
=* mark i.t.wire
:_ this
(build-permissions mark i.t.t.wire %next)^~
+ ::
+ [%transform-add @ ~]
+ =* mark i.t.wire
+ :_ this
+ (build-transform-add mark %next)^~
==
::
++ on-fail on-fail:def
-::
-++ should-proxy-update
- |= =vase
- ^- ?
- =/ =update:store !<(update:store vase)
+++ transform-proxy-update
+ |= vas=vase
+ ^- (unit vase)
+ =/ =update:store !<(update:store vas)
=* rid resource.q.update
+ =. p.update now.bowl
?- -.q.update
- %add-graph %.n
- %remove-graph %.n
- %add-nodes (is-allowed-add:hc resource.q.update nodes.q.update)
- %remove-nodes (is-allowed-remove:hc resource.q.update indices.q.update)
- %add-signatures %.n
- %remove-signatures %.n
- %archive-graph %.n
- %unarchive-graph %.n
- %add-tag %.n
- %remove-tag %.n
- %keys %.n
- %tags %.n
- %tag-queries %.n
- %run-updates %.n
+ %add-nodes
+ ?. (is-allowed-add:hc rid nodes.q.update)
+ ~
+ =/ mark (get-mark:gra rid)
+ ?~ mark `vas
+ |^
+ =/ transform
+ !< $-([index:store post:store atom ?] [index:store post:store])
+ %. !>(*indexed-post:store)
+ .^(tube:clay (scry:hc %cc %home /[u.mark]/transform-add-nodes))
+ =/ [* result=(list [index:store node:store])]
+ %+ roll
+ (flatten-node-map ~(tap by nodes.q.update))
+ (transform-list transform)
+ =. nodes.q.update
+ %- ~(gas by *(map index:store node:store))
+ result
+ [~ !>(update)]
+ ::
+ ++ flatten-node-map
+ |= lis=(list [index:store node:store])
+ ^- (list [index:store node:store])
+ |^
+ %- sort-nodes
+ %+ welp
+ (turn lis empty-children)
+ %- zing
+ %+ turn lis
+ |= [=index:store =node:store]
+ ^- (list [index:store node:store])
+ ?: ?=(%empty -.children.node)
+ ~
+ %+ turn
+ (tap-deep:gra index p.children.node)
+ empty-children
+ ::
+ ++ empty-children
+ |= [=index:store =node:store]
+ ^- [index:store node:store]
+ [index node(children [%empty ~])]
+ ::
+ ++ sort-nodes
+ |= unsorted=(list [index:store node:store])
+ ^- (list [index:store node:store])
+ %+ sort unsorted
+ |= [p=[=index:store *] q=[=index:store *]]
+ ^- ?
+ (lth (lent index.p) (lent index.q))
+ --
+ ::
+ ++ transform-list
+ |= transform=$-([index:store post:store atom ?] [index:store post:store])
+ |= $: [=index:store =node:store]
+ [indices=(set index:store) lis=(list [index:store node:store])]
+ ==
+ =/ l (lent index)
+ =/ parent-modified=?
+ %- ~(rep in indices)
+ |= [i=index:store out=_|]
+ ?: out out
+ =/ k (lent i)
+ ?: (lte l k)
+ %.n
+ =((swag [0 k] index) i)
+ =/ [ind=index:store =post:store]
+ (transform index post.node now.bowl parent-modified)
+ :- (~(put in indices) index)
+ (snoc lis [ind node(post post)])
+ --
+ ::
+ %remove-nodes
+ ?. (is-allowed-remove:hc resource.q.update indices.q.update)
+ ~
+ `vas
+ ::
+ %add-graph ~
+ %remove-graph ~
+ %add-signatures ~
+ %remove-signatures ~
+ %archive-graph ~
+ %unarchive-graph ~
+ %add-tag ~
+ %remove-tag ~
+ %keys ~
+ %tags ~
+ %tag-queries ~
+ %run-updates ~
==
+::
++ resource-for-update resource-for-update:gra
::
++ initial-watch
@@ -111,7 +190,7 @@
|= =vase
^- [(list card) agent]
=/ =update:store !<(update:store vase)
- ?+ -.q.update [~ this]
+ ?+ -.q.update [~ this]
%add-graph
?~ mark.q.update `this
=* mark u.mark.q.update
@@ -119,6 +198,7 @@
:_ this(marks (~(put in marks) mark))
:~ (build-permissions:hc mark %add %sing)
(build-permissions:hc mark %remove %sing)
+ (build-transform-add:hc mark %sing)
==
::
%remove-graph
@@ -133,19 +213,14 @@
|_ =bowl:gall
+* grp ~(. group bowl)
met ~(. mdl bowl)
- gra ~(. graph bowl)
+ gra ~(. graph bowl)
+::
++ scry
|= [care=@t desk=@t =path]
%+ weld
/[care]/(scot %p our.bowl)/[desk]/(scot %da now.bowl)
path
::
-++ scry-mark
- |= =resource:res
- .^ (unit mark)
- (scry %gx %graph-store /graph-mark/(scot %p entity.resource)/[name.resource]/noun)
- ==
-::
++ perm-mark-name
|= perm=@t
^- @t
@@ -216,6 +291,8 @@
%- some
%+ levy ~(tap by nodes)
|= [=index:store =node:store]
+ ?. =(author.post.node src.bowl)
+ %.n
=/ =permissions:store
%^ add-mark resource vip
(node-to-indexed-post node)
@@ -262,5 +339,13 @@
=/ =mood:clay [%c da+now.bowl /[mark]/(perm-mark-name kind)]
=/ =rave:clay ?:(?=(%sing mode) [mode mood] [mode mood])
[%pass wire %arvo %c %warp our.bowl %home `rave]
+::
+++ build-transform-add
+ |= [=mark mode=?(%sing %next)]
+ ^- card
+ =/ =wire /transform-add/[mark]
+ =/ =mood:clay [%c da+now.bowl /[mark]/transform-add-nodes]
+ =/ =rave:clay ?:(?=(%sing mode) [mode mood] [mode mood])
+ [%pass wire %arvo %c %warp our.bowl %home `rave]
--
diff --git a/pkg/arvo/app/graph-store.hoon b/pkg/arvo/app/graph-store.hoon
index 57dbb5e823..87f4644803 100644
--- a/pkg/arvo/app/graph-store.hoon
+++ b/pkg/arvo/app/graph-store.hoon
@@ -386,14 +386,14 @@
::
?~ t.index
=* p post.node
+ ?~ hash.p node(signatures.post *signatures:store)
=/ =validated-portion:store
[parent-hash author.p time-sent.p contents.p]
=/ =hash:store `@ux`(sham validated-portion)
- ?~ hash.p node(signatures.post *signatures:store)
- ~| "signatures do not match the calculated hash"
- ?> (are-signatures-valid:sigs our.bowl signatures.p hash now.bowl)
~| "hash of post does not match calculated hash"
?> =(hash u.hash.p)
+ ~| "signatures do not match the calculated hash"
+ ?> (are-signatures-valid:sigs our.bowl signatures.p hash now.bowl)
node
:: recurse children
::
diff --git a/pkg/arvo/app/group-push-hook.hoon b/pkg/arvo/app/group-push-hook.hoon
index 29bd836299..e8736ccb5b 100644
--- a/pkg/arvo/app/group-push-hook.hoon
+++ b/pkg/arvo/app/group-push-hook.hoon
@@ -110,12 +110,12 @@
++ on-arvo on-arvo:def
++ on-fail on-fail:def
::
-++ should-proxy-update
- |= =vase
- =/ =update:store
- !<(update:store vase)
+++ transform-proxy-update
+ |= vas=vase
+ ^- (unit vase)
+ =/ =update:store !<(update:store vas)
?: ?=(%initial -.update)
- %.n
+ ~
|^
=/ role=(unit (unit role-tag))
(role-for-ship:grp resource.update src.bowl)
@@ -128,24 +128,36 @@
%moderator moderator
%janitor member
==
+ ::
++ member
- ?: ?=(%add-members -.update)
- =(~(tap in ships.update) ~[src.bowl])
- ?: ?=(%remove-members -.update)
- =(~(tap in ships.update) ~[src.bowl])
- %.n
+ ?: ?| ?& ?=(%add-members -.update)
+ =(~(tap in ships.update) ~[src.bowl])
+ ==
+ ?& ?=(%remove-members -.update)
+ =(~(tap in ships.update) ~[src.bowl])
+ == ==
+ `vas
+ ~
+ ::
++ admin
- !?=(?(%remove-group %add-group) -.update)
+ ?. ?=(?(%remove-group %add-group) -.update)
+ `vas
+ ~
+ ::
++ moderator
- ?= $? %add-members %remove-members
- %add-tag %remove-tag ==
- -.update
+ ?: ?=(?(%add-members %remove-members %add-tag %remove-tag) -.update)
+ `vas
+ ~
+ ::
++ non-member
- ?& ?=(%add-members -.update)
- (can-join:grp resource.update src.bowl)
- =(~(tap in ships.update) ~[src.bowl])
- ==
+ ?: ?& ?=(%add-members -.update)
+ (can-join:grp resource.update src.bowl)
+ =(~(tap in ships.update) ~[src.bowl])
+ ==
+ `vas
+ ~
--
+::
++ resource-for-update resource-for-update:grp
::
++ take-update
diff --git a/pkg/arvo/app/hark-graph-hook.hoon b/pkg/arvo/app/hark-graph-hook.hoon
index 99d9e2450c..3e779a8bcf 100644
--- a/pkg/arvo/app/hark-graph-hook.hoon
+++ b/pkg/arvo/app/hark-graph-hook.hoon
@@ -24,8 +24,6 @@
watch-on-self=_&
==
::
-+$ notif-kind
- [name=@t parent-lent=@ud mode=?(%each %count %none) watch=?]
::
++ scry
|* [[our=@p now=@da] =mold p=path]
@@ -223,11 +221,11 @@
|= [=index:graph-store out=(list card)]
=| =indexed-post:graph-store
=. index.p.indexed-post index
- =+ !<(u-notif-kind=(unit notif-kind) (tube !>(indexed-post)))
+ =+ !<(u-notif-kind=(unit notif-kind:hook) (tube !>(indexed-post)))
?~ u-notif-kind out
=* notif-kind u.u-notif-kind
=/ =stats-index:store
- [%graph rid (scag parent-lent.notif-kind index)]
+ [%graph rid (scag parent.index-len.notif-kind index)]
?. ?=(%each mode.notif-kind) out
:_ out
(poke-hark %read-each stats-index index)
@@ -382,8 +380,12 @@
update-core(hark-pokes [action hark-pokes])
::
++ new-watch
- |= =index:graph-store
- update-core(new-watches [index new-watches])
+ |= [=index:graph-store =watch-for:hook =index-len:hook]
+ =? new-watches =(%siblings watch-for)
+ [(scag parent.index-len index) new-watches]
+ =? new-watches =(%children watch-for)
+ [(scag self.index-len index) new-watches]
+ update-core
::
++ check
|- ^+ update-core
@@ -411,7 +413,7 @@
|= =node:graph-store
^+ update-core
=. update-core (check-node-children node)
- =+ !< notif-kind=(unit notif-kind)
+ =+ !< notif-kind=(unit notif-kind:hook)
(get-conversion !>([0 post.node]))
?~ notif-kind
update-core
@@ -421,11 +423,11 @@
name.u.notif-kind
=* not-kind u.notif-kind
=/ parent=index:post
- (scag parent-lent.not-kind index.post.node)
+ (scag parent.index-len.not-kind index.post.node)
=/ notif-index=index:store
[%graph group rid module desc parent]
?: =(our.bowl author.post.node)
- (self-post node notif-index [mode watch]:not-kind)
+ (self-post node notif-index not-kind)
=. update-core
(update-unread-count not-kind notif-index [time-sent index]:post.node)
=? update-core
@@ -438,7 +440,7 @@
update-core
::
++ update-unread-count
- |= [=notif-kind =index:store time=@da ref=index:graph-store]
+ |= [=notif-kind:hook =index:store time=@da ref=index:graph-store]
=/ =stats-index:store
(to-stats-index:store index)
?- mode.notif-kind
@@ -450,19 +452,18 @@
++ self-post
|= $: =node:graph-store
=index:store
- mode=?(%count %each %none)
- watch=?
+ =notif-kind:hook
==
^+ update-core
- ?: ?=(%none mode) update-core
+ ?: ?=(%none mode.notif-kind) update-core
=/ =stats-index:store
(to-stats-index:store index)
=. update-core
(hark %seen-index time-sent.post.node stats-index)
- =? update-core ?=(%count mode)
+ =? update-core ?=(%count mode.notif-kind)
(hark %read-count stats-index)
- =? update-core &(watch watch-on-self)
- (new-watch index.post.node)
+ =? update-core watch-on-self
+ (new-watch index.post.node [watch-for index-len]:notif-kind)
update-core
::
++ add-unread
diff --git a/pkg/arvo/app/hark-store.hoon b/pkg/arvo/app/hark-store.hoon
index aa522185e6..fd1ab4f965 100644
--- a/pkg/arvo/app/hark-store.hoon
+++ b/pkg/arvo/app/hark-store.hoon
@@ -23,6 +23,7 @@
state-2
state-3
state-4
+ state-5
==
+$ unread-stats
[indices=(set index:graph-store) last=@da]
@@ -46,8 +47,11 @@
+$ state-4
[%4 base-state]
::
++$ state-5
+ [%5 base-state]
+::
+$ inflated-state
- $: state-4
+ $: state-5
cache
==
:: $cache: useful to have precalculated, but can be derived from state
@@ -88,9 +92,18 @@
=| cards=(list card)
|^
?- -.old
- %4
+ %5
:- (flop cards)
this(-.state old, +.state (inflate-cache:ha old))
+ ::
+ %4
+ %_ $
+ -.old %5
+ ::
+ last-seen.old
+ %- ~(run by last-seen.old)
+ |=(old=@da (min old now.bowl))
+ ==
::
%3
%_ $
@@ -279,7 +292,6 @@
%+ turn
~(tap by unreads-count)
|= [=stats-index:store count=@ud]
- ?> ?=(%graph -.stats-index)
:* stats-index
~(wyt in (~(gut by by-index) stats-index ~))
[%count count]
@@ -297,10 +309,27 @@
(~(gut by last-seen) stats-index *time)
==
::
+ ++ give-group-unreads
+ ^- (list [stats-index:store stats:store])
+ %+ murn ~(tap by by-index)
+ |= [=stats-index:store nots=(set [time index:store])]
+ ?. ?=(%group -.stats-index)
+ ~
+ :- ~
+ :* stats-index
+ ~(wyt in nots)
+ [%count 0]
+ *time
+ ==
+ ::
++ give-unreads
^- update:store
:- %unreads
- (weld give-each-unreads give-since-unreads)
+ ;: weld
+ give-each-unreads
+ give-since-unreads
+ give-group-unreads
+ ==
--
::
++ on-peek
@@ -749,8 +778,10 @@
==
::
++ inflate-cache
- |= state-4
+ |= state-5
^+ +.state
+ =. +.state
+ *cache
=/ nots=(list [p=@da =timebox:store])
(tap:orm notifications)
|- =* outer $
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2
new file mode 100644
index 0000000000..4efbf2991d
Binary files /dev/null and b/pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2
index 1c2a392905..4af3968e0e 100644
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2 and b/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2
index 8f7849083b..289b6c97c5 100644
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2 and b/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2
index 7dfd91c5bb..0cce5e955e 100644
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2 and b/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2
index c10f38d326..aae63a9460 100644
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2 and b/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2
index b2b00d64a5..3a24fb6ecf 100644
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2 and b/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2 differ
diff --git a/pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2
deleted file mode 100644
index 45ee40a2b0..0000000000
Binary files a/pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2 and /dev/null differ
diff --git a/pkg/arvo/app/landscape/index.html b/pkg/arvo/app/landscape/index.html
index 80086a1ec1..9e69f790fe 100644
--- a/pkg/arvo/app/landscape/index.html
+++ b/pkg/arvo/app/landscape/index.html
@@ -24,6 +24,6 @@
-
+