fix(hololake): ship dynamic persona routes and coherent workspace

This commit is contained in:
冰朔 2026-08-09 10:43:56 +08:00
commit 787ba2ad3f
21 changed files with 1111 additions and 326 deletions

View file

@ -4,14 +4,14 @@ export interface HumanPreferences {
language: 'system' | 'zh-CN' | 'en';
font: 'system' | 'serif' | 'accessible';
readingSize: number;
appearance: 'eternal-lake' | 'deep-night';
appearance: 'lake-night' | 'mist-light' | 'deep-night';
}
export const DEFAULT_HUMAN_PREFERENCES: HumanPreferences = {
language: 'system',
font: 'system',
readingSize: 17,
appearance: 'eternal-lake',
appearance: 'lake-night',
};
const STORAGE_KEY = 'hololake.human-preferences.v1';
@ -19,7 +19,8 @@ const STORAGE_KEY = 'hololake.human-preferences.v1';
export function loadHumanPreferences(): HumanPreferences {
try {
const stored = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
return { ...DEFAULT_HUMAN_PREFERENCES, ...stored };
const appearance = stored.appearance === 'eternal-lake' ? 'lake-night' : stored.appearance;
return { ...DEFAULT_HUMAN_PREFERENCES, ...stored, appearance: appearance || DEFAULT_HUMAN_PREFERENCES.appearance };
} catch {
return DEFAULT_HUMAN_PREFERENCES;
}
@ -148,7 +149,8 @@ export function HumanSettings({ open, preferences, onClose, onChange, onManageSe
<section className="settings-section">
<div className="settings-section-copy"><strong></strong><small></small></div>
<select value={draft.appearance} onChange={event => setDraft({ ...draft, appearance: event.target.value as HumanPreferences['appearance'] })}>
<option value="eternal-lake"></option>
<option value="lake-night"></option>
<option value="mist-light"></option>
<option value="deep-night"></option>
</select>
</section>