Skip to content

v3.0.0-rc2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 12:13
· 47 commits to main since this release
6707459

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

Docker images

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

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