[eric] experimental: quick pill overlay unwired and parked in .claude/slime-parked

This commit is contained in:
ciregenz
2026-08-06 20:50:13 -07:00
parent dbade1b25e
commit d2ff1bdae7
8 changed files with 3 additions and 209 deletions
-12
View File
@@ -211,7 +211,6 @@ const SettingsLoader: React.FC<{ children: React.ReactNode }> = ({ children }) =
const loaded = useAppSelector((s) => s.settings.loaded);
const settled = useAppSelector((s) => s.settings.settled);
const allowExperimentalUpdates = useAppSelector((s) => s.settings.data.allow_experimental_updates);
const overlayPillEnabled = useAppSelector((s) => Boolean((s.settings.data as { overlay_pill_enabled?: boolean }).overlay_pill_enabled));
useEffect(() => {
dispatch(fetchSettings());
dispatch(fetchModels());
@@ -278,17 +277,6 @@ const SettingsLoader: React.FC<{ children: React.ReactNode }> = ({ children }) =
if (!loaded) return;
(window as any).openswarm?.setAllowPrerelease?.(allowExperimentalUpdates);
}, [loaded, allowExperimentalUpdates]);
useEffect(() => {
if (!loaded) return;
(window as any).openswarm?.setOverlayEnabled?.(overlayPillEnabled);
}, [loaded, overlayPillEnabled]);
useEffect(() => {
// Overlay submissions land as a prefilled composer draft, the same seam dictation's no-cursor fallback uses.
const off = (window as any).openswarm?.onOverlaySubmit?.((text: string) => {
window.dispatchEvent(new CustomEvent('openswarm:dictation-fallback', { detail: { text } }));
});
return () => { off?.(); };
}, []);
// Hold paint until the settings fetch SETTLES so the user's theme renders first; Electron's ready-to-show relies on this. Settling, not succeeding: a backend that never answers used to leave a blank window forever.
if (!settled) return null;
return <>{children}</>;
@@ -50,18 +50,6 @@ const GeneralAdvanced: React.FC<{
/>
</Box>
<Box sx={inlineRowSx} {...settingSelectAttrs('overlay_pill_enabled', 'Quick pill overlay', 'Advanced', 'Alt+Space summons a floating ask-anything pill over any app.')}>
<Box sx={{ mr: 3 }}>
<Typography sx={labelSx}>Quick pill overlay</Typography>
<Typography sx={descSx}>Alt+Space summons a floating pill over whatever you are doing; what you type lands in the composer. The slime keeps you company.</Typography>
</Box>
<Switch
checked={form.overlay_pill_enabled === true}
onChange={(e) => setForm({ ...form, overlay_pill_enabled: e.target.checked })}
sx={switchSx}
/>
</Box>
<Box sx={inlineRowLastSx} {...settingSelectAttrs('allow_experimental_updates', 'Experimental updates', 'Advanced', 'Receive pre-release builds with new features earlier.')}>
<Box sx={{ mr: 3 }}>
<Typography sx={labelSx}>Experimental updates</Typography>
@@ -127,6 +115,7 @@ const GeneralAdvanced: React.FC<{
Restart tour
</Button>
</Box>
</>
);
};
+1 -3
View File
@@ -53,7 +53,6 @@ export interface AppSettings {
notify_agent_completion?: boolean;
notify_workflow_runs?: boolean;
allow_experimental_updates: boolean;
overlay_pill_enabled: boolean;
/** Managed subscription state; surfaces only when user has subscribed via cloud. */
connection_mode?: 'own_key' | 'openswarm-pro' | 'free-trial';
openswarm_bearer_token?: string | null;
@@ -174,7 +173,7 @@ export const DEFAULT_SETTINGS: AppSettings = {
dictation_sounds: true,
memory_enabled: true,
dictation_haptics: true,
dictation_sound_volume: 0.35,
dictation_sound_volume: 0.7,
dictation_disabled_surfaces: '',
anthropic_api_key: null,
browser_homepage: 'https://duckduckgo.com',
@@ -184,7 +183,6 @@ export const DEFAULT_SETTINGS: AppSettings = {
auto_reveal_sub_agents: true,
dev_mode: false,
allow_experimental_updates: false,
overlay_pill_enabled: false,
};
const initialState: SettingsState = {