diff --git a/frontend/src/components/modal/ProvenancePanel.vue b/frontend/src/components/modal/ProvenancePanel.vue
index b4d641e..1d8e5ee 100644
--- a/frontend/src/components/modal/ProvenancePanel.vue
+++ b/frontend/src/components/modal/ProvenancePanel.vue
@@ -18,9 +18,13 @@
{{ e.source.platform }}
{{ postDate(e) }}
-
-
- View post
-
+
@@ -137,10 +137,16 @@ function postTitle(e) {
return toPlainText(e.post.title) || `Post ${e.post.external_post_id}`
}
-function openPost(postId) {
+function openPost(postId, artistId) {
// Land on the post in the posts feed (in context), not the gallery
- // image grid. Operator-flagged 2026-05-28.
- router.push({ path: '/posts', query: { post_id: postId } })
+ // image grid. Scope the feed to this artist so the user lands in
+ // that creator's stream, not the global one — operator-flagged
+ // 2026-06-01. PostsView reads `artist_id` from the query string
+ // (PostsView.vue line ~92) and filters via post_feed_service.
+ router.push({
+ path: '/posts',
+ query: { post_id: postId, artist_id: artistId },
+ })
modal.close()
}
@@ -163,8 +169,21 @@ function openPost(postId) {
text-transform: lowercase;
}
.fc-prov__post {
- font-weight: 700; margin: 4px 0;
- color: rgb(var(--v-theme-on-surface));
+ /* Clickable title — opens the post in the artist-scoped feed
+ (operator-flagged 2026-06-01: title IS the primary action, the
+ prior "View post" link was redundant). Styled as a button-link:
+ accent color, underline on hover, focus ring for keyboard nav. */
+ display: block; width: 100%; text-align: left;
+ background: none; border: none; padding: 0;
+ font: inherit; font-weight: 700;
+ margin: 4px 0;
+ color: rgb(var(--v-theme-accent));
+ cursor: pointer;
+}
+.fc-prov__post:hover { text-decoration: underline; }
+.fc-prov__post:focus-visible {
+ outline: 2px solid rgb(var(--v-theme-accent));
+ outline-offset: 2px; border-radius: 3px;
}
.fc-prov__meta {
font-size: 13px; color: rgb(var(--v-theme-on-surface-variant));
diff --git a/frontend/src/components/modal/SuggestionItem.vue b/frontend/src/components/modal/SuggestionItem.vue
index 2045f57..9517649 100644
--- a/frontend/src/components/modal/SuggestionItem.vue
+++ b/frontend/src/components/modal/SuggestionItem.vue
@@ -1,19 +1,33 @@
+
{{ suggestion.display_name }}
+new
+ title="No matching tag yet — accepting creates it">+ new
{{ scorePct }}
+ >
+ Accept
+
-
+
@@ -38,17 +52,45 @@ const scorePct = computed(() => `${Math.round(props.suggestion.score * 100)}%`)