21d1b52d8bd8
Codex restore on Settings → DATA — free always, generate Pro-gated, onboarding link via Lock no-vault footer
- time
- 2026-05-17 21:02 UTC · 5 months ago
- machine
- koh2
- parent
- fbd343623e31
↓ peach-browser-21d1b52d.tar.gzatlas at this save
files changed2 files
src/popup/App.tsx+1 −0src/popup/views/Settings.tsx+12 −0src/popup/App.tsx+1 −0
@@ -1503,6 +1503,7 @@15031503 onOpenFileImport={handleOpenFileImport}15041504 onOpenPanic={() => setView("panic")}15051505 onOpenCodexGenerate={() => setView("codex-generate")}1506+ onOpenCodexRestore={() => setView("codex-restore")}15061507 />15071508 </Suspense>15081509 </Show>src/popup/views/Settings.tsx+12 −0
@@ -63,6 +63,7 @@6363 onOpenFileImport?: () => void;6464 onOpenPanic?: () => void;6565 onOpenCodexGenerate?: () => void;66+ onOpenCodexRestore?: () => void;6667 }6768 6869 type SectionName =@@ -1054,6 +1055,17 @@10541055 <button10551056 class="peach-btn peach-btn--subtle peach-btn--sm"10561057 onClick={() => props.onOpenCodexGenerate?.()}1058+ >1059+ open1060+ </button>1061+ </div>1062+ {/* Restore from Codex: intentionally never gated — a printed1063+ Codex must remain restorable regardless of license state. */}1064+ <div class="peach-settings-row peach-settings-row--meta">1065+ <span>Restore from Codex</span>1066+ <button1067+ class="peach-btn peach-btn--subtle peach-btn--sm"1068+ onClick={() => props.onOpenCodexRestore?.()}10571069 >10581070 open10591071 </button>