Introduce optional gitCommitInfo as app-wide metadata.

This change adds an optional `gitCommitInfo` string to the app state,
which, if set by the GET_COMMIT_INFO environment variable when the
application is launched, will be displayed in the /about section. 

The `start.sh` and `build_package.sh` scripts set `GET_COMMIT_INFO` to
the most recent git commit's short hash if known, appending the string
"(local modifications)" if additional changes are detected beyond that
point.
This commit is contained in:
DeWitt Clinton
2025-05-27 08:17:40 -07:00
parent b3f52e215a
commit 43370ab0c5
8 changed files with 51 additions and 1 deletions
+2
View File
@@ -68,12 +68,14 @@ async function main() {
const readUpResult = await readPackageUp({ cwd: __dirname });
const cliVersion =
process.env.CLI_VERSION || readUpResult?.packageJson.version || 'unknown';
const gitCommitInfo = process.env.GIT_COMMIT_INFO || 'N/A';
render(
React.createElement(App, {
config,
settings,
cliVersion,
gitCommitInfo,
startupWarnings,
}),
);
+2
View File
@@ -50,6 +50,7 @@ interface AppProps {
config: Config;
settings: LoadedSettings;
cliVersion: string;
gitCommitInfo?: string;
startupWarnings?: string[];
}
@@ -57,6 +58,7 @@ export const App = ({
config,
settings,
cliVersion,
gitCommitInfo: _gitCommitInfo,
startupWarnings = [],
}: AppProps) => {
const { history, addItem, clearItems } = useHistory();
@@ -13,6 +13,7 @@ interface AboutBoxProps {
osVersion: string;
sandboxEnv: string;
modelVersion: string;
gitCommitInfo?: string;
}
export const AboutBox: React.FC<AboutBoxProps> = ({
@@ -20,6 +21,7 @@ export const AboutBox: React.FC<AboutBoxProps> = ({
osVersion,
sandboxEnv,
modelVersion,
gitCommitInfo,
}) => (
<Box
borderStyle="round"
@@ -44,6 +46,18 @@ export const AboutBox: React.FC<AboutBoxProps> = ({
<Text>{cliVersion}</Text>
</Box>
</Box>
{gitCommitInfo && gitCommitInfo !== 'N/A' && (
<Box flexDirection="row">
<Box width="35%">
<Text bold color={Colors.LightBlue}>
Git Commit
</Text>
</Box>
<Box>
<Text>{gitCommitInfo}</Text>
</Box>
</Box>
)}
<Box flexDirection="row">
<Box width="35%">
<Text bold color={Colors.LightBlue}>
@@ -53,6 +53,7 @@ export const HistoryItemDisplay: React.FC<HistoryItemDisplayProps> = ({
osVersion={item.osVersion}
sandboxEnv={item.sandboxEnv}
modelVersion={item.modelVersion}
gitCommitInfo={item.gitCommitInfo} // Added this line
/>
)}
{item.type === 'tool_group' && (
@@ -56,6 +56,7 @@ export const useSlashCommandProcessor = (
osVersion: message.osVersion,
sandboxEnv: message.sandboxEnv,
modelVersion: message.modelVersion,
gitCommitInfo: message.gitCommitInfo, // Added this line
};
} else {
historyItemContent = {
@@ -176,6 +177,7 @@ export const useSlashCommandProcessor = (
sandboxEnv = `sandbox-exec (${process.env.SEATBELT_PROFILE || 'unknown'})`;
}
const modelVersion = config?.getModel() || 'Unknown';
const gitCommitInfo = process.env.GIT_COMMIT_INFO || 'N/A';
addMessage({
type: MessageType.ABOUT,
@@ -184,6 +186,7 @@ export const useSlashCommandProcessor = (
osVersion,
sandboxEnv,
modelVersion,
gitCommitInfo,
});
},
},
+2
View File
@@ -86,6 +86,7 @@ export type HistoryItemAbout = HistoryItemBase & {
osVersion: string;
sandboxEnv: string;
modelVersion: string;
gitCommitInfo?: string;
};
export type HistoryItemToolGroup = HistoryItemBase & {
@@ -137,6 +138,7 @@ export type Message =
osVersion: string;
sandboxEnv: string;
modelVersion: string;
gitCommitInfo?: string;
content?: string; // Optional content, not really used for ABOUT
};