docs(plans): how to make "New workspace from this one" functional - #232
Draft
pythonlearner1025 wants to merge 1 commit into
Draft
docs(plans): how to make "New workspace from this one" functional#232pythonlearner1025 wants to merge 1 commit into
pythonlearner1025 wants to merge 1 commit into
Conversation
PR #231 comments the footer verb out. This is the plan for bringing it back: the six browser-side defects that make it not work today, each grounded at the line that causes it, the order to fix them in, the tests that must exist before the button is uncommented, and the three product decisions the work needs answered first. The server side is not the problem and the plan says so — the clone, its inherit set and its refusals are already covered by test/workspace-clones.test.ts. Everything between the footer button and api.createWorkspace is what has no test, which is how a finished clone leaving its source armed for the next create went unnoticed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Draft — a plan to review, not code to merge. Follow-up to #231, which comments
the footer verb out. Based on that branch so the diff is the doc alone; retarget
to
mainonce #231 lands.Adds
plans/WORKSPACE-CLONE.md.The short version
The server side of cloning is already real and already tested —
performWorkspaceCreateinherits the source's default machine type, agent rule,repo list and connection ceiling, and
test/workspace-clones.test.tspins thecreate, the
repos+cloneFromWorkspaceIdrefusal and the private-repo 409.What is unfinished is the browser flow around it. The plan lists six defects,
each grounded at the line that causes it:
cloneFromWorkspaceIdiscleared on cancel and nowhere else, so the next plain create — the rail "+",
the first-workspace prompt, a retry — opens titled New workspace from "the
old one" and silently clones it.
its own selection, so the server's
?? source.default_machine_type_idbranchis unreachable from this UI.
shows "no rule" while the server inherits one.
credentials do not.
picker, which clone mode hides, and the connect draft carries no clone source,
so leaving to connect drops you into a plain create.
onCloneis passedunconditionally while creating a workspace is org-admin only.
Defect 1 misfires from every other create entry point too, so it is worth
fixing whether or not the button ever comes back.
What the plan asks reviewers to decide
Three product questions in §4, because they change the work rather than follow
from it: whether members and credentials keep staying out of a clone, whether a
clone is a one-shot copy rather than a link to its source, and whether the
details footer is the right entry point at all.
§3 lists the tests that must be green before the button is uncommented,
including the end-to-end that does not exist in any form today: footer → create
dialog carrying the source → the exact body the client sends.
🤖 Generated with Claude Code