ResearchOS/Wiki

Notifications & Inbox

The bell, the photo inbox, and event reminders. All three live in the app shell, so you see new things wherever you're working.

The bell and the Inbox pill sit together in the top-right of the header, next to the help and settings icons.

What you'll see and where

ResearchOS surfaces new things in three places.

  • The bell in the top-right of the header collects everything that needs your attention. Things someone shared with you (tasks, methods, projects), calendar reminders that have fired, shift alerts when a labmate reschedules a shared task, @-mentions in comments, and (in a lab) announcements, task assignments, purchase approvals, flag-for-review notes, and purchase-order updates. A red count badge appears when there are unread items.
  • The Inbox pill, right next to the bell, opens a centered modal with two tabs, Shared with me (items another ResearchOS user sent you across folders) and Photos (images waiting to be filed into an experiment). The pill turns amber and shows a count that sums both when anything is waiting.
  • An inbox toast appears at the bottom-right corner the moment a new photo arrives, so you can file it in one click without hunting for the modal.

The bell

Click the bell to drop down a list of notifications. Rows come in several kinds, each with its own icon. The three most common are below, and the lab-specific kinds follow.

  • Shared with you. When another lab member shares a task, method, or project with you, a row appears here showing who shared it, what it was, and whether you got view or edit access.
  • Event reminder. When a calendar reminder you set up fires (see below), a row lands here with the event title, the time it starts, and how many minutes you asked to be warned in advance.
  • Shift alert. When another lab member with edit access reschedules a task you also have access to, a row appears reading “Alex shifted PCR optimization by +3d” with the old and new start dates underneath. The amber delta covers start-date moves and, when start and end shifted by different amounts, the end-date move is shown on the second line. Use it to keep tabs on a shared schedule without watching the Gantt all day.
  • @-mentions. When someone @-mentions you by name in a comment, that mention surfaces here as its own row so a direct callout doesn't get lost in the ambient comment feed.
  • Lab notifications. Inside a lab, the bell also fires for announcements, task assignments your PI hands you, purchase approvals, flag-for-review notes on your records, and purchase-order updates (someone asked you to order a supply, or yours was ordered). Each lands as its own row with a View → or Open → link to the right surface.
Shift-alert row in the bell. The amber delta is the headline. View task jumps to the new start date on the calendar, Ignore dismisses the row.

Clicking anywhere on an unread row marks it as read but doesn't go anywhere. Clicking a row that is already read is a no-op. Each row also has a blue pill with a checkmark on the right that marks just that one item as read, so you can silence a single notification without touching the rest. Reminder rows have an extra Open in calendar → link that jumps the calendar to the day of the event and closes the dropdown. Shift-alert rows have View task → (jumps the calendar to the new start date and closes the dropdown) and Ignore (removes the row without touching anything else). Every row also has a small × on the right to dismiss it outright.

At the top of the dropdown, Mark all read clears the unread badge without removing anything. It only appears when at least one unread item exists. Clear read removes the rows you've already acknowledged, and only appears when at least one read item is present. Clear all empties the list (with a confirm prompt so you don't lose unread items by accident).

The bell rechecks for new notifications every 30 seconds while the app is open. When something fires inside this tab (e.g., a calendar reminder), the badge updates immediately rather than waiting for the next poll. Shift alerts work differently. Another lab member writes them into your shared folder as sidecar files, so the bell scans for new ones once when the app loads. Closing and reopening the tab (or refreshing) is the cue that picks them up.

The Inbox modal

Click the Inbox pill to open a centered popup with two tabs. The Shared with me tab holds items another ResearchOS user sent you across folders (see Sharing & Permissions for that flow), and the Photos tab, covered below, holds images waiting to be filed. Each photo row shows a thumbnail, the caption, the original filename, and the time it arrived.

Open the Inbox to see waiting photos. Each row has a Move-to-active and Delete button, and clicking the row opens an editor for the caption and filename.

Each row carries these actions on the right.

  • Move to active. Sends the photo into whichever surface is currently open in ResearchOS, whether an experiment, a note, or (if both popups are open) a small dropdown lets you pick between them. The button is disabled when nothing is open, with a tooltip explaining why.
  • ⋯ (more actions). A small ellipsis button that only fades in when you hover the row. Clicking it opens the same menu as right-click, anchored under the button, with Send to task…, Send to note…, Move to active, and Delete.
  • Delete. Removes the photo from the inbox folder (with a confirm prompt).

Clicking a single row opens an image editor where you can rename the file, edit the caption, see when it was received, and either move it to the active experiment or delete it.

Filing a batch with multi-select

For a stack of photos that all belong to the same experiment, the modal supports multi-select so you don't have to file them one at a time.

  • Shift-click a second row to select the contiguous range from your last anchor row to this one.
  • Cmd-click (or Ctrl-click on Windows / Linux) to toggle individual rows in and out of the selection without disturbing the rest.
  • Selected rows pick up a blue border and a blue ring so you can see the group at a glance. Clicking the empty area of the modal clears the selection.

With one or more rows selected, right-click any selected row (or click the ⋯ button) to open a context menu. The top two items read Send to task… and Send to note… for a single row, or Send N items to task… / Send N items to note… when multiple are selected. Picking either opens a searchable picker (experiments sorted by most-recent start date, or notes sorted by most-recently-updated). Choose a destination and the whole batch moves there at once. Note destinations append a markdown image link to the note's latest entry as each photo lands, so the photos surface inline next time you open the note.

Shift-click or Cmd-click to select multiple inbox photos, then right-click for the batch menu.

If any filename in the batch collides with an existing image in the destination task, the duplicate-resolution dialog pops up for each collision so you can Rename, Replace, or Cancel per item. Non-colliding items go through without interruption. When the batch finishes, a green toast in the bottom-right corner of the modal confirms how many items landed in the target task.

The bottom-right toast

The moment a new photo arrives in your inbox, a toast appears in the bottom-right corner with a thumbnail, the caption, and a one-click action. If an experiment popup is open, the action is File here, which moves the photo straight into that experiment. If nothing's open, the action is Open inbox, which pops the Inbox modal so you can sort it manually.

Toasts auto-dismiss after about 12 seconds, and any photo you file or delete elsewhere also drops out of the toast queue automatically. The small close button on a toast just dismisses the notification, the photo stays in the inbox until you act on it.

Notification routing matrix

All notification routing is configured in Settings, Notifications. The matrix has five categories (rows) and four channels (columns). Each cell is an independent toggle.

The five categories map the 14 internal notification types into user-facing groups.

  • Shared & assigned to me. A task, method, or project shared with you, or a task assigned or flagged for your review.
  • Comments & mentions. Someone comments on your work or @-mentions you.
  • Lab announcements. Your PI posts a lab-wide announcement.
  • Purchases & orders. An order you requested is placed or approved, or one is assigned to you.
  • Reminders & schedule changes. Calendar reminders, and when a shared task's date shifts.

The four channels are as follows.

  • Bell (in-app). The bell in the laptop header always collects every notification in its category. The bell toggle is stored for a future "mute from bell" feature but does not currently suppress the in-app store.
  • Laptop. Desktop pop-ups from the browser while a ResearchOS tab is open. Requires browser notification permission.
  • Phone. A push to your paired Companion phone. Requires a cloud account (solo users without an account never see this column). The laptop must be open and publishing to deliver the push.
  • Email. An email to the verified address on your account. Requires a cloud account (same gate as Phone).

The defaults shipped in the product are: Shared gets Bell, Laptop, and Phone on; Comments gets Bell and Laptop; Lab announcements gets Bell and Email; Purchases gets Bell only; Reminders gets Bell, Laptop, and Phone.

Settings, Notifications. Five categories, four channels. Phone and Email only show for cloud account users.

Quiet hours

Quiet hours silence the push channels (Laptop, Phone, Email) during a time window you set. The bell still collects while quiet. Options are a start time, an end time (the window handles overnight ranges where start is after end, such as 19:00 to 08:00), and an optional weekends quiet flag that silences Saturday and Sunday entirely. Quiet hours ship off by default; opt in to activate them.

Solo-user gating

Phone and Email are account-only channels. A solo user working without a cloud account never sees the Phone or Email columns in the matrix, and any stored preference for those channels is ignored at dispatch time. This keeps the settings surface simple for local-only setups and prevents confusing "why did that not buzz my phone" moments.

Phone Notifications screen

The Companion phone app has a dedicated Notifications screen (reachable from the Home tab header bell icon). It shows the notifications the laptop has routed to your phone channel as a synced list. Each row shows a category-tinted icon chip, an unread dot, the notification title, a one-line body, and a relative time.

The list is fetched from a sealed "notifications" snapshot the laptop publishes while open. It is not a live OS push feed; it is a polled mirror of what the laptop has sent to the phone channel. Pull down to refresh. Read state is owned by the laptop bell, so the list mirrors the laptop's read state rather than tracking reads separately on the phone.

Opening the Notifications screen also refreshes the phone's push token, covering a token rotation or a notification permission granted after pairing.

Lab Inbox and comments

The bell handles things you need to acknowledge directly, including the @-mentions and lab notifications above. The broader comment stream lives in a separate surface, the Lab Inbox. The two are kept separate on purpose.

  • The bell pings you for things you need to acknowledge, including @-mentions, shares, fired reminders, shift alerts, and lab notifications.
  • The Lab Inbox is ambient. Comments people left on your tasks and notes appear there, alongside the lab-wide announcement stream and the @-mention filter.

The split is by urgency. A direct @-mention lands in the bell so you do not miss a callout, while general comments on records you can read stay in the Lab Inbox only. See Comments for the threading and mention model.

Event reminders

Reminders are a single setting that applies to every timed event on your calendar. Open the Calendar page and click Reminders at the top of the left sidebar. The popup holds three things.

  • A master Enable reminders checkbox.
  • A Remind me dropdown for how far in advance to fire (1 minute, 5, 10, 15, 30, 1 hour, 2 hours, or 1 day before).
  • A button to grant your browser permission to show OS-level popups, plus a Send test link once it's granted.

With reminders on, every timed event in the next 24 hours is queued. When the chosen lead time hits, a row appears in the bell and (if you've granted browser permission) an OS notification pops on top of whatever you're doing. All-day events don't produce reminders, since there's no obvious moment to fire them at.

Reminder settings, the bell history, and the photo inbox are all per-user. If you share a folder with the rest of your lab, everyone has their own bell, their own inbox, and their own reminder preferences.