Skip to content

v0.1.4

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 20:38
· 87 commits to main since this release
7566f60

PasClaw is an Object Pascal (FPC + Delphi) AI agent framework — a local
gateway, web UI, CLI and now a native desktop app for running agentic
coding/chat workflows against any provider.

This is a large release: roughly 150 pull requests since v0.1.3. The headline
is PasClaw Desktop, a native FMX application that replaces "a browser tab
pointed at the gateway" with a real desktop shell.

Downloads

You're on… Download
Windows (x64, incl. Windows-on-ARM) PasClaw-0.1.4-x64-setup.exe
Windows (32-bit) PasClaw-0.1.4-x86-setup.exe
Windows — portable (no installer) PasClaw-0.1.4-x64-portable.zip · PasClaw-0.1.4-x86-portable.zip
Linux (x86-64) pasclaw-0.1.4-linux-x86_64.tar.gz
Linux (ARM64) pasclaw-0.1.4-linux-aarch64.tar.gz

The Windows installers are self-contained (SQLite linked statically, TLS via
Windows SChannel) and can add pasclaw to your PATH. On Windows-on-ARM the
x64 installer runs via the built-in x64 emulation. Portable builds now ship as
.zip rather than a bare .exe — browsers and AV are happier with an archive.

The Linux tarballs bundle OpenSSL 1.0.2 next to the binary so HTTPS works out
of the box; their only runtime dependency is libsqlite3 (apt install libsqlite3-0 if it's missing). Unpack and run ./pasclaw.

Highlights

PasClaw Desktop

A native desktop application, not a wrapped web view. It has a real menu and
real windows instead of a dock, keeps itself off the taskbar as a shell you
talk to, and survives the things that used to kill it — a tab reload no longer
takes the gateway down with it, and closing the desktop no longer waits on the
gateway to say something first.

  • One chat per app, in the app window, surviving the window; the app window
    docks its editing chat on the left.
  • Chat rendered with FMX controls, not a browser: markdown replies,
    expandable tool cards, and a transcript that shows the whole chain and lets
    you act on every link of it.
  • A stop button that actually stops, a shell that streams as it runs, and
    mid-turn steering that reaches the running turn rather than the next one.
  • Projects board with concurrent reconciliation, finished work that leaves
    the list, and project names derived to read like names.
  • Self-contained HTML apps, launched from Run, opening even when the
    manifest never declared them as HTML.
  • Notifications — it tells you when the long thing finished.
  • The gateway moved off the UI thread.

Accessibility

Screen-reader support for Studio on Windows, macOS and Linux — plus the linter
that should have been checking it and never was. The units are drop-in and do
not depend on Studio.

Two new agent modes

  • improve — a measure-first loop: benchmark, profile, change one thing,
    re-measure with the same command.
  • space — Search, Plan, Assert, Code, Evaluate. Mutating tools are
    mechanically refused until a plan has been written, which is the one rule
    of that discipline cheap enough to enforce rather than merely request.

Alongside them: agent teams you can point at work out of the box (including
a virtual C-suite template), and standing agents with a durable roster, a
mailbox that reaches them mid-turn, runs and supervision.

Memory

  • A dependency-free embedding tier. Vector search no longer waits on a
    ~90 MB ONNX download: hash-ngram-v2@256 is feature hashing over word
    unigrams and character 4-grams, with no model file, vocabulary or native
    runtime. It is lexical, not semantic — car and automobile score near
    zero — and it ranks without ever being trusted to merge two facts.
  • memory_write records one durable fact deliberately. It is mutating, so
    plan mode refuses it and MCP exposes it only under --mcp-allow-write —
    which finally lets an external MCP client contribute to the store it could
    already read.
  • Embedder identity on every stored vector, so two embedding spaces are
    never compared and a model switch triggers a backfill instead of silently
    wrong neighbours.
  • Compaction: rolling summary, config block, token-budget retention and
    overflow retry; plus LLM-guided pruning that deletes what stopped mattering
    and keeps the rest verbatim.

Cost and speed

  • Progressive disclosure of built-in tools behind tool_search — about
    33% off every request.
  • Read-only tools fan out in parallel while mutating ones stay serial, with a
    benchmark proving the fan-out actually happens.
  • Per-turn date/time injected after the cache breakpoint, so it does not
    invalidate the cached prefix.

Security

  • /v1/fs was serving MCP OAuth tokens; the relay token comparison was not
    constant-time. Both fixed.
  • SSRF: IPv4 smuggled inside IPv6 literals and non-dotted-quad host
    spellings are now blocked.
  • Memory, transcripts and trajectories are never sent to a search engine —
    including through the relay.
  • Skill provenance: what was installed is recorded, and a reinstall that
    drifts is refused rather than silently accepted.

Text handling

  • Text files are written and read as UTF-8 on every build, with a lint to
    keep it that way. The Delphi build previously wrote the system ANSI code page,
    which mangled every non-ASCII character in a transcript.
  • The Delphi TUI now accepts, renders and persists CJK input.
  • CanonicalPath gained a platform matrix — the Delphi/Windows build is fixed
    and the Delphi/POSIX arm that never existed now does.

Honesty about results

A recurring theme this cycle. Verification now reports what a check did not
cover and where a command actually ran; a failed SQLite index open reports the
driver's real reason instead of a guess; stats no longer misattribute tokens
across models; startup says each thing once and says the security state
loudest.

Upgrading

Nothing to do. One note if you have used the new memory tier from a build
between #600 and this release: its vectors carry an older embedder id and are
ignored on first run, then rewritten by the automatic backfill. Retrieval falls
back to keyword ranking in the meantime. That is the identity guard working as
designed, not a fault.

First run

pasclaw onboard   # configure a provider + workspace
pasclaw serve     # start the gateway + web UI

Docs are bundled in each download under docs/, and in the repo README.