Releases: weilr/zotero-scholium
Releases · weilr/zotero-scholium
Release list
v0.1.6
- A run that fails on the connection to Claude Code's or Codex's service before the agent used any
tool is tried once more after 30 seconds; Cancel ends the wait. - One-click runs leave out the user's MCP servers and hooks (Claude Code) and the user's MCP servers
and installed plugins (Codex, for the run's thread only); the user's skills stay. scholium status KEYshows a paper's PDFs, the annotations on them and its notes before a
configuration is written (--queryfinds the item);scholium samplesshows a few highlights,
margin texts and note openings of earlier runs as a style reference.- A top band without room across the text column goes into the strip above the first line, beside a
logo there; a band that still has no room reports how many characters fit and the font size at which
all of it fits. - The translation check no longer reports soft hyphens, Unicode hyphens or a hyphen between a number
and its unit as added content, and comments lose soft hyphens before they are written. - An empty message box in the Scholium section is as tall as its placeholder, which no longer runs
into the line below it. - The bridge plugin (Zotero 7–9) and the generated Run-JavaScript file remove the tool's earlier
annotations in the same transaction as, and after, the new ones: a failed write leaves them in
place. The Run-JavaScript file writes the text of underlines. - A run whose prompt or log cannot be written stops Claude Code; a failure while reading Codex's
messages ends its server and fails the run instead of leaving it waiting. When the plugin stops
before a run's process is running, the run does not start, and a process being created at that
moment is stopped at once. - The transcript box keeps no more entries than the transcript (3000).
- A margin box taller than the page allows, or in a margin narrower than a box (30 pt), gets a
layout_warning, and--applyrefuses to write whilelayout_warningsis non-empty, as for
style_warnings(--allow-warnings). Highlights and margin notes on rotated pages are reported under
missedand not written. - A sentence range (
ids) must start and end where its first and last sentences stand on the page;
otherwise it is reported undermissedinstead of highlighting the same text elsewhere. - Margin text on the page carries no tags:
<sub>and<sup>(in any case, with or without attributes)
become Unicode sub- and superscripts (dₖ, x²), or_and^where a character has none (π_ref); other
formatting tags are dropped, and a<sub>or<sup>without its closing tag is reported under
style_warnings. - Margin notes keep clear of text in the margins, such as the vertical arXiv stamp; in a one-column
paper a note takes the other margin when its own has text beside the paragraph. - The READMEs open with an animation of a one-click run and list the features in a table with an
example from that run for each, some of them animated. The command-line steps move to
docs/cli.md, which refers to the skill's reference files for configuration keys, write channels
and the profile; the development notes move toCONTRIBUTING.md; the safety and troubleshooting
sections are left todocs/design.mdand the skill's references.
The requirements, the skill and the plugin's installation notes name the Zotero setting that turns
on the local API.
v0.1.5
- The Scholium section also runs Codex: Agent chooses Claude Code or Codex, and the model list and
effort levels follow the chosen agent (for Codex, the model of itsconfig.tomlunless another is
chosen). Codex runs throughcodex app-server, the newest copy found on the machine, in its
workspace-writesandbox with<data dir>/tmp/scholium/as working directory; commands may write
only to the output folder, the profile folder and the folder of the tool's local API key, and may
use the network. Requests beyond the sandbox go to Codex's automatic reviewer, and questions that
reach the plugin are declined. The transcript, the state line, follow-ups, the usage-limit pause
and cancelling work as for Claude Code; each run is logged tocodex-run.jsonl, and a follow-up
continues with the agent that held the conversation. - The notice and the system notification at the end of a run show its last line a part per line,
without the note's title. - Delete annotations also moves the paper's reading notes tagged
zotero-scholiumto the trash;
other notes are kept.
v0.1.4
- The bundled plugin annotates papers with one click: Annotate in a Scholium section of the item pane (library
and reader side pane) starts the installed Claude Code in the background (claude -p, permission modeauto,
file writes pre-approved only in<data dir>/tmp/scholium/), one paper at a time. The section chooses the model
from the list Claude Code reports (the latest Opus unless another is chosen) and the effort (mediumuntil
another level is chosen, then the last choice); it cancels runs, shows the paper's state, and shows the process
as Claude Code does (text, tool calls, results, and the error of a failed run), live or from the saved log, in a
box resized at its lower edge. Notices at the start and the end close by themselves, and a system notification
reports the end; neither appears while the section is on screen. A paper that already carries the tool's
annotations is annotated again only after a confirmation, and every run is logged. - The Scholium section also takes extra instructions for a run and continues a paper's conversation with follow-up
requests (claude -p --resume). It shows each run's minutes, turns and tokens. When the usage limit is reached,
the queue waits, and the interrupted paper continues its conversation by itself after the reset. - Personal profile ↗ in the Scholium section edits the annotation profile
(<data dir>/zotero-scholium/profile.md) as Markdown in an editor over the Zotero window, beside a live preview.
Unsaved changes and a file changed elsewhere are confirmed before they are lost or overwritten; a missing profile
starts as the template. - Delete annotations in the same section permanently deletes the annotations tagged
zotero-scholiumon the
paper after a confirmation; other annotations and reading notes are kept, and a paper being annotated is left
alone.
v0.1.3
- The reader toggle applies to every reader at once and is remembered across tabs and restarts
(preferenceextensions.scholium-bridge.showAnnotations); the annotations are hidden until it is
first switched on. scripts/sync_local_skills.pyinstalls the latest release tag into local skill directories. Files edited there and a
directory's own SKILL.md are kept; it exits 1 while the released SKILL.md has changed since the own one was aligned
(--ackrecords the alignment).
v0.1.2
- The bundled plugin hides the tool's annotations in every reader view (tab, window, item-pane
preview) until the eye button in the reader toolbar is pressed. Each reader starts hidden and is
toggled separately; stored annotations are not changed. The plugin supports Zotero 7 and later;
its endpoints remain needed only on Zotero 7 to 9. - Sentence ids reject ambiguous substring matches and repeated ranges instead of silently selecting
another passage. Sentence caches carry the source PDF's SHA-256; changed PDFs and legacy caches
without a fingerprint require a fresh extraction. Extraction creates missing output directories. - Translation checks compare numeric values without dropping decimal points, signs or percent
markers, while accepting equivalent decimal, thousands and Chinese quantity-scale notation. - Annotation cleanup uses only current and legacy tool tags across the API, bridge and generated
JavaScript backends; matching text or empty comments no longer identify user annotations as owned. - The API creates new notes and annotations before cleaning up old items, reports creation failures,
and verifies newly created keys by reading them back. Failed or incomplete writes are not reported
as successful, and the skill reconciles stored items before retrying. - Read requests and safe writes retry transient failures. POST requests are not repeated after
timeouts or HTTP 500/503 errors, avoiding duplicate creation when a response fails after a commit. - The skill reviews the dry-run report before applying, preserves existing annotations for partial
additions, and passes task scope, language and preferences to batch agents with separate output
directories for each paper. - Translation comments contain only translations; reader judgements belong in margin notes and
reading notes. The skill entrypoint removes duplicated instructions and shortens its description. - Add 24 regression cases covering annotation ownership, write results, read-back and HTTP retries.
v0.1.1
- The
authorconfiguration key is removed: no author name is written, and repeated runs identify
earlier annotations by tag and identical content only. - The skill annotates one paper per agent context (a batch spawns one sub-agent per paper after
asking whether to run them in sequence or in parallel) and relies on the dry-run report instead
of preview images; a preview is opened only for a layout warning the report cannot resolve, and
preview_pagesstays at its default[1]. scholium extractprints the paper's text with page markers, de-hyphenated, without running
headers, footers, page numbers and the bibliography.- A highlight may give just the start and the end of a long span separated by an ellipsis; an
unmatched phrase is reported with the closest passage on the page, and"snap": trueaccepts
matches at similarity 0.95 or higher. A phrase or anchor that occurs more than once on its page
is annotated at the first occurrence and reported underambiguous_matches;occurrence: Non
the item selects the N-th appearance directly. - The translation check ignores mathematics and rich-text tags and accepts rejoined hyphenations;
comments may carry<sub>/<sup>, and reading notes may carry KaTeX math nodes. - The dry-run report gains
style_warnings(raw LaTeX and^/_{in comments, tags the reader
does not render, label-colon margin notes and arrows or circled numbers in them, hard line
breaks, phrases frombanned_phrases, duplicate or intersecting highlights, highlights over
annotations already in Zotero, a core-colour count outsidecore_range, note math nodes with a
double backslash or LaTeX outside a node) andcolors, the number of highlights per colour. --listprints the counts by type and colour, the annotations that are not the tool's own, and
the note titles;--list --fullprints every annotation.- Batch procedure of the skill: the coordinating context only dispatches one sub-agent per paper
and collects one line from each; the sub-agent performs the whole procedure including--apply;
reviews and corrections run in fresh sub-agents. scholium extract --sentencesnumbers the paper's sentences;highlights[]andsummaries[]name
sentences byid(oridsfor a consecutive span) and the tool supplies the text and the
coordinates.--applyrefuses to write whilemissedorstyle_warningsis non-empty
(--allow-warnings), and the report carries the PDF's SHA-256 before and after the run.- SKILL.md is reduced to the workflow; configuration keys, commands and report fields, write channels
and pitfalls, and the profile procedure move toreferences/configuration.md,
references/backends.mdandreferences/profile.md. scripts/measure_context.pyreports the token size of the skill files (CI limits the SKILL.md
body) andscripts/session_usage.pythe model calls and tokens of Codex rollouts and Claude Code
transcripts.- The release workflow publishes the version's CHANGELOG section as the GitHub release notes.