Release Notes 1.0.10
New Features
Related Items in Library Note Templates
Library source note templates now have access to item.relatedItems — items linked to the current item via Zotero's Related tab (dc:relation). Each entry is resolved against ZotFlow's local database, so templates can render wikilinks, plain titles, or fallback placeholders depending on whether the related item has been synced.
Context fields per related item:
| Variable | Type | Description |
|---|---|---|
rel.key | string | Zotero item key (always present, parsed from the URI) |
rel.libraryID | number | Library ID parsed from the relation URI |
rel.resolved | boolean | true when the item was found in the local DB |
rel.title | string | undefined | Title of the related item (only when resolved) |
rel.itemType | string | undefined | Zotero item type (only when resolved) |
rel.citationKey | string | undefined | Citation key, e.g. from Better BibTeX (only when resolved) |
rel.notePath | string | undefined | Vault path of that item's ZotFlow source note (only when resolved) |
Cross-library or unsynced relations still appear in the list with resolved: false so templates can render placeholders rather than silently dropping them.
Example template snippet:
{%- if item.relatedItems.size > 0 -%}
## Related
{% for rel in item.relatedItems -%}
{% if rel.notePath -%}
- [[{{ rel.notePath }}|{{ rel.title }}]]
{%- elsif rel.title -%}
- {{ rel.title }} (`{{ rel.key }}`)
{%- else -%}
- `{{ rel.key }}` *(not synced)*
{%- endif %}
{% endfor -%}
{%- endif -%}
See the template guide for the full field reference.
Bug Fixes
"Update source notes" commands now process all library items
The Update all library source notes (skip up-to-date) and Force update all library source notes commands were silently doing nothing. The root cause was that the batch task expected an explicit item list from the caller, but the commands were passing an empty list, which the task treated as a no-op. Both commands now correctly enumerate every non-trashed top-level item across active libraries before scheduling the task.
The command names have also been updated to better reflect their behaviour:
| Old name | New name |
|---|---|
| Update all library source notes (incremental) | Update all library source notes (skip up-to-date) |
| Update all library source notes (force update) | Force update all library source notes |