plumb commit info

This commit is contained in:
Simon Knott 2025-02-10 10:25:40 +01:00
parent 1344d83be6
commit 9070e954d3
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC
2 changed files with 19 additions and 8 deletions

View file

@ -24,6 +24,9 @@ import type { StackFrame } from '@protocol/channels';
import { CopyToClipboardTextButton } from './copyToClipboard';
import { attachmentURL } from './attachmentsTab';
import { fixTestPrompt } from '@web/components/prompts';
import type { GitCommitInfo } from '@testIsomorphic/types';
export const GitCommitInfoContext = React.createContext<GitCommitInfo | undefined>(undefined);
const PromptButton: React.FC<{
error: string;
@ -44,7 +47,9 @@ const PromptButton: React.FC<{
}
}, [actions]);
const prompt = React.useMemo(() => fixTestPrompt(error, undefined, pageSnapshot), [error, pageSnapshot]);
const gitCommitInfo = React.useContext(GitCommitInfoContext);
console.log({ gitCommitInfo })
const prompt = React.useMemo(() => fixTestPrompt(error, gitCommitInfo?.['pull.diff'] ?? gitCommitInfo?.['revision.diff'], pageSnapshot), [error, gitCommitInfo, pageSnapshot]);
return <CopyToClipboardTextButton value={prompt} description='Fix with AI' copiedDescription={<>Copied <span className='codicon codicon-copy' style={{ marginLeft: '5px' }}/></>} style={{ width: '90px', justifyContent: 'center' }} />;
};

View file

@ -37,6 +37,8 @@ import { TestListView } from './uiModeTestListView';
import { TraceView } from './uiModeTraceView';
import { SettingsView } from './settingsView';
import { DefaultSettingsView } from './defaultSettingsView';
import type { GitCommitInfo } from '@testIsomorphic/types';
import { GitCommitInfoContext } from './errorsTab';
let xtermSize = { cols: 80, rows: 24 };
const xtermDataSource: XtermDataSource = {
@ -397,6 +399,8 @@ export const UIModeView: React.FC<{}> = ({
});
}, [closeInstallDialog, testServerConnection]);
const gitCommitInfo = React.useMemo(() => testModel?.config.metadata['git.commit.info'] as GitCommitInfo | undefined, [testModel]);
return <div className='vbox ui-mode'>
{!hasBrowsers && <dialog ref={dialogRef}>
<div className='title'><span className='codicon codicon-lightbulb'></span>Install browsers</div>
@ -430,13 +434,15 @@ export const UIModeView: React.FC<{}> = ({
<XtermWrapper source={xtermDataSource}></XtermWrapper>
</div>
<div className={clsx('vbox', isShowingOutput && 'hidden')}>
<TraceView
pathSeparator={queryParams.pathSeparator}
item={selectedItem}
rootDir={testModel?.config?.rootDir}
revealSource={revealSource}
onOpenExternally={location => testServerConnection?.openNoReply({ location: { file: location.file, line: location.line, column: location.column } })}
/>
<GitCommitInfoContext.Provider value={gitCommitInfo}>
<TraceView
pathSeparator={queryParams.pathSeparator}
item={selectedItem}
rootDir={testModel?.config?.rootDir}
revealSource={revealSource}
onOpenExternally={location => testServerConnection?.openNoReply({ location: { file: location.file, line: location.line, column: location.column } })}
/>
</GitCommitInfoContext.Provider>
</div>
</div>}
sidebar={<div className='vbox ui-mode-sidebar'>