fix(dashboard): preserve malformed legacy reasoning_effort on unrelated edits - #79486
Open
dbc-hbin wants to merge 2 commits into
Open
fix(dashboard): preserve malformed legacy reasoning_effort on unrelated edits#79486dbc-hbin wants to merge 2 commits into
dbc-hbin wants to merge 2 commits into
Conversation
…ed edits Hydration previously collapsed a malformed legacy reasoning_effort to null, and buildCronJobPayload always emitted the key, so any unrelated dashboard edit (e.g. renaming a job) cleared the stored value via the presence-sensitive backend update. - keep the raw value as distinct editor state (preserve_reasoning_on_save) - omit reasoning_effort from update payloads unless the selector changed - explicit selector changes still emit null (clear) or the valid effort - replace the destructive-rewrite test with a name-only edit regression test Mirrors the desktop editor's reasoningPreserveOnSave semantics.
Contributor
|
Same note as #69911 (this branch is its head + a fix): the core cron reasoning-effort half landed on main via #91244 (43c6dac) — the dashboard/desktop/web surfacing plus your malformed-legacy-value preservation fix remain unlanded and still wanted. A rebase onto current main scoped to the UI half + the presence-sensitive update fix would be very welcome; build on |
This was referenced Aug 21, 2026
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.
Summary
Fixes the dashboard data-loss bug flagged in the #69911 review: a malformed legacy
reasoning_effortstored on a cron job was collapsed tonullon hydration, andbuildCronJobPayloadalways emitted the key on update — so any unrelated dashboard edit (for example renaming a job) cleared the stored value.This branch is #69911's
feat/cron-reasoning-effort-consolidationhead plus one follow-up fix commit, rebased onto the samemain.Problem
cron/jobs.py::update_jobtreatsreasoning_effortas presence-sensitive: an omitted key leaves the stored override unchanged, whilenullremoves it. The web editor always sentreasoning_effort: nullfor a malformed legacy value (e.g." turbo "), so a name-only edit destructively removed the stored value — contradicting the read/preserve compatibility contract.Fix
web/src/lib/cron-job.tsreasoning_effortandpreserve_reasoning_on_saveis set.buildCronJobPayloadomitsreasoning_effortfrom the update payload when the selector was not changed on a malformed legacy value, so unrelated edits preserve it.null(clear) or the chosen value.web/src/pages/CronPage.tsxpreserve_reasoning_on_save, so picking "Inherit / default" on a malformed job explicitly clears it.web/src/lib/cron-job.test.tsnullrewrite with a name-only edit regression test assertingreasoning_effortis omitted from the payload, plus a test that an explicit selector change still clears the value.This mirrors the desktop editor's existing
reasoningPreserveOnSavesemantics inapps/desktop/src/app/cron/cron-job-model.ts.Verification
tsc -p . --noEmit): passed