Lossless Changelog
product

Cite Wide

lossless-group/cite-widemaster

2026-08-08 · 1 entry2026-07-24 · 1 entry2026-05-09 · 1 entry2026-05-02 · 2 entries2026-05-01 · 5 entries2025-06-07 · 1 entry2025-07-08 · 12 commits · 1,610 code2026-05-01 · 22 commits · 3,048 code · 4,641 context
Jan 20252026Sept 2026
  • colour = whenJan 2025 → Sept 2026

147 commits · +20,960 lines

Code
12k60%
Context
6k29%
Changelog
2k12%

Citations modal grows up

The 'Citations in Document' modal stops being a tall stack of identical-looking rows and becomes a genuine overview — wider, denser, more informational. You can scan twenty citations at once now, and the path from glance to action is one click instead of two.

Michael Staton

v0.2.0 — Ship v1 of LLM Response Parser: Paste Modal + Spec-Conformant Output

Closes the LLM-citation-parser feature to a true v1 ship. Three coordinated changes: a Paste LLM Content modal that intercepts at paste-time so the colliding-numerics problem never enters the file, a fix for Perplexity's `Title https://url` reference-def format that was being silently rejected by the refdef-body heuristic, and a spec-conformance pass on transformation output that brings inline citation spacing and reference-def body shape into line with the Lossless Citation Spec. Output now matches the spec on inline whitespace and refdef body shape; the canonical `date / author / publisher / accessed-date` envelope still requires network or AI assistance and is explicitly deferred.

Michael Staton
  • LLM-Citation-Parser
  • Paste-Time-Conversion
  • Spec-Conformance
  • Whitespace-Normalization
  • Markdown-Link-Refdefs
  • Perplexity-Format
  • +1

v0.2.0 — Assure Inline Citation Spacing for Obsidian Anchor-Link Behavior

Small but load-bearing cleanup to the standalone citation-formatting command: the old punctuation-only pass is now an anchor-link spacing pass. It still moves inline citations behind punctuation and preserves single-space separation across citation chains, but now also catches the more common real-world failure case where an already-Lossless `[^hex]` marker is attached directly to a word or bullet item with no intervening space. The command label was renamed from `Move Citations after Punctuation` to `Assure Spacing for Anchor Link behavior` to match what the transform actually guarantees: rendered citations remain clickable Obsidian footnote anchors with preview-on-hover and jump-on-click behavior.

Michael Staton
  • Citation-Formatting
  • Whitespace-Normalization
  • Obsidian-Footnotes
  • Anchor-Link-Behavior
  • Spec-Conformance

Dependency Refresh — Eight Packages Bumped to Latest Within Current Major, Build Verified Clean

First pass on package hygiene since the project's last broad upgrade. Eight dependencies advanced to the latest version within their current major (obsidian 1.8 → 1.12, esbuild 0.25 → 0.28, fastify 5.3 → 5.8, MCP SDK 1.12 → 1.29, both @typescript-eslint packages, builtin-modules, and @types/node held to the 22.x line to match the local Node 22 runtime). Four major bumps held back for review. The full build (`tsc -noEmit -skipLibCheck && esbuild production`) passes cleanly on the new lockfile.

Michael Staton
  • Dependency-Update
  • Package-Hygiene
  • Obsidian-Plugin
  • Build-Verified
  • Maintenance
  • Major-Bumps-Deferred

Type-Safety Pass — Eliminated All `any` Declarations, Retired Hand-Rolled YAML Parser, Gated ESLint Into Build

Five-commit refactor that brings the project from 14 explicit `any` declarations to zero, replaces a structurally broken regex-based YAML parser with Obsidian's native frontmatter APIs (metadataCache.getFileCache + fileManager.processFrontMatter), introduces a small set of boundary coercers for narrowing untrusted values, and wires an ESLint flat-config mirroring ObsidianReviewBot's rules into `pnpm build` so the rules that gate community-store submission now fire locally pre-push. Verified working in a live Obsidian vault.

Michael Staton
  • Type-Safety
  • Obsidian-Plugin
  • Boundary-Coercion
  • YAML-Frontmatter
  • ESLint-Flat-Config
  • Community-Store-Resubmission

Dedupe Citations by URL — Command, Modal, and URL-Normalizing Service for Consolidating Multi-Source Research Pastes

New 'Dedupe Citations by URL' command for the workflow where the same article gets cited under multiple hex IDs because research from Perplexity / Google AI / Claude was pasted into the same file across a session. The service finds reference-section entries that share an article URL (after normalizing host case, fragment, and tracking params), groups them, and rewrites the file so each unique URL ends up with exactly one canonical hex ID. The modal lists groups in document order with per-occurrence line links, default-checked checkboxes per group so the user can opt out of any false-positive match, and a single 'Apply Dedup' button that writes through app.vault.modify.

Michael Staton
  • Feature
  • Citation-Deduplication
  • Modal-UI
  • URL-Normalization
  • Multi-Source-Research-Workflow

Dependabot Cleanup + Tanuj-Intent Port — Removed 3 Unused Deps, Forced 4 Transitive CVE Patches, Ported Explicit Save Flow

Two-commit cleanup that eliminates the bulk of the 28 open Dependabot alerts on this repo and absorbs the intent of TanujKS's August 2025 work (which we force-pushed past in 2026-05-01_02 — his commits are archived on the auto-rescued `feature/save-all-citations` branch). First commit removes fastify, @modelcontextprotocol/sdk, and zod (zero imports across src/ and main.ts since they were added in 644582d) and forces patch/minor bumps on four surviving dev-tool transitive CVEs via pnpm.overrides. Second commit ports the explicit save flow — `autoSaveUrlCitations` setting (default off), 'Save All Hex Citations' command, modal-level 'Save All Hex (N)' button, per-citation 'Save to Citations' button — without any of his `any` types. Build clean throughout.

Michael Staton
  • Dependency-Cleanup
  • Dependabot-Alerts
  • Pnpm-Workspace-Isolation
  • Pnpm-Overrides
  • Citation-Canonicalization
  • Save-Citations
  • +2

v0.1.3 — LLM Citation Parser v1: Multi-Form Tokenizer + Modal-Driven Per-Cluster Review

Ships the first version of the LLM-citation-format converter that takes Google AI's `[1, 2, 3]` and Perplexity's `[1][2]` styles plus their `[N] [Title](url)` reference lists and rewrites them into the Lossless `[^hex]` footnote format. Pure-TypeScript service with token-level parsing, a CLI test harness for non-Obsidian validation, and a modal UI that gives the user per-numeric checkbox control plus per-row Convert buttons. Preserves already-Lossless citations verbatim, partially-converts multi-comma forms when only some members have ref defs, flags orphans and collisions, and refuses to transform anything where the multi-cluster collision rule would corrupt the result. Validated end-to-end against `ChromaDB.md` (the canonical messy test case mixing one Google-AI numeric series with 53 already-Lossless hex citations).

Michael Staton
  • LLM-Citation-Parser
  • Multi-Form-Tokenizer
  • Modal-UI
  • Per-Cluster-Review
  • Google-AI-Format
  • Perplexity-Format
  • +2

Hex citations, day one

Cite-Wide's identity moment: the first working hex-citation transform inside an Obsidian modal. The plugin we'd later spin into its own repo announced itself in commit f394ef7 — 'added hex citations to functionality.' Logged retrospectively from 2026 because the convention didn't exist yet when this happened.

Michael Staton