lossless-group_perplexed-pl.../release-notes/0.1.2.md
mpstaton b1ff11c687 chore(release): 0.1.2 — workflow-driven releases + artifact attestations + package.json description alignment
Three things bundled:

1. Release workflow at .github/workflows/release.yml fires on every 3-digit-semver tag push. Builds main.js + styles.css in a clean Ubuntu runner, signs all three release assets via actions/attest-build-provenance@v1 (sigstore-backed via OIDC), creates the GitHub Release with notes pulled from release-notes/<tag>.md. Identical to the workflow landing across cite-wide, image-gin, metafetch as a family-wide pattern.

2. release-notes/0.1.2.md authored in marketing-shape per content-farm/context-v/skills/changelog-conventions/SKILL.md "These are marketing artifacts" section.

3. package.json description aligned with manifest.json. Previous package.json text "A plugin for Obsidian that allows you to generate source-cited content..." still contained the bot-flagged "Obsidian" + self-reference patterns that we'd already fixed in manifest.json; this synchronises the two so anything reading from npm-style metadata gets the same active-voice description users see in the directory listing.

Version bumped 0.1.1 → 0.1.2 across manifest.json / package.json / versions.json. No source-code changes — Directory Templates, the four shipped templates, the first-run seeder, the Claude integration, the wide modals all behave identically to 0.1.1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 03:11:03 -05:00

5.6 KiB

Perplexed turns Obsidian into a per-directory research workflow with Claude, Perplexity, Perplexica, and LM Studio — and starting with 0.1.2, every release asset is cryptographically attested back to the source code that built it.

Why care?

Knowledge vaults with thousands of stub files — concept notes, tool profiles, vocabulary entries — never get filled in one at a time. You stub them, you mean to come back, you never do. Eventually the vault has 1,600 nearly-empty profile files in Tooling/ and hundreds of concepts waiting in concepts/.

Perplexed lets you drop one template into a directory describing how its files should be filled in — what to research, what tone to take, what frontmatter to stamp, where the sources footer goes — and then runs source-cited research across every file in that directory in one pass. Pick your provider:

Provider Endpoint Cost Best for
Perplexity api.perplexity.ai Paid Source-cited research with consistent citation formatting
Anthropic Claude api.anthropic.com Paid Longer-form reasoning with web_search and adaptive thinking
Perplexica / Vane localhost:3030 (self-hosted) Free Privacy-sensitive research; runs entirely on your machine
LM Studio localhost:1234 (local) Free Local-only inference, no network

The streaming response lands directly in your notes with citations intact. Then Cite-Wide picks up the numeric citations and converts them to stable hex identifiers. The two plugins compose: Perplexed generates, Cite-Wide canonicalises.

Open Obsidian → Settings → Community Plugins → Browse → "Perplexed" → Install → Enable.

What 0.1.2 brings

Cryptographic provenance on every release asset. Every main.js, manifest.json, and styles.css in this release is signed via GitHub's artifact attestation system (sigstore-backed, OIDC-verified) at build time. The bytes you install can be traced back to the exact commit and GitHub Actions workflow run that produced them.

Verify any release asset before you enable the plugin in your vault:

gh attestation verify main.js --repo lossless-group/perplexed-plugin

Exit code 0 means the file came out of a legitimate build of the source repo. Anything tampered with mid-flight fails the verification.

This matters more for Perplexed than most plugins: the plugin handles your API keys (Perplexity, Anthropic, etc.) and the research it generates may include sensitive prompts about your work. Verifiable provenance answers "is the plugin I installed the plugin I think I installed?" with cryptography rather than faith.

What it changes for users

Installing from inside Obsidian: nothing visible. The Community Plugins directory pulls the latest release the same way it always has.

Auditing before manual install: verify before you drop files into <vault>/.obsidian/plugins/perplexed/. Same gh attestation verify command as above.

How the build pipeline works now

A GitHub Actions workflow (.github/workflows/release.yml) fires on every 3-digit-semver tag push. In a clean Ubuntu runner it checks out the tagged commit, runs pnpm build, signs the three release assets via actions/attest-build-provenance@v1, and creates the GitHub Release with marketing-shape notes pulled from release-notes/<tag>.md in the repo.

Provenance is enforced by infrastructure, not maintainer discipline. Manual gh release create from a developer's machine is no longer the path — every release goes through the workflow.

The Lossless Group plugin family

Perplexed sits alongside three sibling plugins, all by The Lossless Group:

Plugin What it does
Cite Wide Stable hex-identifier citations + URL-based dedupe + LLM-paste research conversion
Image Gin Recraft + Ideogram image generation, Magnific stock search, ImageKit CDN, drag-gate
Perplexed (this release) Source-cited research from Perplexity, Claude, Perplexica, or LM Studio + per-directory templates
Metafetch Pull OpenGraph metadata into note frontmatter via OpenGraph.io or Microlink

Together they form a research-to-publication pipeline: Perplexed generates the source-cited prose with numeric citations, Cite Wide rewrites them to stable hex identifiers, Metafetch fills the URL frontmatter with OG metadata, Image Gin generates the matching imagery. Each is independent; together they compound.

If Perplexed saves you time, buy us a coffee. The plugins are free; the coffee keeps the next one coming.

Under the hood — what shipped in this commit

  • .github/workflows/release.yml — the build-attest-release workflow described above. Identical structure to the workflows landing across cite-wide, image-gin, metafetch as a family-wide pattern
  • release-notes/0.1.2.md (this file) — the convention going forward: each release's marketing-shape body lives in the repo at this path before the tag is pushed
  • Version bumped 0.1.1 → 0.1.2 across manifest.json, package.json, versions.json
  • No source-code changes — Directory Templates, the four shipped templates (concept / vocabulary / source / toolkit), the first-run seeder, the Claude provider integration, the wide modals, all behave identically to 0.1.1