Index: chapterx-frontend/src/store/notificationStore.ts
===================================================================
--- chapterx-frontend/src/store/notificationStore.ts	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/store/notificationStore.ts	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -17,5 +17,5 @@
   notifications: Notification[]
   fetchUserNotifications: (userId: number) => Promise<void>
-  addNotification: (n: { recipientUserId: number; type: string; content: string; link?: string }) => Promise<void>
+  addNotification: (n: { userId: number; contentType: string; content: string; storyId?: number; link?: string }) => Promise<void>
   markAllRead: () => Promise<void>
   markRead: (id: number) => Promise<void>
@@ -33,6 +33,6 @@
         notification_id: n.id,
         user_id: userId,
-        type: n.type ?? 'info',
-        title: n.type ?? 'Notification',
+        type: n.contentType ?? 'info',
+        title: n.contentType ?? 'Notification',
         message: n.content,
         link: n.link,
@@ -46,10 +46,11 @@
   },
 
-  addNotification: async ({ recipientUserId, type, content, link }) => {
+  addNotification: async ({ userId, contentType, content, storyId, link }) => {
     try {
       await axios.post(`${API}/notifications`, {
         content,
-        recipientUserId,
-        type,
+        contentType,
+        userId,
+        storyId,
         link,
       }, { headers: getAuthHeaders() })
Index: chapterx-frontend/src/store/storyStore.ts
===================================================================
--- chapterx-frontend/src/store/storyStore.ts	(revision a6e33d1f34c0dbbfff38bfb2c73eea32abfe7cff)
+++ chapterx-frontend/src/store/storyStore.ts	(revision e882b92860e1899312f197af1134bb0f33d30d15)
@@ -144,5 +144,5 @@
         cover_image: s.image ?? undefined,
         mature_content: s.matureContent,
-        status: 'published' as StoryStatus,
+        status: (s.status ?? 'draft') as StoryStatus,
         author_username: s.writer?.user?.username ?? '',
         created_at: s.createdAt,
@@ -193,6 +193,6 @@
         name: c.name ?? c.username ?? '',
         story_title: '',
-        role: 'editor' as any,
-        permission_level: 3 as any,
+        role: c.role as any,
+        permission_level: (c.permissionLevel ?? 3) as any,
         joined_at: c.createdAt,
       }))
@@ -246,4 +246,5 @@
         image: imageUrl,
         content: partial.content ?? story.content,
+        status: partial.status ?? story.status,
       }, { headers: getAuthHeaders() })
     } catch {
@@ -266,10 +267,12 @@
   },
 
-  updateStoryStatus: (id, status) =>
+  updateStoryStatus: (id, status) => {
     set(state => ({
       stories: state.stories.map(s =>
         s.story_id === id ? { ...s, status, updated_at: new Date().toISOString() } : s
       ),
-    })),
+    }))
+    get().updateStory(id, { status })
+  },
 
   addChapter: async (chapter) => {
@@ -407,4 +410,5 @@
         storyId: collab.story_id,
         role: collab.role,
+        permissionLevel: collab.permission_level,
       }, { headers: getAuthHeaders() })
     } catch {
@@ -445,6 +449,8 @@
         original_text: s.originalText,
         suggested_text: s.suggestedText,
-        suggestion_type: (s.suggestionTypes?.[0] ?? 'style') as SuggestionType,
+        suggestion_type: (s.suggestionType ?? 'style') as SuggestionType,
+        explanation: s.explanation ?? '',
         accepted: s.accepted === true ? true : s.accepted === false ? false : null,
+        created_at: s.createdAt ?? new Date().toISOString(),
         applied_at: s.appliedAt ?? undefined,
       }))
@@ -506,4 +512,5 @@
         originalText: suggestion.original_text,
         suggestedText: suggestion.suggested_text,
+        suggestionType: suggestion.suggestion_type,
         storyId: suggestion.chapter_id,
       }, { headers: getAuthHeaders() })
