Faster onboarding for any GitHub repository.

We turn PRs, commits, and code ownership into a clear story of how a codebase works.

acme/backend

Engineer

Jordan Chen

acme/backend

Starts Mar 10

Key People

A
alice23c
C
carol18c
B
bob14c
D
dave7c

Watch Out

config/routes.ts
src/middleware/auth.ts

Act I

Your Work

You're picking up the authentication and payments area. The auth middleware was recently refactored in PR #142 to fix a race condition in token refresh. The payments module is being extended as part of the API v2 migration.

ENG-2847

Add idempotency key validation to payment processing endpoints

Files

src/middleware/auth.tssrc/lib/token.tssrc/api/payments.tsconfig/routes.ts

Recent Authors

A
alice
B
bob

Start Reading

  1. 1src/middleware/auth.ts
  2. 2src/lib/token.ts
  3. 3src/api/payments.ts

Commit Trail

a3f21c7

Refactored token refresh to prevent race conditions

alice · 3 days ago · PR #142

e8b4a12

Add sliding-window rate limiting with Redis

bob · 8 days ago · PR #138

9d1f3c8

Extract payment validation into shared schema

carol · 12 days ago

PuRrs That Shaped This Area

#142Auth middleware refactorby alice
#138Add rate limiting to APIby bob

Brief: Your codebase has a story. We tell it.

Every onboarding brief is built from real commits, PRs, and code ownership — a three-act narrative of how the code got here and where it's going.

app.opticat.dev

Engineer

Jordan Chen

acme/backend

Starts Mar 10

Key People

A
alice23c
C
carol18c
B
bob14c
D
dave7c

Watch Out

config/routes.ts
src/middleware/auth.ts

Act I

Your Work

You're picking up the authentication and payments area. The auth middleware was recently refactored in PR #142 to fix a race condition in token refresh. The payments module is being extended as part of the API v2 migration.

ENG-2847

Add idempotency key validation to payment processing endpoints

Files

src/middleware/auth.tssrc/lib/token.tssrc/api/payments.tsconfig/routes.ts

Recent Authors

A
alice
B
bob

Start Reading

  1. 1src/middleware/auth.ts
  2. 2src/lib/token.ts
  3. 3src/api/payments.ts

Commit Trail

a3f21c7

Refactored token refresh to prevent race conditions

alice · 3 days ago · PR #142

e8b4a12

Add sliding-window rate limiting with Redis

bob · 8 days ago · PR #138

9d1f3c8

Extract payment validation into shared schema

carol · 12 days ago

PuRrs That Shaped This Area

#142Auth middleware refactorby alice
#138Add rate limiting to APIby bob

Tour: Walk through history, not just files.

A curated walk through your repo's git log — diffs, blame annotations, and PR discussions — with AI narration that explains the why behind every change.

app.opticat.dev
src/middleware/auth.ts+24-8
38 export async function authMiddleware(req: Request) {
39 const token = await getToken(req)
40
41- if (!token) return unauthorized()
42- if (isExpired(token)) {
43- return unauthorized()
44- }
41+ if (!token || isExpired(token)) {
42+ const lock = await acquireRefreshLock(req)
43+ const refreshed = await refreshToken(req, lock)
44+ if (!refreshed) return unauthorized()
45+ releaseRefreshLock(lock)
46+ }
47
48 const user = decodePayload(token)
49 return NextResponse.next({ user })
PuRrsrc/middleware/auth.ts

Auth middleware refactor

A
alice·3 days ago
PR #142·Refactored token refresh to prevent race conditions in concurrent requests

Files affected:

auth.tsmiddleware.tstoken.tstypes.ts

This PR overhauled the authentication middleware to handle concurrent requests safely. The old code had a race condition where two requests could attempt to refresh the same expired token simultaneously, causing one to fail. Alice introduced a mutex-based approach with a token refresh queue.

Lines 38–67 · 4 highlighted

Step 1 of 6

Slides: Five minutes. Complete picture.

Turn any brief into a narrated slide deck. An animated presenter walks through key points with speech synthesis, highlighted code, and animated charts.

app.opticat.dev
acme/backend1 / 6

acme/backend

Onboarding overview for Jordan Chen

Welcome to your onboarding overview for the acme backend repository.

Exit

Questions & Answers

Opticat reads Git metadata through the GitHub API: commits, pull requests, file trees, blame data, and CI status. It never clones your repo or accesses source code outside of what the GitHub API provides. All analysis happens server-side and is tied to your authenticated session.

Most briefs generate in under 60 seconds. The time depends on the size of the repo and the volume of recent Git activity. Larger repos with hundreds of recent PRs may take slightly longer as the AI processes more context.

Any GitHub repository you have read access to — public or private. We plan to add GitLab and Bitbucket support in a future release.

Yes. Every brief gets a unique share link. You can send it to anyone on your team — they can read the brief, take the guided tour, or watch the narrated slideshow without needing their own account.

Opticat sends Git metadata (commit messages, PR titles, file paths, diff summaries) to Google Gemini for analysis. Raw source code is only sent when generating syntax-highlighted tour steps, and only the specific lines referenced. We never store or log prompts or responses beyond the current session.

Every claim in the brief is anchored to a real commit, PR, or blame annotation — you can always click through to the source. The AI summarizes and narrates, but the evidence is always verifiable.