Skip to content
Merged
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
26 changes: 26 additions & 0 deletions .yarn/changelogs/common.1ad48de1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!-- version-type: patch -->

# common

<!--
FORMATTING GUIDE:

### Detailed Entry (appears first when merging)

Use h3 (###) and below for detailed entries with paragraphs, code examples, and lists.

### Simple List Items

- Simple changes can be added as list items
- They are collected together at the bottom of each section

TIP: When multiple changelog drafts are merged, heading-based entries
appear before simple list items within each section.
-->

## ⬆️ Dependencies

- Bumped `@furystack/core` from ^15.0.34 to ^15.0.35
- Bumped `@furystack/rest` from ^8.0.34 to ^8.0.35
- Bumped `@types/node` from ^25.2.0 to ^25.2.2
- Bumped `ts-json-schema-generator` from ^2.4.0 to ^2.5.0
60 changes: 60 additions & 0 deletions .yarn/changelogs/frontend.1ad48de1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<!-- version-type: patch -->

# frontend

<!--
FORMATTING GUIDE:

### Detailed Entry (appears first when merging)

Use h3 (###) and below for detailed entries with paragraphs, code examples, and lists.

### Simple List Items

- Simple changes can be added as list items
- They are collected together at the bottom of each section

TIP: When multiple changelog drafts are merged, heading-based entries
appear before simple list items within each section.
-->

## ♻️ Refactoring

### Migrated to `@furystack/shades` v12 API

Updated all Shade components to align with the Shades v12 API:

- Replaced `element.querySelector()` calls with the new `useRef` hook for type-safe DOM element access
- Moved `constructed` lifecycle logic into `render`, as `constructed` has been removed in v12
- Replaced `Router` with `NestedRouter` and adopted nested route object definitions
- Replaced `Route` type with `NestedRoute` for route definitions

### Type-safe routing with `navigateToRoute`

Refactored `navigateToRoute` to accept typed route paths (`AppPaths`) and infer required URL parameters from the path pattern, replacing the previous untyped `Route` object approach. Added support for `replace` navigation via `NavigateOptions`.

### Consolidated route definitions into `app-routes.tsx`

Replaced 12 separate route files (`admin-routes`, `ai-routes`, `auth-routes`, `chat-routes`, `dashboard-routes`, `entity-routes`, `file-browser-routes`, `iot-routes`, `logging-routes`, `movie-routes`, `user-routes`, `route-animations`) with a single `app-routes.tsx` file using Shades v12 nested route objects.

- Removed `Separator` component (superseded by `@furystack/shades-common-components` v12)
- Migrated `MonacoEditor` from `constructed` lifecycle to `render` with `useRef` and deferred initialization via `queueMicrotask`

## 🧪 Tests

- Updated component tests to account for Shades v12 API changes (`useRef`, removed `constructed`)

## ⬆️ Dependencies

- Upgraded `@furystack/shades` from ^11.1.0 to ^12.0.0
- Upgraded `@furystack/shades-common-components` from ^11.0.0 to ^12.0.0
- Upgraded `@furystack/shades-lottie` from ^7.0.36 to ^8.0.0
- Bumped `@furystack/cache` from ^5.0.28 to ^5.0.29
- Bumped `@furystack/core` from ^15.0.34 to ^15.0.35
- Bumped `@furystack/inject` from ^12.0.28 to ^12.0.29
- Bumped `@furystack/logging` from ^8.0.28 to ^8.0.29
- Bumped `@furystack/rest` from ^8.0.34 to ^8.0.35
- Bumped `@furystack/rest-client-fetch` from ^8.0.34 to ^8.0.35
- Bumped `@furystack/utils` to ^8.1.9
- Bumped `@types/node` from ^25.2.0 to ^25.2.2
- Bumped `video.js` from 8.23.6 to 8.23.7
32 changes: 32 additions & 0 deletions .yarn/changelogs/pi-rat.1ad48de1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<!-- version-type: patch -->

# pi-rat

<!--
FORMATTING GUIDE:

### Detailed Entry (appears first when merging)

Use h3 (###) and below for detailed entries with paragraphs, code examples, and lists.

### Simple List Items

- Simple changes can be added as list items
- They are collected together at the bottom of each section

TIP: When multiple changelog drafts are merged, heading-based entries
appear before simple list items within each section.
-->

## 🧪 Tests

- Updated E2E test locator in `app-config.spec.ts` from `data-toggle-visibility` attribute to role-based selector for the visibility toggle button

## ⬆️ Dependencies

- Upgraded `eslint` from ^9.39.2 to ^10.0.0
- Upgraded `@eslint/js` from ^9.39.2 to ^10.0.1
- Bumped `@playwright/test` from ^1.58.1 to ^1.58.2
- Bumped `@types/node` from ^25.2.0 to ^25.2.2
- Bumped `eslint-plugin-jsdoc` from ^62.5.0 to ^62.5.4
- Bumped `typescript-eslint` from ^8.54.0 to ^8.55.0
33 changes: 33 additions & 0 deletions .yarn/changelogs/service.1ad48de1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!-- version-type: patch -->

# service

<!--
FORMATTING GUIDE:

### Detailed Entry (appears first when merging)

Use h3 (###) and below for detailed entries with paragraphs, code examples, and lists.

### Simple List Items

- Simple changes can be added as list items
- They are collected together at the bottom of each section

TIP: When multiple changelog drafts are merged, heading-based entries
appear before simple list items within each section.
-->

## ⬆️ Dependencies

- Bumped `@furystack/cache` from ^5.0.28 to ^5.0.29
- Bumped `@furystack/core` from ^15.0.34 to ^15.0.35
- Bumped `@furystack/inject` from ^12.0.28 to ^12.0.29
- Bumped `@furystack/logging` from ^8.0.28 to ^8.0.29
- Bumped `@furystack/repository` from ^10.0.34 to ^10.0.35
- Bumped `@furystack/rest` from ^8.0.34 to ^8.0.35
- Bumped `@furystack/rest-service` from ^11.0.2 to ^11.0.3
- Bumped `@furystack/security` from ^6.0.34 to ^6.0.35
- Bumped `@furystack/sequelize-store` from ^6.0.35 to ^6.0.36
- Bumped `@furystack/websocket-api` from ^13.1.6 to ^13.1.7
- Bumped `@types/node` from ^25.2.0 to ^25.2.2
5 changes: 5 additions & 0 deletions .yarn/versions/1ad48de1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
releases:
common: patch
frontend: patch
pi-rat: patch
service: patch
8 changes: 4 additions & 4 deletions common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
"create-schemas": "node ./dist/bin/create-schemas.js"
},
"devDependencies": {
"@types/node": "^25.2.0",
"ts-json-schema-generator": "^2.4.0",
"@types/node": "^25.2.2",
"ts-json-schema-generator": "^2.5.0",
"vitest": "^4.0.18"
},
"dependencies": {
"@furystack/core": "^15.0.34",
"@furystack/rest": "^8.0.34",
"@furystack/core": "^15.0.35",
"@furystack/rest": "^8.0.35",
"ollama": "^0.6.3"
}
}
6 changes: 2 additions & 4 deletions e2e/app-config.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,15 @@ test.describe('App Configuration Settings', () => {
// ============================================
// STEP 3: Test API key visibility toggle
// ============================================
const toggleButton = omdbPage.locator('[data-toggle-visibility]')

// Initially password should be hidden
await expect(apiKeyInput).toHaveAttribute('type', 'password')

// Click toggle to show
await toggleButton.click()
await omdbPage.getByRole('button', { name: /show/i }).click()
await expect(apiKeyInput).toHaveAttribute('type', 'text')

// Click toggle to hide again
await toggleButton.click()
await omdbPage.getByRole('button', { name: /hide/i }).click()
await expect(apiKeyInput).toHaveAttribute('type', 'password')

// ============================================
Expand Down
22 changes: 11 additions & 11 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@
"license": "ISC",
"devDependencies": {
"@codecov/vite-plugin": "^1.9.1",
"@furystack/rest": "^8.0.34",
"@furystack/rest": "^8.0.35",
"@types/marked": "^6.0.0",
"typescript": "^5.9.3",
"vite": "^7.3.1"
},
"dependencies": {
"@furystack/cache": "^5.0.28",
"@furystack/core": "^15.0.34",
"@furystack/inject": "^12.0.28",
"@furystack/logging": "^8.0.28",
"@furystack/rest-client-fetch": "^8.0.34",
"@furystack/shades": "^11.1.0",
"@furystack/shades-common-components": "^11.0.0",
"@furystack/shades-lottie": "^7.0.36",
"@furystack/cache": "^5.0.29",
"@furystack/core": "^15.0.35",
"@furystack/inject": "^12.0.29",
"@furystack/logging": "^8.0.29",
"@furystack/rest-client-fetch": "^8.0.35",
"@furystack/shades": "^12.0.0",
"@furystack/shades-common-components": "^12.0.0",
"@furystack/shades-lottie": "^8.0.0",
"@furystack/utils": "^8.1.9",
"@types/node": "^25.2.0",
"@types/node": "^25.2.2",
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-search": "^0.16.0",
"@xterm/addon-web-links": "^0.12.0",
Expand All @@ -39,6 +39,6 @@
"ollama": "^0.6.3",
"path-to-regexp": "^8.3.0",
"semaphore-async-await": "^1.5.1",
"video.js": "8.23.6"
"video.js": "8.23.7"
}
}
Loading
Loading