Skip to content

Releases: raya-ac/kiln

Kiln 1.9.3

Choose a tag to compare

@raya-ac raya-ac released this 23 Apr 15:11

Changelog

All notable changes to Kiln land here. Format loosely follows
Keep a Changelog. Dates are
YYYY-MM-DD, versions follow SemVer.

[1.9.3] — 2026-04-24

Added

  • Real GPT-5.4 Fast mode for ChatGPT-backed sessions. Kiln's Fast
    button no longer swaps models or piggybacks on reasoning effort. For
    GPT-5.4 sessions it now maps to Codex's own fast mode settings, persists
    per session, and survives forks, clones, imports, and duplicates.

Changed

  • Model branding now distinguishes Claude, ChatGPT, and Codex. GPT
    models no longer inherit the generic Codex terminal treatment in the
    picker and chat chrome. Kiln now shows separate brand marks for Claude,
    ChatGPT, and Codex anywhere the active model is surfaced.
  • Assistant avatars now follow model brand instead of only provider.
    ChatGPT-backed sessions look like ChatGPT sessions in the transcript and
    live response row instead of falling back to the same visual identity as
    Codex tool sessions.
  • Chat disclaimers now link to the right provider docs. Claude sessions
    point to Anthropic's disclaimer page, while ChatGPT/Codex-backed sessions
    point to OpenAI's accuracy and limitations page.
  • Residual Claude-only UI copy was cleaned up again. Remaining helper
    text in prompts, settings, shortcuts, and chat placeholders now uses
    provider-neutral assistant wording where the app is not specifically
    talking about Claude.

[1.9.2] — 2026-04-22

Changed

  • Codex sessions now respect Kiln's Ask permission mode more honestly.
    Kiln passes Codex's own on-request approval policy through instead of
    silently treating most Codex sessions like bypass mode.
  • Codex resume no longer flips into --full-auto for plan sessions.
    That behavior was backwards and could turn a read-only planning session
    into a more permissive execution mode after resume.
  • Codex Deny sessions now get an explicit no-tools instruction.
    Read-only sandboxing was already in place, but the prompt now also tells
    Codex not to run shell commands or modify files.

[1.9.1] — 2026-04-22

Added

  • Codex edit-event bridging. Codex file_change events now get mapped
    into Kiln's existing edit/tool runtime so changed files surface through
    the same editor flow Claude already uses for auto-open, pending edit,
    and diff/revert handling.

Changed

  • Chat copy is more provider-neutral. The main chat disclaimer now says
    Kiln can make mistakes. Please double-check responses. instead of
    claiming every session is Claude.
  • Codex sessions look like Codex sessions. Provider-specific avatar and
    model icon treatment now show a terminal-style Codex mark instead of
    reusing Claude branding in the chat UI and model pill.
  • The remote control composer placeholder no longer says Message Claude….

[1.9.0] — 2026-04-22

Added

  • Codex CLI backend. Kiln can now run Codex-backed sessions alongside
    the existing Claude ones instead of pretending every session is the same
    subprocess under the hood. Codex sessions use codex exec --json,
    persist their thread IDs for resume, and surface command executions in
    the same activity/timeline model Kiln already uses for tool calls.
  • Codex models in the picker. gpt-5.4, gpt-5.4-mini, gpt-5.2,
    and gpt-5.3-codex-spark are available anywhere Kiln chooses a model:
    defaults, new-session creation, template editing, and in-session model
    switching.
  • Provider-grouped model menus. Model pickers now separate Claude and
    Codex into distinct sections instead of dumping every model into one flat
    row. It reads better, and it stops the UI from feeling like a pile of
    raw IDs once both backends exist.

Changed

  • The app no longer overclaims that it is Claude-only. The onboarding
    flow, stats hero copy, notifications, search results, markdown export,
    and key chat labels now use the active provider where it matters, and
    more neutral wording where it doesn't.
  • Workdir changes on Codex sessions now reset the saved thread mapping.
    Claude transcripts can be migrated between workdirs because the resume
    files are path-scoped on disk. Codex resume threads are global, but the
    non-interactive resume flow doesn't expose a clean way to rebind cwd, so
    Kiln drops the mapping and starts fresh in the new directory instead of
    resuming under the wrong root.

Notes

  • This is a first Codex pass, not full parity. Codex exec --json
    doesn't stream token deltas the same way Claude does, so live text
    updates are coarser. Claude's PreToolUse approval flow also hasn't been
    ported across yet.

[1.8.4] — 2026-04-21

Fixed

  • Workdir migration now waits for the live subprocess to exit before
    copying
    the CLI transcript. Previously claude.kill returned
    immediately while the child was still flushing writes to
    <cliId>.jsonl, so the copy at the destination could be truncated.
    Also migrates the sibling <cliId>/ sidecar directory (subagent
    state, cached tool results) so agents don't lose their scratch data
    across a workdir move.
  • Migration refuses to clobber an existing destination transcript.
    If <cliId>.jsonl already exists in the new workdir's project dir
    — say because a backup was restored — Kiln drops the mapping
    instead of silently resuming a different conversation. The next
    send starts a fresh CLI session in the new dir.
  • /save is now confined to the session's workdir. Absolute paths
    (/… or ~/…) and relative paths that climb above the workdir via
    .. are rejected. The old behaviour would silently write anywhere
    the user could write, which combined with an untrusted code block
    was a real-world overwrite risk.
  • lastCodeBlock no longer drops content on an unterminated fence.
    Interrupted or mid-stream replies often end without the closing
    ``` — /save and `/copycode` used to report "no code block" on
    visibly-present code. Now the open block is returned as the last
    one.
  • Slash commands that shell out now run off the main thread. /log,
    /branch, /checkout, /stash, /unstash, /blame, /find,
    /recent, /repo, /diffstat, /upstream, /changed — all move
    to Task.detached. Previously they blocked the UI while git or
    find ran; on a large monorepo that was a visible beachball.
  • Translation polish. Italian / Portuguese forked is now
    biforcato / bifurcado (was bare English fork). Korean
    think / noThink uses 생각 / 생각 안 함 instead of 사고
    (which reads as "accident"). Hindi time abbreviations gained the
    पहले suffix so they read as "N min ago". Russian push/pull
    now Пуш/Пул to match the translated Коммит. Taglines in
    Turkish, Polish, and Swedish dropped the anglicisms.

[1.8.3] — 2026-04-21

Added

  • Full UI translations for the ten new languages. Italian,
    Portuguese, Russian, Korean, Dutch, Hindi, Arabic, Polish, Turkish,
    and Swedish now translate every label that German / Spanish /
    Chinese / French / Japanese already did — sidebar, composer,
    settings sections, git chips, activity panel, stats, relative
    timestamps, effort labels, the whole lot. Switching language in
    Settings now actually repaints the UI rather than only steering
    Claude's replies.

[1.8.2] — 2026-04-21

Added

  • Ten more languages available in Settings → Language: Italian,
    Portuguese, Russian, Korean, Dutch, Hindi, Arabic, Polish, Turkish,
    Swedish. For these, Claude's chat output is steered into the chosen
    language via the system prompt; the Kiln UI stays in English (full
    UI translations only ship for the six previously supported locales).
    The settings description updates accordingly so it doesn't overclaim.
  • English flag is now 🇦🇺. Because.

Changed

  • Language picker is a native dropdown instead of a scrolling pill
    row. The old layout squeezed each language name into a 40-pt pill
    and wrapped "English" into "Eng/lish" when the settings column was
    narrow. Picker(.menu) renders the selected flag + label at rest
    and drops a proper menu on click — same affordance as the model /
    mode / permissions rows above it.

[1.8.1] — 2026-04-21

Fixed

  • Changing a session's workdir no longer breaks the Claude CLI
    conversation.
    Claude Code stores each conversation under
    ~/.claude/projects/<dashed-abs-path>/<cliId>.jsonl, so the resume
    ID created in workdir A couldn't be resolved from workdir B — the
    next send errored with "No conversation found with session ID …"
    and the run aborted. Kiln now migrates the conversation file across
    project dirs when the workdir changes, so the same CLI session
    keeps resolving in the new location with full context intact. Any
    live subprocess is killed first (you can't chdir mid-run).
  • Pipe-drain deadlock in the shell helper. Process.waitUntilExit
    before readDataToEndOfFile blocks when the child writes past the
    ~64 KB pipe buffer — git status in a dir with many untracked
    files hit this easily. Stdout and stderr are now drained
    concurrently via a DispatchGroup before we wait on exit.
  • Workdir activity scan guards a missing directory. If the
    session's workdir doesn't exist or isn't a directory, git status
    is skipped instead of raising inside Process.run.

[1.8.0] — 2026-04-21

Added

  • Workdir activity chip — above the composer, a small pill shows
    how many files have uncommitted changes in the session's workdir.
    Click it for a popover listing each file with its git status letter
    (M, A, D, R, ??). Click a row to open the file's diff in
    the existing DiffSheet, or use the "Open all in diff" button for
    the combined view. The chip disappears when the tree is clean or
    the session isn't in a git repo — so it only draws attention when
    there's actually something to see.
  • Event-driven refresh. The ch...
Read more

Kiln 1.9.2

Choose a tag to compare

@github-actions github-actions released this 22 Apr 09:08

Full Changelog: v1.9.1...v1.9.2

Kiln 1.9.1

Choose a tag to compare

@github-actions github-actions released this 22 Apr 08:44

Full Changelog: v1.8.4...v1.9.1

Kiln 1.8.4

Choose a tag to compare

@github-actions github-actions released this 21 Apr 12:33

Full Changelog: v1.8.3...v1.8.4

Kiln 1.8.3

Choose a tag to compare

@github-actions github-actions released this 21 Apr 12:25

Full Changelog: v1.8.2...v1.8.3

Kiln 1.8.2

Choose a tag to compare

@github-actions github-actions released this 21 Apr 12:20

Full Changelog: v1.8.1...v1.8.2

Kiln 1.8.1

Choose a tag to compare

@github-actions github-actions released this 21 Apr 10:15

Full Changelog: v1.5.2...v1.8.1

Kiln 1.5.2

Choose a tag to compare

@github-actions github-actions released this 21 Apr 08:38

Full Changelog: v1.5.1...v1.5.2

Kiln 1.5.1

Choose a tag to compare

@github-actions github-actions released this 21 Apr 08:16

Full Changelog: v1.5.0...v1.5.1

Kiln 1.5.0

Choose a tag to compare

@github-actions github-actions released this 21 Apr 08:06

Full Changelog: v1.4.3...v1.5.0