Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions ui/.npmrc
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,16 @@ minimum-release-age=10080
minimum-release-age-exclude[]=@xterm/xterm
minimum-release-age-exclude[]=@xterm/addon-fit
minimum-release-age-exclude[]=@xterm/addon-web-links

# shadcn/ui + Tailwind v4 migration stack. These are fast-moving and several of
# the pinned versions were published within the last 7 days, so they are opted
# in here via the same mechanism as the @xterm betas above.
minimum-release-age-exclude[]=radix-ui
minimum-release-age-exclude[]=@radix-ui/*
minimum-release-age-exclude[]=tailwindcss
minimum-release-age-exclude[]=@tailwindcss/*
minimum-release-age-exclude[]=shadcn
minimum-release-age-exclude[]=lucide-react
minimum-release-age-exclude[]=cmdk
minimum-release-age-exclude[]=sonner
minimum-release-age-exclude[]=tw-animate-css
10 changes: 8 additions & 2 deletions ui/e2e/scroll-behavior.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ test.describe("Scroll behavior", () => {
page,
request,
}) => {
// Several sequential agent round-trips below; give headroom over the
// default 30s so this doesn't time out under full-suite load.
test.setTimeout(120_000);
// Seed a conversation with enough content via the API so we don't race
// with other tests on the shared server (page.goto('/') used to pick up
// whichever conversation was most recent, often mid-stream).
Expand All @@ -17,8 +20,11 @@ test.describe("Scroll behavior", () => {
const sendButton = page.locator('[data-testid="send-button"]');
await expect(input).toBeVisible({ timeout: 30000 });

// Add more messages to ensure we have scrollable content.
for (let i = 1; i < 4; i++) {
// Add more messages to ensure we have scrollable content. The shadcn
// redesign is more vertically compact than the old UI, so a few short echo
// exchanges no longer overflow the viewport; seed enough to guarantee the
// messages container actually scrolls.
for (let i = 1; i < 6; i++) {
await input.fill(`echo message ${i}`);
await sendButton.click();
// Wait for the agent reply for this specific message to appear.
Expand Down
17 changes: 15 additions & 2 deletions ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"type": "module",
"packageManager": "pnpm@10.33.0",
"scripts": {
"dev": "esbuild src/main.tsx --bundle --outfile=dist/main.js --servedir=dist --watch",
"dev": "tailwindcss -i src/tailwind.css -o dist/tailwind.css --watch & esbuild src/main.tsx --bundle --outfile=dist/main.js --servedir=dist --alias:@=./src --watch",
"dev:css": "tailwindcss -i src/tailwind.css -o dist/tailwind.css --watch",
"build": "node scripts/build.js",
"clean": "rm -rf dist/*",
"lint": "eslint src --ext .ts,.tsx",
Expand All @@ -21,19 +22,28 @@
},
"dependencies": {
"@excalidraw/excalidraw": "0.18.0",
"@fontsource-variable/ibm-plex-sans": "^5.2.8",
"@pierre/diffs": "1.1.20",
"@xterm/addon-fit": "0.12.0-beta.213",
"@xterm/addon-web-links": "0.13.0-beta.213",
"@xterm/xterm": "6.1.0-beta.213",
"ansi-to-html": "^0.7.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"dompurify": "^3.3.1",
"idb": "^8.0.3",
"jszip": "^3.10.1",
"lucide-react": "^1.20.0",
"marked": "^17.0.3",
"monaco-editor": "^0.44.0",
"monaco-vim": "^0.4.4",
"radix-ui": "^1.6.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"react-dom": "^18.2.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0"
},
"devDependencies": {
"@eslint/js": "^9.35.0",
Expand All @@ -42,6 +52,7 @@
"@types/node": "^22.0.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0",
"@tailwindcss/cli": "^4",
"@typescript-eslint/eslint-plugin": "^8.43.0",
"@typescript-eslint/parser": "^8.43.0",
"esbuild": "^0.19.0",
Expand All @@ -51,6 +62,8 @@
"fake-indexeddb": "^6.2.5",
"jsdom": "^24.1.3",
"prettier": "^3.6.2",
"shadcn": "^4.11.0",
"tailwindcss": "^4",
"tsx": "^4.21.0",
"typescript": "^5.0.0",
"typescript-eslint": "^8.43.0"
Expand Down
Loading