The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
zotLocalQuery() waits for Zotero to finish writing. A
read retries for up to 10 seconds while the desktop client holds its
write lock, instead of failing at once with “database is locked”, and
fails with a zotLocalError naming that wait when the lock
outlasts it. The read-only connection no longer tries to set SQLite’s
synchronous mode, which raised the warning “Couldn’t set synchronous
mode”. zotLocalItems(), zotLocalRecords(),
zotLocalFiles() and zotStatus() read through
it.ztSemantic(), the zot semantic
command and the semantic plane of zotStatus() and
zot doctor; zotStatus() loses its
pythonPath and dbPath arguments and reports
four planes. The function queried an index built by the external
zotero-mcp-server through that tool’s Python interpreter,
which is no longer installed. The package no longer declares a Python
system requirement.URL field, the package help page, the README and the
citation.ztAttach() chooses the content type as Zotero’s desktop
client does: an extension table that covers Markdown, BibTeX, plain
text, HTML, CSV, JSON, office formats and images, then a text/binary
sniff of the first 1024 bytes. Text files are no longer stored as
application/octet-stream, a text/* file of
valid UTF-8 is stored with charset = "utf-8", and an empty
file is refused with a zotPlanError.attach action:
zotPreview() validates attach rows and reports the bytes
per library in counts, zotExecute() creates
the attachment item, saves its key as created, uploads the
file and confirms it, repeating only the upload when resumed, and
refuses a file changed since approval.
zotVerify(full = TRUE) re-reads attach rows.ztAttachPlan(), which builds an attach plan from
local files and omits files already attached to the same parent.zotConfig() accepts a fileTransport, which
ztAttach() and the attach action use, as
performer replaces the request transport.zotExecute() writes new ledgers with
schema = 2 and identifies existing items as
library:key. A ledger without a schema keeps its key-only
format when every id selects exactly one plan row; an ambiguous one is
refused without rewriting it.zotRequest() retries a POST only after rate limiting
(HTTP 429). A server failure on POST is returned without another write,
and zotExecute() keeps that outcome as an attempt; GET and
versioned PATCH keep their retries on HTTP 500, 502 and 503.zotVerify() also returns unfinished, the
plan ids without a done entry, and complete, whether all
plan rows are done and none of the checked rows is unconfirmed.zotStatus() gives the version
without the installation path.zotPreview() refuses three plan shapes that broke
execution: a create row carrying an item key, the same item twice in one
library, and a payload carrying key or
version. Each made a batch fail or repeat silently.zotExecute() recalculates the plan’s digest, so a
preview edited after its approval is refused instead of written under
the old consent.zotExecute() records every row as an attempt before its
effect and writes the ledger atomically, so an interrupted batch stays
resumable and stops on the row whose outcome is unknown with a
zotLedgerError.collections, tags
and relations as sets, so a read-back differing only in
order no longer reports a successful write as failed.zotVerify(full = TRUE) re-reads every completed row,
including creates and Trash, and returns the ledger ids that did not
confirm in unconfirmed.zotWriteBatch() and
zotReadBatch() persist plans, previews and approvals as
JSON and recalculate a preview’s digest on read.zotLibraries(),
zotCollections() with paths, zotItems() by key
in batches of fifty, and zotListItems(), a bounded listing
that refuses to exceed a declared size and detects a library version
change between pages.zotLocalRecords() with the identity
fields of every record and zotLocalFiles() locating
attachment files in local storage.zotIdentity() maps any record
shape to the fields zotSameItem() compares, and
ztMatches() judges candidates against a set of
records.ztTemplate() and ztCheckPayload() to
validate a create payload against its item type template, and
zotStatus() to probe the package, credentials, Web API,
local database and semantic sidecar.\donttest{}
with prerequisite checks.zotConfig() to accept a Zotero user identifier
and API key explicitly, with defaults from
ZOTERO_LIBRARY_ID and ZOTERO_API_KEY.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.