Releases: dombyte/solis
Release list
v3.0.0
Changelog
Breaking changes
- b313008 feat!: exit on fatal health escalation instead of restarting in-process
- dc6d3a9 fix!: drop permissive CORS and harden static and error responses
- fb4a6b7 refactor!: remove V1/V2 migrations and refuse pre-V2 databases
- 1e1ec54 refactor!: rewrite the backend for v3
Features
- 490340b feat(config): report every invalid setting with its field path
- 0443819 feat(config): select the configuration file with a -config flag
- 453b588 feat(ui): let users dismiss the update banner
- be397d0 feat(ws): answer ping with pong
- 58481d3 feat: add Modbus RTU transport selected by the address URL scheme
- 64eeb91 feat: add backfill --force to override the history guards
- dc8dddf feat: add debug logging across backend components
- e6f2ff1 feat: add debug logs to the poll cycle
- a99f42e feat: add energy cards and move status helpers into lib/utils
- 4d87088 feat: add the power-flow diagram to the dashboard
- b53b4cb feat: allow up to 256 WebSocket clients
- 6a65bf1 feat: apply the review decisions: cutover offsets, non-root image, examples
- e81219e feat: block pinch zoom in the installed PWA on touch devices
- bcbfe04 feat: embed the web UI and API docs in the binary and serve the version from /api/version
- ff77f81 feat: pin the history chart y-axis while the plot scrolls
- e3bc9d8 feat: polish the history chart and simplify useMobile
- 8522ed3 feat: put the flow diagram and energy cards in one dashboard grid
- d7eb863 feat: raise the default retention to 10 years
- 628e733 feat: rename the energy cards and make the info popovers responsive
- a74e154 feat: replace the flow diagram circles with tiles and use lucide icons
- 5c3eda4 feat: shorten energy labels and use one order across cards and history
- 89ead3a feat: show the energy cards as a swipe carousel on phones
Bug fixes
- 7250362 fix(docker): pass version build info into the dev image
- 0ed51be fix(ui): detect dead WebSocket connections and reconnect faster
- 7aa5096 fix(ui): keep "Last Updated" on the Info page current
- d1ae3a7 fix(ui): keep the desktop sidebar viewport-tall and scroll only the content
- eb743f5 fix(ui): keep the history chart scrolled to the latest entry after the y-axis renders
- 0302382 fix(ui): label monthly and yearly history entries by their period
- 50053d7 fix(ui): link the apple-touch-icon in index.html
- 4280368 fix(ui): release the history chart's end pin only when the view moves left
- 1f66408 fix(ui): size the dashboard grid by its own width and tidy card and table spacing
- d6197d3 fix(ui): toggle away from the shown theme when the setting is "system"
- 2bf0e27 fix(ui): track the resolved theme in the theme provider so the toggle follows OS changes
- 22cc858 fix: apply SQLite pragmas through the DSN on every connection
- 00f88c9 fix: audit findings across backend and frontend
- 7f0eb17 fix: close the leftover findings
- f08cd6c fix: close the remaining backend findings
- 91944cd fix: double-counted energy, lost day closes and backfill overwrites
- f8bfb4b fix: frontend accessibility and UI bugs
- 6d6c3a5 fix: hide the page scrollbar in the installed PWA on touch devices
- debdc65 fix: keep the dashboard reconnecting and never show frozen values
- e90b923 fix: make backups self-contained and migrations refuse unsafe states
- d92dd47 fix: make the light theme and small UI text meet WCAG AA contrast
- aba91fc fix: narrow the pinned y-axis column and align its labels
- 120a136 fix: reject config values that used to be misread silently
- 8e24da7 fix: render the pinned history y-axis as HTML labels from the chart scale
- 0035665 fix: run the container as root again
- b8e2e46 fix: size the history y-axis from its measured tick labels
- fe6ce2b fix: the remaining dashboard findings
- c415341 fix: top-align the mobile nav and clear the iPhone home indicator
- 505f145 fix: track internal/solis sources hidden by the binary ignore rule
Refactoring
- 338203c refactor: bring Go code in line with Arch_Plan
- c6d0e95 refactor: fix lint findings: complexity, line length, duplicate history methods
- 601500c refactor: fold the status timestamp migration into V3
- 131728c refactor: give poller and HTTP server their own settings structs
- 1457553 refactor: give storage and database their own settings structs
- 75a1661 refactor: inject domain config rules from app so config has no domain imports
- 059ba29 refactor: move history data points into their own package
- 3e5e4f3 refactor: move the frontend to WebSocket key subscriptions
- b98ec42 refactor: remove unused ErrorMapper.With
- b655c31 refactor: rename routes to router; fix frontend knip findings
- bca3058 refactor: use single-letter receivers
Documentation
- 6707459 docs: add license, checks, Go version and release badges to the README
- b8907e1 docs: align docs with the code and tighten repo hygiene
- 5fdb9e0 docs: bring the README up to date with the reviewed code
- 0c02392 docs: describe the batch workflow for the migration backlog
- 5201d73 docs: document the database upgrade path to v3 in the README
- c71fc83 docs: follow go-project-standard v3 in AGENTS.md
- 728c5c6 docs: follow go-project-standard v3.1 and clear the migration backlog
- 50ac7d5 docs: follow go-project-standard v3.2
- b170b2c docs: make AGENTS.md self-contained; retire Plan.md
- e00b19d docs: make the agent guide self-contained
- e578b6a docs: replace the README screenshots with one desktop and mobile mockup
- 39aeb70 docs: shorten the README and bring AGENTS.md up to date with the code
- 39021c7 docs: slim the readme down to what users need
- b8f8339 docs: update AGENTS.md for history package and config rules
Dependencies
- ead3605 chore(deps): bump the Go version to 1.26.8
- d58e94e chore(deps): hold typescript below v7 until typescript-eslint supports it
- 78f00b1 chore(deps): lock file maintenance
- 8913139 chore(deps): pin golangci-lint majors and skip the solis image in renovate
- 43112a9 chore(deps): pin loose frontend ranges to the locked versions
- 93a32e7 chore(deps): update actions/setup-node action to v7
- 282079d chore(deps): update dependency @types/node to ^26.6.4
- 4e2df02 chore(deps): update dependency golangci/golangci-lint to v2.14
- 02c2a84 chore(deps): update golang docker tag to v1.27.1
- 7f02bdd chore(deps): update modernc.org/sqlite to v1.60.0
- 58eadeb chore(deps): update module golang.org/x/tools to v0.51.0
- b49446f chore(deps): update npm dependencies
- 269d834 chore(deps): upgrade mockery to v3.8.0
- bf8c75d fix(deps): update dependency lucide-react to ^1.51.0
- 029a54c fix(deps): update dependency lucide-react to ^1.52.0
- c16f422 fix(deps): update module modernc.org/sqlite to v1.60.1
- 30ff50d fix(deps): update npm dependencies
- 5bd1529 fix(deps): update npm dependencies
- 056fff0 fix(deps): update npm dependencies
- ae9de1a fix(deps): update npm dependencies
- 994c237 fix(deps): update npm dependencies
Maintenance
- fbf6a66 build(release): ship web assets in archives and add armv7 images
- 2def508 build(ui): use import.meta.dirname in the vite config
- 7d78db0 chore: add a commented RTU example to the local config and dev compose
- 04c832d chore: adopt conventional commits for changelog grouping
- b37c786 chore: drop ignore entries for the removed ref/ folder
- ec3b068 chore: ignore frontend node_modules in go.mod; run deadcode with -test
- 8bb10ed chore: move pre-commit checks into golangci-lint
- d7a8112 chore: raise local error retention and drop the dev compose command
- 00b9d4a chore: track the example config and compose templates
- f069432 ci(release): only run on semver tags and validate the tag format
- 73cc56e ci: cancel superseded check runs on pull requests
- 23d5b1f ci: drop the golangci-lint regex manager, github-actions already detects it
- 659626f ci: let Renovate see in-range npm updates and pinned Go tools, drop Dependabot
- cda0062 ci: pin Renovate lockfile updates to npm 11
- 7cc87a9 ci: run go mod tidy on every Renovate Go dependency update
- 5f76ea7 ci: run mockery as a go tool to avoid checksum-db lookups in CI
- c1c3684 ci: skip Renovate major updates for go run tools
- b889b7d ci: skip the checks on main for merge commits of already checked PRs
- f1d9857 style: enable gofumpt and goimports formatters and reformat
- 816634d test(health): wait on the snapshot, not the factory count, for the restart budget test
- f7b8179 test: run table-driven tests in parallel
Other changes
- b99859a Core: Bug Fixes
- 3c25508 Core: Bug Fixes 2
- dfa97dc Core: Bug Fixes 3
- 7f3f751 Core: Compliance 1
- c929b27 Core: Compliance 2
- ccd3389 Core: Compliance 3
- 2f6c2ce Core: Compliance 4
- de549b5 Core: Compliance 5
- 31aa7c0 Core: Migration file change
- 979ebbe Core: Poller updates
- 5b519f8 Core: Some bug fixes
- ec0d434 Migrate config renovate.json
- 1185906 Remove old files
- 87d1d02 Removed dedcode
- fa858b4 UI: Manifest fix
- 71bb653 UI: Manifest fix 2
- f789e10 UI: Removed PWA Deps and moved to Simpler Approach
- 6f18163 UI: Small Fix
- d5f621c Update golang Docker tag to v1.27.1
- f80e083 Update module modernc.org/sqlite to v1.59.0
- ce0e678 Update renovate
- ca93427 Update renovate 2
- ce8f86a Update renovate 3
- c3a041b Update renovate 4
- 72ff157 Update renovate 5
- 806d653 compliance 1
- d8496cf fmt
Docker images
Platforms: linux/amd64, linux/arm64, linux/arm/v7
ghcr.io/dombyte/solis:v3.0.0ghcr.io/dombyte/solis:v3.0ghcr.io/dombyte/solis:v3ghcr.io/dombyte/solis:latest
v3.0.0-rc3
Warning
This is a pre-release version. Use with caution and report any issues you encounter.
Changelog
Breaking changes
- b313008 feat!: exit on fatal health escalation instead of restarting in-process
- dc6d3a9 fix!: drop permissive CORS and harden static and error responses
- fb4a6b7 refactor!: remove V1/V2 migrations and refuse pre-V2 databases
- 1e1ec54 refactor!: rewrite the backend for v3
Features
- 490340b feat(config): report every invalid setting with its field path
- 0443819 feat(config): select the configuration file with a -config flag
- be397d0 feat(ws): answer ping with pong
- 58481d3 feat: add Modbus RTU transport selected by the address URL scheme
- 64eeb91 feat: add backfill --force to override the history guards
- dc8dddf feat: add debug logging across backend components
- e6f2ff1 feat: add debug logs to the poll cycle
- a99f42e feat: add energy cards and move status helpers into lib/utils
- 4d87088 feat: add the power-flow diagram to the dashboard
- b53b4cb feat: allow up to 256 WebSocket clients
- 6a65bf1 feat: apply the review decisions: cutover offsets, non-root image, examples
- e81219e feat: block pinch zoom in the installed PWA on touch devices
- ff77f81 feat: pin the history chart y-axis while the plot scrolls
- e3bc9d8 feat: polish the history chart and simplify useMobile
- 8522ed3 feat: put the flow diagram and energy cards in one dashboard grid
- d7eb863 feat: raise the default retention to 10 years
- 628e733 feat: rename the energy cards and make the info popovers responsive
- a74e154 feat: replace the flow diagram circles with tiles and use lucide icons
- 5c3eda4 feat: shorten energy labels and use one order across cards and history
- 89ead3a feat: show the energy cards as a swipe carousel on phones
Bug fixes
- 7250362 fix(docker): pass version build info into the dev image
- 0ed51be fix(ui): detect dead WebSocket connections and reconnect faster
- 7aa5096 fix(ui): keep "Last Updated" on the Info page current
- d1ae3a7 fix(ui): keep the desktop sidebar viewport-tall and scroll only the content
- eb743f5 fix(ui): keep the history chart scrolled to the latest entry after the y-axis renders
- 0302382 fix(ui): label monthly and yearly history entries by their period
- 50053d7 fix(ui): link the apple-touch-icon in index.html
- 4280368 fix(ui): release the history chart's end pin only when the view moves left
- 1f66408 fix(ui): size the dashboard grid by its own width and tidy card and table spacing
- d6197d3 fix(ui): toggle away from the shown theme when the setting is "system"
- 2bf0e27 fix(ui): track the resolved theme in the theme provider so the toggle follows OS changes
- 22cc858 fix: apply SQLite pragmas through the DSN on every connection
- 00f88c9 fix: audit findings across backend and frontend
- 7f0eb17 fix: close the leftover findings
- f08cd6c fix: close the remaining backend findings
- 91944cd fix: double-counted energy, lost day closes and backfill overwrites
- f8bfb4b fix: frontend accessibility and UI bugs
- 6d6c3a5 fix: hide the page scrollbar in the installed PWA on touch devices
- debdc65 fix: keep the dashboard reconnecting and never show frozen values
- e90b923 fix: make backups self-contained and migrations refuse unsafe states
- d92dd47 fix: make the light theme and small UI text meet WCAG AA contrast
- aba91fc fix: narrow the pinned y-axis column and align its labels
- 120a136 fix: reject config values that used to be misread silently
- 8e24da7 fix: render the pinned history y-axis as HTML labels from the chart scale
- 0035665 fix: run the container as root again
- b8e2e46 fix: size the history y-axis from its measured tick labels
- fe6ce2b fix: the remaining dashboard findings
- c415341 fix: top-align the mobile nav and clear the iPhone home indicator
- 505f145 fix: track internal/solis sources hidden by the binary ignore rule
Refactoring
- 338203c refactor: bring Go code in line with Arch_Plan
- c6d0e95 refactor: fix lint findings: complexity, line length, duplicate history methods
- 601500c refactor: fold the status timestamp migration into V3
- 131728c refactor: give poller and HTTP server their own settings structs
- 1457553 refactor: give storage and database their own settings structs
- 75a1661 refactor: inject domain config rules from app so config has no domain imports
- 059ba29 refactor: move history data points into their own package
- 3e5e4f3 refactor: move the frontend to WebSocket key subscriptions
- b98ec42 refactor: remove unused ErrorMapper.With
- b655c31 refactor: rename routes to router; fix frontend knip findings
- bca3058 refactor: use single-letter receivers
Documentation
- 6707459 docs: add license, checks, Go version and release badges to the README
- b8907e1 docs: align docs with the code and tighten repo hygiene
- 5fdb9e0 docs: bring the README up to date with the reviewed code
- 0c02392 docs: describe the batch workflow for the migration backlog
- 5201d73 docs: document the database upgrade path to v3 in the README
- c71fc83 docs: follow go-project-standard v3 in AGENTS.md
- 728c5c6 docs: follow go-project-standard v3.1 and clear the migration backlog
- 50ac7d5 docs: follow go-project-standard v3.2
- b170b2c docs: make AGENTS.md self-contained; retire Plan.md
- e578b6a docs: replace the README screenshots with one desktop and mobile mockup
- 39aeb70 docs: shorten the README and bring AGENTS.md up to date with the code
- b8f8339 docs: update AGENTS.md for history package and config rules
Dependencies
- ead3605 chore(deps): bump the Go version to 1.26.8
- d58e94e chore(deps): hold typescript below v7 until typescript-eslint supports it
- 78f00b1 chore(deps): lock file maintenance
- 43112a9 chore(deps): pin loose frontend ranges to the locked versions
- 93a32e7 chore(deps): update actions/setup-node action to v7
- 4e2df02 chore(deps): update dependency golangci/golangci-lint to v2.14
- 02c2a84 chore(deps): update golang docker tag to v1.27.1
- 7f02bdd chore(deps): update modernc.org/sqlite to v1.60.0
- c16f422 fix(deps): update module modernc.org/sqlite to v1.60.1
- 30ff50d fix(deps): update npm dependencies
- 994c237 fix(deps): update npm dependencies
- 056fff0 fix(deps): update npm dependencies
Maintenance
- fbf6a66 build(release): ship web assets in archives and add armv7 images
- 2def508 build(ui): use import.meta.dirname in the vite config
- 7d78db0 chore: add a commented RTU example to the local config and dev compose
- 04c832d chore: adopt conventional commits for changelog grouping
- b37c786 chore: drop ignore entries for the removed ref/ folder
- ec3b068 chore: ignore frontend node_modules in go.mod; run deadcode with -test
- 8bb10ed chore: move pre-commit checks into golangci-lint
- d7a8112 chore: raise local error retention and drop the dev compose command
- 00b9d4a chore: track the example config and compose templates
- 73cc56e ci: cancel superseded check runs on pull requests
- 23d5b1f ci: drop the golangci-lint regex manager, github-actions already detects it
- 659626f ci: let Renovate see in-range npm updates and pinned Go tools, drop Dependabot
- cda0062 ci: pin Renovate lockfile updates to npm 11
- 7cc87a9 ci: run go mod tidy on every Renovate Go dependency update
- c1c3684 ci: skip Renovate major updates for go run tools
- b889b7d ci: skip the checks on main for merge commits of already checked PRs
- f1d9857 style: enable gofumpt and goimports formatters and reformat
- 816634d test(health): wait on the snapshot, not the factory count, for the restart budget test
- f7b8179 test: run table-driven tests in parallel
Other changes
- b99859a Core: Bug Fixes
- 3c25508 Core: Bug Fixes 2
- dfa97dc Core: Bug Fixes 3
- 7f3f751 Core: Compliance 1
- c929b27 Core: Compliance 2
- ccd3389 Core: Compliance 3
- 2f6c2ce Core: Compliance 4
- de549b5 Core: Compliance 5
- 31aa7c0 Core: Migration file change
- 979ebbe Core: Poller updates
- 5b519f8 Core: Some bug fixes
- ec0d434 Migrate config renovate.json
- 1185906 Remove old files
- 87d1d02 Removed dedcode
- fa858b4 UI: Manifest fix
- 71bb653 UI: Manifest fix 2
- f789e10 UI: Removed PWA Deps and moved to Simpler Approach
- 6f18163 UI: Small Fix
- d5f621c Update golang Docker tag to v1.27.1
- f80e083 Update module modernc.org/sqlite to v1.59.0
- ce0e678 Update renovate
- ca93427 Update renovate 2
- ce8f86a Update renovate 3
- c3a041b Update renovate 4
- 72ff157 Update renovate 5
- 806d653 compliance 1
- d8496cf fmt
Docker images
Platforms: linux/amd64, linux/arm64, linux/arm/v7
ghcr.io/dombyte/solis:v3.0.0-rc3
v3.0.0-rc2
Warning
This is a pre-release version. Use with caution and report any issues you encounter.
Changelog
Breaking changes
- b313008 feat!: exit on fatal health escalation instead of restarting in-process
- dc6d3a9 fix!: drop permissive CORS and harden static and error responses
- fb4a6b7 refactor!: remove V1/V2 migrations and refuse pre-V2 databases
- 1e1ec54 refactor!: rewrite the backend for v3
Features
- 490340b feat(config): report every invalid setting with its field path
- 0443819 feat(config): select the configuration file with a -config flag
- be397d0 feat(ws): answer ping with pong
- 58481d3 feat: add Modbus RTU transport selected by the address URL scheme
- 64eeb91 feat: add backfill --force to override the history guards
- dc8dddf feat: add debug logging across backend components
- e6f2ff1 feat: add debug logs to the poll cycle
- a99f42e feat: add energy cards and move status helpers into lib/utils
- 4d87088 feat: add the power-flow diagram to the dashboard
- b53b4cb feat: allow up to 256 WebSocket clients
- 6a65bf1 feat: apply the review decisions: cutover offsets, non-root image, examples
- e81219e feat: block pinch zoom in the installed PWA on touch devices
- ff77f81 feat: pin the history chart y-axis while the plot scrolls
- e3bc9d8 feat: polish the history chart and simplify useMobile
- 8522ed3 feat: put the flow diagram and energy cards in one dashboard grid
- d7eb863 feat: raise the default retention to 10 years
- 628e733 feat: rename the energy cards and make the info popovers responsive
- a74e154 feat: replace the flow diagram circles with tiles and use lucide icons
- 5c3eda4 feat: shorten energy labels and use one order across cards and history
- 89ead3a feat: show the energy cards as a swipe carousel on phones
Bug fixes
- 7250362 fix(docker): pass version build info into the dev image
- 0ed51be fix(ui): detect dead WebSocket connections and reconnect faster
- 50053d7 fix(ui): link the apple-touch-icon in index.html
- 22cc858 fix: apply SQLite pragmas through the DSN on every connection
- 00f88c9 fix: audit findings across backend and frontend
- 7f0eb17 fix: close the leftover findings
- f08cd6c fix: close the remaining backend findings
- 91944cd fix: double-counted energy, lost day closes and backfill overwrites
- f8bfb4b fix: frontend accessibility and UI bugs
- 6d6c3a5 fix: hide the page scrollbar in the installed PWA on touch devices
- debdc65 fix: keep the dashboard reconnecting and never show frozen values
- e90b923 fix: make backups self-contained and migrations refuse unsafe states
- d92dd47 fix: make the light theme and small UI text meet WCAG AA contrast
- aba91fc fix: narrow the pinned y-axis column and align its labels
- 120a136 fix: reject config values that used to be misread silently
- 8e24da7 fix: render the pinned history y-axis as HTML labels from the chart scale
- 0035665 fix: run the container as root again
- b8e2e46 fix: size the history y-axis from its measured tick labels
- fe6ce2b fix: the remaining dashboard findings
- c415341 fix: top-align the mobile nav and clear the iPhone home indicator
- 505f145 fix: track internal/solis sources hidden by the binary ignore rule
Refactoring
- 338203c refactor: bring Go code in line with Arch_Plan
- c6d0e95 refactor: fix lint findings: complexity, line length, duplicate history methods
- 601500c refactor: fold the status timestamp migration into V3
- 131728c refactor: give poller and HTTP server their own settings structs
- 1457553 refactor: give storage and database their own settings structs
- 75a1661 refactor: inject domain config rules from app so config has no domain imports
- 059ba29 refactor: move history data points into their own package
- 3e5e4f3 refactor: move the frontend to WebSocket key subscriptions
- b98ec42 refactor: remove unused ErrorMapper.With
- b655c31 refactor: rename routes to router; fix frontend knip findings
- bca3058 refactor: use single-letter receivers
Documentation
- 6707459 docs: add license, checks, Go version and release badges to the README
- b8907e1 docs: align docs with the code and tighten repo hygiene
- 5fdb9e0 docs: bring the README up to date with the reviewed code
- 0c02392 docs: describe the batch workflow for the migration backlog
- 5201d73 docs: document the database upgrade path to v3 in the README
- c71fc83 docs: follow go-project-standard v3 in AGENTS.md
- 728c5c6 docs: follow go-project-standard v3.1 and clear the migration backlog
- 50ac7d5 docs: follow go-project-standard v3.2
- b170b2c docs: make AGENTS.md self-contained; retire Plan.md
- 39aeb70 docs: shorten the README and bring AGENTS.md up to date with the code
- b8f8339 docs: update AGENTS.md for history package and config rules
Dependencies
- ead3605 chore(deps): bump the Go version to 1.26.8
- d58e94e chore(deps): hold typescript below v7 until typescript-eslint supports it
- 78f00b1 chore(deps): lock file maintenance
- 43112a9 chore(deps): pin loose frontend ranges to the locked versions
- 93a32e7 chore(deps): update actions/setup-node action to v7
- 4e2df02 chore(deps): update dependency golangci/golangci-lint to v2.14
- 02c2a84 chore(deps): update golang docker tag to v1.27.1
- 7f02bdd chore(deps): update modernc.org/sqlite to v1.60.0
- c16f422 fix(deps): update module modernc.org/sqlite to v1.60.1
- 056fff0 fix(deps): update npm dependencies
- 994c237 fix(deps): update npm dependencies
Maintenance
- fbf6a66 build(release): ship web assets in archives and add armv7 images
- 7d78db0 chore: add a commented RTU example to the local config and dev compose
- 04c832d chore: adopt conventional commits for changelog grouping
- b37c786 chore: drop ignore entries for the removed ref/ folder
- ec3b068 chore: ignore frontend node_modules in go.mod; run deadcode with -test
- 8bb10ed chore: move pre-commit checks into golangci-lint
- d7a8112 chore: raise local error retention and drop the dev compose command
- 00b9d4a chore: track the example config and compose templates
- 73cc56e ci: cancel superseded check runs on pull requests
- 23d5b1f ci: drop the golangci-lint regex manager, github-actions already detects it
- 659626f ci: let Renovate see in-range npm updates and pinned Go tools, drop Dependabot
- cda0062 ci: pin Renovate lockfile updates to npm 11
- 7cc87a9 ci: run go mod tidy on every Renovate Go dependency update
- c1c3684 ci: skip Renovate major updates for go run tools
- b889b7d ci: skip the checks on main for merge commits of already checked PRs
- f1d9857 style: enable gofumpt and goimports formatters and reformat
- 816634d test(health): wait on the snapshot, not the factory count, for the restart budget test
- f7b8179 test: run table-driven tests in parallel
Other changes
- b99859a Core: Bug Fixes
- 3c25508 Core: Bug Fixes 2
- dfa97dc Core: Bug Fixes 3
- 7f3f751 Core: Compliance 1
- c929b27 Core: Compliance 2
- ccd3389 Core: Compliance 3
- 2f6c2ce Core: Compliance 4
- de549b5 Core: Compliance 5
- 31aa7c0 Core: Migration file change
- 979ebbe Core: Poller updates
- 5b519f8 Core: Some bug fixes
- ec0d434 Migrate config renovate.json
- 1185906 Remove old files
- 87d1d02 Removed dedcode
- fa858b4 UI: Manifest fix
- 71bb653 UI: Manifest fix 2
- f789e10 UI: Removed PWA Deps and moved to Simpler Approach
- 6f18163 UI: Small Fix
- d5f621c Update golang Docker tag to v1.27.1
- f80e083 Update module modernc.org/sqlite to v1.59.0
- ce0e678 Update renovate
- ca93427 Update renovate 2
- ce8f86a Update renovate 3
- c3a041b Update renovate 4
- 72ff157 Update renovate 5
- 806d653 compliance 1
- d8496cf fmt
Docker images
Platforms: linux/amd64, linux/arm64, linux/arm/v7
ghcr.io/dombyte/solis:v3.0.0-rc2
v3.0.0-rc1
Warning
This is a pre-release version. Use with caution and report any issues you encounter.
Changelog
Breaking changes
- b313008 feat!: exit on fatal health escalation instead of restarting in-process
- dc6d3a9 fix!: drop permissive CORS and harden static and error responses
- fb4a6b7 refactor!: remove V1/V2 migrations and refuse pre-V2 databases
- 1e1ec54 refactor!: rewrite the backend for v3
Features
- 58481d3 feat: add Modbus RTU transport selected by the address URL scheme
- 64eeb91 feat: add backfill --force to override the history guards
- dc8dddf feat: add debug logging across backend components
- e6f2ff1 feat: add debug logs to the poll cycle
- a99f42e feat: add energy cards and move status helpers into lib/utils
- 4d87088 feat: add the power-flow diagram to the dashboard
- b53b4cb feat: allow up to 256 WebSocket clients
- 6a65bf1 feat: apply the review decisions: cutover offsets, non-root image, examples
- e81219e feat: block pinch zoom in the installed PWA on touch devices
- ff77f81 feat: pin the history chart y-axis while the plot scrolls
- e3bc9d8 feat: polish the history chart and simplify useMobile
- 8522ed3 feat: put the flow diagram and energy cards in one dashboard grid
- d7eb863 feat: raise the default retention to 10 years
- 628e733 feat: rename the energy cards and make the info popovers responsive
- a74e154 feat: replace the flow diagram circles with tiles and use lucide icons
- 5c3eda4 feat: shorten energy labels and use one order across cards and history
- 89ead3a feat: show the energy cards as a swipe carousel on phones
Bug fixes
- 22cc858 fix: apply SQLite pragmas through the DSN on every connection
- 00f88c9 fix: audit findings across backend and frontend
- 7f0eb17 fix: close the leftover findings
- f08cd6c fix: close the remaining backend findings
- 91944cd fix: double-counted energy, lost day closes and backfill overwrites
- f8bfb4b fix: frontend accessibility and UI bugs
- 6d6c3a5 fix: hide the page scrollbar in the installed PWA on touch devices
- debdc65 fix: keep the dashboard reconnecting and never show frozen values
- e90b923 fix: make backups self-contained and migrations refuse unsafe states
- d92dd47 fix: make the light theme and small UI text meet WCAG AA contrast
- aba91fc fix: narrow the pinned y-axis column and align its labels
- 120a136 fix: reject config values that used to be misread silently
- 8e24da7 fix: render the pinned history y-axis as HTML labels from the chart scale
- 0035665 fix: run the container as root again
- b8e2e46 fix: size the history y-axis from its measured tick labels
- fe6ce2b fix: the remaining dashboard findings
- c415341 fix: top-align the mobile nav and clear the iPhone home indicator
- 505f145 fix: track internal/solis sources hidden by the binary ignore rule
Refactoring
- 338203c refactor: bring Go code in line with Arch_Plan
- c6d0e95 refactor: fix lint findings: complexity, line length, duplicate history methods
- 601500c refactor: fold the status timestamp migration into V3
- 131728c refactor: give poller and HTTP server their own settings structs
- 1457553 refactor: give storage and database their own settings structs
- 75a1661 refactor: inject domain config rules from app so config has no domain imports
- 059ba29 refactor: move history data points into their own package
- 3e5e4f3 refactor: move the frontend to WebSocket key subscriptions
- b98ec42 refactor: remove unused ErrorMapper.With
- b655c31 refactor: rename routes to router; fix frontend knip findings
- bca3058 refactor: use single-letter receivers
Documentation
- b8907e1 docs: align docs with the code and tighten repo hygiene
- 5fdb9e0 docs: bring the README up to date with the reviewed code
- 5201d73 docs: document the database upgrade path to v3 in the README
- b170b2c docs: make AGENTS.md self-contained; retire Plan.md
- 39aeb70 docs: shorten the README and bring AGENTS.md up to date with the code
- b8f8339 docs: update AGENTS.md for history package and config rules
Dependencies
- ead3605 chore(deps): bump the Go version to 1.26.8
- 7f02bdd chore(deps): update modernc.org/sqlite to v1.60.0
Maintenance
- fbf6a66 build(release): ship web assets in archives and add armv7 images
- 7d78db0 chore: add a commented RTU example to the local config and dev compose
- 04c832d chore: adopt conventional commits for changelog grouping
- ec3b068 chore: ignore frontend node_modules in go.mod; run deadcode with -test
- 8bb10ed chore: move pre-commit checks into golangci-lint
- d7a8112 chore: raise local error retention and drop the dev compose command
- 00b9d4a chore: track the example config and compose templates
- f1d9857 style: enable gofumpt and goimports formatters and reformat
Other changes
- b99859a Core: Bug Fixes
- 3c25508 Core: Bug Fixes 2
- dfa97dc Core: Bug Fixes 3
- 7f3f751 Core: Compliance 1
- c929b27 Core: Compliance 2
- ccd3389 Core: Compliance 3
- 2f6c2ce Core: Compliance 4
- de549b5 Core: Compliance 5
- 31aa7c0 Core: Migration file change
- 979ebbe Core: Poller updates
- 5b519f8 Core: Some bug fixes
- ec0d434 Migrate config renovate.json
- 1185906 Remove old files
- 87d1d02 Removed dedcode
- fa858b4 UI: Manifest fix
- 71bb653 UI: Manifest fix 2
- f789e10 UI: Removed PWA Deps and moved to Simpler Approach
- 6f18163 UI: Small Fix
- d5f621c Update golang Docker tag to v1.27.1
- f80e083 Update module modernc.org/sqlite to v1.59.0
- ce0e678 Update renovate
- ca93427 Update renovate 2
- ce8f86a Update renovate 3
- c3a041b Update renovate 4
- 72ff157 Update renovate 5
- 806d653 compliance 1
- d8496cf fmt
Docker images
Platforms: linux/amd64, linux/arm64, linux/arm/v7
ghcr.io/dombyte/solis:v3.0.0-rc1
v2.1.0
solis v2.1.0 is available!
Changelog
Full Changelog: v2.0.0...v2.1.0
Docker Images
-
ghcr.io/dombyte/solis:v2.1.0 -
ghcr.io/dombyte/solis:latest
v2.0.0
solis v2.0.0 is available!
Changelog
-
Add desktop and mobile sections to README by @dombyte in #23906ae
-
Update golang Docker tag to v1.27.0 by @renovate[bot] in #d8d7020
-
Update module github.com/go-chi/chi/v5 to v5.3.2 by @dombyte in #17f505e
-
Update module modernc.org/sqlite to v1.57.0 by @renovate[bot] in #1d59a14
-
refactor: v2 API redesign with modbus migration and register standardization by @dombyte in #7c6de8c
Full Changelog: v1.4.0...v2.0.0
Docker Images
-
ghcr.io/dombyte/solis:v2.0.0 -
ghcr.io/dombyte/solis:latest
v1.4.0
solis v1.4.0 is available!
Changelog
-
Update actions/setup-go action to v7 by @renovate[bot] in #3f2dbcb
-
Update github.com/grid-x/modbus digest to 82e41c9 by @renovate[bot] in #3eff2e9
-
Update golang Docker tag to v1.26.5 by @renovate[bot] in #e3c4231
-
Update golang Docker tag to v1.26.5 by @renovate[bot] in #90733e9
-
Update module github.com/go-chi/chi/v5 to v5.3.1 by @renovate[bot] in #09a83c9
Full Changelog: v1.3.0...v1.4.0
Docker Images
-
ghcr.io/dombyte/solis:v1.4.0 -
ghcr.io/dombyte/solis:latest
v1.3.0
solis v1.3.0 is available!
Changelog
Full Changelog: v1.2.2...v1.3.0
Docker Images
-
ghcr.io/dombyte/solis:v1.3.0 -
ghcr.io/dombyte/solis:latest
v1.2.2
v1.2.1
solis v1.2.1 is available!
Changelog
Full Changelog: v1.2.0...v1.2.1
Docker Images
-
ghcr.io/dombyte/solis:v1.2.1 -
ghcr.io/dombyte/solis:latest