Conversation
* Clear contexts and blockedBy on empty-array updates
The frontmatter deletion pass in removeUnsetMappedFields only removed
the contexts and blockedBy keys when the update held a literal
undefined, which JSON cannot express. HTTP clients sending
PUT {"contexts": []} or {"blockedBy": []} therefore got a 200 with
the previous value silently left in place. Use the same hasOwnProperty
plus empty-array deletion pattern that projects and reminders already
use.
* docs: credit PR contribution
---------
Co-authored-by: callumalpass <callumalpass@gmail.com>
registerBasesTaskList retried registration five times with 200ms sleeps when the Bases plugin had not finished loading, and onload awaited the whole thing. On mobile, where plugin load ordering is less predictable, that could stall plugin startup for a full second. registerBasesIntegration already owns retrying: it schedules a timer that re-attempts until the views are actually registered, checks the Bases plugin is enabled before each try, and is torn down on unload. So drop the inner loop entirely and make registerBasesTaskList a single attempt that reports its result, leaving one retry mechanism instead of two. onload no longer awaits it either.
Avoid blocking plugin startup while Bases registration retries asynchronously.\n\nThanks to @tgrosinger for the contribution.
# Conflicts: # docs/releases/unreleased.md
Show the configured Google or Microsoft calendar name on event cards.\n\nThanks to @martin-forge for the contribution.
Normalize Google Calendar HTML descriptions to safe readable plain text.\n\nThanks to @martin-forge for the contribution.
…lumalpass#2191) Prevent moved recurring occurrences from rescheduling their replaced original date.\n\nThanks to @martin-forge for the contribution.
Keep occurrence-template filename suffixes visible while preserving collision and sanitization safeguards.\n\nThanks to @raphaelfaouakhiri for the contribution.
…allumalpass#2236) Reconcile externally added eligible tasks on startup without changing first-run baselining or duplicating linked events.\n\nThanks to @raphaelfaouakhiri for the contribution.
Record recurring skips against the acted-on occurrence rather than a view-wide date.\n\nThanks to @renatomen for the contribution.
# Conflicts: # docs/releases/unreleased.md
The desktop settings toolbar used justify-content with a fixed gap and the tab nav used overflow-x: auto with nowrap, so on constrained settings pane widths the final tab (Integrations, which hosts the Google Calendar OAuth connection) was clipped out of view entirely. Let the toolbar and tab nav wrap instead of scroll, pin the documentation link to the end via margin-inline-start: auto, and allow the nav to grow to a second line. Verified in the live test vault at a 520px settings width: all six tabs fully visible with no horizontal scrolling. Thanks to @nextstitch and @YongcaiHuang for reporting and confirming.
callumalpass#2255: Obsidian's virtualised reading view deletes direct children of .markdown-preview-sizer on every render pass, so the injected task card was removed per frame while scrolling and ReadingModeWidgetObserver re-injected it the next frame, producing continuous DOM churn that made notes visibly jump. The observer now defers re-injection until scrolling has settled (200ms quiet period, polled per frame), so the widget is restored once instead of fighting the virtualiser. Also dispose the injection scheduler on cleanup. callumalpass#2256: applyDefaultKanbanSwimLaneOrder fell back to alphabetical order for non-priority/status properties since swimlane ordering was added, discarding the encounter order that carried the Bases view sort. The default now preserves encounter order, so a formula/property sort like daysUntilDue floats the swimlane holding the top-sorted task to the top of the board again. Explicit swimLaneOrder JSON and priority/status defaults are unchanged. Live smoke in the test vault: two full scroll sessions of a 118-section task note produced 4 widget DOM events total (previously a continuous per-frame cycle) with the card restored after settling; a Kanban base sorting by formula.daysUntilDue with note.projects swimlanes ordered rows by due date. Thanks to @logicelf and @tsweezy for the reports.
Add context-menu completion date choices, optional submenu grouping, and confirmed recurring-instance reactivation on reschedule. Preserve recurring history on time-only edits and use recurrence instance identity in calendar menus. Thanks to @renatomen for the contribution.
Pedrohgv
force-pushed
the
fix/hide-linked-calendar-events
branch
from
September 1, 2026 09:33
7ebacc5 to
7b81d96
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Temporary sync PR to merge callumalpass/tasknotes@fe11e8f into fix/hide-linked-calendar-events and resolve stale conflicts for upstream PR callumalpass#2218.