Skip to content

jig v1.9.0 — the transcript you can touch

Choose a tag to compare

@TheSashaDev TheSashaDev released this 03 Aug 20:27
· 3 commits to master since this release

jig v1.9.0 — the transcript you can touch

v1.9.0 is a UX batch: the transcript is now fully interactive — click
thinking, drag the scrollbar, unfold tools one stage at a time, read real
diffs — and the harness stops cutting turns short. It also removes every
harness-imposed output cap and fixes a provider error that killed turns after
1–3 messages.

Interactive transcript

  • Thinking, per block. Click a thinking… line and only that reasoning
    block reveals itself; ^T still toggles everything at once.
  • A real scrollbar. Proportional thumb on a faint track. Grab it and drag,
    or click the track to jump; scrolling back to the bottom re-engages
    follow mode.
  • Tools are one line again. A finished tool shows a single header line
    with a faint ▸N marker. Click to unfold: 1st click a peek (6 lines),
    2nd more (24), 3rd full, 4th back to one line.
  • Real diffs in edit cells. edit/write now attach a proper unified
    diff (LCS-based hunks, @@ bands, green adds / red dels) that the
    transcript renders instead of the model-facing hashline echo.

Composer

  • Cursor no longer drifts. Word-wrapped input wrapped the visual column
    as chars % width, so the cursor slid left on every auto-wrapped line. It
    is now measured from the cursor's actual visual segment, and the input box
    height is counted with the same word-wrap it draws with.

Turn lifecycle

  • Completion contract. The model closes finished work with
    <complete>…</complete> wrapping a one-paragraph summary of the changes.
    Without the closing tag the turn is continued, not accepted — an early
    stop (or a stream cut mid-thinking) no longer ends the turn silently. The
    harness re-prompts up to three times before accepting the stop.
  • No more max_tokens caps. The default config no longer truncates
    responses: on OpenAI-shaped endpoints the field is omitted entirely
    (o-series gets max_completion_tokens only when a cap is set explicitly),
    and the Anthropic dialect — where the field is mandatory — uses the
    model's catalog maximum.
  • Fixed 400 Invalid assistant message: content or tool_calls must be set. Empty assistant envelopes (left behind by a stream cut mid-reasoning)
    are dropped before they reach the wire, and the Anthropic serializer now
    filters unsigned thinking and merges consecutive same-role messages — both
    deterministically, so the KV-cache prefix stays byte-stable.

Validation

Full workspace gates were run for this release: cargo test (380+ tests),
clippy -D warnings, cargo fmt --check, jig prompt-lint, release build.
The KV-cache snapshot and cache-guard tests were updated for the serializer
changes and pass.

Install

Download jig.exe below (Windows x86_64) and put it on your PATH.