Commit Graph

74 Commits

Author SHA1 Message Date
bflatastic cdeaf3812d Codex is never run as plain text, which opened its interactive mode
When the check of codex exec --help didn't find --json, the run fell back to the plain adapter, codex <prompt>, which is Codex's interactive TUI and fails with "stdin is not a terminal". An adapter can now say its plain form doesn't work; Codex keeps its own adapter and the run says the check couldn't confirm the flag.

Fixes #199
2026-11-02 08:45:10 +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
GGWA 4448b24065 A pill corner made with calc(infinity * 1px) is captured as 9999px (#189)
Chrome reports Tailwind v4's rounded-full as its largest length, 3.35544e+07px; the capture now records any corner above 9999px as 9999px and keeps the other corners.

Fixes #155
2026-11-02 07:08:41 +07:00
Firefly e0f97a2626 The fallback-order test covers a font it doesn't recognise (#187)
Adds an unknown family to the fallback-order test, so FallbackRank::Other is checked and sits between sans and serif faces.
2026-11-02 06:44:38 +07:00
BFlat 2022642554 Setup and the doctor read a client's other names from one table (#184)
agy as another name for antigravity was written out by hand in both; Client::is now matches an id with dashes or underscores, or an alias.
2026-11-02 06:10:56 +07:00
BFlat 34d0d654ba Clean room captures leave out class names and query strings (#183)
A visitor's view of a site no longer keeps the page's class names (outline items and unnamed-control examples) or the query strings and fragments on image and link addresses, which can carry deployment ids and tokens.

Fixes #156
2026-11-02 06:08:01 +07:00
X-EON d0c341739b Antigravity (agy) works as an agent program, in setup and the doctor (#89)
Adds an Antigravity adapter (stream-json output, resume by conversation, builder permissions) and lets setup and the doctor connect and check it under `antigravity` or `agy`.
2026-11-02 05:59:23 +07:00
BFlat 7776b97d2b A question answered outside a build stays in the project's conversation (#180)
Callers take the question before answering, and record_answer adds it with its answer when the saved conversation doesn't have it, once. Fixes #176.
2026-11-02 05:35:28 +07:00
BFlat 706f250c1c A failed build check says where it looked, not app/ for an app edited in place (#178)
The build check's messages name where the app is (Workspace::app_place): app/, or the project folder for an app edited in place. Fixes #174.
2026-11-02 05:26:27 +07:00
BFlat 3a60c04c27 Browser evidence records Clean room when the run is in Clean room (#177)
Results read through a browser record the run's mode in environment.clean_room instead of always false. Fixes #157.
2026-11-02 05:23:44 +07:00
BFlat e4a4cf1f4a A website capture refuses the browser's error page (#171)
web_site_capture checks where the page is first and refuses, without making the output folder, when the browser is on its own error page or a blank one after a failed open. Fixes #158.
2026-11-02 04:54:03 +07:00
BFlat b9905c63a4 An out-of-date Claude Code says so, and how to update it (#169)
Claude Code's "does not support this model" error says Claude Code is too old, with the fix (claude update for the command-line tool, or another model in Settings → AI), and isn't retried. Fixes #165.
2026-11-02 04:41:07 +07:00
BFlat c94483d6a1 A full-page website capture scrolls through the page first (#168)
Before each width's full-page screenshot the page is scrolled through, lazy images are loaded and waited on (5 s at most), and it goes back to the top, so scroll-revealed sections and lazy images are in the picture. Fixes #160.
2026-11-02 04:37:41 +07:00
Ole Bohmbach ca355ea19d Give every Settings tab the same width, with air before the scroll bar (#151)
The Settings scroll area no longer shrinks to each tab's content, so every tab has the same width and the scroll bar stays in one place; settings keep 14 points clear of it.
2026-11-02 04:16:17 +07:00
BFlat aae724f14b A rate-limited AI service is waited for as long as it asks (#148)
The builder reads the wait a busy or rate-limited service asked for (at most 15 minutes), says so plainly, and tries again then, instead of a fixed 30/60/90 s with the raw error. For #142.
2026-11-02 03:24:04 +07:00
Ole Bohmbach 3f8690a923 Find the Godot editor that the store installs on macOS (#141)
The macOS zip unpacks as Godot.app; it's renamed to Godot_v<version>.app so the engine store finds it, moving a previous install aside and restoring it if the rename fails.
2026-11-02 03:19:18 +07:00
BFlat e4d43abe14 Choose the model an AI uses in Settings → AI (#145)
Settings → AI shows each AI's model with Change…, listing the API's own models or Claude's models for Claude Code; craft-anything-cli ai model <name> [model] lists or sets it. Fixes #123 and #127.
2026-11-02 03:06:40 +07:00
BFlat 69c0b8c9be Find coding agents npm installed under a custom prefix (#139)
npm's global prefix, from NPM_CONFIG_PREFIX or prefix= in ~/.npmrc (its bin folder outside Windows), is searched after PATH with the other usual folders, without running npm. Fixes #132.
2026-11-02 02:37:17 +07:00
BFlat 8ea06bb6fb Add an AI by its address in Settings → AI (#137)
Settings → AI gets an Add an AI by its address form; AiHub::add_server asks the server for its models before adding it and picks one that can chat when none is named; ai add --kind openai_compatible --base-url without --model does the same. Fixes #54, #98 and #128.
2026-11-02 02:32:11 +07:00
BFlat 8c3532d94c Test that a stopped stand-in frees its port where the server is, without racing other tests (#136)
The engine test no longer connects to the stopped stand-in's port, which another parallel test could be handed; platform::standin_server tests that dropping a server frees its port, trying it for a moment.
2026-11-02 02:09:00 +07:00
BFlat 12d7bc14d6 Look for AI picks a model that can chat, not an embedding model (#134)
Detection picks the first listed model that isn't named for embedding, ranking or speech, and falls back to the first only when that's all there is. Fixes the cause of #127.
2026-11-02 02:08:49 +07:00
Agapenor 481361563b A Flutter library with a header table at the very end of the address range is read safely (#131)
Elf::parse in formats/src/dart.rs skips a program or section header entry that starts past the end of the file, so its field offsets can't overflow.
2026-11-02 01:46:48 +07:00
Firefly 4c0eb23563 Name the font fallback order, and test the order itself (#129)
The fallback font order uses a named FallbackRank, and the test checks the order sans_first produces.
2026-11-02 01:42:58 +07:00
BFlat 01994f0622 A program run in a console on Windows doesn't lose what it wrote on a busy computer (#126)
console_text waits for the program's output to arrive and settle before closing the console, waits up to 15 s for it, and says so instead of returning an empty screen.
2026-11-02 01:11:03 +07:00
Firefly 376e8efcbd Draw CJK interface text in a sans font, not a mincho (#125)
Fallback fonts are ordered sans first (BIZ UDPGothic, then Noto Sans CJK, then other sans faces), with mincho and serif faces last, so Japanese and Chinese interface text isn't set like a book page.
2026-11-02 01:10:52 +07:00
BFlat 9d3ea967fb Translate the agent program setting into Chinese (#122)
Both Chinese catalogs get the five strings #117 added, so cargo xtask i18n-coverage passes again on main; pitfalls.md notes the case.
2026-11-02 00:51:01 +07:00
BFlat 9c93f3a8ba Find coding agents in OpenCode's install folder and under nvm (#120)
~/.opencode/bin, ~/bin and the bin folders of nvm's Node versions (newest first) are searched after PATH with the other usual folders, so a desktop-started app finds OpenCode from its own installer and agents npm installed under nvm.
2026-11-02 00:39:38 +07:00
BFlat 187fe5e000 Godot installs on macOS: its program may be bigger than other engines' files (#118)
The per-file unpack limit is passed per download: 256 MB for pinned tools as before, 1 GiB for Godot, whose download is checked against its official SHA-512 list first. Fixes #100.
2026-11-02 00:35:08 +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
BFlat 1a199ec531 Choose an agent app's program in Settings → AI (#117)
Each local agent app in Settings → AI shows which program runs it, with Choose… and Find it automatically; craft-anything-cli ai program <name> [path] does the same. The not-installed errors point there instead of a setting that didn't exist.
2026-11-02 00:32:39 +07:00
WadahBadawi fdcb8cb0f6 Fall back to BM_CLICK for off-screen Win32 buttons and check boxes in UI walkthroughs (#77)
When UI Automation's button or check box proxy fails (it uses SendInput, which needs an interactive desktop), the walkthrough posts BM_CLICK to the control's window instead. PostMessage, so a click that opens a dialog doesn't block the walkthrough; only for buttons and check boxes.
2026-11-01 23:56:44 +07:00
BFlat ca706dc980 Look for AI offers local servers already set up in OpenCode (#111)
Look for AI reads provider baseURLs from OpenCode's settings and probes those on this computer or its network, so LM Studio on another port or a server on another machine is offered. The JSONC reader moves from setup to formats so ai can use it. Fixes #83.
2026-11-01 23:56:28 +07:00
BFlat 484f22e4b7 A rebuilt stand-in waits for its predecessor's port instead of failing (#109)
Taking over a replaced stand-in's port tries a busy port again for up to two seconds, so a restart no longer fails now and then with Address already in use.
2026-11-01 23:42:45 +07:00
BFlat 52b10bc5ba The Settings window keeps its width on every tab (#108)
The Settings tab column takes exactly what's left of the window with room for the scroll bar, and a path field leaves room for its button, so the Engines tab no longer widens the window. Fixes #68.
2026-11-01 23:37:35 +07:00
BFlat d7281f25e1 Why we ask is shown on the first-run purpose page, not hidden in a hover tip (#106)
Why we ask is shown on the first-run purpose page instead of a link-coloured hover tip that did nothing on a click. Fixes #71.
2026-11-01 23:37:22 +07:00
Agapenor 6787ae4852 The Agent console keeps its size instead of growing until its tabs are cut off (#81)
The conversation's history counts the item spacing and the prompt row is top-aligned, so the Agent console's panel no longer grows 17 points a frame until its tabs are cut off.
2026-11-01 23:32:19 +07:00
Firefly 1c6268b880 Add a Japanese UI (#87)
Adds a Japanese UI catalog (Settings > General > Language) and makes the Ghidra memory guide translatable as whole sentences.
2026-11-01 23:32:15 +07:00
BFlat dc344ea305 The Make screen says Craft Anything looks at the original, not an unnamed "we" (#107)
The Make screen's question and its Clean room and Deep answers name Craft Anything instead of an unnamed we; the French catalog follows. Fixes #75.
2026-11-01 23:23:06 +07:00
VakzOs 5d794bfefb Add a French UI translation (#70)
Adds a French UI catalog (Settings > General > Language), a test that every translation keeps its placeholders, and --lang on the snapshot example.
2026-11-01 23:05:25 +07:00
valère didon 26bf3635f1 Frida lists devices and processes on Windows instead of hanging or finding none (#59)
frida_devices_find runs frida-ls-devices in a pseudo console on Windows, where it crashed on pipes and hung; frida_targets_list falls back to plain processes; device columns split on two spaces. Fixes #58.
2026-11-01 23:05:18 +07:00
WadahBadawi 3973cbfcdd Scope test structs FlakyKind and FlakyCheck to unix (#52)
FlakyKind and FlakyCheck move into the unix-only test module that uses them, so clippy -D warnings passes on Windows.
2026-11-01 23:05:11 +07:00
WadahBadawi a7fc1f94a4 Wait for asset facts to load in the asset spending smoke test (#76)
The asset spending smoke test waits for the worker's asset facts instead of a fixed number of frames.
2026-11-01 23:05:04 +07:00
Max Mittelstädt f6725c2b8c Emit object schemas for compare inputs (#93)
runtime_captures_compare's right input had no description, so its schema was the boolean true and Claude Code rejected the whole tool list in Deep-mode builds. It gets a description, and a test checks every MCP input property schema is an object. Fixes #90.
2026-11-01 23:04:57 +07:00
BFlat 59650067a3 Find Ghidra installed from a Linux package (#103)
Linux packages put Ghidra in /opt/ghidra (Arch and derivatives) or /usr/share/ghidra (Debian, Kali) with only a start script on PATH. The engine table lists both folders and the Ghidra lookup falls back to them.
2026-11-01 23:03:12 +07:00
BFlat 600ddb5aa4 Codex runs in project folders that aren't git repositories (#101)
codex exec refuses to run outside a git repository or a folder it trusts unless it gets --skip-git-repo-check, and project folders aren't repositories, so every Codex build failed at once. The adapter passes the flag, once, even when the backend's own args already have it.
2026-11-01 23:03:07 +07:00
Agapenor 348949ca76 Analysing code at the top of the address space finishes instead of running forever (#78)
The PLT, prologue and pointer scans in disasm/program.rs use checked steps, so code near u64::MAX no longer wraps to 0 and walks the whole address space. Adds open roadmap lines for an A32 STRD/LDRD decoder panic and unchecked header offsets in dart.rs.
2026-11-01 22:39:42 +07:00
Justin John 1c7a7b8ef1 Look for Claude Code where WinGet installs it (#65)
WinGet's Links folders, per user and machine-wide, join the folders searched after PATH, so an app started before a WinGet install of Claude Code still finds it.
2026-11-01 19:32:29 +07:00
muraa-p 3e016c92ee Leave a pin's old program copies out of the copy (#56)
A pin leaves out a program's old running copies (name.running-N.exe) when the program they copy is beside them.
2026-11-01 18:40:57 +07:00
Tommy Leonhardsen 63aaaeeb08 Every engine listing finds a Ghidra installed in a versioned folder or set through its folder setting (#55)
engines_list, doctor, capabilities and Requires::Engine share Settings::engine_path, which honours the Ghidra folder setting, and locate() finds an engine unpacked into a versioned sub-folder.
2026-11-01 18:40:51 +07:00
muraa-p 793e47ce0f Find the Windows shim, not npm's POSIX script, for a bare program name (#51)
On Windows, which() tries PATHEXT names before the bare name, so npm's .cmd shim is found instead of the extensionless POSIX script beside it (#41).
2026-11-01 18:40:44 +07:00