Skip to content

Commit cc9e172

Browse files
refactor: address pr comments, fix specs.
1 parent 978a323 commit cc9e172

3 files changed

Lines changed: 19 additions & 4 deletions

File tree

playwright/github-pr-drawer.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1915,7 +1915,7 @@ test('Active PR context disconnect uses local-only confirmation flow', async ({
19151915
)
19161916

19171917
const localHead = typeof localRecord?.head === 'string' ? localRecord.head : ''
1918-
return /^feat\/component-[a-z0-9]{4}$/.test(localHead)
1918+
return /^feat\/component-[a-z0-9]+-[a-z0-9]+(?:-\d+)?$/.test(localHead)
19191919
})
19201920
.toBe(true)
19211921
expect(closePullRequestRequestCount).toBe(0)

src/app.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,9 @@ const byotControls = createGitHubByotControls({
514514
githubAiContextState.selectedRepository = selectedRepository
515515
chatDrawerController.setSelectedRepository(selectedRepository)
516516
prDrawerController.setSelectedRepository(selectedRepository)
517+
const isBootstrappingTokenSession =
518+
typeof githubAiContextState.token !== 'string' ||
519+
githubAiContextState.token.trim().length === 0
517520

518521
if (!activeWorkspaceRecordId || activeWorkspaceCreatedAt === null) {
519522
void loadPreferredWorkspaceContext()
@@ -523,6 +526,14 @@ const byotControls = createGitHubByotControls({
523526
.catch(() => {
524527
/* noop */
525528
})
529+
} else if (isBootstrappingTokenSession) {
530+
void loadPreferredWorkspaceContext()
531+
.then(() => {
532+
prDrawerController.syncRepositories()
533+
})
534+
.catch(() => {
535+
/* noop */
536+
})
526537
}
527538
}
528539

src/modules/app-core/workspace-pr-session-handoff-controller.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ export const createWorkspacePrSessionHandoffController = ({
4242
let lastKnownPrContextMeta = null
4343

4444
const createFreshLocalHeadBranch = () => {
45-
const entropy = Math.random().toString(36).slice(2, 6)
46-
return `feat/component-${entropy}`
45+
const timestampSegment = Date.now().toString(36)
46+
const entropySegment = Math.random().toString(36).slice(2, 10)
47+
return `feat/component-${timestampSegment}-${entropySegment}`
4748
}
4849

4950
const createFreshLocalEntryTab = () => {
@@ -70,6 +71,9 @@ export const createWorkspacePrSessionHandoffController = ({
7071
const startFreshLocalWorkspace = async ({ statusMessage } = {}) => {
7172
const now = Date.now()
7273
const localWorkspaceId = `local_${now}`
74+
const selectedRepository = toNonEmptyWorkspaceText(
75+
getCurrentSelectedRepositoryFullName(),
76+
)
7377
const freshLocalHeadBranch = createFreshLocalHeadBranch()
7478
let didPersistFreshWorkspace = false
7579

@@ -129,7 +133,7 @@ export const createWorkspacePrSessionHandoffController = ({
129133
const saved = await workspaceStorage.upsertWorkspace({
130134
...buildWorkspaceRecordSnapshot({ recordId: localWorkspaceId }),
131135
id: localWorkspaceId,
132-
repo: getCurrentSelectedRepositoryFullName(),
136+
repo: selectedRepository,
133137
base: '',
134138
head: freshLocalHeadBranch,
135139
prTitle: '',

0 commit comments

Comments
 (0)