Skip to content

feat: make the Board CLI the only read/write path for animas - #412

Merged
xuiltul merged 7 commits into
mainfrom
feat/board-cli-only
Nov 6, 2026
Merged

xuiltul merged 7 commits into
mainfrom
feat/board-cli-only

Conversation

@xuiltul

@xuiltul xuiltul commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove post_channel from every LLM tool surface (MCP, Mode A/B builder, compact). Animas read and post with animaworks-tool board read / animaworks-tool board post; the internal handlers stay as the CLI adapters.
  • board post <channel> [<text>|-]: - or an omitted text reads the body from stdin. The legacy <from> <channel> <text> form still works. Inside an anima the poster is that anima (impersonation is refused); on the host --as <name> (default operator) posts with kind=operator through the internal API.
  • board read / board dm-history output is wrapped as untrusted, board read distinguishes a missing channel from an empty one, and Bash commands that run them resolve to untrusted trust. ("board", "post") maps to post_channel in the action gate so action rules apply to the CLI too.
  • read_memory_file / write_memory_file on shared/channels/*.jsonl return a hint pointing to the CLI instead of forwarding.
  • Reply suppression now reaches tool subprocesses: engines export the channels of the board_mention being answered as ANIMAWORKS_BOARD_REPLY_CHANNELS, and the post handler reads both that and the context variable.
  • ja templates, i18n and the board guide describe the CLI; the per-run Board post limit is no longer documented (each CLI call is its own process). en/ko/zh regenerated.

Test plan

  • Unit suite: 19,540 passed (one layering failure fixed afterwards; layering and related suites re-run green)
  • Board e2e: mention fan-out, shared channel messaging, DM display, priming channel C
  • ruff check core cli server tests
  • Reference regenerated; translate.py all --check passes

🤖 Generated with Claude Code

xuiltul and others added 7 commits November 6, 2026 22:13
Remove post_channel from every LLM tool surface; animas read and post with
animaworks-tool board read/post. board post takes <channel> [<text>|-]
(stdin for long text), keeps the legacy <from> <channel> <text> form, and
uses --as / operator on the host. board read and dm-history output is
wrapped as untrusted, and Bash commands that run them resolve to untrusted
trust. read/write_memory_file on shared channel files point to the CLI.
Templates (ja), i18n and the board guide now describe the CLI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The inbox marks the channels whose board_mention it is answering in a
context variable that tool subprocesses (the Board CLI run from Bash, MCP
servers) cannot see. Engines now export the set as
ANIMAWORKS_BOARD_REPLY_CHANNELS and the post handler reads both. Also drop
the per-run Board post limit from the ja templates (each CLI call is its
own process) and the duplicated CLI usage line in the prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restore the concise en wording for the tool guides and send_message
description with the Board CLI substituted, and point the locale tests at
the CLI wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@xuiltul
xuiltul merged commit b998e66 into main Nov 6, 2026
4 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