Conversation
This captures the RC plan, checklist, status tracker, and draft notes required to run RC1 with explicit scope and documentation gates. Made-with: Cursor
|
Low Risk Overview Updates Written by Cursor Bugbot for commit |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f9f0804a96
ℹ️ 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".
|
|
||
| ```bash | ||
| # Last released tag (most recent reachable tag) | ||
| LAST_TAG="$(git describe --tags --abbrev=0)" |
There was a problem hiding this comment.
Filter out RC tags when selecting LAST_TAG
LAST_TAG="$(git describe --tags --abbrev=0)" can pick the most recent pre-release tag (for example v1.26.3-rc1) rather than the previous stable release, and every later step in this runbook (git log/diff "${LAST_TAG}..HEAD") will then omit most of the intended release scope. git describe -h documents --tags as "use any tag, even unannotated", so this range is unstable once RC tags exist; please constrain the match to stable tags (or explicitly exclude *-rc*) so RC2/final notes are generated from the correct baseline.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Addressed in commit 5f18540. Updated LAST_TAG selection to stable semantic tags only (--match "v[0-9]*.[0-9]*.[0-9]*") so RC tags are not used as release baseline.
This resolves duplicate markdown headings and terminology linting so the RC1 lint workflow can pass. Made-with: Cursor
This updates LAST_TAG selection to match stable version tags and fixes the RC status branch field to the release branch. Made-with: Cursor
|
Addressed bot feedback in commit 1 Updated RC runbook selection to match only stable semantic tags (ignores ). |
|
Addressed bot feedback in commit 5f18540:
|
This adds --exclude '*-rc*' so release baseline selection remains on the latest stable tag. Made-with: Cursor
Documents GHCR publish timing, tags to pull, and optional online-updates test. RC1 checklist links to the plan; smoke-published-images.sh pulls mysql8.0/8.4/9.6 and runs smoke-readme.sh. Made-with: Cursor
Made-with: Cursor
- Open config with CreateFile; ACL check via GetSecurityInfo on same HANDLE - Capture GetLastError immediately on open failure - Treat GetAclInformation failure as insecure; log with warning_print Made-with: Cursor
Remove WIN32 branches from myvector.cc, myvector_binlog.cc, and hnswdisk.h. Unix/Linux/macOS only: POSIX config load, PLUGIN_EXPORT, Hamming popcount. Document that Windows is not a supported build target in CONFIGURATION.md. Made-with: Cursor
- tasks/PLANNING.md: plan defaults, subagents, verification, lessons loop - tasks/todo.md, tasks/lessons.md: templates - .cursor/rules/agent-workflow.mdc: alwaysApply summary - docs/STRUCTURE.md: document tasks/ directory Made-with: Cursor
- POST_RC_DOCKER_SMOKE_PLAN: next steps after CI complete - RC1 checklist §9: ordered gates including Publish Docker Image - tasks/PLANNING: verification reminder for registry smoke Made-with: Cursor
…y in myvector.cc - Split docker-publish: build plugins per-arch (ubuntu-24.04-arm for arm64) to avoid QEMU/apt segfaults; merge artifacts before smoke/push - Restore PLUGIN_EXPORT dllexport on Windows; portable unlink/strcasecmp/time Made-with: Cursor
|
|
||
| **Optional:** | ||
|
|
||
| - Delegate exploration/research to subagents when it keeps context clean. |
There was a problem hiding this comment.
Cursor IDE config committed in release candidate
Low Severity
The .cursor/rules/agent-workflow.mdc file is Cursor IDE-specific agent configuration being committed as part of a release candidate. The .dockerignore already lists .cursor, indicating awareness this directory is tool-specific and shouldn't be distributed. This IDE configuration with alwaysApply: true doesn't belong in a versioned release artifact — it's personal/team tooling that could affect other Cursor users who clone the repo.
| strftime(timebuf, | ||
| sizeof(timebuf), | ||
| "%a %b %d %H:%M:%S %Y\n", | ||
| &tm_buf); |
There was a problem hiding this comment.
New unreachable _WIN32 code added despite Windows removal
Low Severity
New #ifdef _WIN32 code blocks are added in myvector.cc (time formatting at line 2222, macros at line 50) while hnswdisk.h and myvector_binlog.cc now unconditionally include Unix-only headers like <unistd.h> and <sys/time.h>. Any Windows build fails at include time, making these new _WIN32 blocks unreachable dead code. The release notes and changelog explicitly state Win32 code paths were removed, contradicting the addition.
Additional Locations (2)
- Bump softprops/action-gh-release v1 -> v2 (actionlint: outdated runner) - Set VALIDATE_NATURAL_LANGUAGE false (empty textlint config exits 1) - Tweak DOCKER_IMAGES and tasks/lessons wording Made-with: Cursor
Super-linter runs zizmor (not only actionlint). Default policy requires SHA-pinned actions and flags GHCR/read-all permissions. Configure ref-pin for all actions and ignore repo-specific permission/checkout findings. Made-with: Cursor
Super-linter resolves config under LINTER_RULES_PATH (default .github/linters), not .github/. Move zizmor.yaml there and set LINTER_RULES_PATH in linter.yml so GITHUB_ACTIONS_ZIZMOR picks up the config on CI. Made-with: Cursor
- VALIDATE_GITHUB_ACTIONS_ZIZMOR=false keeps actionlint-only for workflows (zizmor caused CI-only failures vs local actionlint) - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 for checkout/super-linter JS actions - lessons: stop/re-plan after lint failures; optional local zizmor Made-with: Cursor
Super-linter (zizmor + others) caused repeated CI-only failures. PR lint now runs rhysd/actionlint in Docker on .github/workflows/*.yml only; verified locally. - Drop super-linter-specific env/permissions - Document in lessons + .linter.yaml legacy note Made-with: Cursor
Made-with: Cursor
- Avoid Docker on GHA (Hub pulls / setup); use rhysd download script per docs - actionlint v1.7+ requires -shellcheck <path>; use default shellcheck via -color only - gitignore /actionlint from local download; update lessons Made-with: Cursor
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| path: myvector-${{ matrix.arch }}.so | ||
|
|
||
| build-and-publish: | ||
| needs: build-plugin |
There was a problem hiding this comment.
Cross-version CI coupling blocks unrelated Docker publishes
Low Severity
The build-and-publish job uses needs: build-plugin which creates a monolithic dependency on all six build-plugin matrix entries. If any single entry fails (e.g., arm64 build for MySQL 8.0), all three build-and-publish jobs are skipped — including MySQL 8.4 and 9.6 whose builds may have succeeded for both architectures. The previous workflow had each MySQL version fully independent, so a failure in one version never blocked others from building, smoke-testing, or publishing.
Made-with: Cursor


Summary
v1.26.3fromrelease/v1.26.3-rc1and publish tagv1.26.3-rc1.v1.26.1, with configuration/security hardening, binlog/config stability fixes, test and workflow improvements, and documentation updates.Test plan
release/v1.26.3-rc1release/RELEASE_NOTES_DRAFT.mdandCHANGELOG.mdMade with Cursor
Note
Medium Risk
Moderate risk: changes touch GitHub Actions build/publish flow and remove/adjust Windows-specific code paths, which can impact release automation and cross-platform builds. Core plugin logic changes are limited to portability wrappers and file deletion calls.
Overview
Cuts the
v1.26.3RC by adding release artifacts (RC plan/checklists/status, draft/template release notes) and updatingCHANGELOG.md/docs to reflect the release scope and that Windows is not supported.CI/workflows are reworked:
linter.ymlnow runs actionlint only (download script; no Super-Linter), anddocker-publish.ymlsplits multi-arch plugin builds into per-arch native runners, uploads the.soartifacts, and then assembles/publishes multi-arch images from those artifacts.Code/build portability is tightened by removing Win32-specific config-file handling in
myvector_binlog.cc, droppingWIN32branches ininclude/hnswdisk.h, and introducing small_WIN32wrappers inmyvector.cc(e.g.,myvector_unlink,myvector_strcasecmp, time formatting). Addsscripts/smoke-published-images.shplus release docs to standardize post-publish GHCR smoke testing.Written by Cursor Bugbot for commit 5b152b3. This will update automatically on new commits. Configure here.