RELEASES

What's new in Codron

Every released version, with the changes that shipped in it. Already on Codron? Auto-update brings new versions in for you.

LATESTv0.15.11Jul 30, 2026
Download

@-picker now includes agent-authored artifacts, and pasted chunks respect the server body cap

  • · The composer's @-picker was missing an entire group of documents. The DOCS panel on the left shows three (context, ARTIFACTS 'made by Codron', REFERENCES 'from you'), but the picker only pulled from context and references, so every design-direction.md, monetization-notes.md, or model-and-architecture-notes.md the agent produced for you was silently invisible when you tried to invoke it from the next order. Artifacts live on disk under .codron/artifacts/ and are never classified into the documents table, which is why the picker never saw them. The desktop bridge now merges listArtifacts alongside listReferences, tags them kind:'artifact', and orders the picker as context, then artifacts, then references, matching the left panel so the mental scan lines up. Applies to both the pending-orders composer and the per-project session composer.
  • · Pasting a long chunk (a PDF spec, a terminal capture, a Word extract) into the /projects composer sometimes threw an opaque 'Server Components render' error and dropped the engage. The textarea's maxLength attribute caps typed input at 8000 characters, but the onPaste path collects pastedChunks separately and bypassed that check, so the server-side length gate was the first thing that saw an oversize body; in production Next.js masks the actual message and only surfaces a digest, leaving no way to diagnose the failure. The composer now computes composed length client-side, disables submit when you cross the cap, and shows the exact count vs cap so you know how much to trim before sending. Complements the NUL-byte guard shipped in 0.15.10.

PREVIOUS

  1. v0.15.10Jul 29, 2026briefing-time engine picker, PUSH auto-commits your working-tree changes before pushing
    • · The /new form's ENGINE field has a new SUGGEST button. Given a briefing of 20+ characters, one click hands the text to a haiku classifier that picks claude or codex based on the briefing's shape (scoped and definite work goes to claude, exploratory or design-heavy work goes to codex) and pre-fills the picker with a one-line rationale below. The per-cycle dispatcher can only route within engines a project already has configured, so getting the master engine right at scaffold time is a different problem than sizing an order batch mid-project; this covers it. Still fully overridable through the picker, and any failure (classifier spawn, timeout, unparseable output) leaves your manual pick untouched.
    • · The Source tab's PUBLISH button is now PUSH, matching what every operator reflexively calls it, and the same button now handles uncommitted work instead of silently doing nothing. When the working tree has changes (from a cycle without auto-commit on, or from your own edits between engagements), PUSH first spawns a bounded 'claude -p' commit agent that reads the diff, writes a conventional-commit message ('fix:...' / 'update:...' / etc.), commits with .codron/ excluded, then runs git push. Clean-tree behavior is unchanged, PUSH is a straight git push. The commit agent has a 3-minute cap and if the tree is somehow still dirty when it finishes, PUSH bails without pushing rather than green-lighting half-work.
    • · Codex and Claude Code have opposite natural drifts inside a cycle. Codex leans into open-ended clarifying questions strung across multiple cycles (so the operator never sees a promote moment because no code has moved), Claude Code parks on reversible choices it could just make and revert. The cycle prompt now injects a per-backend LENS block that leans against each side's drift while preserving engine personality. Codex is told to complete one substantive step first, log reversible assumptions to memory.md, and batch any real questions into ONE end-of-cycle escalation.json (via the existing 'questions' array). Claude Code is told that reversible = attempt-first and that 'the brief is ambiguous' alone is not an escalation trigger. The listed ESCALATE_TRIGGERS and the OUTCOME contract are unchanged, the lens only shapes the 'should I ask or attempt?' gray zone.
    • · Filing an order from /projects with a long paste (a spec pasted from a PDF, a chunk from a terminal, prose from Word) sometimes threw an opaque 'Server Components render' error and dropped the whole engage. Postgres was rejecting the insert because the pasted rich text carried a NUL byte the text column cannot store; in production the actual error message is masked and only a digest surfaces, so the operator could not diagnose it. Order bodies are now stripped of NUL bytes before the length check on both the /projects remote and the desktop composer. Everything else in the paste (CJK, emoji, symbols, other control chars) is unchanged.
  2. v0.15.9Jul 28, 2026scratch chat launches on Windows, and the /projects remote humanizes cooldown timestamps
    • · Scratch chat could not start on Windows. The empty MCP config was being passed to claude as an inline JSON argument (--mcp-config '{"mcpServers":{}}'), and because the scratch spawn goes through shell: true, cmd.exe stripped the unescaped quotes before the CLI could parse them; the CLI then saw '{mcpServers:{}}', treated it as a missing filename, and died. The empty config is now written once to ~/.codron/empty-mcp.json and passed by path, the same shape the engagement engine already uses per cycle. macOS and Linux are unchanged (their inline JSON was fine).
    • · The /projects remote used to show 'cooldown (token-limit) until 2026-07-28T22:00:00.000Z' in the task column for a project paused at a rate or token limit. 0.15.8 humanized this on Codron itself, but a row written by an older agent (or by a teammate whose desktop has not updated yet) still lands in the database as a raw UTC ISO, so mixed-version fleets kept reading as noise on the web. Any UTC ISO in the task line is now rewritten at render time in the viewer's own timezone: 'HH:mm' when it expires today, 'MMM d HH:mm' when it slips into another day.
    • · The header 'Sign in' link, when clicked without a plan or ?next hint, used to route through /download. That made sense on someone's first-ever signup, but it read as a dead end for a returning operator who just wanted to check on their projects. The plan-agnostic default is now /projects. An explicit plan=pro sign-in still lands on /checkout, and any deep link carrying ?next=… is untouched.
  3. v0.15.8Jul 27, 2026cooldown until reads as local time instead of a raw ISO
    • · A project paused by a token or rate limit used to show 'cooldown (token-limit) until 2026-07-27T09:00:00.000Z' in the task column, which is technically correct but reads as noise. The 'until' timestamp is now formatted in the operator's own timezone as 'HH:mm' when it expires today, or 'MMM d HH:mm' when it slips into another day. The countdown pill (cooldown 45m) and the full ISO on state.cooldown.until are unchanged, so the dashboard's live 'left' timer and any scripts reading state.json keep working.
  4. v0.15.7Jul 27, 2026Overview surfaces invited projects and the accept banner, matching the web remote
    • · Codron's Overview now merges collaborator-invited projects into the projects list and shows the accept banner at the top when someone invites you (both were previously only visible on codron.app/projects). Shared rows carry a 'shared · <owner>' chip, and their attribution machine feeds the same machine-filter chips as your own boxes, so a project shared from a teammate's laptop shows under their machine chip instead of vanishing into the count.
    • · Engage and pause for a shared project stay on the web remote, where the collaborator RPCs live, so the row is deliberately not a link: the desktop's project detail pages read the owner-scoped projects table directly and would 404 for an invitee. Realtime pushes are owner-scoped and skip collaborator sessions by design, so shared rows refresh on the dashboard's existing 5-second poll rather than a websocket event.
  5. v0.15.6Jul 26, 2026Device pane windows tile flush, and the off-tab platform hides behind Codron instead of parking off-screen
    • · Arranging the Android emulator beside Codron used to leave a visible strip between the two windows. The AppleScript set-size we send is applied asynchronously by the emulator, so we were reading the frame back before its own aspect and min-size clamp had settled, and Codron got seated against a right edge the emulator never actually rendered to. A short delay before the readback lets the clamp run, the readback returns the real frame, and Codron lands against it with no gap.
    • · When you switch tabs the platform you leave slides behind Codron in z-order now, instead of getting parked far off-screen at y=-20000. The visual result is the same (the other device is gone), but the process stays at a normal on-screen position so macOS keeps it on the regular render schedule, and the tab-back trip doesn't have to move a window across negative coordinates. The switch runs arrange first and then parks the other one under Codron's settled rect, so the parked window is fully covered even after Codron shifts to accommodate the newly focused device.
  6. v0.15.5Jul 26, 2026parallel iOS and Android tabs in the Device pane so you can develop for both without waiting on a rebuild
    • · The Device pane now has iOS and Android tabs. Each has its own device picker, run button, log, and status dot; both runs can be alive at the same time, so switching platforms is instant instead of eating a full native rebuild. The tab you're looking at gets tiled beside Codron and the other steps aside, and the run status dot on the inactive tab tells you it's still cooking without needing to look over.
    • · Tab switches feel instant now (under a second). They were hitting four seconds because AppleScript's exists-process check against non-running qemu variants costs about a second and a half apiece, and Android lists three arch-suffix names to check; we resolve the process by name-list membership once instead. Fast alternating clicks no longer stack up half-finished window moves either: the tab bar locks with a spinner while a switch is in flight and unlocks once the device window is actually in its slot.
    • · Run on Android with Expo now finds your emulator. Expo matches --device against the AVD name (not the adb serial), so we hand it 'galaxy_s24_plus' rather than 'emulator-5554'. Flutter and bare React Native are unchanged since their flags accept either.
    • · Arrange now only changes Codron's width, not its height. If you sized the window tall, it stays tall; only the horizontal split follows the device.
  7. v0.15.4Jul 25, 2026the feed and the live header tell you what the running engagement is actually working on
    • · The goal line the right panel shows while an engagement runs used to be wrong whenever you redirected the work. It reads projects.current_task, which the agent writes at the END of a cycle as the next task it plans to do, and nothing overwrote it when a new order came in, so you'd give an instruction, watch the engagement start, and see the previous cycle's plan sitting there as the stated goal. The cycle now stamps its real goal before the engine starts: your own order text for an order-driven cycle, and a plain continuation keeps the task the last cycle declared (which is genuinely what it's doing).
    • · A reviewer cycle no longer advertises coding work it isn't doing. Pair review reads the last engagement's output and never edits, but it inherited whatever coding task was left in the goal line; it now says so.
    • · The feed's in-flight card shows that goal too, not just the right panel. So the feed reads as goal now, result when it lands: while the engagement runs you see what it's working on, and when it finishes the same slot becomes the field report card with what it actually did.
    • · Batched orders (several instructions from one place consumed by a single cycle) show the first one plus a count, and a long order is trimmed to one line so it can't push the live activity list off screen.
  8. v0.15.3Jul 25, 2026existing desks actually move to Opus 5, not just new projects
    • · 0.15.2 raised the default Claude model to Opus 5, but a default only ever applied to a project that had never saved an engine setting, so any desk that had opened Settings even once stayed pinned to whatever was default the day it saved. Now a saved pin on a model Codron itself shipped as a default (opus-4.8, opus-4.7) rolls forward to the current one when it's read, so raising the default actually moves the machine. Only values Codron planted get rewritten: if you picked fable-5 or sonnet-5 or a GPT model against the default of the day, that's a real preference and it stays. A reasoning level you tuned by hand stays too, only a level that was itself the old default moves with the model.
    • · The Claude model dropdown is now opus-5 / fable-5 / sonnet-5. opus-4.8 and opus-4.7 are still live models on Anthropic's side (both verified running), they're just superseded: Opus 5 is newer at the same price per token, so there's no reason to sit behind, and leaving them in the list would let you pick a value that reverts on the next read.
    • · A chat thread keeps the model it started on, so an older session or scratch still shows (and runs) the model it was locked to, with its proper name rather than a raw model id.
  9. v0.15.2Jul 25, 2026Opus 5 is the default Claude engine, at extra high reasoning
    • · Claude engagements now run on Opus 5 by default, at extra high reasoning. Opus 5 is Anthropic's new Opus, a step up on long-horizon agentic work and coding, and it ships at the same price as Opus 4.8, so the upgrade costs nothing per token. Extra high is the tier Anthropic recommends for coding and agentic work (it's what Claude Code itself defaults to), which is exactly what a Codron cycle does all day. Projects that already pin a model or a reasoning level keep their setting; only unset projects move.
    • · The Claude model picker is now opus-5 / fable-5 / opus-4.8 / sonnet-5. Fable 5 stays an opt-in choice rather than the default, it's still the top tier but costs double per token, and an autonomous multi-cycle run shouldn't spend that unprompted. opus-4.7 drops out of the dropdown (two generations back), you can still type it into the model field if you want it.
    • · If your Claude Code install is too old to accept extra high, the cycle no longer dies on it: the engine reads the tier list out of the CLI's own error and retries with the strongest tier that install does accept, then tells you in the activity feed to update Claude Code.
  10. v0.15.1Jul 25, 2026scratch chat stops leaking who you work for, and opens brainstorming instead of pressure-testing you
    • · Scratch chat now spawns with zero MCP servers, so the CLI's startup tool listing (FnMCP, Notion, Figma, supabase, higgsfield, and whatever else you have connected) no longer reaches the model as identity context. Before, those connector names were showing up in the initial attachment and the model was reading them as identity signals, opening a fresh brainstorm with lines like 'FnGuide 계신 걸 보면…' when the connector name was the only hint it had. Scratch is anonymous by design now: only what you say in the conversation counts. Project session chat is unchanged, it still gets the local MCPs because a real project may want them.
    • · Scratch chat's opener has been retuned so it does not pressure-test an idea before it has one. It answers what you actually asked instead of derailing into decisions you did not raise (platform, stack, monetization, target market), takes your stated constraints as given (if you said 'app', it does not argue web vs. native), and stays expansive on early turns instead of leading with 'here is why this is hard'. Skepticism still kicks in later, once the shape is actually on the table, and the settled/open scaffold only appears after a real decision has landed, not on turn one.

UPDATE INFO

Codron auto-updates from download.codron.app. A new version triggers a Restart-to-apply toast in the running app. You can also re-download the installer from the download page at any time.

Releases · Codron