add(changelog): retrospective entry for 2025-07-19 substance commit

Seeds the changelog/ directory with a retrospective entry dated to the
first commit of substance in this repo, written in May 2026 from the
content-farm pseudomonorepo cleanup. The convention didn't exist when
the original work shipped; this entry exists so the upcoming GitHub
Content API roll-up loader has something from this plugin to surface
on the content-farm splash.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
mpstaton 2026-05-04 21:50:11 -05:00
parent 68edd23359
commit 6dba1202e7

View file

@ -0,0 +1,51 @@
---
date_created: 2025-07-19
date_modified: 2026-05-04
title: "Streaming Perplexity through a modal — Perplexed comes online"
lede: "Perplexed's identity moment landed July 19, 2025: the first time an API call to Perplexity ran through the plugin's modal and streamed responses back into the note. Not perfect, but real. Logged retrospectively from 2026 — the convention came after the fact."
publish: true
authors:
- Michael Staton
augmented_with:
- Claude Code on Claude Opus 4.7 (1M context)
files_changed:
- main.ts
- manifest.json
- package.json
---
## Why Care?
Streaming is the difference between an LLM-augmented tool that feels like part of your editor and one that feels like waiting for a foreign API. The first time tokens started arriving in the modal *as they were generated*, with citations slotting in alongside, was the moment Perplexed felt like a real research companion rather than a search-then-paste detour.
This is the retrospective for that moment.
## What's New?
(All historical, captured retrospectively. The forking and emergence: 2025-07-10 → 2025-07-19.)
- **`init(project): initial commit for Perplexed Obsidian Plugin with basic readme, manifest, package.json`** (2025-07-10) — Perplexed officially split from the shared cite-wide-lineage repo. The Perplexity-specific work that had been mixed in with citation work for a month finally got its own home.
- A week of structural work refactoring the modal to be search-and-stream-oriented rather than citation-transform-oriented.
- **`milestone(streaming): api-call to Perplexity as made through modal now works and streams responses back. Not perfect, but works!`** (2025-07-19) — the streaming loop closed end-to-end. The exclamation point in the commit message was earned.
## The arc
The pre-history is unusual. For about a month before Perplexed got its own repo, the Perplexity integration work lived inside what would become Cite-Wide. The earliest "milestone(perplexica): now hitting perplexica" commit (June 7, 2025) is in *both* repos' histories because they shared a parent.
That shared lineage made it hard to mature either feature. Citations want one kind of modal (input field, transformation logic, output preview). Search-augmented streaming wants a different kind (input field, streaming text region, citation pills as they arrive). Trying to do both in one plugin was a categorical mismatch.
The July 10 fork was the right call. Within nine days, the Perplexed-specific modal was streaming responses back from Perplexity's `sonar-pro` model, with the citation markers preserved as the stream arrived. That's the substance.
## What this enabled
Everything Perplexed has done since traces back to the July 19 streaming milestone:
- The two-tier modal architecture (TextEnhancementModal for the basic flow, TextEnhancementWithImagesModal for parallel text-and-image fetching) — both inherit the streaming response handler from this commit.
- The provider rebrand from Perplexity to Perplexica/Vane (documented in `context-v/issues/Updating-Naming-to-Reflect-Provider-Rebrand.md`) — the streaming layer survived the rebrand because it was already abstracted enough.
- Deep Research streaming, added in late August 2025 — built on the same streaming backbone.
## Retrospective notes
- Written 2026-05-04, ten months after the streaming milestone.
- The phrase "Not perfect, but works!" in the original commit message is exactly the right voice for a milestone commit. We've borrowed it informally as a status descriptor for many subsequent plugins.
- Some of the citation-modal commits visible in this repo's early history (the `iterate(modal): ...` series from July 78, 2025) are inherited from the shared lineage — that work properly belongs to Cite-Wide. Perplexed-specific work begins July 10.