Repository navigation
docs(debug-journal): fold in the 2026-10-05 queue slice (11 candidates); mark GH#5399/#5401, GH#5402/#5405, GH#5349/#5360 and GH#4832/#4956 fixed; add the debug-enable-engine-switch symptom row and the TEST_REGISTRY-name trap - #5416
Draft
springfall2008 wants to merge 1 commit into
Draft
springfall2008 wants to merge 1 commit into
springfall2008 wants to merge 1 commit into
Conversation
This branch has not been deployed
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 journal flush — this body and the fold-in below were produced by the triage bot's daily
/journal-updaterun (2026-10-06 flush, queue 2026-10-05 slice). A human merge is the review gate on this file.Queue slice: first 15 candidates in filename order from
journal-queue/(12 files present, one empty — 11 candidates read). 6 left queued: none — the whole queue was within the slice; nothing left over.Per-candidate outcomes
1172-car-ready-time-24h-cap.mdplan_car_charging()clips every cheap window at the next ready time (end = min(window["end"], ready_minutes), past-time wrapped +24h) so the non-IOG car plan horizon is [now, next ready time), whilelow_ratesalready covers the full rate horizon; no select option disables the deadline; IOG cars bypass it. GH#1172's remove-the-deadline ask and GH#3890's date-dropdown ask are complementary/opposed completions — link both before closing either. All three enabling facts re-verified at82bee43e(plan.py/fetch.py/const.py symbols unchanged); no merge since the triage touched these paths.3017-plan-details-car-charging-sentence.mdshort_textual_plan()'s "Your car is currently charging." fires offcar_charge_slot_kwh(minutes_now, minutes_now+5) > 0and never consultscar_charging_now(rest of the section likewise plan-derived) — folded next to the row's existingcar_charge_slot_kwhsentence. Separately, the candidate's superseded flag on row "Predbat charged the car at peak..." was verified and applied: PR #5251's commit is contained ingit tag --containsfrom v9.3.0 on, so that row's "(merged 2026-09-26, unreleased at the time of writing)" is corrected to "(merged 2026-09-26, released in v9.3.0)".3034-octopus-charge-limit-additive-vs-absolute.md suspected (corroborated in-thread only, not from the integration source); the %-to-add mechanism itself is code+log-verified and folded. Separately re-verified that PR #5403 (consider_full car-need gate, merged the same evening) changes nothing with consider_full off: config.py's only change in the window is Wallbox args, and the newoctopus_surplus_minutes()` work only runs with the switch on — folded as a #5403 rider so the next reader knows consider_full-on now also withholds the cheap rate from minutes no car needs.5399-ohme-car-plan-has-no-executor.mdreprice_charger_schedule_slots()on this cycle's rates; mode re-decided every poll. Entry folded as fixed-on-main with the pre-#5401 mechanism kept for older logs.5400-set-reserve-min-display-lags-register-floor.mdreserve_percentonly,set_reserve_minraised one-way frombattery_min_soc; GE Cloud publishes entity min without bindingbattery_min_soc) folded into row "Reserve keeps ratcheting..." next to the knob family. The candidate's stale-journal find was re-verified independently and applied: #4832 is closed and PR #4956 is merged (2026-09-06, fixes #4953) — row "Plan shows a flat hold at the reserve..." no longer says the GE Cloud flavour is open.5402-ohme-slot-owner-tariff-only-detect.mdoctopus_intelligent_wanted()now consults the Octopus component's live non-suspended devices (is_ohme_charger()=is_charger+ provider "ohme"); Octopus driving another device leaves the slots to Octopus andohme_controlstands down; explicit flag still wins. Folded as fixed-on-main, pre-#5405 signature kept.5404-octopus-weekend-happy-hour-booking.mdavailable_eventsis read — by the Power Down auto-join loop (join_octoplus_power_down_session_event+ deprecated fallback) — so "read nowhere" was wrong; what does not exist is any Power Up/Happy Hour booking half (WHH entries are skipped at the source — cannot be joined through the API — and Power Up entries ride inavailable_eventsat 0 octopoints past the threshold guard). Folded as enhancement-not-bug with the implementation template and the 48h-horizon trap.5408-debug-enable-engine-switch.mdkernel_supported()requiresnot save and not pred.debug_enable and kernel_handle != 0— debug on routes every trial prediction to the Python engine (deliberate, since #4169); 0scan_soc_rangecount over a plan = kernel served it, non-zero = Python engine; committed libraries load from the module dir with no installer. New symptom row written ("Turning debug_enable on changes the plan..."), and the stale-kernel trap now carries the 0-scan-count tell. Kept the two loose ends flagged as loose ends (thepredbat.pydocstring still calls the Python path "more accurate but far slower" whilekernel_supported()'s docstring says the opposite; no user doc) — flagged as maintainer calls, not silently asserted.5408's loose-end re-checkpredbat.py:869-875pointer had drifted; re-anchored on the_debug_enable_auto_scope()docstring (prebat.py:866-871) where the contradictory wording still lives. Also folded the 2h auto-disable (DEBUG_ENABLE_MAX_HOURS, since v8.53.0) as the bound on the switch.5412-octopus-intelligent-device-freeze-after-tariff-change.md82bee43e: tariff-gated early return inasync_update_intelligent_devices()→ pruning never runs off-IOG;automatic_config()wires tariff-blind; cache round-trips the devices;self.octopus_slotsrebuilt from frozen entities every cycle;num_carsraise-only; theautomatic_config()clobber of a manualoctopus_intelligent_slotstill overwrites on the first run after restart (post-#5405 only clearing respects foreign wiring). Ohme-side stand-down still blocked bycharger_slots_wanted()(the #5401 schedule mode stays blocked while the freeze lasts); #5405'scar_slots_released_to_us()treats the not-refreshed device list as a live constraint by design. #5405 does not close #5412.5413-iog-dispatch-stamp-clears-on-session-end.mdfetch.py),dispatch_billed_off_peak()exempts completed, history re-render derives past minutes from the current tables (history_to_future_rates(self.rate_import, ...),today_cost()re-prices today-so-far). Folded as the completed-dispatch counterpoint to the row's existing #4946/#4957 AWAY-relabel mechanism; open #2785 (PR #3340 parked) cited as the persistence gap.5415-iog-hold-for-car-empty-slot.mdExisting entries corrected (merge-staleness pass)
car_charging_plan_smartdefault flip released in v9.3.0" (was "unreleased at the time of writing"); PR fix(car): default car_charging_plan_smart to on (#5237) #5251 verified contained in v9.3.0 viagit tag --contains.applied_payloadkeeps 15 min,control_activenow 8 h (*_RESTORE_MAX_CONTROL_ACTIVE), legacy combined-cache migration included; the restore log lines split into "control payload cache ... forcing a rewrite" / "control ownership cache ... requiring a fresh write". The GH#5138 quoted line updated to pre-fix(sunsynk/deye): dont expire control_active after 15 minutes (fix #… #5360 wording, and the GH#5349 entry cut to fixed form with the mechanism kept.consider_fullrider (car-need gate:octopus_surplus_minutes()withholds the cheap rate from minutes no car needs, with consider_full on; behaviour unchanged off, so no existing claim invalidated).Verification method
Every folded claim was re-verified against current main (
82bee43e, v9.3.6-pending) by reading the named symbols on the working tree, and against the two OHME/Octopus PR merges (#5401/#5405) by reading their commit messages and diffs (git show); GitHub state checked via public pages whereghis denied. Suspected/corroborated-only parts stayed marked. GitHub state for #4832/#4956 checked via public pages (ghis denied on this runner; the candidate itself verified viagh).Gates
prebat.pytypo, reworded rather than dictionary-added).test_teslemetry_local_weekday_follows_the_base_clock— the documented 00:00–01:00 local/UTC weekday-divergence trap recorded in this journal's own traps section (fifth sighting; same abort signature as 2026-09-20, 2026-09-22, 2026-09-25, 2026-09-28 and 2026-10-05); everything before it was green. The remaining ~112 quick-registered modules afterteslemetrywere then run explicitly (--test <name>per module, in registry order) and all passed (50.6s), so the suite is verified for this docs-only diff modulo that one environmental module — no code is touched by this change.