• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

FlexMeasures / flexmeasures / 30338889679
83%

Build:
DEFAULT BRANCH: main
Ran 28 Jul 2026 07:44AM UTC
Jobs 1
Files 171
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Jul 2026 07:33AM UTC coverage: 82.949% (+0.002%) from 82.947%
30338889679

push

github

web-flow
Fix scheduling jobs failing on a timed_belief UniqueViolation for devices with nested-output-only power sensors (#2360)

* fix: don't emit a device's schedule twice when its power sensor is an output sensor

Since PR #2321, a device that references its power sensor only via a
nested output reference (e.g. {"consumption": {"sensor": N}}) resolves
its power sensor to that output sensor, so it is recognized as a
schedulable device. In StorageScheduler.compute with return_multiple,
that sensor then appeared both as a "storage_schedule" output and as a
"consumption_schedule" output. Both were saved with identical belief
coordinates in the same scheduling-job transaction, guaranteeing a
timed_belief primary-key violation (UniqueViolation) that deterministically
failed the whole job.

Now only the consumption/production output entry is emitted for such a
sensor - the semantically correct one, whose sign conventions are defined
for output sensors (see _build_consumption_production_schedules; the
scheduling service resolves the saving sign via the consumption_is_positive
attribute). As a safety net, all outputs pass through _deduplicate_outputs
before returning, so no sensor can ever appear in more than one output.
The fallback scheduler's return_multiple output now also iterates over the
deduplicated schedule dict instead of the raw per-device sensor list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtuVTVfL4fQ9QSqbLXmAGD
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* docs: changelog entry for duplicate scheduler output fix

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtuVTVfL4fQ9QSqbLXmAGD
Signed-off-by: F.N. Claessen <claessen@seita.nl>

* docs: reference PR in the DeviceRegistry changelog entry instead

The duplicate-output failure is an unreleased regression of the device
inventory work (PR #2321), so it does not merit a standalone... (continued)

13 of 15 new or added lines in 1 file covered. (86.67%)

32 existing lines in 1 file now uncovered.

16005 of 19295 relevant lines covered (82.95%)

0.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
91.23
-0.07% flexmeasures/data/models/planning/storage.py

Coverage Regressions

Lines Coverage ∆ File
32
91.23
-0.07% flexmeasures/data/models/planning/storage.py
Jobs
ID Job ID Ran Files Coverage
1 30338889679.1 28 Jul 2026 07:44AM UTC 171
82.95
GitHub Action Run
Source Files on build 30338889679
  • Tree
  • List 171
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30338889679
  • 45864fd8 on github
  • Prev Build on main (#30252413625)
  • Next Build on main (#30382622534)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc