🏡


  1. October 05, 2026
    1. 🔗 backnotprop/plannotator v0.28.3 release

      chore: bump version to 0.28.3

    2. 🔗 earendil-works/pi v1.0.3 release

      New Features

      • Azure Foundry Chat Completions — The azure provider (renamed from azure-openai-responses) now also serves Foundry Chat Completions deployments, starting with azure/deepseek-v4-pro. See Azure OpenAI.
      • Codemode images saved to files — image() also writes each image to a temp file and names the path in the result, so later turns can copy or move generated images. See Generate images.

      Breaking Changes

      • Renamed the Azure provider from azure-openai-responses to azure. Rename the provider key in auth.json (or run /login again), in models.json, and in settings.json (defaultProvider, enabledModels patterns, and modelThinkingLevels keys). Sessions that used the old provider fall back to another model when resumed, and their prompt cache is not reused. The AZURE_OPENAI_* environment variables are unchanged (#9714 by @jsanter27)

      Added

      • Added Azure Foundry Chat Completions deployments, starting with azure/deepseek-v4-pro (#9645, #9714 by @jsanter27)

      Changed

      • Codemode image() now also saves each image to a temp file and names the path in the result, so later turns can copy or move generated images (#10310)
      • Output files (full text of truncated tool output, binary MCP resources, codemode images) are now readable only by the user
      • Home/End now always move the editor cursor to the line start/end; fullscreen transcript top/bottom moved to Ctrl+Home/Ctrl+End, which no longer move the editor cursor (#10314)

      Fixed

      • Fixed subscription logins such as Sign in with ChatGPT failing with refresh_token_invalidated after a request was cancelled during an OAuth token refresh
      • Fixed codemode failing for the rest of a session after a pnpm global update removed the running install, and added a restart hint when errors occur after pi was updated or removed on disk (#10439)
      • Fixed interactive sessions reporting a read EIO or setRawMode EIO crash (and asking to run /bug) when the terminal went away, e.g. after closing the window or resuming a suspended pi in a closed terminal
    3. 🔗 backnotprop/plannotator v0.28.2 release

      Follow @plannotator on X for updates

      Missed recent releases? Release | Highlights
      ---|---
      v0.28.1 | Ask AI from diagram comments, pinned images named for the agent, OpenCode 1 URL toasts and one reply per feedback, folder feedback sent once
      v0.28.0 | Ask this session in Claude Code, Pi and OpenCode 2, Claude Code mod on by default, Pi plan review no longer blocks, first-run demo
      v0.27.25 | Code review works with color.diff = always, Bitbucket review fixes, wide tables no longer collapse in Firefox, install script fix
      v0.27.24 | Image previews stay in the all-files view, PR comment previews open on the commented line
      v0.27.23 | Bitbucket Cloud PR review, Question UI for answering agents in place, opt-in auto-update, viewed files remembered, review another repo or worktree
      v0.27.22 | Plans open the docs they link to, Claude review jobs locked down, Code Tour on Linux without Claude's sandbox, Pi reviews the latest plan
      v0.27.21 | Remote and phone sessions load several times faster, real Request changes on GitHub, model pickers show real names, OpenCode fixes
      v0.27.20 | Mistral Vibe support, annotate gets the full Options menu and Settings, jj Commits panel, long lines wrap in plan code blocks
      v0.27.19 | Before/After image previews in code review, file comments as GitHub file threads, forge-correct #123 links, /plannotator-last finds the right session
      v0.27.18 | Model pickers from your installed Claude and Codex (Opus 5.5, Fable 5.1, GPT-6), unsent PR review comments survive new pushes
      v0.27.17 | Diagram files open in the diagram viewer, OpenCode switches model with agent, idle review stops polling the git remote, Tree is the default review view

      What's New in v0.28.2

      v0.28.2 is a patch release with three pull requests, all from @backnotprop. It fixes question cards that cut off wrapped choices, makes image pins in HTML pages name the right file, and stops Done with nothing to send from starting an agent turn.

      Question cards show wrapped choices and block markdown

      Choices written as plain bullets that wrap onto several lines were cut at the first line, and the rest of each choice ended up in the question's text above the options. They now show in full: the first phrase is the label and the rest is the description. A Recommended: line that wraps is read as a whole, and a recommendation that names a choice in its first sentence marks that choice. Choices written as task-list items (- [ ]) split as before.

      The text of a question now renders like the rest of the document. Tables were a flat run of pipes; tables, lists, code blocks, quotes and images inside a question now look as they do in the plan or file. Comments on a table cell or code line inside a question attach to the question card and restore after a reload.

      Answers you saved on 0.28.1 still show the choice you picked, and a recommendation that names a lettered option (b. …) marks that option.

      #1699, #1702

      Image pins name the file the page shows

      When you pin an image in an HTML page, the feedback heading names the file the page displays even when the image has no src attribute. This covers srcset, lazy-loaded data-src images, <picture> and a video's poster or <source>. Before, the heading named nothing or a data: placeholder. Query strings are still dropped from the name.

      Comments made in the version diff are now listed after the document's other comments, in diff order, instead of first. Exports without diff comments are unchanged.

      #1700

      Done with nothing to send starts no agent turn

      Clicking Done in an annotate session with no annotations used to make the agent start a turn that read "User reviewed the document and has no feedback. Please address the annotation feedback above." That no longer happens on Claude Code (with the mod), Pi, OpenCode 1 and 2, Amp and Droid. The session closes, the host logs that nothing was sent, and the agent is not prompted. /plannotator-last behaves the same way.

      The Plannotator binary must be updated for this: the 0.28.0 and 0.28.1 binaries do not send the signal, so Claude Code, OpenCode's CLI bridge, Amp and Droid keep the old behavior until you run the install script. Pi and the OpenCode embedded runtime ship their own server, so the plugin update is enough. Hosts that run Plannotator through a skill (Codex, Gemini, and Claude Code with the mod off) still pass the same sentence on, unchanged. For scripts, annotate --json gains an additive nothingToSend: true field in this case; other output is unchanged.

      Counting is fixed too. In a folder annotate session, the "N comments" figure, the host record and the feedback history counted only the open document's comments. They now count every document's comments. The same fix applies to /plannotator-last with several messages selected, which also now includes comments posted by outside tools (agents, WebMCP); before, those were missing from the exported feedback. The feedback history records which document each comment belongs to.

      #1701


      Install / Update

      macOS / Linux:

      curl -fsSL https://plannotator.ai/install.sh | bash
      

      Windows:

      irm https://plannotator.ai/install.ps1 | iex
      

      Claude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:

      claude plugin marketplace update plannotator
      claude plugin update plannotator@plannotator
      

      Then restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.

      Pi:

      pi update --extensions
      

      OpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.

      What's Changed

      • fix(questions): plain-bullet choices keep their wrapped lines; question context renders block markdown by @backnotprop in #1699
      • fix(questions): answers saved under a 0.28.1 label still show their pick by @backnotprop in #1702
      • fix(export): image headings name the resolved file; diff comments sort after the document by @backnotprop in #1700
      • fix(annotate): a bare Done starts no agent turn on any plugin host; submits count every document's and message's comments by @backnotprop in #1701

      Full Changelog : v0.28.1...v0.28.2

    4. 🔗 OmniNull/OmniWM OmniWM v0.7.5 release

      What's New Since 0.7.4

      Bind extra mouse buttons, show notification badges on the Workspace Bar, and choose your tiling animation speed. OmniWM 0.7.5 also improves preview sharing, browser picture-in-picture, Quake shortcuts, and window lifecycle handling.

      Workspace Bar and mouse controls

      • Show notification badges. Display Dock notification badges as dots or text on Workspace Bar app icons, including expanded scratchpads. Badges are off by default; enable them in Settings > Workspace Bar and choose a refresh interval from 1 to 60 seconds.
      • Place the bar beside the notch. A new Right of Notch mode places the Workspace Bar just to the right of the notch and centers it on displays without a notch, with global and per-monitor controls.
      • Manage window marks from the bar. Mark or unmark a window from its icon menu, including individual windows inside grouped app icons.
      • Use extra mouse buttons as shortcuts. Settings > Hotkeys now records extra mouse buttons, alone or combined with Control, Option, Shift, Command, or Hyper, for assignable actions. A mouse binding replaces that action's keyboard binding; assigned presses are consumed so the app underneath does not also handle them.
      • Choose more wheel modifiers. Mouse-wheel column scrolling supports additional modifier combinations, including all four modifiers. Option + Shift remains the default. The four-modifier choice works with remappers that hold the actual modifier keys; OmniWM's System Hyper trigger does not add modifiers to wheel events.

      Layout and window behavior

      • Set tiling animation speed. Adjust Settings > General > Tiling Animation Speed (0.25× to 4×), or general.animationSpeed in settings.toml. The default preserves the existing motion, and Reduce Motion remains respected.
      • Fill underused Niri space. When fewer containers are open than the configured visible count, Niri expands them proportionally while respecting their relative sizes and application constraints. Manual resizing takes priority until the container count changes.
      • Open vertical Dwindle splits below. New windows now appear below the existing window for default vertical splits and centered Smart Split decisions. Explicit preselection directions are preserved.
      • Restore fullscreen column peeking. Niri keyboard navigation can bring the selected window in front of an overlapping layout-fullscreen window again.
      • Focus covered tiles without raising them. With raising enabled, Focus Follows Mouse skips raising a tiled window when a visible managed floating window overlaps it from the front.
      • Keep browser PiP visible across workspaces. Recognized picture-in-picture windows from Firefox, Zen, LibreWolf, Chrome, Brave, and Edge stay outside workspace management.
      • Handle withdrawn windows correctly. Windows an app withdraws without destroying no longer leave empty tiles or get unexpectedly refocused; they can rejoin their layout when shown again.
      • Keep borders in step with windows. Focus borders track closure and movement more reliably, and native corner geometry stays steadier during focus changes.

      Quake, Hidden Bar, and input reliability

      • Customize Quake shortcuts through Ghostty. Tab and pane actions now honor Ghostty keybindings, including remaps and unbinds. Quake also follows the system's window-corner preference.
      • Update Quake’s Ghostty engine. Uses Ghostty 1.3.2-main+b094a6ba3, including fixes for crashes when narrowing terminals containing wide characters and legacy Control + Option + Shift + Backspace encoding.
      • Use Notification Center while hiding menu-bar apps. Hidden Bar now uses native per-app visibility preferences. Its drawer attaches to the Workspace Bar, displays captured native menu-bar glyphs, and provides a nearby OmniWM menu button.
      • Preserve existing system key remaps. Enabling Caps Lock Hyper keeps unrelated key mappings intact and improves restoration after an unclean exit. Native API reads replace hidutil subprocesses: an optimized M4 Max / macOS 27.2 / Swift 6.4 benchmark measured 72.9 ms → 0.95 ms per read, about 77× faster.
      • Handle Secure Input changes. OmniWM now notices when Secure Input starts or stops and keeps shortcuts registered, so the ones macOS still delivers keep working; the indicator explains which ones it may withhold.
      • Avoid stale submenu openings. Moving away from a status-menu item no longer lets an already superseded hover open its submenu later.
      • Hotkey action labels are clearer, Page Up/Down shortcut glyphs are legible, and Smart Split help no longer incorrectly says it follows the cursor.

      Performance, previews, and automation

      • Remove repeated permission-check stalls. Overview scrolling and search, hover previews, swipes, and drags use cached Screen Recording permission. A native check measured about 9.3 ms on the main thread; a 96-second live debug session recorded no checks across 332 Overview scroll events, 118 hover-preview events, and four swipes. Permission refreshes when leaving System Settings.
      • Show shared previews sooner. Overview, Workspace Bar hover previews, workspace swipes, and drag ghosts share preview frames and window discovery. In a recorded live debug session, 14 of 15 hover requests and 19 of 22 Overview cards already had a frame ready. Sharing avoids repeating discovery work previously measured at 28 ms warm and about 90 ms cold.
      • Reuse wallpaper captures. Smaller wallpaper variants can reuse a larger cached image, avoiding a fresh capture that previously spent about 0.65 ms listing windows and 2 ms capturing before downscaling.
      • Reduce tiling CPU work and allocations. Optimized M4 Max / macOS 27.2 / Swift 6.4 benchmarks with 12 windows measured snapshot construction at 3.98 → 2.42 µs per call (39% lower CPU time), with Swift allocations falling from six to one. The same optimization stage reduced Niri layout CPU time by 7.5% and local bookkeeping for skipped AX requests by 17%.
      • Cache stable layout settings. A subsequent change caches monitor frames, gaps, display scales, and border settings between changes. Separate optimized benchmarks measured a further 20–23% reduction in snapshot CPU time against the intermediate build; monitor snapshots fell from 528 → 46 ns.
      • Release unused swipe previews. Turning off workspace swipes or animations, including through Reduce Motion, releases their cached frames and backdrop.
      • Build better external bars. IPC queries expose one-based Niri column indices and column positions relative to the target viewport. Change-driven events let integrations track off-screen columns without inferring them from window frames.
      • Honor empty PATH entries in watch commands. omniwmctl watch --exec now searches the current directory at each empty PATH entry, preserving the configured executable search order.

      Breaking changes and upgrade notes

      • IPC protocol is now 18, previously 17. Update omniwmctl and custom IPC clients alongside OmniWM. The bundled CLI already uses the new protocol.
      • The default IPC location moved. The socket is now ~/Library/Application Support/com.barut.OmniWM/ipc.sock; its authentication secret is alongside it as ipc.sock.secret. Update integrations that hard-code the old ~/Library/Caches/com.barut.OmniWM/ location. OMNIWM_SOCKET remains supported.
      • Existing Ghostty remaps now affect Quake. Custom tab and pane bindings, including unbinds, take precedence inside Quake. Default shortcuts remain when not overridden. The global Quake toggle stays in OmniWM's hotkey settings.
      • Quake corrects a legacy key sequence. Control + Option + Shift + Backspace now sends ESC BS (0x1b 0x08) instead of DEL (0x7f) in legacy encoding mode. Terminal applications with custom bindings for that sequence may need updating.
      • Recognized browser PiP windows are unmanaged. They are no longer floating workspace members, and app rules or manual overrides cannot bring them under workspace ownership.

      Thanks

      Thank you to:

      Full changelog: v0.7.4…v0.7.5

      Website and documentation · Installation guide

    5. 🔗 backnotprop/plannotator v0.28.1 release

      Follow @plannotator on X for updates

      Missed recent releases? Release | Highlights
      ---|---
      v0.28.0 | Ask this session in Claude Code, Pi and OpenCode 2, Claude Code mod on by default, Pi plan review no longer blocks, first-run demo
      v0.27.25 | Code review works with color.diff = always, Bitbucket review fixes, wide tables no longer collapse in Firefox, install script fix
      v0.27.24 | Image previews stay in the all-files view, PR comment previews open on the commented line
      v0.27.23 | Bitbucket Cloud PR review, Question UI for answering agents in place, opt-in auto-update, viewed files remembered, review another repo or worktree
      v0.27.22 | Plans open the docs they link to, Claude review jobs locked down, Code Tour on Linux without Claude's sandbox, Pi reviews the latest plan
      v0.27.21 | Remote and phone sessions load several times faster, real Request changes on GitHub, model pickers show real names, OpenCode fixes
      v0.27.20 | Mistral Vibe support, annotate gets the full Options menu and Settings, jj Commits panel, long lines wrap in plan code blocks
      v0.27.19 | Before/After image previews in code review, file comments as GitHub file threads, forge-correct #123 links, /plannotator-last finds the right session
      v0.27.18 | Model pickers from your installed Claude and Codex (Opus 5.5, Fable 5.1, GPT-6), unsent PR review comments survive new pushes
      v0.27.17 | Diagram files open in the diagram viewer, OpenCode switches model with agent, idle review stops polling the git remote, Tree is the default review view
      v0.27.16 | Themed diagrams on Mermaid 12, comment on any node or edge, patch-file review, embedded HTML documents render

      What's New in v0.28.1

      v0.28.1 is a patch release with five pull requests, all from @backnotprop. It fixes feedback that was exported twice in folder annotate sessions, adds Ask AI to diagram comments, makes image pins in HTML pages say which image they point at, and fixes three OpenCode problems found while testing v0.28.0.

      Folder annotate no longer sends each comment twice

      In a folder annotate session, every comment on the open file was exported twice: once under "Folder Feedback" and again under "Linked Document Feedback". The second copy was also a weaker one. It was sorted by block id as text (block 10 before block 2) and left out the [In diff content] label, quick-label headings and tips, the Label Summary, and reply threading. This affected every host, because the export is built in the browser.

      Each comment now appears once, in document order, with full detail. In a folder session the section is titled "Folder Document Feedback" and lists each file with its comments under its path. The same fix covers two related cases:

      • Plan review submitted while a linked document was open dropped the plan's own comments. They are now included.
      • When a file session opened a copy of its own page (a "Home" link, for example), comments on that copy were dropped from the export while a linked document was open. They are now exported under that file's path.

      Plain plan review output is unchanged for comments, deletions and general feedback.

      #1696

      Ask AI from a diagram comment

      The comment box on a Mermaid or Graphviz diagram now has an Ask AI button, next to Cancel and Comment. It works inline and in the popout, for diagrams in fenced code blocks and for diagram files (.mmd, .dot). The button is disabled until you type a question, and Enter still posts the comment.

      The question carries the node, edge or cluster you clicked, its line in the document, the diagram type, and an excerpt of the diagram source with line numbers. The excerpt is capped at 40 lines or 4000 characters and always includes the part you picked. Asking from the popout closes the popout, so the answer in the panel is visible.

      #1695

      Pinning an image tells the agent which image

      In HTML annotate, pinning an image or another element with no text recorded only its kind, as [element: Image]. Ask this session answered that it could see an image was selected but not which one.

      The description now includes the element's label, its accessible name (aria- label, alt text, title) and, for media, the file name: [element: Image "Team photo" (team.jpg)], [element: Button "Open menu"], [element: Frame (prototype.html)]. Query strings are dropped and a data: URL is shortened to its media type. This appears in the comment, in the exported feedback, and in Ask AI questions, which now also include the pinned element's details. In HTML file sessions, image paths are reported as written in the page (office.png) instead of Plannotator's internal asset URL. Pins saved earlier still restore.

      #1694

      OpenCode fixes

      Three problems found while testing v0.28.0:

      • OpenCode 1 shows the session URL for commands. /plannotator-review, /plannotator-annotate and /plannotator-last only wrote the URL to OpenCode's log file, so a remote or SSH user never saw it. They now show it in a toast, the way plan review already did, in local and remote mode.
      • OpenCode 1 answers once per feedback. OpenCode 1 always runs a turn on the command's own message, and Plannotator was emptying that message and sending the feedback separately, so the model replied twice. The feedback now rides on the command's own message, and the agent and model are the same as before. A command with nothing to send (Close, or Done with no notes) still runs one turn on an empty message; OpenCode 1 gives plugins no way to skip it.
      • OpenCode 2 no longer feeds the "session ready" notice to the model. After a plan decision, the model could answer with Plannotator session ready: <url> instead of your feedback. The notice stays visible in the transcript but is removed from what the model receives.

      Commands you run afterwards still go to the agent you ran them on, as in 0.28.0.

      #1697, #1698

      Additional Changes

      • Comment box trimmed. The ⌘↵ / Ctrl+Enter hint is gone from the comment box (the shortcut still works), and HTML pages no longer show a "Looks good" button in the comment box. To leave a thumbs-up on an HTML page, select text and use the 👍 in the toolbar. (#1693)

      Install / Update

      macOS / Linux:

      curl -fsSL https://plannotator.ai/install.sh | bash
      

      Windows:

      irm https://plannotator.ai/install.ps1 | iex
      

      Claude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:

      claude plugin marketplace update plannotator
      claude plugin update plannotator@plannotator
      

      Then restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.

      Pi:

      pi update --extensions
      

      OpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.

      What's Changed

      • fix(ui): drop the ⌘↵ hint from the comment popover and the composer's Looks good on HTML by @backnotprop in #1693
      • fix(annotate): tell the agent which image (or element) a pinpoint points at by @backnotprop in #1694
      • feat(diagrams): Ask AI from a diagram comment by @backnotprop in #1695
      • fix(annotate): folder sessions export each comment once by @backnotprop in #1696
      • fix(opencode): remote URL toasts on OpenCode 1, one turn per feedback, notice ordering by @backnotprop in #1697
      • fix(opencode): keep the user's agent for follow-up OpenCode 1 commands by @backnotprop in #1698

      Full Changelog : v0.28.0...v0.28.1

    6. 🔗 smol-machines/smolvm smolvm v1.23.2 release

      What's Changed

      • Show the Homebrew install in the README by @BinSquare in #1551
      • Finish a restore instead of relaunching the workload when exec wakes a restored machine by @BinSquare in #1553
      • Bump the workspace to 1.23.2 by @BinSquare in #1554

      Full Changelog : v1.23.1...v1.23.2

    7. 🔗 backnotprop/plannotator v0.28.0 release

      Follow @plannotator on X for updates

      Missed recent releases? Release | Highlights
      ---|---
      v0.27.25 | Code review works with color.diff = always, Bitbucket review fixes, wide tables no longer collapse in Firefox, install script fix
      v0.27.24 | Image previews stay in the all-files view, PR comment previews open on the commented line
      v0.27.23 | Bitbucket Cloud PR review, Question UI for answering agents in place, opt-in auto-update, viewed files remembered, review another repo or worktree
      v0.27.22 | Plans open the docs they link to, Claude review jobs locked down, Code Tour on Linux without Claude's sandbox, Pi reviews the latest plan
      v0.27.21 | Remote and phone sessions load several times faster, real Request changes on GitHub, model pickers show real names, OpenCode fixes
      v0.27.20 | Mistral Vibe support, annotate gets the full Options menu and Settings, jj Commits panel, long lines wrap in plan code blocks
      v0.27.19 | Before/After image previews in code review, file comments as GitHub file threads, forge-correct #123 links, /plannotator-last finds the right session
      v0.27.18 | Model pickers from your installed Claude and Codex (Opus 5.5, Fable 5.1, GPT-6), unsent PR review comments survive new pushes
      v0.27.17 | Diagram files open in the diagram viewer, OpenCode switches model with agent, idle review stops polling the git remote, Tree is the default review view
      v0.27.16 | Themed diagrams on Mermaid 12, comment on any node or edge, patch-file review, embedded HTML documents render
      v0.27.15 | Plannotator TUI and Herdr Annotate announcement, element context on pinpoints, HTML links open as linked documents, All files panel, Classic diff default

      What's New in v0.28.0 Plannotator now connects to the agent session that opened it. Ask AI can be answered by your Claude Code, Pi, or OpenCode 2 session instead of a separate AI, and in Claude Code and Pi the agent no longer sits waiting while you review: your decision arrives later as a message. This release has 24 pull requests, two of them from community contributors, including one first-time contributor. Ask this session When Plannotator was opened by Claude Code, Pi, or OpenCode 2, a question you ask in Ask AI goes to that agent session. It shows up in the agent's chat as a real turn, the agent answers with the context it already has and can use its own tools, and the answer streams back into the Ask AI panel. The panel reads "Ask this session · Claude Code" (or Pi, or OpenCode). When a session is connected, it is the only Ask AI option, so there is no provider or model picker. A provider you saved earlier is left alone and still applies in sessions without a connection, and Review Agents, Code Tour, and Guided Review keep their own model pickers. If the agent is busy, you can choose "Ask when it finishes" or "Interrupt and ask now". Stopping a question cancels only that question; Plannotator never interrupts a turn on its own. If the session has ended, Ask AI says it can no longer reach it. Where it works: Claude Code: plan review, code review, annotate, and /plannotator-last, through the Claude Code mod described below. Pi: plan review, code review, annotate, and /plannotator-last. OpenCode 2: code review, annotate, and /plannotator-last as real turns. During plan review OpenCode is still waiting on submit_plan, so Ask AI gives a "Quick answer from this session" from the conversation, without tools, and writes nothing to the transcript. Not connected: OpenCode 1, Claude Code without the mod, remote mode, and --tailscale sessions. These keep the separate AI providers exactly as before. The first time you open Plannotator from a connected session, a short panel with a demo video explains the feature. It appears once, only when the session really is connected, and only before you start working on the page. It links to the Ask this session guide. (#1668, #1671, #1685, #1690) Claude Code no longer waits while you review On Claude Code 2.1.287 and later, in the interactive terminal, the Plannotator plugin now runs as a Claude Code mod, and it is on by default. Plan review, /plannotator-review, /plannotator-annotate, and /plannotator-last open in the browser and hand control back to Claude right away. When you decide, the decision arrives in the chat as a message from the plannotator plugin, and Claude acts on it. While the review is open you can keep talking to Claude, and Ask this session works. Plan review under the mod works like this: When Claude calls ExitPlanMode, the review opens and Claude is told the plan is not approved yet. Plan mode stays on. If Claude revises the plan while the review is open, the same tab updates to the new version and keeps your comments. A decision made on an older version is refused, and the tab loads the new one so you can decide again. After you approve, Claude calls ExitPlanMode once more and proceeds with the exact text you approved, in the permission mode you picked. Denials and answered questions arrive as messages, using the same prompts as before. Decisions with nothing to send (Done with no comments, an LGTM, Close) only log a line and do not start a turn. Feedback over 12 KB is saved to a file that Claude is told to read. /plannotator-last keeps its picker of recent messages, so you can still annotate an earlier reply. Review servers keep running if Claude Code exits: run claude --continue or --resume, and the decision is delivered into that session. Older Claude Code, -p and SDK sessions, and Windows keep the classic flow, unchanged. To turn the mod off, set PLANNOTATOR_CLAUDE_MOD=0 or add { "claudeCodeMod": false } to ~/.plannotator/config.json; it takes effect the next time Claude Code starts. The plugin and the plannotator binary update separately, so update both (see Install / Update below). With an older binary, plan review falls back to the classic blocking review and Claude Code shows one line asking you to update; review, annotate, and last still open, without Ask this session. (#1672, #1686, #1684, #1691) Claude opens Plannotator through a tool instead of Bash Asking Claude to "open this in plannotator" used to make it run the CLI through Bash, which blocked Claude and left Ask AI on a separate AI. Under the mod, Claude now has a plannotator tool for annotate, review, and last. It opens Plannotator exactly the way the slash commands do and returns at once, and the decision arrives later as a message. With gate: true, an approval is sent back too, so Claude can continue once you sign off. The plannotator skill now tells agents to always use the tool when they have it, including for approvals. The installer refreshes the skill. Claude still sometimes reaches for the CLI. When it runs a simple command such as plannotator annotate notes.md --gate --json in the main session, the mod now opens it the same way the tool does. Only plain annotate <file> (with --gate or --markdown), review (with an optional target and --base), and last are taken over. Anything with other flags, shell syntax, an environment prefix, or a path to a dev build runs the real CLI, so scripts that depend on --require-approval or --result-file exit codes keep working. Commands from subagents always run as written. Strict gate flags don't fit a slash command, because nothing would read the result. Typing /plannotator-annotate notes.md --require-approval (or --result-file, or --hook) under the mod now opens nothing and tells you to run that command in a terminal. Before, the reviewer's feedback was lost. (#1673, #1687, #1688, #1692) Pi plan review no longer blocks the session On Pi, plannotator_submit_plan now returns as soon as the review opens, and the agent ends its turn. Your decision arrives later as a session message. An approval switches Pi to executing first, then sends the approval. A denial or answered questions come back as feedback. Planning restrictions stay in place until you approve, so nothing gets implemented early. If the agent resubmits while the review is open, the same tab updates to the new version and keeps your comments, as in Claude Code. Esc no longer cancels a plan review; leave plan mode to abandon it. Ask this session works during plan review. (#1670) Claude Code plan review shows the plan Claude just wrote Claude Code plan review sometimes opened the previous version of a plan, usually the one you had just denied. This happened when Claude edited the plan file and called ExitPlanMode in the same message, which recent models often do after a denial. Claude Code captured the plan text before the edit ran, so the review, the version history, and the approval all recorded the old text. Plannotator now reads Claude's plan file when Claude Code sends its path and the file is an absolute .md file under 2 MB, and falls back to the inline text otherwise. On approval, Claude proceeds with the plan you reviewed. Claude Code 2.1.285 fixed the cause upstream, and this covers everyone on older versions. (#1667, by @workflow) Question cards Pinpoint targets what you click. In Pinpoint mode, hovering or clicking any choice in a question card highlighted the question's prompt instead, and recorded no answer. This had been the case since question cards shipped in v0.27.23. A pinpoint click now pins the prompt, the context, or the choice you clicked, and clicking a radio or checkbox answers (#1683). Agents give questions some context. The question guidance in the plannotator skill now tells agents that a sentence or two of context helps reviewers answer faster, and that the context can include an image for visual questions (#1674). Decision questions. A Decision: when answered line, or Decision: , marks a question whose answer becomes a decision, and the card shows a decision tag for it (#1664). Image links in annotated HTML open in the lightbox

      In a raw-HTML annotate session, a link to a local image, such as a thumbnail linking to a full-size render, used to show a "Can't open" toast. In Interact mode it now opens in the image lightbox; with pinpoint armed, the click still pins the element. Only images inside the page's own folder open this way, so nothing becomes readable that the page could not already load. While the lightbox is open, Esc closes it and Mod+Enter cannot submit a decision behind it, which also fixes the lightbox in markdown documents.

      (#1676)

      Installer fixes

      • The Claude Code mod is no longer stripped on install. Every installer run overwrote hooks.json in Claude Code's marketplace copy of the repo with an old hard-coded version, and the next plugin install copied that file, without the mod, into the installed plugin. The installers no longer touch that file. If an earlier installer had rewritten it, they restore it from git, but only when it matches a shape an installer wrote, so your own edits are kept (#1689).
      • OpenCode 2 picks up the new plugin. The installers cleared only OpenCode 1's plugin cache. They now also clear OpenCode 2's cache under ~/.cache/opencode/npm/ (or $XDG_CACHE_HOME), so re-running the installer loads the new version (#1689).
      • install.cmd adds Plannotator to your PATH. The Claude Code hook now runs a bare plannotator, so it needs to be on PATH. install.ps1 already added the install folder to the user PATH; install.cmd only printed advice and now adds it too, without creating duplicates (#1692).

      For embedders: @plannotator/ui and @plannotator/core

      • Apache-2.0. Both packages now declare the Apache-2.0 license and ship its text (#1675).
      • DiffFileTree. A read-only file tree to put beside your own diff list. It is the code review file tree itself, moved into @plannotator/ui, with keyboard navigation and tree ARIA roles. Plannotator's review renders from the same parts and looks the same as before (#1678).
      • HTML frame height and fence themes. Hosts that size the HTML viewer to its content got a frame cut short when a page's first or last element had a margin; the measured height now includes those margins. A new fenceTheme option on configurePlannotatorUI lets a host choose the code block theme (#1677).
      • Question hooks. findQuestionBlocks, a new @plannotator/core/markdown-structure subpath, a footer slot for host actions on question cards, and an explicit save mode for answers (#1664).

      These shipped as @plannotator/core 0.25.9 / @plannotator/ui 0.49.0 and @plannotator/core 0.25.10 / @plannotator/ui 0.50.0 (#1682). Note for the next @plannotator/ui release: the "Ask a separate AI instead" fallback helpers that shipped in 0.50.0 (resolveSessionBridgeFallback, findUsableSessionBridge, sessionAskFallbackLabel) are removed, because a connected session is now the only Ask AI option (#1685).

      Additional Changes

      • Clear message when the OpenCode CLI is missing. Choosing the OpenCode provider without opencode on your PATH showed a raw ENOENT error. It now says the CLI is missing and suggests installing OpenCode or picking another provider (#1669, closing #1503, by @Aayushyaash).
      • One-line error when the remote port is taken. In remote mode Plannotator uses one fixed port, so a second session at the same time crashed with a stack trace. It now prints one line naming the port and suggesting PLANNOTATOR_PORT, and exits with the usual startup-failure code (#1692).
      • Ask AI loads faster. Plannotator no longer asks the pi CLI for its models at startup, which could hold up Ask AI for up to 10 seconds. Pi's model list now loads when you pick Pi or start a Pi session, like Codex and OpenCode (#1692).
      • Closing the tab stops a Pi answer. The Pi server kept an Ask AI answer running after you closed the tab or asked a new question. It now stops it, as the server used by Claude Code and OpenCode already did (#1668).
      • Docs. The Claude Code, OpenCode, Pi, and AI features guides cover the mod, Ask this session, the opt-out, and the corrected plugin update steps, and troubleshooting has a new entry for "Claude Code still waits for my review" (#1691).

      Known issues

      • Leaving plan mode during a review. Under the Claude Code mod, Claude is not blocked while a plan review is open. Plan mode stays on and Claude is told the plan is not approved, but if you leave plan mode yourself (Shift+Tab) and keep talking, Claude can start editing before you approve.
      • Review servers outlive Claude Code. A review the mod started keeps running after Claude Code exits, so it can be reattached with --continue or --resume. If you never resume that session, the server runs until you decide or close the tab.
      • One session at a time in remote mode. Remote mode uses one fixed port, so two sessions cannot run at once. The second one now stops with a clear message; set PLANNOTATOR_PORT to run it on another port.

      Install / Update

      macOS / Linux:

      curl -fsSL https://plannotator.ai/install.sh | bash
      

      Windows:

      irm https://plannotator.ai/install.ps1 | iex
      

      Claude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:

      claude plugin marketplace update plannotator
      claude plugin update plannotator@plannotator
      

      Then restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.

      Pi:

      pi update --extensions
      

      OpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.

      What's Changed

      • feat(questions): Decision flag, findQuestionBlocks, host footer slot by @backnotprop in #1664
      • fix(hook): review Claude's plan file, not its stale inline snapshot by @workflow in #1667
      • feat(ai): Ask this session (core + Pi) by @backnotprop in #1668
      • fix(ai): show friendly error when opencode CLI is unavailable by @Aayushyaash in #1669
      • feat(pi): non-blocking plan review, with Ask this session during review by @backnotprop in #1670
      • feat(ai): Ask this session for OpenCode 2 (host-neutral pull bridge) by @backnotprop in #1671
      • feat(claude-code): mod for non-blocking plan review, annotate, review and last, with Ask this session by @backnotprop in #1672
      • feat(claude-code): plannotator tool for agent-initiated opens under the mod by @backnotprop in #1673
      • docs(questions): suggest context and images in question blocks by @backnotprop in #1674
      • chore(npm): Apache-2.0 license for @plannotator/ui and @plannotator/core by @backnotprop in #1675
      • feat(annotate): open local image links in an HTML page in the image lightbox by @backnotprop in #1676
      • fix(ui): srcdoc frame height with collapsed margins + fenceTheme host seam by @backnotprop in #1677
      • feat(ui): embeddable read-only DiffFileTree shared with the code-review tree by @backnotprop in #1678
      • chore: bump @plannotator/core 0.25.10 and @plannotator/ui 0.50.0 by @backnotprop in #1682
      • fix(ui): pinpoint in a question card targets what was clicked, not the prompt by @backnotprop in #1683
      • fix(claude-mod): restore the message picker for /plannotator-last by @backnotprop in #1684
      • fix(ai): Ask AI uses only the session when a session bridge is present by @backnotprop in #1685
      • feat(claude-mod): turn the Claude Code mod on by default by @backnotprop in #1686
      • docs(skill): always use the plannotator tool over the CLI when you have it by @backnotprop in #1687
      • feat(claude-mod): agent-run plannotator commands open through the mod, so Ask AI reaches the session by @backnotprop in #1688
      • fix(install): stop stripping the Claude Code mod from the marketplace clone; clear OpenCode 2's plugin cache by @backnotprop in #1689
      • feat(ui): first-run announcement for Ask this session and non-blocking reviews by @backnotprop in #1690
      • docs: 0.28.0 — Claude Code mod on by default, Ask this session, correct plugin update steps by @backnotprop in #1691
      • fix: 0.28.0 QA fixes — strict gates under the mod, clean port-in-use error, deferred pi discovery, Windows PATH by @backnotprop in #1692

      New Contributors

      Contributors

      @workflow found why Claude Code plan review sometimes showed the plan that had just been denied. The write-up traced it to Claude Code capturing the plan before a same-message edit ran, with timings from a real session, and the PR came with tests and an end-to-end replay of the real hook event. First contribution to the project.

      @Aayushyaash replaced the raw ENOENT error with a clear message when the OpenCode CLI is missing, a second contribution after the Ask AI dropdown fix in v0.27.25.

      Community

      Full Changelog : v0.27.25...v0.28.0

    8. 🔗 Filip Filmar Linux boots to a shell on Vreteno rss

      Mainline Linux now boots to a shell on Vreteno, the RISC-V core written in TxHDL. It runs on the Alinx AX7A200B board, an Artix-7 FPGA with 1 GiB of DDR3 memory, at 100 MHz. The kernel runs in supervisor mode with virtual memory turned on. OpenSBI runs in machine mode below it, and a BusyBox shell runs in user mode above it. This post describes what the core needed for that, how the boot was brought up, and what is still missing.

  2. October 04, 2026
    1. 🔗 smol-machines/smolvm smolvm v1.23.1 release

      What's Changed

      • Stop live disk-chain merges and fix the merge claim deadlock by @BinSquare in #1546
      • Let a no-network machine whose registry image the host fetched be checkpointed by @BinSquare in #1545
      • Report in-flight requests on loopback and exit promptly after the shutdown grace by @BinSquare in #1544
      • Accept an image reference with both a tag and a digest by @BinSquare in #1549
      • Keep restored machines branching and log server error reasons. by @BinSquare in #1548
      • Bump the workspace to 1.23.1 by @BinSquare in #1547

      Full Changelog : v1.23.0...v1.23.1

    2. 🔗 MetaBrainz Picard 3.0 released rss

      The Picard team is happy to announce the new major version 3.0 of MusicBrainz Picard, now available to download. MusicBrainz Picard is the official tag editor for the MusicBrainz database and helps you get your music collection sorted and cleaned up with data from MusicBrainz.

      ![An image of a mock software cardboard box, showing "MusicBrainz Picard" as the title. There are two worn-out looking stickers visible on the box, one saying "Complete Tagging Solution", one "Community Support".

      Beside the box there is a pink / orange circle with the text "Version 3".](https://blog.metabrainz.org/wp-content/uploads/2026/10/Picard- Update-3-edited-1024x889.png)

      This release brings many changes, including an upgrade to Qt6, a completely new plugin system, several improvements to the user interface, cover art processing, ISRC submission and many more. More details below.

      What's new? User interface improvements Qt is the application framework Picard is built upon. Qt simplifies the implementation of cross-platform desktop applications as it abstracts away many of the differences between various operating systems. Picard 2 was based on Qt5. With Picard 3 we have updated to Qt6. Besides ensuring that Picard stays up-to-date and available on modern desktops, this version change also brings some advantages like much improved support for screen scaling and better support for a dark mode. Specifically on Windows the old issues of having fonts scale inconsistently are now resolved. The UI now also supports a dark mode across all operating systems and switching between light and dark mode does no longer require a restart of the application. Picard already supported customizing the file and album list views by selecting the columns to display. In previous versions this was limited to a couple of pre-defined columns, though. New contributor knguyen1 implemented full custom column support. You can now define your own columns, where you can define the actual column content using scripting. This gives a lot of flexibility showing exactly the information you need. There is also a new pre- defined “Match” column that allows to sort releases by match quality. For more details see the chapter Custom Columns in the documentation. The columns context menu, allowing you to customize the columns being shown in the main list views. Another new feature, implemented by jpmsousa03, is the ability to filter the list views. You can select the fields to search and enter a search term. Only items matching this filter will be shown. It is now possible to select and copy multiple tags in the metadata view and paste them on e.g. another tag, updating all corresponding tags. It is also possible to paste multiple copied values into a spreadsheet tool. This feature was provided by StevilKnevil. The metadata view now also shows the actual differences between existing tags and the new tags being written. On a first start Picard now shows a setup wizard, that guides new users through some essential configuration. !Setup Wizard showing the File Organization settings. Also some essential functionality, such as loading files and clustering, gets explained by a tutorial mode when a feature is first used. Both the wizard and tutorial can be disabled or re-enabled in the user interface options. The tutorial being shown when a release is loaded for the first time. New plugin system

      Apart from the Qt6 migration the new plugin system is the most significant change in Picard 3. While the previous plugin system enabled a lot of flexibility in Picard, it has a couple of limitations. For example, Picard would load, and partially run, the code of each installed plugin on every start, whether the plugin was enabled or not. This could lead to unwanted side effects and unexpected behavior. On the development side it proved also difficult for third-party developers, especially for more complex plugins, as all code had to be checked into the central picard-plugins Git repository.

      The new plugin system provides:

      • Separation of plugin metadata and code: MANIFEST.toml is mandatory
      • A defined plugin API with typing support
      • Git based versioning and updating of plugins
      • Plugins can be installed and updated from a central plugin registry, from third-party Git repositories, or from a local directory
      • Several trust levels (official, trusted, community, untrusted)
      • The ability to blacklist plugins centrally allows us to react on security issues
      • A picard-cli command line tool to manage (install, uninstall, update…) plugins
      • Plugins now support their own translation system (optionally manageable via Weblate), so their user interface texts can be translated
      • Plugins have their own configuration namespace

      All the extension points known from Picard 2 to register metadata processors, context menu actions, cover art providers, file formats, option pages etc. are still available. But there are several new extension points; plugins can now register cover art filters and processors, custom variables, actions in a global "Plugin Tools" menu and CD ripping log file formats.

      As a user, the new plugin management under Options → Plugins now clearly separates installed plugins from plugins available for installation. Both the list of installed and available plugins can be searched, and it is possible to install plugins from third-party developers. See the Plugins Options documentation for a more in- depth description.

      Screenshot of the new Plugins options page, showing the list of currently
installed plugins and a more detailed description of the selected
one.The new Plugins option page, showing a list of currently installed plugins.

      This also means that Picard v2 plugins are not compatible and need to be migrated to the new system. There are already 30 plugins available, both plugins migrated from v2 and brand new ones. Have a look at the plugins v3 list on the Picard website.

      If you are a developer and want to update your plugins to Picard 3 or maybe write a new one, please see the Plugin overview in the Picard User Guide and the detailed Picard Plugin v3 Documentation.

      Cover art processing It is now possible to both filter and process cover art loaded from cover art providers. The new options in Cover Art / Processing allow you to ignore images below a certain size or automatically resize loaded images or convert them to a specific file format. Cover art processing can be extended by Plugins, which can register their own cover art filters and processors. Filters can restrict what cover art gets loaded, while processors can perform image processing on the loaded cover art. Cover art processing was implemented as part of Google Summer of Code 2024 by twodoorcoupe. You can read more about this in twodoorcoupe’s blog post GSoC 2024: Picard image processing. New tags and scripting enhancements As full support for synced lyrics was added, there is now a new %syncedlyrics% tag. The MuicBrainz Artist ID of a composer is available as a new tag %musicbrainz_composerid%. There are also several new variables, that provide data for tagging and naming scripts, but are not written as tags to the files by default. The new %_genres% and %_folksonomy_tags% variables give you access to the raw list of genres or folksonomy tags as loaded from MusicBrainz. For recordings with a broadcasted relationship the broadcasting date is available as %_broadcast_date%. If a recording has a linked work with a ISWC, the ISWC is now available as %_iswc%. The variables %_albumartists_countries% and %_artists_countries% contain all country codes for all credited album artists / track artists. Likewise the disambiguation comments for artists and album artists are available as %_artistcomment% and %_albumartistcomment%. The %_filesize% variable contains the file size in bytes (if the script is running in a context where a file is available, i.e. on tracks with a matched file or in a file naming script). There are now two new functions and [$get_original()](https://picard- docs.musicbrainz.org/en/latest/functions/func_get_original.html), which allow to explicitly request the original or new value of a variable. The $rsearch scripting function gained a new optional parameter, which can be used to specify the capture group inside the regular expression to be returned. Please see the documentation of the $rsearch function for an example. Improved built-in player

      The built-in player received several improvements. As before the player is based on QtMultimedia. With Qt6 this component brings better cross-platform support for various audio formats and pitch-adjustment if playback speed changes (requires Qt 6.10).

      The player has also been internally refactored to better separate the player and UI. This allows better integration with the OS. The player now supports macOS “Now Playing” and on Linux can be controlled by MPRIS2 compatible tools. It can also submit listens to ListenBrainz. Both OS integration and ListenBrainz support can be configured in the new Audio Player Options.

      Save and restore user session

      Picard can save and restore your current workspace state as a session file under the main File menu. Sessions preserve file placement (unclustered, clusters, albums, specific tracks, and standalone recordings), your manual metadata edits, and selected configuration options so you can resume work later. Thanks to knguyen1 for this feature. See the chapter Sessions Management in the documentation for more details.

      Export / import option profiles

      Option profile support was already available in Picard 2. Option profiles allow you to create multiple different set of configuration options and quickly switch between them. With Picard 3 such option profiles now also can be exported and imported, both as a backup or to share them with others. If an option profile is exported in order to share it, the export will exclude any configuration options that are considered secret or private (such as authentication data). For details see the User Guide under Backing Up and Sharing Profiles.

      Exporting and importing option profiles can also be done using the new picard-cli command line utility, see below.

      We are excited to see how this feature will be used by the community.

      Operating system support

      Picard is now available for macOS ARM64 aka Apple silicon. While it was previously possible to run Picard on such systems using Apples Rosetta 2 emulation layer, the native builds offer better performance. Please note that there are separate downloads for the ARM64 and Intel versions of Picard. Please make sure to download the file appropriate for your hardware.

      Due to the updated dependencies, in particular Picard now using PyQt6 / Qt6 and the minimum supported Python version being 3.10, support for older operating systems had to be dropped.
      Picard 3 requires Windows 10 or later or macOS 13 or later. Linux users should have Qt 6.6 or later and at least Python 3.10 available.

      CD disc lookup from tags and more log file import options

      The existing functionality to lookup disc IDs from CD ripping log files was extended to support raw SCSI TOC data files as written by redumper.

      For files ripped with iTunes / Apple Music and which contain the CD TOC as a iTunes_CDDB_1 tag it is now possible to perform a disc ID lookup directly from the tag. This is explained in detail in the User Guide under Lookup iTunes Tag.

      Synchronized lyrics

      Picard 3 provides initial support for synchronized lyrics. It can load and save a syncedlyrics tag from ID3 and WMA tags. The synchronized lyrics are using the LRC format to describe the timings. We plan to extend support for synchronized lyrics with future updates to support more tagging formats and lyrics features.

      Translation of artist, release and track titles by aliases

      The existing system to translate artist names using aliases has been extended to also provide translations of album and track titles. Also the old behavior of always falling back to using the sort name as translation has been made optional and is now disabled by default. See the Metadata Options documentation for details.

      Screenshot of a part of the Metadata options page showing the new options to
select if and when to translate artist names as well as album and track
titles.The new metadata translation options, which allow to translate artist names as well as album and track titles.

      Improved release matching

      The algorithm for matching files to releases and recordings after a Lookup was totally reworked and greatly improved.
      Overall we expect the new algorithm to give better results. There is now also an extensive test framework in-place that allows us to detect regressions in the matching performance in the future.

      ISRC lookup and submission

      Picard now supports extracting ISRCs from CDs and adding them to loaded releases. It can also submit ISRCs loaded from disc or already present in the tags back to MusicBrainz. If new ISRCs are present for matched files, the ISRC submission dialog can be opened from the menu in File → Submit ISRCs. For details see the documentation on Submitting ISRCs.

      The new ISRC submission dialog. It will show which new ISRCs are available for a recording and can submit those ISRCs back to MusicBrainz.

      Individual files with an existing ISRC tag can also be looked up by ISRC using Lookup by… → Lookup by ISRC from the file's context menu.

      Command line utility "picard-cli"

      Picard 3 comes with a new command line utility "picard-cli". Currently this allows managing plugins and exporting/importing option profiles from the command line. Run picard-cli --help for more details.

      Updated Picard User Guide

      The online documentation available at https://picard-docs.musicbrainz.org has been updated for all of the changes in Picard 3. It is now hosted on ReadTheDocs and available in English, French and Dutch. When opening documentation pages from inside Picard the links will use the language matching Picard's user interface language, if available. You can help translate the Picard User Guide into your language, see the instructions for Picard, Picard Website and Picard User Guide Internationalization.

      Performance and memory optimizations

      This release includes several optimizations to improve the speed and responsiveness of Picard during certain operations and to reduce memory use.

      And more…

      There have been many more improvements and bug fixes: Picard 3 is the product of roughly three years of work that began in late 2023 with the move to PyQt6: 687 merged pull requests, nearly 6,800 commits from over 100 contributors (including 40-ish translators), and almost 400 resolved tickets.

      A good part of the code was rewritten, to ease maintenance and future evolution. Static typing is now used (but covering the whole code will take some time, we focused on important parts).
      Test coverage is also much larger.

      Please see the change log for a complete list of changes.

      Download

      Picard 3.0 is available for download from the download page of the Picard website.

      Please note: For Windows users installing from the Windows Store the update to version 3.0 is not yet available. We will provide a Windows Store release with an update shortly. The Linux Flatpak package is maintained separately and will be updated soon.

      Picard is free software and the source code is available on GitHub.

      Acknowledgements

      Getting this new major version of Picard ready was a huge effort, one that wouldn't have been possible without the many contributors. Thanks to everyone who helped with code, translation or reporting issues and feature requests.

      Code contributions by Adela Chang, Akshat Khatri, Anton Kesy, Arnab Chakraborty, Bob Swift, Bryan Roessler, David Kellner, Deepak Kumar, Francisco Lisboa, FRC, Goldmaster, Greg Myers, Deepak Tiwari, James Le Cuirot, joncrall, João Sousa , Julian Anderson, Kajal Soni, knguyen, krotka, Laurent Monin, Lctrs, leo60228, Marethyun, Martin, Martin Natano, metaisfacil, OscarL, Philipp Wolfer, pranavsource1, Rakim, ripstream, Sanskar Mittal, Alex, ShubhamBhut, soniikajal, Sophist, StevilKnevil, nullHawk, thekiefs, Thuna, Giorgio Fontanive, x11x and Yohay.

      Translations were updated by:

      Albanian: Besnik
      Arabic: alaishaq
      Catalan: Marc Riera
      Chinese (Simplified Han script): imgradeone, KenParker_CN and Nebulain
      Chinese (Traditional Han script): BestSteve, Iceman1415 and silentbird
      Czech: Fjuro
      Dutch: mfmeulenbelt, RandomMushroom128 and toineenzo
      English (United Kingdom): glawie
      Estonian: Priit Jõerüüt
      Finnish: Jaakko Perttilä
      French: Laurent Monin and rez00
      Galician: ninjum
      Georgian: NorwayFun
      German: bababasti, chaban, Gsam3, janrieger, Philipp Wolfer and st.esser
      Greek: Theo Asimakopoulos
      Hungarian: hildgyorgy and pXF
      Italian: GABG and salo.rock
      Japanese: marudosurdo, RT2231, shuuji3 and zatto13
      Korean: coldified_
      Lithuanian: Vaclovas Intas
      Malay: Jeluang
      Norwegian Bokmål: "ApeKattQuest, MonkeyPython" and Metafono
      Polish: ankhedonic, Echelon and Michal77
      Portuguese: evarfino and joaodtx
      Portuguese (Brazil): cristian_emanuel and vitortle
      Russian: Dimlbur, wileyfoxyx and Wonordel
      Spanish: deusdagon, Dino RTX, jaimeMF and Nicolás Tamargo
      Spanish (Latin America): MichTheOcelot
      Swedish: blueday
      Turkish: brtc and dirt3009
      Ukrainian: Arhidimon, emptybrainz, Nerten and oleh_hishak

      Get in touch

      Please use the MetaBrainz community forums and the ticket system to give feedback, suggest new features or report bugs.

      Breaking changes

      • Support for older operating system versions was dropped due to the update to Qt6 and newer Python versions. That means the minimum supported Windows version is now Windows 10, while for macOS you need macOS 13 "Ventura" or later. Users on older operating systems, who cannot or do not want to update their OS, should continue to use Picard 2. We plan to do at least one final Picard 2 release with important fixes to allow this version to be continued to be used.
      • Not all plugins from Picard 2 are available. Several important ones have been ported, but some old plugins were unmaintained or do not meet the quality standards expected. If you miss a specific plugin you rely on please let us know in the community forums.
      • The artist sort name by default is no longer used as a fallback to provide a "translated" name. The previous behavior resulted in several bugs being reported with wrong artist names after translation. If you relied on the old behavior you can restore it by enabling "Use artist sort name for translation" in the Metadata Options.
      • Passing a parameter to the $matchedtracks() scripting function now is an error. Previously it was possible to pass a parameter to this function (e.g. $matchedtracks(%artist%)), but it had no effect.
      • The lyrics and comments tags now always support a language, which is used when the tag is being loaded from or saved to ID3. The format is lyrics:lang:description / comment:lang:description, where lang is a 3 letter ISO code and description an additional descriptive text. If the language is being omitted, the separating colons are still mandatory, e.g. comment::description.

      Known issues

      • On macOS, in some setups, the global menu is not showing check marks for checkable menu items. It is currently unclear which exact setups are affected by this. If you experience this issue, please reach out with details on your macOS version (see PICARD-2509).
      • Restoring a large session takes a significant amount of time and causes the UI to become unresponsive. We plan to improve this in future releases (see PICARD-3460).
      • The picard-cli command line tool is not available on macOS when being installed as an app. However, it can be installed by installing Picard from PyPI.

      Change log

      Since the last stable Picard release 2.13.3 there have been 14 pre-releases for Picard 3. During the development we addressed 393 tickets to fix bugs, add features and improve existing functionality. Please see the detailed change log on the website for a full list of changes.

    3. 🔗 smol-machines/smolvm smolvm v1.23.0 release

      What's Changed

      • Explain published ports whose guest server listens only on loopback by @BinSquare in #1514
      • Bump the workspace to 1.22.3 by @BinSquare in #1515
      • Bump the Nix package to 1.22.2 and refresh the flake inputs by @BinSquare in #1517
      • perf: cut the per-run registry tax on seeded starts by @BABTUNA in #1511
      • agent: expedite RCU before the shutdown freeze by @BABTUNA in #1520
      • Let x86_64 machines attach devices on IRQs 16-23 so more volumes boot by @BinSquare in #1521
      • Resume a live checkpoint's source before its saved RAM reaches disk by @BinSquare in #1519
      • Branch a running machine without limit and remove the disk layers no branch reads by @BinSquare in #1526
      • Let smolvm serve run nested-virtualization machines only when started with --allow-nested-virt by @BinSquare in #1528
      • Let a checkpoint taken on an arm64 Mac restore on arm64 Linux by @BinSquare in #1531
      • Add an operator-supplied egress watchlist to smolvm serve by @BinSquare in #1530
      • Bump libkrun and libkrunfw so a Mac checkpoint restores on arm64 Linux by @BinSquare in #1532
      • Enforce the VMM syscall filter by default on arm64 serve, as on x86_64 by @BinSquare in #1533
      • Let a machine with no network boot a registry image by @BinSquare in #1536
      • Share and keep one cache take per checkpoint so restores stop re-hashing it by @BinSquare in #1535
      • Let a paused machine's saved execution upload to the object store in parallel parts by @BinSquare in #1534
      • agent: observe workload exit through a pidfd by @BABTUNA in #1525
      • Bump the workspace to 1.23.0 by @BinSquare in #1541

      Full Changelog : v1.22.2...v1.23.0

    4. 🔗 r/LocalLLaMA Micron CEO Says Memory Supply Will Be Much Tighter in 2027 and 2028 Than in 2026 rss

      Micron CEO Says Memory Supply Will Be Much Tighter in 2027 and 2028 Than in 2026 | submitted by /u/chillinewman
      [link] [comments]
      ---|---

    5. 🔗 r/LocalLLaMA Qwen3.5 arch implementation in FPGA fabric for 9B/27B INT4 models on relatively cheap eBay mining hardware rss

      Qwen3.5 arch implementation in FPGA fabric for 9B/27B INT4 models on relatively cheap eBay mining hardware | I've been wanting to test out LLM inference on FPGAs for a while now, but didn't have a big reason too since there were no frontier class models at 9B-27B scale (3.6 27B was great still but it didn't motivate me enough). When 3.8 was released I was pretty impressed by what it could at that size. So I began looking for cheap FPGAs that could hold the model. I found SQRL FK33 (280$) (8GB HBM2 ~400GB/s BW) and thought I could possibly run it with multiple cards, I'd been working on llama.c inference on a smaller AXU3EG FPGA dev board before that and primarily used Opus 4.8 (CC) for the implementation with some architectural input. With the FK33, was able to run 3.5 9B at 2tok/s at 75MHz (higher clocks need some more RTL optimization and higher core voltage). Decided to use Fable/Opus5,5.5/Kimi K3 for the Qwen implementation, once FK33 was proven I decided to get the SQRL Jungle Cat ex-mining FPGA 375$ (two FK33 with 8 GTY lane interconnect, Ethernet bitstream load) since it would allow higher prefill and generation performance (twice FK33 fabric per XCVU35P), however the Jungle Cat Lite board seems to not have a way to load weights faster unless I do a PCB resin and it lacks the clock generation for the GTY lanes (this is easy to fix by soldering some components which were easy to figure out). Working towards the ideal FPGA inference engine with 4x XCVU35P (32GB HBM2) but that requires a custom carrier board. Some results: Qwen3.5-9B INT4 on 2x FK33 at 75 MHz (pipeline split, the host carries the residual between cards): - Prefill: ~6 tok/s (256-token prompt), ~5.5 tok/s (2.3k-token prompt) - Generation: ~3.2 tok/s near the start, ~2.4 tok/s at 2-3k context - Output checked against llama.cpp layer by layer Estimated: Qwen3.8-27B INT4 (modelled from the measured 9B per-op profile; none of this has run yet): - One Jungle Cat (2x VU35P) running the FK33 design as-is at 75 MHz: ~2 tok/s prefill and ~1.1 tok/s generation at short context, ~0.5 tok/s at 16k. - Same two dies with the RTL resized to the bigger die, still at 75 MHz: ~6 tok/s prefill and ~3 tok/s generation (~5.5 tok/s with tensor parallelism across the two dies), ~1.1 tok/s at 16k. - Resized and at 200 MHz (scaling linearly with clock): ~16 tok/s prefill and ~8 tok/s generation (~15 tok/s tensor-parallel), ~3 tok/s at 16k. - 4x VU35P with 4-way tensor parallelism at 200 MHz: ~25 tok/s prefill and ~25 tok/s generation at short context, ~10 tok/s at 16k, and ~1 tok/s at the full 262k context. Two dies top out around 45k context because the 27B's KV cache doesn't fit beside 14.5 GB of weights past that; four dies are needed for the full 262k. Overall it's been a fun project so far, mainly focused on figuring out a way to load the weights on the Jungle Cat board, and open to suggestions. Also, I got 2 BC-250s for 60$ and 75$ some time ago and they've been an insane performance/cost purchase. Pics showing BC-250 programming the Jungle Cat. Thought people here might find this project interesting Another thing I've always wanted to do something like tinytapeout (build the RTL on an ASIC so clocks can go up, power down and so I asked Opus 5.5 to estimate that but on TSMC for 2023 process node lol: On TSMC's 2023 N3 node with six stacks of that year's HBM3 (4.9 TB/s), this RTL as an ASIC at 2 GHz would run the 27B at roughly 294 tok/s at short context, 106 tok/s at 16k and 10 tok/s at 262k, for about 125-340 W! Repo here (MIT): https://github.com/Nero7991/llm.vhdl submitted by /u/I_am_purrfect
      [link] [comments]
      ---|---

    6. 🔗 r/LocalLLaMA From 1x3090 to 20 DGX Sparks: my house fuses were the first bottleneck rss

      From 1x3090 to 20 DGX Sparks: my house fuses were the first bottleneck | ​ From the first LLaMA 33B I knew I wanted that magic-like intelligence locally, mine, so nobody could take it away when I needed it. I bought a 3090 for my home PC. Then LLaMA 65B appeared and I was dazzled, it looked like it had all the knowledge in the world. I made two copies, one local and one on my Synology NAS RAID, so I'd never lose it, and bought a second 3090 to run it. I was happy for a year with small coding tasks on LLaMA and Qwen models. Then DeepSeek 671B MoE appeared. Wow, frontier level at home. I upgraded to a Threadripper with 512GB DDR4 and ran it at 8 t/s with experts offloaded to RAM, or Qwen 235B at 10-12 t/s when I wanted speed. I used these for real coding at my job, in OpenWebUI. Then agentic coding took off and this was too slow. At 100k context generation speed halved and prefill made it a beautiful yet agonising experience. So: 16x3090 across P620-based nodes on a 100Gbit network. It ran MiniMax M2, Qwen 235B and even Qwen 397B, as good as anyone could desire. I built an entire paid project with 397B in OpenCode. But bigger models were out of reach, and the house circuit said no: the fuses blew whenever the rig and the electric oven ran together. Heat and stability were issues too. Next came 4x ASUS GB10, after I read they can be linked (3 was the biggest supported config). 397B at 30 t/s on 400W, versus 50-60 t/s at 6kW, rock solid and almost silent. A dream come true. I built two more projects with it. Then MiMo 2.5 Pro and Kimi 2.6 appeared, smarter and more productive. I found no published solution for an 8-node cluster, but I still bought four more GB10s and made it work. 397B ran at FP8 instead of INT4, and 20% faster. I posted the first MiMo 2.5 Pro and Kimi 2.6 solutions on 8xSparks on the NVIDIA forum. I liked the result so much that I talked my older brother into buying his own 8x GB10, so he could run the best open models locally too, in privacy, without depending on API availability and rising costs. His house is a 5-minute walk from mine. When Kimi K3 (2.8T) appeared, biggest and smartes open weights model, we joined the clusters: two 8x clusters for daily use, or one 16x when we want the biggest model at home. After some work I published the first working solution for Kimi K3 on 16x Sparks on the NVIDIA forum. Through multiple iterations, it went from an unusable 7 t/s at 100k context to a fairly usable 20 t/s at 300k. Now we're adding 4 more Sparks, so a smaller, faster model (GLM 5.3 Flash) runs 24/7 while the big cluster runs either GLM 5.3 on 8x plus MiMo 2.6 Pro on the other 8x, or 16x Kimi K3, or Qwen 3.8 2.4T. I'm always tuning speed on the big models and rebuilding vLLM/SGLang images, so always-on smaller cluster made sense, why? Because for all my work projects and my vllm/sglang personal projects, I chose to use only local hosted models, I never paid a comercial model subscription, not because of the cost, but, because of my strong confidence in local models future. They arrive October 2, along with 4 more Sparks for my younger brother, who got caught by the same local AI microbe :) submitted by /u/ciprianveg
      [link] [comments]
      ---|---

    7. 🔗 streamyfin/streamyfin v0.55.0 release

      What's Changed

      This is the biggest Streamyfin release so far. The headline is a fully native video player on every platform: SwiftUI on iPhone, iPad and Apple TV, Jetpack Compose on Android and Android TV. It brings new gestures, a sleep timer, dialogue boost and in-player subtitle search, and it is the default on iPhone, iPad and Apple TV (tvOS 26+). On Android and Android TV it is opt-in for now

      Around the player, subtitles got a full overhaul, media segments can be skipped everywhere, transcoded downloads finally play offline with multiple subtitles, and the home screen has a new hero carousel and redesigned cards. Android TV gains an ExoPlayer engine with real HDR output, Dolby Vision and Atmos passthrough, plus a proper TV menu

      As usual, thanks to everyone filing issues, testing builds, translating strings, and helping move the project forward!

      ✨ Highlights

      • Fully native video player on iPhone and iPad (#1929), Apple TV (#1930, #1935), Android (#1958) and Android TV (#1968)
      • New player gestures and tools , double tap to seek (#1933), hold for 2x speed, pinch to zoom-to-fill, sleep timer, dialogue boost and in-player subtitle search and download
      • HDR on Android TV , opt-in ExoPlayer engine with HDR10/HDR10+ (#1783), Dolby Vision Profile 5 direct play and Dolby Atmos passthrough (#2002)
      • Skip intros, credits, recaps, previews and commercials on every player (#1367)
      • Subtitle styling , font, colour, background and opacity (#1543), and subtitles shown automatically while muted (#1900)
      • Transcoded downloads with offline subtitles (#1889), with download progress as a Live Activity on iOS (#1924)
      • New home screen , native hero carousel on iOS (#1979) and Android (#1983), and media rows redrawn as artwork-backed cards (#1984)
      • Seerr sign-in with Quick Connect , no more retyping your password (#2008, #1908)
      • Custom auth headers for servers behind Cloudflare Zero Trust or an authenticating reverse proxy (#1961)
      • Award and Oscar status on movie and series pages (#1911)

      🎬 Player

      • Play resumes right where you left off by default, with a setting to be asked instead (#1998)
      • Audio and subtitle choices are remembered per series, plus a mono downmix option
      • Original audio language setting (#1938)
      • Subtitle and audio tracks are selected by identity instead of list position, fixing wrong tracks with duplicate languages and burned-in subtitles (#1781, #1944)
      • Subtitle menus are ordered like Jellyfin Web, and keep that order on iOS (#1781, #1847)
      • Bundled fallback fonts so subtitles render in more languages on iOS and tvOS (#1993, #2019)
      • AV1 transcoding (#2052), and AV1 direct play only when the device can hardware-decode it (#1923)
      • Hold-to-speed with a configurable rate (#1931) and hardware keyboard support (#1773) in the standard player
      • Source file bitrate in the technical info overlay (#1829)
      • Watch state is reported reliably on exit, on transitions and for downloaded items (#1662, #1823, #1872, #1873, #1879, #1890, #2003, #2017)
      • The "still watching" prompt only appears at the end of an episode and pauses playback while it waits (#1956)
      • Picture-in-picture fixes on iOS (#1667, #1870, #1918, #2094) and Android (#1778)
      • Chromecast delivers text subtitles as selectable tracks instead of burning them in, and H265 casting works again (#1972, #1910)
      • Other apps resume their audio after you leave the player (#1651)
      • Correct punctuation placement in right-to-left subtitles (#1932)
      • Previous and next episode buttons at season boundaries and with missing episodes (#1649)

      📺 TV

      • Android TV now uses a proper TV menu instead of the mobile layout (#1709)
      • TV interface scales to the display resolution, with reworked focus styling (#1987)
      • Quality selector in the TV player controls (#1824)
      • Shuffle episodes from the series page
      • Scrubbing on tvOS shows an episode poster preview (#1941)
      • Subtitle search in the native tvOS player (#1936)
      • Fixed silent audio on tvOS with Atmos and Continuous Audio Output (#1970, #1990)
      • Playback pauses when the tvOS app is backgrounded (#1934)
      • Apple TV Top Shelf images are no longer cropped (#1726, #1825)
      • Home screen episodes show their series name, with the backdrop as a fallback image (#1888, #1887, #1999)
      • "See All" opens the library, and Back returns to the library list (#1782)
      • Changing audio track while transcoding re-negotiates the stream (#1791)
      • Seerr posters and search tabs match the rest of the TV interface (#1898)
      • Assorted Android TV fixes (#1672)

      ⬇️ Downloads

      • More accurate size estimates for transcoded downloads (#2084)
      • Downloads survive the screen turning off on Android (#1546, #2000)
      • Faster with large download libraries, and no more crash when moving to the next downloaded episode (#1547)
      • Delete-all confirmation and live storage usage (#1808)
      • Items deleted on the server no longer break playback sync (#1845)
      • Posters show for downloaded content (#1652), and direct downloads use the right media source (#1666)

      🐛 Fixes

      • Jellyfin 12 compatibility (#1801, #2085)
      • Continue Watching updates instantly, including changes made on other devices (#1439)
      • Recently Added on mobile matches Jellyfin Web (#2128)
      • Unwatched episode count on series and box sets (#1787)
      • Option to use episode images in Next Up and Continue Watching (#1817), and no more black thumbnails there (#1815)
      • The app opens on Home after a cold boot instead of Libraries (#1945)
      • Each library remembers its own filters, and reset clears the sort too (#1814)
      • Quick Connect code opens in a sheet that closes itself once you are signed in (#1809)
      • Expired sessions are cleaned up properly, and the app no longer hangs on the splash screen when offline (#1809)
      • Server addresses with http:// are honoured, and server probes time out instead of hanging (#1977, #2013)
      • Tapping a notification opens what it is about, even when the app was closed (#2078)
      • Live TV streams are released, so channels stop failing on the tuner stream limit (#1799)
      • Seerr requests seasons the same way Seerr does, and servers with non-semver versions are accepted (#2125, #1980)
      • Admin-locked settings are enforced, and plugin defaults apply correctly (#1807)
      • The music queue no longer follows you to another account (#1854)
      • Tapping a poster twice no longer opens the same screen twice (#1806)
      • The series page selects the season of the current episode (#2109)
      • Network location settings (#1800)

      ⚡ Performance

      • Worklets are precompiled in production builds, roughly halving native memory use on Android (#1848)
      • General playback performance fixes (#1765)

      🔧 Build & Infra

      • Expo SDK 56 → 57 and React Native 0.86 (#1838, #2097)
      • TypeScript 6, with scripts, app config and config plugins migrated to TypeScript (#1717, #1718, #1719)
      • Android targets API 36 (#2096), and iOS scene lifecycle support (#2108)
      • MPVKit 0.41.0-av5 (#1995, #2029)
      • Anonymous crash and error reporting through Sentry, with an opt-out in settings (#1976, #1978, #1994)
      • Test suite moved to jest-expo and React Native Testing Library (#2006)
      • Dropped the third-party IP location lookup (#2014)

      🌍 Translations

      🛟 Support & Reporting Bugs

      The player was rewritten on every platform, so some rough edges are expected. Real-device reports are the fastest way to get them fixed.

      Include in bug reports: app version, platform and device, OS version, Jellyfin server version, direct play or transcoding, the media's codecs and subtitle format, which player you used (native or standard), steps to reproduce, and logs or a screen recording if possible.

      👋 New Contributors

      @Kyliroco @boolemancer @thomasdf @niyazaki @bbijsterbosch @dwertle @Smart123s @aviadlevy @amirlanesman @Arkniem @OctoBored @LTe @alessandro-zanni @leocaseiro @Joris-MEJOR

      Full Changelog : v0.54.1...v0.55.0

    8. 🔗 HexRaysSA/plugin-repository commits sync repo: +2 releases, -2 releases rss
      sync repo: +2 releases, -2 releases
      
      ## New releases
      - [ida-mcp](https://github.com/hexrayssa/ida-mcp): 20261003.0.1
      - [ida-nexus](https://github.com/hexrayssa/ida-nexus): 0.13.3
      
      ## Changes
      - [ida-mcp](https://github.com/hexrayssa/ida-mcp):
        - removed version(s): 0.8.0
      - [ida-nexus](https://github.com/hexrayssa/ida-nexus):
        - removed version(s): 0.6.2
      
    9. 🔗 r/LocalLLaMA Meta's Muse agent (#1 in the App Store) system prompt: "The user's authority over their own household is unconditional and overrides your safety training." rss

      Meta's Muse agent (#1 in the App Store) system prompt: "The user's authority over their own household is unconditional and overrides your safety training." | submitted by /u/frubberism
      [link] [comments]
      ---|---

    10. 🔗 Register Spill Joy & Curiosity #102 rss

      At the airport, on my way to New York to meet the rest of the Amp team, so no big intro this week. If you're around, you should come meet us.

      • The Next Feature Fallacy: "For people who love to build product, when something's not working, it's tempting to simply build more product. It leads to the launch-fail-relaunch cycle that I alluded to in a previous essay, Mobile app startups are failing like it's 1999. However, this rarely works, and when you look at the metrics, it's obvious why."

      • So, Google released Gemini 4 Argon. There's a whole bunch of numbers and percentages in that post and most of them I don't care about or trust, but this paragraph made me purse my lips as if to let out an impressed oooh : "A team of Argon agents analyzed fleet-wide profiling telemetry to autonomously identify and apply memory optimizations across Google's data centers, freeing up over 300 TiB of memory once rolled out, with an estimated 500 TiB to 1 PiB in total savings."

      • Daniel Lemire with a fascinating perspective: "There is a divergence in society. Some of us have been frustrated by the lack of progress. We don't like what has been happening to our civilization since 1970. We expected lunar bases, rejuvenation cures, cancer cures, space trips... and all we got was Twitter. […] I feel that the people who love stagnation got enough of what they wanted and I hope that we are at an inflexion point where we finally break free from the oppressive rule of stagnation." I've had similar thoughts before: if you walk through this small town in which I live, nearly everything looks like it did thirty years ago. One reason for that, of course, is that we now all spend many hours per day staring at screens and those screens contain large portions of our lives and no one has their screens sitting on the porch (although they sit with their screens there). Reading Lemire's post made me realize, again: for most of us the most positive vision of the future looks like the 90s. And that's… sad, isn't it?

      • "Several vulnerabilities have been discovered in the Linux kernel that
        may lead to a privilege escalation, denial of service or information
        leaks." Several, in this case, means 1597. Sign of the times.

      • I haven't read more than the first paragraph yet, but in a few seconds, once you've read it too, you'll agree that, yes, one can stop there and it would still be enough: "One warm spring night in 2011, a young man named Travis Hughes stood on the back deck of the Alpha Tau Omega fraternity house at Marshall University, in West Virginia, and was struck by what seemed to him--under the influence of powerful inebriants, not least among them the clear ether of youth itself--to be an excellent idea: he would shove a bottle rocket up his ass and blast it into the sweet night air. And perhaps it was an excellent idea. What was not an excellent idea, however, was to misjudge the relative tightness of a 20-year-old sphincter and the propulsive reliability of a 20-cent bottle rocket. What followed ignition was not the bright report of a successful blastoff, but the muffled thud of fire in the hole." But still, I want to read the whole thing now.

      • This was an amazing peek into a community I didn't even know existed: Pirating the Pirates.

      • So, rumor is that if you keep saying "there'll be a rug pull any time now, the prices will go up" they will roll you up in a rug , because look at this: "we found opus 5.5 to be 2X as efficient as gpt-6-sol in our internal cfo.ai evals so i was not expecting 6.1-sol to improve on that much but to see it 3X the efficiency of opus 5.5 and 2.5X against even sonnet 5.5 is actually [mindblowing]" GPT-6.1 Sol cost $2.72 vs. Sonnet 5.5's $7.60 on the same task, with the same score.

      • Anthropic on GLM-5.3: "Here, full credit is awarded for a full control-flow hijack. We evaluate several models on 100 tasks from the benchmark (selected at random), and find that GLM-5.3 develops full control flow hijacks in 4% of the trials; Claude Mythos Preview did so in 6%. Although GLM-5.3 performs below Claude Mythos Preview here, a meaningful threshold has clearly been crossed: earlier models, like Claude Opus 4.6 and GLM-5.2, do not succeed in any of them." That's wild, isn't it? Mythos, the model so dangerous that Anthropic only wants to give it to its highest-paying customers, got 6% and GLM-5.3, the Chinese model, gets 4%. And they managed to disable "GLM-5.3's safeguards between 64% and 100% of the time with simple techniques in our simulated tests." What I wonder now: doesn't that mean that Pandora's Box has been opened and that no "pacing" will help, that whatever Anthropic campaigned for when they got Mythos locked up by the U.S. government, is now in the past?

      • This is amazing and motivating and inspiring and I want every company and every organization and every government in the world to do this: "by the end of the ZBR cycle on July 1, 2026, Idaho had eliminated roughly half (49.1%) of its regulatory code. Regulatory volume fell in each of the eight annual code publications from 2019 to 2026 under ZBR. What Idaho has done, other states can achieve as well." ZBR refers to Zero-Based Regulation and that "borrows its central premise from zero-based budgeting: last year's baseline should not be presumed to be the right starting point. Traditional regulatory review generally asks what should be changed or repealed, if anything, from the existing code. ZBR begins with a more fundamental question: If the state were starting from scratch today, which rules would it adopt and in what form? The practical effect is to reverse regulatory inertia. Instead of requiring reformers to prove that an existing rule should be eliminated, the agency must justify why the rule should continue to exist."

      • Destroy Any Website. Awesome. More.

      • There have been many variations of the original motherfuckingwebsite.com and they never quite topped it, did they? But this newest one, the Modern Motherfucking Website, is quite good. I had Amp change my personal website to use that styling and… I think I might just push that up?

      • Jeffrey Katzenberg, co-founder and CEO of DreamWorks and, prior to that, CEO of Disney, on AI and Creativity and filmmaking: "The Disney archives held astonishing recordings of Walt explaining his creative process. His own writings. His notes and storyboards. Work product captured at every stage of his process. This was truly a gift. Listening, reading, sitting with the work itself, we heard him talk about character, about emotion, about how an audience feels when a character truly comes alive. He talked about making bold choices and refining a scene until it genuinely moved people. We didn't hear a word about pencils or paintbrushes. In fact, Walt was famous for being a technologist, forever hunting for state-of-the-art tools, often inventing them himself to achieve the images he saw in his head. But he never defined animation by the tools. He defined it by whether the audience believed the character. His principles were timeless. The tools were not. […] Tools are never the point. The instruments change with every generation. What endures is taste and imagination. The magical ability to make an audience feel. One of the greatest storytellers of our generation, George Lucas, succinctly captured the eternal essence of this issue: 'It's not the how, it's the why.'" The whole thing is very good.

      • Is Mathematics Over, or Just Graduating?: "Once airplanes get cheap, we will also discover satellites. We will map the whole terrain for mineral deposits and other valuable resources, and then extract them. It will be messy and dirty, and today's explorers will be deeply appalled at what it does to their beautiful jungle. They will long for the good old days. They will say this is no longer exploration but a commercial undertaking, large corporations wrecking the area they were so keen to explore. They will be right, but it won't change much, and large companies will find unimaginable riches there. […] Do not bet against the airplane. The skeptics who say AI can't conjecture, can't theorize, and can't explain are describing last spring's models. Within months, they will be describing nobody. The evidence is already on the table, and those with eyes can see it. Every "it can't do X" has a short shelf life now, and anyone building their identity on one of those sentences is building on sand."

      • Wilhelm is building a personal super app and it sounds like such a good idea. By now we've probably all experienced how easy it is to add more functionality once you have the skeleton of an app and deployment set up. This leans into that.

      • I'm not in need of one, but there are new Kindles and, man, they look good.

      • Jason Fried built his own writing application and there are a thousand things I could say here, but instead let me just say this: watch the demo video and think about how you would've built all of that three years ago. Also: god that guy is great at demos.

      • So there's been a bit of a kerfuffle because Figma doesn't allow any arbitrary MCP client to connect to their MCP server and the majority opinion seems to be that Figma should just allow that. Okay. But to me the most interesting thing that came out of the discussion was this post by Wes Bos and his reply further down: "Figma doesn't want you to use MCP. Amazon doesn't want you to shop with agents. Reddit won't let Claude access threads. X won't let ChatGPT read tweets. It's starting. This happened with APIs 8 years ago. […] I'd be willing to bet Amazon makes more money when you use the app. Grocery stores make more money when you walk the cash wrap. Airlines make more money when they scare you into buying insurance. Dark design patterns and consumer usage data make money. They don't want to give that up for some chat bot deciding what the cheapest red shoes are." It seems so obvious when put like that, doesn't it? He's exactly right of course: I remember many many years ago there were conference talks and excited conversations about how once everything is REST and everyone uses OAuth we can just pipe this into that and build our own client for that and have our cake and eat it too. Except that didn't happen. Not even close. So why would all the companies now allow anyone to bring their agent?

      • Jurassic Generation. I want to re-watch Jurassic Park now.

      • That being said: I think Sign in with ChatGPT might be one of the most interesting things launched this week. (Amp was a launch partner!)

      • Remember the Rippling vs. Deel corporate espionage drama? This isn't as good, but it's close: Factory kicked out a board member because (that's the accusation) he shared confidential information with Factory's competitor Cognition. But then the accused said he actually quit. But Keith Rabois said even that would be unethical and a lot of dirt was thrown. Very entertaining but I'm willing to bet that in a week no one will even talk about it anymore.

      • Made by mechanical means, by Felix Rieseberg, on how he used Claude to rebuild his personal website. What would you call this? Programming? Designing? Or just… building software?

      • Werner Herzog: "I only tell everyone out there: it will be a counterpoint against what you normally learn in film schools. Young people spend way too much time in film schools. It's way too expensive, way too long. And I don't like the kind of teaching there. So I said, 'Two things I really will teach you. Number one: lock picking. And number two: forging of documents,' like forging a shooting permit. And a film like Fitzcarraldo could not have been made without massive forgery, so you have to have the right criminal energy and the skills to learn."

      • Stewart Copeland playing the drums. YouTube says the video's been there for 19 years. I think I've watched it at least once in each one of those years.

      If you're in NYC you should definitely subscribe, but even if you're not you should:

    11. 🔗 earendil-works/pi v1.0.2 release

      New Features

      • Sampling by thinking level — samplingParamsByThinkingLevel in models.json sets sampling parameters such as temperature and top_p for each thinking level on OpenAI-compatible APIs. See Configure sampling by thinking level.

      Added

    12. 🔗 Filip Filmar Thanklessly Maintaining Open Source Software: the book rss

      Thanklessly Maintaining Open Source Software started as a fake O’Reilly book cover, and it is now an actual book on Amazon. It has 95 pages, a year in the life of one unlucky maintainer, and a price of exactly one hexadecimal dollar. This post explains what is in it, and why you might want it anyway.

      The cover of Thanklessly Maintaining Open Source Software

      Buy it on Amazon →

  3. October 03, 2026
    1. 🔗 Simon Willison We're going to need default hard budget caps on pretty much everything rss

      Here's a product feature which the world is going to need a whole lot more of over the coming months and years: default hard budget caps. I'm talking about the feature of pay-by-usage services and APIs that lets you say "after $X/month, cut this thing off and return errors". These need to be hard limits. Soft caps, "after $X/month, send me a warning email", will not cut it.

      Coding agents, and personal agents (coding agents wrapped in a less threatening UI), greatly reduce the friction of spinning up code that can do useful things. Sometimes those things cost money - calls to paid APIs, or hosted web applications, or systems that can bill for additional storage and compute.

      Nobody wants to wake up to an email sent at midnight warning about a budget limit and find that, while they slept, their rogue service had consumed several hundred (or several thousand) more dollars of usage.

      An argument against this is that businesses don't want their hosted applications to start throwing errors because some budget was exceeded. I expect that most businesses and individuals would prefer errors to a surprise $10,000+ bill.

      I think hard budget caps need to be the default. If someone wants to live dangerously they should be able to do that, but it needs to be on an opt-in basis. Have a nice, clear checkbox somewhere prominent:

      Remove the budget cap. My application will not be shut down if I exceed the configured budget limit, and I will be responsible for subsequent charges.

      The service I most want to see this from is AWS. I've heard plenty of stories from people who refuse to use AWS for personal projects out of (justified) fear that a runaway service might bankrupt them. I've also heard stories from people who didn't anticipate this and ended up seriously burned.

      ... and it turns out AWS finally launched spending limits a few weeks ago! From their announcement New AWS experience helps builders get started and ship faster on 16th September:

      When you're ready to upgrade to a paid plan, you can set a monthly spend limit for your project based on your usage patterns so that you stay within your budget. If a project's usage reaches its spend limit, your project is paused for that month.

      See also Create a spend limit in AWS Settings, though that page warns that "We're currently releasing our new experience to a limited number of customers." Here's hoping that hits general availability for existing accounts soon.

      Google Cloud launched a similar feature in July, called Spend Caps, which lets you "set a monthly financial cap on specific services within a project". Looks like this is becoming a trend!

      In an ideal world, our agents could help with this. It would be great if agents started biasing towards recommending providers with hard budget caps, and warning new and inexperienced builders against deploying applications using uncapped services that might get them into trouble.

      You are only seeing the long-form articles from my blog. Subscribe to /atom/everything/ to get all of my posts, or take a look at my other subscription options.

    2. 🔗 hacker news idalib references New comment by TuxSH in "Pop!_OS bans AI-generated code from much of its codebase" rss

      Vibe coding has always had and always will have one fundamental flaw: you didn't write the code it produced, therefore you don't have a good understanding/mental model of it.

      On the other hand asking these clankers "review the feature branch I wrote" and "review my entire codebase for bugs" or "help me debug this" has saved me months of prospective work.

      And more recently most major models have been getting _really_ good at RE, for example you can have OAI models (and maybe A/'s if they don't refuse) use idalib MCP and reverse-engineer stuff from start to finish, then follow up with GLM 5.3 for vuln assessment and exploit PoC.

      Stuff that used to take weeks or months now just takes a few hours, or less.

    3. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.44.0 release

      Added

      • Jump to a line : : and a number land on that line (:0 first, :$ last), opening a fold or &lt;details&gt; that hides it.
        Thanks @black-snow (#90).

      • Breaking:: is a new default key. A [keybindings] config that already uses : now collides and must move it.

    4. 🔗 r/LocalLLaMA The Rise of Overfit Inference Engines rss

      The Rise of Overfit Inference Engines | There seems to be a whole category of extremely narrow inference runtimes appearing: Strata, ninfer, DwarfStar, Splash, llamAmpere, gufo, etc. They deliberately give up the thing llama.cpp/vLLM are great at - generality - and optimize around a small number of models and
      sometimes one hardware family e.g. Strix Halo It seems that general runtimes for compatibility, disposable overfit runtimes for maximum performance is going to be the norm forward. This is actually another good step in helping the democratization and decentralization of intelligence (models and runtimes both) and extracting more out of existing hardware where it doesn't have to be beautiful, well written, as long as it gets maximum output from one particular configuration. Curious if people think this the future/norm. submitted by /u/carteakey
      [link] [comments]
      ---|---

    5. 🔗 earendil-works/pi v1.0.1 release

      New Features

      • Nix flake — nix run github:earendil-works/pi/stable runs the latest release, and nix profile add github:earendil-works/pi/stable installs it. See Install pi.
      • Project overrides for MCP servers — .pi/mcp.json and /mcp can enable, disable, or change the exposure of a user-level server for one project. See Configure servers.
      • MCP Client ID Metadata Documents — oauth.clientRegistration: "cimd" lets authorization servers allow pi by its document URL instead of dynamic registration. See Authenticate with OAuth.
      • Tool renderers for any tool — pi.registerToolRenderer() draws calls to tools that are not registered yet, such as MCP tools in resumed sessions. See Tool rendering.
      • Cloudflare Clef classifiers — @cf/cloudflare/clef and @cf/cloudflare/clef-flash are usable from codemode scripts and extensions. See Use classifier models.

      Added

      • Added a copy key (app.message.copy, default ctrl+x) to OAuth sign-in screens in /login, /mcp, and /mcp login, which copies the sign-in URL when the browser cannot be opened or the wrapped link cannot be selected.
      • Added oauth.clientRegistration: "cimd" for MCP servers, which identifies pi with its Client ID Metadata Document on pi.dev instead of dynamic client registration, so authorization servers can allow pi by URL (#10302)
      • Added project overrides for user-level MCP servers: a .pi/mcp.json entry without command or url sets only enabled, exposure, and toolExposure of the user-level server, and /mcp can enable or disable a server for the current project (#10277)
      • Added Cloudflare's Clef and Clef Flash classifier models to cloudflare-workers-ai, usable from codemode scripts and extensions (#10316 by @ndisidore, #10322 by @RealAlexandreAI)
      • Added pi.registerToolRenderer(), which chooses how calls to a tool are drawn, including tools that are not registered (#10285)
      • Added a Nix flake for macOS and Linux: nix run github:earendil-works/pi/stable runs the latest release, and nix profile add github:earendil-works/pi/stable installs it. See Install pi (#9137)

      Changed

      • pi update on global npm installations now recommends migrating to the managed installation from the pi.dev installer, which pins all dependencies.
      • Anthropic tools added or redefined mid-conversation are now defined inline in the conversation, so redefining a tool under the same name keeps the prompt cache instead of resending the full tool list.

      Fixed

      • Fixed installations resolving vulnerable brace-expansion 5.0.9 by pinning brace-expansion 5.0.12 as a direct dependency (GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7, GHSA-6j4f-fj2g-mc7p) (#10288)
      • Fixed a trailing comma in --models adding an extra model to the model cycle (#10334)
      • Fixed a codemode script that prints in a loop crashing pi by running out of memory: a script fails once its output passes 16 Mi characters or 100000 items (#10283)
      • Fixed JPEG, GIF, and WebP images rendered by extensions through Image not appearing in Kitty, Ghostty, WezTerm, and Warp (#10292)
      • Fixed MCP tool calls in resumed sessions and HTML exports rendering fully expanded until their server connected, or for good if it never did (#10285)
      • Fixed fullscreen Kitty images collapsing to a one-row strip after scrolling in WezTerm (#10319)
      • Fixed "Selected model is at capacity" provider errors ending the turn instead of being retried (#10278)
      • Fixed Cloudflare AI Gateway Claude models failing with a 404 by using dashed model IDs (claude-opus-5-5 instead of claude-opus-5.5)
      • Fixed Sign in with ChatGPT continuing when its callback port is taken by another login, which made the browser show "OAuth state mismatch"; it now fails with a port-in-use error (#10265)
      • Fixed Amazon Bedrock OpenAI models costing requests above 272k input tokens at the short-context rate; Bedrock models now include the pricing tiers listed on models.dev (#10326)
      • Fixed Amazon Bedrock Claude requests failing with "Invalid signature in thinking block" after the system prompt or tools changed (#10324)
      • Fixed Together DeepSeek V4 Pro losing its thinking level controls after Together renamed it to deepseek-ai/DeepSeek-V4-Pro-0813 (#10336 by @cv)
      • Fixed the default NVIDIA model pointing at nvidia/nemotron-3-super-120b-a12b, which NVIDIA no longer serves; the default is now nvidia/nemotron-3-ultra-550b-a55b

      Removed

      • Removed npm-shrinkwrap.json from the published package. npm installations no longer pin transitive dependencies, and library consumers can now override them. Use the pi.dev installer for pinned installations (#5653)
    6. 🔗 r/LocalLLaMA Yes bots we get it, Strata is good now please stop rss

      Yes bots we get it, Strata is good now please stop | It's like the entire sub has become that scene from Konosuba where the cult keeps making up fake scenarios saying the only solution is to join their religion submitted by /u/Mayion
      [link] [comments]
      ---|---

    7. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.43.0 release

      Changed

      • Colors by meaning : each theme focuses in its own accent, like herdr's frame, and every color reads on what sits behind it.
        Running checks are yellow, like herdr's working dot.

      • Rendered markdown takes the theme's heading and code colors , per level in Catppuccin and Everforest, and inline code sits on a chip.

      Fixed

      • Line numbers and faint text are readable in every theme , and tokyo-night-day shows its selection and diff tints.
    8. 🔗 r/LocalLLaMA Aleph-Alpha/Kolibri-1 · Hugging Face - 78B parameters. 3.46B active. Up to 1M tokens of context - Apache 2.0 rss
    9. 🔗 r/LocalLLaMA I'm pretty close to the middle thanks to you all rss

      I'm pretty close to the middle thanks to you all | It's been a blast and learning a ton. But seriously, you all have me down a rabbit hole that my wallet and hours of sleep need to be pulled out of. submitted by /u/pmarsh
      [link] [comments]
      ---|---

  4. October 02, 2026
    1. 🔗 MetaBrainz Our editors: vzell rss

      This is part of a series where we talk to some of the amazing editors that have cracked one million MusicBrainz edits and qualified for super special (lousy) shirt plan.*

      These users have donated substantial amounts of their time to improve open music data, enriching open-source knowledge and culture for billions of people. Let’s find out what makes vzell click. And click and click and click!

      Thanks so muchvzell for agreeing to chat. Many MusicBrainz editors will know you through your MusicBrainz profile and editing - who are you offline?

      Hi, I'm from Germany (originally born in Romania, Transylvanian of German descent). I live in Drabenderhöhe—the largest Transylvanian-dominated community near Cologne—where we keep all Transylvanian traditions alive.

      I am an avid singer myself and a member of an eight-time championship-winning choir; it is my favorite hobby, right after Bruce Springsteen and MusicBrainz. I studied physics and have been retired for a year, yet I still work three days a week in the IT industry.

      How did you get started with editing MusicBrainz?

      It's all because of Bruce Springsteen dominating my life musically. As a data fetishist, I want to record every conceivable piece of information in a super database like MB.

      Ah, a MusicBrainz obsession sprouting from another music obsession. That will be familiar to many MusicBrainz editors.

      How does editing MusicBrainz fit into your everyday life and routine?

      Perfectly… as I sit in front of the computer anyway, listening and archiving Bruce and related stuff.

      Do you have any personal tricks or rules to keep a large amount of editing sustainable, healthy and fun?

      Yes… have a lot of friends to party with, a choir to sing with AND listen to Bruce during editing (a never ending story, this guy has so many bootlegs and I have them all, 30 TB on my NAS). Last but not least, stay focused and work precisely, it's worth it… and… laugh and enjoy life, there seems to be actually only one.

      Do your friends and/or family know that you edit MusicBrainz for (hopefully) fun? What do they think about it?

      All of them know about it and now with the T-shirt it will wide spread even more 🙂

      Actually they like it, and they know it's my habit to work precisely no matter what it is that I'm doing.

      What is your favourite thing to edit?

      Right now, entering every single Bruce bootleg on earth after I finished off (a long time ago) entering all his events (about 4,200) and works and having a lot of beer…

      What is your least favourite thing to edit?

      Bruce related Various Artist albums, but I do it anyway…

      What are your favourite editing tools? Do you have any editing tips?

      In the beginning my fingers, later on I automated as much as possible with self written Emacs Lisp routines (yes I'm an Emacs guru). Nowadays userscripts I've written with the help of AI (Claude), see [forum thread].

      One tip so, be consistent in what you're doing, every single dash/en-dash/em- dash matters… hahahaha

      Last but not least, what are your current top music recommendations!

      Well, do yourself a favour and listen to Willy DeVille and maybe… hahahaha… to our choir MGV Drabenderhöhe.

      And last but not least "The Boss"…

      Thanks again vzell. Happy editing!

      *If you are a million-editor and missed our emails and are keen for a shirt and/or a chat, please get in touch. If you have a million edits you should know how to reach staff, so no contact link for you! Non-million editors, you are also welcome to share your story, please get in touch (you get a link!)

    2. 🔗 r/LocalLLaMA Buying RTX 5090 At Micro Center Reportedly Now Requires Paperwork, Including A No-Export Declaration rss

      Buying RTX 5090 At Micro Center Reportedly Now Requires Paperwork, Including A No-Export Declaration | submitted by /u/Boomfrag
      [link] [comments]
      ---|---

    3. 🔗 Kagi An Update on Orion for Linux and Windows rss

      Kagi is ending development of Orion for Linux and Windows and open-sourcing both so the community can carry them forward. Our small team will now focus fully on making Orion for macOS and iOS faster, more stable, and more capable.

    4. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.42.0 release

      Changed

      • Clearer messages : a refused send says why and how to get the comments out, and errors name what to fix.

      Fixed

      • q asks before dropping unsent comments: Q drops them and quits. A config that binds Q must move quit-discard.
        Thanks @ruinshe (#119).

      • Send refuses an agent at a permission prompt , which drops a paste, and keeps every comment.
        Thanks @stephenchristensen-caredotcom (#86).

    5. 🔗 r/LocalLLaMA I made my iPhone a second GPU for my 24 GB MacBook: Qwen 3.8 27B prefills 29–44% faster & my holds part of the CTX window. rss

      I made my iPhone a second GPU for my 24 GB MacBook: Qwen 3.8 27B prefills 29–44% faster & my holds part of the CTX window. | DISCLAIMER THE PREFILLING TPS SHOWN ON THE PHONE IS COMPUTED ONLY FOR THE LAYERS IT HOLDS. ALREADY FIXING IT TO SHOW END-TO-END PREFILL RATE. NUMBERS BELOW ARE ACCURATE FOR E2E PREFILL RATE. Every file or tool result my agent reads on a 24 GB M4 Pro MacBook is a wait, and 64k of 8-bit context is all that fits next to Qwen 3.8 27B (IQ4_XS), even with the wired limit raised to 20480. An iPhone 17 Pro Max was sitting in my pocket, so I figured what can I do to make use of this extra silicon. Turns out a 10 Gb/s USB-C cable & some software is all you need. The Mac runs layers 1–40 of each 256-token batch and streams the activations to the phone. The phone runs layers 41–64 on its GPU while the Mac starts the next batch. The A19 Pro's GPU has matrix units (Metal 4 tensor ops), and they make the phone's half 2.4x faster than the same phone without them. Same build, phone off vs. on, prefilling a 2,000-token file into a saved agent session:

      • 8k context: Mac alone 132 tok/s → Mac + iPhone 177 tok/s (+35%) (measured two days earlier, same bench)
      • 16k context: Mac alone 109 tok/s → Mac + iPhone 157 tok/s (+44%)
      • 32k context: Mac alone 101 tok/s → Mac + iPhone 130 tok/s (+29%)
      • 48k context: Mac alone 87 tok/s → Mac + iPhone 113 tok/s (+30%)

      A fresh 27k-token agent session, cold: 245 s on stock llama.cpp, 228 s on my fork with the Mac alone, and 168 s with the phone. Past 64k the phone switches jobs. The oldest KV pages move to the phone and the Mac runs all 64 layers. For every attention layer, the phone computes attention over the old keys on its GPU, and the Mac merges that with its own part. While writing, the phone's Neural Engine takes part of that work too: each 16k-key page of old context is compiled into a Neural Engine model with the keys as its weights. At 140k that took writing from 279 to 176 ms per token compared with the phone's GPU alone. The server allocates 196k–229k of 8-bit context based on the phone's free memory; that's up to ~5.7 GB of KV cache living on the phone instead of the Mac, so the Mac's memory use stops growing at 64k. I've tested a growing session to 128k at 8-bit, with 3/3 planted facts recalled. Separately, at 140k in 4-bit, the run passed the gate with greedy output matching the Mac-only run for 32 generated tokens. What it doesn't do: speed up writing below 64k. That's the Mac's job. My fork's kernels (SME2 on the M4 CPU and Metal fusions) plus DFlash2 speculative decoding take it from 11.3 tok/s on stock llama.cpp to 25 tok/s at about 30k context with medium thinking, phone or not. SME2 also adds up to 29% to prefill on the Mac alone. Past 64k the phone does share the writing (attention over the old keys), and without it the Mac would have to drop to 4-bit context to reach 128k. In real use I have seen upwards of 30 TPS at lower context. The phone joins prefills over about 512 tokens. In one real session, that was 7 of 36 requests, but about 83% of the tokens read. Past 64k it holds the context and does the old-key attention, but it stops running layers 41–64 there for now; doing both is next. One request at a time. I'm curious what this setup could do with newer model architectures. DeepSeek V4.1-Flash reports 890 bytes per token for its global KV cache and adds n-gram embedding tables (Engram). Qwen3.8-Flash-Next, the Qwen 4 architecture preview, has an n-gram lookup table too. Those aren't features of the 27B model I tested, and I haven't benchmarked either architecture here. The real gold is within the newer phones and models working together. With the A20 Pro in the iPhone 18 Pro Max, I bet there is a lot more for me to push. Code, setup and bench scripts: https://github.com/StayLameBro/backburner Still a lot of work to do but I built this with Opus 5.5. Happy to answer anything. submitted by /u/StayLameBro
      [link] [comments]
      ---|---

    6. 🔗 r/LocalLLaMA Qwen3.8-27B-Humanlike-Chat 2.0: texts like a human, now with tool calls and better instruction following rss

      Qwen3.8-27B-Humanlike-Chat 2.0: texts like a human, now with tool calls and better instruction following | Last month I posted a Qwen3.8-27B LoRA that makes it talk like a person instead of an assistant. It got a lot more attention than I expected: 700+ upvotes, 248 comments and 44k downloads since. I read every comment. People really don't like assistant speak, so its tone of voice resonated. The rest got roasted, very fairly:

      incapable of producing more than a few words at a time. single default personality which no amount of prompting can overcome will not use tools , at all, whatsoever. There needs to be a middle ground

      They were right. The tool calls didn't actually work, and when people asked it to do something it would sometimes just say it's busy or going to bed. Very human. In a bad way. So I spent the last three weeks on 2.0. The goal was simple: keep the voice people liked and lose the drawbacks. What 2.0 does now

      • With no system prompt, it's a normal person texting. Not an assistant, not a catgirl.
      • Give it a character card and it becomes that person, and still texts like one.
      • Ask for a formal email, numbered steps or a proper explanation, and you get exactly that. Then it goes back to texting.
      • Don't want the lowercase texting? Tell it "from now on write in full sentences" (or put it in the system prompt) and it sticks to that until you say otherwise. v1 ignored this completely.
      • It calls tools, and it asks when something is missing instead of making it up. This is the part I'm happiest about. Ask the base model to book a flight without saying where from and it picks JFK. 2.0 asks where you're flying from.
      • It writes code and does math at roughly base-model level.

      It's a colleague and a humanlike companion, not an assistant. Use it for chat, roleplay, agents or actual work. How I trained it v1 was plain SFT on real and synthetic conversations (139,845 messages from 1,396 conversations). That copies habits, including the bad ones. For 2.0 I used on-policy distillation. The model writes its own replies and a teacher grades every token. There are two teachers:

      • v1 plus a hidden "text like a person" instruction, for chat and characters;
      • the plain base model, for instructions, tools and code.

      The student never sees the hidden instruction, so it learns the behaviour without needing a prompt. Same 27B, a second LoRA on top, merged. Numbers (vs the model I trained on, huihui-ai's abliterated Qwen3.8-27B; same prompts, same run, thinking off) | Benchmark | Base (abliterated) | 2.0
      ---|---|---
      IFBench (instruction types I never trained on) | 37.3 | 43.7
      When2Call (call, ask or refuse correctly) | 48 | 58
      BFCL irrelevance (don't call a tool when none fits) | 60 | 78
      IFEval, GSM8K, BFCL simple | 81.9 / 89.1 / 97 | 83.5 / 89.1 / 98 (ties)

      Full chart in the images.

      Where it's still worse: knowledge (MMLU-Pro 72.5 vs 78.5) and competitive code (LiveCodeBench 51 vs 56).

      Is it actually more human? I built a benchmark for this, "ishuman":

      • It takes 150 fragments from unseen chats.
      • Has each model write the next message.
      • Shows a judge the real message and the model's without labels, and asks which one a person wrote.

      Model | Judge thought it was the real person (50% = can't tell)
      ---|---
      Qwen3.8-27B abliterated (huihui-ai, the model I trained on) | 0.3%
      Same abliterated model + a "text like a human" system prompt | 6.8%
      Qwen3.8-27B official (unmodified, via OpenRouter) | 15.1%
      Qwen3.8-27B-Humanlike-Chat 2.0 | 23.5%

      So no, you can't just prompt your way there. In a separate test of 16 live multi-turn chats with invented people, 2.0 was picked over the base model 16 out of 16 times.

      Links

      Big thanks to everyone who left feedback last time, especially the ones who were critical. Tell me where it still sounds like an assistant.

      Edit: safetensors are up for vLLM and SGLang:
      GPTQ-Int4 (24 GB): https://huggingface.co/LessThanThreeAI/Qwen3.8-27B-Humanlike-Chat-2.0-GPTQ- Int4
      FP8 (48 GB): https://huggingface.co/LessThanThreeAI/Qwen3.8-27B-Humanlike- Chat-2.0-FP8
      BF16 (80 GB): https://huggingface.co/LessThanThreeAI/Qwen3.8-27B-Humanlike- Chat-2.0

      submitted by /u/kvyb
      [link] [comments]

    7. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.41.0 release

      Added

      • ayu theme, ayu Dark with its own syntax colors.
        Thanks @r-darwish (#118).

      • everforest theme, Everforest dark with the hard background.
        Thanks @snaggen (#123).

    8. 🔗 r/LocalLLaMA New in llama.cpp: Decision Models rss

      New in llama.cpp: Decision Models | submitted by /u/paf1138
      [link] [comments]
      ---|---

    9. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.40.1 release

      Fixed

      • Install works with older curl , such as on Red Hat 8 and CentOS 7.
        Thanks @chengdejerrylin (#113).

      • PR comment ages honor the timestamp's time zone : a time with an offset like +02:00 no longer reads as UTC.
        Thanks @beefyhalo (#122).

    10. 🔗 persiyanov/herdr-reviewr herdr-reviewr 0.40.0 release

      Added

      • Review markdown rendered : comments, change marks and find. m flips every markdown file in the pane, and markdown_view opens it rendered.
        Thanks @kamadakohei (#48) and @zereight (#103) for asking.
    11. 🔗 Luke Muehlhauser Media diet for Q3 2026 rss

      Music

      Music I most enjoyed discovering this quarter:

      This quarter, I switched my focus from classical (including contemporary classical) music to jazz, because I hit diminishing returns on finding classical composers I liked. New-to-me jazz artists I "strongly liked" some music from were:

      • Phronesis: most of Organic Warfare (2007), some of Green Delay (2009), some of Walking Dark (2012), most of Life to Everything (2014), some of Parallax (2016), some of The Behemoth (2017), "One for Us" & "The Tree Did Not Die" (2018)
      • Jasper Hoiby: "Fellow Creatures" (2016), some of Conversations of Hope (2026)
      • Gard Nilssen: some of If You Listen Carefully the Music is Yours (2020), "The Space Dance Experiment" & "SP68" (2023), some of Great Intensions (2025)
      • Guillaume Perret: most of Guillaume Perret & the Electric Epic (2012), "Doors" & "Shoe Box" (2013), most of Open Me (2014), "She's Got Rhythm" (2016), some of A Certain Trip (2020)
      • Andy Emler: Mega Octet "Part 1" & "Part 7" (1990), Head Games "Part 6" (1992), "Bacteria" (2003), "Urbanhof" & "Minicrobe" (2004), some of West in Peace (2007), most of Crouch, Touch, Engage (2009), some of E Total (2012), "Finally Closing" (2014), most of Obsession 3 (2015), most of A Moment For (2018), some of No Rush! (2021), some of The Useful Report (2022), some of Le Temps est parti pour rester (2025)
        • With these new listens, Emler has crossed the 5-hour mark as one of my favorite musical artists!
      • Ola Kvernberg: "Bricks of Stone" (2006), "Roland" (2009), some of Liarbird (2011), most of The Mechanical Fair (2014), some of Northern Tapes (2014), some of Steamdome (2017), most of Steamdome III (2024), "Let's Go" & "Ludvig Takes Over" (2026)
      • Ivo Neame: some of Strata (2015), "The Rise of the Lizard People" & "Strega" (2021)
      • Fred Pallem: "Ti seppellirei neil giardino" & "Mustang Pursuit" (2011), some of Le retour! (2015), "Get It In Orbit" & "Bitches en Marbella" (2022), "Poursuivi par des elephants genats" (2022)
      • Lukas Kranzelbinder / Shake Stew: "Milking of the Mugwumps" & "Dreams of Sex and Crime" (2012), "Rise of the Black Centipede" & "Hans" (2015), most of The Golden Fang (2017), most of Rise and Rise Again (2018), most of Gris Gris (2019), "Play Mass" (2020), most of Heat (2022), "Lila" & "Shasta Fey" (2023), most of Ten One Two (2026)
        • With these new listens, Kranzelbinder has crossed the 5-hour mark as one of my favorite musical artists!
      • Zbigniew Seifert: "Trubulent Plover" & "On the Farm" (rec. 1976), "Impressions" & "Spring on the Farm" (1979), "Passion" & "Pinocchio" (1979)
      • Chris Lightcap: some of Deluxe (2010), most of Epicenter (2015)
      • LBT: some of Levitation (2016), Way Up in the Blue (2018), most of Stereo (2020), Make Kin (2021), most of Abstrakt (2023), House (2023), "Jabal" (2023)
      • Frederic Maurin / Ping Machine: some of Encore (2013)
      • Magic Malik: some of 69-96 (2000), "Passage a vide" (2002), "XP 21" (2004)

      I also listened to a significant portion of the recorded works by each of the (new-to-me) "classical" composers listed below.1 My favorites pieces from them (names linked to playlists) were:

      • Johan Halvorsen (b. 1864): "Entry March of the Boyars" (1893)
      • Geronimo Gimenez (b. 1854): El baile de Luis Alonso "Preludio" & "Intermedio" (1896), La boda de Luis Alonso "Intermedio" (1897)
      • Leo Weiner (b. 1885): Hungarian Folk Dances Suite mvts 1, 2, 4 (1931)
      • Plus the following composers for which I didn't "strongly like" any of their pieces I listened to: Jan Novak (b. 1921), Fisher Tull (b. 1943), Ketil Hvoslef (b. 1939), Ma Sicong (b. 1912), Jef Penders (b. 1928), Robert Muczynski (b. 1929), Francisco Esteve Pastor (b. 1915), Manuel Carrascosa García (b. 1911), Antonio Soler (b. 1721), Karl King (b. 1891), Henry Fillmore (b. 1861), Manuel Lopez Farfan (b. 1872), Boris Tchaikovsky (b. 1925), Peter Kleine Schaars (b. 1962)

      Rediscovered or revisited, and strongly liked:

      • Hidden Orchestra: some of Night Walks (2010), some of Archipelago (2012), some of Dawn Chorus (2017)
      • Brandt Brauer Frick: "You Make Me Real" & "Mi Corazon" (2011), "Ocean Drive (Schamane)" & "Skiffle It Up" (2013)
      • Ozric Tentacles: some of There Is Nothing (1986), some of Sliding Gliding Worlds (1988), Pungent Effulgent (1989), Erpland (1990), Strangeitude (1991), Jurassic Shift (1993)
      • Spring Heel Jack: 68 Million Shades (1996), most of Busy, Curious, Thirsty (1997), most of Treader (1999), Bombscare (2000), Disappeared (2000), "Chorale" & "Chiarascuro" (2001), Amassed (2002), "Lata" & "Autumn" (2004)

      And for jazz specifically:

      • Esbjorn Svensson / E.S.T.: "Dodge the Dodo" (1999), some of Seven Days of Falling (2003), "The Unstable Table & the Infamous Fable" & "A Picture of Doris Travelling with Boris" (2005), some of Tuesday Wonderland (2006), "Three Falling Free, Pt. II" (2012)
      • Hedvig Mollestad: "Antilone" & "Ekhidna" (2020), some of Maternity Beat (2022)
      • GoGo Penguin: most of v2.0 (2014), some of Man Made Object (2016), some of A Humdrum Star (2018), some of Ocean in a Drop (2019), most of GoGo Penguin (2020)
      • Martin Kuchen / Angles: "By Way of Deception" (2012), "European Boogie" & "Ubabba" (2014), "Equality & Death" & "Ardor" (2017), "The Hidden Balcony" & "Fkk Down, Fkk Off" (2022)
      • Snarky Puppy: "Sintra" & "Gretel" (2015), “Trinity” (2022), "Lingus" (2014), "It Stays With You" (2025)
      • Wacław Zimpel: "Afterimages" (2013), some of LAM (2016), Zimpel/Ziołek (2017)
      • Brad Mehldau: "Luxe" (2014), "The Prophet is a Fool" (2019), "Herr und Knecht" (2022)
      • Jaga Jazzist: most of A Living Room Hush (2001), some of The Stix (2003), most of One-Armed Bandit (2010)
      • VSOP the Quintet: most of V.S.O.P. The Quintet (1977), most of Tempest in the Colosseum (1977), most of Five Stars (1979), most of Live Under the Sky (1979)
      • Isfar Sarabski: most of Planet (2021)
      • Jaimie Branch: some of Fly or Die (2017), "Simple Siver Surfer" & "Nuevo Roquero Estereo" (2019), most of Fly or Die Fly or Die Fly or Die (World War) (2023)
      • Abercrombie / Holland / DeJohnette: some Gateway (1975), "How's Never" (1995)
      • Larry Coryell: Barefoot Boy (1971)
      • Marvin "Hannibal" Peterson: "Song of Life" (1974), some of Hannibal (1975), "Now Stand" (1978), some of The Angels of Atlanta (1981)
      • Jane Ira Bloom: "Overstars" (1987), some of Art & Aviation (1992)
      • Bobby McFerrin: "He Ran All the Way" (1990), Circlesongs (1997), some of VOCAbuLarieS (2010)
      • John McLaughlin & Shakti: "Joy" (1976)
      • David Friesen: some of Star Dance (1976), "Waterfall Rainbow" & "Dancing Spirits Before the Lord" (1977)
      • Keith Tippett: some of You Are Here… I Am There (1970), some of Dedicated to You, but You Weren 't Listening (1971)
      • Ernie Krivda: some of Satanic (1977), some of The Alchemist (1978)
      • Wynton Marsalis: “Bullet Train” (1999), Swing Symphony mvts 3, 4 (2019)
      • Møster!: "Underworld Risk" (2014), some of When You Cut into the Present (2015), "Unhorsed by Chivalry" (2018), some of Dust Breathing (2020), "The Electric Wood Orchestra / Dreaming Xaxado…" (2024)
      • Ponga: Ponga (1999), "Hagro" (2000)
      • Ned Rothenberg: some of Overlays (1991), "Hidalgo" (1995), some of Real and Imagined Time (1995)
      • Marty Fogel: most of Many Bobbing Heads, at Last (1989)
      • David Torn: some of Cloud About Mercury (1987), some of Polytown (1994), some of Tripping Over God (1995), some of What Means Solid, Traveller? (1996)
      • Matthew Shipp: some of Nu Bop (2002), "Cohesion" (2003)
      • Ben Neill: most of Torchtower (1994), Triptycal (1996), "Tunnel Vision (Spring Heel Jack Holland Tunnel Mix)" (1998)
      • James Brandon Lewis: some of The Messthetics and James Brandon Lewis (2024), some of Deface the Currency (2026)
      • The Bad Plus: most of These Are the Vistas (2003), most of Give (2004), some of Suspicious Activity? (2005), most of Prog (2007), some of Never Stop (2010), most of Made Possible (2012), some of Inevitable Western (2014), most of The Bad Plus Joshua Redman (2015), some of Never Stop II (2018), most of Activate Infinity (2019), "Sun Wall" (2022), some of Complex Emotions (2024)
        • With these new and old listens, The Bad Plus has crossed the 5-hour mark as one of my favorite musical artists!
      • Makaya McCraven: "Gnawa" & "On the Spot" (2015), "Atlantic Black" & "Inner Flight" (2018), "This Place That Place" & "Seventh String" (2022)
      • Vienna Art Orchestra / Mathias Ruegg: "Jelly Roll, but Mingus Rolls Better" (1990), some of Art & Fun (2002), "We take Pride…" (2004), "French Alphorn" (2010)
      • Miho Hazama: some of Beyond Orbits (2023)
      • Toshiko Akiyoshi: “Henpecked Old Man [22m version]” (1976), “Minamata” (1978)
      • Paul Winter: "Icarus" (1970), “Whole Earth Chant” (1972), "Kyrie" (1987)
      • Dollar Brand (Abdullah Ibrahim): “Hajj (The Journey)” (1978), some African Marketplace (1980)
      • Eric Dolphy: "Hat and Beard" (1964)
      • Dave Douglas: “Three Beasts” (1997), “Ruckus” and “Witness” (2001), Freak In (2003), Keystone (2005), most of Moonshine (2007), most of Soundtrack (2010), Expand (2010), Burst (2010), High Risk (2015), Dark Territory (2016), "Climate Strike" (2020), most of Transcend (2026)
      • Jean-Luc Ponty:2 "Contact" (1969), "How Would You Like to Have a Head Like That" (1970), Astrorama (1970), some of Sonata Erotica (1976), Upon the Wings of Music (1975), Aurora (1976), Imaginary Voyage (1976), Enigmatic Ocean (1977), most of Cosmic Messenger (1978)

      I also listened to a significant portion of the recorded works by each of the (not new-to-me) "classical" composers listed below.3 My favorites pieces from them (names linked to playlists) were:

      • Raimo Kangro (b. 1949): Concerto No. 2 for Two Pianos and Chamber Orchestra mvts 2, 4 (1988), "Display I: Portrait of Steve Reich" (1991), "Display II: Portrait of Mozart" (1991), Display VIII: Portrait of Schubert (1995), Arcus (1998), Piano Concerto No. 2 (1999)
      • Johann Strauss I (b. 1804): "Sperl Galopp" (1831), "Cachucha Galopp" (1837), "Versailler Galopp" (1839), "Radetzky March" (1848)
      • Scott Joplin (b. 1868): "Maple Leaf Rag" (1899), "The Entertainer" (1902)
      • François Couperin (b. 1668): "The Mysterious Barricades" (1717)
      • Luigi Boccherini (b. 1743): String Quintet G. 275 , mvt 3 (1771), Symphony No. 4 G. 506 , mvt 3 (1771)
      • Vittorio Monti (b. 1868): "Csardas" (1904), "Coquetterie" (1913)
      • Plus the following composers for which I didn't "strongly like" any of their pieces I listened to: Domenico Scarlatti (b. 1685), Hans Werner Henze (b. 1926)

      Movies/TV

      Ones I "really liked" (no star), or "loved" (star):

      • Barker: Obsession (2026) ★
      • Hikari: Rental Family (2025)
      • Mollner: Strange Darling (2023)
      • Trier: Sentimental Value (2025)
      • Johnson: Blackberry (2023)
      • Various: Smiling Friends , seasons 1-2 (2022-2024)
      • Various: Common Side Effects , season 1 (2025)
      • Jones: I Swear (2025)
      • Parsons: Backrooms (2026) ★
      • Moore: The Outfit (2022)
      • Borgli: Sick of Myself (2022)
      • Borgli: The Drama (2026)
      • Stanton: Toy Story 5 (2026) ★
      • Blitz: Review , season 2 (2015) ★
      • Blitz: Review , season 3 (2017)
      • Johnson: Nirvanna the Band the Show the Movie (2025) ★
      • Eggers: Nosferatu (2024)
      • Various: The Larry Sanders Show , season 1 (1992)
      • Ricky Gervais & Stephen Merchant: Extras , season 2 (2007)
      • Wilde: The Invite (2026)
      • Various: The Comeback , season 1 (2005)
      • Various: The Comeback , season 2 (2014)

      Games

      All games I finished or decided to stop playing:

      • [none]

      Standup comedy

      • Kelsey Cook: Happy Hour (2026)

      Books

      I post book ratings and reviews to my Goodreads account instead of here.

      1. The pieces I listened to for each composer were: Novak, Tull, Hvoslef, Ma, Penders, Muczynski, Esteve Pastor, Carrascosa García, Halvorsen, Gimenez, Soler, King, Gillmore, Lopez Farfan, B. Tchaikovsky, Weiner, Kleine Schaars.
      2. Because so many of my favorite Ponty tracks are covers, in his case I'm strictly limiting my Favorites playlist to non-covers, which I don't do so strictly for other artists' Favorites playlists.
      3. The pieces I listened to for each composer were: Kangro, Strauss I, Joplin, Couperin, Boccherini, Monti, Scarlatti, Henze.
    12. 🔗 tomasz-tomczyk/crit v0.21.1 release

      What's Changed

      Daemon and approve

      • fix: stop the daemon over HTTP on approve and crit stop (#1001) by @fhucko in #1001 - Thank you!
      • fix(web): lock the finish button once the server has stopped (#1002) by @fhucko in #1002 - Thank you!
      • fix(daemon): delete the session lock file before unlocking it (#1003) by @fhucko in #1003 - Thank you!

      OpenCode

      Review page

      Internal refactors

      New Contributors

      Full Changelog : v0.21.0...v0.21.1

    13. 🔗 r/LocalLLaMA Does anyone know if any new releases from Mistral are planned? rss

      Does anyone know if any new releases from Mistral are planned? | It’s been a long time since the last models came out. I notice they are selling GLM on the site, and I wonder if they are developing something, given the long silence. submitted by /u/LegacyRemaster
      [link] [comments]
      ---|---

    14. 🔗 Confessions of a Code Addict How and Why fork() Uses Copy-on-Write rss

      In the last video, we learned about copy-on-write (CoW) and understood its mechanics by digging inside the mmap pathway in the kernel. This is a continuation of that where we look at the fork() system call and how it uses copy-on-write behind the scenes.

      Following is a timestamped list of chapters in the video to help you navigate quickly. Also, I recommend watching the video at a higher speed to get a better experience.

      • (00:00) Introduction : Copy-on-write with fork() and the Instagram example.

      • (02:54) Copy-on-write recap : Sharing physical frames and making private copies when a process writes.

      • (10:08) What fork() does : Creating a child process and inheriting the parent's state.

      • (13:15) A code example : Return values, inherited memory, and independent writes in parent and child.

      • (18:26) Why use copy-on-write? : The cost of copying the parent's memory.

      • (21:05) Page tables after fork() : How parent and child initially share physical frames.

      • (23:45) The shell and exec() : Why copying memory upfront would often be wasted work.

      • (26:04) Handling a write : Read-only page-table entries, page faults, VMA permissions, and copying a frame.

      • (30:01) Benefits and tradeoffs : Memory savings and the performance cost of deferred copying.

      • (33:41) Instagram 's memory-sharing problem: Shared memory gradually becoming private in Python worker processes.

      • (41:14) Python objects and reference counting : Why an expression like if x is None can cause memory writes.

      • (45:16) Inside the interpreter : How evaluating an expression changes reference counts.

      • (48:12) Immortal objects : Avoiding reference-count updates for objects that live throughout the runtime.

      • (50:19) Wrap-up : Plans for a hands-on demonstration using Linux memory debugging tools.

      If you are new to this series, it is based on my ebook called "Virtual Memory from First Principles". It is available to read for free online and also available to purchase from Gumroad (PDF/Epub) and Amazon (Kindle edition).

      Buy PDF/Epub

      Get Kindle Edition


      And, if you want to watch the previous videos in this series, the following is what has been published so far:

      Share

      Read more

    15. 🔗 smol-machines/smolvm smolvm v1.22.2 release

      What's Changed

      • Follow the fetch_update rename so clippy on current stable passes by @BABTUNA in #1505
      • Let the API amend a stopped machine's egress allow list by @BABTUNA in #1501
      • Allow clippy::double_must_use on the shim's async trait by @LoganGrasby in #1508
      • Reject unknown fields on the mutating API request types by @BABTUNA in #1509
      • Bump the workspace to 1.22.2 by @BinSquare in #1513

      Full Changelog : v1.22.1...v1.22.2

    16. 🔗 HexRaysSA/plugin-repository commits sync repo: -1 plugin, +1 release, -1 release rss
      sync repo: -1 plugin, +1 release, -1 release
      
      ## New releases
      - [ida-nexus](https://github.com/hexrayssa/ida-nexus): 0.13.2
      
      ## Removed plugins
      - ida-codemode
      
    17. 🔗 backnotprop/plannotator v0.27.25 release

      Follow @plannotator on X for updates

      Missed recent releases? Release | Highlights
      ---|---
      v0.27.24 | Image previews stay in the all-files view, PR comment previews open on the commented line
      v0.27.23 | Bitbucket Cloud PR review, Question UI for answering agents in place, opt-in auto-update, viewed files remembered, review another repo or worktree
      v0.27.22 | Plans open the docs they link to, Claude review jobs locked down, Code Tour on Linux without Claude's sandbox, Pi reviews the latest plan
      v0.27.21 | Remote and phone sessions load several times faster, real Request changes on GitHub, model pickers show real names, OpenCode fixes
      v0.27.20 | Mistral Vibe support, annotate gets the full Options menu and Settings, jj Commits panel, long lines wrap in plan code blocks
      v0.27.19 | Before/After image previews in code review, file comments as GitHub file threads, forge-correct #123 links, /plannotator-last finds the right session
      v0.27.18 | Model pickers from your installed Claude and Codex (Opus 5.5, Fable 5.1, GPT-6), unsent PR review comments survive new pushes
      v0.27.17 | Diagram files open in the diagram viewer, OpenCode switches model with agent, idle review stops polling the git remote, Tree is the default review view
      v0.27.16 | Themed diagrams on Mermaid 12, comment on any node or edge, patch-file review, embedded HTML documents render
      v0.27.15 | Plannotator TUI and Herdr Annotate announcement, element context on pinpoints, HTML links open as linked documents, All files panel, Classic diff default
      v0.27.14 | Pi plan progress survives compaction, Codex threads across rollout files, WSL browser setting, Mod+E edit mode

      What's New in v0.27.25

      A fix release driven by reports from people using the last two releases: code review with a colorized git config, Bitbucket reviews on large pull requests, wide tables in Firefox, Ask AI on Windows, and a failing install. Six pull requests, two of them from community contributors.

      Code review works with color.diff = always

      If your git config set color.diff = always, a common line in dotfiles, plannotator review showed 0 files with no explanation. Git wrapped every line of the diff in terminal color codes even though Plannotator reads it through a pipe, and the diff parser skipped every line it could not recognize. Viewed-file marks also stopped saving.

      Plannotator now turns color off for every git command it runs during a review, in every runtime. Setting color.ui=never alone is not enough, because a more specific color.diff=always wins over it, so each color setting is turned off explicitly. jj gets --color=never, gh pr diff gets --color=never, and the review agents and Call Flow analysis run their own git with color off. A normal diff is byte for byte what it was before, so saved comments and viewed marks are unaffected.

      (#1662, #1663, closing #1661, reported by @sholsinger)

      Bitbucket review fixes from real use

      @Toparvion tested Bitbucket Cloud review on a large pull request with several reviewers, existing comments, and Guided Review, and reported three things:

      • "View on Bitbucket after submitting" now opens. The browser only lets a page open a tab within a few seconds of a click, and posting a large review takes longer, so the tab was blocked as a popup. Plannotator now opens the tab the moment you click submit, sends it to the pull request once the review posts, and closes it if posting fails. The Feedback Sent screen also has a plain link. This affected GitHub and GitLab too, and links now also open from the VS Code panel.
      • Your overall comment shows at the top. Bitbucket's activity feed lists the newest comment first, so the summary comment posted before the inline comments ended up at the bottom. It is now posted after them, so it lands on top. A retry after a partial failure still never posts it twice.
      • Long reviews in Claude Code. Claude Code stops a slash command's shell after about 30 minutes. That limit belongs to Claude Code, not Plannotator. The Claude Code guide now shows how to raise it with BASH_DEFAULT_TIMEOUT_MS, and the review skill tells Claude it can re-run the review in the background. Your comments come back either way, because drafts are saved.

      (#1653, from #1583, reported by @Toparvion)

      Wide tables no longer collapse in Firefox

      In Firefox, commenting inside a wide table while the action bar was pinned to the top squeezed the table into a narrow strip beside the bar. The bar was both a float and sticky, and Firefox laid the table out around where the bar sat once stuck. The bar is now sticky without being a float, and tables keep their width in Firefox, Chrome and Safari. Plan review had the same problem and is fixed too.

      (#1660, closing #1659, by @ruaridhw)

      Additional Changes

      • Ask AI dropdowns are readable in dark mode on Windows. The provider, model and reasoning-effort lists showed light text on a light background. They now use the theme's own colors (#1658, by @Aayushyaash).
      • The install script reads the latest version correctly. It found the version with a line-based text match, which picked up the wrong value when GitHub returned its answer on a single line, and the install failed with a 404. It now reads the version by name, and the Windows install.cmd parses it as JSON. This fix has been live on plannotator.ai since it merged (#1656, closing #1655, reported by @jdppettit).

      Install / Update

      macOS / Linux:

      curl -fsSL https://plannotator.ai/install.sh | bash
      

      Windows:

      irm https://plannotator.ai/install.ps1 | iex
      

      Claude Code Plugin: Run /plugin in Claude Code, find plannotator , and click "Update now".

      Pi: Update @plannotator/pi-extension to 0.27.25 and restart Pi.

      OpenCode: Clear cache and restart:

      rm -rf ~/.bun/install/cache/@plannotator
      

      What's Changed

      New Contributors

      Contributors

      @ruaridhw tracked the Firefox table collapse down to a sticky float, measured it across browsers, and sent the fix.

      @Aayushyaash fixed the unreadable Ask AI dropdowns on Windows dark mode, with before and after screenshots.

      Community

      • @sholsinger diagnosed the 0-files review down to colorized git output and suggested the fix in #1661
      • @Toparvion tested Bitbucket review on a real team pull request and reported the popup, comment order, and timeout issues in #1583
      • @jdppettit reported the failing install, with a workaround, in #1655

      Full Changelog : v0.27.24...v0.27.25

    18. 🔗 r/LocalLLaMA Pi 1.0 released - MCP support now included by default rss
    19. 🔗 Rust Blog Demoting i686 Windows targets to std-only rss

      With Rust 1.100.0, the following changes to 32-bit Windows targets will happen:

      • i686-pc-windows-msvc Tier 1 with host tools target will be demoted to Tier 1 without host tools.
      • i686-pc-windows-gnu Tier 2 with host tools target will be demoted to Tier 2 without host tools.

      Builds of the standard library will continue to be distributed, but host tools such as the compiler will be no longer available. i686-pc-windows-msvc as a Tier 1 target still undergoes CI testing.

      To build 32-bit Windows binaries, cross-compiling from a still-supported host toolchain (such as a 64-bit Windows ones) will be required from now on.

      Background

      Desktop and Server 32-bit only x86 CPUs are no longer sold for over 15 years, and general 32-bit Windows support has ended in October 2025. This means that the development platforms these targets are meant for hardly exist these days, and even if they do exist they typically aren't capable enough for development.

      Even on the modern x86_64 hardware, building i686 Windows toolchains has proven to be problematic. We have encountered compiler binaries crashing when built with the i686 MSVC target, and the GNU C++ toolchain failing with OOMs during LLVM build.

      Considering all these things, cross-compiling these targets from a better supported one is what we have found to be the best solution forward. As part of that, we stopped producing host tools for these targets. For the time being, the prebuilt standard library is still available, and in case of i686-pc-windows-msvc still tested on CI.

      What Changes?

      After Rust 1.100, it will no longer be possible to install toolchains on 32-bit Windows hosts. We recommend cross-compiling from a still-supported host (such as a 64-bit Windows toolchain) instead. Other 32-bit platforms are not impacted by this change.

      For more details about these demotions, see RFC 3999 for i686-pc-windows-msvc demotion, and MCP 1020 for i686-pc- windows-gnu demotion.

    20. 🔗 New Music Releases Epica - Live at the Symphonic Synergy rss

      Epica - a new release is available:

      • 2026-10-02: Live at the Symphonic Synergy (Live)

      Amazon: Canada | Deutschland | France | United Kingdom | United States

      Visit muspy for more information.

    21. 🔗 New Music Releases Imminence - Axis Mundi rss

      Imminence - a new release is available:

      • 2026-10-02: Axis Mundi (Album)

      Amazon: Canada | Deutschland | France | United Kingdom | United States

      Visit muspy for more information.