Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
91cf5ca
Fix export statement for AdminPanel component
jherforth Apr 23, 2026
dddbce9
Updated env.example
jherforth Apr 23, 2026
5521649
Add Google Calendar 2-way sync
jherforth Apr 23, 2026
eef5534
Simplify Redirect URI editing
jherforth Apr 23, 2026
0435076
Add Google Photos integration
jherforth Apr 23, 2026
61bc3a9
Fix Google Photos scope & improve errors
jherforth Apr 23, 2026
30b4691
Add Google Photos Picker to Photo Widget
jherforth Apr 23, 2026
f6ebcc8
Comment out Google Photos in PhotoWidget
jherforth Apr 24, 2026
86a0452
Add HomeGlow Photos and dedicated upload page
jherforth Apr 24, 2026
b50e24a
Correct text color variable in PhotosUpload component
jherforth Apr 24, 2026
1410a6a
Update PhotosUpload.jsx
jherforth Apr 24, 2026
434b9f2
Update PhotosUpload.jsx
jherforth Apr 24, 2026
408711a
Update PhotosUpload.jsx
jherforth Apr 24, 2026
4b0b699
feat: once completed chore scheduling #82
Szeraax Apr 26, 2026
a2755a8
fix: New Users Unavailable When Adding Chore #85
Szeraax Apr 26, 2026
f8b028b
fix: Refresh Weather Widget Immediately #86
Szeraax Apr 26, 2026
6968fdb
feat: Allow other countries and geo-coding in weather widget #80
Szeraax Apr 27, 2026
7ba5b33
chore: allow enter to save forms
Szeraax Apr 27, 2026
f4b0b21
Revert "Updated HomeGlowLogo.png"
Szeraax Apr 27, 2026
26fdf65
fix: settings should properly serialize JSON values
Szeraax Apr 28, 2026
45a8be4
Can't move/resize plugins #89
Szeraax Apr 28, 2026
10d6750
Grid is Offset to the Right #88
Szeraax Apr 28, 2026
4f46ad6
feat: display hint on first run
Szeraax Apr 29, 2026
7e236a3
Calendar chokes on certain iCal .ics files #92
Szeraax May 2, 2026
ecf82cc
feat: tests! #93
Szeraax May 2, 2026
0c1221d
fix: vulns and package updates
Szeraax May 2, 2026
ac662f2
feat: bump packages and improve loading
Szeraax May 2, 2026
1ca1b09
feat: lazy load components
Szeraax May 2, 2026
aa6bcbe
fix: unable to add ICS calendars since google 2-way introduced
Szeraax May 13, 2026
0b1b7ad
fix: Calendar Text color mismatch on light backgrounds #91
Szeraax May 13, 2026
76382c5
fix: input forms not saving when submitting
Szeraax May 13, 2026
c4dc110
feat: Day/Night mode #60
Szeraax May 13, 2026
565660f
feat: 2-week view #90
Szeraax May 15, 2026
d7564a3
tabs by default #79 - phase 1
Szeraax May 16, 2026
66eb77d
tabs by default #79 - phase 2
Szeraax May 16, 2026
96050c2
update .gitignore
Szeraax May 16, 2026
ff51e5e
rework: device widget settings #98
Szeraax May 16, 2026
f882383
rework: device widget settings #98
Szeraax May 16, 2026
4b83653
rework: device widget settings #98
Szeraax May 16, 2026
a0a9fce
feat: set default calendar view (week vs month) #96
Szeraax May 16, 2026
6b54a89
rework: device widget settings #98
Szeraax May 16, 2026
21f9258
feat: 2-week view #90
Szeraax May 16, 2026
287bec2
fix: lock state should stay local
Szeraax May 17, 2026
2e6c3cc
fix: interface settings should stay local
Szeraax May 17, 2026
77ea823
fix: week view should show times
Szeraax May 17, 2026
6087baf
fix: weather widget caching locations on non-active tabs
Szeraax May 18, 2026
694ff16
Implement new dock-style TabBar UI
jherforth May 19, 2026
06b6a94
Remove 'Show label on tab' toggle
jherforth May 19, 2026
8721019
Remove legacy widget re-add logic
jherforth May 19, 2026
c0da551
Fix screensaver tab ID usage
jherforth May 19, 2026
1f52a82
Fix widget tests for backfill changes
jherforth May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CI Tests

on:
push:
branches:
- '**'

permissions:
contents: read

concurrency:
group: ci-tests-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: frontend
path: ./client
- name: backend
path: ./server

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 20

- name: Install dependencies (${{ matrix.name }})
run: npm install
working-directory: ${{ matrix.path }}

- name: Run tests (${{ matrix.name }})
run: npm test
working-directory: ${{ matrix.path }}
10 changes: 5 additions & 5 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to GHCR
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
Expand All @@ -55,7 +55,7 @@ jobs:
# ,enable={{is_default_branch}} # Could be used if we want to auto-publish on default branch
- name: Generate image metadata
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: |
${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image }}
Expand All @@ -67,7 +67,7 @@ jobs:
org.opencontainers.image.title=${{ matrix.image }}

- name: Build and push ${{ matrix.name }} image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,10 @@
node_modules/
dist/
build/
coverage/
**/coverage/
*.lcov

package-lock.json

.vscode/
3 changes: 0 additions & 3 deletions .vscode/settings.json

This file was deleted.

9 changes: 8 additions & 1 deletion client/nginx.conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
server {
listen ${FRONTEND_PORT};
server_name _;

root /usr/share/nginx/html;
index index.html;

Expand Down Expand Up @@ -67,6 +67,13 @@ server {
add_header Cache-Control "public, immutable";
}

# Keep HTML fresh so clients always discover latest hashed bundles
location = /index.html {
try_files $uri =404;
expires -1;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}

# React Router - serve index.html for all routes
location / {
try_files $uri $uri/ /index.html;
Expand Down
30 changes: 17 additions & 13 deletions client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,33 @@
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
"preview": "vite preview",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "npm run test:clean && vitest run --coverage",
"test:clean": "node -e \"const fs=require('node:fs'); if (fs.existsSync('coverage')) fs.rmSync('coverage',{recursive:true,force:true});\""
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@mui/icons-material": "^7.3.6",
"@mui/material": "^7.3.6",
"axios": "^1.13.2",
"@mui/icons-material": "^9.0.0",
"@mui/material": "^9.0.0",
"axios": "^1.15.2",
"cron-parser": "^5.5.0",
"hammerjs": "^2.0.8",
"moment": "^2.30.1",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"react-big-calendar": "^1.19.4",
"moment": "^2.30.1",
"geopattern": "^1.2.3",
"extend": "3.0.2",
"react-color": "2.19.3",
"recharts": "^3.5.1",
"react-rnd": "^10.5.2",
"react-dom": "^19.2.1",
"react-grid-layout": "^2.1.0",
"cron-parser": "^4.9.0"
"react-rnd": "^10.5.2",
"recharts": "^3.5.1"
},
"devDependencies": {
"vite": "^7.2.7",
"@vitejs/plugin-react": "^5.1.2"
"@vitejs/plugin-react": "^6.0.1",
"@vitest/coverage-v8": "^4.1.5",
"vite": "^8.0.10",
"vitest": "^4.1.5"
}
}
Binary file modified client/public/HomeGlowLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading