Repository navigation
Conversation
🎩 PreviewA preview build has been created at: |
camielvs
commented
Nov 5, 2026
camielvs
left a comment
Collaborator
Author
There was a problem hiding this comment.
🤖 This is an AI-generated code review comment.
3 findings, inline below (1 Medium, 2 Low). tsc and the project, picker, menu-bar and sidebar suites (462 tests) pass at this head, and the branch merges cleanly with master.
One note on the description: it says RunProjectField "lists only the selected project" for a backend pipeline. It looks up pointerTo(specName), and with no local registry entry pointsAt falls back to comparing names. So it also lists any project that holds a browser pipeline with the same name.
camielvs
force-pushed
the
cvs/remote-project-picker
branch
from
November 5, 2026 18:06
3b20ca5 to
d93a8b3
Compare
The editor hid the top-nav project picker for pipelines saved to a backend, because the picker only understood browser pipelines: it looked their projects up by local name and filed them as a browser pipeline pointer. Give the picker a pipeline reference that is either a browser pipeline, by name, or a backend pipeline, by id. A backend pipeline's projects are matched on the resource's entity id, and adding it files the same `pipeline` resource the project page already reads. A draft has no id until its first save, so it can still choose where runs go but cannot be added to a project before then. Keep looking up the pipeline's projects while the "Add to a project" dialog is open. Choosing that option closes the dropdown, which switched the lookup off, so the dialog never marked the projects the pipeline was already in. For a browser pipeline that added a duplicate pointer; for a backend pipeline the backend refuses the duplicate and the add fails. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
camielvs
force-pushed
the
cvs/remote-project-picker
branch
from
November 5, 2026 18:06
d93a8b3 to
2920495
Compare
This branch has not been deployed
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.
Project picker was missing from the editor for remote pipelines
Description
The project picker in the editor's top bar sets which project a pipeline's runs go to, and adds the pipeline to a project. #2885 hid it for pipelines saved to a backend, because the picker only understood browser-held pipelines: it looked a pipeline's projects up by its local name, and Add to a project… always filed a browser-pipeline pointer. Shown as it was, it would have reported a backend pipeline as being in no project, and adding one would have created a row pointing at a browser pipeline that does not exist.
This PR shows the picker for backend pipelines again and teaches it about them:
ProjectPipelineRef: the picker,AddToProjectDialogandusePipelineProjectstake a reference that is either a browser pipeline ({ source: "local", name }) or a backend pipeline ({ source: "remote", pipelineId, name }) instead of a bare name.projectPipelineOf(file)builds it from the editor's activePipelineFile.entityId(remotePipelineResourceIn), comparing normalized ids. The browser-pointer lookup (pointerTo) is skipped for it.{ entity: "pipeline", entityId, name }, the same resource Tangent and the project page already create and read for backend pipelines.Things to look at in review:
RunProjectFieldstill looks projects up by the spec's name, as a browser pipeline. For a backend pipeline it lists the selected project but misses the other projects that hold it, and can list a project that holds a browser pipeline with the same name instead. Fixing it means passing the pipeline throughTangleSubmitter, which only has the spec, so it is left for a follow-up.Related Issue and Pull requests
Shows the picker that #2885 hid for backend pipelines.
Type of Change
Line Breakdown
Checklist
Covered by unit tests only: the Vitest suites for projects, the editor, the flow sidebar and Tangent (1,331 tests), type-checking, lint, Prettier and knip pass. Not yet checked in a running app.
Test Instructions
🤖 Generated with Claude Code