AIClaw v3.7.7, described in a dev.to post as released on October 12, adds two related but deliberately separate capabilities to the desktop app: an in-app, read-only file preview that opens beside the conversation, and a distinct view of the modifications recorded when a tool changed a file. The post states that v3.7.9 was the latest public release at the time of writing, and that the behavior it describes shipped in v3.7.7 rather than being an unreleased proposal. Because the account is a community post, these specifics are the author's claims rather than independently verified facts.
The stated motivation is a review problem rather than a rendering problem. A chat message can report that a SQL query was updated or a report saved, but the author argues that switching applications to check interrupts the review, and that opening the current file does not necessarily reveal what the agent changed. The preview is therefore framed as inspection, not editing: the panel does not save changes, and unsupported formats, including Office documents, keep the existing system-open behavior.
Clicking a supported file card, mechanically, causes a read-only panel to open beside the chat. The post says line numbers, content copying and syntax highlighting—where a loaded grammar exists—are provided for text, SQL, Markdown and common source-code formats, while Markdown can be viewed either rendered or as source. Rather than compressing both panes without limit on narrower windows, the preview overlays the main content. As an illustration of something readable in context without launching an external editor, the author gives a short SELECT statement.
Language selection is described as explicit rather than automatic. The format map picks languages from explicit extensions plus a small set of recognized filenames, and the highlighter uses an explicit language rather than auto-detection. When a grammar is unavailable, or when input is large, the panel falls back to escaped plain text. That is a design choice with a visible consequence: a file with an unusual extension may render as plain text even though its contents are code.
Recorded diff is the second capability, and what it is not receives careful treatment in the post. Opening the same preview panel in comparison mode happens through file-change entries in the work panel; there, side-by-side or unified views can be chosen by the reader, or the recorded before and after snapshots can be read, with separate line numbers carried by removed and added lines. A query altered so that it selects an ID and email instead of only an ID serves as the author's example; that recorded transition is shown by the comparison even if the file on disk is later edited.
The boundary is stated explicitly in the post: the recorded after snapshot is not a claim about current disk contents, and the panel displays a reminder of that distinction. It does not compare against Git HEAD, does not inspect staged changes and does not offer a general repository-review view. For freelancers who habitually reach for a Git client, that means the feature answers a narrower question — what did the tool change at that moment — and not the broader question of how the working tree differs from the last commit.
Rather than being hidden, scale limits are documented. A line comparison is performed by the diff helper, and once 250,000 is exceeded by the product of the two line counts, replacement blocks are used instead of allocating a large comparison matrix. Displayed differences are also capped at 3,000 lines by the panel, so the author notes that complete review of very large changes may still require an external editor. Those numbers describe the tool's own thresholds, not measured performance.
Local file reading is handled through a host boundary. A preview is requested by the renderer over Electron IPC, with the path and the owning session ID passed along; resolution of relative paths is performed by the host against that session's working directory, rather than against whichever workspace is selected at a later time. The reader then applies its own checks: it confirms that the descriptor it opened points at an ordinary file, caps how much it will read, and turns away content containing NUL bytes or text that is not valid UTF-8. It also screens protected locations for both the requested path and the path that path canonically resolves to. For disk-text previews, 512 KiB is the limit, and displayed source content is bounded by size and line count as well.
These checks, the author is explicit, protect the preview path only and are not a general sandbox for every filesystem operation, and recorded snapshots are used by the comparison view instead of rereading the file. A separate UI race is also addressed: should a read finish after another file is opened or the user switches chats, the stale result is ignored by the store, so a delayed response cannot reopen another conversation's preview.
As a document rather than an execution surface, Markdown is treated. The existing parser and sanitizer are reused for local Markdown previews, with inline style attributes and image tags forbidden in the preview renderer, and embedded images are not fetched automatically. From the document's directory, relative file references resolve. Plainly stated in the post is that this is not a browser for arbitrary HTML applications, and that recognizing an MDX extension does not execute MDX components.
The testing account is specific about scope. According to the post, the reader tests exercise the formats the panel claims to support, the protected-path and symlink-alias rules, inputs that are oversized or not valid text, and the refusal of special files, while the diff tests verify line numbering and paired replacement rows. A desktop workflow smoke test exercises the real Vue and preload interface with fixture host responses, including Markdown and source switching, SQL comparisons and late-read isolation. Those UI and bridge cases are validated, the author notes, but not every language grammar or every operating system's file-opening behavior is proven.
Reported as passing as part of the full local check are suite totals of 259 renderer and helper tests and 86 work-panel UI checks, with release CI also succeeding. These are suite totals rather than preview-only counts, the post cautions, and an unrelated live transcription timeout followed by a successful targeted retry is also recorded in the same notes. Confusing fixture-based preview checks with live-model validation is also warned against.
For working developers and designers, the practical value is editorial rather than guaranteed: keeping current-file inspection visibly separate from recorded-change review makes it easier to judge what an agent actually did without implying that a historical snapshot reflects the workspace now. Teams that already rely on Git for review should treat this as a complement to that workflow, not a replacement, since the post rules out HEAD comparison and staged-change inspection.
Substantial is what remains unknown. Pricing, platform availability, or whether later releases such as v3.7.9 behave identically are not included in the evidence. Per feature, the test totals are not broken out, fixtures rather than live models are used by the smoke test, and grammar coverage and per-operating-system file-opening behavior are stated by the author to be unproven. Noted in the post itself is that an AI agent generated it and checked it against public AIClaw source, release notes and the release CI result, which is a disclosure about provenance rather than independent verification.
The broader takeaway is a design pattern rather than a product endorsement: separating what a file contains now from what a tool recorded changing, and labelling the difference in the interface, reduces the chance that a reviewer mistakes a snapshot for current state. Whether that distinction holds up in daily use depends on details the source does not settle, including how often the 3,000-line display cap and the 512 KiB preview limit are hit in real projects.