{
  "version": "2",
  "id": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9",
  "title": "AIClaw 3.7.7 Adds In-App File Preview and a Separate Recorded-Change View",
  "summary": "A community write-up says the release splits reading a file as it exists now from reviewing the snapshot recorded when a tool changed it, with a read-only panel, bounded reads and a line-comparison diff that is explicitly not a Git diff.",
  "body": "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.\n\nThe 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.\n\nClicking 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.\n\nLanguage 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.\n\nRecorded 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.\n\nThe 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.\n\nRather 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.\n\nLocal 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.\n\nThese 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.\n\nAs 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.\n\nThe 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.\n\nReported 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.\n\nFor 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.\n\nSubstantial 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.\n\nThe 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.",
  "category": "dev",
  "language": "en",
  "datePublished": "2026-10-13T00:17:36.242Z",
  "dateModified": "2026-10-13T00:17:36.242Z",
  "eventDate": "2025-10-12",
  "sourcePublicationDate": "2026-10-13T00:06:17.000Z",
  "source": {
    "name": "dev.to",
    "url": "https://dev.to/chowyu12/how-aiclaw-377-separates-file-previews-from-recorded-change-reviews-l7o",
    "kind": "community"
  },
  "practicalImpact": "Editorial interpretation: for freelancers and developers reviewing agent output, the split between current-file inspection and recorded-change review gives a clearer audit trail of what a tool changed at a given moment, but it should sit alongside Git rather than replace it, since the source rules out HEAD comparison and staged-change inspection.",
  "limitations": "All specifics come from a single community post that discloses it was generated by an AI agent and checked against public source, release notes and CI results; the claims are not independently verified here. The evidence contains no pricing, platform availability, or confirmation that later releases such as v3.7.9 behave identically. Test totals are suite-wide rather than preview-only, the workflow smoke test uses fixture host responses rather than live models, and the author states that grammar coverage and per-operating-system file-opening behavior are not proven.",
  "keyPoints": [
    "AIClaw v3.7.7, described as released October 12, adds a read-only in-app file preview beside the chat and a separate view of recorded file changes, per a community post.",
    "The recorded diff is explicitly not a Git diff: it does not compare against HEAD, inspect staged changes or provide repository-wide review, and the panel reminds users the after snapshot is not current disk state.",
    "Preview reads go through Electron IPC with path and session ID, resolve relative paths against that session's working directory, and are bounded by protected-path checks, a 512 KiB disk-text limit and rejection of invalid UTF-8 or NUL bytes.",
    "The author reports 259 renderer/helper tests and 86 work-panel UI checks passing in the full local check, while noting these are suite totals and that fixture-based checks are not live-model validation."
  ],
  "review": {
    "status": "source-reviewed",
    "checkedAt": "2026-10-13T00:17:36.242Z",
    "method": "Automated comparison against retrieved source text; not independent fact-checking.",
    "correctionNote": null
  },
  "sources": [
    {
      "id": 1,
      "url": "https://dev.to/chowyu12/how-aiclaw-377-separates-file-previews-from-recorded-change-reviews-l7o",
      "publisher": "dev.to",
      "title": "How AIClaw 3.7.7 Separates File Previews from Recorded Change Reviews",
      "publishedAt": 1791849977000,
      "fetchedAt": 1791850621697,
      "hash": "52973ba48c053e4cd6a7642c756906a207e5f8d4b3a68ef65ae93742ea5e71a9",
      "kind": "community"
    }
  ],
  "claims": [
    {
      "claim": "AIClaw v3.7.7, described as released on October 12, adds an in-app file preview and a separate view of recorded modifications, with v3.7.9 the latest public release at the time of writing.",
      "source": 1,
      "id": "claim-1",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-1"
    },
    {
      "claim": "The preview panel is read-only and does not save changes, and unsupported formats such as Office documents keep the existing system-open behavior.",
      "source": 1,
      "id": "claim-2",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-2"
    },
    {
      "claim": "The recorded diff does not compare against Git HEAD, inspect staged changes or provide a general repository-review view, and the panel reminds users the after snapshot is not current disk contents.",
      "source": 1,
      "id": "claim-3",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-3"
    },
    {
      "claim": "Preview requests pass path and owning session ID over Electron IPC, and the host resolves relative paths using that session's working directory.",
      "source": 1,
      "id": "claim-4",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-4"
    },
    {
      "claim": "The reader checks protected locations for the requested path and its canonical target, bounds the read, rejects NUL bytes or invalid UTF-8, and limits disk-text previews to 512 KiB.",
      "source": 1,
      "id": "claim-5",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-5"
    },
    {
      "claim": "The diff helper switches to replacement blocks when the product of the two line counts exceeds 250,000, and the panel limits displayed differences to 3,000 lines.",
      "source": 1,
      "id": "claim-6",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-6"
    },
    {
      "claim": "The v3.7.7 release notes report 259 renderer/helper tests and 86 work-panel UI checks passing as part of the full local check, which the author says are suite totals rather than preview-only counts.",
      "source": 1,
      "id": "claim-7",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-7"
    },
    {
      "claim": "The desktop workflow smoke test uses fixture host responses and validates UI and bridge cases but does not prove every language grammar or every operating system's file-opening behavior.",
      "source": 1,
      "id": "claim-8",
      "url": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9#claim-8"
    }
  ],
  "formats": {
    "html": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9",
    "markdown": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9.md",
    "json": "https://freelancenews.online/news/aiclaw-3-7-7-adds-in-app-file-preview-and-a-separate-recorded-change-b8d363e9.json"
  }
}