Repository navigation
Release 1.5.2: audit fixes, changelog, Electron and zod updates - #629
Merged
Merged
Conversation
Merge the two Unreleased sections, settle the Electron entry on 44.9.0, add the audit fixes and the dompurify update, and date the release. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
npm audit rejects Electron 44.9.0 (GHSA-jr5w-w6x2-84p9, fixed in 44.9.3) and zod below 4.6.6 (GHSA-mrhx-c7xc-m3w5), so the CI audit steps would fail. The embedded Node release stays 24.22.0. Only the zod lock entries change in the UI and docs lockfiles. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Comment on lines
+131
to
+134
| window.dispatchEvent(new StorageEvent('storage', { | ||
| key: AUTH_BOUNDARY_STORAGE_KEY, | ||
| newValue: JSON.stringify({ ...event, sourceId: 'second-tab', eventId: 'same-session-probe' }), | ||
| })); |
Comment on lines
+294
to
+301
| window.dispatchEvent(new StorageEvent('storage', { | ||
| key: AUTH_BOUNDARY_STORAGE_KEY, | ||
| newValue: JSON.stringify({ | ||
| version: 1, type: 'identity', userId: observed.userId, | ||
| observation: { username: observed.username, role: observed.role }, | ||
| sourceId: 'another-tab', eventId: `observed-${change}`, | ||
| } satisfies AuthBoundaryEvent), | ||
| })); |
Comment on lines
+594
to
+597
| const dispatch = (event: AuthBoundaryEvent) => window.dispatchEvent(new StorageEvent('storage', { | ||
| key: AUTH_BOUNDARY_STORAGE_KEY, | ||
| newValue: JSON.stringify(event), | ||
| })); |
| var configOverride = request?.ConfigOverride; | ||
| if (configOverride.HasValue) | ||
| var stepOverride = request?.StepOverride; | ||
| if (configOverride.HasValue && stepOverride.HasValue) |
| var stepOverride = request?.StepOverride; | ||
| if (configOverride.HasValue && stepOverride.HasValue) | ||
| return BadRequest(new { message = "Config override and step override cannot be combined" }); | ||
| if (configOverride.HasValue || stepOverride.HasValue) |
Comment on lines
+203
to
+206
| catch (Exception ex) | ||
| { | ||
| _logger.LogWarning(ex, "Could not verify the audit delete outcome for {Archive}", archivedFilePath); | ||
| } |
| public async Task Cleanup_OnlyDeletesAfterSuccessfulArchiveAndVerification(string? failedStep) | ||
| { | ||
| using var sample = JsonDocument.Parse(await File.ReadAllTextAsync( | ||
| Path.Combine(RepositoryRoot(), "scripts", "example-temp-file-cleanup-workflow.json"), |
| private static string RepositoryRoot() | ||
| { | ||
| for (var directory = new DirectoryInfo(AppContext.BaseDirectory); directory is not null; directory = directory.Parent) | ||
| if (File.Exists(Path.Combine(directory.FullName, "NodePilot.slnx"))) |
| { | ||
| var ct = TestContext.Current.CancellationToken; | ||
| var archiveDir = Path.Combine(Path.GetTempPath(), $"audit-test-{Guid.NewGuid():N}"); | ||
| var (db, factory, conn) = CreateEnv(scopeInterceptor: new FailAfterCommitInterceptor()); |
| { | ||
| var ct = TestContext.Current.CancellationToken; | ||
| var archiveDir = Path.Combine(Path.GetTempPath(), $"audit-test-{Guid.NewGuid():N}"); | ||
| var (db, factory, conn) = CreateEnv(scopeInterceptor: new FailAfterCommitInterceptor()); |
| public async Task PurgeOnceAsync_DeleteOutcomeCannotBeVerified_PreservesArchiveAndStableIdsOnRetry() | ||
| { | ||
| var ct = TestContext.Current.CancellationToken; | ||
| var archiveDir = Path.Combine(Path.GetTempPath(), $"audit-test-{Guid.NewGuid():N}"); |
| var archiveDir = Path.Combine(Path.GetTempPath(), $"audit-test-{Guid.NewGuid():N}"); | ||
| var reads = new UnavailableReadInterceptor(); | ||
| var deletes = new FailOnAuditDeleteInterceptor(() => reads.Enabled = true); | ||
| var (db, factory, conn) = CreateEnv(deletes, reads); |
| var archiveDir = Path.Combine(Path.GetTempPath(), $"audit-test-{Guid.NewGuid():N}"); | ||
| var reads = new UnavailableReadInterceptor(); | ||
| var deletes = new FailOnAuditDeleteInterceptor(() => reads.Enabled = true); | ||
| var (db, factory, conn) = CreateEnv(deletes, reads); |
npm audit rejects undici up to 8.12.1 and 7.30.0 (three high advisories), so the CI audit steps fail. The lockfiles move undici to 8.12.3 in the UI (jsdom) and 7.30.1 in the desktop packaging tree (@electron/get); both stay inside the declared ranges. Gitleaks reads the credential key of the dependency icon tones as a generic API key. The allowlist covers that one line in that one file. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings the audit fixes that were only committed locally onto main and prepares 1.5.2.
npm auditrejects Electron 44.9.0 and zod below 4.6.6, so the CI audit steps fail without this. Only the zod lock entries change in the UI and docs lockfiles.Merge with a merge commit so the build commit stays on main. The tag is set after the release lab runs.
🤖 Generated with Claude Code