github zsviczian/obsidian-excalidraw-plugin 2.23.4

latest release: 2.23.5
9 hours ago

New

  • Added session-scoped AI usage metering with per-model token/image tracking, a new "Session token usage" settings button with Markdown export, and an "AI Usage: input/output" button in ExcaliAI next to Run for quick access to the same breakdown.
  • Added an explicit opt-in for executing cmd:// links from drawings. Command links are now blocked by default, with a security warning prompt on first use and a dedicated setting under Excalidraw Automate.
  • Replaced the dropped-link title resolver from Iframely with an HTTPS oEmbed endpoint.
  • Hardened data URL embeddables: HTML loaded through data:text/html now renders in a sandboxed iframe with a defensive CSP to keep interactive content contained inside the embeddable.

Fixed

  • Fixed Taskbone OCR, which broke in 2.23.0.
  • Fixed inline link suggester in MindMap Builder failing when filenames included the "." (dot) character. #2772

New in ExcalidrawAutomate

  • Added getPathForImageFileId(fileId: FileId): string | null — returns the vault path for an image element identified by its Excalidraw fileId. Note: Excalidraw does not maintain a persistent index of fileIds to paths; the path is only available for images that have appeared in an open drawing during the current Obsidian session.
  • Gemini image models now expose provider-correct size presets in AI settings and ExcaliAI, with Google image requests automatically translating presets into Gemini aspect ratio and image size parameters.
  • Added three new ExcalidrawAutomate methods for AI token usage.
/**
 * Returns accumulated AI token usage for the current Obsidian session.
 * Usage is keyed by model identifier. Data is not persisted and resets on restart.
 */
public getAIUsage(): AIUsageData;

/**
 * Opens a modal showing per-model AI token usage for the current session.
 * Includes a "Copy as Markdown" button.
 */
public showAIUsageModal(): void;

/**
 * Returns a compact label string: "AI Usage: 355k/23k" (input/output tokens).
 * Appends image generation count when present, e.g. "+ 3 imgs".
 */
public formatAIUsageLabel(): string;

/**
 * Returns the vault path for an image file identified by its Excalidraw fileId.
 * Only available for images seen in an open drawing during the current session.
 * @param {FileId} fileId - The Excalidraw fileId of the image.
 * @returns {string | null} The vault path, or null if not cached in this session.
 */
getPathForImageFileId(fileId: FileId): string | null;

Don't miss a new obsidian-excalidraw-plugin release

NewReleases is sending notifications on new releases.