Skip to content

Releases: aznan-triks/trello-vault-sync

1.17.2

Choose a tag to compare

@aznan-triks aznan-triks released this 17 Sep 20:36

Fixed

  • Re-cut the release with the plugin files properly attached — 1.17.1 went out without them due to a packaging slip caught by the Obsidian community validator. No source change from 1.17.1.

Full Changelog: 1.17.1...1.17.2

1.17.1

Choose a tag to compare

@aznan-triks aznan-triks released this 17 Sep 19:27

Fixed

  • Fixed more findings from the Obsidian community validator on the new Changelog tab — a raw HTML heading is now a proper settings heading, and the changelog content is now built as real page elements instead of injected as a block of HTML text.
  • Patched a packaging gap where 1.17.0 was missing from the plugin's own version-compatibility table (versions.json).

Full Changelog: 1.17.0...1.17.1

1.17.0

Choose a tag to compare

@aznan-triks aznan-triks released this 17 Sep 04:36

Added

  • Plain: You can now read and search the full version history directly inside the plugin's settings via a brand new Changelog tab, with instant filtering between plain-English and technical descriptions, category badges, and a refresh button to pull the latest notes live from Git.
    Technical: Ported the Keep-a-Changelog parsing and display engine modeled after top-des-tops. Added src/core/changelog.ts with line-anchored voice block isolation (parseChangelogVoiceBlocks), safe markdown-to-HTML parser preventing inline code underscore mangling (renderChangelogMarkdown), and multi-criteria reactive filtering (filterAndGroupChangelog). In SettingsTab.ts, added the "Changelog" tab with live GitHub fetching via requestUrl, bundled offline fallback (src/core/bundledChangelog.ts synced via scripts/sync-changelog.mjs), interactive category chips (Added, Changed, Fixed, Removed, Security), view mode segmented control (All, Plain, Technical), sort toggle, version range selectors, and styled timeline cards under .tvs-cl-* in styles.css.

1.16.8

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 04:31

Added

  • Plain: "Linked cards" (the wikilinks a card-link attachment resolves to) now has its own on/off switch, separate from "Sync attachments" — you can keep plain attachment urls syncing while turning off the linked-card wikilinks.
    Technical: New syncLinkedCards: boolean setting (default true, matching the previous un-toggleable behavior). convergeAttachments (features/syncNote.ts) skips reading/writing the linked-cards key when off, without touching plain attachment urls or costing an extra Trello request. Toggle added to SettingsTab.ts right below "Sync attachments".

1.16.7

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 04:13

Fixed

  • Plain: A card's cover image was silently never reaching the note's frontmatter, no matter which sync settings you had on or off — this is now fixed, so the cover shows up as soon as "Sync card cover" is enabled.
    Technical: Trello's API was silently dropping cover.scaled (the image renditions coverImageUrl() reads) whenever the card request's fields parameter named an explicit whitelist instead of all — confirmed against the live API, see audits/AUDIT_cover-scaled-fields.md. CARD_FIELDS (src/trello/client.ts) now requests fields=all on getCard/getBoardCards/getListCards. trello_attachments was independently confirmed to never leak when syncAttachments is off (convergeAttachments stays gated on it, syncNote.ts).
  • Plain: Fixed two more findings from the Obsidian community validator — a redundant type check and an unnecessary style override, neither changing how the plugin behaves.
    Technical: Removed the unnecessary as unknown as Window type assertion in the timer-host fallback (asyncUtil.ts, client.ts) — the receiver's declared type already accepts global directly. Removed the redundant !important on .tvs-sidebar__search-clear.is-hidden in styles.css, where the compound class selector already outranks the base rule's specificity in the same stylesheet.

1.16.6

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 03:42

Fixed

  • Plain: Fixed community validator and linter findings across settings search filtering and timer hosts.
  • Technical: Replaced direct .style.display assignments in SettingsTab.ts with the standard .is-hidden CSS class satisfying obsidianmd/no-static-styles-assignment, eliminated globalThis identifiers in asyncUtil.ts and client.ts for pop-out-safe timer resolution across Obsidian and Vitest, and removed deprecated setDynamicTooltip() on the similarity slider.

1.16.5

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 03:36

Changed

  • Plain: The sidebar view opened via "Open Trello Vault Sync" has been completely redesigned into a compact, practical command center featuring real-time search, category filtering tabs, quick dry-run toggle at the top, semantic action cards, and a manageable activity journal.
  • Technical: SidebarView.ts replaces the vertical full-setting rows with a modern layout: header with quick settings shortcut and refresh button, status badges (connection and mappings count), top-level Dry-run toggle with real-time SIMULATION/LIVE mode badge, search input with instant matching and dynamic results counter (Found N actions), category pills (All, Active note, Folders, Vault) with count badges, compact accessible action cards with semantic tone icons (sync, pull, push, link, audit, history) supporting click and keyboard (Enter/Space) activation, and an activity journal with count badge and display-clear button. styles.css adds scoped styles under .tvs-sidebar*. All 24 commands from the registry are preserved and verified by an independent regression monitor agent and automated unit tests (tests/sidebarView.test.ts).
  • Plain: Fixed analyzer and linter findings across settings filtering and timer hosts.
  • Technical: Replaced direct .style.display assignments in SettingsTab.ts with the .is-hidden CSS class satisfying obsidianmd/no-static-styles-assignment, removed globalThis identifiers in asyncUtil.ts and client.ts for timer host resolution under Node and Obsidian, and dropped deprecated setDynamicTooltip() from the similarity threshold slider.

1.16.4

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 03:12

Added

  • Plain: A new "Auto-create report notes" setting (on by default) makes the audit commands create their report note the first time, instead of blocking with a "Report note not found" error.
    Technical: types.ts adds autoCreateReportNote: boolean (default true); requireReportNote (features/auditShared.ts) is now async and calls vault.create(reportPath, "") when the note is missing and the flag is on; auditChanges/auditLinks/auditLocations await it and forward options.autoCreateReportNote; main.ts passes settings.autoCreateReportNote into AuditOptions; SettingsTab.ts adds the toggle and drops the "It must already exist" wording from the three report-path descriptions.
  • Plain: You can now choose to replace the remote Trello image URL for a card's cover with a local link to the downloaded image file in your vault (either as a vault path or an Obsidian wikilink like [[Attachments/cover.jpg]]).
    Technical: types.ts adds preferLocalCover: boolean (default false) and coverLocalFormat: "vault-path" | "wikilink" (default "vault-path"); syncNote.ts runs convergeAttachmentDownloads before convergeCover, caches attachments on card.attachments, and checks for the downloaded file on disk (vault.binarySize), writing planned.path or formatWikilink(planned.path) when present, with automatic fallback to coverImageUrl(card.cover) when absent; SettingsTab.ts exposes "Prefer local cover" and "Local cover format" in the Sync Rules tab under "Attachments"; main.ts threads both options into noteOptions().

Changed

  • Plain: The settings tab is now organized into five clean categories (General & Scope, Sync Rules, Mappings, Automation & History, Advanced) with instant global search, compact mapping cards with collapsible override options, state summary badges, and an eye toggle to show or hide the API token.
    Technical: SettingsTab.ts introduces tabbed navigation (SETTINGS_TABS), instant live CSS search filtering (updateVisibility) preserving input focus without DOM rebuilding, mapping card layout with collapsible <details> for per-mapping create/delete overrides and status badges, token visibility toggle, and connection/mapping/auto-sync status badges without passive network calls. styles.css adds scoped styles for tabs, badges, mapping cards, and search feedback. All 48 settings, suggesters, and imperative display() compatibility are 100% preserved and verified by an independent regression monitor agent.

1.16.3

Choose a tag to compare

@aznan-triks aznan-triks released this 16 Sep 02:30

Fixed

  • Plain: A checklist section left over from a time when "Sync checklists" was turned on no longer leaks into the card's description on Trello, or gets wiped out, once you turn that setting back off.
    Technical: syncNoteWithCard (features/syncNote.ts) now always passes checklistHeading to extractBody/replaceBody, decoupling "split off the checklist section" from the syncChecklists toggle — only the active reconciliation against Trello's own checklists stays gated by the setting.
  • Plain: If your note's own text happens to contain a line matching the checklist heading (e.g. ## Checklist) before the real checklist section, the plugin no longer mistakes that line for the start of the checklist and overwrites everything after it.
    Technical: splitChecklistSection (core/noteBody.ts) now matches the LAST line equal to heading, not the first, consistent with the documented invariant that the checklist section is always the last thing in a note's body.
  • Plain: Cancelling a running sync while attachments are downloading now stops immediately instead of finishing the whole batch first.
    Technical: downloadAttachments (features/attachmentDownload.ts) now checks signal?.aborted at the top of its loop, matching the pattern already used by convergeChecklists/convergeAttachments/etc. convergeAttachmentDownloads (features/syncNote.ts) also now actually forwards its signal to downloadAttachments — it was never wired through before, so the new guard would otherwise have had no effect.

Bugs found and confirmed by re-reading the code against an external review (Grok) supplied by the user; three other claims from that review were checked and declined.

1.16.2

Choose a tag to compare

@aznan-triks aznan-triks released this 15 Sep 18:49

Fixed

  • Plain: Creating a note manually from a Trello card now warns you the same way a folder sync already does, if your template doesn't link the note back to its card — instead of silently creating an orphaned note.
    Technical: createInFolder (commands/createNoteCommand.ts, now exported for testing) calls templateMissingCardRefKey (core/template.ts) before createNoteFromCard and logs a "warn" via the run reporter — the same guard already wired in syncFolder.ts, previously missing from the manual "Create note from a Trello card" command.

Changed

  • Plain: The cover-image settings ("Sync card cover", "Cover key") now live under "Attachments" instead of their own separate section, since downloading the cover is really just a special case of attachment handling.
    Technical: SettingsTab.ts removes the standalone renderCover method and its call in display(); its two Setting blocks move into renderAttachments, and the section description is updated to mention the cover. No settings added or renamed, no behavior change.