mirror of
https://github.com/lossless-group/perplexed-plugin.git
synced 2026-07-22 06:49:50 +00:00
docs(release): 0.1.1 release narrative
User-facing roll-up of the per-day changelogs covering the 0.1.0 → 0.1.1 span: Directory Templates paradigm (cf/cft codefence DSL, four shipped templates, auto-seeder, streaming + image-marker pipeline, anti-incumbent editorial stance), Claude as third research provider, redesigned wide modals, selection-anchored Find Images, cite-wide-compatible sources footer, and marketplace availability through the new community.obsidian.md portal. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0a016e2668
commit
de4b21ce1e
1 changed files with 140 additions and 0 deletions
140
changelog/releases/0.1.1.md
Normal file
140
changelog/releases/0.1.1.md
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
---
|
||||
title: "Perplexed 0.1.1 — From Research Modal to Per-Directory Content Workflow"
|
||||
lede: "Claude joins Perplexity and Perplexica as a first-class research provider, one template per directory now generates source-cited content across a whole folder, and shipped templates seed themselves into your vault on first install."
|
||||
date_authored_initial_draft: 2026-05-17
|
||||
date_authored_current_draft: 2026-05-17
|
||||
date_first_published: 2026-05-17
|
||||
date_last_updated: 2026-05-17
|
||||
at_semantic_version: 0.1.1
|
||||
status: Published
|
||||
category: Release
|
||||
tags:
|
||||
- Release-Narrative
|
||||
- Directory-Templates
|
||||
- Claude-Provider
|
||||
- Auto-Seeding
|
||||
- Per-Directory-Content
|
||||
- Obsidian-Community-Plugin
|
||||
authors:
|
||||
- Michael Staton
|
||||
augmented_with: Claude Code (Opus 4.7, 1M context)
|
||||
release_tag: "0.1.1"
|
||||
release_url: "https://github.com/lossless-group/perplexed-plugin/releases/tag/0.1.1"
|
||||
prior_release_tag: "0.1.0"
|
||||
release_commit: "0a016e2"
|
||||
---
|
||||
|
||||

|
||||
|
||||
## Why Care?
|
||||
|
||||
If you keep a knowledge vault — concepts, tools, vocabulary, source profiles — most of it never gets filled in. You stub a folder for every concept you encounter, every tool you evaluate, every term worth defining, intending to come back and write each one up properly. You never do.
|
||||
|
||||
Our Example: There are 1,600 nearly-empty profile files in your Toolkit folder, hundreds of concepts waiting in your concepts folder, vocabulary entries sitting at title-only. Filling them in one file at a time is untenable, even one at a time with LLM output. A generic "summarize this for me" pass on each file produces homogenous slop with no citations and no editorial point of view.
|
||||
|
||||
Perplexed 0.1.1 is the release where the plugin stops being a per-query research modal and starts being a per-directory content workflow. 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 the plugin streams source-cited content into every file in that directory (or a single file, or a folder batch), using Perplexity for research and routing the output through a citation pipeline that's already compatible with Cite-Wide's hex-citation format.
|
||||
|
||||
Hats off to [Text Generator](https://text-gen.com/) for the inspiration for this feature. Yes, we used Text Generator; though it was awesome, it wasn't quite the way we needed it to be.
|
||||
|
||||
The same release adds Claude as the third research provider alongside Perplexity and Perplexica, a first-run seeder that drops the four shipped templates into your vault automatically so you can see the format before writing your own, and Marketplace availability through the new community.obsidian.md portal.
|
||||
|
||||
## What's New?
|
||||
|
||||
### Per-directory content generation via templates
|
||||
|
||||
Drop a template file into a directory — one of the four shipped templates, or your own — and Perplexed can generate source-cited content for every file in that directory in one pass. The template uses a small **`cf` / `cft` codefence DSL** to describe what to research, what frontmatter to stamp, and how to format the output. Each `cf` block is a content-generation instruction; each `cft` block is a template that gets interpolated against frontmatter values in the target file.
|
||||
|
||||
The runtime applies the template via Perplexity research, **streams writes back into the file as the response arrives** (you see it appear in real time, not as a final block at the end), and stamps run-tracking frontmatter (`cf_last_run` timestamp + `cf_last_run_model`) so you can query for stale files later — *"which concept profiles haven't been refreshed since April?"* becomes a single Dataview query.
|
||||
|
||||
Four shipped templates cover the most common knowledge-vault shapes:
|
||||
|
||||
| Template | Lives in | What it fills |
|
||||
|---|---|---|
|
||||
| **concept-profile** | `concepts/` (or wherever you keep them) | A concept explainer with definition, history, examples, and editorial stance — biased against attributing the concept to tech giants when it actually originated in research labs, startup founder interviews, or earlier papers |
|
||||
| **vocabulary-profile** | `Vocabulary/**` | An innovation-consultant lens definition of a term — what it means, why it matters, what it's often confused with |
|
||||
| **source-profile** | `Sources/` or `Citations/` | A source dossier that handles articles, books (via Google Books URL harvesting), and other source types via nested type-handling |
|
||||
| **toolkit-profile** | `Tooling/**` | A profile for a tool, library, or service the vault tracks |
|
||||
|
||||
Each runs as **one file at a time**, a **folder batch** that walks every file in a directory, or in **append-below** mode that writes underneath existing content rather than replacing it.
|
||||
|
||||
### Anti-incumbent editorial stance baked into the prompts
|
||||
|
||||
The `concept-profile` template's system prompt explicitly instructs the model to treat tech giants (Google, Microsoft, Meta, OpenAI, Amazon, Apple) as adopters and popularizers — not originators — of concepts. The "Examples" section caps how many big-tech examples are allowed, and the prompts actively prefer startups, research-lab papers, and founder-interview attribution over the easy "X was invented by [big company]" framing that vanilla LLM output defaults to.
|
||||
|
||||
This is editorial discipline you can read in the prompt, not a hand-wave. If a concept genuinely originated at a tech giant, the prompt allows it; what it pushes back against is the laziness of always attributing.
|
||||
|
||||
### Auto-seeding — templates arrive with the plugin
|
||||
|
||||
Install Perplexed, open Obsidian, and the plugin's first-run seeder drops the four shipped templates plus a README explaining the format into your vault automatically. You can see the template format before writing your own, modify the shipped ones to taste, or ignore them entirely — the README is always re-ensured on plugin load (so updates land), but the templates are treated as user-managed after first deployment (so your edits aren't overwritten).
|
||||
|
||||
### Claude joins as the third research provider
|
||||
|
||||
Anthropic's Claude is now wired in alongside Perplexity and Perplexica via a dedicated **Ask Claude** modal. Uses the official Anthropic SDK with server-side `web_search` enabled, adaptive thinking, response streaming, and a two-pass citation extraction pipeline that handles both per-claim text-block citations (the structured citation objects Claude attaches to specific sentences) and bare `web_search_tool_result` fallbacks (the looser citation form Claude sometimes returns when it can't anchor a citation to a specific claim).
|
||||
|
||||
So your provider choices for any research command are now:
|
||||
|
||||
| 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 |
|
||||
|
||||
### Wide, consistent modals across all three Ask commands
|
||||
|
||||
The **Ask Perplexity**, **Ask Claude**, and **Ask Perplexica** modals now share a redesigned, wide, visually consistent UI. The wide-modal CSS technique (the `modalEl` rather than `contentEl` styling trick) means there's actually room for the streaming response to land in a readable column instead of a 480px-wide squeeze.
|
||||
|
||||
### Better Find Images — anchored to your selection, with strict domain filtering
|
||||
|
||||
The existing **Find Images for Selection** command now does **selection-anchored image discovery with paragraph-level placement**. Search results land near the text they relate to, not appended at the end of the document. A **strict domain filter** (`search_domain_filter`) rejects off-domain results so when you ask for images from `example.com` you get images from `example.com`, not whatever the image-search backend would have surfaced absent the filter.
|
||||
|
||||
### Sources Footer compatible with Cite-Wide
|
||||
|
||||
When the directory-template runtime writes a sources section, it emits the canonical `[N]:` reference-definition format (per the Lossless Citation Spec) so that running Cite-Wide's *Convert Numeric Citations to Hex* afterwards transforms them directly into stable `[^hex]` markers. The two plugins now compose cleanly: Perplexed generates, Cite-Wide canonicalizes.
|
||||
|
||||
A separator (`***`) is also emitted above the `# Sources` heading with proper blank-line spacing, so the footer reads as a deliberate section rather than appended noise.
|
||||
|
||||
### Sonar instructed to emit inline citations
|
||||
|
||||
When using Perplexity's Sonar models, the system prompt now explicitly instructs the model to emit inline `[N]` citation markers in the body of the response (not just in a trailing references list). Combined with the cite-wide-compatible sources footer above, the post-generation conversion to `[^hex]` markers is one command.
|
||||
|
||||
### Installable from the new Obsidian community portal
|
||||
|
||||
Obsidian retired the long-running PR-based submission queue (`obsidianmd/obsidian-releases`) in favor of a hosted portal at **community.obsidian.md**. Perplexed 0.1.1 is the first version published through the new portal — reachable from inside Obsidian via Settings → Community Plugins → Browse → search "Perplexed".
|
||||
|
||||
Sibling Lossless plugins shipped through the same portal-discipline pass: [`image-gin 0.2.2`](https://github.com/lossless-group/image-gin/releases/tag/0.2.2) and [`cite-wide 0.2.0`](https://github.com/lossless-group/cite-wide/releases/tag/0.2.0).
|
||||
|
||||
## Under the Hood
|
||||
|
||||
Each substantive piece of work shipped in 0.1.1 has its own per-day changelog under `changelog/`:
|
||||
|
||||
| Date | Topic | Per-day changelog |
|
||||
|---|---|---|
|
||||
| 2026-04-30 | **Claude provider integration** — Anthropic SDK + Ask Claude modal + web_search + adaptive thinking + streaming + two-pass citation extraction (per-claim text-block citations + bare web_search_tool_result fallbacks) | [`2026-04-30_01.md`](../2026-04-30_01.md) |
|
||||
| 2026-05-01 → 2026-05-02 | **UX pass** — modal redesign + wide-modal CSS unlock; consistent UI across Ask Perplexity, Ask Claude, and Ask Perplexica modals | [`2026-05-01_01.md`](../2026-05-01_01.md) |
|
||||
| 2026-05-02 | **Maintenance pass** — dependency refresh resolving Dependabot flags; streaming-citations bug fix | [`2026-05-02_01.md`](../2026-05-02_01.md) |
|
||||
| 2026-05-09 → 2026-05-10 | **Directory Templates paradigm** — the headline feature. `cf` / `cft` codefence DSL, four shipped templates (concept / vocabulary / source / toolkit), streaming + cleanup pipeline with `[IMAGE N: ...]` marker placement and fallback, anti-incumbent editorial stance, cite-wide-compatible sources footer, frontmatter run-stamps, Google Books URL harvesting for book sources, first-run seeder that drops shipped templates + README into the user's vault on plugin load | [`2026-05-10_01.md`](../2026-05-10_01.md) |
|
||||
| 2026-05-12 | **Marketplace compliance** — ObsidianReviewBot's recommended config; 73 sentence-case rewrites, four `fetch()` call sites refactored to `activeWindow.fetch` for `no-restricted-globals` compliance, `async` dropped on a callback and on `listTemplates` (no `await` expression), six unused catch bindings dropped to clear optional warnings; both local and bot-mirror eslint configs exit 0 | [`2026-05-12_01.md`](../2026-05-12_01.md) |
|
||||
| 2026-05-17 | **Marketplace-portal submission** — release tagged `0.1.1` at commit `0a016e2` on `main`, release published with `main.js` / `manifest.json` / `styles.css` attached as binary assets through the new community.obsidian.md portal (the old `obsidianmd/obsidian-releases` PR-based queue having been retired) | release commit `0a016e2` |
|
||||
|
||||
The original Perplexed identity moment — first streaming API call to Perplexity through the modal, July 19 2025 — is logged retrospectively at [`2025-07-19_01.md`](../2025-07-19_01.md).
|
||||
|
||||
## What's Next
|
||||
|
||||
- **More directory templates as the patterns emerge.** The four shipped templates cover the obvious knowledge-vault shapes (concept / vocabulary / source / toolkit), but real vaults have more — research-question profiles, decision-records, retros, company-dossiers, founder-profiles, etc. Each new template is a single file in the seeder's shipped set; the runtime infrastructure doesn't need to change.
|
||||
- **Per-template provider selection.** Right now the directory-template runtime defaults to Perplexity. A future pass could let each template specify its own provider (Claude for long-form reasoning templates, Perplexica for privacy-sensitive ones, LM Studio for cost-bounded batches) via the `cf` block frontmatter.
|
||||
- **Diff-aware regeneration.** Files with `cf_last_run` already stamped could be skipped on subsequent runs by default, with an explicit `--force` mode for refreshes. Right now every folder-batch run regenerates every file.
|
||||
- **Cite-Wide auto-invocation after directory-template runs.** The sources footer is already cite-wide-compatible (emits canonical `[N]:` format); the next step is an optional post-run hook that calls cite-wide's *Convert Numeric Citations to Hex* command automatically so the resulting file lands with `[^hex]` markers in one shot.
|
||||
- **Restore brand-name casing in user-facing strings.** The marketplace lint pass forced 73 sentence-case rewrites, several of which lowercased brand-name proper nouns mid-string ("perplexity api" instead of "Perplexity API"). The bot's default brand allowlist doesn't include the providers Perplexed integrates with; once Marketplace acceptance lands, the brand casing gets restored with a custom `eslint-plugin-obsidianmd` config (or a `/skip` justification on the PR, matching the discipline that image-gin used for its own brand allowlist).
|
||||
|
||||
## References
|
||||
|
||||
- **Release on GitHub:** https://github.com/lossless-group/perplexed-plugin/releases/tag/0.1.1
|
||||
- **Install from Obsidian:** Settings → Community Plugins → Browse → "Perplexed"
|
||||
- **Directory-Templates substance changelog:** [`changelog/2026-05-10_01.md`](../2026-05-10_01.md)
|
||||
- **Claude-provider integration changelog:** [`changelog/2026-04-30_01.md`](../2026-04-30_01.md)
|
||||
- **Modal UX-pass changelog:** [`changelog/2026-05-01_01.md`](../2026-05-01_01.md)
|
||||
- **Marketplace-compliance changelog:** [`changelog/2026-05-12_01.md`](../2026-05-12_01.md)
|
||||
- **Lossless Citation Spec (what the sources footer conforms to):** spec lives at `cite-wide/context-v/reminders/Lossless-Citation-Spec.md` in the sibling plugin
|
||||
- **Sibling-plugin releases shipped in the same marketplace-portal pass:** [`image-gin 0.2.2`](https://github.com/lossless-group/image-gin/releases/tag/0.2.2), [`cite-wide 0.2.0`](https://github.com/lossless-group/cite-wide/releases/tag/0.2.0)
|
||||
- **Upstream providers referenced:** [Perplexity](https://www.perplexity.ai/), [Anthropic Claude](https://www.anthropic.com/), [Perplexica / Vane](https://github.com/ItzCrazyKns/Vane), [LM Studio](https://lmstudio.ai/)
|
||||
Loading…
Reference in a new issue