Repository navigation
Conversation
|
Thanks for replacing fuzzy workflow selection with exact matching and protecting owner-created workflows from accidental deletion. Advisory status: not ready yet Quickest path to merge:
What I checked:
The exact-match deletion protection is useful; keeping ambiguity local to its catalog entry would make this ready. |
|
The integration-smoke failure here isn't from this change. It's one test in the Pixel node suite: The cause is in the test file. Both real-listener tests use the shared It's rare. I found it once in the last 80 failed test-linux runs. A re-run of integration-smoke should clear it for this PR. |
|
Thanks for this. On 2026-10-24 we re-audited every open PR against current main and are merging only fixes for failures that users or our test fleet actually hit. The substring-matching bug in #4191 was fixed by #7905 (3190949). What's left is two n8n workflows with exactly the same name, on an endpoint no dashboard UI calls. If you've seen this fail on a real install of current main, please open an issue with the steps and logs, and a focused PR for it is very welcome. 🤖 Generated with Claude Code |
Summary
Closes #4191. Keep duplicate exact n8n names local to the affected catalog entry, and refuse execution-history lookup when the catalog cannot identify one workflow.
For two workflows named
Daily Digest,GET /api/workflowscurrently chooses the first row's ID, active state and execution count; the history route also reads the first row's executions. The candidate returns that catalog entry asambiguouswith a recovery message and no selected ID, preserves unrelated catalog entries, and returns HTTP 409 before fetching ambiguous history. The README documents the response.This is the remaining scope after integration with current
main: patil2001's merged #7905 supplies exact name matching and duplicate refusal for deletion, and #7855 supplies complete inventory pagination. Those changes, the shipped import/activation contracts and removal behavior are preserved. The earlier catalog-locality review is addressed: #7883 (comment).Prior contributions: bettercalln1ck's closed #5554, patil2001's closed #4386, and Hoang130203's closed #2749 previously identified or addressed name matching; their credit is retained.
AI Assistance
0xacee actively leads this contribution and its scope and quality requirements, collaborating with Codex on implementation, analysis, regression tests, review and maintenance. Codex executed the recorded validation commands; a separate Codex review checked the final merge and retained upstream behavior.
Release Lane
mainChanged Surface
Risk And Validation
Candidate
ce9d1e672043df37f6da85912a0c0e4e91ec46ad, integration basefce1a2281343cd9de1ca0622b4bbf28f3469523e. The old published head6f4a58f9de5a460f84dfadb452850574e2b54003remains an ancestor through a normal merge; no history rewrite.Validation used credential-free Ubuntu 24.04 WSL2, Python 3.12 and the real FastAPI routes/HTTP client against a disposable loopback n8n server. Assertions inspect actual emitted requests: ambiguous history performs no executions request; duplicate deletion still emits no DELETE; unique and partial-name controls retain current-main behavior. The Dashboard API workflow executes
pytest tests/, including this regression.Operational Change Check
The narrower equivalent covers the changed API response and request-selection boundary. Installed n8n/container/browser/model/fleet qualification was not run; retain normal maintainer release review. There is no persisted-state migration. Reverting the residual change restores first-row ambiguity for catalog/history while retaining current main's deletion guard.
Hosted CI
Current-head checks are pending after this merge update; earlier results do not qualify this head. The previous head's integration-smoke failure was in the separate Pixel IPv6 loopback fixture (
ECONNRESET); #8013 tracks its independently reviewed fixture correction. This PR includes no unrelated Pixel changes.