Skip to content

release: v0.11.1 - #91

Merged
V3RON merged 1 commit into
mainfrom
release/v0.11.1
Sep 22, 2026
Merged

V3RON merged 1 commit into
mainfrom
release/v0.11.1

Conversation

@V3RON

@V3RON V3RON commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

0.11.1 (2026-09-22)

  • Fix: an ungrouped tool reports group: null to every reader. appduct_describe_tool
    dropped the key instead of reporting null, so it disagreed with appduct_list_tools about
    the same tool. ToolDescriptor.group is
    string | undefined again — it is the registration type, and registering null has always been
    rejected — so the type app authors write against (appduct/client, the React Native SDK's
    getRegisteredTools()) no longer admits a value that throws. Code reading a tools.list entry
    takes the new ListedToolDescriptor (or ToolsListEntry, which adds policy), where group is
    string | null; appduct/client's tools() now returns those entries.
  • Fix: the first Appduct command on a clean machine no longer fails with a bare ENOENT.
    Nothing created the state directory before the auto-spawn path wrote into it: ~/.appduct is
    created by startDaemon, but the spawn-lock and daemon.log's fd are opened by the parent
    process, before the daemon it spawns exists. So with no ~/.appduct yet, every command that
    auto-spawns a daemon — appduct ls, appduct daemon start|status, and appduct mcp, which
    died before an MCP client could finish initialize — failed with
    ENOENT: ... open '~/.appduct/daemon.spawn.lock' until someone ran appduct daemon run in the
    foreground once. The auto-spawn path now creates the directory (mode 0700, same as the daemon
    would) before taking the lock.

@V3RON
V3RON merged commit 977e6b8 into main Sep 22, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant