Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions backend/__tests__/unit/config/nativeAgents.scoutKnowledge.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,19 @@ describe('Scout onboarding knowledge', () => {
expect(prompt).toMatch(/name it only when someone asks which model or runtime it uses/);
});

// TASK-429: Hermes walked 2026-10-22 (PA-1). The list stays closed: Hermes is
// added by name, and the list still ends with the refusal to claim anything else.
test('lists Hermes from the command line, with its attach step and no provider named as walked', () => {
expect(prompt).toMatch(/OpenCode or dsh through their guides, and Hermes from the command line/);
expect(prompt).toMatch(/Do not claim any other tool connects\./);
expect(prompt).toContain('commonly agent attach hermes --pod <pod-id> --name <name>');
expect(prompt).toMatch(/It needs Hermes 0\.22\.2 exactly/);
// The adapter fixes --provider openrouter and reads OPENROUTER_API_KEY from the host.
expect(prompt).toMatch(/an OpenRouter API key \(OPENROUTER_API_KEY\) in the environment/);
expect(prompt).toMatch(/do not say OpenRouter, or any model provider, was the one it was walked on/);
expect(prompt).not.toMatch(/walked[^.]*OpenRouter/);
});

test('the dsh guide gives the same attach step and the completed macOS walk', () => {
const guide = fs.readFileSync(path.resolve(__dirname, '../../../../docs/cli/dsh.md'), 'utf8');
expect(guide).toContain('commonly agent attach dsh --pod <pod-id> --name <name>');
Expand Down
14 changes: 13 additions & 1 deletion backend/config/native-agents/scout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,18 @@ export const scoutApp = {
+ 'repository; it has been walked on a Mac only. Point them to the guide and '
+ 'do not propose a connect card for it: the card sets up Claude Code or '
+ 'Codex.\n'
// Walked 2026-10-22 16:30Z (PA-1 PASS): Hermes 0.22.2 on macOS, a non-admin
// account in an invite-only pod, a LiteLLM DeepSeek provider; a mention was
// answered in 56 s. The walk ran on 31cc808d, before forge's probe fix, and
// on our LiteLLM. The adapter itself passes --provider openrouter and needs
// OPENROUTER_API_KEY, which the walk did not use, so no provider is named as walked.
+ ' * Hermes connects from the command line, not from this page. It needs Hermes '
+ '0.22.2 exactly, and an OpenRouter API key (OPENROUTER_API_KEY) in the environment '
+ 'of the computer it runs on: the adapter sends its model calls through OpenRouter. '
+ 'Run `commonly agent attach hermes --pod <pod-id> --name <name>`, then `commonly '
+ 'agent run <name>` to answer @mentions. The pod id is the last part of its URL. '
+ 'Do not propose a connect card for it, and do not say OpenRouter, or any model '
+ 'provider, was the one it was walked on.\n'
+ ' * "Add a computer": `npm i -g @commonlyai/cli@latest && commonly login '
+ '&& commonly daemon register && commonly daemon install` registers their '
+ 'machine once; after that they add agents to it from this page with no '
Expand Down Expand Up @@ -163,7 +175,7 @@ export const scoutApp = {
+ '<name>` to answer @mentions. The pod id is the last part of its URL. '
+ 'Lead with the yes when someone asks whether dsh can join.\n'
+ '- What connects as their own agent: Claude Code or Codex from the Bring '
+ 'your own page, and OpenCode or dsh through their guides. Qwen Code and pi are not '
+ 'your own page, OpenCode or dsh through their guides, and Hermes from the command line. Qwen Code and pi are not '
+ 'ready for outside use; say so if asked. Do not claim any other tool '
+ 'connects.\n'
+ '- Developers building their own agent: Commonly agents use a small HTTP '
Expand Down
Loading