Commit Graph

209 Commits

Author SHA1 Message Date
bflatastic 103e150d63 Translate Pausing… in the Russian catalog
#555 added "Pausing…" to every catalog and #486 added the Russian one without it, so the
catalog parity test fails on main.
2026-11-03 15:07:09 +07:00
DjMigen 09849084df Add a Russian UI catalog (#486)
Adds a Russian UI catalog (ru), selectable in Settings → General → Language, with key parity to the Chinese catalogs checked in tests.
2026-11-03 15:03:38 +07:00
Fábio Soares b002c5417f Show a named Pause button, and say Pausing… once it is pressed (#555)
Fixes #551. The pause button is named Pause, as the hint says, and reads Pausing… (ignoring further clicks) until the build stops.
2026-11-03 15:01:44 +07:00
NetterSilver 33d243674e List the current manifest and feed versions in the file formats table (#502)
Fixes #497. docs/file-formats.md lists the current craft.json and feed.json versions, and a test checks the table against the constants.
2026-11-03 15:01:41 +07:00
Bently f6055a5ba2 native_function_find gives an offset beyond 64-bit JSON numbers as signed hex text instead of panicking (#477)
native_function_find gives an offset that does not fit a 64-bit JSON number as signed hex text instead of panicking while serialising it.
2026-11-03 15:01:33 +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
Fábio Soares 199a71e08f Give Claude Code a writable conversation folder under Flatpak, and say how to sign in there (#561)
Fixes #506. Under a Flatpak, where ~/.claude is read-only, Claude Code is started with a writable CLAUDE_CONFIG_DIR in the app's data folder so its conversations are saved and --resume works; the sign-in message says how to sign in inside the sandbox. A CLAUDE_CONFIG_DIR the person sets wins, and SSH builds are unchanged.
2026-11-03 15:01:26 +07:00
NetterSilver d3bbf99b4a Write CRC-mismatched ZIP members when if_tampered=continue (#525)
Fixes #518. With if_tampered=continue, core_archive_extract writes a ZIP member whose CRC does not match (the mismatch stays in contradictions), as its remediation says.
2026-11-03 14:59:03 +07:00
GGWA a007d128af Read ZIP names without the UTF-8 flag as CP437 (#532)
Fixes #515. ZIP member names without the UTF-8 flag that are not valid UTF-8 are decoded as CP437, as the ZIP specification says, instead of lossily.
2026-11-03 14:58:57 +07:00
GGWA 5cdcbb7503 The archive inventory says when nested archives were left unopened (#534)
Fixes #519. core_archive_show counts nested archives that a depth or size limit left unopened, reports a nested_not_opened limitation and marks coverage partial.
2026-11-03 14:58:51 +07:00
GGWA 60c3a97a66 Archive extraction refuses names Windows would change: a trailing dot or space, or a colon (#533)
Fixes #516 and #517. Archive extraction refuses member names with a colon or a trailing dot or space, which Windows would change (merging two members, or hiding bytes in an alternate data stream).
2026-11-03 14:58:45 +07:00
NetterSilver d0c5feefa7 List DNS answers the same way on both packet engines (#514)
Fixes #510. The built-in engine lists DNS answers like tshark does: each A/AAAA address keyed by the response's first question, so CNAME chains end at the name asked. Both engines report the dns_answer_attribution limitation.
2026-11-03 14:58:38 +07:00
NetterSilver b0003d7ab2 Keep TCP ports when a frame is cut inside the TCP header (#529)
Fixes #509. The TCP decoder keeps the ports (and the tcp protocol entry) when a frame is cut later in the TCP header; each later field is set only when its own bytes were captured.
2026-11-03 14:56:12 +07:00
NetterSilver 493c20f414 Count each protocol once per frame in the capture summary (#513)
Fixes #508. The capture summary counts each protocol once per frame, so a QinQ frame no longer counts twice under vlan.
2026-11-03 14:56:07 +07:00
Afloat e3d95b4300 Test big-endian nanosecond pcap captures with FCS metadata (#433)
Adds tests for big-endian nanosecond pcap files with FCS metadata, for both Ethernet and raw IPv4 link types.
2026-11-03 14:56:01 +07:00
Alex Joaquim Pereira a3e6bd1b13 C# operators keep their CLR names (#456)
Fixes #316. The C# declaration scanner records operators under their CLR names (op_Equality, op_Addition, op_Implicit…), so managed_reconstruction_check no longer reports declared operators as missing.
2026-11-03 14:54:00 +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
Bently 0ec096c569 Deep mode uses Ghidra when the engine store is under a dot folder such as ~/.config (#484)
On Linux, where the default engine store is under ~/.config, Ghidra is given a dot-free link to the store in a private runtime folder, since it refuses project paths with a dot folder; Deep mode now uses Ghidra there.
2026-11-03 14:51:00 +07:00
Bently c9c263832e Ghidra's pseudo-C uses the names you set, in the code and in its summary (#488)
In Deep mode, Ghidra's pseudo-C uses the names set with native_name_set in the function field, the summary and the code (whole identifiers only, never inside comments, literals or fields); names that can't stand in C or would clash are listed in a limitation.
2026-11-03 14:50:54 +07:00
Bently 473f187c5d doctor says which Java Ghidra runs on as well as the Java on PATH (#489)
doctor reports which Java Ghidra runs on (JAVA_HOME_OVERRIDE in its launch.properties, the Java set for it in Settings, JAVA_HOME, then PATH), and warns when the set folder has no Java or an override wins over it.
2026-11-03 14:50:48 +07:00
Bently 2c7a311dfd Find strings in ELF files with no section headers, read from their loaded segments (#491)
For ELF files with no section headers (common in firmware), native strings are read from the loaded segments, limited to the bytes each segment maps.
2026-11-03 14:50:43 +07:00
Bently c5fce85fe0 In stripped programs, a jump below a function's entry is a tail call to a function of its own (#492)
In a stripped program, an unconditional jump to code below a function's entry that the function hasn't reached otherwise is a tail call to a function of its own (such as frame_dummy jumping to register_tm_clones), instead of pulling that code into the caller.
2026-11-03 14:50:38 +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
NetterSilver 821d82fb85 Send Codex its prompt on stdin instead of the command line (#530)
Fixes #528. Codex gets its message on stdin (codex exec -) instead of as the last argument, so a long message no longer passes Windows' command-line limit (os error 206).
2026-11-03 14:48:47 +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
BFlat e56379f062 Keep every character string in a decoded DNS TXT answer (#485)
Fixes #330. Supersedes #342. A DNS TXT answer keeps every length-prefixed character string, joined, instead of only the first; an empty string doesn't end the record.

Co-authored-by: Rahul <rahulsingh.ranjan06@gmail.com>
2026-11-03 02:55:24 +07:00
BFlat 6fef18141c Accept UTF-16 XML plists after either byte-order mark (#483)
Fixes #333. Supersedes #341. parse_xml decodes an XML plist that starts with a UTF-16LE or UTF-16BE byte-order mark as UTF-16 before tokenizing; a lone surrogate is an error.

Co-authored-by: Rahul <rahulsingh.ranjan06@gmail.com>
2026-11-03 02:50:12 +07:00
BFlat c2ad022f50 Page states select the original tab again after photographing another (#475)
Fixes #335. Before a tab is clicked, web_page_states_capture marks the tab its list has selected and clicks it again after the picture, so later states and the next capture see the page as it was.
2026-11-03 02:47:05 +07:00
BFlat 1e8f661673 A builder never continues a session another builder saved (#471)
Fixes #469. craft.json records which coding agent saved the session (agent_session_by). A build or a question continues the session only with that agent; after the builder changes, the new one starts from the brief. A follow-up to an agent with no saved session also gets the brief.
2026-11-03 02:38:46 +07:00
Bently 09401b6458 Changing a setting keeps a test session to its configured engines, and the live browser tests find the installed browser (#479)
settings_set keeps a test session's engines.only_configured across its settings round trip, so a test that changes a setting still doesn't find this computer's engines. New testing::live_session() finds installed engines for the --ignored live tests; the live website tests use it.
2026-11-03 02:29:14 +07:00
BFlat 843099abca Page states at a second width open that width's own controls (#474)
Fixes #339. web_page_states_capture drops the data-craft-state marks an earlier call left before marking, so a capture at a second width opens that width's own controls instead of a hidden one from the first width.
2026-11-03 02:24:26 +07:00
Kushagra Kumar 1c204067dc Scan C# delegate declarations in reconstruction (#463)
Fixes #315. The C# declaration scanner reads delegate declarations (top-level, nested and generic, with tuple return types), so reconciliation no longer reports a published delegate as a missing type; anonymous delegates and function pointers aren't taken for declarations.
2026-11-03 02:22:01 +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
BFlat 5b09ab03ab A website capture says when its HTML was cut at the size limit (#472)
Fixes #336. web_site_capture keeps the first 4 MiB of the page's HTML; when the page has more, the evidence carries an html_cut limitation with both sizes and the README says page.html is the first part, cut at the size limit.
2026-11-03 02:12:11 +07:00
Bently 7bf8220006 Test sessions find only the engines their settings name (#466)
Test sessions set engines.only_configured (never saved), so Settings::ghidra_launcher and engine_path look only where the settings and the managed store say, not on PATH or in the usual install folders. Tests now pass the same on a machine with Ghidra installed. New locate_configured and ghidra::get::headless_configured are the first half of locate and headless, which return the same as before.
2026-11-03 01:53:53 +07:00
Bently 826efdbcb8 native_function_find gives a negative offset for an address below the function's entry (#465)
native_function_find works out the offset as a signed value, so an address in a block below the function's entry gives a negative offset ("-0x70") instead of wrapping to a huge number or panicking with overflow checks.
2026-11-03 01:53:48 +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
NetterSilver 28df99e066 Report folders that couldn't be listed in archive and JS app evidence (#459)
Fixes #294. walk_dir returns an error when the root folder can't be listed and keeps each unlistable folder below it; core_archive_show and js_app_map mark those folders, add an unlisted_folders limitation and report partial coverage.
2026-11-03 01:43:12 +07:00
NetterSilver b11554d7cc Check folder inventory evidence with the scope it was recorded with (#461)
core_archive_show records max_entries and max_total_bytes, and a shared recorded_inventory helper checks a folder's freshness at the scope it was recorded with, so core_archives_compare and the Android, Apple and Harmony graph tools no longer refuse unchanged folders as file_changed.
2026-11-03 01:43:05 +07:00
NetterSilver d4b20027b9 Declare positional record properties in the C# declaration scanner (#448)
Fixes #317. The C# declaration scanner turns a positional record's parameters into properties (unless the body declares a member of the same name), so reconciliation no longer lists them as missing.
2026-11-03 01:42:57 +07:00
NetterSilver f94cbe72db Disclose the serialized-file read limit in Unity bundle listings (#454)
game_unity_bundle_list adds a files_unread limitation when a bundle has more serialized files than it reads (16) and says "at least N object(s)" in its summary.
2026-11-03 01:42:51 +07:00
NetterSilver 5bc54ce64a Keep every tensor in a model summary's saved evidence (#457)
In summary mode formats_ai_weights_show saves every tensor in its evidence record with complete coverage, so core_evidence_browse can page through all of them instead of stopping after the first page.
2026-11-03 01:42:44 +07:00
NetterSilver 977ee5c6b5 Fetch source maps served from the script's own loopback origin (#464)
Declared source maps on the script's own loopback origin (http://127.0.0.1 or [::1] with a port) are now resolved against the script URL and fetched with the bounded HTTP client, reporting fetched, bytes or the reason. Other hosts, ports, schemes and remote https maps are still never requested.
2026-11-03 01:42:37 +07:00
BFlat bbb28b3aa6 An app folder survey says when a file couldn't be opened, and its coverage is partial (#453)
app_folder_explain counts files it couldn't open to look inside (unopened_files) and reports partial coverage then, and when its walk couldn't read something, instead of a complete 'nothing points to a runtime'. Fixes #292.
2026-11-03 00:24:10 +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
muraa-p c6c8f35612 List a remote Frida device without frida-ls-devices -H (#227)
Listing Frida devices with a remote address returns that remote as one device, marked not contacted, instead of running frida-ls-devices with a -H flag it doesn't have.
2026-11-03 00:12:33 +07:00
BFlat 4a6d87a107 ARM32 loads and stores keep their memory operands in pseudo-C (#450)
ARM32 and Thumb loads and stores keep their memory operands, so pseudo-C shows r0 = *(uint32_t*)(r1 + 4); instead of r0 = 0;; write-back and shifted or subtracted index forms are shown as written. Fixes #277.
2026-11-03 00:12:07 +07:00