fix(rkd): keep the sign-in token out of transcripts; name the MCP server chat #4
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/no-token-in-status-and-chat-server"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Two fixes to the 0.2.x plugin, found while testing it:
/rkd:configure's status step told Claude to read.env, which holds the host token. In one real run Claude read it directly after Bash was denied, so the token sat in that session's context. Status now uses the plugin'sstatustool, falling back togrep -cfor a count. The skill and the channel's own instructions both say never to open that file, and the skill no longer listsRead.chat, notrkd. Claude Code names toolsmcp__plugin_<plugin>_<server>__<tool>, so pluginrkd+ serverrkdgavemcp__plugin_rkd_rkd__reply. It is nowmcp__plugin_rkd_chat__replyand the allow rule is"mcp__plugin_rkd_chat".Version 0.2.2. Follow-up to #3.
Type of change
Test plan
Automated:
pnpm test(83),pnpm typecheck,pnpm check:dist, Node 20 handshake smoke,claude plugin validate --strictManual:
/rkd:configureheadlessly (claude -p --output-format stream-json) and searched the whole event stream for this machine's token: 0 occurrences, on Haiku and on Sonnet. Sonnet called thestatustool and answered correctly; the tool calls contain no read of.envplugin:rkd:chat, and an@claude_coderequest is answered with no approval prompt, so the migrated allow rule worksReview checklist
Migrations and breaking changes
Anyone who allowed
mcp__plugin_rkd_rkdmust change the rule tomcp__plugin_rkd_chat, or every reply asks for approval again. Only us so far, which is why this is done now.Notes for the reviewer
statustool and invented arkdh logincommand in one run; Sonnet followed the skill. Worth knowing if someone runs the skill on a small model.grep -cwith the resolved path. A compound command with||and variables was denied in headless mode, and the model then wrongly concluded "not signed in".https://claude.ai/code/session_01GdkP2Y3vcxcGz5XCFFWW16