MCPcopy Index your code
hub / github.com/Noumena-Network/code / rollback

Function rollback

src/cli/rollback.ts:158–216  ·  view source on GitHub ↗
(
  target: string | undefined,
  options: RollbackOptions = {},
)

Source from the content-addressed store, hash-verified

156}
157
158export async function rollback(
159 target: string | undefined,
160 options: RollbackOptions = {},
161): Promise<void> {
162 try {
163 if (options.list) {
164 await listVersions()
165 return
166 }
167
168 const resolvedTarget = await resolveRollbackTarget(target, options)
169 if (options.dryRun) {
170 writeToStdout(
171 `Would roll back from ${MACRO.VERSION} to ${resolvedTarget}.\n`,
172 )
173 await gracefulShutdown(0)
174 return
175 }
176
177 writeToStdout(
178 chalk.yellow(`Rolling back from ${MACRO.VERSION} to ${resolvedTarget}...`) +
179 '\n',
180 )
181
182 const result = await installLatest(resolvedTarget, false)
183 if (result.lockFailed) {
184 const pidInfo = result.lockHolderPid
185 ? ` (PID ${result.lockHolderPid})`
186 : ''
187 writeToStderr(
188 `Another Code process${pidInfo} is currently running. Please try again in a moment.\n`,
189 )
190 await gracefulShutdown(1)
191 return
192 }
193
194 if (!result.latestVersion) {
195 writeToStderr('Rollback failed: unable to install the requested version.\n')
196 await gracefulShutdown(1)
197 return
198 }
199
200 if (result.latestVersion === MACRO.VERSION) {
201 writeToStdout(
202 chalk.yellow(`Already running ${result.latestVersion}.`) + '\n',
203 )
204 await gracefulShutdown(0)
205 return
206 }
207
208 writeToStdout(
209 chalk.green(`Rolled back to ${result.latestVersion}.`) + '\n',
210 )
211 await gracefulShutdown(0)
212 } catch (error) {
213 writeToStderr(`Rollback failed: ${error instanceof Error ? error.message : String(error)}\n`)
214 await gracefulShutdown(1)
215 }

Callers 1

runFunction · 0.85

Calls 6

listVersionsFunction · 0.85
resolveRollbackTargetFunction · 0.85
writeToStdoutFunction · 0.85
gracefulShutdownFunction · 0.85
installLatestFunction · 0.85
writeToStderrFunction · 0.85

Tested by

no test coverage detected