@checkstack/frontend 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,57 @@
1
1
  # @checkstack/frontend
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - fb705df: Upgrade React 18 to React 19 across the platform.
8
+
9
+ **BREAKING (runtime frontend plugins):** React is shared as a Module Federation
10
+ singleton, so the host now provides **React 19** to every runtime plugin.
11
+ Frontend plugins built against React 18 must be rebuilt against React 19
12
+ (`react` / `react-dom` `^19`). The scaffold templates and the host/plugin MF
13
+ `requiredVersion` are updated to `^19`. `react` (and now `react-dom`) are pinned
14
+ to a single version across the workspace via syncpack so the singleton can never
15
+ skew (react and react-dom must match exactly).
16
+
17
+ The React 19 removed-API surface was audited - the codebase used only no-arg
18
+ `useRef()` (now `useRef<T | undefined>(undefined)`); no `ReactDOM.render`,
19
+ legacy context, string refs, or function-component `defaultProps`. This also
20
+ clears the `IMPORT_IS_UNDEFINED` build warnings for `React.use` /
21
+ `React.useOptimistic` (react-router 7 feature-detection), which React 19 exports.
22
+
23
+ The downstream `*-frontend` packages (and `@checkstack/infrastructure-common`)
24
+ receive only the mechanical `react` dependency bump (`patch`); the framework
25
+ packages carrying the shared-singleton change are bumped `minor`.
26
+
27
+ ### Patch Changes
28
+
29
+ - 9d8961c: Fix the double-scrolling on the AI chat page (`/ai/chat`). The page sized its
30
+ layout with a fixed `calc(100vh - 220px)` height, which overshot the available
31
+ space when the page subtitle wrapped to two lines - so the whole page scrolled
32
+ on top of the message list's own scroll.
33
+
34
+ `PageLayout` gains an opt-in `fillHeight` prop that fills the viewport via a
35
+ bounded flex height chain (established in the app shell) instead of viewport
36
+ math; the chat page uses it so only the message list scrolls and the page itself
37
+ never does. Normal document-flow pages are unaffected (they still scroll the
38
+ main area as before).
39
+
40
+ - Updated dependencies [9d8961c]
41
+ - Updated dependencies [50123c7]
42
+ - Updated dependencies [fb705df]
43
+ - @checkstack/ui@1.15.0
44
+ - @checkstack/dependency-frontend@0.5.4
45
+ - @checkstack/frontend-api@0.8.0
46
+ - @checkstack/about-frontend@0.3.4
47
+ - @checkstack/announcement-frontend@0.4.4
48
+ - @checkstack/auth-frontend@0.7.4
49
+ - @checkstack/catalog-frontend@0.11.4
50
+ - @checkstack/command-frontend@0.3.4
51
+ - @checkstack/signal-frontend@0.2.3
52
+ - @checkstack/common@0.14.1
53
+ - @checkstack/signal-common@0.2.8
54
+
3
55
  ## 0.8.0
4
56
 
5
57
  ### Minor Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checkstack/frontend",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "license": "Elastic-2.0",
5
5
  "checkstack": {
6
6
  "type": "frontend"
@@ -20,17 +20,17 @@
20
20
  "lint:code": "eslint . --max-warnings 0"
21
21
  },
22
22
  "dependencies": {
23
- "@checkstack/about-frontend": "0.3.3",
24
- "@checkstack/announcement-frontend": "0.4.3",
25
- "@checkstack/auth-frontend": "0.7.3",
26
- "@checkstack/catalog-frontend": "0.11.3",
27
- "@checkstack/command-frontend": "0.3.3",
23
+ "@checkstack/about-frontend": "0.3.4",
24
+ "@checkstack/announcement-frontend": "0.4.4",
25
+ "@checkstack/auth-frontend": "0.7.4",
26
+ "@checkstack/catalog-frontend": "0.11.4",
27
+ "@checkstack/command-frontend": "0.3.4",
28
28
  "@checkstack/common": "0.14.1",
29
- "@checkstack/dependency-frontend": "0.5.3",
30
- "@checkstack/frontend-api": "0.7.2",
29
+ "@checkstack/dependency-frontend": "0.5.4",
30
+ "@checkstack/frontend-api": "0.8.0",
31
31
  "@checkstack/signal-common": "0.2.8",
32
- "@checkstack/signal-frontend": "0.2.2",
33
- "@checkstack/ui": "1.14.0",
32
+ "@checkstack/signal-frontend": "0.2.3",
33
+ "@checkstack/ui": "1.15.0",
34
34
  "@module-federation/runtime": "^2.5",
35
35
  "@module-federation/vite": "^1.16",
36
36
  "@orpc/client": "^1.14.4",
@@ -41,18 +41,18 @@
41
41
  "class-variance-authority": "^0.7.0",
42
42
  "clsx": "^2.1.0",
43
43
  "lucide-react": "^1.17.0",
44
- "react": "^18.3.1",
45
- "react-dom": "^18.2.0",
44
+ "react": "19.2.7",
45
+ "react-dom": "19.2.7",
46
46
  "react-router-dom": "^7.16.0",
47
47
  "tailwind-merge": "^2.2.0",
48
48
  "tailwindcss": "^3.4.1",
49
49
  "tailwindcss-animate": "^1.0.7"
50
50
  },
51
51
  "devDependencies": {
52
- "@checkstack/scripts": "0.5.0",
52
+ "@checkstack/scripts": "0.6.0",
53
53
  "@checkstack/tsconfig": "0.0.7",
54
- "@types/react": "^18.2.64",
55
- "@types/react-dom": "^18.2.21",
54
+ "@types/react": "^19.0.0",
55
+ "@types/react-dom": "^19.0.0",
56
56
  "@vitejs/plugin-react": "^6.0.2",
57
57
  "postcss": "^8.5.15",
58
58
  "vite": "^8.0.16"
package/src/App.tsx CHANGED
@@ -207,8 +207,12 @@ function AppContent() {
207
207
  mobileOpen={mobileNavOpen}
208
208
  onMobileOpenChange={setMobileNavOpen}
209
209
  />
210
- <main className="flex-1 min-w-0 overflow-y-auto">
211
- <div className="px-3 py-4 md:p-8 w-full max-w-7xl mx-auto">
210
+ <main className="flex flex-1 min-w-0 flex-col overflow-y-auto">
211
+ {/* `flex-1 min-h-0 flex flex-col` establishes a bounded height
212
+ chain so a page can fill the viewport (PageLayout `fillHeight`)
213
+ and scroll an inner pane instead of the whole page. Tall normal
214
+ pages still overflow into `main`'s scroll (verified). */}
215
+ <div className="flex flex-1 min-h-0 flex-col px-3 py-4 md:p-8 w-full max-w-7xl mx-auto">
212
216
  <Routes>
213
217
  <Route
214
218
  path="/"
package/vite.config.ts CHANGED
@@ -82,11 +82,11 @@ export default defineConfig(({ command }) => {
82
82
  name: "checkstack_host",
83
83
  remotes: {},
84
84
  shared: {
85
- react: { singleton: true, eager: true, requiredVersion: "^18.0.0" },
85
+ react: { singleton: true, eager: true, requiredVersion: "^19.0.0" },
86
86
  "react-dom": {
87
87
  singleton: true,
88
88
  eager: true,
89
- requiredVersion: "^18.0.0",
89
+ requiredVersion: "^19.0.0",
90
90
  },
91
91
  "react-router-dom": {
92
92
  singleton: true,