Binaries in these bundles
Each bundle carries a Node.js, a FerretDB and the MongoDB Database Tools. Which source has a given CPU varies from release to release - nodejs.org builds some architectures, unofficial-builds others, and the wekan/node-patches build the ones neither of them does - and not every source publishes a checksum. This is what went into this release, and which downloads were checked against a published SHA256.
| Bundle | Binary | From | Version | Checked | SHA256 |
|---|---|---|---|---|---|
| amd64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 81f6c2ceecae2c7d… |
| amd64 | Node.js | nodejs.org | v24.20.0 | verified | 2f2c0da162318f0d… |
| arm64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 6eb72515879dd9de… |
| arm64 | Node.js | nodejs.org | v24.20.0 | verified | 5f4ddab610c1ab20… |
| armhf | FerretDB | wekan/FerretDB | v1.75.0 | verified | 9a1641f5546ed4c0… |
| armhf | Node.js | wekan/node-patches | v24.20.0 | verified | ace678ca4601db06… |
| armv6 | FerretDB | wekan/FerretDB | v1.75.0 | verified | a8d4b2522303b626… |
| armv6 | Node.js | wekan/node-patches | v24.20.0 | verified | e01021ab2ddd42cd… |
| armv7 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 9a1641f5546ed4c0… |
| armv7 | Node.js | wekan/node-patches | v24.20.0 | verified | a227473dc166e862… |
| i386 | FerretDB | wekan/FerretDB | v1.75.0 | verified | cadcd51750a50a87… |
| i386 | Node.js | wekan/node-patches | v24.20.0 | verified | a90b92e80d95c341… |
| mac-arm64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 81863fce8bf935f7… |
| mac-arm64 | Node.js | nodejs.org | v24.20.0 | verified | b7bf7707070b950b… |
| mac-x64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 01ba473e0b6bed80… |
| mac-x64 | Node.js | nodejs.org | v24.20.0 | verified | 26fc30891004603d… |
| ppc64le | FerretDB | wekan/FerretDB | v1.75.0 | verified | c6a0a83fdfa0e2c2… |
| ppc64le | Node.js | nodejs.org | v24.20.0 | verified | 341307dcee20d883… |
| riscv64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | a33def38abf341f6… |
| riscv64 | Node.js | unofficial-builds.nodejs.org | v24.20.0 | verified | a149c5bf85f98ff1… |
| s390x | FerretDB | wekan/FerretDB | v1.75.0 | verified | 1cd7433952ad29d0… |
| s390x | Node.js | nodejs.org | v24.20.0 | verified | ca381121cb5a8d38… |
| win-arm64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | 407b547bdfa73116… |
| win-arm64 | Node.js | nodejs.org | v24.20.0 | verified | 31c6799744de8a54… |
| win64 | FerretDB | wekan/FerretDB | v1.75.0 | verified | e02457ad24a6ddc7… |
| win64 | Node.js | nodejs.org | v24.20.0 | verified | 6cac9ffbca8f6a47… |
A row saying no checksum published is not a failed check - it is a source that publishes nothing to check against. Those are the ones worth fixing at the source.
v11.62 2026-09-08 WeKan ® release
In short: this release adds test-menu.sh and a Markdown import/export format, and gives the GitHub/Gitea/Forgejo issue importer loss-reporting instead of silently dropping fields. The Board View menu is reordered and gains placeholder pages for ten not-yet-built views plus a new Time view. The Board Table and Calendar view toolbars are rethemed, regrouped and properly centered. Several bugs are fixed: dependency lines and collapsed lists bleeding past a resized swimlane, a list's collapse caret sitting in the wrong place, an OIDC redirect login loop, a Windows single-EXE CI smoke test failing silently, and list width is now a single hardcoded 240px for every list on every board, with the redundant "Set width"/"Set swimlane height" popups removed.
| Platform | Binary | From | Version | SHA256 |
|---|---|---|---|---|
| amd64 | Node.js | nodejs.org | v24.19.0 | 14b342e71204f811bde6153be8e04b62aef63c236fef92b55f9c83154b409647 |
| amd64 | FerretDB | wekan/FerretDB | v1.53.0 | eae1f0a8f73bfc979738bfff7284d40fd1bc55de2cc56514721fc155c3624f7d |
| arm64 | Node.js | nodejs.org | v24.19.0 | 01443c1e1a29e531ccad5a46fefa6df490d2189c49f7955904aecdbb0fe86fdc |
| arm64 | FerretDB | wekan/FerretDB | v1.53.0 | bdc50caee3ac28495b42d2130b94a042a9dd6d3a38f732cac02b648f36c891da |
| mac-arm64 | Node.js | nodejs.org | v24.19.0 | 3f1cf157479c1480352083105e13faf9d008ede98e7e157746b6df940d197b94 |
| mac-arm64 | FerretDB | wekan/FerretDB | v1.53.0 | cb14ffe93e285903e5a8a9c1821687ddb5b8a979a11c584bf4af534b272c6d3e |
| mac-x64 | Node.js | nodejs.org | v24.19.0 | d35e95230f46f6f0751df497c56622c6735e05d5e1fb1630996a005b9d328fe4 |
| mac-x64 | FerretDB | wekan/FerretDB | v1.53.0 | d97dfa9afa60aa05f25384327de82efe7b71d958ed24c1f66618284294a65cd3 |
This release adds the following developer-tooling feature:
Feature testing - one menu to run and verify WeKan's own features.
Add test-menu.sh and checked-in example inputs for docs/Features (github.com). Thanks to xet7.
test-menu.sh mirrors the docs/Features menu structure and runs the actual WeKan code for each feature: a dedicated runner for Login (a real REST username/password round trip) and ImportExport/PDF (create a board, export it, check the PDF header), and a generic fallback that matches a feature against this repo's own automated tests by filename. Every feature run writes output.txt/result.txt/run.log under .tools/test-menu/<timestamp>/, mirroring the docs/Features path, and never leaves an empty or missing result. The example INPUT for a feature is checked into the repository next to its documentation instead - docs/Features/<path>/example-input.txt - so test-menu.sh only ever reads it, never writes into docs/Features.and adds the following Board View feature:
Board View menu - its order, icons and the views it opens.
Reorder the Board View menu and add its not-yet-built views. Thanks to xet7.
New order top to bottom: Swimlanes, Lists, Table, Calendar, Time, Statistics, Dashboard, Burndown, Burnup, Cumulative Flow, Control, Cycle Time, Flow Efficiency, Gantt, Lead Time, Throughput Histogram, WIP Run - each with its own font-awesome icon. The ten views with no implementation yet get a real grey page titled like their menu entry instead of a menu item that opens nothing. "Time spent summary" moves out of Statistics into its own new Time view. models/users.js's profile.boardView schema and boardHeader.js's tooltip name map both had to learn every new view or switching to one silently failed (the server rejected it with a 400, or the tooltip fell back to a generic label); tests/boardViewMenu.test.cjs now checks the menu, the schema and the tooltip map against the same view list.Group the Board View menu with separators and mark unfinished views. Thanks to xet7.
`` separators, matching the right sidebar's own hr-separated groups: one between Table and Calendar, one between Time and Statistics. The nine views with no implementation behind them yet (Burndown, Burnup, Cumulative Flow, Control, Cycle Time, Flow Efficiency, Lead Time, Throughput Histogram, WIP Run) show a hardcoded "(Name)" label instead of a translated one - translating them as if they were finished feature names, like every other entry, would not say in any language that the view behind them is just a grey placeholder page. Dashboard is left translated; it is not on the maintainer's list of nine.
Move Gantt between Statistics and Dashboard, mark Dashboard unfinished. Thanks to xet7.
Gantt moves next to Dashboard, with its own `` separator, matching the menu's existing grouping. Dashboard now carries the same hardcoded, untranslated "(Dashboard)" label the other nine not-yet-built views already had - the earlier entry above left it translated by oversight, which said the view was finished when it is a placeholder page like the rest of them.
Translate the Board View menu's "not implemented yet" labels. Thanks to xet7.
The two entries above hardcoded the English word itself inside the parentheses, so on an otherwise fully translated menu these ten entries read as a leftover bug rather than a "coming soon" marker - the page each one opens was already correctly translated, since its own title uses the same key. The literal parentheses are what say "not implemented yet"; the word inside them is now translated like every other entry, through the exact key the placeholder page's title uses.and fixes the following bugs:
CHANGELOG.md formatting.
Fix a wrapped changelog summary line. Thanks to xet7.
A `` line must be on one line - a wrapped one renders its second line as literal text instead of part of the link. changelogFormat.test.cjs already checked this; it was failing before this fix.
Calendar view - the toolbar.
Move all Calendar view toolbar buttons to the right of the title. Thanks to xet7.
Today/Previous/Next were their own group under the title, with the Day/Week/Month view toggles in a third, CENTER group that pushed everything onto a second row. All the buttons now sit together in one group on the right of the title, which stays alone on the left and is vertically centered against them - WeKan's global heading margin otherwise offset the title from that row.Login - OIDC redirect-style auto-login.
Fix OIDC auto-redirect looping until the provider rate-limits it. Thanks to Alishara and xet7.
With `oauth2-login-style: redirect` and `OIDC_REDIRECTION_ENABLED`, the browser looped between WeKan and the identity provider until the provider started rate-limiting the repeated `/authorize` requests. The auto-redirect fired unconditionally on every render of the sign-in page; Meteor's redirect-style OAuth has no dedicated callback route, so the identity provider's callback bounces the browser back to that same page, racing the asynchronous login completion - and a bounce-back render that still looked "not logged in yet" fired a brand new redirect straight back to the provider, forever. Fixed with a one-shot flag that survives the round trip and is cleared on login success/failure, so a later logout can still auto-redirect again.Swimlanes - resizing one shorter.
Fix dependency lines and collapsed lists bleeding past a resized swimlane. Thanks to xet7.
Two independent causes: `.swimlane.swimlane-resizing` forced `overflow: visible !important` for the whole drag, so a collapsed list (a fixed 540px tall) kept painting past a swimlane being dragged shorter, on top of the swimlane below it - now `hidden`. And the dependency-line ("red string") overlay only ever redrew on scroll or a window resize, never on a swimlane's own height changing, so a line kept stale coordinates from before the resize; it now recomputes on every height change and refuses to draw to/from a card with no on-screen area left once every clipping ancestor is accounted for - a line between two cards in the SAME shrunk swimlane disappears with the card, while one genuinely crossing into a different, still-visible swimlane is unaffected.Lists - the collapse caret, list width, and swimlane height.
Move an expanded list's collapse caret to its header's top corner. Thanks to xet7.
The caret rendered as a plain in-flow sibling before the title, on the row with the card count and the +/menu icons - visually unrelated to either. Nesting it inside the title heading was tried first and reverted: that heading opens the rename form on click, so the caret's click bubbled up and opened that instead of collapsing the list. Fixed by floating the caret to the START of the header's top line, the same line the hamburger menu already floats to the END of, so it lands level with that menu at the header's top corner - the left edge for LTR, the right for RTL.Stack "Same width for all lists" below "Auto list width". Thanks to xet7.
Both are `a` toggles in the "Set width" popup with no display rule of their own, so the browser default (inline) put them side by side on one crowded line instead of stacked rows like the rest of the popup.Hardcode list width to 240px and remove the width/height set-value popups. Thanks to xet7.
List width is now a single hardcoded constant (240px) applied to every list on every board for every viewer. This replaces the model built up over several past releases - a personal per-user width, a per-list shared width, a viewer-toggled "same width for all lists" mode and a viewer-toggled auto-width mode. All of it - the "Set width" list-menu popup just above, the board-settings "Personal list width" sidebar toggle, the drag-resize handle, and every schema field and Meteor method behind them - is removed rather than left dead. The "Set swimlane height" menu popup goes too, as a redundant text-input alternative to the working drag-resize handle from the swimlane-resize fix above; that drag handle itself is untouched. models/wekanCreator.js was still mapping the removed board fields on WeKan JSON import, which would have failed schema validation on any import; fixed as part of the same change.Board Table view - its toolbar: the pagination buttons, two toggle button tooltips, and vertical alignment.
Theme Board Table view's pagination buttons like the Search button. Thanks to xet7.
The prev/next page buttons were plain white with a grey border, unlike the blue "Search" button right next to them in the same control row - the two read as different UI families instead of one toolbar.Add descriptive tooltips to the Board Table view toggle buttons. Thanks to xet7.
The "wrap card titles" and "group by swimlane" toggle buttons had bare one-word tooltips that said neither what clicking them does nor which of the two states is currently on. Each now has a state-aware tooltip/aria-label, translated into every locale.Vertically center the Board Table view toolbar's controls. Thanks to xet7.
The search input, Search button, pagination buttons and the two toggle buttons sit in one flex row with align-items: center - but a flex child never shrinks below its own content's minimum height no matter what the container measures, so the Search button's bold label pushed it visibly taller/lower than the search input beside it. Every control now shares one explicit border-box height, so there is nothing left for align-items: center to fail to center.and adds the following import/export improvements:
Import/export formats - see docs/Features/ImportExport/Format-Coverage.md.
Add Markdown import/export and give GitHub-style import loss reporting. Thanks to xet7.
The GitHub/Gitea/Forgejo issue importer mapped only a title, description, one assignee and a due date, silently dropping everything else. It now also carries a second-and-later assignee, a milestone title, a non-"completed" state reason and embedded comments, and returns an `unsupported` list of what it genuinely could not place. Markdown is a new import/export format: the "## List name" / "- [ ]"/"- [x]" task-list convention several markdown-kanban tools use (Obsidian Kanban and similar) - a plain bulleted list with no checkboxes still imports as open cards. The export route serves plain `text/markdown` rather than JSON, since the point is a file readable/editable directly or opened by another markdown-kanban tool.and has the following developer-tooling fix:
GitHub Actions - the Windows single-EXE build.
Fix the Windows single-EXE smoke test failing with no error message. Thanks to xet7.
A downloaded run's logs (.tools/wekan10) showed the smoke test's success message print, immediately followed by "Process completed with exit code 1" - no thrown error anywhere in between. `taskkill.exe` (unlike a PowerShell cmdlet) sets `$LASTEXITCODE`, which `$ErrorActionPreference` does not touch, and `pwsh -Command` exits with whatever `$LASTEXITCODE` last held when the script itself never calls `exit`. `taskkill /IM ferretdb.exe` finding no matching process - a normal, harmless outcome by the second smoke-test run - was the LAST external command the whole step ran, so its "no such process" exit code alone failed the step. The same latent bug was in the "Free ports used by the packaged EXE" step's cleanup loop too; both now reset `$LASTEXITCODE` after every `taskkill` whose own exit code the workflow does not check.and adds the following developer-tooling feature:
Docker releases - keeping the registry overview pages in sync.
Sync the Docker Hub and Quay.io repository overviews from README.md on release (github.com). Thanks to xet7.
Docker Hub and Quay.io each show a long-form "overview"/description on the repository page, separate from the image tags, and neither registry updates it on its own - it silently drifts from what README.md actually documents unless something pushes it. release-all.yml's docker job now adds a step, after the multi-arch image is built, pushed and verified, that reads README.md and syncs it: to Docker Hub via its login-for-JWT-then-PATCH `full_description` API, and to Quay.io via its `PUT /api/v1/repository/{repo}` `description` API, reusing the same DOCKERHUB_AUTH/QUAY_AUTH secrets already decoded for `docker login`. GHCR needs no such call: a package linked to a GitHub repository (as ghcr.io/wekan/wekan is) already shows that repository's own README automatically. Each registry is synced independently, the same way the image push already tolerates one registry failing without blocking the others, and no token or JWT is ever echoed. The companion FerretDB fork's own `docker.yml` gained the identical step for wekanteam/ferretdb and quay.io/wekan/ferretdb. tests/dockerRegistryOverviewSync.test.cjs pins the new step's endpoints, request bodies, ordering and the no-plaintext-secrets rule.and fixes the following:
Release consistency and the Statistics view test - after the Meteor 3.5.2 upgrade and the Time view split.
Fix Dockerfile's Meteor release pin after the 3.5.2 upgrade. Thanks to xet7.
`.meteor/release` was bumped to `METEOR@3.5.2`, but Dockerfile's own `METEOR_RELEASE` still said `METEOR@3.5.2-rc.0`, so `tests/releaseVersionConsistency.test.cjs` failed with a version mismatch.Fix Statistics view test for the Time-view split. Thanks to xet7.
Time spent summary moved out of the Statistics view into its own Time view, leaving statsView.jade with one `.stats-view-table` section (board status) instead of two. The Playwright test still expected 2 tables and failed on every browser; updated to expect 1.Thanks to above GitHub users for their contributions and translators for their translations.