Commit 4b70bc6
Release 1.2.0 (#87)
* fix(api): resolve all ruff linting errors
- Add TYPE_CHECKING imports for SQLAlchemy forward references
- Fix SQLAlchemy boolean comparisons (use .is_(True) instead of == True)
- Fix SQLAlchemy None comparisons (use .is_(None) instead of == None)
- Remove unused imports and variables
- Remove f-strings without placeholders
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(api): resolve all 204 mypy type errors
- Add TYPE_CHECKING imports for forward references
- Fix implicit Optional (str = None → str | None = None)
- Add missing return type annotations
- Use cast() for Any returns
- Fix SQLAlchemy ORM assignments with type ignore
- Fix variable reuse confusion (renamed result variables)
- Add assertions for None checks before returns
- Fix AsyncGenerator return type for database session
All 62 source files now pass mypy --ignore-missing-imports
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(api): remove unused imports
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ci): add pre-commit hooks for linting
Add pre-commit configuration with hooks for:
- ruff (lint + format) for backend Python code
- mypy type checking for backend
- eslint for frontend TypeScript/React
- tsc type checking for frontend
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): add mypy to dependency-groups for CI type checking
The CI workflow uses `uv sync` which relies on [dependency-groups],
not [project.optional-dependencies]. Added mypy and cleaned up
duplicate dependencies.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.1 [skip ci]
* fix(ci): use semantic-release action for proper GitHub outputs
The previous npx semantic-release command did not set GitHub Actions
outputs, causing Docker builds to be skipped. Using the official
action ensures new_release_published and new_release_version are
properly exposed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): add extra_plugins for semantic-release action
The cycjimmy action uses its own semantic-release installation,
so additional plugins must be specified via extra_plugins input.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.2 [skip ci]
* fix(helm): correct postgres/valkey condition and configmap references
- Fix Chart.yaml: change postgresql.enabled to postgres.enabled condition
- Fix configmap.yaml: update redis references to valkey
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.3 [skip ci]
* feat(helm): migrate from Redis to Valkey
- Replace CloudPirates Redis subchart with Valkey 0.13.0
- Update _helpers.tpl with valkey.* helpers
- Fix secret key to use 'password' (CloudPirates default)
- Update values.yaml for Valkey configuration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.4 [skip ci]
* feat(ci): separate CI/CD pipelines for apps and Helm chart
- Add paths-ignore to release.yml to exclude helm/ changes
- Create helm-ci.yml for chart validation (lint + template) on PRs
- Refactor helm-release.yml with independent semantic-release
- Add .releaserc-helm.yaml for chart-specific versioning (helm-* tags)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.5 [skip ci]
* fix(ci): trigger release only on apps changes
Change from paths-ignore to paths for explicit control:
- apps/** (backend + frontend code)
- package.json, package-lock.json
- .releaserc.yaml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): use helm/vX.X.X tags without GitHub releases
- Change tag format from helm-X.X.X to helm/vX.X.X
- Remove @semantic-release/github plugin (tags only, no releases)
- Update workflow summaries to show new tag format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): use config swap instead of extends for helm release
The extends option tries to npm install the file path.
Instead, temporarily swap .releaserc.yaml with helm config.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(helm): release 1.0.0-dev.1 [skip ci]
* fix(valkey): update existingSecretKey to existingSecretPasswordKey in values.yaml and helpers.tpl
* chore(helm): release 1.0.0-dev.2 [skip ci]
* fix(ci): remove 'v' prefix from helm tags
Tags will now be helm/X.X.X instead of helm/vX.X.X
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(web): handle nested arrays in offpeak_hours parsing
The offpeak_hours field can be stored as:
- Array of strings: ["22:00-06:00"]
- Object with string values: {"default": "22h00-06h00"}
- Object with nested arrays: {"ranges": ["22:00-06:00"]}
The last format (created by backend when syncing with Enedis) was
causing "W.match is not a function" errors because Object.values()
returns the array as-is, not its string contents.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.6 [skip ci]
* fix(web): sync OfferSelector state on page navigation
Simplify the effect that syncs selector dropdowns with the selected offer.
Previously, tracking lastSyncedOfferId in state caused sync issues when
navigating away and back to the Dashboard - the energy provider would
not appear without a manual page refresh.
Now the selectors are always synchronized when selectedOffer becomes
available, ensuring proper display after page navigation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.1.0-dev.7 [skip ci]
* ci: auto-sync develop with main after merge
Add workflow to automatically merge main back into develop after each
push to main. This prevents PR diffs from showing old commits that were
already merged via squash.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(web): add JSON download button for API credentials
Add a download button on the signup success page to save client_id
and client_secret as a JSON file (myelectricaldata-credentials.json).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(web): make login button full width on signup success
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.2.0-dev.1 [skip ci]
* feat(web): mask client_secret and update warning message
- Client secret is now hidden by default with show/hide toggle
- Updated warning message to clarify that client secret can be
regenerated from account settings if lost
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): 1.2.0-dev.2 [skip ci]
* fix(ci): disable ARM64 build by default to speed up CI
- Add build_arm64 input parameter (default: false)
- Build only linux/amd64 by default (fast)
- ARM64 can be enabled manually via workflow_dispatch
- Add 30 minute timeout to prevent stuck builds
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Clément VALENTIN <clement.valentin@blacktiger.tech>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>1 parent 17c66d4 commit 4b70bc6
File tree
11 files changed
+182
-41
lines changed- .github/workflows
- apps
- api
- web
- src
- components
- pages
- utils
11 files changed
+182
-41
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
| |||
62 | 66 | | |
63 | 67 | | |
64 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
65 | 78 | | |
66 | 79 | | |
| 80 | + | |
67 | 81 | | |
68 | 82 | | |
69 | | - | |
| 83 | + | |
70 | 84 | | |
71 | 85 | | |
72 | 86 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
14 | 19 | | |
15 | 20 | | |
16 | 21 | | |
| |||
193 | 198 | | |
194 | 199 | | |
195 | 200 | | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
196 | 210 | | |
197 | 211 | | |
| 212 | + | |
198 | 213 | | |
199 | 214 | | |
200 | | - | |
| 215 | + | |
201 | 216 | | |
202 | 217 | | |
203 | 218 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
8 | 52 | | |
9 | 53 | | |
10 | 54 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
105 | 103 | | |
106 | 104 | | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
113 | 109 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
120 | 113 | | |
121 | | - | |
122 | | - | |
123 | | - | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
124 | 117 | | |
125 | 118 | | |
126 | 119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
94 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
95 | 97 | | |
96 | 98 | | |
97 | 99 | | |
98 | 100 | | |
99 | | - | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
147 | 151 | | |
148 | 152 | | |
149 | 153 | | |
150 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
151 | 157 | | |
152 | 158 | | |
153 | 159 | | |
154 | | - | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
155 | 163 | | |
156 | 164 | | |
157 | 165 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| |||
143 | 144 | | |
144 | 145 | | |
145 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
146 | 164 | | |
147 | 165 | | |
148 | 166 | | |
| |||
161 | 179 | | |
162 | 180 | | |
163 | 181 | | |
164 | | - | |
| 182 | + | |
165 | 183 | | |
166 | 184 | | |
167 | 185 | | |
| |||
188 | 206 | | |
189 | 207 | | |
190 | 208 | | |
191 | | - | |
| 209 | + | |
192 | 210 | | |
193 | 211 | | |
194 | 212 | | |
195 | 213 | | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
196 | 221 | | |
197 | 222 | | |
198 | 223 | | |
| |||
202 | 227 | | |
203 | 228 | | |
204 | 229 | | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
205 | 238 | | |
206 | 239 | | |
207 | 240 | | |
208 | | - | |
| 241 | + | |
209 | 242 | | |
210 | 243 | | |
211 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
20 | | - | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
21 | 28 | | |
22 | 29 | | |
23 | 30 | | |
| |||
0 commit comments