Repository navigation
docs(debug-journal): fold the 2026-10-28..29 queue slice (15 of 15 candidates); correct entries overtaken by #5827/#5756/#5731/#5794/#5892 - #5944
Merged
Conversation
springfall2008
marked this pull request as ready for review
November 3, 2026 01:00
springfall2008
enabled auto-merge (squash)
November 3, 2026 01:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated run (journal-update skill, 2026-11-03): folded the first 15 queued candidates in plain filename order (5819–5833) into
tools/debug-journal.md, each re-verified against origin/main (924e0c2d) before landing. 78 candidates remain queued (drained next day). Pre-commit passes (cspell needed one reword instead of a dictionary addition).Per candidate — folded in / rewritten / dropped, and why:
Folded in
getattr(base, hook, None), which a MagicMock base answers with a truthy auto-attribute, entering the hook path with a mock and silently changing refresh return values via the broadexcept. Re-verified both hook sites on main (oauth_mixin.py,gateway.py) and the three explicit-Nonepatches feat(oauth): optional oauth_refresh_provider host hook for token refresh #5819 itself added.!secretnow resolves via the privateSecretYamlLoader(SafeLoader)(PyYAML'sadd_constructorcopies-then-shadows, parent stays clean); bareyaml.loadgrep hits are all ruamel;DebugYamlLoaderis a CLoader/UnsafeLoader descendant; Predbat-written files carry no tags. Merged state, PR fix(config): resolve !secret with a private YAML loader instead of the shared yaml.SafeLoader #5820 (304c7598).compute_schedule()syncs only charge/discharge fields, reserve enterslocal_scheduleonly from Predbat's own paths;minSocOnGrid: 100was accepted and the battery still drained. Line anchors refreshed (compute_schedulenowfox.py:1150) — also corrected the row's driftedfox.py:1080citation.car_slot_owner not in (None, "octopus")(fetch.py) instead of the review-time Ohme-only shape._settable_reserve()maps 81–99 → up to 100 + grid-charge suppression); the two docstrings' conflicting snap stories flagged as unresolved;adjust_reserve()floor andcan_freeze_chargegates as decoders. The candidate's "EnphaseCloud may need the same opt-in" suspicion is now settled on main (config.py opts EnphaseCloud in, comment verified), so it lands as confirmed rather than suspected.soc_percentwins everywhere and a boundsoc_kwis inert; neither key = silent 0.0 with no validation;soc_percentis not a CONFIG_ITEM whilesoc_kwis. Verified the SIGCLOUDsoc_kwrebind still lacksoverwrite=False(sigenergy.py:2669) while itsexport_limit/battery_min_socsiblings have it; re-anchored toinverter.py:1756/:1758andconfig.py:2748.download_predbat_releases()comparingTHIS_VERSIONvs latest regardless of selection) plus the docs caveat (apps-yaml.md, both sections) and the per-cycle Warn-spam note from the same round.get_ha_config()'s caller-default-None path injectsitem["default"]— verified by reading the function (nowuserinterface.py:564);iboost_max_powersub-case noted; distinguished from the null-defeats-default trap.nowlower bound, Clear actions no-op,test_override_time.pypins nothing; the issue's own suggested patch was verified wrong; coordination with open PR Fix manual override wall times across daylight saving changes #5729 flagged.iboost_subtractedand the discard-on-mismatch gate are on main (load_ml_component.pysave/load paths verified), so the mismatch Warn line is folded as expected-not-fault; the general mixing lesson and the ~70% stale-weight figure (calculated, not measured) kept as candidates wrote them.Rewritten (overtaken by what merged since)
baa9929a) and the ML data-prep block now subtracts iBoost/diverter energy (verified:iboost_subtraction()/iboost_subtract_active()+ fetch-time subtraction inload_ml_component.py). Folded as a fixed-with-lesson entry: the structural rule (checkload_forecast_onlybefore telling an ML-source user a standard-path knob helps) and the Extend diverter (iBoost) and EV charging subtraction to short‑term load forecast (already implemented in ML model) #3847 premise note stand; the "no iBoost handling" claim is corrected to fixed.rate_min/rate_maxeven though fix(marginal): base the cheap/moderate sensors on the base tariff, so a free session can't stop them reading cheap #5827 had merged; per 5827's instruction the row now states the bands fromrate_min_base/rate_max_base(attributes already published base values). The "three causes of cheap-never-on" picture updated: binary_sensor.predbat_marginal_rate_now_high_is_cheap not being set #5382 fixed by fix(marginal): base the cheap/moderate sensors on the base tariff, so a free session can't stop them reading cheap #5827, Marginal rate binary sensor anomalies #5107 fixed by fix(marginal): value energy left in the battery when pricing extra load (#5107) #5756 (both noted as merged), Marginal cost cheap sensors can't turn on when the tariff's lowest rate is negative or 0p #5826's multiplier-vs-negative-base-minimum case still open — folded in explicitly (negative base min never qualifies; 0p base min only a ≤0.00 cell qualifies), with web.py matrix + docs consumers for impact sizing.Dropped: none.
Step-3 corrections to existing entries (invalidated by merges since the last journal PR):
b7fa1992) registers anumpy.dtypeconstructor onDebugYamlLoader(verified inuserinterface.py, mutation-checked intest_debug_yaml_scope.py), so theset_python_instance_statewrap is now scoped to older checkouts.5bab173d): local-anchored meters now vote on the meter's own clock, Economy 7 stays UTC; pre-fix(octopus): read TOU labels on the meter's own clock, so local windows survive a clock change #5794 signature kept for older logs,_tou_window_to_localgone.e7d40412); verified the mergedfuturerate_calibrate()carries the same transform-back comments, so the hand-worked facts still describe main.compute_schedule()(fox.py:1080→fox.py:1150) citation while editing that row.Checked and not in need of correction: the SolaX rated-power fallback section (already describes merged #5899), the tooltip-cap row (already records #5643 as merged), the heat_energy$external row (#5867 touched only the history-age math, not the nesting trap), the "Failed to create inverter 0" row (its
reserve_percent_currentformula matches post-#5870 main), andbattery_value_rate()'s description in the #5069/#4840 margin entries (post-#5872 main reads only base-tariff terms, still "replacement import rate").