128 Commits

Author SHA1 Message Date
Afloat cf414ff4b9 Apply replay body limits after redaction (R3.11) (#717)
A website stand-in charges its per-body and total byte limits on the text it actually keeps after redaction, and drops repeated samples before charging them, so polling no longer uses up the budget. A cached 304 whose body was left out stays unavailable (R3.11).
2026-11-04 20:32:58 +07:00
Agapenor f3efc1eb61 Delete private browser profiles when the browser closes (#822)
A browser or Electron app we launch gets its private profile folder removed when it closes or fails to start, after its process is stopped; a removal that fails is logged. Refs #810.
2026-11-04 20:32:06 +07:00
Alex Joaquim Pereira e59b1ef4d8 Register an installed agent named with --backend (R5.5) (#821)
`rebuild --backend <name>` uses a configured backend of that name as it is, and registers an installed agent whose name matches when it is not added yet; an unknown name adds nothing. Follow-up to #819 (R5.5).
2026-11-04 20:03:19 +07:00
Alex Joaquim Pereira f8d6e3585a Build with an API backend without adding an agent (R5.5) (#819)
`rebuild` looks for and saves a coding agent only when no enabled AI can build, so a run with an API backend no longer adds Claude Code to the settings; a refused command changes nothing (R5.5).
2026-11-04 19:29:42 +07:00
Justin John 03265d442d Name the program an agent test ran, and say when a saved agent path is gone (#809)
`ai test` for a coding agent names the program it ran and, when that was not the saved one, the saved path it replaced; `doctor` says a saved path has no program there instead of blaming PATH. Refs #721.
2026-11-04 19:29:35 +07:00
Agapenor 98d12f23a0 Make all permitted tools available to Codex from startup (#805)
Codex chats and builds start the Craft Anything MCP server with `--all-tools`, because Codex does not refresh its callable tools after `enable_toolset`; the server still applies Clean room restrictions. Fixes #538.
2026-11-04 19:29:30 +07:00
Hasnain 9d4908bd92 Record a live Vineflower run on a real JAR (R5.7) (#802)
Docs only: records a live run of `java_vineflower_decompile` on Linux (OpenJDK 21, Apache Commons IO 2.16.1: 253 source files, exit 0) and marks the Java tools verified. Windows, macOS and `.class` inputs are still unchecked.
2026-11-04 19:23:51 +07:00
BFlat b2d7e89ee8 Give the macOS app a menu bar with its actions (#804)
On macOS the system menu bar has the app's actions with the usual Mac shortcuts (Settings ⌘, · New project ⌘N · Open ⌘O · Command palette ⌘K · Quit ⌘Q, the Simple/Advanced and Clean room/Deep choices, and Help links to this repository), through muda. Other systems are unchanged.

Supersedes #791.

Co-authored-by: sanketdofe <46375884+sanketdofe@users.noreply.github.com>
2026-11-04 17:03:01 +07:00
BFlat cb395ee2c6 Let people fold the builder's plan card away, and keep the fold (#790)
The builder's plan card can be folded away, and the fold is kept in the project's feed until the builder makes a new plan (refs #504).

Supersedes #779.

Co-authored-by: Fábio Soares <fabiodev1123@gmail.com>
2026-11-04 16:01:37 +07:00
BFlat b6f61d15ff Say when the Claude desktop app is installed but Claude Code isn't (#789)
When the Claude desktop app is installed but Claude Code isn't, the setup card and ai detect say so and how to install Claude Code (refs #259).

Supersedes #781.

Co-authored-by: FuryNocturn <28540819+FuryNocturn@users.noreply.github.com>
2026-11-04 12:58:46 +07:00
BFlat 458dc4638c Refuse a folder or app bundle as an agent's program (#788)
A folder or app bundle can't be saved as an agent's program (on a Mac the file picker returns the .app), and one saved before is never started: the usual program is used (fixes #467).

Supersedes #778.

Co-authored-by: Fábio Soares <fabiodev1123@gmail.com>
2026-11-04 12:24:10 +07:00
Alex Joaquim Pereira 8a6af4155c Point Unreal's C++ guidance at the right toolchain per platform (#777)
Unreal's C++ guidance names the right toolchain on each system: the bundled Clang on Linux, Xcode on macOS and Visual Studio on Windows.
2026-11-04 12:04:10 +07:00
Fábio Soares 0e4a1cfb98 Offer a switched-off agent in the setup card, and turn it on (#784)
An agent that is saved but switched off is offered again when it's found on the computer, and choosing it turns it on, keeping its program and folder, instead of No coding agent was found staying on screen (refs #423).
2026-11-04 11:33:43 +07:00
Fábio Soares 42f44257ae Keep long lines in the feed's tool work inside the window (#785)
Long lines in the feed's tool work stay inside the window: a tool-work row with no tool shows its note's first line, cut to fit, as its title, and the notes below wrap (refs #666).
2026-11-04 11:33:38 +07:00
BFlat 1fbff715b5 Stop a build whose checks never find a working build, across Try again (#782)
A build whose checks keep finding no working build stops after 10 in a row, across Try again presses, until a new request starts the count again (kept in craft.json as not_working_checks), and with app/ empty the builder is asked to write the project and show its build's output instead of fixing a build that doesn't exist (refs #736).

Supersedes #776.

Co-authored-by: Fábio Soares <fabiodev1123@gmail.com>
2026-11-04 10:58:49 +07:00
BFlat 0356c4bc88 Find Flatpak browsers on Linux and give sandboxed browsers a profile they can reach (#759)
Chrome, Brave, Chromium and Edge installed as Flatpaks on Linux are found, and a Flatpak or Snap browser keeps its private profile in the home folder its sandbox shares, so it can start and its port can be read (fixes #747).
2026-11-04 10:31:11 +07:00
Afloat eab6a0f01b Address the parser review findings from #722 (#766)
Parser follow-ups to #722: Java reference searches keep earlier hits and report partial coverage, DEX signed LEB128 takes at most five bytes, legacy AAPT long strings recover within a shared budget, and ext indirect metadata is read within bounds.
2026-11-04 10:30:57 +07:00
Fábio Soares 41d2175e25 Say when app/ is empty in the build check and the stop message (#771)
When app/ is empty, a failed build check and the stop after two unchanged turns say the builder hasn't written the project (refs #736).
2026-11-04 10:06:23 +07:00
Tanish Manku 8cf29dfa08 The keep-awake helper ends by itself once the app it serves is gone (#762)
The keep-awake helper ends by itself once the app it serves is gone (Windows checks the process every 30 s, macOS uses caffeinate -w), so closing the window during a build no longer keeps the computer awake.
2026-11-04 10:06:18 +07:00
Tanish Manku c258f0f22c The text protocol's markers count only in a reply's words, not inside a call's arguments (#764)
The text protocol's Final Answer: and Action: markers keep a reply as text only when they're in its words, not inside a fenced call's arguments.
2026-11-04 10:06:12 +07:00
FuryNocturnTV (Tare Fernandez) 4d6e3b01bf Look up a relative program where it starts before calling its path empty (#772)
A program started by a relative path in another folder is looked up where it starts before it's reported as a path with no file (on Unix, a script there whose interpreter is missing).
2026-11-04 10:06:07 +07:00
FuryNocturnTV (Tare Fernandez) 0fc381c206 Count Antigravity's second folder in the Windows search path test (#770)
The Windows search-path test counts Antigravity's second folder, added by #748.
2026-11-04 10:06:02 +07:00
Afloat 686f3429e1 Keep builder availability fixtures independent of live discovery (#773)
The missing-builder UI test marks discovery as already running, so a late real discovery can't replace the test's own results before it checks Start.
2026-11-04 10:05:52 +07:00
Aek 42f459ccf9 Check a person's own project by its own build and tests, in any language (#760)
A person's own project, edited in place with nothing to recreate, is checked by its own build and then its own tests, in any language a toolchain table knows (Rust, Node.js, Python, Go, .NET, Maven, Gradle, Make), instead of the checks made for a recreation (no --screenshot option, self-test or MECHANICS.md added to their code). A project with no tests, or one Craft Anything doesn't know how to build, isn't a failure and the note says so.
2026-11-04 09:55:48 +07:00
Aek 7a0d7de0e4 Keep what a project edited in place is built with, read from its own files (#755)
A project edited in place (Work on my project, or rebuild --existing edit) keeps the stack its own files use (an engine's project file, then Cargo.toml or package.json dependencies, then other project files), unless the request names another; a Godot folder no longer gets Unity from a request that reads as a game.
2026-11-04 08:46:52 +07:00
Tanish Manku 87f09c4d16 Run JSON tool calls a model writes after a sentence, or several in one reply (#753)
Tool calls a local model writes as fenced JSON after a sentence, or several in one reply, are run when every one names an offered tool; words after the last call, other code or an unclosed fence keep the reply as text.
2026-11-04 08:22:21 +07:00
FuryNocturnTV (Tare Fernandez) c26e6ba525 Say when a saved program path has no file there, instead of blaming PATH (#739)
A program started by its path (a saved agent program, say) with no file there says so and names the path, as possibly moved by an update, instead of "isn't installed or isn't on your PATH"; it stays a missing program, so builder turns aren't retried (refs #721).
2026-11-04 08:08:33 +07:00
Aek 66bda5607d Keep Make off the folder picked on Work on my project, and don't read an address in its request as an original (#750)
Leaving "Work on my project" forgets a folder it would edit in place, and a folder dialog that ends after leaving that door is dropped, so a version made on Make can't edit the person's own project. An address in that door's request stays part of the request instead of becoming an original to recreate. Follow-up to #686's review.
2026-11-04 08:05:51 +07:00
BFlat 085b7029a5 Type in a model the list doesn't offer in Settings → AI (#730)
Settings → AI has an "Another model" field beside the model list, so a newer model, a variant such as opusplan, or one another harness serves can be chosen without the CLI (fixes #470).
2026-11-04 08:05:40 +07:00
Tanish Manku 5eb1b2f475 The build check says where a project made one folder down is, and the Rust steps say Cargo.toml goes in app/ itself (#751)
* The build check says where a project made one folder down is, and the Rust steps say Cargo.toml goes in app/ itself

* Tick R5.4's nested project line and add the folder mix-up it showed

* Every missing-project note names a project one folder down; only app/ is told its files belong there
2026-11-03 18:05:03 -07:00
ghzgod 447d1eb729 Add a model server by its address in the first run's AI step (#680)
The first run's AI step has the same "Add an AI by its address" form as Settings → AI, so a model server on another machine can be set up there.
2026-11-04 07:59:12 +07:00
R ! Y 4 Z 1126c4a8e4 Find Visual Studio C++ tools installed outside Program Files (#726)
Unreal's readiness check finds Visual Studio's C++ tools installed outside Program Files, from the Visual Studio Installer's instance records and a developer shell's VSINSTALLDIR, VCINSTALLDIR or VCToolsInstallDir (fixes #669).
2026-11-04 07:58:04 +07:00
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
Tanish Manku f56362f015 Bring the roadmap up to date with #490, #536 and the blocked release push (#741) 2026-11-03 17:02:48 -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
Alex Joaquim Pereira 801f060368 Refuse pictures over 20 MB when they are added (#720)
A picture over 20 MB is refused when it is added (prompt box, drag and drop, Make's picker) with a message, and copy_pictures refuses the whole list before copying anything, instead of dropping it silently when the message is sent.
2026-11-04 02:13:10 +07:00
BFlat b9ca099903 More format parsers keep to their declared lengths and refuse impossible values (#722)
Replays #688 and #690–#715. DEX, Java, SQLite, Android, ZIP, ASAR, file system, PyInstaller, JSON config and packet parsers keep to their declared lengths and refuse impossible values.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-04 01:43:07 +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
BFlat 636b3ff3d7 Bound CPIO checksum work across firmware probes (#683)
CRC cpio checksum work shares one byte allowance across a firmware scan and stops when the scan is cancelled; checksum fields must be eight hex digits, and skipped verification is reported (R3.12). Replays #676.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-04 00:33:08 +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
BFlat b79fc506e2 Auto mode deletes inside projects whose path has capitals, and reads quoted paths with spaces whole (#682)
Auto mode's delete check compares paths as written and reads quoted or escaped paths with spaces as one argument, so it neither refuses deletes inside a project with capitals in its path nor lets a delete of the folder beside the project through. Replays #357.

Co-authored-by: samurai <samuraideng@gmail.com>
2026-11-03 23:24:57 +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
Afloat 2122a619e9 Verify stand-in session cleanup by answerer lifetime (#677)
The stand-in session cleanup test checks that the answerer is released instead of reconnecting to a port another listener may reuse.
2026-11-03 23:14:18 +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 9fd46b818b Builder limits, OpenRouter tools, a software-renderer fallback, calmer spinners, lean local builders, lldb calls and LM Studio ports (#657)
Replays #576, #577, #581, #589, #624, #625 and #628. Builder steps stop after 25 failed builds in a row, OpenRouter tool requests ask for a provider that supports tools, a start that never opened a window draws in software next time, spinners stop redrawing every frame, local builders get a lean tool list, lldb call observation works and reports failures, and LM Studio is found on other ports.

Co-authored-by: Fábio Soares <fabiodev1123@gmail.com>
2026-11-03 21:16:34 +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
BFlat ba00f86f30 The command palette stays where it's scrolled (#658)
The command palette follows its selection only when the arrow keys or typing move it, so the wheel's scroll isn't pulled back to the top on the next frame (fixes #584).
2026-11-03 21:05:27 +07:00