glow
up
Docs
Studio
Pack name
Start from
Choose a pack
classic
crt
cozy
arcade
Copy share link
Send to my Claude
Download pack.json
narrow
wide
fullscreen
Band items (combo, agents, meter) show in narrow; the pane shows in wide and fullscreen.
claude — ~/shop
login lets ?next= send people off-site, fix it
●
▸
Read
src/auth.ts
Read 84 lines
●
⌕
Search
"next=" in src
Found 6 matches
●
◆
Task
Explore: find other redirect callers
●
✎
Update
src/auth.ts
+9 −2
- return { ok: true, redirect: next }
+ const target = safeNext(next) ?? "/"
+ return { ok: true, redirect: target }
●
$
Bash
pnpm test
✗ 1 failed · login keeps protocol-relative //evil.example
●
✎
Update
src/auth.ts
+2 −1
+ if (next.startsWith("//")) return null
●
✎
Update
test/auth.test.ts
+6 −0
●
$
Bash
pnpm test
✓ 5 passed
Fixed. safeNext() rejects absolute and protocol-relative targets; the suite passes.
·
✓ 5 passed
·
♥♥♥
♡♡
❯
◆ idle · ctx 15% · ◐ high · 5h 38% ↻2h13m · wk 12% ↻Sun