* integrated terminal
* ci
* persist terminal
* Done! I've moved the TerminalPanelContainer from the main panel area to the right sidebar. Here's a summary of the changes:
- Added `isTerminalVisible: boolean` to global state (defaults to `true`)
- Added `toggleTerminal()` and `setTerminalVisible(value)` actions
- Added `isTerminalVisible` to the persisted state and the `useWorkspacePanelState` hook
- Imported `TerminalPanelContainer` and `useUiPreferencesStore`
- Restructured the component to always include a terminal section at the bottom (when not in create mode and `isTerminalVisible` is true)
- Dynamic flex ratios:
- With upper content + terminal: flex-4 (content) / flex-2 (git) / flex-4 (terminal)
- Without upper content + terminal: flex-3 (git) / flex-7 (terminal)
- When terminal is hidden: original ratios preserved
- Removed the `TerminalPanelContainer` import
- Removed the TERMINAL case from the right main panel rendering
- Added `isTerminalVisible` to `ActionVisibilityContext` interface
- Updated `ToggleTerminalMode` action to use `toggleTerminal()` and check `isTerminalVisible`
- Added `isTerminalVisible` from `panelState` to the visibility context
The terminal now appears permanently at the bottom of the right sidebar (when visible), and the toggle button collapses/expands just the terminal section within the sidebar. The visibility state is persisted to localStorage.
* Frontend ESLint passes with no errors. The backend Rust error (`crates/utils/src/shell.rs:31`) is a pre-existing issue in the codebase, not related to my changes.
* `cargo check` passes now. The fix was adding `.to_path_buf()` to convert the `&Path` reference to an owned `PathBuf`.
* The code compiles. Done! I've added three environment variables in `crates/local-deployment/src/pty.rs:73-75`:
1. `ZDOTDIR=/nonexistent` - prevents zsh from loading `~/.zshrc`
2. `PS1="$ "` - sets the bash prompt
3. `PROMPT="$ "` - sets the zsh prompt
The terminal prompt will now show just `$ ` instead of `lkw@Louiss-MacBook-Pro vibe-kanban %`. Run `pnpm run dev:qa` and open the terminal panel to verify.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Done! The fix is simpler - using `cmd.arg("-f")` to tell zsh/bash to skip loading config files. This:
1. Removes the `ZDOTDIR=/nonexistent` that was causing errors
2. Adds `-f` flag which skips `.zshrc`/`.bashrc` loading
3. Keeps `PS1` and `PROMPT` env vars which will now be respected
Run `pnpm run dev:qa` and open the terminal to verify the prompt shows `$ `.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* I've implemented the terminal theme integration. Here's a summary of the changes:
## Changes Made
**1. Created `frontend/src/utils/terminalTheme.ts`**
- `hslToHex()` function to convert HSL CSS variable format (`"210 40% 98%"`) to hex colors
- `getCssVariable()` helper to read CSS variables from the `.new-design` element
- `getTerminalTheme()` function that builds an xterm.js `ITheme` object from CSS variables:
- Uses `--console-background` and `--console-foreground` for main colors
- Uses `--console-success` and `--console-error` for green/red ANSI colors
- Provides appropriate ANSI color palettes for both light and dark modes
**2. Updated `frontend/src/components/ui-new/terminal/XTermInstance.tsx`**
- Imported `useTheme` hook and `getTerminalTheme` utility
- Replaced hardcoded Tokyo Night theme with dynamic `getTerminalTheme()` call
- Added effect to update terminal theme when app theme changes (`terminal.options.theme = getTerminalTheme()`)
The terminal will now:
- Initialize with colors matching the current theme
- Automatically update colors when switching between light and dark mode
- Use the console color variables defined in `index.css`
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Now I understand the issue clearly. Here are the relevant variables:
| Variable | Light Mode | Dark Mode | Purpose |
|----------|------------|-----------|---------|
| `--_primary` | `0 0% 5%` (dark) | `240 4.8% 95.9%` (light) | Button background - **inverted** |
| `--_console-background` | `0 0% 100%` (white) | `0 0% 0%` (black) | Terminal background - **correct** |
| `--_console-foreground` | `0 0% 5%` (dark) | `210 40% 98%` (light) | Terminal text - **correct** |
| `--bg-primary` | `0 0% 100%` (white) | `0 0% 13%` (dark gray) | Page background |
The code was changed to use `--primary` but that's the wrong variable. For the terminal, you should use:
- `--console-background` / `--_console-background` for the background
- `--console-foreground` / `--_console-foreground` for the text
Or if you prefer to match other UI elements:
- `--bg-primary` for background
- `--text-high` for foreground text
Which approach would you prefer? The original `--console-*` variables were specifically designed for terminal styling, or we can use `--bg-primary`/`--text-high` to match the general UI background.
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* Done. The terminal will now use `--bg-primary` for the background and `--text-high` for the foreground text. This means:
- **Light mode**: White background (`0 0% 100%`) with dark text (`0 0% 5%`)
- **Dark mode**: Dark gray background (`0 0% 13%`) with light text (`0 0% 96%`)
* Done. The terminal will now use `--bg-secondary` for the background and `--text-high` for the foreground text. This means:
- **Light mode**: Light gray background (`0 0% 95%`) with dark text (`0 0% 5%`)
- **Dark mode**: Darker gray background (`0 0% 11%`) with light text (`0 0% 96%`)
* Let me know if you find any issues during testing or need adjustments!
* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f
* terminal
* sidebar cleanup
* fix chat collapse
Amp-Thread-ID: https://ampcode.com/threads/T-019bc754-8db9-712a-a915-58d74d210cad
Co-authored-by: Amp <amp@ampcode.com>
* for the terminal on windows we need to default to powershell if avalibale for the pty (vibe-kanban 049dbf73)
only if powershell.exe cannot be resolved, we should use cmd.
* he colour theme used for the terminal ui isn't visible enough in light mode (vibe-kanban 5f50878a)
t I think we either don't override the ANSI colour mapping with our own, or it's not contrasted enough
* fmt
---------
Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Solomon <abcpro11051@disroot.org>
120 lines
4.1 KiB
JSON
120 lines
4.1 KiB
JSON
{
|
|
"name": "vibe-kanban",
|
|
"private": true,
|
|
"version": "0.0.153",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "VITE_OPEN=${VITE_OPEN:-false} vite",
|
|
"build": "tsc && vite build",
|
|
"check": "tsc --noEmit",
|
|
"preview": "vite preview",
|
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
"lint:fix": "eslint . --ext ts,tsx --fix",
|
|
"lint:i18n": "LINT_I18N=true eslint . --ext ts,tsx --max-warnings 0",
|
|
"format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css,md}\"",
|
|
"format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css,md}\""
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/lang-json": "^6.0.2",
|
|
"@codemirror/language": "^6.11.2",
|
|
"@codemirror/lint": "^6.8.5",
|
|
"@codemirror/view": "^6.38.1",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@ebay/nice-modal-react": "^1.2.13",
|
|
"@git-diff-view/file": "^0.0.30",
|
|
"@git-diff-view/react": "^0.0.30",
|
|
"@lexical/code": "^0.36.2",
|
|
"@lexical/link": "^0.36.2",
|
|
"@lexical/list": "^0.36.2",
|
|
"@lexical/markdown": "^0.36.2",
|
|
"@lexical/react": "^0.36.2",
|
|
"@lexical/rich-text": "^0.36.2",
|
|
"@lexical/table": "^0.36.2",
|
|
"@phosphor-icons/react": "^2.1.10",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
"@radix-ui/react-label": "^2.1.7",
|
|
"@radix-ui/react-select": "^2.2.5",
|
|
"@radix-ui/react-separator": "^1.1.8",
|
|
"@radix-ui/react-slot": "^1.2.3",
|
|
"@radix-ui/react-switch": "^1.0.3",
|
|
"@radix-ui/react-toggle-group": "^1.1.11",
|
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
"@rjsf/shadcn": "6.1.1",
|
|
"@sentry/react": "^9.34.0",
|
|
"@sentry/vite-plugin": "^3.5.0",
|
|
"@tanstack/electric-db-collection": "^0.2.6",
|
|
"@tanstack/react-db": "^0.1.50",
|
|
"@tanstack/react-form": "^1.23.8",
|
|
"@tanstack/react-query": "^5.85.5",
|
|
"@uiw/react-codemirror": "^4.25.1",
|
|
"@virtuoso.dev/message-list": "^1.13.3",
|
|
"class-variance-authority": "^0.7.0",
|
|
"click-to-react-component": "^1.1.2",
|
|
"clsx": "^2.0.0",
|
|
"cmdk": "^1.1.1",
|
|
"developer-icons": "^6.0.4",
|
|
"embla-carousel-react": "^8.6.0",
|
|
"fancy-ansi": "^0.1.3",
|
|
"framer-motion": "^12.23.24",
|
|
"i18next": "^25.5.2",
|
|
"i18next-browser-languagedetector": "^8.2.0",
|
|
"immer": "^11.1.3",
|
|
"lexical": "^0.36.2",
|
|
"lodash": "^4.17.21",
|
|
"lucide-react": "^0.539.0",
|
|
"posthog-js": "^1.276.0",
|
|
"react": "^18.2.0",
|
|
"react-compiler-runtime": "^1.0.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-dropzone": "^14.3.8",
|
|
"react-hotkeys-hook": "^5.1.0",
|
|
"react-i18next": "^15.7.3",
|
|
"react-resizable-panels": "^4.0.13",
|
|
"react-router-dom": "^6.8.1",
|
|
"react-virtuoso": "^4.14.0",
|
|
"rfc6902": "^5.1.2",
|
|
"simple-icons": "^15.16.0",
|
|
"tailwind-merge": "^2.2.0",
|
|
"tailwind-scrollbar": "^3.1.0",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"react-use-websocket": "^4.13.0",
|
|
"vibe-kanban-web-companion": "^0.0.4",
|
|
"@xterm/addon-fit": "^0.10.0",
|
|
"@xterm/addon-web-links": "^0.11.0",
|
|
"@xterm/xterm": "^5.5.0",
|
|
"wa-sqlite": "^1.0.0",
|
|
"zustand": "^4.5.4"
|
|
},
|
|
"devDependencies": {
|
|
"@rjsf/core": "6.1.1",
|
|
"@rjsf/utils": "6.1.1",
|
|
"@rjsf/validator-ajv8": "6.1.1",
|
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
"@types/lodash": "^4.17.20",
|
|
"@types/react": "^18.2.43",
|
|
"@types/react-dom": "^18.2.17",
|
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
"@typescript-eslint/parser": "^6.21.0",
|
|
"@vitejs/plugin-react": "^4.2.1",
|
|
"autoprefixer": "^10.4.16",
|
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
"eslint": "^8.55.0",
|
|
"eslint-config-prettier": "^10.1.5",
|
|
"eslint-plugin-check-file": "^2.8.0",
|
|
"eslint-plugin-deprecation": "^3.0.0",
|
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
"eslint-plugin-i18next": "^6.1.3",
|
|
"eslint-plugin-prettier": "^5.5.0",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"eslint-plugin-react-refresh": "^0.4.5",
|
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
"postcss": "^8.4.32",
|
|
"prettier": "^3.6.1",
|
|
"tailwindcss": "^3.4.0",
|
|
"typescript": "^5.9.2",
|
|
"vite": "^5.0.8"
|
|
}
|
|
}
|