Changed
- CI e2e sharding — the e2e workflow now distributes spec files into 36 shards (matching the GitHub Actions concurrent job limit) instead of creating one matrix job per spec file. The discover job distributes specs round-robin into shards; each runner executes 5–6 specs sequentially. This keeps the matrix well under the 256-job GitHub Actions cap as the test suite grows, while maintaining full parallelism across all available runners.
- CI:
.github/workflows/e2e.yml(discover job shards specs into 36 groups, e2e job iterates shard matrix)
- CI:
- Cross-platform e2e CI — the e2e workflow now runs the full sharded test suite on macOS (
macos-latest, ARM) and Windows (windows-latest) in addition to Linux. No virtual display setup needed on macOS/Windows — GitHub runners provide native GUI sessions.wdio-obsidian-servicehandles Obsidian download, ChromeDriver version matching, and platform-specific launch per OS.CSC_IDENTITY_AUTO_DISCOVERY=falseprevents macOS keychain prompts. 40-minute timeout per job accommodates slower runners. Windows shards retry up to 3 times onEPERMerrors fromobsidian-launcher's atomic file rename (Windows NTFS file locking duringonPreparedownload).- CI:
.github/workflows/e2e.yml(newe2e-cross-platformjob withos: [macos-latest, windows-latest]matrix, EPERM retry logic)
- CI:
Fixed
- E2e tests using
Key.CtrlsendCmdon macOS instead ofCtrl— WebDriverIO'sKey.Ctrlis a cross-platform abstraction that maps toCmdon macOS andCtrlon Linux/Windows. Vim keybindings like<C-w>and<C-t>require the physical Control key. Changed all vim-related test key dispatches fromKey.CtrltoKey.Control(the actual Control key on all platforms). This fixed 8<C-w>workspace navigation test failures, 2 which-key overlay test failures, and 1 OilC-ttest failure — all macOS-only.- Test:
test/specs/global-nav.e2e.ts(Key.Ctrl→Key.Controlfor<C-w>h/l/q/s/d) - Test:
test/specs/global-nav-plugin-leaf.e2e.ts(Key.Ctrl→Key.Controlfor<C-w>h) - Test:
test/specs/gmap.e2e.ts(Key.Ctrl→Key.Controlfor<C-w>hand which-key tests) - Test:
test/specs/gmap-vimrc.e2e.ts(Key.Ctrl→Key.Controlfor<C-w>bindings) - Test:
test/specs/oil-poc.e2e.ts(Key.Ctrl→Key.ControlforC-topen-in-new-tab)
- Test:
- Table nav scroll tests fail on macOS/Windows due to CM6 lazy widget rendering —
waitForTableWidget()was called before scrolling the cursor near the table. On platforms with smaller viewports, the table at line 33 of the fixture file was offscreen and CM6 didn't create.cm-table-widget(lazy rendering). Fixed by scrolling the cursor to line 31 (near the table) before waiting for the widget. Also removed overly strictscrollBefore > 0assertion that assumed the viewport couldn't display 31 lines (varies by platform/window size).- Test:
test/specs/table-nav-scroll.e2e.ts(reordered cursor positioning beforewaitForTableWidget, removed viewport size assumption)
- Test:
- Upgraded
@obsidian-typings/obsidian-public-latestfrom^6.32.0to^6.33.0— pulls in@obsidian-typings/obsidian-public-1.13.7@1.6.0which includes fullTableEditor,TableCell,TableRow,TableSelectionBounds,CellDirection,CellPosition,CursorPlacement, andTableAlignmenttype definitions. Replaced local runtime-discovered typings (ObsidianTableEditor,ObsidianTableCell,ObsidianTableRow) with the upstream types. Deletedsrc/types/table-editor.d.ts(247 lines).- Plugin:
package.json(dependency version bump) - Plugin:
src/types/table-editor.d.ts(deleted — replaced by upstream) - Plugin:
src/vim/native-table-adapter.ts(imports from@obsidian-typings/obsidian-public-latestinstead of local file) - Plugin:
src/vim/table-nav-controller.ts(imports from@obsidian-typings/obsidian-public-latestinstead of local file) - Plugin:
src/vim/table-cell-motions.ts(imports from@obsidian-typings/obsidian-public-latestinstead of local file)
- Plugin:
Documentation
CHANGELOG.mdAGENTS.md: addedTableEditor/TableCellto key typed APIs list; updated CI container image description to reflect sharding strategy; added cross-platform e2e CI description with EPERM retryCONTRIBUTING.md: removed deletedtable-editor.d.tsfromsrc/types/file tree; updated CI infrastructure paragraph to reflect sharding strategy, cross-platform runners, and Windows EPERM retry
Full Changelog: 0.123.0...0.124.0