Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Remove lat_spec schema workaround after ToolRegistry releases union fix

Open Beginner friendly
#165 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
65/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
python
Domain
api, backend

Research direction

The workaround is in registry._trim_wire_schema, involving _UNTYPED_UNION_SCHEMAS and _type_untyped_unions(). First, check the upstream issue Oaklight/ToolRegistry#269 to see if a fix is released. Then, upgrade the toolregistry dependency, update uv.lock, and test that run_analysis and plot_dataset serve the lat_spec schema correctly without the local repair. Finally, remove the workaround code and run the regression tests to ensure the wire contract is maintained.

Written by the indexing model from the issue text.

Description

Summary

PR #164 added a downstream workaround in registry._trim_wire_schema because ToolRegistry 0.18.1 drops branches from heterogeneous union schemas. Keep that workaround until the upstream defect is fixed and released, then adopt the fixed ToolRegistry release and remove our compatibility code.

Upstream tracking issue: Oaklight/ToolRegistry#269

Current workaround

Commit 14ed993 adds _UNTYPED_UNION_SCHEMAS / _type_untyped_unions() so the served lat_spec schema advertises both accepted wire types:

  • number
  • array<number>

The workaround is deliberately a no-op if ToolRegistry begins emitting type or anyOf itself.

When upstream releases a fix

  • Upgrade the minimum toolregistry version to the first release containing Oaklight/ToolRegistry#269.
  • Refresh uv.lock and package metadata as needed.
  • Confirm run_analysis and plot_dataset serve lat_spec as number | array<number> without local schema repair.
  • Confirm a JSON array such as [-60, 60] passes through execute_tool_calls validation.
  • Remove _UNTYPED_UNION_SCHEMAS, _type_untyped_unions(), and its call from _trim_wire_schema.
  • Retain or adapt the regression tests so the wire contract remains pinned to real registry execution.
  • Re-measure and lower the schema payload budgets if removing the workaround changes their size.

Blocking condition

Do not remove the workaround merely because the upstream issue or PR is merged. Wait until a ToolRegistry release containing the fix is available and the end-to-end tests pass against that released version.

Dominant language
Python
Stars
4
Forks
2
Avg merge
1h 43m
Merged PRs (30d)
24

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from UXARRAY/uxarray-mcp-server

All issues in UXARRAY/uxarray-mcp-server

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.