Aefos AI 1.5.1
Two things the addon store and the MCP list disagreed about. Both were found on a machine running Delphi 10 Seattle and Delphi 13 side by side, one day after 1.5.0 reached it.
An installed MCP addon was invisible on Seattle and Berlin — and the agent could not reach it
The Desktop MCP was missing from /MCP on Delphi 10 while the same user profile's Delphi 13 listed it, reading the very same file.
The cause is in the old RTL: on 10 Seattle (17.0) and 10.1 Berlin (18.0), TFile.ReadAllText(path, TEncoding.UTF8) discards the first three bytes of a file that carries no BOM — it charges the preamble whether or not the file paid it. 10.2 Tokyo (19.0) and up return the file whole (measured on all six). The addon aggregate is written UTF-8 without a BOM on purpose, so on those two IDEs it arrived with its opening brace gone, failed to parse, and degraded to "no servers" — in the modal and in the .mcp.json handed to the CLI, which is how the agent lost the addon's tools there.
It now reads the bytes and strips a BOM only when one is present.
The store said "Update" on a current addon, forever
The installer seeds the Desktop MCP offline from a copy this repository builds, and the catalogue decided the button by comparing sha256 with the gallery. Two honest builds of the same version have two different sha256, so every freshly installed machine was told to update an addon that was already the newest release.
The button now answers the question a user actually reads in it — is there a newer release? — by version. aefos update <slug> still compares sha256, so a re-published bundle can be pulled deliberately.
Everything from 1.5.0 is here: eight payloads from Delphi 10 Seattle (17.0) to Delphi 13 (37.0) plus Delphi 13's 64-bit IDE, and the /addons store in the chat. Full detail in CHANGELOG.md.
Aefos-Setup-1.5.1.exe — 18.5 MB, per-user install, no admin needed. Verify with the .sha256 beside it.