Skip to content
This repository was archived by the owner on Jul 3, 2026. It is now read-only.
This repository was archived by the owner on Jul 3, 2026. It is now read-only.

Add inbox/notifications view #30

Description

@serabi

Add a view to the TUI that shows the user's Linear inbox (notifications).

Linear API Surface

Queries

  • notifications(filter, first, after, orderBy) — paginated list of all notifications
  • notification(id) — single notification by ID
  • notificationsUnreadCount — unread count (useful for badge/indicator)

Filtering

The NotificationFilter supports:

  • read: Boolean — filter by read status (false for unread inbox)
  • archived: Boolean — filter by archived status

Notification Fields (common to all types)

Field Type Description
id ID! Unique identifier
title String! Notification title
subtitle String! Notification subtitle
type String! Notification type
category NotificationCategory! Category
readAt DateTime Null if unread
snoozedUntilAt DateTime Null if not snoozed
archivedAt DateTime Null if not archived
inboxUrl String! Direct link to notification in Linear inbox
url String! Link to the target (issue, project, etc.)
actor User User who triggered the notification
botActor ActorBot Bot that triggered the notification
createdAt DateTime! When the notification was created
updatedAt DateTime! Last update timestamp
groupingKey String! For grouping similar notifications
groupingPriority Float! Priority within a group

Notification Types (polymorphic)

  • IssueNotification — adds issue, comment, parentComment, commentId, parentCommentId
  • ProjectNotification — adds project, projectUpdate, projectUpdateId, comment, commentId, projectMilestoneId, reactionEmoji
  • PostNotification — adds postId, commentId, parentCommentId, reactionEmoji
  • PullRequestNotification — adds pullRequest, pullRequestId, pullRequestCommentId

Example Query

query InboxNotifications($first: Int, $after: String) {
  notifications(
    first: $first
    after: $after
    filter: { read: { eq: false } }
    orderBy: createdAt
  ) {
    nodes {
      id
      title
      subtitle
      type
      category
      readAt
      snoozedUntilAt
      createdAt
      url
      inboxUrl
      ... on IssueNotification {
        issue { id identifier title }
        comment { id body }
      }
      ... on ProjectNotification {
        project { id name }
        projectUpdate { id body }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions