lossless-group_perplexed-pl.../release-notes/0.1.2.md

67 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

**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](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) (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:
```bash
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`](https://github.com/actions/attest-build-provenance), 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](https://lossless.group):
| Plugin | What it does |
|---|---|
| [**Cite Wide**](https://community.obsidian.md/plugins/cite-wide) | Stable hex-identifier citations + URL-based dedupe + LLM-paste research conversion |
| [**Image Gin**](https://community.obsidian.md/plugins/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**](https://community.obsidian.md/plugins/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](https://buymeacoffee.com/losslessgroup). 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