diff --git a/appinfo/routes.php b/appinfo/routes.php
index 077c37ee..f88528b8 100644
--- a/appinfo/routes.php
+++ b/appinfo/routes.php
@@ -50,7 +50,7 @@ return [
['name' => 'Navigation#resizedGetPublic', 'url' => '/document/public/resized', 'verb' => 'GET'],
['name' => 'ActivityPub#actor', 'url' => '/users/{username}', 'verb' => 'GET'],
- ['name' => 'ActivityPub#actorAlias', 'url' => '/@{username}', 'verb' => 'GET'],
+ ['name' => 'ActivityPub#actorAlias', 'url' => '/@{username}/', 'verb' => 'GET'],
['name' => 'ActivityPub#inbox', 'url' => '/@{username}/inbox', 'verb' => 'POST'],
['name' => 'ActivityPub#getInbox', 'url' => '/@{username}/inbox', 'verb' => 'GET'],
['name' => 'ActivityPub#sharedInbox', 'url' => '/inbox', 'verb' => 'POST'],
diff --git a/src/components/MessageContent.js b/src/components/MessageContent.js
index ff4e23cf..d8fe78a8 100644
--- a/src/components/MessageContent.js
+++ b/src/components/MessageContent.js
@@ -24,6 +24,9 @@ export default Vue.component('MessageContent', {
* All attributes other than `href` for links are stripped from the source
*/
export function formatMessage(createElement, source) {
+ if (!source.tag) {
+ source.tag = []
+ }
let mentions = source.tag.filter(tag => tag.type === 'Mention')
let hashtags = source.tag.filter(tag => tag.type === 'Hashtag')
diff --git a/src/components/TimelineAvatar.vue b/src/components/TimelineAvatar.vue
new file mode 100644
index 00000000..25104274
--- /dev/null
+++ b/src/components/TimelineAvatar.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/components/TimelineEntry.vue b/src/components/TimelineEntry.vue
index 61833343..97f714c6 100644
--- a/src/components/TimelineEntry.vue
+++ b/src/components/TimelineEntry.vue
@@ -1,41 +1,50 @@
-
-
- {{ actionSummary }}
-
-