Index: chapterx-frontend/src/components/writer/CollaboratorManager.tsx
===================================================================
--- chapterx-frontend/src/components/writer/CollaboratorManager.tsx	(revision acf690c1403ecbecd948a46d950278f177f2d408)
+++ chapterx-frontend/src/components/writer/CollaboratorManager.tsx	(revision a7550ca4790b7d1a7515a4a688b871e32313d8bf)
@@ -32,5 +32,5 @@
 }) => {
   const { collaborations, addCollaboration, removeCollaboration, updateCollaborationPermission } = useStoryStore()
-  const { allUsers } = useAuthStore()
+  const { allUsers, fetchAllUsers } = useAuthStore()
   const { addNotification } = useNotificationStore()
   const { addToast } = useUIStore()
@@ -43,5 +43,5 @@
   const storyCollabs = collaborations.filter(c => c.story_id === storyId)
   const collabUserIds = new Set(storyCollabs.map(c => c.user_id))
-  const availableUsers = allUsers.filter(u => u.user_id !== ownerId && !collabUserIds.has(u.user_id))
+  const availableUsers = allUsers.filter(u => u.user_id !== ownerId && !collabUserIds.has(u.user_id) && (u.role === 'writer' || u.role === 'admin'))
 
   const handleInvite = () => {
@@ -62,8 +62,7 @@
     addCollaboration(newCollab)
     addNotification({
-      user_id: user.user_id,
+      recipientUserId: user.user_id,
       type: 'collaboration',
-      title: 'Collaboration Invite',
-      message: `You've been invited to collaborate on "${storyTitle}" as ${selectedRole}.`,
+      content: `You've been invited to collaborate on "${storyTitle}" as ${selectedRole}.`,
       link: `/story/${storyId}`,
     })
@@ -86,5 +85,5 @@
           <span className="text-xs text-slate-500">({storyCollabs.length})</span>
         </div>
-        <Button size="sm" onClick={() => setInviteOpen(true)}>
+        <Button size="sm" onClick={() => { fetchAllUsers(); setInviteOpen(true) }}>
           <UserPlus size={14} />
           Invite
@@ -149,5 +148,5 @@
               {availableUsers.map(u => (
                 <option key={u.user_id} value={u.username}>
-                  @{u.username} ({u.role})
+                  @{u.username}
                 </option>
               ))}
