Skip to content

Recover fixes that were pushed after their PRs merged - #75

Merged
JeremySNR merged 6 commits into
mainfrom
fix/recover-lost-fixes
Sep 23, 2026
Merged

JeremySNR merged 6 commits into
mainfrom
fix/recover-lost-fixes

Conversation

@JeremySNR

@JeremySNR JeremySNR commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Release notes

  • Fixed: If Cutawan couldn't restart itself after updating a source checkout, trying again now finishes the update instead of reporting "already up to date".
  • Fixed: On Windows, a Python or other command launcher (such as one from conda) is no longer mistaken for a broken Codex install.
  • Fixed: AI connections that don't support strict JSON output (some local and OpenAI-compatible models) are now told exactly what shape to reply in, and a malformed reply is retried instead of failing.
  • Fixed: A size-limited export that still ends up over the limit now says so plainly.

What does this change?

While cleaning up old branches, I compared every branch with its PR. Ten branches had one commit pushed after their PR merged, so it never reached main. Six were already covered by later work or no longer needed. This brings in the other four, plus a winget release fix:

Original commit From Fix
7b0af89 fix/dev-update-black-screen (#45) Retry after a failed restart finishes a built source update instead of re-pulling
646bd18 codex/video-quality-improvements (#59) Only codex.cmd is treated as a Codex shim on Windows; other .cmd launchers run via a shell. Ported by hand, since the file had changed
03afb8a cursor/openai-compatible-endpoints-627e (#56) json_object and plain fallbacks include the schema; invalid JSON moves on to the next format
ef5810b cursor/size-targeted-export-627e (#55) Warn when a capped export is still over the limit
a049ea5 cursor/winget-manifest-627e (#57) The winget job uses the package.json version as its release tag. It still only runs once winget is configured

Cherry-picks keep (cherry picked from commit …) trailers.

How did you test it?

  • npm test (582). New tests cover the schema fallback and the restart retry. The retry test fails on the previous code.
  • npm run typecheck, npm run lint

🤖 Generated with Claude Code


Note

Medium Risk
Touches source-update relaunch, Windows process spawning for local Whisper/Codex, and the structured-output fallback path used across analysis—high user impact but scoped changes with new tests.

Overview
Bundles several fixes that never landed on main after their original PRs merged, plus a small release-workflow tweak.

Source checkout updates now remember when pull/build already finished but restart failed (relaunchPending). A retry goes straight to Restarting… instead of pulling again and hitting “already up to date.”

OpenAI-compatible analysis adds explicit schema text on json_object / plain fallbacks, validates parsed JSON before accepting a response, and retries the next format when the model returns prose or invalid JSON.

On Windows, only codex.cmd is resolved to the Codex JS entry; other .cmd shims (e.g. conda python.cmd) run through cmd.exe with properly quoted arguments via new cmdLine.

Size-targeted exports clarify that overBudget is a quality warning, not a guarantee under the cap; the editor shows a dedicated message when the finished file’s bytes exceed sizeTargetBytes.

The winget release job checks out the repo, reads package.json for the version, and passes release-tag to winget-releaser. CHANGELOG documents the fixes under [Unreleased].

Reviewed by Cursor Bugbot for commit 747d72c. Bugbot is set up for automated code reviews on this repo. Configure here.

cursoragent and others added 6 commits September 23, 2026 12:05
After a failed process handover the pull, install and rebuild have all
succeeded, but Retry re-ran updateFromSource from the top and aborted on
the now no-op pull with a misleading 'already up to date' error. Remember
that only the relaunch is outstanding and jump straight back to it.

(cherry picked from commit 7b0af89)
When json_schema is rejected, json_object and plain fallbacks now append
the schema to the conversation so compatible providers know the expected
shape. Also advance to the next format when a 200 response contains
unparseable text instead of retrying the same format.

(cherry picked from commit 03afb8a)
…dget

Detect post-export cap exceedance by comparing finished file bytes to
sizeTargetBytes, show an explicit over-limit warning, and stop implying
downscaling or overBudget alone guarantees the file fits. Update planner
and ExportResult docs to note the bitrate floor can push output over cap.

(cherry picked from commit ef5810b)
When the release workflow runs from a Release v commit or
workflow_dispatch on main, winget-releaser falls back to github.ref_name
(main) without an explicit release-tag. Read the version from
package.json like the notes job and pass v$version.

(cherry picked from commit a049ea5)
…fixes

These fixes were pushed to their branches after the PRs had merged, so they
never reached main:
- Windows: only codex.cmd is run as a Codex shim; other .cmd launchers
  (e.g. a conda python.cmd) run through a shell (port of 646bd18).
- Tests for the OpenAI schema fallback and the source-update restart retry
  (the latter fails on the previous code).
- Release notes for all recovered fixes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
cmd.exe splits unquoted paths at spaces (a profile like C:\Users\Jane Doe
or Program Files), so the recovered launcher fix still failed there. Pass
one fully quoted command line instead.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@JeremySNR
JeremySNR merged commit 7509860 into main Sep 23, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants