feat: sync CLI with dashboard@v1.6.17 - #86
Conversation
Spans dashboard v1.6.13-v1.6.17. Only observable API change is the additive GET /api/projects/:id fields shipped in v1.6.14 (dashboard#255): avatarUrl, plan, platforms, userCount. Surface plan / platforms / userCount in `photon projects show` between location and owner (avatarUrl skipped — CLI can't render images and `spectrum avatar` already handles it). The new POST /api/otp/phone2/send route (dashboard#259) is not called by the CLI. Everything else in the span (v1.6.13 dashboard#250 dot-abuse signup block, v1.6.14 phone-OTP suspension / suspended-user redirect / email-domain OTP abuse controls, v1.6.15 signup IP suspensions, v1.6.16 real-phone-send logging, v1.6.17 seven-day suspicious OTP IP block) is pure server-side with no CLI impact. Co-authored-by: citron <lcandy2@users.noreply.github.com>
Agent PR ReviewScenario: A — Initial review (PR opened by cursor[bot]) What is right
Deferred (acknowledged in PR body)
Final noteClean, minimal sync PR. Marking ready and approving. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 863193f. Configure here.
| ["location", p.location], | ||
| ["plan", p.plan], | ||
| ["platforms", p.platforms.length > 0 ? p.platforms.join(", ") : c.dim("—")], | ||
| ["userCount", String(p.userCount)], |
There was a problem hiding this comment.
Stale show fixture omits fields
Low Severity
projects show now reads plan, platforms, and userCount, but the mock fallback fixture project.show.json still lacks those fields. For unknown ids the mock returns that fixture, so human-readable show hits platforms.length and throws.
Reviewed by Cursor Bugbot for commit 863193f. Configure here.
| ["location", p.location], | ||
| ["plan", p.plan], | ||
| ["platforms", p.platforms.length > 0 ? p.platforms.join(", ") : c.dim("—")], | ||
| ["userCount", String(p.userCount)], |
There was a problem hiding this comment.
Stale show fixture after sync
Low Severity
photon projects show now reads plan, platforms, and userCount, but tests/fixtures/project.show.json still omits them. The mock GET /api/projects/:id fallback returns that fixture for unknown ids, so show crashes on platforms.length there even though list rows already include the fields.
Reviewed by Cursor Bugbot for commit 863193f. Configure here.


Upstream version
@photon-ai/dashboard-api 1.6.12 → 1.6.17 (dashboard@v1.6.17, commit e161fe16bb2a761a182dfaf8d7f14d8ebfd6c2a1). Spans dashboard releases v1.6.13, v1.6.14, v1.6.15, v1.6.16, v1.6.17.
Routes added/removed/changed
POST /api/otp/phone2/send(dashboard#259, v1.6.15). Real phone-OTP send path; the pre-existingPOST /api/otp/phone/sendis retained as a decoy honeypot. CLI does not call either.GET /api/projects/:id— response body gains additive fieldsavatarUrl: string | null,plan: PlanTier,platforms: SpectrumPlatformId[],userCount: number(dashboard#255, v1.6.14). Surfacedplan,platforms,userCountinphoton projects showbetweenlocationandowner.avatarUrlskipped — CLI can't render images andspectrum avataralready handles it.code/captchaTokenin theapi.otp.phone.sendbody swapped (both still present).Snapshot changes
New runtime dependencies
Checklist
@photon-ai/dashboard-apiversion bump, not hand editsbun run checkpasses locallyNeed help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.Note
Low Risk
Additive API typing and extra read-only fields in project show output; no auth, billing, or destructive behavior changes in the CLI.
Overview
Syncs the CLI with dashboard@v1.6.17 by bumping dev dependency
@photon-ai/dashboard-api1.6.12 → 1.6.17 (package.json,bun.lock) and refreshingUPSTREAM_DIFF.mdfor that release range.The only user-facing CLI change is
photon projects show: it now printsplan,platforms, anduserCountfrom the expandedGET /api/projects/:idresponse (betweenlocationandowner).avatarUrlis not shown on purpose.Upstream adds
POST /api/otp/phone2/sendand several dashboard-only OTP/signup controls; the CLI still does not call OTP routes. No new runtime dependencies or snapshot updates.Reviewed by Cursor Bugbot for commit 863193f. Bugbot is set up for automated code reviews on this repo. Configure here.