История версий «Plume — Micropub Client» – 8 версий
Plume — Micropub Client от Ricardo
История версий «Plume — Micropub Client» – 8 версий
Будьте осторожны со старыми версиями! Эти версии отображаются только для сведения и в целях тестирования.Вы всегда должны использовать последнюю версию дополнения.
Последняя версия
Версия 1.6.2
Выпущено 16 авг. 2026 г. — 61,43 КБРаботает с firefox 127.0 и вышеAdded
Drafts are reachable from the composer itself. They were only listed in settings, which is a long way from where you are when you want one. A 🗒 button now sits in the popup header beside the pop-out arrow, showing how many drafts this blog has, and opens them in place — picking one loads it into the composer without opening a tab or leaving the popup. Each row shows what the draft says, its post type, the site a reply or bookmark targets, and how long ago it was saved, with a × to delete. The control is a labelled chip reading "2 drafts" rather than an icon, since the notepad emoji has no glyph in some Linux font sets and degraded to an empty box. It is hidden when there are no drafts, so the header stays clean for people who never accumulate any. Drafts remain listed in settings, where they can be opened across accounts.Исходный код выпущен на условиях: Лицензия MIT
Старые версии
Версия 1.6.0
Выпущено 16 авг. 2026 г. — 60,54 КБРаботает с firefox 127.0 и вышеChanged
The post-type picker is now a vertical rail. It was a horizontal row with overflow-x: auto inside a 360px popup, so eight types meant a scrollbar and types that weren't visible until scrolled to. All eight now sit down the left as icon-above-label tabs, with the fields beside them. The popup goes from 360px to 420px so the writing column keeps the width it had rather than paying for the rail; pop-out mode needed no separate handling. Where a server advertises its own name for a type, that name is used, truncating with an ellipsis when longer than the built-in label — the full name is always in the tooltip.
Fixed
The debug log added in 1.5.0 recorded almost nothing. Every one of its call sites was a failure path and none covered posting, so the checkbox offering to record what Plume does produced an empty list. Worse, a post that failed outright called the error handler and returned without logging, so the crash that motivated building the log would not have appeared in it. The post lifecycle, popup open, account connected, per-step add-account failures and unavailable server config are now recorded; failures unconditionally, the rest behind the checkbox so an enabled log doesn't accumulate the URL of everything published.
Fields in the composer were wider than the popup. The URL and title inputs set width: 100% alongside their own padding without box-sizing: border-box, so they measured 16px past the column holding them — visible as clipping once the rail narrowed that column. border-box is now set once for the whole popup rather than per field, so a new field cannot reintroduce it.
Screenshots on the project site and in the README showed the previous horizontal picker. bun run screenshots also honours CHROME_PATH now, matching the E2E harness, so it can run where Playwright's bundled Chromium is unavailable.Исходный код выпущен на условиях: Лицензия MIT
Версия 1.5.1
Выпущено 15 авг. 2026 г. — 59,97 КБРаботает с firefox 127.0 и вышеFixed
Posting failed with syndicateTo?.includes is not a function whenever no syndication target was selected. Reported against a reply, which is the post type least likely to be syndicated, but it applied to every type. Three things combined: [] is truthy in JavaScript, so if (options.syndicateTo) sent "mp-syndicate-to": [] on every post where nothing was picked; mf2tojf2 collapses an empty array to an empty object (a single-element array becomes a string, longer arrays stay arrays); and the receiving server then called .includes on that object. It only surfaced on servers that have syndication targets configured, which is why it looked intermittent — selecting one target made it work, selecting none broke it.
Property values sent to the Micropub endpoint are now checked rather than trusted. category, mp-syndicate-to, photo, video, audio and extension properties were passed through from composer state unwrapped, though Micropub's JSON syntax requires every value to be an array. mp-syndicate-to is additionally reduced to uid strings and omitted when empty, since wrapping alone does not survive the server-side collapse to JF2. A coerced value is recorded in the debug log so the source of a bad shape can be found.Исходный код выпущен на условиях: Лицензия MIT
Версия 1.5.0
Выпущено 15 авг. 2026 г. — 59,56 КБРаботает с firefox 127.0 и вышеAdded
A welcome page on first install. Plume previously installed in silence, leaving people to work out that an account has to be connected before anything happens. welcome.html explains Micropub and IndieAuth in plain language rather than assuming IndieWeb familiarity, states the one real prerequisite up front — your site must support Micropub — and walks through connecting an account. Opens once, gated on a genuine install, so updates don't reopen it.
A debug log you can hand over. A 100-entry ring buffer, shown newest-first in settings with Copy and Clear. Errors are always recorded; everything quieter is behind a checkbox, so an enabled log stays readable while a disabled one still explains a failure. Entries are stripped to name, message, status, statusText, method and url, and access_token, code, code_verifier, refresh_token and state are redacted wherever they appear in a URL — a Micropub error can carry the request that produced it, including the Authorization header, and these logs exist to be pasted in public.
The add-account flow now narrates itself. Instead of one opaque "Authorizing…" spanning a permission prompt, endpoint discovery, a possible second prompt, a token exchange and an account write, every step is listed up front and marked waiting, active, done or failed. The extra grant step that delegated-IndieAuth servers need is added once discovery reports it.
Post types now use your server's own names. The ?q=post-types response finally reaches the type picker, so a server that calls articles "Journal entry" shows that.
Fixed
The type picker ignored server configuration entirely. TypePicker accepted an availableTypes prop and filtered on it, but the composer never passed one, so a response Plume already fetched and cached was thrown away. Types a server doesn't advertise are now dimmed with a tooltip rather than hidden or disabled: Indiekit only advertises types it has fields configured for, so absence means "not configured for that server's own UI", not "this post will be rejected".
Endpoint discovery had no timeout, so a site that never answered hung the add-account flow indefinitely. Both fetches now give up after 10 seconds.
Cancel was disabled while the add-account flow was busy, which combined with the above left no way out of the dialog. It is never disabled now.
Loading server configuration is a deliberately non-fatal step: a server with a broken ?q=config is reported in red but the account is still added, and the popup opens with a warm cache.
Changed
The client_id page declares literal redirect URIs instead of wildcards. The OAuth working group's position is that wildcards in redirect URLs open up attack vectors, and neither browser needs one — Chrome derives its callback host from the extension ID, and Firefox uses sha1(browser_specific_settings.gecko.id), so both are fixed and declarable. Measured from browser.identity.getRedirectURL() and confirmed against that hash.Исходный код выпущен на условиях: Лицензия MIT
Версия 1.4.0
Выпущено 13 авг. 2026 г. — 57,13 КБРаботает с firefox 127.0 и выше- draft notes can now be saved and then edit and published
Исходный код выпущен на условиях: Лицензия MIT
Версия 1.3.1
Выпущено 12 авг. 2026 г. — 57,24 КБРаботает с firefox 127.0 и вышеChangelog : https://github.com/rmdes/plume/releasesИсходный код выпущен на условиях: Лицензия MIT
Версия 1.3.0
Выпущено 17 июля 2026 г. — 56,58 КБРаботает с firefox 127.0 и вышеMulti-account featureИсходный код выпущен на условиях: Лицензия MIT
Версия 1.2.0
Выпущено 20 мая 2026 г. — 56,44 КБРаботает с firefox 127.0 и вышеMarkdown toolbar + preview in the composer. New toolbar above the textarea with buttons for bold, italic, link, bulleted list, numbered list, blockquote, inline code, and heading. Toolbar actions wrap the current selection (or insert a placeholder that becomes the next selection — VS Code pattern) and restore the cursor after Preact's re-render via a microtask scheduler.
👁 Preview toggle swaps the textarea for a rendered Markdown pane. Parsing uses snarkdown for the practical Micropub subset (paragraphs, headings, bold/italic, links, lists, code spans, blockquotes) and DOMPurify to neutralize any raw <script> / <iframe> / on*-handlers that might survive — important because the preview renders inside the privileged extension popup.
Lazy-loaded markdown machinery: snarkdown + DOMPurify (~27 kB combined) only download when the user clicks Preview. Cold popup-open cost grew by ~5.75 kB (toolbar component code) instead of the +32 kB that eager-loading would have cost.Исходный код выпущен на условиях: Лицензия MIT