Improve pull request flow, add branch selection for worktree creation, fix auto-mode concurrency count (#787)

* Changes from fix/fetch-before-pull-fetch

* feat: Improve pull request flow, add branch selection for worktree creation, fix for automode concurrency count

* feat: Add validation for remote names and improve error handling

* Address PR comments and mobile layout fixes

* ```
refactor: Extract PR target resolution logic into dedicated service
```

* feat: Add app shell UI and improve service imports. Address PR comments

* fix: Improve security validation and cache handling in git operations

* feat: Add GET /list endpoint and improve parameter handling

* chore: Improve validation, accessibility, and error handling across apps

* chore: Format vite server port configuration

* fix: Add error handling for gh pr list command and improve offline fallbacks

* fix: Preserve existing PR creation time and improve remote handling
This commit is contained in:
gsxdsm
2026-02-19 21:55:12 -08:00
committed by GitHub
parent ee52333636
commit 7df2182818
80 changed files with 4729 additions and 1107 deletions

View File

@@ -35,16 +35,42 @@ test.describe('Project Creation', () => {
// Intercept settings API BEFORE authenticateForTests (which navigates to the page)
// This prevents settings hydration from restoring a project and disables auto-open
await page.route('**/api/settings/global', async (route) => {
const method = route.request().method();
if (method === 'PUT') {
// Allow settings sync writes to pass through
return route.continue();
}
const response = await route.fetch();
const json = await response.json();
// Remove currentProjectId and clear projects to prevent auto-open
if (json.settings) {
json.settings.currentProjectId = null;
json.settings.projects = [];
// Ensure setup is marked complete to prevent redirect to /setup on fresh CI
json.settings.setupComplete = true;
json.settings.isFirstRun = false;
// Preserve lastProjectDir so the new project modal knows where to create projects
json.settings.lastProjectDir = TEST_TEMP_DIR;
}
await route.fulfill({ response, json });
});
// Mock workspace config API to return a valid default directory.
// In CI, ALLOWED_ROOT_DIRECTORY is unset and Documents path is unavailable,
// so without this mock, getDefaultWorkspaceDirectory() returns null and the
// "Will be created at:" text never renders in the new project modal.
await page.route('**/api/workspace/config', async (route) => {
await route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({
success: true,
configured: false,
defaultDir: TEST_TEMP_DIR,
}),
});
});
await authenticateForTests(page);
// Navigate directly to dashboard to avoid auto-open logic