Releases: pmslava/joplin-plugin-cockpit
Release list
v2.1.0
Multi-select now includes notes
Ctrl/Shift selection is no longer limited to to-dos — regular notes join the selection too, including mixed sets of both kinds.
- Batch actions work on the whole mixed selection: Delete, Move to notebook, Tags, Duplicate, and Switch type, with the count in the label.
- Scheduling stays to-do-only: dragging a mixed selection to a date or setting alarms applies to the to-dos in it; notes are left untouched.
- All the selection behaviors you know extend to notes: Shift-ranges across both kinds, ESC collapsing to the last-clicked row, the editor-following highlight.
- The read-only rows in the "outside current filters" / "excluded notebooks" sections open on click but can never enter a selection — so batch actions can't accidentally reach them.
Search resilience
- The suggestion list's filter box now survives background refreshes: if a sync lands while you're narrowing and marking tags, your filter text, cursor position, and marks all stay put.
- Android: your typed search and marked tags survive the app reloading the panel. Previously an Android-initiated reload could lose an uncommitted search draft.
- Fixed a rare case where a slow refresh could repaint the search field back to an older query.
- The clear × now commits exactly once.
Under the hood
- The end-to-end test lock shared between this plugin's sibling repos now queues politely behind a running suite instead of failing, with two race conditions in the lock protocol fixed.
v2.0.0
2.0.0
Pick several tags at once in the search box
Type tag: in the panel's search field and the suggestion list appears as before — but now you can take more than one.
- Ctrl+click a suggestion (desktop) or press and hold it (Android) to mark it. The list stays open.
- Keep marking as many as you like. Marked entries are highlighted.
- Press Enter, or the apply button that appears beside the filter box, to insert them all at once.
- Works the same for
tag:,notebook:andtitle:.
So tag:work tag:urgent tag:home is three taps instead of three rounds of typing.
A few details that make it comfortable:
- The list has its own filter box at the top — narrow it down, mark what you want, clear the filter, narrow it again. Your marks survive all of it.
- Only the bit you were typing is replaced. Everything else in the search box — other filters, plain words,
any:1— is left exactly as it was. - Names with spaces are quoted for you, and a tag that's already in the search isn't added twice.
- Escape steps back one stage at a time: first it clears your marks, then the filter box, then closes the list.
Search
- Suggestion lists are taller and scrollable (around 15 entries visible) with the filter box described above, instead of a short fixed list.
- Clearing the search box instantly shows all notes again — just delete the text, no Enter needed.
any:1works properly. Previously a search liketag:a tag:b any:1showed everything instead of notes matching either tag.- After you commit a search, the cursor returns to the search box, so you can keep editing.
title:offers more matches to choose from.
Android
- A search now applies as soon as you commit it. Previously you could pick a tag or press Enter and the list simply wouldn't filter.
- Worth knowing: the on-screen keyboard closes when a search applies. That's the search taking effect — the panel has to redraw to show the results.
- Press and hold a suggestion to start selecting several, then tap the others (see above).
- Clearing the search box works by deleting the text — Android doesn't show the small × that desktop has.
- If you ever hit a touch problem worth reporting, Settings › Cockpit › "Show a touch-gesture trace…" shows what the panel is seeing. Leave it off otherwise.
Interface
- New icons for the New note / New to-do buttons — the to-do button is now a circle with a checkmark, matching the rings on the rows.
- Those buttons shorten their labels instead of wrapping when the panel is narrow, so the top row stays on one line at any width and font size.
- The right-click menu closes when you click in the editor or anywhere else outside the panel, instead of staying open.
- The row highlight follows the note open in the editor, however you opened it — from Cockpit, the note list, or a link. It never joins a drag or a bulk action.
- With several rows selected, Escape leaves the last row you clicked selected rather than clearing the whole selection.
v1.9.4
Bulk actions on selected notes
Select several rows (Ctrl/Shift-click) and right-click: Delete, Move to notebook, Switch note/to-do type, Tags and Duplicate now apply to the whole selection, with the count shown in the label ("Delete 6 notes") so there are no surprises. Actions that only make sense for one note (Open, Copy link/ID) are greyed out instead of hidden. One refresh for the whole batch.
Notebook picker
- The notebook dropdown now opens up to two-thirds of the panel height and scrolls inside, so long notebook lists are usable.
- A filter field sits at the top: type part of a name ("fam" finds Family / Payments), press Enter to pick the first match.
- Escape closes the picker (and the profile and sort dropdowns too); with filter text, the first Escape clears it.
Both verified on desktop and Android with the full harness and real-app Playwright suites.
v1.9.3
Toolbar button
- The Cockpit panel toggle in the note toolbar is now optional. Show or hide it in Settings › Cockpit → "Show the Cockpit button in the note toolbar", or from Tools › Cockpit → Show/Hide Cockpit Toolbar Button. It applies after a Joplin restart, since Joplin can't add or remove a toolbar button while running.
- The panel toggle and the Cockpit settings entry now use a gauge icon in place of the calendar.
v1.9.2
Scheduling by drag and drop
- Drag one or more to-dos into the gap between rows to schedule them in between: a free day in the gap gets the day-start time; same-day gaps pick the nearest whole hour, then minute midpoints. Several dropped at once divide the interval into equal shares. Works in the Overdue group too.
- Dropping on a group heading (Today, Tomorrow, a date) now keeps each to-do's own clock time; to-dos without one get the new Day start time setting (default 09:00).
Alarm picker rework
- Two rows of quick buttons: Today, Tomorrow, Weekends, Next Monday and accumulating +hour, +day, +week, +month(day), +month(date) — repeated presses add up, absolute buttons reset.
- Multi-select alarms gained modes: keep each to-do's own schedule (shift from each one's own date/time — the default) or same date & time for all, with a live explanation line describing exactly what OK will do.
- Layout polish: time columns end flush with the calendar, buttons above the calendar, consistent fonts.
Search
- A last-resort tier finds notes hidden in excluded notebooks when nothing else matches, clearly labeled — and "no matches anywhere" is now only said when it is true.
- Search applies reliably on Enter and when picking an autocomplete suggestion.
Fixes
- Clicking anywhere on a row opens the note — no more dead zones near the borders.
- Text selection started in the note editor keeps extending when the pointer crosses the Cockpit panel.
- Plain to-dos (no checkboxes) show a small disc with a dark themed rim, clearly distinct from checkbox progress rings.
- A profile edit can no longer briefly show items the new filters should hide.
Verified by 194 harness checks and a 45-test Playwright suite driving real Joplin.
v1.8.0
Performance
- Ticking a to-do is instant and stable: one idempotent write, no flicker, no wait on the search index (also fixes
todo_completedbeing written as a boolean instead of a timestamp). - Profile switching paints immediately from cache; progress rings fill in the background, viewport first. The former worst case (hundreds of serial note-body fetches before first paint) is gone.
- New notes and to-dos appear immediately; new or renamed notebooks reach the picker within ~3 seconds.
- Background refresh work cut drastically: profile switches no longer trigger refresh cascades, note changes run one bounded reconciliation, overview notes regenerate debounced, sync no longer rebuilds the dataset to animate the icon.
New
- Results outside current filters: when a committed search matches nothing in the current profile, the panel shows what matches outside your filters — with notebook labels — so you can jump straight to the note.
- Excluded notebooks setting: hide notebooks (including all sub-notebooks) from Cockpit entirely — results, counts, overview notes, and the picker. Entered by name, tracked internally by id, so renames keep working; exclusion is pushed into the search engine so excluded content is never even fetched.
Fixed
- The search field now reliably applies on Enter, and picking an autocomplete suggestion applies immediately.
Full test coverage: 82 harness checks + 34 real-Joplin Playwright tests.
Cockpit 1.7.8
Fixes Dark appearance when Cockpit is set to Match Joplin theme.\n\n- Restores muted group headings.\n- Restores the neutral-grey selected note, to-do, and calendar highlight.\n- Preserves the high-contrast Light-theme fix.\n- Adds real-Joplin Light and Dark regression coverage.
Cockpit v1.7.7
Restores the established Dark preset appearance after the light-theme contrast fix.\n\n- Section headings such as TODAY and THIS MONTH are muted grey again.\n- Selected to-dos and calendar days use the former neutral-grey highlight again.\n- Light and Solarized Light retain their corrected high-contrast foreground/background pairs.\n- Adds focused harness and real-Joplin regression coverage for both Light and Dark.
Cockpit v1.7.6
Cockpit 1.7.6 fixes unreadable panel text in Joplin Light and Solarized Light themes.
- Pair the sidebar-style panel background with its matching foreground colour.
- Keep controls, menus, context menus, and overlays on their correct content palette.
- Apply custom text colours consistently to panel and content surfaces.
- Add harness and real-Joplin contrast regression coverage.
- Update the npm Trusted Publishing workflow for the Cockpit repository.
Cockpit v1.7.5
Full Changelog: https://github.com/pmslava/joplin-plugin-cockpit/commits/v1.7.5