- Override PART_MAPPING["reasoning"] in kilo-ui with a collapsible component
- Collapsed by default with brain icon and localized "Reasoning" label
- Subtle background (--surface-inset-base) and left border accent (--border-weak-base)
- Italic, muted text to signal internal model thinking vs final output
- All colors via CSS custom properties for light/dark/HC theme compatibility
- Add ui.reasoning.label i18n key to all 16 kilo-i18n locale files
- Fix upstream margin-top: 24px on markdown wrapper inside reasoning block
Closes#6254
* feat: add colorblind-friendly theme
Add a new colorblind-accessible theme using a scientifically-designed
palette that works for deuteranopia, protanopia, and tritanopia:
- Primary Blue (#0077BB) for main UI elements
- Secondary Orange (#EE7733) for variables and operators
- Success Teal (#009988) instead of green for success states
- Warning Yellow (#CCBB44) for warnings
- Error Vermillion (#CC3311) instead of red for errors
- Accent Sky (#33BBEE) for functions and links
Key design principles:
- No red/green combinations (most common color blindness)
- Blue/orange as primary contrasting colors
- Teal/vermillion for diff colors instead of green/red
- High luminance contrast between adjacent colors
* Update packages/opencode/src/cli/cmd/tui/context/theme.tsx
Co-authored-by: Marius <marius@kilocode.ai>
* Update packages/opencode/src/cli/cmd/tui/context/theme.tsx
Co-authored-by: Marius <marius@kilocode.ai>
* Update packages/opencode/src/cli/cmd/tui/context/theme/colorblind.json
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
* Update packages/opencode/src/cli/cmd/tui/context/theme/colorblind.json
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
* fix malformed block
---------
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
Co-authored-by: Marius <marius@kilocode.ai>
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
Extract the open-tab enumeration into a shared private async helper
getOpenTabPaths(dir) that:
- uses the cached FileIgnoreController (same instance as gatherEditorContext)
- filters tabs through validateAccess so .kilocodeignore is respected
- returns a Set<string> of workspace-relative forward-slash paths
Both the requestFileSearch handler and gatherEditorContext now call this
helper, eliminating the duplicated loop and ensuring the file search
prioritization respects .kilocodeignore the same way the agent context does.
fileName() and dirName() were not stripping trailing slashes before
splitting, so directory paths like 'src/components/' produced an empty
filename (split('/').pop() returns '' on a trailing slash) and an
incorrect dirName. Strip trailing slashes first so both functions work
correctly for files and directories.