Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
a8bc0d2
feat(web-shell): manage git remotes from the workspace branch picker
wenshao Sep 6, 2026
267fe90
Merge branch 'main' into feat/git-manage-remotes
wenshao Sep 6, 2026
9fafa70
fix(web-shell): harden git remotes management after review audits
wenshao Sep 7, 2026
61bee20
Merge remote-tracking branch 'origin/feat/git-manage-remotes' into fe…
wenshao Sep 7, 2026
a76eec7
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 7, 2026
91d59ea
fix(web-shell): close remotes edge cases from the second review round
wenshao Sep 8, 2026
c0372b3
Merge branch 'main' into feat/git-manage-remotes
qwen-code-dev-bot Sep 8, 2026
3c85c0a
Merge branch 'main' into feat/git-manage-remotes
wenshao Sep 8, 2026
6c4d1cc
fix(core): harden git remote removal verification and upstream cleanup
wenshao Sep 8, 2026
19d6241
fix(web-shell,cli): close remotes edge cases from the fourth review r…
wenshao Sep 8, 2026
e050239
Merge branch 'main' into feat/git-manage-remotes
qwen-code-dev-bot Sep 8, 2026
d1e994f
fix(core,web-shell): close remotes edge cases from the R4 review batch
wenshao Sep 9, 2026
46fab3b
Merge branch 'main' into feat/git-manage-remotes
qwen-code-dev-bot Sep 9, 2026
d4fefe4
fix(core,cli,web-shell): close remotes edge cases from the R5/R6 revi…
wenshao Sep 9, 2026
46df139
fix(core,web-shell): close the slash-namespace and render-identity gaps
wenshao Sep 9, 2026
5edd38c
test(core): pin worktree-over-local upstream attribution on removal
wenshao Sep 9, 2026
6c1c28e
fix(cli,web-shell): bound the loose classifier keywords and keep git'…
wenshao Sep 9, 2026
f7d3ea4
test(cli): allow the redaction's process-scoped HOME/XDG_CONFIG_HOME …
wenshao Sep 9, 2026
7b0fef3
fix(core,cli,web-shell): close the R9-batch removal integrity gaps
wenshao Sep 10, 2026
62f4355
fix(core,cli,web-shell): close the R10-batch removal and confusables …
wenshao Sep 10, 2026
49ae540
ci: run the platform lanes for the git remotes path handling
wenshao Sep 10, 2026
18b63f7
test(core): write the slashed sibling section instead of remote-addin…
wenshao Sep 10, 2026
0d67366
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 10, 2026
7adbc50
Revert "ci: run the platform lanes for the git remotes path handling"
wenshao Sep 11, 2026
c62cecf
fix(core,cli,web-shell,docs): close the R11 confusables split and def…
wenshao Sep 11, 2026
e5fe35d
test(core): retry the tmp-dir teardown on Windows EBUSY
wenshao Sep 11, 2026
1cdd497
docs(web-shell): state the consumer-fold example's mechanism exactly
wenshao Sep 11, 2026
a1d84b6
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 11, 2026
bab8e50
fix(core,web-shell,docs): close the R13 Criticals and their audit fal…
wenshao Sep 12, 2026
b3aa91e
fix(core,cli,web-shell,docs): close the R14 Criticals and their audit…
wenshao Sep 12, 2026
5ad579c
Merge branch 'main' into feat/git-manage-remotes
wenshao Sep 12, 2026
fcbf7eb
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 13, 2026
c1fdad2
Merge remote-tracking branch 'origin/feat/git-manage-remotes' into fe…
wenshao Sep 13, 2026
5f3752c
fix(core,web-shell,docs): close the R15 Criticals and their audit fal…
wenshao Sep 13, 2026
08f5009
refactor(core,web-shell,docs): land the R15 reverse-audit follow-ups
wenshao Sep 13, 2026
4efe3f6
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 13, 2026
789b42b
test(web-shell): route the remotes e2e through the post-#11700 picker…
wenshao Sep 13, 2026
4e7f989
build: raise the tsc build heap ceiling to 4096 MiB
wenshao Sep 13, 2026
4c91aec
test(web-shell): pin the remotes e2e to the scenario branch and armed…
wenshao Sep 14, 2026
db63e6b
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 14, 2026
c394edb
fix(cli): move the git routes off the core barrel per the #11798 rule
wenshao Sep 14, 2026
cd06759
fix(core,cli,web-shell,docs): address R16 review and convergence-audi…
wenshao Sep 14, 2026
7fba9ac
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 14, 2026
ad3de52
fix(cli,core,docs): address R17 verification findings and convergence…
wenshao Sep 15, 2026
f43ce88
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 15, 2026
8925f1f
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 15, 2026
b38a984
fix(remotes): close R18 review findings and local audit findings acro…
wenshao Sep 17, 2026
78625a6
Merge remote-tracking branch 'origin/main' into feat/git-manage-remotes
wenshao Sep 17, 2026
f59596c
fix(remotes): certify removals push-side as well as fetch-side
wenshao Sep 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test(web-shell): pin the remotes e2e to the scenario branch and armed…
… state

- openBranchPicker derived its click target from a hardcoded branch
  name while accepting scenario overrides; it now reads the scenario
  branch, pinned by the search test whose fixture switches to feat/x
  (RED without the derivation).
- The smoke test asserts the armed Confirm label between the two
  remove clicks, so a single-click regression fails at the witness
  instead of as a second-click timeout; pinned by a temporary
  single-click mutation that turns the assertion RED.
  • Loading branch information
wenshao committed Sep 14, 2026
commit 4c91aec28e1b5f4c786454289d43c6c09f51f726
11 changes: 10 additions & 1 deletion packages/web-shell/client/e2e/web-shell.git-remotes.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ async function openBranchPicker(page: Page, scenario: WebShellDaemonScenario) {
const environment = page.getByTestId('environment-panel');
await expect(environment).toBeVisible();
const branchRow = environment.getByRole('button', {
name: 'main',
name: scenario.gitStatus?.branch ?? 'main',
exact: true,
});
await expect(branchRow).toBeVisible({ timeout: 10_000 });
Expand Down Expand Up @@ -83,6 +83,10 @@ test('git picker manages remotes: list, add, remove @smoke', async ({

// Remove uses a two-click confirm: the first click only arms the button.
await originRow.click();
// Armed-state witness: the row button flips to the confirm label with
// no remove request yet — a single-click regression fails HERE, not
// as a click timeout on the second click.
await expect(originRow).toHaveText('Confirm');
expect(remoteRequests(daemon, '/git/remote/remove')).toHaveLength(0);
await originRow.click();
await expect(originRow).toHaveCount(0);
Expand Down Expand Up @@ -135,6 +139,11 @@ test('remotes panel search filters by name and URL', async ({
page,
}, testInfo) => {
const scenario = createGitWorkspaceScenario({
gitStatus: {
v: 2,
workspaceCwd: '/tmp/qwen-web-shell-e2e',
branch: 'feat/x',
},
gitRemotes: [
{
name: 'origin',
Expand Down
Loading