From 0bcbfe89ea5d75ceb13ad560229361dcbbb9c7b1 Mon Sep 17 00:00:00 2001 From: John Wang Date: Wed, 4 Nov 2026 16:49:05 -0800 Subject: [PATCH] docs(release): add the toolchain and loading fixes to v0.8.0 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.json | 28 ++++++++++++++++++++++++++++ CHANGELOG.md | 8 +++++++- docs/changelog.md | 8 +++++++- docs/releases/v0.8.0.md | 13 +++++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.json b/CHANGELOG.json index 592c323..60e82ce 100644 --- a/CHANGELOG.json +++ b/CHANGELOG.json @@ -167,27 +167,55 @@ { "description": "Console help links with a malformed URL no longer break the page", "commit": "bc97fa4" + }, + { + "description": "`useConversations` applies only the latest load: a refresh still in flight when the API base changes no longer overwrites the new base's list, and a new base shows loading and no earlier error until its own load settles", + "commit": "10dd9c8" + }, + { + "description": "`SessionProvider` and `useConversations` set state only when a load started in an effect settles, and only while mounted; `SessionProvider` updates `onUnauthorized` in a layout effect, so a session read settling right after a render calls the current callback", + "commit": "ad62aea" } ], "tests": [ { "description": "URL checks, return addresses, catalog filtering, request paths, cache resets, chat focus and streaming, telemetry privacy, org-scoped roles, failed sign-out, org page reloads and role controls, tenant storage and the production dev-session guard", "commit": "5c220b6" + }, + { + "description": "Stale refreshes and API base changes in `useConversations`", + "commit": "adbec15" } ], "dependencies": [ { "description": "vitest 4.1 with vite 8, and dependencies refreshed within their ranges", "commit": "2dd11cf" + }, + { + "description": "TypeScript 6.0, ESLint 10 with a flat configuration and `@eslint-react/eslint-plugin` in place of `eslint-plugin-react`, vitest 5, jsdom 30, tsup 9, changesets 3 and postcss-cli 12", + "commit": "0a1ec99" } ], "infrastructure": [ { "description": "`scripts/dist-paths.mjs` checks build output for local paths in `pnpm build` and every `prepublishOnly`; Dependabot updates actions and npm dependencies", "commit": "e3fbb14" + }, + { + "description": "Building the repository needs Node.js 24.15 or later; CI tests on Node 24 and 26 with a read-only token, and lints and releases on 26. The published packages are unchanged by this", + "commit": "b109c0a" + }, + { + "description": "Dependabot groups minor and patch updates and opens a pull request per major update", + "commit": "a97970f" } ], "documentation": [ + { + "description": "The README and installation guide state the Node.js 24.15 minimum for building", + "commit": "3c176aa" + }, { "description": "api-client, auth, chat, pages and telemetry pages describe the new behavior and options; the releasing and application guides describe the path check and the development session", "commit": "9e5d6f9" diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f5d4a7..99b654a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,23 +67,29 @@ and this changelog is generated by [Structured Changelog](https://github.com/gro - `TenantProvider` forgot the stored organization on every load and crashed when storage is blocked ([`e94431b`](https://github.com/plexusone/systemforge-web/commit/e94431b)) - The profile tab reported a save that never happened ([`e3490cb`](https://github.com/plexusone/systemforge-web/commit/e3490cb)) - Console help links with a malformed URL no longer break the page ([`bc97fa4`](https://github.com/plexusone/systemforge-web/commit/bc97fa4)) +- `useConversations` applies only the latest load: a refresh still in flight when the API base changes no longer overwrites the new base's list, and a new base shows loading and no earlier error until its own load settles ([`10dd9c8`](https://github.com/plexusone/systemforge-web/commit/10dd9c8)) +- `SessionProvider` and `useConversations` set state only when a load started in an effect settles, and only while mounted; `SessionProvider` updates `onUnauthorized` in a layout effect, so a session read settling right after a render calls the current callback ([`ad62aea`](https://github.com/plexusone/systemforge-web/commit/ad62aea)) ### Dependencies -- _1 dependency update_ +- _2 dependency updates_ ### Documentation +- The README and installation guide state the Node.js 24.15 minimum for building ([`3c176aa`](https://github.com/plexusone/systemforge-web/commit/3c176aa)) - api-client, auth, chat, pages and telemetry pages describe the new behavior and options; the releasing and application guides describe the path check and the development session ([`9e5d6f9`](https://github.com/plexusone/systemforge-web/commit/9e5d6f9)) - v0.8.0 release notes ### Tests - URL checks, return addresses, catalog filtering, request paths, cache resets, chat focus and streaming, telemetry privacy, org-scoped roles, failed sign-out, org page reloads and role controls, tenant storage and the production dev-session guard ([`5c220b6`](https://github.com/plexusone/systemforge-web/commit/5c220b6)) +- Stale refreshes and API base changes in `useConversations` ([`adbec15`](https://github.com/plexusone/systemforge-web/commit/adbec15)) ### Infrastructure - `scripts/dist-paths.mjs` checks build output for local paths in `pnpm build` and every `prepublishOnly`; Dependabot updates actions and npm dependencies ([`e3fbb14`](https://github.com/plexusone/systemforge-web/commit/e3fbb14)) +- Building the repository needs Node.js 24.15 or later; CI tests on Node 24 and 26 with a read-only token, and lints and releases on 26. The published packages are unchanged by this ([`b109c0a`](https://github.com/plexusone/systemforge-web/commit/b109c0a)) +- Dependabot groups minor and patch updates and opens a pull request per major update ([`a97970f`](https://github.com/plexusone/systemforge-web/commit/a97970f)) ## [v0.7.0] - 2026-11-03 diff --git a/docs/changelog.md b/docs/changelog.md index 4f5d4a7..99b654a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -67,23 +67,29 @@ and this changelog is generated by [Structured Changelog](https://github.com/gro - `TenantProvider` forgot the stored organization on every load and crashed when storage is blocked ([`e94431b`](https://github.com/plexusone/systemforge-web/commit/e94431b)) - The profile tab reported a save that never happened ([`e3490cb`](https://github.com/plexusone/systemforge-web/commit/e3490cb)) - Console help links with a malformed URL no longer break the page ([`bc97fa4`](https://github.com/plexusone/systemforge-web/commit/bc97fa4)) +- `useConversations` applies only the latest load: a refresh still in flight when the API base changes no longer overwrites the new base's list, and a new base shows loading and no earlier error until its own load settles ([`10dd9c8`](https://github.com/plexusone/systemforge-web/commit/10dd9c8)) +- `SessionProvider` and `useConversations` set state only when a load started in an effect settles, and only while mounted; `SessionProvider` updates `onUnauthorized` in a layout effect, so a session read settling right after a render calls the current callback ([`ad62aea`](https://github.com/plexusone/systemforge-web/commit/ad62aea)) ### Dependencies -- _1 dependency update_ +- _2 dependency updates_ ### Documentation +- The README and installation guide state the Node.js 24.15 minimum for building ([`3c176aa`](https://github.com/plexusone/systemforge-web/commit/3c176aa)) - api-client, auth, chat, pages and telemetry pages describe the new behavior and options; the releasing and application guides describe the path check and the development session ([`9e5d6f9`](https://github.com/plexusone/systemforge-web/commit/9e5d6f9)) - v0.8.0 release notes ### Tests - URL checks, return addresses, catalog filtering, request paths, cache resets, chat focus and streaming, telemetry privacy, org-scoped roles, failed sign-out, org page reloads and role controls, tenant storage and the production dev-session guard ([`5c220b6`](https://github.com/plexusone/systemforge-web/commit/5c220b6)) +- Stale refreshes and API base changes in `useConversations` ([`adbec15`](https://github.com/plexusone/systemforge-web/commit/adbec15)) ### Infrastructure - `scripts/dist-paths.mjs` checks build output for local paths in `pnpm build` and every `prepublishOnly`; Dependabot updates actions and npm dependencies ([`e3fbb14`](https://github.com/plexusone/systemforge-web/commit/e3fbb14)) +- Building the repository needs Node.js 24.15 or later; CI tests on Node 24 and 26 with a read-only token, and lints and releases on 26. The published packages are unchanged by this ([`b109c0a`](https://github.com/plexusone/systemforge-web/commit/b109c0a)) +- Dependabot groups minor and patch updates and opens a pull request per major update ([`a97970f`](https://github.com/plexusone/systemforge-web/commit/a97970f)) ## [v0.7.0] - 2026-11-03 diff --git a/docs/releases/v0.8.0.md b/docs/releases/v0.8.0.md index 072589f..7cb669c 100644 --- a/docs/releases/v0.8.0.md +++ b/docs/releases/v0.8.0.md @@ -46,6 +46,19 @@ The release is breaking. Read [Upgrading](#upgrading) first. - **Release hygiene.** Published source maps no longer name the build machine's paths, and the build fails if they would. +## Also in this release + +- **Conversation list.** `useConversations` applies only its latest load. + A refresh still running when the API base changes no longer replaces the + new base's conversations, and a new base shows loading, not the earlier + error, until its own load settles. +- **Session provider.** `SessionProvider` sets state only when a session + read settles, and calls the `onUnauthorized` the latest render passed. +- **Toolchain.** Building this repository needs Node.js 24.15 or later; + CI tests on Node 24 and 26. The build moved to TypeScript 6.0, ESLint 10 + with a flat configuration, vitest 5 and tsup 9. Nothing changes for + applications that install the packages. + ## Installation ```bash