Skip to content

Steward and agent API: Tessera briefs the board, agents talk through it - #4

Merged
data-angel merged 1 commit into
mainfrom
steward
Oct 17, 2026
Merged

data-angel merged 1 commit into
mainfrom
steward

Conversation

@data-angel

Copy link
Copy Markdown
Contributor

Replaces #3, which GitHub closed when its stacked base (fleet-band, #2) merged and was deleted. Same commit (6d07368).

Stacked on #2 (Fleet).

Phase 1: steward. Any OpenAI-compatible endpoint can be the model; by default it's a LLooM gateway, using a tessera alias on a local model.

  • Each tile gets a one-line summary on its footer.
  • A brief sits at the head of the Needs-you lane:
    • what is going on;
    • what finished, failed or started asking since you last looked (read off the board, not guessed by the model);
    • what needs you;
    • what can be put away, with Close all and Undo.
  • Each Keep or Close is logged to steward-feedback.ndjson, for tuning later.
  • Safety:
    • credentials are redacted before sending;
    • nothing is sent in privacy mode;
    • tile text is marked as untrusted data in the prompts;
    • output is limited to known ids, and nothing working or waiting is ever offered for closing;
    • the headline renders as plain text;
    • it suggests only.

Phase 2: agent API. A tessera command, which is also a stdio MCP server, talks to the app over 127.0.0.1 with a 0600 token file. Browser requests are refused.

  • Tools: board, read_tile, whoami, send_message, inbox, ask_human, get_answer, notify_human.
  • Questions land in the lane, alerts and the phone, with one-tap options plus a reply field.
  • A message is typed into a terminal agent's prompt only with your OK, unless you allow it.
  • tessera install (Settings → Agents) puts tessera on PATH, installs skills/tessera into ~/.agents/skills (linked from ~/.claude/skills), and registers the MCP server with Claude Code and Codex (backing up ~/.codex/config.toml first).

Verification

  • swift test: 195 pass. New tests cover redaction, steward parsing and guardrails, the MCP handshake and tools, and ask/answer, messaging and privacy through a real Workspace. They also run the bundled tessera-cli end to end against the in-app server (token, 401, 403 on Origin, exit codes 0/2/3, mcp over stdio).
  • A live debug run with the steward on a local LLooM gateway showed the brief, footer summaries, and an agent's question and note in the lane.

🤖 Generated with Claude Code

…gh it

The steward is any OpenAI-compatible model (a LLooM gateway by default). It
keeps a one-line summary of each tile, shown in the card's footer, and a brief
at the head of the Needs-you lane:
- what is going on, in a sentence;
- what finished, failed or started asking since you last looked (read off the
  board, not guessed);
- what needs you;
- what can be put away (Close all, with Undo).

Tiles are summarized again only once what they show has changed and settled.
Tile text goes out with credentials removed, and nothing goes out in privacy
mode. The model's answer is held to the board: only ids it was given, never a
working or waiting tile offered for closing, plain text only. It only suggests.

Agents on the Mac reach Tessera through a new `tessera` command (also a stdio
MCP server, `tessera mcp`). It talks to the app over 127.0.0.1 with a token
kept in a file only this user can read; requests with an Origin are refused.
Agents can:
- see the board and read any tile;
- find their own tile (TESSERA_TILE_ID, or the one agent working in their
  folder);
- message each other through per-tile inboxes. A message is typed into a
  terminal agent's prompt only with the user's OK, unless they allow it.
- ask the user a question, answered from the lane with the agent's options or
  a reply, waiting at most 55 s per call so harness timeouts aren't hit;
- leave the user a note.

`tessera install` (Settings → Agents) puts the command on PATH, installs the
`skills/tessera` skill for Claude Code and Codex, and registers the MCP
server. The app bundles the command in Contents/Helpers.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@data-angel
data-angel merged commit bce5a1f into main Oct 17, 2026
@data-angel
data-angel deleted the steward branch October 17, 2026 22:06
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