Commit Graph

306 Commits

Author SHA1 Message Date
Tanish Manku ac2712a04e Every missing-project note names a project one folder down; only app/ is told its files belong there 2026-11-03 17:49:44 -07:00
Tanish Manku b996c23166 Tick R5.4's nested project line and add the folder mix-up it showed 2026-11-03 17:29:38 -07:00
Tanish Manku 620f17b40e The build check says where a project made one folder down is, and the Rust steps say Cargo.toml goes in app/ itself 2026-11-03 17:28:50 -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
Tanish Manku bb66fa576a The pictures UI test waits for the worker that checks their sizes (#743) 2026-11-03 16:59:48 -07:00
BFlat fb7ac863a3 Pick the coding agents' tab before testing Add another (#732)
Fixes main: the account folder test picks the coding agents' tab of what Detect found before pressing Add another, which #687 moved there.
2026-11-04 03:36:43 +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
Firefly 5af8495354 Split what Detect found into provider and harness tabs (#687)
What Detect found sits under two tabs with counts, Providers (an API key or a local model server) and Harnesses (an installed coding agent), so more providers don't push the coding agents off the screen.
2026-11-04 02:02:53 +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
Firefly 5430c5a7c6 Offer the other model providers by name when their key is set (#684)
Moonshot, DeepSeek, xAI, Groq, Mistral, Together, Fireworks and DeepInfra are offered by name when their key is set, from one table of base URLs, key variables and default models.
2026-11-04 00:38:41 +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
Firefly c7caf7de15 Offer OpenCode Go as a backend, with its session header (#672)
OpenCode Go can be added as a backend: offered when OPENCODEGO_API_KEY (or OPENCODE_GO_API_KEY) is set, on its documented base URL, with a stable per-installation x-opencode-session header kept in the AI settings. Not run against the service.
2026-11-03 23:57:07 +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
Firefly 9ff2b43de4 Point the snapshot's extractor at the Kimi backend that exists (#678)
The snapshot example's extractor names the Kimi K3.1 Pro backend that exists since #655.
2026-11-03 23:14:11 +07:00
Thân Minh Nghĩa 2e0d0813e0 Ignore switched-off screens and shared PCI ids when picking the Linux GPU (#671)
On Linux a switched-off screen (a closed laptop lid) no longer counts as the one the GPU drives, and PCI ids pick a card only when no other card shares them (follow-up to #659).
2026-11-03 22:54:25 +07:00
Afloat c7031174dc Exercise the unterminated DER OID guard (#674)
The unterminated DER OID regression test ends with 0x81, so it reaches the arc-completion guard instead of the non-minimal-encoding check (follow-up to #652).
2026-11-03 22:54:14 +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
Max Mittelstädt e1d962163b Ignore EOCD signatures inside ZIP comments (#660)
A ZIP's end-of-central-directory record is the one whose comment length reaches the end of the file, so a signature inside the comment can't hide the real entries; a file with bytes after its comment still opens.
2026-11-03 22:14:41 +07:00
Max Mittelstädt 2920a7c40f Restrict Claude Code tools and require approval for unknown tools (#637)
Claude Code chats get no built-in tools and builders an explicit list (commands, files, search, todos), so tools that message other sessions, publish or schedule work never start; in Auto mode a tool without an approval rule is refused (fixes #635).
2026-11-03 22:01:45 +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
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
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
BFlat aeb86a69a3 Agent setup and streaming fixes: Aider, Antigravity on Windows, chat-only models, SSE limits and retries (#653)
Replays #616, #617, #619, #620 and #621. Aider isn't offered until it has an adapter, Antigravity is found under a redirected LOCALAPPDATA, servers with only specialised models aren't set up for chat, an SSE event's data is capped, and a retry keeps the original request when the agent's session can't be restored. Program lookup adds lower-case extensions on Windows.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:41:06 +07:00
Max Mittelstädt 99bfba88bf Restore originals from long inline source maps (#368)
JavaScript analysis reads a source map comment from the last eight lines of the whole script and keeps its full URL, so originals are restored from large inline source maps.
2026-11-03 20:41:02 +07:00
BFlat 0e79ffaaa5 Remember "Always for this project" on a tool's consent card (#654)
"Always for this project" on a consent card is remembered in the project, and a tool allowed that way isn't asked about again (fixes #563). Replays #575.

Co-authored-by: Fábio Soares <fabiodev1123@gmail.com>
2026-11-03 20:40:55 +07:00
Fábio Soares e9852f8c58 Name every place the website check accepts a site, and where the app really is (#627)
When the website check finds no built site, it names every place a site is accepted (dist/, build/, out/, or a plain index.html without package.json) and where the app really is (fixes #494).
2026-11-03 20:35:03 +07:00
Fábio Soares 3be1d0b871 Refuse an agent's own file tools outright in Clean room chats and questions (#574)
In Clean room, a chat or question refuses the agent's own file, shell and web tools outright, so it works only through our tool server; this no longer rests on the agent's defaults (fixes #564).
2026-11-03 20:34:57 +07:00
BFlat 15de36614b Format parsers refuse or flag input they used to half-read (#652)
Replays #606–#615. Binary plists, base64, OIDs, string offsets, tar, cpio and source maps refuse or flag input they used to half-read.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:29:18 +07:00
BFlat 82856a30b2 Redact HAR reports more thoroughly and count their bodies correctly (#648)
Replays #602–#605. HAR reports redact percent-encoded credential names and declared secrets in every kept field, count decoded body bytes, and template only real dates in API paths; the stand-in backend matches older recordings with the current query rules.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:25:48 +07:00
Ole Bohmbach 472d061921 Keep build tools and approvals from following links out of the project (#623)
Builder file tools and the approval policy follow links the way the file system does, so a symlink or junction inside a project can't lead a builder's read or write outside it (CWE-59); build_files_list shows links without walking into them.
2026-11-03 20:19:16 +07:00
Ole Bohmbach 2769e787b0 Cap the size of a Ghidra bridge reply (#588)
The Ghidra client refuses a reply line over 128 MiB and closes the connection, so a hostile binary can't make one reply exhaust memory; a long reply split across read ticks is still read whole.
2026-11-03 20:19:09 +07:00
Ole Bohmbach 521947899d Copy only the scripts a web script export can write (#587)
web_scripts_save copies only the scripts that fit its max_scripts and max_bytes; scripts past them are listed by URL only, so a large or hostile capture costs no more than the export's own limits.
2026-11-03 20:19:03 +07:00
Fábio Soares 78e1f7dce0 Say where a program is when it is there but can't start, instead of "isn't installed" (#583)
A program that is on disk but can't start (an npm script whose node is missing) says where it is and what to check, instead of "isn't installed"; on Windows an .exe is started by the path it was found at (refs #152, #95).
2026-11-03 20:15:01 +07:00
Ole Bohmbach a6920ff271 Cap the edges a native call graph lists (#582)
A native call graph lists at most 50,000 call edges and says when it stopped there, so one function with a huge number of call sites can't blow up the report.
2026-11-03 20:14:55 +07:00
Fábio Soares b9c4c53099 Find Hermes Agent's native Windows install when the app's PATH is older than it (#585)
Hermes Agent's native Windows install (%LOCALAPPDATA%\hermes\bin) is found even when the app's PATH predates it (refs #116).
2026-11-03 20:14:49 +07:00
Max Mittelstädt 5845227f9f Bound IPv6 extension parsing to the declared payload (#639)
IPv6 extension headers are read only within the packet's declared payload, so padding after a packet can't change its reported protocol.
2026-11-03 20:14:20 +07:00
NetterSilver 0cff0f4336 Keep-awake helper test accepts a stop that arrives after the connection (#629)
Fixes a flaky platform test: on macOS an accepted socket inherits the listener's non-blocking mode, so the keep-awake stand-in helper dropped a stop that arrived after accept.
2026-11-03 20:14:14 +07:00
BFlat 3ee1642770 Serve previews only to this computer, stream their files and bound their connections (#649)
Replays #597, #598, #600 and #601. The preview server answers only requests addressed to this computer, streams files, sends no body for HEAD on a missing file, caps open connections and gives a request head one deadline.

Co-authored-by: Afloat <132809511+Afloat16@users.noreply.github.com>
2026-11-03 20:07:33 +07:00