Commit Graph

54 Commits

Author SHA1 Message Date
Tanish Manku ec93bc20e6 A builder on a local model isn't told to call memory tools it isn't offered (#746)
* A builder on a local model isn't told to call memory tools it isn't offered

* Record the first live local builds and what stops them

* Keep R5.3's API-key live check open: the stop was seen on a local build
2026-11-03 17:28:39 -07:00
kler d8915a5bbe Choose Claude Code's folder per AI, so each can use another account (#664)
Each Claude Code AI can have its own folder (CLAUDE_CONFIG_DIR) in Settings → AI or with craft-anything-cli ai folder, so each can use a different account; the sign-in check, runs and sessions use that folder.
2026-11-04 02:58:40 +07:00
Carlos Dourado f5d1f275a5 Keep agent answers within the conversation column (#719)
Each paragraph of an agent's answer is laid out as one width-limited text block, keeping bold, inline code and glossary underlines, so a long file link after a glossary term no longer pushes messages under the sidebar (fixes #523).
2026-11-04 01:08:23 +07:00
Aek 12b0c1e0ba Offer "Work on my project" on New project: pick your project's folder and edit its files in place (#686)
New project offers a third choice, "Work on my project": pick your project's folder, say what you want, and its files are edited in place (R2.9).
2026-11-04 00:51:02 +07:00
Ryan Missel 87174476d9 Add Copilot CLI support and shared agent investigations (#455)
GitHub Copilot CLI can be a coding agent over ACP, with its models chosen through the shared agent model catalogue; options that could bypass the app's tool restrictions are refused, and agents share investigation findings safely.
2026-11-04 00:29:11 +07:00
Afloat 5ac0e2b68d Preserve empty query pairs in older stand-in recordings (#673)
Older stand-in recordings keep their empty query pairs when current credential rules are reapplied, so replay matches the right page (follow-up to #648).
2026-11-03 23:16:53 +07:00
Afloat 75bf5a3f0d Handle generic GGUF paths and numeric task versions in chat discovery (#675)
Local chat discovery reads a generic GGUF file name by its model folder and treats task names with version numbers as specialised, so an embedding or reranking model isn't picked for chat (follow-up to #653).
2026-11-03 23:14:26 +07:00
Shaikh Fardin 4759d37ad2 Offer a Google AI Studio (Gemini) key in Settings and first run (#670)
A Google AI Studio (Gemini API) key is its own choice in Settings → AI and first run, through Gemini's OpenAI-compatible endpoint, read from GEMINI_API_KEY like the other providers (fixes #646).
2026-11-03 22:38:43 +07:00
BFlat f05f019691 Draw on the GPU that drives the screen on Linux, so laptops with two GPUs open fast and don't lag (#659)
On Linux the window is drawn on the GPU that drives the screen (the built-in panel's, or the only one with displays), so laptops with two GPUs open fast and don't lag; WGPU_ADAPTER_NAME and WGPU_POWER_PREF still decide (fixes #571). Replays #578.

Co-authored-by: Thân Minh Nghĩa <thanminhnghia3@gmail.com>
2026-11-03 21:57:08 +07:00
BFlat 0ea700d1e1 Add Korean, Czech and German UI catalogs (#662)
Replays #590, #647 and #482: Korean, Czech and German UI catalogs, each with the strings added since it was written.

Co-authored-by: 아야진 <ayajin@Mac-Studio.local>
Co-authored-by: Losminek <301412321+Losminek@users.noreply.github.com>
Co-authored-by: Ilor29 <hello@einzelstein-software.de>
2026-11-03 21:40:15 +07:00
Firefly 2d06e6642e Offer Kimi K3.1 Pro instead of the older Kimi K3 (#655)
Detect offers Kimi K3.1 Pro (moonshotai/kimi-k3.1-pro) on OpenRouter instead of the older Kimi K3, with OpenRouter's list price ($2 / $10 per Mtok, $0.20 cached).
2026-11-03 21:15:18 +07:00
YoSiem ad5cd81b6a Paste pictures into the prompt box with Ctrl+V and show attachments as picture tiles (#631)
Pictures can be pasted into the prompt box with Ctrl+V (Cmd+V, Shift+Insert): a copied image is saved as a PNG in the person's own cache folder and attached, copied picture files are attached as they are, and attachments show as picture tiles.
2026-11-03 20:50:05 +07:00
BFlat ebed13d0fc Keep ARM32 conditional call values, esbuild dependencies and window labels right (#656)
Replays #640–#642. Conditional A32 calls keep the skipped path's value, esbuild dependencies survive unrelated calls, and window comparison labels stay distinct without renumbering occurrences.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:49:11 +07:00
Matthias Bodsch 1d66a6ba4b Choose OpenCode models and thinking depth locally or over SSH (#413)
OpenCode can be chosen as a coding agent locally or over SSH, with the chat models its installation offers and the thinking depths each supports.
2026-11-03 19:53:16 +07:00
Afloat 48759fb5fc Stop unchanged rebuilds after two turns across runs (#557)
Refs #44, #110 and #481. A build stops after two builder turns in a row change no app files, counted across runs in a versioned inbox/build-progress.json; a new request or a real edit starts another attempt. File digests are cached by size and modification time, so unchanged files aren't read again.
2026-11-03 19:31:22 +07:00
Afloat f307d39480 Retry builder turns from typed failures, including stateless backends (#552)
Refs #377 and #142. Builder retries are decided by typed failures instead of English text: sign-in, billing, missing programs, configuration and failed required tools stop at once, while dropped connections, rate limits and plain crashes are retried up to three times with bounded waits. OpenCode's JSON output is read for errors, text, tools and usage.
2026-11-03 15:51:05 +07:00
Afloat 888f75b3f1 Help models correct rejected tool argument types (#546)
Refs #498. A tool argument of the wrong type is answered with its JSON Pointer, the type error and how to correct the call, so a model can fix it; schema types stay strict.
2026-11-03 15:48:57 +07:00
Afloat 0a0fa2a43a Recover JSON tool calls emitted as text (#554)
Refs #417. A complete JSON tool call a model writes as its whole reply (bare or fenced, with name and arguments or parameters, or a function wrapper) runs as that tool when it was offered, including when native tool calling was offered; examples in prose, malformed or partial JSON stay text, and Action:/Action Input: steps still work.
2026-11-03 15:39:39 +07:00
Fábio Soares 086ef3ba63 Approve Craft Anything's tools for Codex and explain a refused call instead of showing null (#553)
Fixes #540. Codex's codex exec can't ask for approval, so setup and the builder approve rebuild_start (which asks the person itself) on Codex's side, keeping the person's other settings in the entry; a refused call explains the fix instead of showing null.
2026-11-03 15:04:55 +07:00
Afloat 303de0a438 Keep ACP history replay out of new turns (#550)
Over ACP, session/update notifications that session/load replays before it answers are kept out of the new turn, so a continued session no longer shows the earlier conversation again.
2026-11-03 15:01:32 +07:00
Afloat c4e3d79dda Honor per-backend conversation context budgets (#559)
Refs #374. A backend can set its own conversation budget (context_tokens in [[ai.backends]]); the conversation is fitted to it before each model attempt, including a fallback with a smaller window, counting history added since the last measured request.
2026-11-03 14:53:55 +07:00
Afloat 6615caa7e4 Respect stop reasons before running native tool calls (#544)
Native tool calls keep a reported output-limit or refusal stop instead of being run as tool use, and calls left unrun after a pause or other stop get matching non-execution results so the next request stays valid.
2026-11-03 14:50:10 +07:00
Afloat d5e07a8262 Report unavailable cached bodies in stand-in replay (#543)
A stand-in backend no longer replays a recorded 304 without its cached body: such samples are kept for diagnosis, skipped in replay, and a request with no usable answer gets cached_body_unavailable. Builds count them.
2026-11-03 14:50:01 +07:00
Afloat 925d4737d1 Wait for keep-awake cleanup before a rebuild reports it finished (#541)
The rebuild releases its keep-awake helper before reporting Finished, and dropping the guard waits up to five seconds for the helper to stop (logging if it doesn't), so a CLI that exits right away no longer leaves it running.
2026-11-03 14:49:55 +07:00
Afloat 2546042d4c Show upstream provider reasons in API errors (#542)
Refs #369. API errors show the provider's own reason from error.metadata.raw (with the provider's name) instead of only "Provider returned error"; unknown or malformed payloads are not dumped, and the message is bounded.
2026-11-03 14:49:50 +07:00
Tanish Manku 2e4afc535c A plain HTML site passes the build check as it is, with nothing to build (#500)
* Claim: count a plain HTML site as built (R2.7)

* A plain HTML site passes the build check as it is, with nothing to build

* Note the keep-awake helper seen outliving a CLI run, and a search that found itself

* A blank page, or a game engine's project beside it, doesn't pass as a static site

* A static site with an assets folder isn't sent to Unity
2026-11-02 16:44:21 -07:00
Jesse Houston f5ed134bdd Keep building with Claude Code after moving a project to another computer (#458)
Fixes #451, fixes #452, closes #446. Claude Code's result for a --resume session it doesn't have is recognised (StreamParser::session_missing); the build forgets the stale id and starts a new session from the brief, what is in app/ and what the project kept of the old conversation, and questions answer from the project's files. After every builder turn the project keeps a private copy of the session, which is put back under Claude Code's folder on another computer when it isn't there (never over an existing one).
2026-11-03 02:20:28 +07:00
GGWA ecbd519c6a Read SQLite WITHOUT ROWID tables, rows older than added columns and capped records correctly (#412)
Merges the whole SQLite stack in one commit (#410, #411 and #412): WITHOUT ROWID tables are read in primary-key order, rows older than ALTER TABLE ADD COLUMN show the added columns, and records over the payload cap say which values were cut.

Fixes #406, fixes #407, fixes #408.
2026-11-03 01:43:19 +07:00
Afloat fed67edd38 Pinned builds keep runtime models in obj folders (R2.10) (#439)
Frozen and light pins keep a project's runtime models in assets/obj; only obj folders beside a .NET project file are left out as build output. Fixes #274.
2026-11-03 00:16:57 +07:00
bently-bot 11166b3589 Deep mode decompiles position-independent programs by name: addresses move between our image base and Ghidra's (#426)
In Deep mode, a position-independent program is decompiled by name: addresses move between our image base and the one Ghidra loaded it at (the bridge now reports it), with engine_entry and an engine_rebased limitation when they differ.
2026-11-02 23:50:33 +07:00
Afloat e80df1da4e Build usage includes context-summary calls (R2.1) (#442)
Build usage and cost include the model calls that summarise earlier work to make room, and each is journaled. Fixes #272.
2026-11-02 23:48:58 +07:00
Afloat fa4aae2e79 Compare WebAssembly exported tag parameter types (R0.5) (#441)
WebAssembly comparison reports changes to exported tags' parameter types. Fixes #309.
2026-11-02 23:48:32 +07:00
Afloat 66ffd738ed App comparisons keep every unassigned window (R3.10) (#440)
App version comparisons keep each unassigned window's preference changes instead of folding them into one. Fixes #237.
2026-11-02 23:48:06 +07:00
Afloat 89bcd06190 Minified esbuild modules keep their dependencies (R0.5) (#438)
Minified esbuild bundles keep the dependencies between their modules: wrapper calls are matched by binding, not by a require_/init_ name. Fixes #270.
2026-11-02 23:42:49 +07:00
Afloat ffe15c9165 Find class usage in multidimensional object arrays (R0.5) (#437)
Class usage search finds a class in multidimensional object-array allocations (multianewarray). Fixes #325.
2026-11-02 23:42:23 +07:00
Afloat 858037dc3d Use ARM32 registers in value-flow graphs (R0.5) (#436)
ARM32 and Thumb value-flow graphs use r0–r3 and r12 for calls and r0 for returns instead of x86 registers. Fixes #239.
2026-11-02 23:41:56 +07:00
Afloat 0ce375bcba Bun text assets report their stored UTF-16LE encoding (R3.11) (#435)
Bun's stored-text encoding 2 is labelled utf16le, as Bun writes it, and member bytes are kept as stored. Fixes #257.
2026-11-02 23:41:30 +07:00
Afloat d8314238ae Files inside extended SquashFS directories are recovered (R0.5) (#434)
Extended SquashFS directory inodes read their listing offset from the right field, so files inside them are recovered. Fixes #338.
2026-11-02 23:37:59 +07:00
zeller-lorenz ea8f4b82b8 Claude's effort goes up to xhigh and max, chosen in Settings → AI and the CLI (R2.9) (#395)
Claude's effort goes up to xhigh and max. A model without a level gets the nearest one below it. The level is chosen in Settings → AI or with craft-anything-cli ai effort, and over SSH it reaches the other computer. R2.9.
2026-11-02 23:08:12 +07:00
zeller-lorenz 2b2e8f5287 Maki works as a coding agent, over ACP or one message at a time (R2.2) (#393)
Maki can be added as a coding agent: over ACP (maki acp, with the backend's model after it) or one message at a time with its own adapter (maki -p), which switches its writing tools off outside a build. R2.2.
2026-11-02 23:07:45 +07:00
GGWA 489f2976b4 SQLite rowid alias columns show the rowid instead of NULL (#409)
db_sqlite_show shows an INTEGER PRIMARY KEY column's value from the rowid instead of NULL. Fixes #405.
2026-11-02 22:29:10 +07:00
Oliver Mee 8b5826f9bd Selected macOS app folders and nested XPC services are recognised (#297)
Selecting a macOS app folder is recognised as an app bundle (its root-relative Contents/Info.plist), and nested XPC services appear as services and xpc-service graph nodes.

Fixes #282
2026-11-02 15:04:00 +07:00
Oliver Mee 2a9bfe628e Objective-C chained offsets past PAGEZERO resolve to the image (#298)
Objective-C pointers whose chained offset lands in file-empty __PAGEZERO now reach the image-base fallback, so the classes are found again.

Fixes #296
2026-11-02 14:44:02 +07:00
Brandon Thomas e935ba5758 The roadmap and status say how approvals differ between agents (#244)
Docs only. The roadmap and status now say how approvals differ between agents (Hermes's one-shot mode turns its own approvals off), and record a decision on one approval behaviour across agents.
2026-11-02 13:34:50 +07:00
Brandon Thomas da83b81be2 A build stops with a plain message when craft-anything-cli is missing (#226)
A local build by Claude Code, Codex or an ACP agent now checks that craft-anything-cli starts before studying or starting the agent. When it is missing or won't start, the build stops with a plain message and what to do, instead of Claude Code's "MCP tool not found" error. A check that times out lets the build go ahead, and stopping the build ends the check.

Refs #91, #64, #113.
2026-11-02 13:16:39 +07:00
BFlat 4419c674cf "It's done" keeps a build as it is and stops offering to carry on (#221)
A paused, stopped or failed build only offered Continue or Try again; there was no way to say "enough now". project_build_finish marks the project Ready and adds a Done step to its conversation, keeping everything; the project screen shows It's done beside Continue and Try again when nothing is running.

Fixes #210
2026-11-02 11:51:58 +07:00
one-bit 1dcb46b2f8 Unreal Engine installations and their bundled Clang are found on Linux (#191)
Reads Linux registrations from ~/.config/Epic/UnrealEngine/Install.ini, honours a valid UE_ROOT, takes the version from Build.version, and counts the selected engine's own bundled Clang as its C++ tools.
2026-11-02 07:11:30 +07:00
BFlat 6355654498 The README and STATUS give today's tool counts (#172)
The README, its Japanese copy and STATUS say 314 tools, 298 of them in the engine and the rest from the AI and setup layers, matching docs/tools.md and craft-anything-cli commands. Fixes #159.
2026-11-02 04:56:04 +07:00
才倾梦华V d55523e6cd Add Simplified and Traditional Chinese UI translations (R2.9) (#115)
Adds Simplified and Traditional Chinese UI catalogs, picks the UI language from the system when Language is System, makes prices and a few labels translatable, recognises Chinese words for games and websites in requests, and adds cargo xtask i18n-coverage and docs/localization.md.
2026-11-02 00:34:31 +07:00
Brandon Thomas 4756633f89 Show what a build is on now, and open up into its activity as it arrives (#10)
The status row names the command or file under way instead of only counting
actions. "More detail" opens the latest lines: stages, every command and file
with how it ended, what the builder said, and what programs printed outside the
conversation. Everything is kept in build-activity.log, with secrets hidden, and
the rebuild_activity_show tool and the CLI read the same.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:12:56 -04:00