(
cwd: string,
options: { emitRefreshEvent?: boolean | undefined; force?: boolean | undefined } = {},
)
| 58 | } |
| 59 | |
| 60 | export async function refreshShellIndex( |
| 61 | cwd: string, |
| 62 | options: { emitRefreshEvent?: boolean | undefined; force?: boolean | undefined } = {}, |
| 63 | ) { |
| 64 | const inFlightSync = inFlightShellIndexSyncs.get(cwd) |
| 65 | if (inFlightSync && !options.force) { |
| 66 | return await inFlightSync |
| 67 | } |
| 68 | |
| 69 | if (inFlightSync) { |
| 70 | // User-triggered project import needs a fresh filesystem pass. The background |
| 71 | // startup sync may have snapshotted sessions before a Pi CLI project was created. |
| 72 | await inFlightSync |
| 73 | |
| 74 | const forcedInFlightSync = inFlightShellIndexSyncs.get(cwd) |
| 75 | if (forcedInFlightSync) { |
| 76 | return await forcedInFlightSync |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | return await startShellIndexSync(cwd, { |
| 81 | emitRefreshEvent: options.emitRefreshEvent, |
| 82 | warningLabel: 'Failed to refresh shell index.', |
| 83 | }) |
| 84 | } |
no test coverage detected