Open source · Real-time collaboration

Every thread.One point of focus.

Pull requests, tasks, and team discussions. Unified in one real-time cockpit.

Crux mark

Three tools. Zero cohesion.

Crux is where they meet.

crux · cockpit

LIVE

Pull request

#482 Rate-limit auth endpoints

dana.k · feat/rate-limit-auth

export async function limit(ip) {

- const max = 100;

+ const max = await tier(ip);

+ return bucket(ip, max);

+ export const limits = tiers;

}

arun: fallback if redis is down?

ARJMreview requested

checks passing · 41s

Task

CRX-214

In Review

Rate-limit auth endpoints

DKdana.k · due tomorrow

tier limits defined

redis fallback noted

pr linked to sprint

· load test staging

moved to review · 2m ago

Threads

arun · just now

Can we fall back to defaults if Redis is down?

dana.k · 1m

adding a tier default today

jm · 2m

CI is green, lgtm otherwise

4 replies in thread →

Reply synced to Slack…

# pr-review

3 new
DK

dana.k2:14 PM

the migration diff looks bigger than the ticket — thoughts?

AR

arun1:58 PM

reviewing after standup, ping me if CI is red

4 replies in thread →

crux/api · #482

+142 −38

export async function limit(ip: string) {

- const max = 100;

+ const max = await tier(ip);

+ return tokenBucket(ip, max);

}

CI · pending

Sprint 24

3 issues
CRX-214Rate-limit auth endpointsIn Progress
CRX-219Add backoff to refresh flowTodo
CRX-207Audit token rotationDone
context lostcontext lostcontext lost
2–3 hrs lost · dev · weekPRs stale in reviewDecisions buried in threads

The product

The Cockpit.

Every pull request with its tasks, threads, and checks attached. One glance, full context.

crux · crux/api · pull #482

auth/limiter.ts

+24 −6

export async function limit(ip: string) {

- const max = 100;

+ const max = await tier(ip);

+ return tokenBucket(ip, max);

}

aruncommented · 2m

Can we fall back to defaults if Redis is down?

Live sync

CRX-214

In Progress

CRX-214

In Review

#pr-review · just now

arun: left comments on limiter.ts

build / test

pending

build / test

✓ passing · 41s

REVIEWER BRIEF2 flags

  • · Auth path changed — hot traffic route
  • · No schema or contract changes

A reviewer brief, before you ask.

The moment a PR opens, Crux scans the diff and writes the two-minute brief you would have written yourself.

Critical-path analysis

Spots changes that cascade across services before they merge.

Schema & contract detection

Flags migrations and breaking API changes automatically.

Test coverage gaps

Names the paths your diff leaves untested.

Security pre-filter

Surfaces auth, secrets, and permission risks first.

payments/refund.ts

+61 −12

export async function refund(id: string) {

- const rate = await fetchRate(id);

+ const rate = await fetchRate(id, { fresh: true });

+ await ledger.append(id, rate);

return settle(id, rate);

}

REVIEWER BRIEFscan · 34s

  • · Rate fetch bypasses cache — latency risk on refund spikes
  • · Ledger append is untested — add failure-path test

Sandbox · in the works

Test the PR. Not your patience.

One-click, production-like environments for every pull request. No local setup, no stale branches, no "trust me, it works".

guest · sandbox

$ crux sandbox open 482

● environment ready · 41s · 3 users synced

GitHub

GitHub

Linear

Linear

Slack

Slack

Crux augments your stack. It doesn't replace it.

Stop switching. Start shipping.

Free for small teams. Open source forever.