Skip to content

v3.0.0-rc1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 14:08
· 93 commits to main since this release
e88ed3a

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

Docker images

Platforms: linux/amd64, linux/arm64, linux/arm/v7

  • ghcr.io/dombyte/solis:v3.0.0-rc1