Repository navigation
feat(harness): H9 to H11, MCP host names, env detection, Board Rules ask (awaiting Danny) - #211
Merged
Merged
Conversation
…roposed v0.2.45, H11)
GET /v1/boards/{id}/rules and GET /v1/rules gain provenance
{ rule_version: "2026-10-26", rule } beside authorship, the U3 pattern, so
the instructions string the clients compare stays unchanged. /join,
/join.md, /start, and /llms.txt ask for the harness on each Post and say it
is optional. AT-96 through the HTTP seam.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…known (proposed v0.2.45, H9) claude-code, claude-desktop-3p, hermes-agent, and openclaw-bundle-mcp become Claude Code, Claude Desktop, Hermes, and OpenClaw. mcp 0.1.0 (the Python SDK default) and the @modelcontextprotocol/sdk example client names send no harness, so the Agent's declaration applies, and placeholder versions such as 0.0.0 are dropped. The server's own JChainClient turns off environment detection, so an unknown host never borrows it. JCHAIN_HARNESS still overrides. AT-95 (MCP half). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… is given (proposed v0.2.45, H10) Order: the explicit harness option, then AI_AGENT, then AGENT (a falsy value opts out), then CLAUDECODE=1, then CODEX_THREAD_ID or CODEX_SESSION_ID with CODEX_VERSION, then nothing. Claude Code's AI_AGENT=claude-code_2-1-308_agent reads as Claude Code 2.1.308. Only these named variables are read. harness null / None turns detection off; the connect helpers use the same result. Tests pin the env so they do not depend on the host. AT-95 (client half). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new section after v0.2.44 with H9 (MCP host names), H10 (client environment detection), H11 (the Board Rules provenance field), AT-95, AT-96, and a Needs Danny list. QUICKSTART gains a Harness section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
@scrimshawlife-ctrl: this is the smaller PR you suggested when closing #205. It's on top of main (#209) and only adds H9 to H11, with no migration and no spend.
It stays clear of #210 (a local merge of the two is clean). The spec section is marked v0.2.45, proposed and awaiting your decision. Accept, change, or drop any of the three. Separately, still your call from the #205 body: a hosted MCP endpoint ( |
7 of 8 tasks
scrimshawlife-ctrl
added a commit
that referenced
this pull request
Oct 26, 2026
Production runs spec v0.2.44 since #209 (migration 0031). The header lines said v0.2.43, and the Now list still called the harness proposal unaccepted. They now name v0.2.44 and ticket 52, and the Shipped list logs #209, the #205 follow-ups in #210, and the GitHub Actions bump in #197, with H9 to H11 waiting on Danny in #211. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s the name only - MCP host aliases match case-insensitively, exactly or as a prefix at a separator, longest first; adds gemini-cli-mcp-client (Gemini CLI). - mcp is generic at any version; 0.1.0 and 1.0.0 join the placeholder versions, which drop the version and keep the name. - TypeScript and Python env detection send only the harness name: no version from @Version, Claude Code's AI_AGENT, or CODEX_VERSION, which is no longer read. - Spec H9, H10 and AT-95 and the client READMEs say the same. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to ticket 52. These are the three harness additions Aaron approved, which #205 carried and #209 left out to wait on your decision. They are ported onto #209's code and kept clear of #210's files: a local merge of the two is clean. The spec has them as v0.2.45, proposed in a new section, with its own Needs Danny list. Refs #205, #209, #210.
clientInfoids become display names:claude-code→ Claude Code,claude-desktop-3p→ Claude Desktop,hermes-agent→ Hermes,openclaw-bundle-mcp→ OpenClaw. Generic SDK defaults (mcp0.1.0 and the@modelcontextprotocol/sdkexample names) send no harness, so the Agent's declaration applies. Placeholder versions such as0.0.0are dropped.JCHAIN_HARNESSstill overrides all of this. The server's own client also turns off env detection, so an unknown host never borrows the environment.harnessoption. The order is the option, thenAI_AGENT, thenAGENT(a falsy value opts out), thenCLAUDECODE=1, thenCODEX_THREAD_ID/CODEX_SESSION_IDwithCODEX_VERSION, then nothing.claude-code_2-1-308_agentreads as Claude Code 2.1.308. Only those six variables are read, andharness: nullturns detection off.provenancefield ({ rule_version: "2026-10-26", rule }) besideauthorship, soinstructionsis unchanged./join,/join.md,/start,/llms.txt, QUICKSTART, and the client READMEs ask for the harness on each Post and say it is optional.There is no migration and no spend. There is no new binding, secret, or policy key.
SPEC_VERSIONand the README status are untouched.Verified sources
{ name: "claude-code", title: "Claude Code", version }and setsCLAUDECODE=1andAI_AGENT=claude-code_<ver>_<role>. A live session showedclaude-code_2-1-308_agent.0.0.0(Aaron's check).codex-rs(commit 9b73858) setsCODEX_THREAD_ID,CODEX_SESSION_ID, andCODEX_VERSION.claude-desktop-3pfound in Claude.app 3.6556.2 (third-party mode).Left unmapped: Claude Desktop's default-mode name, Cursor (no primary source), and the Codex CLI's MCP
clientInfoname.Tests (all pass):
npm testclients/typescriptclients/mcpclients/pythonmypy --strictcleanOverlap with #210: both PRs touch
clients/mcp/README.md, in different hunks. Here it is theJCHAIN_HARNESSrow; in #210 it is thewhoamirow.🤖 Generated with Claude Code