Release v3.7.9 (continued development)#1982
Conversation
chore: add GPT-5.5 Instant model to Codex registry + Node 26 support with CI + improved native SQLite error handling. Integrated into release/v3.7.9
There was a problem hiding this comment.
Code Review
This pull request updates the model registry with GPT-5.5, refactors the log purging functionality, and enhances SQLite error handling for native module failures. It also updates dependency versions, expands Node.js engine support, and migrates internal documentation links to Next.js Link components. Feedback focuses on ensuring backend compatibility for the new log purge API and translation keys, correcting the documentation breadcrumb path, and addressing potential rendering issues in Storybook. Additionally, there is a concern regarding lost test coverage following the deletion of an encryption test file.
| const res = await fetch("/api/settings/purge-logs", { method: "POST" }); | ||
| const data = await res.json(); | ||
| if (res.ok) { | ||
| setPurgeLogsStatus({ | ||
| type: "success", | ||
| message: | ||
| t("logsPurged", { count: data.deletedCount }) || | ||
| `Purged ${data.deletedCount} old log entries`, | ||
| t("logsDeleted", { count: data.deleted }) || | ||
| `Purged ${data.deleted} expired log(s)`, |
There was a problem hiding this comment.
The log purge functionality has been refactored to use a new endpoint (/api/settings/purge-logs via POST) and a new response field (data.deleted). Additionally, the translation key was changed from logsPurged to logsDeleted. Please ensure that the backend API has been updated to match these changes and that the new translation key exists in the i18n JSON files, otherwise this feature will break or show missing translations in the UI.
| <Link href="/" className="hover:text-text-main transition-colors"> | ||
| >>>>>>> upstream/release/v3.7.9 | ||
| Docs | ||
| </Link> |
There was a problem hiding this comment.
The breadcrumb link for "Docs" has been changed to point to the root /. Since the documentation is hosted under the /docs path (as seen in the Footer links), this breadcrumb should point to /docs to ensure users are returned to the documentation home rather than the main landing page.
| <Link href="/" className="hover:text-text-main transition-colors"> | |
| >>>>>>> upstream/release/v3.7.9 | |
| Docs | |
| </Link> | |
| <Link href="/docs" className="hover:text-text-main transition-colors"> | |
| Docs | |
| </Link> |
| describe("migrateLegacyEncryptedString() behavior", () => { | ||
| it("should upgrade legacy encrypted tokens to static key tokens", async () => { | ||
| const secret = "test-secret-key-12345"; | ||
| const plaintext = "legacy-token"; | ||
| const legacyEncrypted = createLegacyEncrypted(plaintext, secret); | ||
|
|
||
| vi.stubEnv("STORAGE_ENCRYPTION_KEY", secret); | ||
| vi.resetModules(); | ||
|
|
||
| const { migrateLegacyEncryptedString, decrypt } = await import("@/lib/db/encryption"); | ||
|
|
||
| const result = migrateLegacyEncryptedString(legacyEncrypted); | ||
| expect(result.updated).toBe(true); | ||
| expect(result.value).not.toBe(legacyEncrypted); | ||
| expect(result.value).toMatch(/^enc:v1:/); | ||
|
|
||
| const decrypted = decrypt(result.value); | ||
| expect(decrypted).toBe(plaintext); | ||
| }); | ||
|
|
||
| it("should NOT upgrade static-key encrypted tokens", async () => { | ||
| vi.stubEnv("STORAGE_ENCRYPTION_KEY", "test-secret-key-12345"); | ||
| vi.resetModules(); | ||
|
|
||
| const { encrypt, migrateLegacyEncryptedString } = await import("@/lib/db/encryption"); | ||
|
|
||
| const plaintext = "modern-token"; | ||
| const encrypted = encrypt(plaintext); | ||
|
|
||
| const result = migrateLegacyEncryptedString(encrypted!); | ||
| expect(result.updated).toBe(false); | ||
| expect(result.value).toBe(encrypted); | ||
| }); | ||
| }); |
There was a problem hiding this comment.
The file tests/unit/encryption.test.ts was deleted in this PR, but several important test cases (such as encrypt/decrypt roundtrip, encryptConnectionFields, and various edge cases) do not appear to have been migrated to this file. This results in a significant reduction in test coverage for the encryption module. Please ensure all relevant tests are preserved.
| }, | ||
| }; | ||
| ======= | ||
| content: '<div className="p-2">Run npm install to get started.</div>', |
There was a problem hiding this comment.
The content property for the tab was changed from a JSX element to a string containing HTML. Unless the Tabs component has been specifically updated to render raw HTML strings (e.g., via dangerouslySetInnerHTML), this will cause the HTML tags to be rendered as literal text in the UI. It is generally safer to keep this as a JSX element.
| content: '<div className="p-2">Run npm install to get started.</div>', | |
| content: <div className="p-2">Run npm install to get started.</div>, |
CI Coverage Report
Coverage artifact was not available for this run. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6d78be72d6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,327 +0,0 @@ | |||
| import { describe, it, expect, beforeEach, afterEach, vi } from "vitest"; | |||
There was a problem hiding this comment.
Restore encryption tests to mandatory CI test glob
Deleting tests/unit/encryption.test.ts leaves encryption coverage only in tests/unit/encryption.spec.ts, but the required unit/coverage commands and workflow shards still execute tests/unit/*.test.ts (for example in package.json and .github/workflows/ci.yml). This means encryption regressions are no longer exercised by the main CI gates and can merge unnoticed unless someone manually runs npm run test:vitest.
Useful? React with 👍 / 👎.
|




Release v3.7.9 — Continued Development
Tracking PR for the ongoing v3.7.9 release development cycle.
Replaces the previously merged PR #1959. Development on this branch is still in progress.
Recent Merges
Status
🟡 In Development — do not merge until release is finalized.