fix: improve Windows UX and stabilize chat/session behavior across runtimes (#693)
* fix: preserve unsent prompt when adding editor context in VS Code * fix: append Add to chat selections as markdown blocks with stable spacing Convert selected assistant content to markdown before appending Wrap each Add to chat selection in an `md` fenced block Preserve multiline composer formatting across repeated appends * fix: normalize persisted Windows paths to prevent identity mismatches * fix: hide Windows subprocess console popups across server tasks Hide OpenCode startup and shell command child windows in the web server Apply windowsHide to cloudflared and skills-catalog git subprocesses Cover remaining git service exec paths that could surface console windows * fix: restore chat auto re-pin when reaching bottom Re-pin now triggers when scrolling back into the bottom zone, not only via the button. Upward user scroll intent still unpins immediately and is not overridden by re-pin. Unified bottom/re-pin threshold logic to reduce sensitivity mismatches. * fix: restore chat scroll release on mobile during streaming Restores pinned-scroll release on touch scroll up so mobile users can leave auto-follow while streaming. Improves re-pin behavior near bottom to avoid sticky or inconsistent pin states. Includes related chat UI and dependency updates in the same change set. * fix: hide daemon startup probe consoles on Windows * fix: prevent pinned scroll tug-of-war during streaming * fix: prefer git.exe to avoid Windows diff popup flashes * fix: prefer git.exe discovery in Windows git flows * fix: avoid where probes in Windows git resolution * fix: avoid update-check subprocess flashes on Windows * fix: normalize read file path labels * feat: add OpenChamber defaults and improve theme ports Add new OpenChamber light and dark themes Regenerate imported themes with stronger surface mapping Set OpenChamber themes as the default top options * fix: stabilize chat pin and unpin behavior during streaming Restores reliable unpin on upward wheel and touch gestures while auto-follow is active. Prevents immediate re-pin while the user is actively scrolling upward near the bottom. Keeps smooth follow-to-bottom behavior while reducing scroll tug-of-war. * fix: suppress Windows command popups in VSCode runtime processes Hide spawned git and server process windows in VS Code runtime Extend hidden-window handling to server port cleanup and reveal commands Keep behavior unchanged on non-Windows platforms
This commit is contained in:
committed by
GitHub
parent
a07c068b66
commit
3123de5f43
@@ -2,79 +2,81 @@
|
||||
"metadata": {
|
||||
"id": "oc-2-light",
|
||||
"name": "OC-2",
|
||||
"description": "Port of OpenCode OC-2 theme (light variant)",
|
||||
"description": "Ported from OpenCode OC-2 theme (light variant)",
|
||||
"author": "OpenCode",
|
||||
"version": "1.0.0",
|
||||
"variant": "light",
|
||||
"tags": [
|
||||
"light",
|
||||
"opencode",
|
||||
"ported",
|
||||
"oc-2"
|
||||
]
|
||||
},
|
||||
"colors": {
|
||||
"primary": {
|
||||
"base": "#dddf79",
|
||||
"base": "#dcde8d",
|
||||
"hover": "#d2d369",
|
||||
"active": "#d2d369",
|
||||
"active": "#054dfd",
|
||||
"foreground": "#000000",
|
||||
"muted": "#dddf7980",
|
||||
"emphasis": "#d2d369"
|
||||
"muted": "#dcde8d80",
|
||||
"emphasis": "#0445e6"
|
||||
},
|
||||
"surface": {
|
||||
"background": "#f8f8f8",
|
||||
"foreground": "#161210",
|
||||
"muted": "#ebebeb",
|
||||
"muted": "#ededed",
|
||||
"mutedForeground": "#302c2a",
|
||||
"elevated": "#f1f1f1",
|
||||
"elevatedForeground": "#161210",
|
||||
"overlay": "#0000004d",
|
||||
"overlay": "#f8f8f833",
|
||||
"subtle": "#e2e2e2"
|
||||
},
|
||||
"interactive": {
|
||||
"border": "#c1c0c0",
|
||||
"borderHover": "#b4b2b2",
|
||||
"borderFocus": "#a3c1fd",
|
||||
"selection": "#e0eafd",
|
||||
"selectionForeground": "#000000",
|
||||
"focus": "#a3c1fd",
|
||||
"focusRing": "#a3c1fd47",
|
||||
"cursor": "#161210",
|
||||
"hover": "#e2e2e2",
|
||||
"active": "#e2e2e2"
|
||||
"borderFocus": "#054dfd",
|
||||
"selection": "#16121016",
|
||||
"selectionForeground": "#161210",
|
||||
"focus": "#054dfd",
|
||||
"focusRing": "#054dfd47",
|
||||
"cursor": "#070504",
|
||||
"hover": "#1612100e",
|
||||
"active": "#16121016"
|
||||
},
|
||||
"status": {
|
||||
"error": "#fa3012",
|
||||
"error": "#fc533a",
|
||||
"errorForeground": "#000000",
|
||||
"errorBackground": "#fde3de",
|
||||
"errorBorder": "#faaa9b",
|
||||
"warning": "#f9b13f",
|
||||
"warning": "#ffdc17",
|
||||
"warningForeground": "#000000",
|
||||
"warningBackground": "#feeb92",
|
||||
"warningBorder": "#dec025",
|
||||
"success": "#2ce822",
|
||||
"success": "#12c905",
|
||||
"successForeground": "#000000",
|
||||
"successBackground": "#bbffb4",
|
||||
"successBorder": "#2ce822",
|
||||
"info": "#f39cf9",
|
||||
"infoForeground": "#000000",
|
||||
"info": "#a753ae",
|
||||
"infoForeground": "#ffffff",
|
||||
"infoBackground": "#fcdffe",
|
||||
"infoBorder": "#f39cf9"
|
||||
},
|
||||
"pr": {
|
||||
"open": "#2ce822",
|
||||
"open": "#12c905",
|
||||
"draft": "#302c2a",
|
||||
"blocked": "#f9b13f",
|
||||
"merged": "#a753ae",
|
||||
"closed": "#fa3012"
|
||||
"blocked": "#ffdc17",
|
||||
"merged": "#007b80",
|
||||
"closed": "#fc533a"
|
||||
},
|
||||
"syntax": {
|
||||
"base": {
|
||||
"background": "#ebebeb",
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"comment": "#7a7a7a",
|
||||
"keyword": "#a753ae",
|
||||
"string": "#00ceb9",
|
||||
"number": "#034cff",
|
||||
"number": "#007b80",
|
||||
"function": "#a753ae",
|
||||
"variable": "#070504",
|
||||
"type": "#8a6f00",
|
||||
@@ -82,7 +84,7 @@
|
||||
},
|
||||
"tokens": {
|
||||
"commentDoc": "#7a7a7a",
|
||||
"stringEscape": "#007b80",
|
||||
"stringEscape": "#161210",
|
||||
"keywordImport": "#a753ae",
|
||||
"storageModifier": "#a753ae",
|
||||
"functionCall": "#a753ae",
|
||||
@@ -90,7 +92,7 @@
|
||||
"variableProperty": "#a753ae",
|
||||
"variableOther": "#070504",
|
||||
"variableGlobal": "#007b80",
|
||||
"variableLocal": "#302c2a",
|
||||
"variableLocal": "#161210",
|
||||
"parameter": "#070504",
|
||||
"constant": "#007b80",
|
||||
"class": "#8a6f00",
|
||||
@@ -99,38 +101,65 @@
|
||||
"struct": "#8a6f00",
|
||||
"enum": "#8a6f00",
|
||||
"typeParameter": "#8a6f00",
|
||||
"namespace": "#a753ae",
|
||||
"namespace": "#8a6f00",
|
||||
"module": "#a753ae",
|
||||
"tag": "#a753ae",
|
||||
"jsxTag": "#a753ae",
|
||||
"tagAttribute": "#a753ae",
|
||||
"tagAttributeValue": "#00ceb9",
|
||||
"boolean": "#034cff",
|
||||
"boolean": "#007b80",
|
||||
"decorator": "#a753ae",
|
||||
"label": "#a753ae",
|
||||
"punctuation": "#161210",
|
||||
"macro": "#a753ae",
|
||||
"preprocessor": "#a753ae",
|
||||
"regex": "#161210",
|
||||
"url": "#0040df",
|
||||
"url": "#0445e6",
|
||||
"key": "#a753ae",
|
||||
"exception": "#fa3012"
|
||||
"exception": "#fc533a"
|
||||
},
|
||||
"highlights": {
|
||||
"diffAdded": "#167517",
|
||||
"diffAddedBackground": "#f9fff8",
|
||||
"diffRemoved": "#fa3012",
|
||||
"diffRemovedBackground": "#fffcfb",
|
||||
"diffAddedBackground": "#efffee",
|
||||
"diffRemoved": "#ff8c00",
|
||||
"diffRemovedBackground": "#fef8f6",
|
||||
"diffModified": "#675912",
|
||||
"diffModifiedBackground": "#dfe4f0",
|
||||
"diffModifiedBackground": "#ebeef4",
|
||||
"lineNumber": "#494644",
|
||||
"lineNumberActive": "#161210"
|
||||
}
|
||||
},
|
||||
"header": {
|
||||
"background": "#f8f8f8",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"icon": "#302c2a",
|
||||
"hover": "#e2e2e2"
|
||||
},
|
||||
"sidebar": {
|
||||
"background": "#ededed",
|
||||
"foreground": "#302c2a",
|
||||
"border": "#c1c0c0",
|
||||
"icon": "#c3c2c1",
|
||||
"hover": "#e2e2e2",
|
||||
"active": "#e0eafd",
|
||||
"accent": "#dcde8d",
|
||||
"accentForeground": "#000000"
|
||||
},
|
||||
"chat": {
|
||||
"background": "#f8f8f8",
|
||||
"userMessage": "#161210",
|
||||
"userMessageBackground": "#ebebeb",
|
||||
"assistantMessage": "#161210",
|
||||
"assistantMessageBackground": "#f8f8f8",
|
||||
"timestamp": "#494644",
|
||||
"divider": "#dcdcdb",
|
||||
"typing": "#302c2a"
|
||||
},
|
||||
"markdown": {
|
||||
"heading1": "#5e5e11",
|
||||
"heading2": "#5e5e11",
|
||||
"heading3": "#161210",
|
||||
"heading3": "#070504",
|
||||
"heading4": "#161210",
|
||||
"link": "#0040df",
|
||||
"linkHover": "#8c1896",
|
||||
@@ -138,30 +167,242 @@
|
||||
"inlineCodeBackground": "#ebebeb",
|
||||
"blockquote": "#675912",
|
||||
"blockquoteBorder": "#c1c0c0",
|
||||
"listMarker": "#0040df99"
|
||||
},
|
||||
"chat": {
|
||||
"userMessage": "#161210",
|
||||
"userMessageBackground": "#e0eafd",
|
||||
"assistantMessage": "#161210",
|
||||
"assistantMessageBackground": "#f8f8f8",
|
||||
"timestamp": "#302c2a",
|
||||
"divider": "#c1c0c0"
|
||||
"listMarker": "#0040df99",
|
||||
"bold": "#8c1896",
|
||||
"italic": "#675912",
|
||||
"strikethrough": "#302c2a",
|
||||
"hr": "#c1c0c0"
|
||||
},
|
||||
"tools": {
|
||||
"background": "#ebebeb80",
|
||||
"border": "#c1c0c0b3",
|
||||
"headerHover": "#e2e2e280",
|
||||
"icon": "#302c2a",
|
||||
"background": "#ebebeb",
|
||||
"border": "#dcdcdb",
|
||||
"headerHover": "#e2e2e2",
|
||||
"icon": "#c3c2c1",
|
||||
"title": "#161210",
|
||||
"description": "#302c2a",
|
||||
"edit": {
|
||||
"added": "#167517",
|
||||
"addedBackground": "#f9fff8",
|
||||
"addedBackground": "#efffee",
|
||||
"removed": "#fa3012",
|
||||
"removedBackground": "#fffcfb",
|
||||
"removedBackground": "#fef8f6",
|
||||
"modified": "#675912",
|
||||
"modifiedBackground": "#ebeef4",
|
||||
"lineNumber": "#494644"
|
||||
},
|
||||
"bash": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"info": "#a753ae",
|
||||
"warning": "#ffdc17",
|
||||
"error": "#fc533a"
|
||||
},
|
||||
"lsp": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"info": "#a753ae",
|
||||
"warning": "#ffdc17",
|
||||
"error": "#fc533a"
|
||||
}
|
||||
},
|
||||
"forms": {
|
||||
"inputBackground": "#f8f8f8",
|
||||
"inputForeground": "#161210",
|
||||
"inputBorder": "#dcdcdb",
|
||||
"inputBorderHover": "#cfcecd",
|
||||
"inputBorderFocus": "#054dfd",
|
||||
"inputPlaceholder": "#494644",
|
||||
"inputDisabled": "#e6e6e6",
|
||||
"inputSelection": "#e0eafd",
|
||||
"label": "#302c2a",
|
||||
"helperText": "#494644"
|
||||
},
|
||||
"buttons": {
|
||||
"primary": {
|
||||
"bg": "#dcde8d",
|
||||
"fg": "#000000",
|
||||
"border": "#a3c1fd",
|
||||
"hover": "#d2d369",
|
||||
"active": "#054dfd",
|
||||
"disabled": "#cac9c9"
|
||||
},
|
||||
"secondary": {
|
||||
"bg": "#f1f1f1",
|
||||
"fg": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"hover": "#ebebeb",
|
||||
"active": "#e2e2e2",
|
||||
"disabled": "#e6e6e6"
|
||||
},
|
||||
"ghost": {
|
||||
"bg": "#00000000",
|
||||
"fg": "#161210",
|
||||
"border": "#00000000",
|
||||
"hover": "#ebebeb",
|
||||
"active": "#e2e2e2",
|
||||
"disabled": "#494644"
|
||||
},
|
||||
"destructive": {
|
||||
"bg": "#fc533a",
|
||||
"fg": "#000000",
|
||||
"border": "#faaa9b",
|
||||
"hover": "#FFF2F0",
|
||||
"active": "#fb543c",
|
||||
"disabled": "#e6e6e6"
|
||||
}
|
||||
},
|
||||
"modal": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"overlay": "#f8f8f83d"
|
||||
},
|
||||
"popover": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"shadow": "0 18px 48px rgba(15, 15, 15, 0.16)"
|
||||
},
|
||||
"commandPalette": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"inputBackground": "#f8f8f8",
|
||||
"selectedBackground": "#e0eafd",
|
||||
"selectedForeground": "#161210",
|
||||
"muted": "#302c2a"
|
||||
},
|
||||
"fileAttachment": {
|
||||
"background": "#ebebeb",
|
||||
"foreground": "#161210",
|
||||
"border": "#dcdcdb",
|
||||
"icon": "#c3c2c1",
|
||||
"removeHover": "#fde3de"
|
||||
},
|
||||
"sessions": {
|
||||
"background": "#f8f8f8",
|
||||
"foreground": "#161210",
|
||||
"mutedForeground": "#302c2a",
|
||||
"border": "#e5e5e5",
|
||||
"hover": "#e2e2e2",
|
||||
"active": "#e0eafd"
|
||||
},
|
||||
"modelSelector": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"selectedBackground": "#e0eafd",
|
||||
"selectedForeground": "#161210"
|
||||
},
|
||||
"permissions": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"allow": "#12c905",
|
||||
"allowBackground": "#bbffb4",
|
||||
"deny": "#fc533a",
|
||||
"denyBackground": "#fde3de"
|
||||
},
|
||||
"loading": {
|
||||
"spinner": "#dcde8d",
|
||||
"spinnerTrack": "#e2e2e2",
|
||||
"skeleton": "#ebebeb",
|
||||
"shimmer": "#e2e2e2"
|
||||
},
|
||||
"scrollbar": {
|
||||
"track": "transparent",
|
||||
"thumb": "#16121026",
|
||||
"thumbHover": "#16121040"
|
||||
},
|
||||
"badges": {
|
||||
"default": {
|
||||
"bg": "#ebebeb",
|
||||
"fg": "#161210",
|
||||
"border": "#dcdcdb"
|
||||
},
|
||||
"info": {
|
||||
"bg": "#fcdffe",
|
||||
"fg": "#a753ae",
|
||||
"border": "#f39cf9"
|
||||
},
|
||||
"success": {
|
||||
"bg": "#bbffb4",
|
||||
"fg": "#12c905",
|
||||
"border": "#2ce822"
|
||||
},
|
||||
"warning": {
|
||||
"bg": "#feeb92",
|
||||
"fg": "#ffdc17",
|
||||
"border": "#dec025"
|
||||
},
|
||||
"error": {
|
||||
"bg": "#fde3de",
|
||||
"fg": "#fc533a",
|
||||
"border": "#faaa9b"
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"background": "#f1f1f1",
|
||||
"foreground": "#161210",
|
||||
"border": "#c1c0c0",
|
||||
"success": {
|
||||
"background": "#bbffb4",
|
||||
"foreground": "#12c905",
|
||||
"border": "#2ce822"
|
||||
},
|
||||
"warning": {
|
||||
"background": "#feeb92",
|
||||
"foreground": "#ffdc17",
|
||||
"border": "#dec025"
|
||||
},
|
||||
"error": {
|
||||
"background": "#fde3de",
|
||||
"foreground": "#fc533a",
|
||||
"border": "#faaa9b"
|
||||
},
|
||||
"info": {
|
||||
"background": "#fcdffe",
|
||||
"foreground": "#a753ae",
|
||||
"border": "#f39cf9"
|
||||
}
|
||||
},
|
||||
"emptyState": {
|
||||
"icon": "#302c2a",
|
||||
"title": "#161210",
|
||||
"description": "#302c2a",
|
||||
"border": "#e5e5e5"
|
||||
},
|
||||
"table": {
|
||||
"border": "#e5e5e5",
|
||||
"headerBackground": "#f1f1f1",
|
||||
"headerForeground": "#161210",
|
||||
"rowHover": "#e2e2e2",
|
||||
"rowSelected": "#e0eafd"
|
||||
},
|
||||
"charts": {
|
||||
"series": [
|
||||
"#dcde8d",
|
||||
"#a753ae",
|
||||
"#12c905",
|
||||
"#ffdc17",
|
||||
"#fc533a"
|
||||
]
|
||||
},
|
||||
"a11y": {
|
||||
"focusRing": "#054dfd",
|
||||
"selection": "#e0eafd",
|
||||
"highContrast": false
|
||||
},
|
||||
"shadows": {
|
||||
"sm": "0 2px 8px rgba(15, 15, 15, 0.08)",
|
||||
"md": "0 12px 32px rgba(15, 15, 15, 0.12)",
|
||||
"lg": "0 24px 56px rgba(15, 15, 15, 0.16)",
|
||||
"focus": "0 0 0 3px #034cff40"
|
||||
},
|
||||
"animation": {
|
||||
"fast": "150ms ease",
|
||||
"normal": "250ms ease",
|
||||
"slow": "350ms ease",
|
||||
"emphasis": "450ms cubic-bezier(0.2, 0.8, 0.2, 1)"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
@@ -178,6 +419,13 @@
|
||||
"xl": "0.75rem",
|
||||
"full": "9999px"
|
||||
},
|
||||
"spacing": {
|
||||
"xs": "0.25rem",
|
||||
"sm": "0.5rem",
|
||||
"md": "0.75rem",
|
||||
"lg": "1rem",
|
||||
"xl": "1.5rem"
|
||||
},
|
||||
"transitions": {
|
||||
"fast": "150ms ease",
|
||||
"normal": "250ms ease",
|
||||
|
||||
Reference in New Issue
Block a user