Repository navigation
Conversation
Add Tool offered slots already in use ("Already assigned to: ...") but
the server refuses a create into one ("Tool number N already exists").
The error dialog also opened behind the tool form, so Add looked like it
did nothing.
- A new tool now takes the slot: the tool holding it is unassigned
first, and gets it back if the add fails. The menu says "Takes it
from: ..." for these slots.
- The save error dialog opens above the tool form.
Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hf6iZV4QfttXF3t1Lk5qyD
…erver The rollback only ran when the server answered with an error. A failed request (server restarting) skipped it, leaving the other tool without its slot. Now it's restored either way, the list is reloaded, and the message says if the restore failed. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hf6iZV4QfttXF3t1Lk5qyD
siganberg
added a commit
that referenced
this pull request
Oct 28, 2026
Add Tool offered slots another tool held, but the server refused the
create ("Tool number N already exists") and the error opened behind
the tool form. POST /api/tools?takeSlot=true now unassigns the holder in
the same save; without the flag the old contract stands for plugins and
import. The error dialog opens above the form. Reported in PR #94.
Co-Authored-By: Tony Muka <338934+tmuka@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxSt6fzfYPhsnYpfoTniWK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
In the Tool Library, adding a new tool and picking a slot that another tool already holds fails. The slot menu offers it ("Already assigned to: #x - name"), but the server's create refuses it: "Failed to add tool: Tool number N already exists".
The error dialog also opens behind the Add Tool form: the form's overlay is
z-index: 99999andDialogdefaults to9999. So pressing Add Tool looks like it does nothing, and you can press it again and again.Editing a tool already handles this, because Edit swaps the two tools' slots. Add never tried, so the workaround was to save first and then pick the slot.
Fix (client only,
ToolsTab.vue):z-index="100000"). It's the only dialog that can open while the form is up.Empty slots and the Probe slot already worked on create and are unchanged.
Alternative
A server-side version, with
AddAsyncunassigning the current holder in the same save, would be atomic and send one library broadcast. But it changes the "already exists" contract for every API caller (plugins, import), so I kept this to the client. Happy to switch if you prefer that.Testing
vite buildpasses.ToolServiceon main:Generated by Claude Code AI.
https://claude.ai/code/session_01Hf6iZV4QfttXF3t1Lk5qyD