Conversation
## Summary - When user initiates update check with internet blocked, shows prompt to temporarily allow internet - On allow: unblocks internet, proceeds with update, re-blocks automatically after completion/failure - Uses `system.internetStatus` and `system.setInternetAccess` APIs - Internet re-blocked in both success and failure paths via ref tracking Closes #306 ## Test plan - [ ] With internet blocked: press update → verify prompt appears - [ ] Press "Allow & Update" → verify internet unblocks, update proceeds, internet re-blocks - [ ] Press Cancel → verify no changes - [ ] With internet already allowed: press update → verify normal flow (no prompt) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## New Features * Update process now detects when internet access is blocked before proceeding * Displays a prompt asking users to allow internet access when needed * Added "Allow & Update" button for users to grant temporary internet access * Automatically re-restricts internet access after the update completes <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - New auto-off watcher service that monitors sleep_records for bed-exit events and powers off after configurable timeout - Per-side countdown timers with reset on re-entry, suppression during run-once sessions - Web UI: toggle + duration picker (5–120 min) in side settings form - Wired into server startup/shutdown lifecycle Closes #257 ## Test plan - [ ] Enable auto-off with 5 min timeout — verify side powers off after no presence - [ ] Verify timer resets on bed re-entry - [ ] Verify auto-off suppressed during active run-once session - [ ] Verify duration picker UI renders correctly <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Per-side automatic power-off: enable/disable auto-off per side with configurable timeout in Settings (toggle + duration picker). * Settings apply immediately: changes to auto-off or timeout take effect without needing a restart. * Auto-off respects active use: timers pause/cancel when a side is powered on or detects return to bed, reducing unwanted shutdowns. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…2.0 (#296) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [trpc-to-openapi](https://redirect.github.com/mcampa/trpc-to-openapi) | [`3.1.0` → `3.2.0`](https://renovatebot.com/diffs/npm/trpc-to-openapi/3.1.0/3.2.0) |  |  | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuOTQuMSIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtYW51YWwiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ency conventional-changelog-conventionalcommits to v9.3.1 (#291) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [conventional-changelog-conventionalcommits](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-conventionalcommits#readme) ([source](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/HEAD/packages/conventional-changelog-conventionalcommits)) | [`9.1.0` → `9.3.1`](https://renovatebot.com/diffs/npm/conventional-changelog-conventionalcommits/9.1.0/9.3.1) |  |  | --- ### Release Notes <details> <summary>conventional-changelog/conventional-changelog (conventional-changelog-conventionalcommits)</summary> ### [`v9.3.1`](https://redirect.github.com/conventional-changelog/conventional-changelog/blob/HEAD/packages/conventional-changelog-conventionalcommits/CHANGELOG.md#931-2026-03-29) [Compare Source](https://redirect.github.com/conventional-changelog/conventional-changelog/compare/conventional-changelog-conventionalcommits-v9.3.0...conventional-changelog-conventionalcommits-v9.3.1) ##### Bug Fixes - skip mention linkification inside inline code ([#​1444](https://redirect.github.com/conventional-changelog/conventional-changelog/issues/1444)) ([c598bf1](https://redirect.github.com/conventional-changelog/conventional-changelog/commit/c598bf1dd8fe31fc3ce3ec561ac8b2b77cee3a02)) ### [`v9.3.0`](https://redirect.github.com/conventional-changelog/conventional-changelog/blob/HEAD/packages/conventional-changelog-conventionalcommits/CHANGELOG.md#930-2026-03-04) [Compare Source](https://redirect.github.com/conventional-changelog/conventional-changelog/compare/conventional-changelog-conventionalcommits-v9.2.0...conventional-changelog-conventionalcommits-v9.3.0) ##### Features - inline hbs templates in code as strings ([#​1434](https://redirect.github.com/conventional-changelog/conventional-changelog/issues/1434)) ([0d5a4a6](https://redirect.github.com/conventional-changelog/conventional-changelog/commit/0d5a4a68b0ba79a3c97793395c6549af02272325)) ### [`v9.2.0`](https://redirect.github.com/conventional-changelog/conventional-changelog/blob/HEAD/packages/conventional-changelog-conventionalcommits/CHANGELOG.md#920-2026-03-01) [Compare Source](https://redirect.github.com/conventional-changelog/conventional-changelog/compare/conventional-changelog-conventionalcommits-v9.1.0...conventional-changelog-conventionalcommits-v9.2.0) ##### Features - align newline formatting across presets ([#​1431](https://redirect.github.com/conventional-changelog/conventional-changelog/issues/1431)) ([b0721e1](https://redirect.github.com/conventional-changelog/conventional-changelog/commit/b0721e1d6c30b03e54d4fa5e271ecb67b5ae7ebe)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuOTQuMSIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtYW51YWwiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
….0 (#290) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [better-sqlite3](https://redirect.github.com/WiseLibs/better-sqlite3) | [`12.6.2` → `12.8.0`](https://renovatebot.com/diffs/npm/better-sqlite3/12.6.2/12.8.0) |  |  | --- ### Release Notes <details> <summary>WiseLibs/better-sqlite3 (better-sqlite3)</summary> ### [`v12.8.0`](https://redirect.github.com/WiseLibs/better-sqlite3/releases/tag/v12.8.0) [Compare Source](https://redirect.github.com/WiseLibs/better-sqlite3/compare/v12.6.2...v12.8.0) #### What's Changed - Readme: requires Node.js v20 or later by [@​Prinzhorn](https://redirect.github.com/Prinzhorn) in [#​1443](https://redirect.github.com/WiseLibs/better-sqlite3/pull/1443) - Update SQLite to version 3.51.3 in [#​1460](https://redirect.github.com/WiseLibs/better-sqlite3/pull/1460) - fix: use HolderV2() for PropertyCallbackInfo on V8 >= 12.5 by [@​tstone-1](https://redirect.github.com/tstone-1) in [#​1459](https://redirect.github.com/WiseLibs/better-sqlite3/pull/1459) #### New Contributors - [@​tstone-1](https://redirect.github.com/tstone-1) made their first contribution in [#​1459](https://redirect.github.com/WiseLibs/better-sqlite3/pull/1459) #### Why SQLite v3.51.3 instead of v3.52.0 From the SQLite team: > Some important issues have been found with version 3.52.0. In order to give us time to deal with those issues, we plan to withdraw the 3.52.0 release. In its place, we will put up a new 3.51.3 patch release that includes a fix for the recently discovered WAL-reset bug as well as other patches. This will happen probably within about the next twelve hours. > > Hence, if you were planning to upgrade to 3.52.0 tomorrow (Friday, 2026-03-14), perhaps it would be better to wait a day or so for 3.51.3. > > At some point we will do version 3.52.1 which will hopefully resolve the issues that have arisen with the 3.52.0 release. **Full Changelog**: <WiseLibs/better-sqlite3@v12.7.1...v12.8.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuOTQuMSIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtYW51YWwiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Rule 3 matched both minor and major update types with automerge: false, overriding rule 2's automerge: true for minor updates. This caused all minor dependency updates to create PRs instead of auto-merging.
Delays auto-merging patch/minor updates until 3 days after publish. Gives the community time to catch supply chain attacks on newly published versions before they're auto-merged.
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@eslint/css](https://redirect.github.com/eslint/css) | [`1.0.0` → `1.1.0`](https://renovatebot.com/diffs/npm/@eslint%2fcss/1.0.0/1.1.0) |  |  | --- ### Release Notes <details> <summary>eslint/css (@​eslint/css)</summary> ### [`v1.1.0`](https://redirect.github.com/eslint/css/blob/HEAD/CHANGELOG.md#110-2026-03-29) [Compare Source](https://redirect.github.com/eslint/css/compare/058acc848a566a8005259496ddbccb97344e8a62...a131cbadc4005b4b31e296a25b6b23f0118dbb47) ##### Features - add CSS unit baseline checking ([#​403](https://redirect.github.com/eslint/css/issues/403)) ([51f24f4](https://redirect.github.com/eslint/css/commit/51f24f494860ccd9852f876040de8bcf86013e34)) ##### Bug Fixes - correctly extract baseline support for CSS functions ([#​401](https://redirect.github.com/eslint/css/issues/401)) ([a1b5c6f](https://redirect.github.com/eslint/css/commit/a1b5c6f5e96d2b63d1804f686bfe30180d483966)) - update baseline data ([#​399](https://redirect.github.com/eslint/css/issues/399)) ([235f451](https://redirect.github.com/eslint/css/commit/235f451d4ce4af1467ad0a0413ef3b2cf006527d)) - update baseline data ([#​405](https://redirect.github.com/eslint/css/issues/405)) ([616558e](https://redirect.github.com/eslint/css/commit/616558e87e6cbc1e36cbaa8b13e498203eab2fc2)) - update baseline data ([#​412](https://redirect.github.com/eslint/css/issues/412)) ([6f8c083](https://redirect.github.com/eslint/css/commit/6f8c083765e827dbec82b41b3feedb76be1cb7bc)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1pbm9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…query to v5.96.1 (#310) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tanstack/react-query](https://tanstack.com/query) ([source](https://redirect.github.com/TanStack/query/tree/HEAD/packages/react-query)) | [`5.95.2` → `5.96.1`](https://renovatebot.com/diffs/npm/@tanstack%2freact-query/5.95.2/5.96.1) |  |  | --- ### Release Notes <details> <summary>TanStack/query (@​tanstack/react-query)</summary> ### [`v5.96.1`](https://redirect.github.com/TanStack/query/blob/HEAD/packages/react-query/CHANGELOG.md#5961) [Compare Source](https://redirect.github.com/TanStack/query/compare/@tanstack/react-query@5.96.0...@tanstack/react-query@5.96.1) ##### Patch Changes - Updated dependencies \[]: - [@​tanstack/query-core](https://redirect.github.com/tanstack/query-core)@​5.96.1 ### [`v5.96.0`](https://redirect.github.com/TanStack/query/blob/HEAD/packages/react-query/CHANGELOG.md#5960) [Compare Source](https://redirect.github.com/TanStack/query/compare/@tanstack/react-query@5.95.2...@tanstack/react-query@5.96.0) ##### Patch Changes - Updated dependencies \[]: - [@​tanstack/query-core](https://redirect.github.com/tanstack/query-core)@​5.96.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1pbm9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…act to v5.2.0 (#282) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@vitejs/plugin-react](https://redirect.github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme) ([source](https://redirect.github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react)) | [`5.1.4` → `5.2.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react/5.1.4/5.2.0) |  |  | --- ### Release Notes <details> <summary>vitejs/vite-plugin-react (@​vitejs/plugin-react)</summary> ### [`v5.2.0`](https://redirect.github.com/vitejs/vite-plugin-react/compare/f066114c3e6bf18f5209ff3d3ef6bf1ab46d3866...fda3a86095556b49ae3c995eb57a30d4e0b8fa8d) [Compare Source](https://redirect.github.com/vitejs/vite-plugin-react/compare/f066114c3e6bf18f5209ff3d3ef6bf1ab46d3866...fda3a86095556b49ae3c995eb57a30d4e0b8fa8d) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTAyLjciLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [cbor2](https://redirect.github.com/agronholm/cbor2) ([changelog](https://cbor2.readthedocs.io/en/latest/versionhistory.html)) | `==5.8.0` → `==5.9.0` |  |  | --- ### Release Notes <details> <summary>agronholm/cbor2 (cbor2)</summary> ### [`v5.9.0`](https://redirect.github.com/agronholm/cbor2/releases/tag/5.9.0) [Compare Source](https://redirect.github.com/agronholm/cbor2/compare/5.8.0...5.9.0) - Added the `max_depth` decoder parameter to limit the maximum allowed nesting level of containers, with a default value of 400 levels (CVE-2026-26209) - Changed the default `read_size` from 4096 to 1 for backwards compatibility. The buffered reads introduced in 5.8.0 could cause issues when code needs to access the stream position after decoding. Users can opt-in to faster decoding by passing `read_size=4096` when they don't need to access the stream directly after decoding. Added a direct read path for `read_size=1` to avoid buffer management overhead. ([#​275](https://redirect.github.com/agronholm/cbor2/pull/275); PR by [@​andreer](https://redirect.github.com/andreer)) - Fixed C encoder not respecting string referencing when encoding string-type datetimes (tag 0) ([#​254](https://redirect.github.com/agronholm/cbor2/issues/254)) - Fixed a missed check for an exception in the C implementation of `CBOREncoder.encode_shared()` ([#​287](https://redirect.github.com/agronholm/cbor2/issues/287)) - Fixed two reference/memory leaks in the C extension's long string decoder ([#​290](https://redirect.github.com/agronholm/cbor2/pull/290) PR by [@​killiancowan82](https://redirect.github.com/killiancowan82)) - Fixed C decoder ignoring the `str_errors` setting when decoding strings, and improved string decoding performance by using stack allocation for small strings and eliminating unnecessary conditionals. Benchmarks show 9-17% faster deserialization. ([#​255](https://redirect.github.com/agronholm/cbor2/issues/255); PR by [@​andreer](https://redirect.github.com/andreer)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTAyLjciLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@trpc/client](https://trpc.io) ([source](https://redirect.github.com/trpc/trpc/tree/HEAD/packages/client)) | [`11.10.0` → `11.16.0`](https://renovatebot.com/diffs/npm/@trpc%2fclient/11.10.0/11.16.0) |  |  | | [@trpc/next](https://trpc.io) ([source](https://redirect.github.com/trpc/trpc/tree/HEAD/packages/next)) | [`11.10.0` → `11.16.0`](https://renovatebot.com/diffs/npm/@trpc%2fnext/11.10.0/11.16.0) |  |  | | [@trpc/react-query](https://trpc.io) ([source](https://redirect.github.com/trpc/trpc/tree/HEAD/packages/react)) | [`11.10.0` → `11.16.0`](https://renovatebot.com/diffs/npm/@trpc%2freact-query/11.10.0/11.16.0) |  |  | | [@trpc/server](https://trpc.io) ([source](https://redirect.github.com/trpc/trpc/tree/HEAD/packages/server)) | [`11.10.0` → `11.16.0`](https://renovatebot.com/diffs/npm/@trpc%2fserver/11.10.0/11.16.0) |  |  | --- ### Release Notes <details> <summary>trpc/trpc (@​trpc/client)</summary> ### [`v11.16.0`](https://redirect.github.com/trpc/trpc/releases/tag/v11.16.0) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.15.2...v11.16.0) #### What's Changed - feat: OpenAPI Cyclic Types support by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7283](https://redirect.github.com/trpc/trpc/pull/7283) - chore: Review stale skills (manual) by [@​github-actions](https://redirect.github.com/github-actions)\[bot] in [#​7294](https://redirect.github.com/trpc/trpc/pull/7294) ##### `@trpc/openapi` 11.16.0-alpha - Drops the type depth limit of 20, and significantly hardens cyclic-type support for both inference and Zod - Support zod.lazy via Standard Schema fallback - Strip symbols from output (no more `__@​asyncIterator@5456` symbols in output) - Add more comprehensive types for the OpenAPI doc from the official package (now a dependency) and apply some patches to these types because they're slightly outdated - Fixes several issues with gathering schema descriptions, such as consuming jsdoc comments from node\_modules types #### New Contributors - [@​github-actions](https://redirect.github.com/github-actions)\[bot] made their first contribution in [#​7294](https://redirect.github.com/trpc/trpc/pull/7294) **Full Changelog**: <trpc/trpc@v11.15.1...v11.16.0> ### [`v11.15.2`](https://redirect.github.com/trpc/trpc/compare/v11.15.1...v11.15.2) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.15.1...v11.15.2) ### [`v11.15.1`](https://redirect.github.com/trpc/trpc/releases/tag/v11.15.1) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.15.0...v11.15.1) ##### What's Changed - fix(www): render sponsor links in static HTML for SEO by [@​shtefcs](https://redirect.github.com/shtefcs) in [#​7285](https://redirect.github.com/trpc/trpc/pull/7285) - fix: error handling with Node VM by [@​znikola](https://redirect.github.com/znikola) in [#​7280](https://redirect.github.com/trpc/trpc/pull/7280) ##### New Contributors - [@​shtefcs](https://redirect.github.com/shtefcs) made their first contribution in [#​7285](https://redirect.github.com/trpc/trpc/pull/7285) - [@​znikola](https://redirect.github.com/znikola) made their first contribution in [#​7280](https://redirect.github.com/trpc/trpc/pull/7280) **Full Changelog**: <trpc/trpc@v11.15.0...v11.15.1> ### [`v11.15.0`](https://redirect.github.com/trpc/trpc/releases/tag/v11.15.0) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.14.1...v11.15.0) #### What's Changed - docs: empty string fallback on pathExtractor by [@​dorukozerr](https://redirect.github.com/dorukozerr) in [#​7270](https://redirect.github.com/trpc/trpc/pull/7270) - feat(server): max batch size by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7191](https://redirect.github.com/trpc/trpc/pull/7191) #### New Contributors - [@​dorukozerr](https://redirect.github.com/dorukozerr) made their first contribution in [#​7270](https://redirect.github.com/trpc/trpc/pull/7270) **Full Changelog**: <trpc/trpc@v11.14.1...v11.15.0> ### [`v11.14.1`](https://redirect.github.com/trpc/trpc/releases/tag/v11.14.1) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.14.0...v11.14.1) ##### What's Changed - feat: Tanstack Intent Skills by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7252](https://redirect.github.com/trpc/trpc/pull/7252) **Full Changelog**: <trpc/trpc@v11.14.0...v11.14.1> ### [`v11.14.0`](https://redirect.github.com/trpc/trpc/releases/tag/v11.14.0) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.13.4...v11.14.0) #### What's Changed - fix(server): use correct call index in batch stream error handling by [@​karesansui-u](https://redirect.github.com/karesansui-u) in [#​7262](https://redirect.github.com/trpc/trpc/pull/7262) - fix: preserve buffered chunks on stream close in httpBatchStreamLink by [@​luinbytes](https://redirect.github.com/luinbytes) in [#​7233](https://redirect.github.com/trpc/trpc/pull/7233) #### New Contributors - [@​karesansui-u](https://redirect.github.com/karesansui-u) made their first contribution in [#​7262](https://redirect.github.com/trpc/trpc/pull/7262) - [@​luinbytes](https://redirect.github.com/luinbytes) made their first contribution in [#​7233](https://redirect.github.com/trpc/trpc/pull/7233) **Full Changelog**: <trpc/trpc@v11.13.4...v11.14.0> ### [`v11.13.4`](https://redirect.github.com/trpc/trpc/compare/v11.13.3...v11.13.4) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.13.3...v11.13.4) ### [`v11.13.3`](https://redirect.github.com/trpc/trpc/compare/v11.13.2...v11.13.3) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.13.2...v11.13.3) ### [`v11.13.2`](https://redirect.github.com/trpc/trpc/releases/tag/v11.13.2) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.13.1...v11.13.2) ##### What's Changed - fix: correct typo 'commitedFiles' → 'committedFiles' by [@​mitre88](https://redirect.github.com/mitre88) in [#​7221](https://redirect.github.com/trpc/trpc/pull/7221) - feat(docs): revamp docs content for 2026, more framework agnostic, improved Next.js docs by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7193](https://redirect.github.com/trpc/trpc/pull/7193) - feat: Support OpenAPI json generation for any tRPC appRouter by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7231](https://redirect.github.com/trpc/trpc/pull/7231) - feat: Fix some OpenAPI AI feedback by [@​Nick-Lucas](https://redirect.github.com/Nick-Lucas) in [#​7242](https://redirect.github.com/trpc/trpc/pull/7242) - feat: add `streamHeader` option to httpBatchStreamLink by [@​anatolzak](https://redirect.github.com/anatolzak) in [#​7241](https://redirect.github.com/trpc/trpc/pull/7241) ##### New Contributors - [@​mitre88](https://redirect.github.com/mitre88) made their first contribution in [#​7221](https://redirect.github.com/trpc/trpc/pull/7221) - [@​pendant-k](https://redirect.github.com/pendant-k) made their first contribution in [#​7236](https://redirect.github.com/trpc/trpc/pull/7236) **Full Changelog**: <trpc/trpc@v11.12.0...v11.13.2> ### [`v11.13.1`](https://redirect.github.com/trpc/trpc/compare/v11.13.0...v11.13.1) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.13.0...v11.13.1) ### [`v11.13.0`](https://redirect.github.com/trpc/trpc/compare/v11.12.1...v11.13.0) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.12.1...v11.13.0) ### [`v11.12.1`](https://redirect.github.com/trpc/trpc/compare/v11.12.0...v11.12.1) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.12.0...v11.12.1) ### [`v11.12.0`](https://redirect.github.com/trpc/trpc/compare/e96639e69e3469b761e83afc967d3d45e201876c...8a144e9005ec9177b41aefee914d0f5b6c471aa9) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.11.0...v11.12.0) ### [`v11.11.0`](https://redirect.github.com/trpc/trpc/releases/tag/v11.11.0) [Compare Source](https://redirect.github.com/trpc/trpc/compare/v11.10.0...v11.11.0) ##### What's Changed - docs: fix zod v4 zAsyncIterable generic order in subscriptions guide by [@​aviu16](https://redirect.github.com/aviu16) in [#​7174](https://redirect.github.com/trpc/trpc/pull/7174) - Update context documentation to remove database reference by [@​clicktodev](https://redirect.github.com/clicktodev) in [#​7188](https://redirect.github.com/trpc/trpc/pull/7188) - docs: add note on tradeoffs for large clients in createContextInner by [@​clicktodev](https://redirect.github.com/clicktodev) in [#​7192](https://redirect.github.com/trpc/trpc/pull/7192) - feat(client): Export types SubscriptionResolver and ResolverDef by [@​cooolbros](https://redirect.github.com/cooolbros) in [#​6803](https://redirect.github.com/trpc/trpc/pull/6803) ##### New Contributors - [@​aviu16](https://redirect.github.com/aviu16) made their first contribution in [#​7174](https://redirect.github.com/trpc/trpc/pull/7174) - [@​cooolbros](https://redirect.github.com/cooolbros) made their first contribution in [#​6803](https://redirect.github.com/trpc/trpc/pull/6803) **Full Changelog**: <trpc/trpc@v11.10.0...v11.11.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTAyLjciLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [eslint-config-next](https://nextjs.org/docs/app/api-reference/config/eslint) ([source](https://redirect.github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`16.1.6` → `16.2.1`](https://renovatebot.com/diffs/npm/eslint-config-next/16.1.6/16.2.1) |  |  | | [next](https://nextjs.org) ([source](https://redirect.github.com/vercel/next.js)) | [`16.1.6` → `16.2.1`](https://renovatebot.com/diffs/npm/next/16.1.6/16.2.1) |  |  | --- ### Release Notes <details> <summary>vercel/next.js (eslint-config-next)</summary> ### [`v16.2.1`](https://redirect.github.com/vercel/next.js/releases/tag/v16.2.1) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.0...v16.2.1) > \[!NOTE] > This release is backporting bug fixes. It does **not** include all pending features/changes on canary. ##### Core Changes - docs: post release amends ([#​91715](https://redirect.github.com/vercel/next.js/issues/91715)) - docs: fix broken Activity Patterns demo link in preserving UI state guide ([#​91698](https://redirect.github.com/vercel/next.js/issues/91698)) - Fix adapter outputs for dynamic metadata routes ([#​91680](https://redirect.github.com/vercel/next.js/issues/91680)) - Turbopack: fix webpack loader runner layer ([#​91727](https://redirect.github.com/vercel/next.js/issues/91727)) - Fix server actions in standalone mode with `cacheComponents` ([#​91711](https://redirect.github.com/vercel/next.js/issues/91711)) - turbo-persistence: remove Unmergeable mmap advice ([#​91713](https://redirect.github.com/vercel/next.js/issues/91713)) - Fix layout segment optimization: move app-page imports to server-utility transition ([#​91701](https://redirect.github.com/vercel/next.js/issues/91701)) - Turbopack: lazy require metadata and handle TLA ([#​91705](https://redirect.github.com/vercel/next.js/issues/91705)) - \[turbopack] Respect `{eval:true}` in worker\_threads constructors ([#​91666](https://redirect.github.com/vercel/next.js/issues/91666)) ##### Credits Huge thanks to [@​icyJoseph](https://redirect.github.com/icyJoseph), [@​abhishekmardiya](https://redirect.github.com/abhishekmardiya), [@​ijjk](https://redirect.github.com/ijjk), [@​mischnic](https://redirect.github.com/mischnic), [@​unstubbable](https://redirect.github.com/unstubbable), [@​sokra](https://redirect.github.com/sokra), and [@​lukesandberg](https://redirect.github.com/lukesandberg) for helping! ### [`v16.2.0`](https://redirect.github.com/vercel/next.js/compare/v16.1.7...c5c94dffbf084e66b172a9c6ff23d80c24973764) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.1.7...v16.2.0) ### [`v16.1.7`](https://redirect.github.com/vercel/next.js/compare/v16.1.6...v16.1.7) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.1.6...v16.1.7) </details> <details> <summary>vercel/next.js (next)</summary> ### [`v16.2.1`](https://redirect.github.com/vercel/next.js/compare/v16.2.0...v16.2.1) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.0...v16.2.1) ### [`v16.2.0`](https://redirect.github.com/vercel/next.js/compare/v16.1.7...c5c94dffbf084e66b172a9c6ff23d80c24973764) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.1.7...v16.2.0) ### [`v16.1.7`](https://redirect.github.com/vercel/next.js/compare/v16.1.6...v16.1.7) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.1.6...v16.1.7) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTAyLjciLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Add fast pre-commit hook (lint-staged: eslint --fix on staged files) - Add thorough pre-push hook (tsc, eslint, drizzle-kit check, vitest related) - Use `.githooks/` with `core.hooksPath`, activated via `pnpm prepare` - Fix all 105 ESLint errors across 39 files to pass pre-push validation ## Test plan - [x] `pnpm lint` passes with 0 errors - [x] `pnpm tsc` passes with 0 errors - [x] Pre-commit hook runs lint-staged on commit - [x] Pre-push hook runs full validation before push - [ ] Verify `pnpm install` activates hooks via `prepare` script on fresh clone 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added git-based code quality checks that run automatically on commits and before pushing changes. * **Bug Fixes** * Improved page navigation responsiveness with client-side routing. * **Refactor** * Enhanced type safety by replacing generic types with explicit TypeScript interfaces. * Optimized component rendering performance through improved dependency tracking and memoization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…312) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pnpm/action-setup](https://redirect.github.com/pnpm/action-setup) | action | major | `v4` → `v5` | --- ### Release Notes <details> <summary>pnpm/action-setup (pnpm/action-setup)</summary> ### [`v5`](https://redirect.github.com/pnpm/action-setup/compare/v4...v5) [Compare Source](https://redirect.github.com/pnpm/action-setup/compare/v4...v5) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1ham9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… v8.57.2 (#316) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.56.1` → `8.57.2`](https://renovatebot.com/diffs/npm/typescript-eslint/8.56.1/8.57.2) |  |  | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary> ### [`v8.57.2`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8572-2026-03-23) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.57.1...v8.57.2) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.2) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.57.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8571-2026-03-16) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.57.0...v8.57.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.57.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8570-2026-03-09) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.56.1...v8.57.0) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.57.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… v8.58.0 (#317) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.57.2` → `8.58.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.57.2/8.58.0) |  |  | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary> ### [`v8.58.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8580-2026-03-30) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.57.2...v8.58.0) ##### 🚀 Features - support TypeScript 6 ([#​12124](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12124)) ##### ❤️ Thank You - Evyatar Daud [@​StyleShit](https://redirect.github.com/StyleShit) See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.0) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [ws](https://redirect.github.com/websockets/ws) | [`8.19.0` → `8.20.0`](https://renovatebot.com/diffs/npm/ws/8.19.0/8.20.0) |  |  | --- ### Release Notes <details> <summary>websockets/ws (ws)</summary> ### [`v8.20.0`](https://redirect.github.com/websockets/ws/releases/tag/8.20.0) [Compare Source](https://redirect.github.com/websockets/ws/compare/8.19.0...8.20.0) ### Features - Added exports for the `PerMessageDeflate` class and utilities for the `Sec-WebSocket-Extensions` and `Sec-WebSocket-Protocol` headers ([`d3503c1`](https://redirect.github.com/websockets/ws/commit/d3503c1f)). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - `sp-freesleep` now disables `sleepypod.service` and enables `free-sleep.service` / `free-sleep-stream.service` so the choice survives reboots - `sp-sleepypod` does the reverse — disables free-sleep services and re-enables sleepypod Previously both commands only stopped/started services at runtime without toggling `systemctl enable/disable`, so every reboot reverted to sleepypod regardless of which mode the user selected. Fixes #334 ## Test plan - Run `sp-freesleep`, verify free-sleep is active - Run `systemctl is-enabled sleepypod.service` → should be `disabled` - Run `systemctl is-enabled free-sleep.service` → should be `enabled` - Reboot pod → free-sleep should still be running - Run `sp-sleepypod`, verify sleepypod is active and enabled states are reversed - Reboot pod → sleepypod should still be running
## Summary - **DAC_SOCK_PATH** was being set to `DAC_SOCKET=/deviceinfo/dac.sock` instead of just the path, because the grep pattern captured the variable assignment prefix from `frank.sh`. Switched to `sed` extraction and added path validation. - **Avahi service file** write fails at runtime because `ProtectSystem=strict` makes `/etc` read-only. Moved the write to `scripts/install` (runs as root before systemd sandboxing) and made the runtime code a graceful fallback. ## Test plan - [x] Verified on-device: DAC connects successfully after fix - [x] Verified on-device: Avahi error resolved (service file installed by installer) - [x] `sp-logs` shows clean startup with DAC connection and sensor stream 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added automatic network service advertisement during installation, enabling system discoverability with version and connectivity information. * **Bug Fixes** * Improved socket path detection with validation to gracefully handle unsupported configurations. * Enhanced error handling for read-only filesystem environments with clear recovery instructions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.577.0` → `^1.0.0`](https://renovatebot.com/diffs/npm/lucide-react/0.577.0/1.7.0) |  |  | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-react)</summary> ### [`v1.7.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.7.0): Version 1.7.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.6.0...1.7.0) #### What's Changed - fix(lucide-react): Fix dynamic imports by [@​ericfennis](https://redirect.github.com/ericfennis) in [#​4210](https://redirect.github.com/lucide-icons/lucide/pull/4210) - feat(icons): added `map-pin-search` icon by [@​TonySullivan](https://redirect.github.com/TonySullivan) in [#​4125](https://redirect.github.com/lucide-icons/lucide/pull/4125) #### New Contributors - [@​TonySullivan](https://redirect.github.com/TonySullivan) made their first contribution in [#​4125](https://redirect.github.com/lucide-icons/lucide/pull/4125) **Full Changelog**: <lucide-icons/lucide@1.6.0...1.7.0> ### [`v1.6.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.6.0): Version 1.6.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.5.0...1.6.0) #### What's Changed - feat(icons): added `radio-off` icon by [@​kongsgard](https://redirect.github.com/kongsgard) in [#​4138](https://redirect.github.com/lucide-icons/lucide/pull/4138) #### New Contributors - [@​kongsgard](https://redirect.github.com/kongsgard) made their first contribution in [#​4138](https://redirect.github.com/lucide-icons/lucide/pull/4138) **Full Changelog**: <lucide-icons/lucide@1.5.0...1.6.0> ### [`v1.5.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.5.0): Version 1.5.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.4.0...1.5.0) #### What's Changed - feat(icons): added `beef-off` icon by [@​jguddas](https://redirect.github.com/jguddas) in [#​3816](https://redirect.github.com/lucide-icons/lucide/pull/3816) **Full Changelog**: <lucide-icons/lucide@1.4.0...1.5.0> ### [`v1.4.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.4.0): Version 1.4.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.3.0...1.4.0) #### What's Changed - feat(icons): added `sport-shoe` icon by [@​Youya-ui](https://redirect.github.com/Youya-ui) in [#​3953](https://redirect.github.com/lucide-icons/lucide/pull/3953) #### New Contributors - [@​Youya-ui](https://redirect.github.com/Youya-ui) made their first contribution in [#​3953](https://redirect.github.com/lucide-icons/lucide/pull/3953) **Full Changelog**: <lucide-icons/lucide@1.3.0...1.4.0> ### [`v1.3.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.3.0): Version 1.3.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.2.0...1.3.0) #### What's Changed - feat(icons): added `shield-cog` icon by [@​KnarliX](https://redirect.github.com/KnarliX) in [#​3902](https://redirect.github.com/lucide-icons/lucide/pull/3902) #### New Contributors - [@​KnarliX](https://redirect.github.com/KnarliX) made their first contribution in [#​3902](https://redirect.github.com/lucide-icons/lucide/pull/3902) **Full Changelog**: <lucide-icons/lucide@1.2.0...1.3.0> ### [`v1.2.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.2.0): Version 1.2.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.1.0...1.2.0) #### What's Changed - feat(icons): added `line-style` icon by [@​dg-ac](https://redirect.github.com/dg-ac) in [#​4030](https://redirect.github.com/lucide-icons/lucide/pull/4030) #### New Contributors - [@​dg-ac](https://redirect.github.com/dg-ac) made their first contribution in [#​4030](https://redirect.github.com/lucide-icons/lucide/pull/4030) **Full Changelog**: <lucide-icons/lucide@1.1.0...1.2.0> ### [`v1.1.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.1.0): Version 1.1.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.0.1...1.1.0) #### What's Changed - fix(astro): add Astro v6 compatibility by [@​iseraph-dev](https://redirect.github.com/iseraph-dev) in [#​4135](https://redirect.github.com/lucide-icons/lucide/pull/4135) - fix(packages/lucide-react-native): add preserveModulesRoot to `lucide-react-native` by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [#​4199](https://redirect.github.com/lucide-icons/lucide/pull/4199) - fix(lucide-preact): add conditional exports map for ESM/CJS resolution by [@​coloneljade](https://redirect.github.com/coloneljade) in [#​4198](https://redirect.github.com/lucide-icons/lucide/pull/4198) - fix(scripts): correct import extension in optimizeStagedSvgs.mts by [@​jerv](https://redirect.github.com/jerv) in [#​4185](https://redirect.github.com/lucide-icons/lucide/pull/4185) - ci(ci.yml): Fix release flow by [@​ericfennis](https://redirect.github.com/ericfennis) in [#​4193](https://redirect.github.com/lucide-icons/lucide/pull/4193) - fix(icons): changed `arrow-big-*` icon by [@​jguddas](https://redirect.github.com/jguddas) in [#​3527](https://redirect.github.com/lucide-icons/lucide/pull/3527) - fix(icons): changed `signpost` icon by [@​jguddas](https://redirect.github.com/jguddas) in [#​3531](https://redirect.github.com/lucide-icons/lucide/pull/3531) - fix(github/workflows): revert release workflow & add --fail-if-no-match by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [#​4201](https://redirect.github.com/lucide-icons/lucide/pull/4201) - fix(icons): changed `circle-user-round` icon by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [#​4165](https://redirect.github.com/lucide-icons/lucide/pull/4165) - feat(icons): added `road` icon by [@​uibalint](https://redirect.github.com/uibalint) in [#​3014](https://redirect.github.com/lucide-icons/lucide/pull/3014) #### New Contributors - [@​iseraph-dev](https://redirect.github.com/iseraph-dev) made their first contribution in [#​4135](https://redirect.github.com/lucide-icons/lucide/pull/4135) - [@​coloneljade](https://redirect.github.com/coloneljade) made their first contribution in [#​4198](https://redirect.github.com/lucide-icons/lucide/pull/4198) - [@​jerv](https://redirect.github.com/jerv) made their first contribution in [#​4185](https://redirect.github.com/lucide-icons/lucide/pull/4185) - [@​uibalint](https://redirect.github.com/uibalint) made their first contribution in [#​3014](https://redirect.github.com/lucide-icons/lucide/pull/3014) **Full Changelog**: <lucide-icons/lucide@1.0.2...1.1.0> ### [`v1.0.1`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.0.1): Lucide V1 🚀 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/1.0.0...1.0.1) After years of work and dedication, Lucide Version 1 has been officially **released**!. This milestone marks a significant achievement in our journey to provide a comprehensive and versatile icon library for developers and designers alike. It's been quite a ride — especially over the past year. Lucide has grown to over 30 million downloads per week and is used by million of projects worldwide. This release is a testament to the hard work of our community and contributors who have helped shape Lucide into what it is today. Thank you to everyone who has supported us along the way. We couldn't have done this without you! #### What's New in Version 1? TLDR; - Removed brand icons, see our [brand logo statement](/brand-logo-statement) for more details. - Improved documentation, guides per framework. - Improved accessibility, `aria-hidden` is now set by default on icons. - Removed UMD build, only ESM and CJS now (exception for the [`lucide`](../guide/lucide/index.md) package). - Package rename from `lucide-vue-next` to `@lucide/vue`. - A modern, standalone implementation for Angular, `@lucide/angular` - Support for context providers in React, Vue, Svelte, and Solid. - Stable code points for Lucide font. - Support for shadow DOM in the `lucide` package. - Many bug fixes and improvements. See more at [Lucide Version 1](https://lucide.dev/guide/version-1) ### [`v1.0.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.0.0): Version 1.0.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.577.0...1.0.0) > \[!WARNING] > This release was published unintentionally. We've corrected this in [v1.0.1](https://redirect.github.com/lucide-icons/lucide/releases/tag/1.0.1), which should be used instead. #### What's Changed - docs(api): Update nitro to latest version by [@​ericfennis](https://redirect.github.com/ericfennis) in [#​4102](https://redirect.github.com/lucide-icons/lucide/pull/4102) - chore(icons): Add 'crypto' tag to bitcoin.json by [@​cwlowder](https://redirect.github.com/cwlowder) in [#​4120](https://redirect.github.com/lucide-icons/lucide/pull/4120) - fix(docs): fix incorrect Angular integration example for lucide-lab by [@​bhavberi](https://redirect.github.com/bhavberi) in [#​4101](https://redirect.github.com/lucide-icons/lucide/pull/4101) - fix(redirects): Fixes icon alias redirects on site by [@​ericfennis](https://redirect.github.com/ericfennis) in [#​4122](https://redirect.github.com/lucide-icons/lucide/pull/4122) - fix(icons): changed `school` icon by [@​jguddas](https://redirect.github.com/jguddas) in [#​4124](https://redirect.github.com/lucide-icons/lucide/pull/4124) - chore(deps): bump simple-git from 3.30.0 to 3.32.3 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​4133](https://redirect.github.com/lucide-icons/lucide/pull/4133) - docs(svelte): clarify Svelte 4 vs Svelte 5 Lucide packages by [@​bhavberi](https://redirect.github.com/bhavberi) in [#​4107](https://redirect.github.com/lucide-icons/lucide/pull/4107) - docs(site): add strapi lucide icons package by [@​shx08](https://redirect.github.com/shx08) in [#​4112](https://redirect.github.com/lucide-icons/lucide/pull/4112) - docs: add rule about consistent use of shapes by [@​jguddas](https://redirect.github.com/jguddas) in [#​3975](https://redirect.github.com/lucide-icons/lucide/pull/3975) - fix(icons): changed `gpu` icon by [@​jguddas](https://redirect.github.com/jguddas) in [#​4147](https://redirect.github.com/lucide-icons/lucide/pull/4147) - chore(deps-dev): bump h3 from 1.15.4 to 1.15.6 by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​4163](https://redirect.github.com/lucide-icons/lucide/pull/4163) - fix(lucide-fonts): correct icon mappings in index.html and unicode.html by [@​buyuan-dev](https://redirect.github.com/buyuan-dev) in [#​4160](https://redirect.github.com/lucide-icons/lucide/pull/4160) - style(icons): fix formatting of `<svg>` element in two icons that were inconsistent by [@​LukasKalbertodt](https://redirect.github.com/LukasKalbertodt) in [#​4166](https://redirect.github.com/lucide-icons/lucide/pull/4166) - Update ICON\_GUIDELINES link in CONTRIBUTING.md by [@​AntoninKadrmas](https://redirect.github.com/AntoninKadrmas) in [#​4187](https://redirect.github.com/lucide-icons/lucide/pull/4187) - feat(icons): added `cctv-off` icon by [@​rrod497](https://redirect.github.com/rrod497) in [#​4162](https://redirect.github.com/lucide-icons/lucide/pull/4162) #### New Contributors - [@​cwlowder](https://redirect.github.com/cwlowder) made their first contribution in [#​4120](https://redirect.github.com/lucide-icons/lucide/pull/4120) - [@​shx08](https://redirect.github.com/shx08) made their first contribution in [#​4112](https://redirect.github.com/lucide-icons/lucide/pull/4112) - [@​buyuan-dev](https://redirect.github.com/buyuan-dev) made their first contribution in [#​4160](https://redirect.github.com/lucide-icons/lucide/pull/4160) - [@​LukasKalbertodt](https://redirect.github.com/LukasKalbertodt) made their first contribution in [#​4166](https://redirect.github.com/lucide-icons/lucide/pull/4166) - [@​AntoninKadrmas](https://redirect.github.com/AntoninKadrmas) made their first contribution in [#​4187](https://redirect.github.com/lucide-icons/lucide/pull/4187) - [@​rrod497](https://redirect.github.com/rrod497) made their first contribution in [#​4162](https://redirect.github.com/lucide-icons/lucide/pull/4162) **Full Changelog**: <lucide-icons/lucide@0.577.0...1.0.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1ham9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [jsdom](https://redirect.github.com/jsdom/jsdom) | [`^28.0.0` → `^29.0.0`](https://renovatebot.com/diffs/npm/jsdom/28.1.0/29.0.1) |  |  | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v29.0.1`](https://redirect.github.com/jsdom/jsdom/compare/v29.0.0...v29.0.1) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v29.0.0...v29.0.1) ### [`v29.0.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2900) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v28.1.0...v29.0.0) Breaking changes: - Node.js v22.13.0+ is now the minimum supported v22 version (was v22.12.0+). Other changes: - Overhauled the CSSOM implementation, replacing the [`@acemir/cssom`](https://www.npmjs.com/package/@​acemir/cssom) and [`cssstyle`](https://redirect.github.com/jsdom/cssstyle) dependencies with fresh internal implementations built on webidl2js wrappers and the [`css-tree`](https://www.npmjs.com/package/css-tree) parser. Serialization, parsing, and API behavior is improved in various ways, especially around edge cases. - Added `CSSCounterStyleRule` and `CSSNamespaceRule` to jsdom `Window`s. - Added `cssMediaRule.matches` and `cssSupportsRule.matches` getters. - Added proper media query parsing in `MediaList`, using `css-tree` instead of naive comma-splitting. Invalid queries become `"not all"` per spec. - Added `cssKeyframeRule.keyText` getter/setter validation. - Added `cssStyleRule.selectorText` setter validation: invalid selectors are now rejected. - Added `styleSheet.ownerNode`, `styleSheet.href`, and `styleSheet.title`. - Added bad port blocking per the [fetch specification](https://fetch.spec.whatwg.org/#bad-port), preventing fetches to commonly-abused ports. - Improved `Document` initialization performance by lazily initializing the CSS selector engine, avoiding \~0.5 ms of overhead per `Document`. (thypon) - Fixed a memory leak when stylesheets were removed from the document. - Fixed `CSSStyleDeclaration` modifications to properly trigger custom element reactions. - Fixed nested `@media` rule parsing. - Fixed `CSSStyleSheet`'s "disallow modification" flag not being checked in all mutation methods. - Fixed `XMLHttpRequest`'s `response` getter returning parsed JSON during the `LOADING` state instead of `null`. - Fixed `getComputedStyle()` crashing in XHTML documents when stylesheets contained at-rules such as `@page` or `@font-face`. - Fixed a potential hang in synchronous `XMLHttpRequest` caused by a race condition with the worker thread's idle timeout. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuOTQuMSIsInRhcmdldEJyYW5jaCI6ImRldiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtYWpvciJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [shadcn](https://redirect.github.com/shadcn-ui/ui) ([source](https://redirect.github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn)) | [`^3.8.5` → `^4.0.0`](https://renovatebot.com/diffs/npm/shadcn/3.8.5/4.1.1) |  |  | --- ### Release Notes <details> <summary>shadcn-ui/ui (shadcn)</summary> ### [`v4.1.1`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#411) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.1.0...shadcn@4.1.1) ##### Patch Changes - [#​10202](https://redirect.github.com/shadcn-ui/ui/pull/10202) [`12b49c986fcf7e6db9be7f515df6142f822f2236`](https://redirect.github.com/shadcn-ui/ui/commit/12b49c986fcf7e6db9be7f515df6142f822f2236) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - fix packageManager in package.json ### [`v4.1.0`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#410) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.8...shadcn@4.1.0) ##### Minor Changes - [#​10115](https://redirect.github.com/shadcn-ui/ui/pull/10115) [`687f09817b614a3450f0f56779edf367082e1e53`](https://redirect.github.com/shadcn-ui/ui/commit/687f09817b614a3450f0f56779edf367082e1e53) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add fontHeading to presets - [#​10115](https://redirect.github.com/shadcn-ui/ui/pull/10115) [`687f09817b614a3450f0f56779edf367082e1e53`](https://redirect.github.com/shadcn-ui/ui/commit/687f09817b614a3450f0f56779edf367082e1e53) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add chartColor ### [`v4.0.8`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#408) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.7...shadcn@4.0.8) ##### Patch Changes - [#​10041](https://redirect.github.com/shadcn-ui/ui/pull/10041) [`a97ebe54f1824032d8ad00d1d0c079e3dc6f52d7`](https://redirect.github.com/shadcn-ui/ui/commit/a97ebe54f1824032d8ad00d1d0c079e3dc6f52d7) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - Bundle [@​antfu/ni](https://redirect.github.com/antfu/ni) and tinyexec to fix missing module error with npx ### [`v4.0.7`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#407) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.6...shadcn@4.0.7) ##### Patch Changes - [#​9929](https://redirect.github.com/shadcn-ui/ui/pull/9929) [`f9b365bc7f9d591c995952976711dbdd7b1bc45a`](https://redirect.github.com/shadcn-ui/ui/commit/f9b365bc7f9d591c995952976711dbdd7b1bc45a) Thanks [@​kapishdima](https://redirect.github.com/kapishdima)! - add dependency field to registry:font ### [`v4.0.6`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#406) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.5...shadcn@4.0.6) ##### Patch Changes - [#​10022](https://redirect.github.com/shadcn-ui/ui/pull/10022) [`7e93eb81ea8160c06c86f98bb6bfeb1ddfd0d237`](https://redirect.github.com/shadcn-ui/ui/commit/7e93eb81ea8160c06c86f98bb6bfeb1ddfd0d237) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - ensure monorepo respect package manager ### [`v4.0.5`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#405) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.4...shadcn@4.0.5) ##### Patch Changes - [#​9960](https://redirect.github.com/shadcn-ui/ui/pull/9960) [`5ee456735377158c12cf55eefbe872f7303e1325`](https://redirect.github.com/shadcn-ui/ui/commit/5ee456735377158c12cf55eefbe872f7303e1325) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - update handling of init urls ### [`v4.0.4`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#404) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.3...shadcn@4.0.4) ##### Patch Changes - [#​9957](https://redirect.github.com/shadcn-ui/ui/pull/9957) [`aa841e35cf405e574123478b46f4058cff0e179a`](https://redirect.github.com/shadcn-ui/ui/commit/aa841e35cf405e574123478b46f4058cff0e179a) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - fix cache in resolveRegistryBaseConfig ### [`v4.0.3`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#403) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.2...shadcn@4.0.3) ##### Patch Changes - [#​9950](https://redirect.github.com/shadcn-ui/ui/pull/9950) [`ce2c3ca688916db4fdb5fe173e9c6902f78696ed`](https://redirect.github.com/shadcn-ui/ui/commit/ce2c3ca688916db4fdb5fe173e9c6902f78696ed) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add support for translucent menu ### [`v4.0.2`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#402) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.1...shadcn@4.0.2) ##### Patch Changes - [#​9903](https://redirect.github.com/shadcn-ui/ui/pull/9903) [`f5ac4a0d2aa5af87202f67558a4b9b8f92c00bd2`](https://redirect.github.com/shadcn-ui/ui/commit/f5ac4a0d2aa5af87202f67558a4b9b8f92c00bd2) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - scaffold templates from github remote ### [`v4.0.1`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#401) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.0.0...shadcn@4.0.1) ##### Patch Changes - [#​9896](https://redirect.github.com/shadcn-ui/ui/pull/9896) [`1ce9c2dd6a3d16422a6586e39632ebbccc45d3a4`](https://redirect.github.com/shadcn-ui/ui/commit/1ce9c2dd6a3d16422a6586e39632ebbccc45d3a4) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - fix apple metadata files in template - [#​9897](https://redirect.github.com/shadcn-ui/ui/pull/9897) [`5edf9c95b7d13dcbd325aa4cf6b48d58a53b07c6`](https://redirect.github.com/shadcn-ui/ui/commit/5edf9c95b7d13dcbd325aa4cf6b48d58a53b07c6) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - fix fallback style resolving issue ### [`v4.0.0`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#400) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@3.8.5...shadcn@4.0.0) ##### Major Changes - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`605246f93b8c0c56eee0c1b25ccaa526e5cbdc1d`](https://redirect.github.com/shadcn-ui/ui/commit/605246f93b8c0c56eee0c1b25ccaa526e5cbdc1d) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add --monorepo flag and monorepo support for vite, start and react-router - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`da10396f2b9b248c23bef05234ce222b0868ace4`](https://redirect.github.com/shadcn-ui/ui/commit/da10396f2b9b248c23bef05234ce222b0868ace4) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add new base colors: mauve, olive, mist and taupe - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`ce1f9259bfe043b3105350a3357249458ac41a1b`](https://redirect.github.com/shadcn-ui/ui/commit/ce1f9259bfe043b3105350a3357249458ac41a1b) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - added `--preset` flag to `init` command - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - use multiplicative instead of addition for --radius calc - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`b9b30a23e644c952fbe52db337bfdd427bc6449f`](https://redirect.github.com/shadcn-ui/ui/commit/b9b30a23e644c952fbe52db337bfdd427bc6449f) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add shadcn/skills - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - deprecate --base-color, --src-dir, --no-base-style flags - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`3bc23a60c7c825647265bca0942c330d1e93fcaa`](https://redirect.github.com/shadcn-ui/ui/commit/3bc23a60c7c825647265bca0942c330d1e93fcaa) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - deprecate create and make it an alias of init - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`fae5e7829263d80eb4b19bdcc9b8ea595060b837`](https://redirect.github.com/shadcn-ui/ui/commit/fae5e7829263d80eb4b19bdcc9b8ea595060b837) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add astro template support - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`4bdd23291c499159098e2b2e27b738041a514558`](https://redirect.github.com/shadcn-ui/ui/commit/4bdd23291c499159098e2b2e27b738041a514558) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add --reinstall flag for init - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`4fa2ef66ed6e99a02ea4524e45568440968a6c27`](https://redirect.github.com/shadcn-ui/ui/commit/4fa2ef66ed6e99a02ea4524e45568440968a6c27) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add shadcn docs command - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add --base to shadcn init - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - deprecate --css-variables flag from shadcn add - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`0d3f6a0812c51b36a6c7618e3b9eadd758860321`](https://redirect.github.com/shadcn-ui/ui/commit/0d3f6a0812c51b36a6c7618e3b9eadd758860321) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - deprecate registry:build and registry:mcp - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`4307815c0fa7576668e1d39999a284e350dbfc66`](https://redirect.github.com/shadcn-ui/ui/commit/4307815c0fa7576668e1d39999a284e350dbfc66) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add preset code support - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`5f9691670188b5b411f84d16ca7db2693c922155`](https://redirect.github.com/shadcn-ui/ui/commit/5f9691670188b5b411f84d16ca7db2693c922155) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - refactor shadcn info command to output llm-friendly output - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - refactor ordering of updaters - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`646f884e8fddd196cff3e118184733522516193d`](https://redirect.github.com/shadcn-ui/ui/commit/646f884e8fddd196cff3e118184733522516193d) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add --dry-run, --diff and --view to the add command - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - getTailwindCssFile fallback to config.tailwind.css - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`642d802eeef86a01a861de20e6da851cd3d8c974`](https://redirect.github.com/shadcn-ui/ui/commit/642d802eeef86a01a861de20e6da851cd3d8c974) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add support for hooks, lib and ui install for workspaces ##### Patch Changes - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`4a96d95bde1bb2e692e61808ccc6b9c8e00676f4`](https://redirect.github.com/shadcn-ui/ui/commit/4a96d95bde1bb2e692e61808ccc6b9c8e00676f4) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - fix kbd display in tooltip - [#​9804](https://redirect.github.com/shadcn-ui/ui/pull/9804) [`2ddd920e4d7c251eb96c88398b98bfe1f6ea0b8a`](https://redirect.github.com/shadcn-ui/ui/commit/2ddd920e4d7c251eb96c88398b98bfe1f6ea0b8a) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - warn if in monorepo and cwd not set - [#​9708](https://redirect.github.com/shadcn-ui/ui/pull/9708) [`82f03d0f1dd12efb5395a0b8689533588d778d0c`](https://redirect.github.com/shadcn-ui/ui/commit/82f03d0f1dd12efb5395a0b8689533588d778d0c) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - handling of apply directive inside utility </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuNyIsInVwZGF0ZWRJblZlciI6IjQzLjEwMi43IiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1ham9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Pod 4 (Python 3.10) and Pod 3 (Python 3.9) Yocto images lack `plistlib.py` and `pyexpat.so` in the stdlib, which breaks `ensurepip` and causes `python3 -m venv` to fail silently - All 4 biometrics modules (piezo-processor, sleep-detector, environment-monitor, calibrator) are skipped with `Warning: python3-venv not available` - Extracted venv setup into `scripts/setup-python-venv` so it's reusable and independently testable for future pod versions - Falls back to `--without-pip` + `get-pip.py` bootstrap when `ensurepip` is unavailable Reference: `throwaway31265/free-sleep` `install_python_packages.sh` for the root cause analysis (missing stdlib modules in Yocto builds). ## Test plan - [ ] Verify on Pod 4: `scripts/setup-python-venv /tmp/test-venv` creates a working venv with pip - [ ] Verify on Pod 5: normal `python3 -m venv` path still works (no regression) - [ ] Full install on Pod 4: all 4 biometrics modules install and start - [ ] `sp-update` on Pod 4: module venvs created correctly on update path 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Refactored Python virtual environment provisioning to use a dedicated setup script during initial installation and module updates. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [eslint-config-next](https://nextjs.org/docs/app/api-reference/config/eslint) ([source](https://redirect.github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`16.2.1` → `16.2.2`](https://renovatebot.com/diffs/npm/eslint-config-next/16.2.1/16.2.2) |  |  | | [next](https://nextjs.org) ([source](https://redirect.github.com/vercel/next.js)) | [`16.2.1` → `16.2.2`](https://renovatebot.com/diffs/npm/next/16.2.1/16.2.2) |  |  | --- ### Release Notes <details> <summary>vercel/next.js (eslint-config-next)</summary> ### [`v16.2.2`](https://redirect.github.com/vercel/next.js/compare/v16.2.1...v16.2.2) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.1...v16.2.2) </details> <details> <summary>vercel/next.js (next)</summary> ### [`v16.2.2`](https://redirect.github.com/vercel/next.js/compare/v16.2.1...v16.2.2) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.1...v16.2.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiZml4LXBhdGNoIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Extract DAC socket detection into `scripts/pod/detect` - Extract iptables helpers into `scripts/lib/iptables-helpers` - Move all CLI tools from inline heredocs into `scripts/bin/sp-*` - Add `sp-uninstall` for clean removal - CLI tools read `DAC_SOCK_PATH` from `.env` at runtime Closes #338 Supersedes #339 ## Test plan - [x] `bash -n` and `shellcheck` pass on all scripts - [x] Deployed to Pod 5 — all commands verified working - [x] `sp-restart` reads DAC_SOCK_PATH from `.env` - [x] `sp-freesleep` / `sp-sleepypod` switch and persist correctly
## Summary Fixes install failure on fresh firmware resets reported by a Pod 4 user. After #341 extracted pod detection into `scripts/pod/detect`, the install script broke when fetched from `dev` without `--branch dev`: ``` curl -fsSL https://raw.githubusercontent.com/sleepypod/core/dev/scripts/install | sudo bash ``` **Root cause**: `DOWNLOAD_BRANCH` defaulted to `"main"` (line 321), so the script downloaded the `main` tarball — which doesn't have `scripts/pod/detect` yet. The dev-branch install script then failed at line 390: ``` bash: line 390: /home/dac/sleepypod-core/scripts/pod/detect: No such file or directory ``` **Device**: Pod 4 (Eight Pod), fresh firmware reset, confirmed `scripts/pod/` missing from extracted tarball contents on disk. ## Changes - Add `SCRIPT_DEFAULT_BRANCH="dev"` constant — download branch now defaults to match the script's own branch instead of hardcoded `"main"` - Guard `source scripts/pod/detect` — clear error message with recovery instructions if the file is missing (cross-version mismatch safety) - Guard `scripts/bin/` CLI tools loop — skip gracefully if directory doesn't exist > **Note**: When merging to `main`, update `SCRIPT_DEFAULT_BRANCH` to `"main"`. ## Test plan - [ ] On a Pod 4 with reset firmware, run `curl -fsSL .../dev/scripts/install | sudo bash` — should download dev tarball and detect pod generation - [ ] Verify `--branch main` override still works: `curl ... | sudo bash -s -- --branch main` - [ ] Confirm existing `--branch dev` explicit usage still works <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved installation validation with clearer error messages when dependencies are missing * Installation process now gracefully handles missing components and provides informative feedback instead of cryptic failures * CLI tools installation only proceeds when prerequisites are available <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Biometrics module installation fails on Pod 3/4 because Python venv creation fails — even with the `--without-pip` + `get-pip.py` fallback from #336. The Yocto image is missing too many stdlib modules for any pip bootstrapping to work. **New approach**: patch the system Python stdlib *before* creating venvs. Downloads the matching CPython source and copies any missing `.py` files into the system lib directory (non-destructive, skips existing files). After patching, `ensurepip` works natively and normal `python3 -m venv` succeeds. ## Changes - **`scripts/patch-python-stdlib`** (new) — detects Python version, downloads matching CPython source tarball, fills in missing stdlib `.py` files. Idempotent, verbose logging with `[patch-python-stdlib]` prefix for easy debugging. No-ops on Pod 5+ where stdlib is already complete. - **`scripts/install`** — calls `patch-python-stdlib` once before the biometrics module loop - **`scripts/setup-python-venv`** — simplified with proper logging. Normal venv path should now always work after stdlib patching. `--without-pip` fallback kept as safety net. ## Logging All scripts use tagged prefixes (`[patch-python-stdlib]`, `[setup-python-venv]`) so users can share install logs and we can pinpoint failures: ``` [patch-python-stdlib] Detected Python 3.10.4 [patch-python-stdlib] System lib directory: /usr/lib64/python3.10 [patch-python-stdlib] Module 'plistlib' is missing — patching needed [patch-python-stdlib] Downloading CPython 3.10.4 source... [patch-python-stdlib] Stdlib patching complete: 147 copied, 312 already present, 0 failed [patch-python-stdlib] ✓ plistlib [patch-python-stdlib] ✓ ensurepip [patch-python-stdlib] Python stdlib is ready for venv creation ``` ## Test plan - [ ] On Pod 4 (fresh firmware reset): run install, confirm `patch-python-stdlib` downloads CPython source and copies missing files - [ ] Confirm all 4 biometrics modules install successfully after patching - [ ] On Pod 5: confirm `patch-python-stdlib` no-ops ("no patching needed") - [ ] Re-run install on already-patched Pod 4: confirm idempotent (skips, no re-download... actually it will re-download since it checks imports not file presence — acceptable for now) - [ ] Have user share install log if issues persist
## Summary - Fix `podModelName()` in `HealthCircle.tsx` using wrong hardware revision codes (sequential H00–H03) instead of actual `PodVersion` enum values (H00, I00, J00) - Pod 4 (I00) was falling through to default and showing raw code; Pod 3 (H00) was labeled "Pod 5" Closes #349 ## Test plan - [ ] Verify on Pod 3 (H00) → displays "Pod 3" - [ ] Verify on Pod 4 (I00) → displays "Pod 4" - [ ] Verify on Pod 5 (J00) → displays "Pod 5" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **Bug Fixes** * Corrected pod model name mappings to ensure users see accurate product identification information. Updates provide improved consistency in how device models are labeled throughout the application's status monitoring features. This helps users quickly identify their device models and understand model-specific capabilities when reviewing device health indicators and operational status information within the platform. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - **Backend**: Replaced hardcoded `/usr/sbin/iptables` with dynamic path resolution that checks `/sbin/` then `/usr/sbin/`, falling back to bare name for PATH lookup. Fixes the UI toggle error on Pod 4. - **Script**: Replaced `dpkg`/`apt-get` install block in `scripts/internet-control` with a simple `command -v iptables` check, since Yocto has no package manager — iptables is baked into the image. Closes #350 ## Test plan - [ ] Deploy to Pod 4 and toggle WAN access from the UI — should succeed without error - [ ] Run `sudo ./scripts/internet-control block` on Pod 4 — should block without dpkg/apt errors - [ ] Run `sudo ./scripts/internet-control status` — verify Layer 1 shows ACTIVE - [ ] Verify on a Debian-based dev machine that `/usr/sbin/iptables` is still resolved correctly <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * More robust installer: clearer errors when required files are missing, safer defaults, and skips absent CLI tools to avoid failures. * Network control now exits with an error if required system utilities are missing instead of attempting automatic installation. * Improved resolution of system binary paths for more reliable behavior across environments. * **Tests** * CI now validates that installer branch configuration matches the PR base branch. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - Replace Python `venv` + `pip` with [uv](https://docs.astral.sh/uv/) for biometrics module environment setup — fixes Pod 3 install failure where missing `pyexpat` C extension broke both `ensurepip` and `get-pip.py` - Add `pyproject.toml` + `uv.lock` per module, delete `requirements.txt` - Delete `scripts/patch-python-stdlib` and `scripts/setup-python-venv` (no longer needed) - Update service files from `venv/` to `.venv/` (uv default) - Include `CI=true` on `pnpm install` for `curl | bash` TTY fix - ADR 0017 documents the decision Based on the approach from #381 by @onemec. Closes #380 ## Test plan > **Note:** Feature branches don't have CI releases, so `--branch <feature>` would download a source tarball without `.next` and try to build on-pod (OOM risk). Use `scripts/deploy` from a dev machine instead. **From your dev machine:** ```bash ./scripts/deploy <pod-ip> fix/380-uv-python-env ``` **Or, if you already have a working install on the pod:** ```bash cd /home/dac/sleepypod-core git fetch origin fix/380-uv-python-env git checkout fix/380-uv-python-env bash scripts/install --local --no-ssh ``` ### Pod 5 results (verified via fresh install) | Check | Result | |-------|--------| | uv installed | `/usr/local/bin/uv` 0.11.3 (musl-static) | | sleepypod | active | | piezo-processor | active | | sleep-detector | active | | environment-monitor | active | | calibrator | active | | `.venv` dirs | 4/4 created | | Old `venv/` dirs | cleaned up | | DBs | intact | Tested as a completely clean install (removed `/home/dac/sleepypod-core` and `/opt/sleepypod/modules` first). All services started on first attempt. ### Still needs testing - [ ] Pod 3 — the original reporter's device (@onemec) - [ ] Pod 4 - [x] Pod 5 — verified via fresh install - [ ] `sp-update` path (uv already present, modules synced on update) --------- Co-authored-by: onemec <onemec@users.noreply.github.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [python](https://python.org) ([source](https://redirect.github.com/python/cpython)) | requires-python | minor | `>=3.9,<3.11` → `>=3.14,<3.15` | --- ### Release Notes <details> <summary>python/cpython (python)</summary> ### [`v3.14.3`](https://redirect.github.com/python/cpython/compare/v3.14.2...v3.14.3) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.14.2...v3.14.3) ### [`v3.14.2`](https://redirect.github.com/python/cpython/compare/v3.14.1...v3.14.2) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.14.1...v3.14.2) ### [`v3.14.1`](https://redirect.github.com/python/cpython/compare/v3.14.0...v3.14.1) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.14.0...v3.14.1) ### [`v3.14.0`](https://redirect.github.com/python/cpython/compare/v3.13.9...v3.14.0) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.12...v3.14.0) ### [`v3.13.12`](https://redirect.github.com/python/cpython/compare/v3.13.11...v3.13.12) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.11...v3.13.12) ### [`v3.13.11`](https://redirect.github.com/python/cpython/compare/v3.13.10...v3.13.11) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.10...v3.13.11) ### [`v3.13.10`](https://redirect.github.com/python/cpython/compare/v3.13.9...v3.13.10) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.9...v3.13.10) ### [`v3.13.9`](https://redirect.github.com/python/cpython/compare/v3.13.8...v3.13.9) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.8...v3.13.9) ### [`v3.13.8`](https://redirect.github.com/python/cpython/compare/v3.13.7...v3.13.8) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.7...v3.13.8) ### [`v3.13.7`](https://redirect.github.com/python/cpython/compare/v3.13.6...v3.13.7) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.6...v3.13.7) ### [`v3.13.6`](https://redirect.github.com/python/cpython/compare/v3.13.5...v3.13.6) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.5...v3.13.6) ### [`v3.13.5`](https://redirect.github.com/python/cpython/compare/v3.13.4...v3.13.5) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.4...v3.13.5) ### [`v3.13.4`](https://redirect.github.com/python/cpython/compare/v3.13.3...v3.13.4) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.3...v3.13.4) ### [`v3.13.3`](https://redirect.github.com/python/cpython/compare/v3.13.2...v3.13.3) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.2...v3.13.3) ### [`v3.13.2`](https://redirect.github.com/python/cpython/compare/v3.13.1...v3.13.2) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.1...v3.13.2) ### [`v3.13.1`](https://redirect.github.com/python/cpython/compare/v3.13.0...v3.13.1) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.13.0...v3.13.1) ### [`v3.13.0`](https://redirect.github.com/python/cpython/compare/v3.12.12...v3.13.0) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.13...v3.13.0) ### [`v3.12.13`](https://redirect.github.com/python/cpython/compare/v3.12.12...v3.12.13) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.12...v3.12.13) ### [`v3.12.12`](https://redirect.github.com/python/cpython/compare/v3.12.11...v3.12.12) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.11...v3.12.12) ### [`v3.12.11`](https://redirect.github.com/python/cpython/compare/v3.12.10...v3.12.11) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.10...v3.12.11) ### [`v3.12.10`](https://redirect.github.com/python/cpython/compare/v3.12.9...v3.12.10) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.9...v3.12.10) ### [`v3.12.9`](https://redirect.github.com/python/cpython/compare/v3.12.8...v3.12.9) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.8...v3.12.9) ### [`v3.12.8`](https://redirect.github.com/python/cpython/compare/v3.12.7...v3.12.8) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.7...v3.12.8) ### [`v3.12.7`](https://redirect.github.com/python/cpython/compare/v3.12.6...v3.12.7) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.6...v3.12.7) ### [`v3.12.6`](https://redirect.github.com/python/cpython/compare/v3.12.5...v3.12.6) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.5...v3.12.6) ### [`v3.12.5`](https://redirect.github.com/python/cpython/compare/v3.12.4...v3.12.5) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.4...v3.12.5) ### [`v3.12.4`](https://redirect.github.com/python/cpython/compare/v3.12.3...v3.12.4) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.3...v3.12.4) ### [`v3.12.3`](https://redirect.github.com/python/cpython/compare/v3.12.2...v3.12.3) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.2...v3.12.3) ### [`v3.12.2`](https://redirect.github.com/python/cpython/compare/v3.12.1...v3.12.2) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.1...v3.12.2) ### [`v3.12.1`](https://redirect.github.com/python/cpython/compare/v3.12.0...v3.12.1) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.12.0...v3.12.1) ### [`v3.12.0`](https://redirect.github.com/python/cpython/compare/v3.11.14...v3.12.0) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.15...v3.12.0) ### [`v3.11.15`](https://redirect.github.com/python/cpython/compare/v3.11.14...v3.11.15) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.14...v3.11.15) ### [`v3.11.14`](https://redirect.github.com/python/cpython/compare/v3.11.13...v3.11.14) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.13...v3.11.14) ### [`v3.11.13`](https://redirect.github.com/python/cpython/compare/v3.11.12...v3.11.13) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.12...v3.11.13) ### [`v3.11.12`](https://redirect.github.com/python/cpython/compare/v3.11.11...v3.11.12) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.11...v3.11.12) ### [`v3.11.11`](https://redirect.github.com/python/cpython/compare/v3.11.10...v3.11.11) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.10...v3.11.11) ### [`v3.11.10`](https://redirect.github.com/python/cpython/compare/v3.11.9...v3.11.10) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.9...v3.11.10) ### [`v3.11.9`](https://redirect.github.com/python/cpython/compare/v3.11.8...v3.11.9) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.8...v3.11.9) ### [`v3.11.8`](https://redirect.github.com/python/cpython/compare/v3.11.7...v3.11.8) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.7...v3.11.8) ### [`v3.11.7`](https://redirect.github.com/python/cpython/compare/v3.11.6...v3.11.7) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.6...v3.11.7) ### [`v3.11.6`](https://redirect.github.com/python/cpython/compare/v3.11.5...v3.11.6) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.5...v3.11.6) ### [`v3.11.5`](https://redirect.github.com/python/cpython/compare/v3.11.4...v3.11.5) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.4...v3.11.5) ### [`v3.11.4`](https://redirect.github.com/python/cpython/compare/v3.11.3...v3.11.4) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.3...v3.11.4) ### [`v3.11.3`](https://redirect.github.com/python/cpython/compare/v3.11.2...v3.11.3) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.2...v3.11.3) ### [`v3.11.2`](https://redirect.github.com/python/cpython/compare/v3.11.1...v3.11.2) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.1...v3.11.2) ### [`v3.11.1`](https://redirect.github.com/python/cpython/compare/v3.11.0...v3.11.1) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.11.0...v3.11.1) ### [`v3.11.0`](https://redirect.github.com/python/cpython/compare/v3.10.19...v3.11.0) [Compare Source](https://redirect.github.com/python/cpython/compare/v3.10.20...v3.11.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwibWlub3IiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Revert Renovate bot's `requires-python` bump from `>=3.14,<3.15` back to `>=3.9,<3.11` (PR #385 broke all pods) - Add `--python python3` to `uv sync` in install and sp-update — forces uv to use the system Python instead of downloading one - Add Renovate rule to cap `requires-python` at `<3.11` (Pod 3 is 3.9, Pod 4/5 is 3.10) ## Root cause Renovate auto-merged #385 which bumped `requires-python` to `>=3.14,<3.15`. This caused `uv sync` to download CPython 3.14.3, which has no pre-built wheels for numpy/scipy/contourpy on aarch64. It then tried to compile from source, which failed because Yocto has no C++ compiler. ## Test plan - [ ] `sp-update dev` on Pod 4 (@punkmaniac) — should use system Python 3.10, not download 3.14 - [x] Pod 5 — previously verified with `>=3.9,<3.11` + system Python 3.10.4 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Expanded Python version compatibility across all modules to support Python 3.9-3.10 * Updated dependency management configuration with explicit Python version constraints * Enhanced environment setup scripts with explicit Python interpreter specification <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - Incremental wiki compile: adds Python/uv environment section to deployment topic from ADR 0017 - Updates INDEX (22 sources), schema (deployment description), and compile log ## Test plan - [x] Wiki renders correctly (markdown valid) - [x] Cross-references intact (links to biometrics-system topic)
…query to v5.96.2 (#391) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tanstack/react-query](https://tanstack.com/query) ([source](https://redirect.github.com/TanStack/query/tree/HEAD/packages/react-query)) | [`5.96.1` → `5.96.2`](https://renovatebot.com/diffs/npm/@tanstack%2freact-query/5.96.1/5.96.2) |  |  | --- ### Release Notes <details> <summary>TanStack/query (@​tanstack/react-query)</summary> ### [`v5.96.2`](https://redirect.github.com/TanStack/query/blob/HEAD/packages/react-query/CHANGELOG.md#5962) [Compare Source](https://redirect.github.com/TanStack/query/compare/@tanstack/react-query@5.96.1...@tanstack/react-query@5.96.2) ##### Patch Changes - Updated dependencies \[]: - [@​tanstack/query-core](https://redirect.github.com/tanstack/query-core)@​5.96.2 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiZml4LXBhdGNoIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - ExecStart used bare `node` which resolves to `/usr/bin/node` (Yocto's v16) instead of `/usr/local/bin/node` (v22 installed by the script) - Causes 500 errors on startup — Next.js 16 uses syntax unsupported by Node 16 - Also sets `PATH` in the unit so any child processes resolve correctly ## Test plan - [x] Verified on Pod: bare `node` → v16 → 500; `/usr/local/bin/node` → v22 → working - [ ] Fresh install on Pod confirms service starts with correct Node version <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved service startup reliability by ensuring proper resolution of system dependencies required for the application to run successfully. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`25.5.0` → `25.5.2`](https://renovatebot.com/diffs/npm/@types%2fnode/25.5.0/25.5.2) |  |  | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ1cGRhdGVkSW5WZXIiOiI0My4xMDIuMTEiLCJ0YXJnZXRCcmFuY2giOiJkZXYiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwiZml4LXBhdGNoIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [dotenv](https://redirect.github.com/motdotla/dotenv) | [`17.4.0` → `17.4.1`](https://renovatebot.com/diffs/npm/dotenv/17.4.0/17.4.1) |  |  | --- ### Release Notes <details> <summary>motdotla/dotenv (dotenv)</summary> ### [`v17.4.1`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1741-2026-04-05) [Compare Source](https://redirect.github.com/motdotla/dotenv/compare/v17.4.0...v17.4.1) ##### Changed - Change text `injecting` to `injected` ([#​1005](https://redirect.github.com/motdotla/dotenv/pull/1005)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…po to v5.9.5 (#399) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@lingui/babel-plugin-lingui-macro](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/babel-plugin-lingui-macro)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2fbabel-plugin-lingui-macro/5.9.4/5.9.5) |  |  | | [@lingui/cli](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/cli)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2fcli/5.9.4/5.9.5) |  |  | | [@lingui/core](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/core)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2fcore/5.9.4/5.9.5) |  |  | | [@lingui/loader](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/loader)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2floader/5.9.4/5.9.5) |  |  | | [@lingui/macro](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/macro)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2fmacro/5.9.4/5.9.5) |  |  | | [@lingui/react](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/react)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2freact/5.9.4/5.9.5) |  |  | | [@lingui/vite-plugin](https://lingui.dev) ([source](https://redirect.github.com/lingui/js-lingui/tree/HEAD/packages/vite-plugin)) | [`5.9.4` → `5.9.5`](https://renovatebot.com/diffs/npm/@lingui%2fvite-plugin/5.9.4/5.9.5) |  |  | --- ### Release Notes <details> <summary>lingui/js-lingui (@​lingui/babel-plugin-lingui-macro)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/babel-plugin-lingui-macro/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/babel-plugin-lingui-macro](https://redirect.github.com/lingui/babel-plugin-lingui-macro) </details> <details> <summary>lingui/js-lingui (@​lingui/cli)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/cli/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) ##### Bug Fixes - support braces in catalog pathname ([#​2495](https://redirect.github.com/lingui/js-lingui/issues/2495)) ([db14681](https://redirect.github.com/lingui/js-lingui/commit/db14681e36ae1603499fafbd2dd00942ed1c2e0b)) </details> <details> <summary>lingui/js-lingui (@​lingui/core)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/core/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/core](https://redirect.github.com/lingui/core) </details> <details> <summary>lingui/js-lingui (@​lingui/loader)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/loader/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/loader](https://redirect.github.com/lingui/loader) </details> <details> <summary>lingui/js-lingui (@​lingui/macro)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/macro/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/macro](https://redirect.github.com/lingui/macro) </details> <details> <summary>lingui/js-lingui (@​lingui/react)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/react/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/react](https://redirect.github.com/lingui/react) </details> <details> <summary>lingui/js-lingui (@​lingui/vite-plugin)</summary> ### [`v5.9.5`](https://redirect.github.com/lingui/js-lingui/blob/HEAD/packages/vite-plugin/CHANGELOG.md#595-2026-04-06) [Compare Source](https://redirect.github.com/lingui/js-lingui/compare/v5.9.4...v5.9.5) **Note:** Version bump only for package [@​lingui/vite-plugin](https://redirect.github.com/lingui/vite-plugin) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [jsdom](https://redirect.github.com/jsdom/jsdom) | [`29.0.1` → `29.0.2`](https://renovatebot.com/diffs/npm/jsdom/29.0.1/29.0.2) |  |  | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v29.0.2`](https://redirect.github.com/jsdom/jsdom/releases/tag/v29.0.2) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v29.0.1...v29.0.2) - Significantly improved and sped up `getComputedStyle()`. Computed value rules are now applied across a broader set of properties, and include fixes related to inheritance, defaulting keywords, custom properties, and color-related values such as `currentcolor` and system colors. ([@​asamuzaK](https://redirect.github.com/asamuzaK)) - Fixed CSS `'background`' and `'border'` shorthand parsing. ([@​asamuzaK](https://redirect.github.com/asamuzaK)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@vitest/coverage-v8](https://vitest.dev/guide/coverage) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`4.1.2` → `4.1.3`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/4.1.2/4.1.3) |  |  | | [vitest](https://vitest.dev) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`4.1.2` → `4.1.3`](https://renovatebot.com/diffs/npm/vitest/4.1.2/4.1.3) |  |  | --- ### Release Notes <details> <summary>vitest-dev/vitest (@​vitest/coverage-v8)</summary> ### [`v4.1.3`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.3) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) ##### 🚀 Experimental Features - Add `experimental.preParse` flag - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10070](https://redirect.github.com/vitest-dev/vitest/issues/10070) [<samp>(78273)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7827363bd) - Support `browser.locators.exact` option - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10013](https://redirect.github.com/vitest-dev/vitest/issues/10013) [<samp>(48799)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/487990a19) - Add `TestAttachment.bodyEncoding` - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [#​9969](https://redirect.github.com/vitest-dev/vitest/issues/9969) [<samp>(89ca0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/89ca0e254) - Support custom snapshot matcher - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Sonnet 4.6** and **Codex** in [#​9973](https://redirect.github.com/vitest-dev/vitest/issues/9973) [<samp>(59b0e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/59b0e6411) ##### 🐞 Bug Fixes - Advance fake timers with `expect.poll` interval - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#​10022](https://redirect.github.com/vitest-dev/vitest/issues/10022) [<samp>(3f5bf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3f5bfa365) - Add `@vitest/coverage-v8` and `@vitest/coverage-istanbul` as optional dependency - by [@​alan-agius4](https://redirect.github.com/alan-agius4) in [#​10025](https://redirect.github.com/vitest-dev/vitest/issues/10025) [<samp>(146d4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/146d4f0a0) - Fix `defineHelper` for webkit async stack trace + update playwright 1.59.0 - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [#​10036](https://redirect.github.com/vitest-dev/vitest/issues/10036) [<samp>(5a5fa)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5a5fa49fe) - Fix suite hook throwing errors for unused auto test-scoped fixture - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#​10035](https://redirect.github.com/vitest-dev/vitest/issues/10035) [<samp>(39865)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/398657e8d) - **expect**: - Remove `JestExtendError.context` from verbose error reporting - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [#​9983](https://redirect.github.com/vitest-dev/vitest/issues/9983) [<samp>(66751)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/66751c9e8) - Don't leak "runner" types - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10004](https://redirect.github.com/vitest-dev/vitest/issues/10004) [<samp>(ec204)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ec2045543) - **snapshot**: - Fix flagging obsolete snapshots for snapshot properties mismatch - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#​9986](https://redirect.github.com/vitest-dev/vitest/issues/9986) [<samp>(6b869)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6b869156b) - Export custom snapshot matcher helper from `vitest` - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Codex** in [#​10042](https://redirect.github.com/vitest-dev/vitest/issues/10042) [<samp>(691d3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/691d341fd) - **ui**: - Don't leak vite types - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10005](https://redirect.github.com/vitest-dev/vitest/issues/10005) [<samp>(fdff1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fdff1bf9a) - **vm**: - Fix external module resolve error with deps optimizer query - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude Sonnet 4.6** in [#​10024](https://redirect.github.com/vitest-dev/vitest/issues/10024) [<samp>(9dbf4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9dbf47786) ##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.2...v4.1.3) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Add optional `unit` param (F/C, default F) to `device.getStatus`, `schedules.getAll`, and `schedules.getByDay` - When `unit=C`, temperatures are converted from Fahrenheit (native storage) to Celsius using `toC` from tempUtils - Follows the pattern established by the environment router ## Test plan - [x] Added Celsius conversion tests for getAll and getByDay covering all 3 schedule types (temperature, power, alarm) - [x] Typecheck passes - [x] 20/20 schedule tests pass - [ ] Manual: call `GET /schedules?side=left&unit=C` and verify temperatures are in Celsius Closes #333 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Temperature unit selection now available for device status queries (Fahrenheit or Celsius; defaults to Fahrenheit) * Temperature unit selection now available for schedule queries (Fahrenheit or Celsius; defaults to Fahrenheit) * Temperatures are automatically converted to the requested unit with single decimal precision * **Tests** * Added test coverage for temperature unit conversion across device and schedule endpoints <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - Create `.node-version` (22) referenced by all 5 workflows for consistent Node version - Fix `actions/checkout@v6` → `@v4` and `actions/setup-node@v6` → `@v4` (v6 doesn't exist) - Fix `actions/upload-artifact@v7` → `@v4` - Use `xargs -d '\n'` in lint task to handle filenames with spaces - Add `BIOMETRICS_DATABASE_URL` to `.env.dev` and `.env.prod` templates ## Test plan - [ ] CI workflows run successfully with pinned Node 22 - [ ] Lint task handles filenames with spaces correctly - [x] YAML syntax validated Closes #328 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Introduced biometrics database configuration for development and production environments. * **Chores** * Updated GitHub Actions workflow versions across CI/CD pipelines. * Standardized Node.js version management via centralized configuration file. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary - Replaced `Promise.all` wrapping synchronous better-sqlite3/drizzle queries with sequential `.all()` calls in `getAll` and `getByDay` handlers - better-sqlite3 is synchronous and single-connection — `Promise.all` provided no parallelism, only a false suggestion of concurrency Closes #201 ## Test plan - [x] TypeScript type check passes - [x] All 9 schedules tests pass - [ ] Manual: verify `getAll` and `getByDay` endpoints return correct data 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Optimized internal query execution for schedule data retrieval to improve performance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
## Summary - Device settings fallback in `getAll` was missing LED-related fields (`ledNightModeEnabled`, `ledDayBrightness`, `ledNightBrightness`, `ledNightStartTime`, `ledNightEndTime`) - When no `device_settings` row exists, the incomplete default object caused mobile client decode failures Closes #142 ## Test plan - [x] TypeScript type check passes - [x] All 16 router tests pass - [ ] Manual: delete device_settings row, call `GET /settings`, verify all LED fields present with defaults 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## New Features * Added LED night mode configuration settings to device settings, including options to enable/disable night mode, set day and night brightness levels (0-100), and configure customizable night mode start and end times. * LED setting changes now automatically trigger scheduler updates to apply new configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Research document covering hardware teardowns, network recon commands, full protocol analysis (PubNub legacy + AWS IoT MQTT current), pysnoo2 and python-snoo source deep dives, and local server replacement architecture options. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [shadcn](https://redirect.github.com/shadcn-ui/ui) ([source](https://redirect.github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn)) | [`4.1.2` → `4.2.0`](https://renovatebot.com/diffs/npm/shadcn/4.1.2/4.2.0) |  |  | --- ### Release Notes <details> <summary>shadcn-ui/ui (shadcn)</summary> ### [`v4.2.0`](https://redirect.github.com/shadcn-ui/ui/blob/HEAD/packages/shadcn/CHANGELOG.md#420) [Compare Source](https://redirect.github.com/shadcn-ui/ui/compare/shadcn@4.1.2...shadcn@4.2.0) ##### Minor Changes - [#​10313](https://redirect.github.com/shadcn-ui/ui/pull/10313) [`c1e29824cd7a6809448e45b6b7fe8f7be71ecb0f`](https://redirect.github.com/shadcn-ui/ui/commit/c1e29824cd7a6809448e45b6b7fe8f7be71ecb0f) Thanks [@​shadcn](https://redirect.github.com/shadcn)! - add shadcn apply command </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1pbm9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… v8.58.1 (#418) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.58.0` → `8.58.1`](https://renovatebot.com/diffs/npm/typescript-eslint/8.58.0/8.58.1) |  |  | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary> ### [`v8.58.1`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8581-2026-04-08) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.58.0...v8.58.1) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. See [GitHub Releases](https://redirect.github.com/typescript-eslint/typescript-eslint/releases/tag/v8.58.1) for more information. You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - Replace misleading `Promise.all` with sequential `.all()` calls in health router drift detection — mirrors the fix applied to schedules.ts in #400 - Replace `z.any()` with concrete Zod output schema for settings `getAll` endpoint — prevents missing-field regressions like the one fixed in #401 ## Test plan - [x] TypeScript compiles clean (`tsc --noEmit`) - [x] Lint passes (pre-commit hook) - [ ] Verify `/health/system` endpoint returns drift detection data correctly - [ ] Verify `/settings` endpoint returns full settings payload without validation errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Reorganized health monitoring detection to execute database queries sequentially, improving monitoring consistency. * **Chores** * Added stricter validation schemas for settings API responses to ensure type safety and consistency across device settings, gesture controls, and side-specific configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [eslint-config-next](https://nextjs.org/docs/app/api-reference/config/eslint) ([source](https://redirect.github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)) | [`16.2.2` → `16.2.3`](https://renovatebot.com/diffs/npm/eslint-config-next/16.2.2/16.2.3) |  |  | | [next](https://nextjs.org) ([source](https://redirect.github.com/vercel/next.js)) | [`16.2.2` → `16.2.3`](https://renovatebot.com/diffs/npm/next/16.2.2/16.2.3) |  |  | --- ### Release Notes <details> <summary>vercel/next.js (eslint-config-next)</summary> ### [`v16.2.3`](https://redirect.github.com/vercel/next.js/compare/v16.2.2...v16.2.3) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.2...v16.2.3) </details> <details> <summary>vercel/next.js (next)</summary> ### [`v16.2.3`](https://redirect.github.com/vercel/next.js/compare/v16.2.2...v16.2.3) [Compare Source](https://redirect.github.com/vercel/next.js/compare/v16.2.2...v16.2.3) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [react](https://react.dev/) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react)) | [`19.2.4` → `19.2.5`](https://renovatebot.com/diffs/npm/react/19.2.4/19.2.5) |  |  | | [react-dom](https://react.dev/) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react-dom)) | [`19.2.4` → `19.2.5`](https://renovatebot.com/diffs/npm/react-dom/19.2.4/19.2.5) |  |  | --- ### Release Notes <details> <summary>facebook/react (react)</summary> ### [`v19.2.5`](https://redirect.github.com/facebook/react/releases/tag/v19.2.5): 19.2.5 (April 8th, 2026) [Compare Source](https://redirect.github.com/facebook/react/compare/v19.2.4...v19.2.5) ##### React Server Components - Add more cycle protections ([#​36236](https://redirect.github.com/facebook/react/pull/36236) by [@​eps1lon](https://redirect.github.com/eps1lon) and [@​unstubbable](https://redirect.github.com/unstubbable)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@vitest/coverage-v8](https://vitest.dev/guide/coverage) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`4.1.3` → `4.1.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/4.1.3/4.1.4) |  |  | | [vitest](https://vitest.dev) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`4.1.3` → `4.1.4`](https://renovatebot.com/diffs/npm/vitest/4.1.3/4.1.4) |  |  | --- ### Release Notes <details> <summary>vitest-dev/vitest (@​vitest/coverage-v8)</summary> ### [`v4.1.4`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v4.1.4) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) ##### 🚀 Features - **coverage**: - Default to text reporter `skipFull` if agent detected - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [#​10018](https://redirect.github.com/vitest-dev/vitest/issues/10018) [<samp>(53757)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/53757804c) - **experimental**: - Expose `assertion` as a public field - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10095](https://redirect.github.com/vitest-dev/vitest/issues/10095) [<samp>(a120e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a120e3ab8) - Support aria snapshot - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus 4.6 (1M context)**, [@​AriPerkkio](https://redirect.github.com/AriPerkkio), **Codex** and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​9668](https://redirect.github.com/vitest-dev/vitest/issues/9668) [<samp>(d4fbb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d4fbb5cc9) - **reporter**: - Add filterMeta option to json reporter - by [@​nami8824](https://redirect.github.com/nami8824) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​10078](https://redirect.github.com/vitest-dev/vitest/issues/10078) [<samp>(b77de)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b77de968e) ##### 🐞 Bug Fixes - Use "black" foreground for labeled terminal message to ensure contrast - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) in [#​10076](https://redirect.github.com/vitest-dev/vitest/issues/10076) [<samp>(203f0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/203f07af7) - Make `expect(..., message)` consistent as error message prefix - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa) and **Codex** in [#​10068](https://redirect.github.com/vitest-dev/vitest/issues/10068) [<samp>(a1b5f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a1b5f0f4f) - Do not hoist imports whose names match class properties . - by [@​SunsetFi](https://redirect.github.com/SunsetFi) in [#​10093](https://redirect.github.com/vitest-dev/vitest/issues/10093) and [#​10094](https://redirect.github.com/vitest-dev/vitest/issues/10094) [<samp>(0fc4b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fc4b47e0) - **browser**: Spread user server options into browser Vite server in project - by [@​GoldStrikeArch](https://redirect.github.com/GoldStrikeArch) in [#​10049](https://redirect.github.com/vitest-dev/vitest/issues/10049) [<samp>(65c9d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/65c9d55eb) ##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.3...v4.1.4) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImZpeC1wYXRjaCJdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…query to v5.97.0 (#423) This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@tanstack/react-query](https://tanstack.com/query) ([source](https://redirect.github.com/TanStack/query/tree/HEAD/packages/react-query)) | [`5.96.2` → `5.97.0`](https://renovatebot.com/diffs/npm/@tanstack%2freact-query/5.96.2/5.97.0) |  |  | --- ### Release Notes <details> <summary>TanStack/query (@​tanstack/react-query)</summary> ### [`v5.97.0`](https://redirect.github.com/TanStack/query/blob/HEAD/packages/react-query/CHANGELOG.md#5970) [Compare Source](https://redirect.github.com/TanStack/query/compare/@tanstack/react-query@5.96.2...@tanstack/react-query@5.97.0) ##### Patch Changes - Updated dependencies \[[`2bfb12c`](https://redirect.github.com/TanStack/query/commit/2bfb12cc44f1d8495106136e4ddacb817135f8f9)]: - [@​tanstack/query-core](https://redirect.github.com/tanstack/query-core)@​5.97.0 </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/sleepypod/core). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjExMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsIm1pbm9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
## Summary - New `ScheduleWeekOverview` component showing days grouped by identical temperature set points - Mini SVG sparklines with color-coded temperature dots for each group - Collapsible section integrated into SchedulePage between day selector and curve presets - Tap a group to select those days for bulk editing - Grouping utility in `src/lib/scheduleGrouping.ts` Closes #256 ## Test plan - [ ] Verify week overview shows correct groupings when multiple days share a curve - [ ] Verify "No schedule" shown for unscheduled days - [ ] Tap a group — verify days are selected for editing - [ ] Verify collapsed by default, expands on click <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit # Release Notes * **New Features** * Multi-day schedule editing with week overview and group management * Schedule activity indicator in navigation showing next scheduled time * Set points management drawer for easier temperature schedule configuration * Interactive curve visualization with point selection * **UI/UX Improvements** * Redesigned temperature set point cards for improved readability * Enhanced schedule controls displaying affected day count * Improved confirmation feedback styling * **Chores** * Integrated issue tracking system with Git hook automation * Updated development workflow documentation <!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
## Summary - Replace the hardcoded `SCRIPT_DEFAULT_BRANCH="main"` / `"dev"` in `scripts/install` with a `__BRANCH__` placeholder. - Both release workflows (`release.yml` on `main`, `dev-release.yml` on `dev`) now run a `sed` step before tarballing to substitute `__BRANCH__` with `github.ref_name`. - Remove the now-unnecessary "Validate install script branch default" gate from `build.yml` — the source file no longer holds a real branch name, so there's nothing for CI to validate. This supersedes the manual dev→main flip of `SCRIPT_DEFAULT_BRANCH` that was required before every release merge. The shipped tarball still contains the correct branch; it's just stamped in at build time now instead of being tracked in git. ## Test plan - [ ] Merge to dev → `dev-release.yml` runs, extract the tarball's `scripts/install`, confirm `SCRIPT_DEFAULT_BRANCH="dev"`. - [ ] Merge dev → main → `release.yml` runs, confirm tarball's `scripts/install` has `SCRIPT_DEFAULT_BRANCH="main"`. - [ ] Confirm `build.yml` no longer has the validate step and PR checks still pass.
|
🎉 This PR is included in version 1.6.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
Promotes everything on `dev` since the last main release (82 commits, 143 files, +9239/-2699).
Headlining features
Operational fixes
Dependency updates
~20 renovate PRs across React 19.2.5, Next 16.2.3, vitest 4.1.4, tanstack/react-query 5.97.0, tRPC 11.16, lucide-react 1.x, etc.
Misc
Test plan