code review

overview

the review tab is a full github code review experience built into atlas. open it from the “open review” link on any workspace that has a pull request.

pr header & description

the top of the review tab shows your pull request at a glance:

  • state badge — open, draft, merged, or closed
  • branch info — head branch → base branch with additions/deletions and changed file count
  • pr description — rendered markdown, expandable for long descriptions
  • commits — collapsible commit history with SHAs linking to github
  • checks & ci — status checks with pass/fail/pending counts

reviewers

manage who reviews your pull request:

  • review states — approved, changes requested, commented, dismissed, or pending — shown as colored badges next to each reviewer
  • add reviewers — search for collaborators or org teams (formatted as owner/team-slug)
  • re-request review — hover over a reviewer who has already submitted to re-request their review

review threads

inline code review threads with full context:

  • diff snippets — each thread shows the exact lines that were commented on
  • file:line links — click to jump to the file in the diff viewer
  • tabbed view — switch between open and resolved threads
  • resolve / unresolve — toggle thread state (updates optimistically)
  • outdated badge — marks threads on lines that have since changed
  • nested replies — threaded conversations with collapsible sections

conversation

top-level pr discussion, separate from inline review threads. includes a compose box for new comments with the full markdown editor.

submitting a review

the submit panel is fixed at the bottom of the review tab. three actions:

  • approve — no body required (disabled on your own PRs)
  • request changes — requires a body explaining what needs to change (disabled on your own PRs)
  • comment — requires a body, for general feedback without approving or blocking

reactions

all review comments support github’s 8 emoji reactions: 👍 👎 😄 🎉 😕 ❤️ 🚀 👀

  • click an existing reaction to toggle yours on or off
  • click the + button to open the reaction picker

merge & pr management

once a pr is ready, you can merge it without leaving atlas:

  • merge method — squash, merge commit, or rebase (only shows methods your repo allows)
  • editable commit message — pre-filled based on the merge strategy (squash uses a bullet list of commits, merge uses the pr title)
  • delete branch — checkbox to delete the branch after merge, respects the repo default
  • draft toggle — convert an open pr to draft, or mark a draft as ready for review

labels & assignees

  • labels — add or remove labels from your repo’s label set (cached with 6-hour TTL)
  • assignees — add or remove assignees from the collaborator list

markdown editor

every comment field in the review tab uses a shared markdown editor:

  • formatting toolbar — bold, italic, code, link, list, heading, quote
  • keyboard shortcutscmd+b for bold, cmd+i for italic
  • live preview — toggle to see rendered markdown before submitting
  • @mentions — autocomplete from collaborators and org teams, rendered as accent-colored links
  • #issue references#42 links directly to the issue or pr
  • image lightbox — click any image to view full-size
  • auto-growing — textareas expand as you type, up to 300px

draft persistence

comment text is auto-saved to localStorage on every keystroke:

  • restored when you navigate away and come back
  • cleared after a successful submit
  • 24-hour expiry, max 50 drafts, purged on app start
  • works on review submission, pr comments, and thread replies

caching & performance

the review tab is designed to minimize github api usage:

  • sqlite caching — pr info, review threads, comments, and commits are cached per workspace. switching workspaces with a fresh cache costs zero api calls
  • smart polling — pr info refreshes every 60 seconds, review data every 3 minutes. a countdown shows seconds until the next refresh
  • api cost — ~120 points/hour/workspace (down from ~3,200 before optimization)
  • rest-first — nearly all calls use rest instead of graphql to keep point costs low

rate limit handling

atlas monitors your github api rate limits:

  • sidebar indicator — warning at less than 20% remaining, error when exhausted
  • settings page — progress bars for graphql and rest limits with remaining counts and reset countdown
  • review tab banner — shows “rate limited” with a retry button and auto-retry when the limit resets
  • graceful fallback — graphql review threads fall back to rest when rate limited (loses resolved/outdated state but keeps comments visible)