From 76d8057197eff65b19f78069c9f6bf5e5939bb19 Mon Sep 17 00:00:00 2001 From: User Date: Sat, 4 Jul 2026 16:56:22 +0530 Subject: [PATCH 01/72] feat(scribe): core seams for a pro editor + settings sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Generic extension points so pro can plug in Scribe without any pro logic in core. - sectionRegistry: SettingsSection gains title/summary; Settings.tsx now renders all registered pro sections (no hardcoded pro bodies) - slotRegistry: composerEditor slot + editorSlot.ts EditorSlotProps contract - MemoryChat: renders the registered composer editor (Scribe's AssistedTextarea) when present, else the plain textarea — free builds are unaffected Co-Authored-By: Claude Opus 4.8 (1M context) --- src/renderer/src/bootstrap/editorSlot.ts | 20 + src/renderer/src/bootstrap/sectionRegistry.ts | 18 +- src/renderer/src/bootstrap/slotRegistry.ts | 6 + src/renderer/src/components/MemoryChat.tsx | 42 +- src/renderer/src/components/Settings.tsx | 503 ++++++++++++------ 5 files changed, 411 insertions(+), 178 deletions(-) create mode 100644 src/renderer/src/bootstrap/editorSlot.ts diff --git a/src/renderer/src/bootstrap/editorSlot.ts b/src/renderer/src/bootstrap/editorSlot.ts new file mode 100644 index 00000000..00aa27f2 --- /dev/null +++ b/src/renderer/src/bootstrap/editorSlot.ts @@ -0,0 +1,20 @@ +import type { ComponentType, RefObject, KeyboardEvent, ClipboardEvent } from 'react'; +import { getSlot, SLOTS } from './slotRegistry'; + +// Contract for a registered composer editor (pro's Scribe AssistedTextarea). Core +// renders the registered editor with these props, or a plain