Skip to content

Releases: Moonweave-Research/zotero-vocab-flow

v0.1.5 — Translation and note workflow hardening

Choose a tag to compare

@moonweave moonweave released this 26 Jul 09:03

Highlights

  • Bounded translation batches save successful partial progress.
  • BYO translation endpoints enforce HTTPS or loopback HTTP and retry transient failures.
  • Generated-note duplicates fail closed.
  • Annotation provenance and normalized candidate extraction are preserved.
  • HTML note parsing and cleanup failure handling are more resilient.

Verification

  • 146 unit tests pass.
  • TypeScript typecheck passes.
  • npm run release:check passes.
  • Zotero 9.0 through 9.0.x compatibility is unchanged.

SHA-256: 7220c70903bc1a3fd2977ca91ad3b0c0d2b84d1baa70e30bdb61b60a80366395 zotero-vocab-flow.xpi

v0.1.4

Choose a tag to compare

@moonweave moonweave released this 26 Jul 05:40
b98fdb4

Zotero Vocab Flow v0.1.4

First stable public release for the Zotero 9 vocabulary workflow.

Included

  • Candidate extraction from selected underline colors, the vocab annotation tag, or all underlines.
  • Reviewable candidate notes with persistent exclusions before final wordbook creation.
  • Manual Korean meaning preservation during regeneration and optional translation.
  • Optional google-free, OpenAI-compatible BYO API, Gemini BYO API, and Claude/Anthropic BYO API translation aids.
  • Bounded free-translation cache, failure backoff, obvious-output rejection, and cache clearing.

Verification

  • 138 unit tests pass.
  • TypeScript typecheck passes.
  • GitHub Actions CI passes on the release commit.
  • XPI archive generation is deterministic across local and CI environments.

SHA-256: 11fe4dee907fee59a4bb40badc1d99d45cca8d0dc32617de82dcdf69a017cde0 zotero-vocab-flow.xpi

Limits

  • Candidate quality remains heuristic and should be reviewed before acceptance.
  • Translation aids are optional and may return inaccurate results.
  • BYO providers can receive terms and optional underline context when explicitly configured.

v0.1.4-beta.1

v0.1.4-beta.1 Pre-release
Pre-release

Choose a tag to compare

@moonweave moonweave released this 21 Jun 00:59

Release Notes - v0.1.4-beta.1

Summary

v0.1.4-beta.1 optimizes the optional google-free translation aid. Translation remains disabled by default and still only fills blank Korean meaning cells.

Changes

  • Reuses filled meanings from the current generated wordbook before making google-free requests.
  • Stores successful google-free translations in a bounded Zotero preference cache.
  • Prefers user/manual meanings over free-provider cache entries.
  • Skips repeated failed/rate-limited/rejected free translation requests for 24 hours.
  • Rejects obviously bad free-provider output, including unchanged source terms, HTML, URLs, and overly long text.
  • Adds a user-facing 무료 번역 캐시 비우기 menu command.

Verification

  • npm run test:unit
  • npm run typecheck
  • npm run build
  • npm run release:check

Artifact

Download zotero-vocab-flow.xpi from the GitHub prerelease asset for v0.1.4-beta.1.

SHA-256: d7f4d55dbbbd8702aa903503f53475f5834b7a8a63f7f9b1aeec1254448c4bf0 zotero-vocab-flow.xpi

Limits

  • google-free is still an inaccurate review aid. It reduces repeated calls and obvious bad fills, but it does not make free translation reliable.
  • The free translation cache stores term-to-meaning pairs and failure metadata only. It does not store source context text.

v0.1.3-beta.1

v0.1.3-beta.1 Pre-release
Pre-release

Choose a tag to compare

@moonweave moonweave released this 21 Jun 00:22

Release Notes - v0.1.3-beta.1

Summary

v0.1.3-beta.1 expands the optional translation aid after candidate review. Translation remains disabled by default and still only fills blank Korean meaning cells.

Changes

  • Added direct Gemini BYO API translation configuration.
  • Added direct Claude/Anthropic BYO API translation configuration.
  • Kept OpenAI-compatible BYO API as the gateway path for OpenRouter, LiteLLM, local LLM proxies, and other Chat Completions-compatible endpoints.
  • Reduced avoidable google-free traffic by deduplicating repeated terms during one translation run.
  • Added provider expansion design notes, edge-case review, and tests for provider request shapes and menu wiring.

Verification

  • npm run test:unit
  • npm run typecheck
  • npm run build
  • npm run release:check

Artifact

Download zotero-vocab-flow.xpi from the GitHub prerelease asset for v0.1.3-beta.1.

SHA-256: d8f7bd76c37500169e5e39ec054354e8b4a552ea28c26ebfc39a40d50ffec620 zotero-vocab-flow.xpi

Limits

  • Gemini and Claude/Anthropic live calls require user-owned API keys and were verified locally with mocked provider responses, not paid API calls.
  • Automatic translation is still a review aid, not a dictionary-grade guarantee.

v0.1.2-beta.1

v0.1.2-beta.1 Pre-release
Pre-release

Choose a tag to compare

@moonweave moonweave released this 20 Jun 15:30

Release Notes - v0.1.2-beta.1

Date: 2026-06-21

Summary

v0.1.2-beta.1 closes the remaining public-stable readiness gaps from the beta audit: representative paper-style candidate fixtures, translation UX decision, and release artifact/checksum process.

Changes

  • Added representative paper underline fixtures for materials, biomedical, and machine-learning prose.
  • Added phrase extraction for near-infrared irradiation, single-cell RNA sequencing, microglia activation, and attention maps.
  • Filtered additional prose-glue words from candidate extraction: showed, under, after, evaluated, and across.
  • Documented the stable translation UX decision: translation remains a menu-only experimental aid, default off, with settings pane deferred until provider configuration grows.
  • Added docs/RELEASE_PROCESS.md covering beta/stable artifact naming, SHA-256 publication, GitHub/update-manifest trust model, and CI/local release gate equivalence.
  • Extended npm run release:check to verify that the release process document defines the artifact and checksum policy.
  • Marked the public-stable checklist items complete.

Verification

  • npm run test:unit
  • npm run typecheck
  • npm run build
  • npm run release:check

Install

Download zotero-vocab-flow.xpi from the GitHub prerelease asset for v0.1.2-beta.1.

SHA-256: 8a50ddd214c9fcf129c22ac520524a711b820ed10394d9e1b0ede494297c8e60 zotero-vocab-flow.xpi

Vocab Flow v0.1.1-beta.1

Pre-release

Choose a tag to compare

@moonweave moonweave released this 20 Jun 14:24

Vocab Flow v0.1.1-beta.1 Release Notes

Date: 2026-06-20

Summary

Vocab Flow v0.1.1-beta.1 is a packaging and update-distribution prerelease. It keeps the v0.1.0-beta.1 workflow behavior and replaces the inert update URL with a real Zotero update manifest path.

What's Changed

  • Added updates.json for Zotero's JSON update manifest flow.
  • Pointed addon/manifest.json at the repository-hosted update manifest.
  • Added release-check coverage for update URL, update manifest version, update link, compatibility bounds, and XPI SHA-256 hash.

Verification Evidence

  • Unit tests: npm run test:unit -> passing.
  • TypeScript: npm run typecheck -> passing.
  • Build: npm run build -> passing.
  • Release gate: npm run release:check -> passing.

Known Risks

  • Existing v0.1.0-beta.1 installs still contain the old inert update URL. Users need to install v0.1.1-beta.1 once before future Zotero update checks can use the real update manifest.
  • GitHub prerelease assets remain the distribution channel; formal signing/distribution is still tracked separately.

Vocab Flow v0.1.0-beta.1

Pre-release

Choose a tag to compare

@moonweave moonweave released this 15 Jun 10:49

Vocab Flow v0.1.0-beta.1 Release Notes

Date: 2026-06-15

Summary

Vocab Flow v0.1.0-beta.1 is a Zotero 9 plugin prerelease for researchers who want to turn intentional PDF underline annotations into a reviewed vocabulary note. It follows the original v0.1.0-beta prerelease without moving the existing tag.

The core workflow is:

  1. Mark vocabulary-worthy terms with a chosen underline color or the vocab annotation tag.
  2. Build term candidates.
  3. Review and exclude noisy candidates.
  4. Save selected candidates into a final 단어장 (...) note.
  5. Optionally fill blank Korean meanings with a configured translation aid after review.

What's Included

  • Color-specific candidate extraction for green, yellow, blue, purple, red, and gray underline annotations.
  • vocab annotation-tag extraction for users who need a semantic marker independent of color.
  • Advanced all-underlines extraction for legacy/bulk review.
  • Candidate review notes with source context and Review before translation guidance.
  • Exclusion persistence through 제외, x, and legacy exclusion tokens.
  • Final vocabulary notes with 용어 (Term) and 한국어 뜻 (Korean meaning) columns.
  • Optional translation aids that fill only blank Korean meanings after opt-in: inaccurate free google-free, or OpenAI-compatible BYO API with a context-send toggle.
  • Data-safety ownership markers so generated notes are handled separately from user notes.
  • A real 48px plugin icon, with SVG source kept in addon/icon.svg.

What This Release Does Not Promise

  • It is not a stable public release.
  • It does not treat every underline as final vocabulary by default.
  • It does not edit PDF annotations or user notes outside generated Vocab Flow blocks.
  • It does not guarantee dictionary-grade or context-perfect Korean translation.
  • It does not guarantee research-term quality, availability, rate limits, or long-term stability of any external translation provider.
  • It does not yet include a full settings pane; BYO API setup is still menu/prompt based.

Verification Evidence

  • Unit tests: npm run test:unit -> 110/110 passing.
  • TypeScript: npm run typecheck -> passing.
  • Build: npm run build -> passing.
  • Release gate: npm run release:check -> passing.
  • Installed Zotero runtime callback verification covered green candidate generation on item 9761, candidate acceptance, final note creation, OpenAI-compatible BYO translation callback against a localhost mock endpoint, cleanup, and DB read-only cleanup checks.
  • Installed Zotero runtime label verification covered the current translation-aid and candidate menu labels.
  • Latest default-profile XPI hash at release prep: ed59c077c289b985b8ebf1f46d33caec3cbeafcc0ea0b35c94f6756c8b5d0afe.
  • Final cleanup verification found no active generated Vocab Flow notes in the live Zotero DB: active_candidates=0, active_words=0, active_any=0.

Known Risks

  • Candidate quality is heuristic and may miss domain terms or keep weak terms.
  • Positive annotation-level runtime coverage is strongest for green/all-underlines workflows; other color menus are registered and labeled but need broader real-annotation fixtures before a stable release.
  • Translation is intentionally framed as a weak aid. Users should review meanings manually.
  • Release QA used a localhost OpenAI-compatible mock endpoint, not a paid production API call.
  • BYO API keys are stored in Zotero preferences, and context sending can transmit stored underline text to the configured external API.
  • The manifest currently keeps an inert update_url because Zotero 9 install behavior was validated with that shape during local testing.

Vocab Flow v0.1.0-beta

Pre-release

Choose a tag to compare

@moonweave moonweave released this 04 Jun 11:58

Vocab Flow v0.1.0-beta Release Notes

Date: 2026-06-03

Summary

Vocab Flow v0.1.0-beta is a Zotero 9 plugin preview for researchers who want to turn intentional PDF underline annotations into a reviewed vocabulary note.

The core workflow is:

  1. Mark vocabulary-worthy terms with a chosen underline color or the vocab annotation tag.
  2. Build term candidates.
  3. Review and exclude noisy candidates.
  4. Save selected candidates into a final 단어장 (...) note.
  5. Optionally fill blank Korean meanings with the experimental translation aid.

What's Included

  • Color-specific candidate extraction for green, yellow, blue, purple, red, and gray underline annotations.
  • vocab annotation-tag extraction for users who need a semantic marker independent of color.
  • Advanced all-underlines extraction for legacy/bulk review.
  • Candidate review notes with source context and Review before translation guidance.
  • Exclusion persistence through 제외, x, and legacy exclusion tokens.
  • Final vocabulary notes with 용어 (Term) and 한국어 뜻 (Korean meaning) columns.
  • Optional experimental translation aid that fills only blank Korean meanings.
  • Data-safety ownership markers so generated notes are handled separately from user notes.
  • A real 48px plugin icon, with SVG source kept in addon/icon.svg.

What This Release Does Not Promise

  • It is not a stable public release.
  • It does not treat every underline as final vocabulary by default.
  • It does not edit PDF annotations or user notes outside generated Vocab Flow blocks.
  • It does not guarantee dictionary-grade or context-perfect Korean translation.
  • It does not guarantee availability, rate limits, or long-term stability of the google-free translation endpoint.
  • It does not yet include a full settings pane or multiple translation providers.

Verification Evidence

  • Unit tests: npm run test:unit -> 80/80 passing.
  • TypeScript: npm run typecheck -> passing.
  • Build: npm run build -> passing.
  • Installed Zotero runtime callback verification covered candidate generation, candidate acceptance, final note creation, cleanup, and DB read-only cleanup checks.
  • Installed Zotero runtime label verification covered the current translation-aid and candidate menu labels.
  • Latest default-profile XPI hash at release prep: 14b2fd416f5e2dd2abe0fcf0330bd51617682f6d52f34df9d3b6e5347e3a357d.

Known Risks

  • Candidate quality is heuristic and may miss domain terms or keep weak terms.
  • Positive annotation-level runtime coverage is strongest for green/all-underlines workflows; other color menus are registered and labeled but need broader real-annotation fixtures before a stable release.
  • Translation is intentionally framed as an aid. Users should review meanings manually.
  • The manifest currently keeps an inert update_url because Zotero 9 install behavior was validated with that shape during local testing.