fix(people): 本人 can edit their own birth data in 星盘档案 (S1, BUG-1081)

The owner had no edit entry anywhere once /people replaced the settings
chart pane. 本人 now gets 编辑 with the same form; the save goes through
PATCH /api/account via a shared lib/self-profile-save.ts that the home
onboarding also uses. The dead saveProfile is removed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-09-29 00:43:43 +08:00
co-authored by Claude Opus 5.5
parent adbb205440
commit 8415fdca72
18 changed files with 337 additions and 106 deletions
+1 -3
View File
@@ -317,7 +317,6 @@ export default function Home() {
closeAccountDialog,
persistAvatar,
persistGender,
saveProfile,
saveOnboardingName,
saveOnboardingBirth,
saveOnboardingPlace,
@@ -328,9 +327,8 @@ export default function Home() {
birthTimeRevisionPendingRef, dialogReturnTargetRef,
setAccount, setAccountError, setAccountMenuOpen, setActiveAccountDialog,
setBirthTimeAssessmentPhase,
setBirthTimeConsultationConsent, setBirthTimeError, setBirthTimeJourney, setBillingPane, setDraft,
setBirthTimeError, setBirthTimeJourney, setBillingPane, setDraft,
setOnboardingJustCompleted, setOnboardingStep, setPresetMessageLength,
setRectificationError,
setSigningOut, setStartGreeting, signingOut, uiPreview,
initialProfile: () => warmStart()?.profile ?? null,
onOwnBirthPlaceSaved: birthSkyReveal.begin,
+1 -2
View File
@@ -1923,7 +1923,6 @@ button:disabled:where(:not([data-slot="button"])) { cursor: default; opacity: .4
.profile-gender-option.is-selected { border-color: var(--color-action); background: var(--color-action-soft); }
.profile-gender-option:disabled { cursor: default; opacity: 0.6; }
.profile-gender-hint { margin: 0; color: var(--color-ink-tertiary); font-size: var(--type-caption); line-height: 1.5; }
.people-archive-fact-note { display: block; margin-top: var(--space-1); color: var(--color-ink-tertiary); font-size: var(--type-caption); }
.account-menu-danger, .account-menu-danger > svg { color: var(--color-danger); }
.account-menu-danger[data-highlighted] { background: var(--color-danger-muted); }
@@ -6087,7 +6086,7 @@ input:not([type="radio"]):not([type="checkbox"]):not([class^="ant-"]):not([class
cursor: pointer;
}
.people-archive-secondary:hover { background: var(--color-canvas-muted); }
.people-archive-foot { display: grid; text-align: center; }
.people-archive-foot { display: grid; gap: var(--space-2); justify-items: center; text-align: center; }
.people-archive-confirm {
display: grid;
gap: var(--space-3);