Skip to content

Commit 0fabe7f

Browse files
committed
Merge remote-tracking branch 'origin/main' into vlad-DH-22326
2 parents 7aaa292 + 53e35dd commit 0fabe7f

38 files changed

Lines changed: 636 additions & 525 deletions

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v24.10.0
1+
v24.14.1

AGENTS.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Repo shape
6+
7+
Lerna + npm workspaces monorepo with ~38 packages under `packages/*`. Nx is used only for build caching (see `nx.json`). Node 24 / npm 11 (`.nvmrc`). Most packages are libraries built with Babel + Sass; the four apps (`code-studio`, `embed-widget`, `embed-chart`, `embed-grid`) are built with Vite.
8+
9+
The web UI does not work standalone — it requires a `deephaven-core` server on port 10000 (override with `VITE_PROXY_URL` in `packages/<app>/.env.local`). For E2E, core must run with anonymous auth and `-Ddeephaven.application.dir=tests/docker-scripts/data/app.d` (see README's E2E section).
10+
11+
## Common commands
12+
13+
- `npm start` — build icons, then watch types and start dev servers (`code-studio` on :4000, `embed-widget` on :4010).
14+
- `npm run start:app` / `npm run start:embed-widget` — start a single dev server.
15+
- `npm run build` — full prod build: `build:necessary``types``build:packages``build:apps`. Always builds `@deephaven/icons` first because it generates SVGs other packages consume.
16+
- `npm run types` / `npm run watch:types``tsc --build` using project references. Top-level packages must be listed in the root `tsconfig.json` references for type emit to work.
17+
- `npm test` — Jest watch mode, filtered to files changed since `origin/main`. Press `p` to filter by name, `Shift+P` to toggle the `eslint`/`stylelint` jest projects.
18+
- `npm run test:unit` — runs `build:necessary`, then all unit tests across every package's `jest.config.cjs`.
19+
- `npm run test:lint` — runs ESLint and Stylelint as jest projects via `jest-runner-eslint` / `jest-runner-stylelint`. Faster than `lint:packages` when narrowed (`-- --changedSince origin/main`).
20+
- Single test: `npm run test:unit -- <pattern>` (matches filename or test name), or `npm run test:debug <pattern>` to attach a debugger.
21+
- `npm run e2e` / `npm run e2e:headed` — Playwright; requires `localhost:4000/ide/` reachable and core running. `npm run e2e:docker` builds a prod image and runs everything in docker. Snapshots are Linux-only — update CI snapshots with `npm run e2e:update-ci-snapshots`.
22+
- `DH_LOG_LEVEL=4 npm test` — enable `@deephaven/log` output in tests (suppressed by default in `jest.setup.ts`).
23+
24+
## Architecture
25+
26+
- **App entry points** all live in `packages/code-studio` (main UI), `packages/embed-widget` (single-widget embed), `packages/embed-chart`, `packages/embed-grid`. `code-studio` depends on nearly every other package and is the fastest way to see end-to-end effects.
27+
- **Rendering / layout stack:** `golden-layout` (low-level panel framework) → `dashboard` (panel state + APIs) → `dashboard-core-plugins` (concrete panel types: chart, grid, console, filter, linker) → `code-studio` wires plugins into the app shell. Plugins are registered via `@deephaven/plugin`.
28+
- **Data grids:** `grid` is a generic high-performance canvas grid; `iris-grid` is the Deephaven-aware grid that knows about the JS API (filters, totals rows, snapshots, etc.). `iris-grid` depends on `grid`.
29+
- **JS API integration:** `jsapi-types` (TypeScript types for the API delivered by core), `jsapi-shim` (re-exports the runtime API loaded from core), `jsapi-bootstrap` (React context + hooks like `useApi`, `useObjectFetcher`, `useWidget` that gate UI on API readiness), `jsapi-components` (React components that consume the API), `jsapi-utils` (framework-free helpers), `jsapi-nodejs` (Node loader for using the API server-side).
30+
- **State:** `redux` package owns the root store, reducer registry, middleware, and selectors. Other packages register reducers via `reducerRegistry`. `react-hooks` and `jsapi-bootstrap` provide React-side primitives.
31+
- **UI primitives:** `components` is the design system. It re-exports a curated subset of `@adobe/react-spectrum` from `components/src/spectrum` — the rest of the codebase **must not** import `@adobe/react-spectrum` directly (enforced by `no-restricted-imports` in the root ESLint config). Inside `components`, only `src/spectrum/**` and `src/theme/**` may import the spectrum package.
32+
- **No self-imports:** the same ESLint rule forbids a package from importing its own `@deephaven/<name>` alias — use relative paths within a package.
33+
34+
## Test wiring
35+
36+
- Unit tests resolve workspace packages from source via Jest `moduleNameMapper` (`^@deephaven/(?!icons|jsapi-types)(.*)$ → packages/$1/src`), so you don't need to rebuild dependencies between edits. `icons` and `jsapi-types` are exceptions and ship pre-built.
37+
- Each package has a thin `jest.config.cjs` that extends `jest.config.base.cjs`. Tests run under `jsdom` with `jest.setup.ts` mocking `matchMedia`, `ResizeObserver`, `IntersectionObserver`, fonts, etc.
38+
- The "dh-core" JS API is mocked globally via `__mocks__/dh-core` — most tests that touch the API use `@deephaven/test-utils` helpers and the mock proxy pattern (`TestUtils.createMockProxy<T>()`).
39+
40+
## Conventions
41+
42+
- **Conventional Commits are required for PR titles** (enforced by `conventional-pr-check.yml`). Types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`. Breaking changes use a `BREAKING CHANGE:` footer in the PR description — **do not** use the `!` shorthand.
43+
- Lerna versioning is conventional-commits driven; release notes and CHANGELOGs are generated automatically.
44+
- ESLint extends Airbnb + React; Prettier and Stylelint are wired through `@deephaven/prettier-config` and `@deephaven/stylelint-config`. Run `npm run test:lint` rather than calling eslint/stylelint directly so caching works.
45+
- New packages: copy `embed-widget` for an app, `components` for a library, then add to root `tsconfig.json` references if it needs to participate in `npm run types`.

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,23 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [1.18.1](https://github.com/deephaven/web-client-ui/compare/v1.18.0...v1.18.1) (2026-04-30)
7+
8+
### Bug Fixes
9+
10+
- DH-21869: Fix Timezone for Conditional Date Formatting ([#2663](https://github.com/deephaven/web-client-ui/issues/2663)) ([49781a7](https://github.com/deephaven/web-client-ui/commit/49781a7ce08151255fad5064f767dc8653411db3))
11+
- **golden-layout:** DH-22431: preserve focus indicator on nested dashboard tab ([#2664](https://github.com/deephaven/web-client-ui/issues/2664)) ([b2c5aa0](https://github.com/deephaven/web-client-ui/commit/b2c5aa08e0d014c6ac8a0ac973d984f2bb8b0b36))
12+
13+
## [1.18.0](https://github.com/deephaven/web-client-ui/compare/v1.17.1...v1.18.0) (2026-04-09)
14+
15+
### Features
16+
17+
- Export GridColorUtils ([#2655](https://github.com/deephaven/web-client-ui/issues/2655)) ([af923d4](https://github.com/deephaven/web-client-ui/commit/af923d439936f0949386ed16e5a647a73c008f87))
18+
19+
### Bug Fixes
20+
21+
- DH-21539: Prevent browser back navigation on horizontal overscroll ([#2654](https://github.com/deephaven/web-client-ui/issues/2654)) ([d504ec8](https://github.com/deephaven/web-client-ui/commit/d504ec853c6434343ea544b0ccee7710e666881b))
22+
623
## [1.17.1](https://github.com/deephaven/web-client-ui/compare/v1.17.0...v1.17.1) (2026-04-01)
724

825
### Bug Fixes

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@AGENTS.md

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"useNx": false,
3-
"version": "1.17.1",
3+
"version": "1.18.1",
44
"command": {
55
"publish": {
66
"distTag": "latest"

0 commit comments

Comments
 (0)