Commit Graph

15 Commits

Author SHA1 Message Date
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 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
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
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
Agapenor fef3f8231e A .utoc naming billions of empty compression methods no longer runs out of memory (#61)
A .utoc header naming billions of zero-length compression methods no longer collects empty names until memory runs out: only the 255 a block can point at are read, the rest are skipped by length.
2026-11-01 18:40:38 +07:00
GGWA b09b99aaa7 Stop an ELF segment at the end of the file offsets from overflowing (#43)
va_to_off added a PT_LOAD segment's file offset to an address delta unchecked, so a segment whose p_offset is near u64::MAX panicked in debug builds and wrapped in release. It now uses checked_add, so such an address maps to nothing. Two regression tests, one with a crafted ELF64.
2026-11-01 16:33:02 +07:00
GGWA 83f396ac74 Skip an ext inode that starts at the end of the address space (#42)
A group descriptor could point the inode table so far out that an inode started within 128 bytes of usize::MAX; the two checks that an inode fits in the image added 128 unchecked, which panicked in debug builds and wrapped in release. They now use checked_add, so such a root inode is refused and such a child skipped. Two regression tests, and a roadmap line for the same pattern in macho.rs method_list.
2026-11-01 16:32:54 +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
Brandon Thomas e244159c17 Call a coding agent's cost an estimate, not the bill (#9)
Claude Code's figure is its own guess at API prices, which a subscription
isn't charged. The project page now says "AI cost (estimate)" with a note
saying so, and the title bar says "(estimate)". What an API key was charged
is kept apart in usage.json; older files count as estimates.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:04:01 -04:00
Brandon Thomas 7ecce402f9 Try again picks up where a build stopped instead of starting over (#8)
A run with no message was read as a first build, so Try again studied the
original again and gave the builder the first brief, even with its session
saved. A run now carries on when the builder has already worked, and only
runs the check when the builder had finished (awaiting_check in craft.json).

A check that returns an error couldn't look at the build at all, so it gets a
second go, and then the run says the build is finished but couldn't be checked.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:01:22 -04:00
Brandon Thomas 8ba7b3fbdd Record the v0.1.0 release in the roadmap (#2)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:01:06 -04:00
Brandon Thomas 6a120011a1 Explain failed agent runs, keep a log to open, and stop offering git servers as computers (#3)
* Explain failed agent runs, keep a log to open, and stop offering git servers as computers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Fix a lock-up: the build's agent setup took the session lock twice in one statement

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 20:27:44 -04:00
Brandon Thomas c316051c9e Point links and release metadata at the storytold/craftanything repository (#1)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:01:25 -04:00
Brandon Thomas f64ae3bf3c Craft Anything
A native, pure-Rust app that shows anyone how a piece of software works, with
evidence-backed answers, then helps them rebuild it. It ships a desktop app, a
CLI and an MCP server, all driven by one engine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:52:14 -04:00