chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures - #139

Merged
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures
May 20, 2026
Merged

chore: replace hardcoded 'saffron' agent names in tests with generic fixtures#139
joryirving merged 1 commit into
mainfrom
fix/issue-124-replace-saffron-fixtures

Conversation

@itsmiso-ai

Copy link
Copy Markdown
Contributor

Summary

Replaced all hardcoded saffron fixture agent names in test files with generic agent names, keeping Dispatch harness-agnostic as specified in issue #124.

Changes

FileReplacement
route.test.tssaffronexample-agent (URL params + agent/saffron labels)
agent-queue.test.tssaffronworker-agent, resultSaffronresultWorker
escalated-outcomes.test.tssaffronworker-agent, resultSaffronresultWorker
issue-filters.test.tsassignee/saffronassignee/example-agent

Preserved (per guardrails)

  • reconcile/route.ts comment about historical scripts — kept as-is
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — kept as-is
  • docs/openclaw-agent-mc-workflow.md documentation examples — kept as-is

Validation

  • ✅ All 481 tests run (4 pre-existing failures unrelated to changes)
  • ✅ Modified test files: 73/73 passing
  • ✅ Lint passes clean
  • ✅ Typecheck errors are all pre-existing in untouched files
  • ✅ No runtime code changes

…fixtures
Replace all hardcoded 'saffron' references in test files with
generic fixture agent names to keep Dispatch harness-agnostic:
- route.test.ts: saffron → example-agent (URL params + labels)
- agent-queue.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- escalated-outcomes.test.ts: saffron → worker-agent, resultSaffron → resultWorker
- issue-filters.test.ts: assignee/saffron → assignee/example-agent
Kept unchanged (per guardrails):
- reconcile/route.ts comment about historical scripts
- issue-lane.test.ts behavioral test checking prompt doesn't contain Saffron
- docs/openclaw-agent-mc-workflow.md documentation example
@its-miso

its-misoBot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Automated recommendation: APPROVE

Analysis engine: anthropic/MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic)

Review Summary

Recommendation: Approve

This PR replaces hardcoded saffron fixture agent names in test files with generic fixture names (example-agent, worker-agent), making the Dispatch test harness agent-name-agnostic as intended.

Change-by-Change Findings

src/app/api/agents/[agentName]/queue/route.test.ts (+24/-24)

  • Replaces saffronexample-agent in URL params and params objects across 12 test cases
  • Updates agent/saffron label → agent/example-agent in test fixtures
  • Changes are internally consistent: URL paths, params objects, and label arrays all updated together

src/lib/agent-queue.test.ts (+39/-39)

  • Replaces saffronworker-agent as the agent parameter in buildAgentQueue() calls
  • Updates agent/saffron labels → agent/worker-agent in test issue fixtures
  • Renames resultSaffron variable → resultWorker in the "does not hardcode agent names in logic" test
  • All ~39 replacements maintain the same test semantics and assertion logic

src/lib/escalated-outcomes.test.ts (+12/-12)

  • Replaces saffronworker-agent in buildAgentQueue() calls
  • Renames resultSaffronresultWorker in the "does not hardcode agent names in decomposed filtering" test
  • All replacements consistent with the naming pattern

src/lib/issue-filters.test.ts (+1/-1)

  • Replaces assignee/saffronassignee/example-agent in filter discovery test
  • Single minimal change, consistent with the PR scope

Standards Compliance

No agent-specific names in generic code (AGENTS.md Code Standard #1): The PR correctly replaces hardcoded agent names with generic fixture names in test files.

Test-only changes: Only .test.ts files modified. No production code changes.

Preserved references correctly handled:

  • docs/openclaw-agent-mc-workflow.md:72 still contains agent/saffron example — correctly preserved per PR body
  • reconcile/route.ts comment about historical scripts — not touched
  • issue-lane.test.ts behavioral test checking prompt doesn't contain "Saffron" — not touched

Linked Issue Fit

No linked issue context was provided in the PR body. However, the PR title references "issue-124" and the PR description states the goal is to keep "Dispatch harness-agnostic." This aligns with the repository's stated convention (AGENTS.md) that generic patterns like agent/* should be used instead of specific agent names in test fixtures.

Evidence Provider Findings

No evidence providers configured.

Tool Harness Findings

No tool requests were executed (planner did not emit requests). Security controls in place per configuration.

Unknowns / Needs Verification

  • Pre-existing typecheck errors: PR body notes "Typecheck errors are all pre-existing in untouched files" — verified in diff that only test files were modified, so this claim is credible.
  • 4 pre-existing test failures: PR body states these are "unrelated to changes" — no evidence to contradict this; test files show 73/73 passing.

Validation Summary

CheckStatus
Test files only changed
All 73 modified test cases passing
Lint clean
No runtime code changes
Preserved files untouched
Consistent naming within files

@joryirving
joryirving merged commit 31e383b into mainMay 20, 2026
3 checks passed
@joryirving
joryirving deleted the fix/issue-124-replace-saffron-fixtures branch May 20, 2026 03:03
Sign up for freeto 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.

2 participants

@itsmiso-ai@joryirving