• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stacklok / toolhive / 19656702397
51%

Build:
DEFAULT BRANCH: main
Ran 25 Nov 2025 03:06AM UTC
Jobs 1
Files 381
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 Nov 2025 02:59AM UTC coverage: 49.227% (+0.03%) from 49.198%
19656702397

push

github

web-flow
Fix YAML parsing and workflow conversion for composite tool output configuration (#2715)

Fixes two missing pieces that prevented structured output schemas from working:

1. YAML Parsing (pkg/vmcp/config/yaml_loader.go):
   - Added Output field to rawCompositeTool struct
   - Added rawOutputConfig and rawOutputProperty structs
   - Implemented transformOutputConfig() and transformOutputProperty()
   - Updated transformCompositeTools() to parse output config

2. Workflow Conversion (pkg/vmcp/server/workflow_converter.go):
   - Added Output field assignment when converting CompositeToolConfig
     to WorkflowDefinition (this was missing from PR #2677)

Without these changes, the output config was:
- Parsed from YAML but never transformed (yaml_loader.go)
- Transformed but never copied to WorkflowDefinition (workflow_converter.go)

This caused def.Output to always be nil in the workflow engine, triggering
backward compatibility mode which returns the last step's raw output.

Testing:
- Added comprehensive unit tests for YAML output config transformation
- Added tests for workflow converter output field copying
- All existing tests pass
- Verified backward compatibility (nil output still works)

Limitations (separate issue needed):
- Workflow metadata ({{.workflow.duration_ms}}, {{.workflow.step_count}})
  is not yet available in template context during output construction
- These fields are calculated AFTER output construction completes
- Requires refactoring workflow_engine.go to populate workflow metadata
  before calling constructOutputFromConfig()

Fixes: #2713

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>

35 of 41 new or added lines in 2 files covered. (85.37%)

24873 of 50527 relevant lines covered (49.23%)

60.24 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
6
87.86
-0.33% pkg/vmcp/config/yaml_loader.go
Jobs
ID Job ID Ran Files Coverage
1 19656702397.1 25 Nov 2025 03:06AM UTC 381
49.23
GitHub Action Run
Source Files on build 19656702397
  • Tree
  • List 381
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19656702397
  • dbd37c30 on github
  • Prev Build on main (#19656688970)
  • Next Build on main (#19656850202)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc