-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Conversation
Vendored types/api.d.ts via `bun run sync:api` and regenerated
UPSTREAM_DIFF.md from the v1.0.16 dashboard release.
Net surface delta vs. previously vendored v1.0.3 snapshot:
- 23 routes added (notably: onboarding/state|name|referral|details,
oauth-clients management, project members/slack/webhooks/whatsapp,
spectrum avatar upload pipeline, voice sip-inbound + imessage settings)
- 6 routes removed (notably: profile/developer, profile/organization,
otp/email/{send,verify}, spectrum/toggle)
- 1 route changed (projects/:id/spectrum/users response shape)
Co-authored-by: citron <lcandy2@users.noreply.github.com>
Dashboard v1.0.16 removed POST /api/profile/{developer,organization}
and collapsed the split developer/organization tables into a single
onboarding_profile row with a top-level `type` discriminator.
- src/lib/types.ts: replace the envelope ProfileResponse
(`{ type, profile }`) with the flat ProfileRow shape the server
now returns (id, userId, type, referralSource, platforms,
background, companyName).
- src/commands/profile.ts: route writes through the new
POST /api/onboarding/details (type + background + companyName +
platforms) and POST /api/onboarding/referral (referralSource).
Drop the now-unsupported --role / --company-size / --website flags
and rename --languages → --background to match the upstream column.
`show` renders the flat row directly.
- src/commands/whoami.ts: refresh stale docstring; the runtime
summarizer already inspected the top-level `type` field so no
behavior change.
Co-authored-by: citron <lcandy2@users.noreply.github.com>
@github-actions
github-actions
Bot
added
agent-review:approved
Reviewed by CLI Agent PR Review & Fix automation
agent-flow
PR generated by agent flow pipeline
labels
Jun 13, 2026
Agent PR Review
Scenario: A — initial review (PR opened by cursor[bot])
Verdict: ✅ Approve
What is right
- Hard rules all hold: Bun-only, no forbidden deps in
package.json, no edits under.github/workflows/orscripts/agent-flow/, no rawfetch()to the Photon API, every command usesgetApi()+ Eden treaty +{ data, error, status }withSessionExpiredErroron 401. types/api.d.tsis a clean additive intersection frombun run sync:api(vendored inc6e7ed3, untouched here).- Upstream removals covered:
profile.developer/profile.organizationmigrated toonboarding.details+onboarding.referral;otp.email.{send,verify}andprojects.:id.spectrum.togglewere never consumed by the CLI, so no migration needed. - DTO migration is correct:
ProfileResponsecollapsed to the flatProfileRowinsrc/lib/types.ts:36, withwhoami.ts:summarizeProfileandprofile.tsshow/init/update flows reworked to match. - Update flow preserves the type-mismatch guard (rejects
--company-nameon developer profiles, etc.) — good defensive choice given the upstream table is now flat. - New 23 routes explicitly deferred and acknowledged in PR body.
bun run checkis green locally (typecheck + 33 tests + build).- Single PR, single bump (
dashboard@v1.0.16), no unrelated refactors, no snapshot churn.
Concerns (non-blocking — flagging for awareness)
- PR body claim about
spectrum.usersis inaccurate. The body saysGET /api/projects/:id/spectrum/usershad a response shape change but "CLI does not consume this surface." It does —src/commands/spectrum/users.ts:34-53calls.spectrum.users.get()and casts the result toSpectrumUser[]. The bundled.d.tsdegrades that response to an open record, so tsc cannot catch a mismatch; the runtime cast atusers.ts:40is the only contract. Worth either (a) confirming the upstream response is still array-of-user withid/firstName/lastName/email/phoneNumber, or (b) correcting the PR body and adding a contract test. - Stale
/api/profilefixture.tests/fixtures/whoami.jsonstill uses the old{ type, profile: {...} }envelope. Tests pass only becausesummarizeProfilereadsdata.type(which exists at the top level in both shapes). Future tests againstphoton profile showwould hit a fixture that does not matchProfileRow. Cheap fix: update the fixture to the flat shape now.
Deferred (acknowledged in PR body)
- 22 of the 23 new routes (onboarding state/name, OAuth client management, project members, project Slack/webhooks/WhatsApp/voice/iMessage settings, Spectrum avatar pipeline, account/billing/privacy/posthog/signup endpoints, Slack OIDC + features). Out of scope per the sync strategy.
Final note
Profile migration is sound and consistent with the upstream collapse to a single onboarding_profile table; the two concerns above are documentation/fixture hygiene and do not block readiness.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
Upstream version
dashboard@v1.0.16(SHA8aedefdaf658beddcb2d16de57285a56fac2f351)Routes added/removed/changed
Added (23) — highlights:
GET /api/onboarding/state,POST /api/onboarding/{name,referral,details}GET /api/oauth-clients/authorized,DELETE .../:clientId,GET /api/oauth-clients/:clientId/scope-tiers,PATCH .../metadataGET|POST /api/projects/:id/members,DELETE .../:memberUserIdGET|PUT|DELETE /api/projects/:id/slack,.../installations,.../setup,.../support-channelGET|POST /api/projects/:id/webhooks,DELETE .../:webhookIdGET|POST /api/projects/:id/whatsapp/templates,DELETE|PATCH .../:templateIdPOST .../spectrum/avatar/upload,.../avatar/commit,DELETE .../spectrum/avatarPATCH .../voice/imessage-enabled,GET .../voice/settings,PATCH|DELETE .../voice/sip-inboundPOST /api/account/set-password,GET /api/billing/max-plan,POST /api/privacy-requests,POST /api/signup/abandon,GET /api/posthog/identity-snapshot,GET /api/projects,PATCH /api/projects/:id/imessage/auto-scale,GET /api/projects/:id/imessage/settings, Slack OIDC + features endpointsRemoved (6):
POST /api/profile/developerPOST /api/profile/organizationPOST /api/otp/email/send,POST /api/otp/email/verifyPOST /api/projects/:id/spectrum/toggleChanged (1):
GET /api/projects/:id/spectrum/users— response shape changed (CLI does not consume this surface)The only CLI-visible breakage was the removal of the split developer/organization profile endpoints. Upstream collapsed those into a single
onboarding_profiletable with a top-leveltypediscriminator, exposed via the newPOST /api/onboarding/{details,referral}endpoints. Thephoton profilecommand was migrated accordingly:ProfileResponseis now the flatProfileRow(id, userId, type, referralSource, platforms, background, companyName) instead of a{ type, profile }envelope.profile initandprofile updatenow write throughapi.onboarding.details(type + background + companyName + platforms) andapi.onboarding.referral(referralSource).--role,--company-size,--websitewere dropped, and--languageswas renamed to--backgroundto match the upstream column.Snapshot changes
New runtime dependencies
Checklist
types/api.d.ts(vendored viabun run sync:api)bun run checkpasses locallyNeed help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.