Skip to content

PromptFixer 0.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 22:33
· 13 commits to master since this release
ee23dd0

Added

  • Fix again with your marks. On the Fixed tab, select any passage of the rewrite and press
    Keep it — I loved it or Change it — I didn't like it. Kept passages are highlighted
    green and passages to change red, in the Diff tab's colours, and the bar counts them. Fix
    again with my marks
    sends the marked rewrite back to the model, which revises it instead of
    starting over. The prompt you wrote stays the yardstick, so the before score, the Diff tab and
    the strength guard measure every attempt against the same original and the scores stay
    comparable. Click a highlight to remove it (from the keyboard, Tab to it and press Enter or
    Space), mark it the other way to change your mind, or press Clear marks. Up to 20 passages
    of each kind can be marked. Marks belong to the one rewrite they were made on: a new fix or a
    step through the fix history drops them.
  • The guard checks your marks the way it checks the strength. Every kept passage has to come back
    word for word, and every passage marked for change has to occur fewer times than it did in the
    marked rewrite. A rewrite that misses a mark is retried once with the missed passages quoted;
    if the retry misses one too, you get the attempt that ignored fewer marks, under a yellow Did
    not follow all of your marks
    warning that says how many. The What changed line of a refined
    result ends "refined with your marks (1 kept, 1 changed)" and counts only the marks the model
    followed. The README's "Rewrite strength, and the guard behind it" has the rules in full.
  • For scripts that call the API: POST /api/fix takes an optional
    feedback: { previous, keep, change } — the rewrite that was marked, and the passages of it to
    keep and to change — while prompt stays the original. The response gains meta.feedback
    (keep, change, missingKeep, unchangedChange), present only when marks were applied, and
    meta.warningKind gains a fourth value, feedback. Marks are coerced rather than refused:
    passages that are not in previous are dropped, duplicates collapse, each list stops at 20
    passages and each passage at 2,000 characters. Only a previous over the 60,000-character
    prompt limit is refused (413). A request without feedback, or with nothing usable in it, is
    the same fix as in 0.1.0.
  • Visual checks for contributors, with Elastishot.
    npm run visual:approve stores pictures of seven screens, each at two window sizes, as the
    approved look; npm run visual captures them again and fails on any difference, naming the
    element behind it. Both start the scripted stub provider and a throwaway server, so no key, no
    model and no network are needed. The approved pictures are per machine and git-ignored
    (.elastishot/), because fonts and antialiasing differ from one machine to the next; for the
    same reason the check is not part of npm run test:all. The screens are listed in
    elastishot.config.mjs.
  • Acceptance Groups M (marking a rewrite and fixing it again, through the API and the browser)
    and N (the visual check, run through the real Elastishot command line). The suite went from 95
    scenarios to 113, of which 102 are automated.
  • scripts/capture-screenshot.mjs reads SHOT_PROMPT (the prompt typed into the editor) and
    SHOT_INTENT (the Task type chosen for it), so the app screenshot can show any prompt, not
    only the blog-post sample.
  • This changelog, the release checklist in docs/RELEASING.md, and a Release
    workflow that builds the Windows installer when a v*.*.* tag is pushed and attaches it, with
    SHA256SUMS.txt, to a draft GitHub release. npm run check:release is the gate in front of
    it: package.json, package-lock.json and this file have to name the same version, and no
    source file may repeat it. Started by hand, the same workflow is a rehearsal: it builds
    everything on the runner and creates no release.
  • A CI workflow. Every push to any branch, and every pull request from a fork, runs the release
    check, the typecheck, the build and the unit and component tests in one job and the acceptance
    suite with the traceability check in another, both on a Windows runner.
  • scripts/capture-screenshot.mjs also reads SHOT_MARKS=1: the rewrite is marked before the
    picture is taken — one passage kept, one to change, chosen from what the model returned and
    still in view — so the app screenshot can show the marks. SHOT_KEEP and SHOT_CHANGE name
    the passages instead.

Changed

  • npm run test:acceptance takes about four minutes instead of about eighty seconds: each of
    Group N's seven scenarios starts the Elastishot command line and a browser of its own.
  • GET /api/health reports the version from package.json instead of a number written into the
    handler, so it cannot fall behind a release.
  • When a fix fails, the error banner is scrolled into view. Pressed from the bottom of a long
    rewrite, a failure used to look like a dead button.
  • The score panel, the issue list, the diff, the Library drawer and the date on a Library entry
    carry data-testid attributes, so the visual check can name them in a report and keep what
    varies between runs off the pictures.

Fixed

  • Saving to the library on Windows failed when another program — an indexer, antivirus, a backup
    tool — had library.json open at that instant, because Windows refuses to rename over an open
    file (EPERM, EBUSY or EACCES). The save now tries the rename again for about a second,
    which outlasts such a reader, and a save that still fails removes its temporary file instead
    of leaving it next to the library.
  • The acceptance harness cleans up after a server that fails to start: the child process is
    stopped and its two temp folders are removed. A start that timed out used to leave the server
    running and the folders behind.

Download: PromptFixer-0.2.0-win-x64.exe (339 MiB). Windows 10/11, 64-bit. The model (2.5 GB, or the 1 GB "lite" tier) is downloaded on first run; installing over an earlier version keeps your library and the model.

Verify: installer SHA-256 0388c49399efb895036f2f75e8a7b09803d613bb56850d9644ed17c7c0b9853e (SHA256SUMS.txt is attached). PowerShell: (Get-FileHash .\PromptFixer-0.2.0-win-x64.exe).Hash.ToLower() must equal it.

Not code-signed yet: Windows shows "Windows protected your PC" - More info, then Run anyway. Compare the hash first. Full guide: docs/INSTALL.md.

Built by the Release workflow from commit ee23dd0.