diff --git a/src/ClaudeDo.Installer/Steps/WriteInstallManifestStep.cs b/src/ClaudeDo.Installer/Steps/WriteInstallManifestStep.cs index 32ae104..83cfda8 100644 --- a/src/ClaudeDo.Installer/Steps/WriteInstallManifestStep.cs +++ b/src/ClaudeDo.Installer/Steps/WriteInstallManifestStep.cs @@ -12,14 +12,21 @@ public sealed class WriteInstallManifestStep : IInstallStep if (string.IsNullOrWhiteSpace(ctx.InstalledVersion)) return Task.FromResult(StepResult.Fail("Installed version is not set — DownloadAndExtractStep must run first.")); - var manifest = new InstallManifest( - Version: ctx.InstalledVersion!, - InstallDir: ctx.InstallDirectory, - WorkerDir: Path.Combine(ctx.InstallDirectory, "worker"), - InstalledAt: DateTimeOffset.UtcNow); + try + { + var manifest = new InstallManifest( + Version: ctx.InstalledVersion, + InstallDir: ctx.InstallDirectory, + WorkerDir: Path.Combine(ctx.InstallDirectory, "worker"), + InstalledAt: DateTimeOffset.UtcNow); - InstallManifestStore.Write(ctx.InstallDirectory, manifest); - progress.Report($"Wrote {InstallManifestStore.ManifestPath(ctx.InstallDirectory)}"); - return Task.FromResult(StepResult.Ok()); + InstallManifestStore.Write(ctx.InstallDirectory, manifest); + progress.Report($"Wrote {InstallManifestStore.ManifestPath(ctx.InstallDirectory)}"); + return Task.FromResult(StepResult.Ok()); + } + catch (Exception ex) + { + return Task.FromResult(StepResult.Fail(ex.Message)); + } } }