MCPcopy Create free account
hub / github.com/google-gemini/gemini-cli / setUpdateHandler

Function setUpdateHandler

packages/cli/src/utils/handleAutoUpdate.ts:189–257  ·  view source on GitHub ↗
(
  addItem: (item: Omit<HistoryItem, 'id'>, timestamp: number) => void,
  setUpdateInfo: (info: UpdateObject | null) => void,
)

Source from the content-addressed store, hash-verified

187}
188
189export function setUpdateHandler(
190 addItem: (item: Omit<HistoryItem, 'id'>, timestamp: number) => void,
191 setUpdateInfo: (info: UpdateObject | null) => void,
192) {
193 let successfullyInstalled = false;
194 const handleUpdateReceived = (info: UpdateObject) => {
195 setUpdateInfo(info);
196 const savedMessage = info.message;
197 setTimeout(() => {
198 if (!successfullyInstalled) {
199 addItem(
200 {
201 type: MessageType.INFO,
202 text: savedMessage,
203 },
204 Date.now(),
205 );
206 }
207 setUpdateInfo(null);
208 }, 60000);
209 };
210
211 const handleUpdateFailed = (data?: { message: string }) => {
212 setUpdateInfo(null);
213 addItem(
214 {
215 type: MessageType.ERROR,
216 text:
217 data?.message ||
218 `Automatic update failed. Please try updating manually`,
219 },
220 Date.now(),
221 );
222 };
223
224 const handleUpdateSuccess = () => {
225 successfullyInstalled = true;
226 setUpdateInfo(null);
227 addItem(
228 {
229 type: MessageType.INFO,
230 text: `Update successful! The new version will be used on your next run.`,
231 },
232 Date.now(),
233 );
234 };
235
236 const handleUpdateInfo = (data: { message: string }) => {
237 addItem(
238 {
239 type: MessageType.INFO,
240 text: data.message,
241 },
242 Date.now(),
243 );
244 };
245
246 updateEventEmitter.on('update-received', handleUpdateReceived);

Callers 2

AppContainerFunction · 0.85

Calls 1

onMethod · 0.80

Tested by

no test coverage detected