🏡


  1. July 02, 2026
    1. 🔗 HexRaysSA/plugin-repository commits sync repo: +1 release rss
      sync repo: +1 release
      
      ## New releases
      - [ida-settings-editor](https://github.com/williballenthin/ida-settings): 1.2.3
      
    2. 🔗 r/reverseengineering I built a fast, terminal-based static analyzer for quick malware triage (Rust) rss
    3. 🔗 r/reverseengineering How we broke Rhysida ransomware encryption rss
    4. 🔗 The Pragmatic Engineer The Pulse: a new trend, smart model routing rss

      Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from a previous The Pulse issue . Full subscribers received the article below three weeks ago. If you 've been forwarded this email, you can subscribe here .

      Two weeks ago, I covered a trend of companies trying to reduce spending on AI within their engineering departments. While talking to my sources about this, one head of engineering at a larger company told me that they wished there was an 'intelligent' router that picks the right model for the right task.

      The reason for such a wish is clear; prices for tokens vary greatly per model, and there can easily be a 10-20x difference between a cheap, average model, and a state-of-the-art one.

      I did some digging into whether any solutions like this currently exist because the benefits look obvious, and what I found is listed below. Usual disclaimer: I have no affiliation with these vendors, and have not been paid to mention any of them!

      Vendors:

      • Factory Router: automatically selecting the right model per session, claiming 20-25% cost savings. More details.
      • Not Diamond: auto-selection of coding models, claiming around 30% cost savings. Used by OpenRouter, under the hood. More details.
      • Vercel AI gateway. Hundreds of AI models, smart routing and billing in one place. More details.
      • Prism**** by Augment Code. Choosing the "best" model automatically for coding tasks. More details.
      • Model Router by Morph. An API to suggest model selection for a prompt, based on a list of models. More details
      • Weave router: a token router that works inside Codex, Claude Code and Cursor. "Hard" requests stay on frontier models, while "easy" ones go to open source ones. More details

      AI gateways with routing built in. API gateways are popular ways to use LLMs in workplaces.

      • OpenRouter: comes with "auto router" functionality where, after analyzing the prompt, the best one is selected. Uses Not Diamond under the hood.****More details
      • Kilo Gateway: route requests the model considered the best price-per-value. Supports using your own model keys, and using the service only as a router. More details
      • Requestly.ai: automatically route requests to the right model based on cost, latency, and availability, and tons of configuration. More details
      • LiteLLM: define routing rules that automatically select the best model, based on input content with the "auto routing" functionality. The setup is more manual, but you get more control than with many other AI gateways. More details
      • Envoy AI Gateway: an open source gateway that offers some routing configuration, though it feels that the routing engine focuses more on availability, not cost optimization and smart model routing. More details

      Cursor and GitHub Copilot also have an "Auto" model selection that does automatic model selection. For Cursor, it's a fixed-price model where any savings made are for Cursor: they are not passed on to customers, but the model is cheaper than most others. For Copilot, the Auto mode results in intelligent model selection - but I've not heard much positive feedback about this mode from the few devs I asked about it. For Pro plans, Copilot supports pretty old models: GPT-5.5 and Opus 4.8 are not available. These are, however, available on the Pro+ and above plans.

      Demand seems to be extremely high for intelligent routing. I asked Matan Grinberg, cofounder and CEO at Factory AI, who told me:

      "Demand has been off the charts, especially from the enterprise [from large companies.] I've met with practically every bank CEO since we launched this offering, because they want a layer to control spend, while still generating high-quality code.

      Pretty much everyone in tech is starting to see that open models are often sufficient. We're seeing open model usage strictly increasing the last six months. My guess is that hosted open models are sufficient in performance for around 60% of coding-related work, in terms of token spend."

      It feels to me that "intelligent routing" will become table stakes, and so we can expect pretty much all AI vendors to build some version of it, and many new vendors to offer this kind of functionality.

      If you know of any additional vendors not listed, you can add a comment on the original The Pulse article, and see more options there.

      Read the full issue The Pulse that this excerpt was from , or check out all The Pulse issues.

    5. 🔗 r/reverseengineering Reverse Engineering Warframe's usermode anti-cheat rss
    6. 🔗 Kagi release notes July 2nd, 2026 - Heads, tails, and an AI toggle rss

      Kagi Search

      New controls to completely turn off AI-based features in search

      We've added an option to disable access to AI features in search, under settings/ai.

      We're also planning to add this option to onboarding, so new users can personalise their Kagi experience from the start.

      It's finally here! We believe that Kagi's application of AI should always be useful - there when you'd like it, and never when you don't, and always respecting your privacy.

      This took us some time to navigate the right way to communicate this option. We did not want to create a confusing narrative as a company adding a toggle while continuing to invest in AI features elsewhere in our portfolio. But in the end, we want to stay true to putting you in control of your search engine - so here you are!

      We deeply thank the community for their feedback and patience.

      Flip coins and more sports widgets

      By popular demand, our dice widget has gained the ability to roll dice with any number of sides. We're not sure what kind of games you're playing that need d7s, but we support them now.

      We also added support for flipping coins, which are really just two-sided dice when you think about it:

      Kagi search results page for the query 'flip 2 coins' displaying a widget
that reads '1 head' alongside two illustrated
coins.

      We've added a set of switches on https://kagi.com/settings/more_search so you can disable any of our widgets you don't want to see. The toggle descriptions include links illustrating the widgets' capabilities so you understand what you're turning on or off; go check it out!

      Settings page titled 'Widgets' listing three enabled toggle options:
Calculator, Time & Date, and Package
Tracking.

      Orion browser ✴︎

      This week, we’re launching Orion 1.1 for macOS, one of the most significant updates in our history. This version is built around three major new features (in addition to 170+ smaller improvements and bug fixes).

      A New Interface ✴︎
      When Apple released LiquidGlass , the reception was mixed—even within our own team. The demand was there, but we weren't ready to just copy-paste what Safari had done. They had even removed compact tabs!
      So, we created our own implementation.

      Containers ✴︎
      Just like Firefox, we now offer containers. What are they? Each tab becomes completely isolated from the others: total privacy and the ability to log into multiple accounts on the same site from the very same window!

      Browser window showing the Facebook login page with a container menu open
offering options to open a new tab in different containers such as Shopping,
Social media, or
Flights.

      A Personalized Browser Border ✴︎
      The current trend is an elegant, transparent border seen on many browsers. The problem is, they don't match Apple's design language. So, what did we do?

      As we usually do: we made it an option! And we took it even further: transparency, solid colors, gradients, and even an automatic color-match with the website for total immersion.

      This option is exclusively available to Orion+ subscribers.

      Orion+
      Orion is your free browser, but we offer a support plan to maintain the independence that guarantees your data is not, and will never be, sold to advertisers—or worse.

      We have a dedicated website where you can download all the versions we currently support, as well as any we may support in the future (macOS, iOS, iPadOS, Windows, and Linux): https://orionbrowser.com

      Kagi News & Kagi Translate

      Kagi News and Kagi Translate have both been successes that took us by surprise.

      Kagi News users from all over the world loved being able to read their news in the language of their choice, stress-free, and even add new topics.

      Kagi Translate users loved the contextual features that provide a spectacular translation quality — far beyond what typical machine translation offers.

      But these unexpected successes led to a massive spike in our costs for applications offered for free.

      As a result, we have temporarily removed translations and left access to the articles’ original languages as well as English. Kagi Translate will be back in the coming days as a subscription-based service.

      Thank you for your patience and your trust 🙏 we hope to have everything up and running again very soon!

      Other improvements and bug fixes

      Kagi Search

      Kagi Assistant

    7. 🔗 r/reverseengineering cfgrip - PE/ELF x86/x64 CFG extractor rss
    8. 🔗 r/reverseengineering Transformers Forged To Fight Offline Version Reverse Engineering rss
    9. 🔗 Hex-Rays Blog IDA 9.4: Improved analysis of compiled Swift binaries rss

      IDA 9.4: Improved analysis of compiled Swift binaries

      IDA 9.4 constitutes the first step towards better handling of Swift binaries. Perhaps unsurprisingly, our focus is on Swift for ARM64 Mach-O files, but we generally aim to improve Swift support also in the more unusual settings across different architectures and file formats like x86-64 and ELF. For 9.4, we want to highlight two different improvements: proper modelling of the Swift ABI, and proper typing of Swift runtime functions.

    10. 🔗 r/reverseengineering Redundancy seen in AAA game engines (Game Engine Reversing) rss
    11. 🔗 Jeremy Fielding (YouTube) Engineer Vs Bee: Round 1 rss

      This work was supported by the Alfred P. Sloan Foundation, enhancing public understanding of science and technology in the modern era, in partnership with IMI: watch what matters. https://www.theimi.co/ & https://sloan.org/programs/public-understanding Order custom parts Send Cut Send 👉 http://sendcutsend.com/jeremyfielding Engineers Get Up to 6 Months Pro: 👉 https://onshape.pro/JeremyFielding

      If you want to join my community of makers and Tinkers consider getting a YouTube membership 👉 https://www.youtube.com/@JeremyFieldingSr/join

      If you want to chip in a few bucks to support these projects and teaching videos, please visit my Patreon page or Buy Me a Coffee. 👉 https://www.patreon.com/jeremyfieldingsr 👉 https://www.buymeacoffee.com/jeremyfielding

      Social media, websites, and other channel

      Instagram https://www.instagram.com/jeremy_fielding/?hl=en Twitter 👉https://twitter.com/jeremy_fielding TikTok 👉https://www.tiktok.com/@jeremy_fielding0 LinkedIn 👉https://www.linkedin.com/in/jeremy-fielding-749b55250/ My websites 👉 https://www.jeremyfielding.com 👉https://www.fatherhoodengineered.com My other channel Fatherhood engineered channel 👉 https://www.youtube.com/channel/UC_jX1r7deAcCJ_fTtM9x8ZA

      Notes:

      Chapters 0:00 The engineering problem 05:09 Biology & photography problems 11:42 Trying without a robot. 17:40 Lets talk to scientist about the problem 46:09 The first prototype design 51:43 Building the bee chaser

      Technical corrections

      Nothing yet

    12. 🔗 r/reverseengineering PE structural validation notes (four format ambiguities) + IOCX v0.7.5 release rss
    13. 🔗 smol-machines/smolvm smolvm v1.3.8 release

      What's Changed

      • fix(exec): bound streaming exec output to prevent host OOM; reach aarch64 seccomp call site by @BinSquare in #529
      • fix(pack): block symlink-parent host-escape in sparse tar extraction by @BinSquare in #530
      • Kill a wedged VM identified by its unique boot-config argv so teardown never leaks an untracked live orphan by @BinSquare in #532
      • Bump the workspace to 1.3.8 by @BinSquare in #533

      Full Changelog : v1.3.7...v1.3.8

    14. 🔗 r/reverseengineering FSR 4.1.0 static RE evidence bundle — looking for native D3D12 validators rss
    15. 🔗 r/reverseengineering Claude Code / Codex Skill for Reverse Engineering rss
    16. 🔗 smol-machines/smolvm smolvm v1.3.7 release

      What's Changed

      • Enforce read-only host mounts at the virtiofs device instead of only in the guest by @BinSquare in #524
      • fix: offload DNS off the poll loop and copy-truncate live log rotation by @BinSquare in #528
      • fix(dist): ship the Windows disk templates at their real 512 MiB size by @BinSquare in #527
      • fix(agent,disk): bound stalled-body reads with a deadline; guard disk-resize overflow by @BinSquare in #525

      Full Changelog : v1.3.6...v1.3.7

    17. 🔗 WerWolv/ImHex Nightly Builds release

      Nightly

      003aa75 Changelog

      • build: Update dependencies
      • fix: Lines in text editor flickering when scrolling quickly
    18. 🔗 Console.dev newsletter Oak rss

      Description: Version control and storage layer.

      What we like: Unit of work is a branch which is cloned instantly using content-addressed storage - never push to main directly. Changes based around a branch description rather than commit messages. Create a working tree from a remote repo without requiring a full clone. Spaces combine repos for large cross-repo tasks. Import/export from git.

      What we dislike: Only supports macOS (Apple Silicon) and Linux (x86) due to underlying filesystem requirements for content addressable storage.

    19. 🔗 Console.dev newsletter cmux rss

      Description: Multi-workspace terminal.

      What we like: Vertical tabs with individual notifications, working directories, and ports. Split panes within each tab with in-app browser support. Fully macOS native (Swift + libghostty). Includes a CLI and socket API for automation. iOS app syncs in real time to continue on mobile. Good keyboard shortcuts.

      What we dislike: Currently macOS only, but there is a waitlist for other platforms.

    20. 🔗 Ampcode News Read Bigger Threads rss

      Threads outgrew read_thread, so we rewrote it.

      read_thread is the tool that lets Amp pull context out of other Amp threads when you mention them. Before the rewrite, it would fetch the whole thread and extract the relevant parts in a single call to another LLM.

      That used to work when threads were shorter and contained a single context window. Then we added compaction and now a single thread can run for weeks. Our longest thread has been compacted over 68 times — without compaction, it would be over 21 million tokens long.

      A 21-million-token thread doesn't fit into a single context window, so asking another LLM to extract relevant parts doesn't work anymore. And even threads with 1 million tokens that fit gave bad answers: one giant prompt over-weights whatever the thread ended with or started with and ignores the information in the middle.

      read_thread is now a subagent tuned to extract information from long threads. The subagent takes a thread and a question, searches the thread, reads the messages, and checks whether later work revised or reverted what it found.

      Our first version of the read_thread subagent answered from the first plausible hit. In a long thread, the first hit is often an attempt that was later revised or reverted. We switched the model to GLM 5.2 from Gemini 3.5 Flash and tuned its prompt to optimize for correctness over speed:

      • "Do not stop at the first relevant hit; check for newer messages that revise, supersede, revert, or contradict it."
      • "Tool calls record attempted actions, not outcomes." It checks whether an edit actually succeeded before believing it.
      • "Use compactions for orientation, but inspect original messages when exact requirements, wording, code, commands, chronology, edits, or verification matter."

      It also works on the thread you're in. When the agent needs something from three weeks ago — a decision, an error, the original plan — it goes back and looks instead of trusting the compaction.

      Nothing changes on your end. Either tell Amp what you're looking for and let it find the thread, or give it a thread explicitly: paste a URL, or @-mention it. And when you open a new thread, hit Enter twice to reference the thread you just left.

      Mention a thread and ask a question, just like before, except it now works with big threads too:

  2. July 01, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-07-01 rss

      IDA Plugin Updates on 2026-07-01

      Activity:

      • disrobe
        • 1389ec90: make the native oracle tolerant of compiler-build codegen variance, a…
        • d708373b: make every python interpreter-graded floor environment-robust (ci-sim…
        • 3f6df66c: restore pre-3.11 dict/list construction a removed version guard had m…
        • 42239d04: allowlist the func_vas identifier so the go method-set recovery passe…
        • f1d22b01: make the legacy python recompile floor environment-robust so ci passe…
        • e2855866: fix the nir structurizer to tolerate provably-unreachable dead blocks…
        • 98801b5d: legacy python 3.9-and-below is recompile-equivalent 100% across every…
        • a68a8970: gate the native oracle host-compiler classes to windows since the x86…
      • ghidra
        • e6ee047c: Merge remote-tracking branch 'origin/GP-7031_ryanmkurtz_PR-9311_itxsa…
        • d9a2d109: GP-7031: Updating test and fixing warning
      • ida_rpc
        • e03fbf72: Fix issues with x86
        • e19c7ede: Fix auto-start for existing IDB projects
        • 812e02e6: Fix existing IDB ida-rpc startup
      • playlist
      • rikugan
        • b5a7d923: docs(claude): document EXECUTE_PYTHON_TOOL_NAME constant + IDAPython …
        • 722d3268: chore(release): bump version to 1.6.0
        • b987eca6: merge: resolve 5 remaining conflict markers from origin/master
        • 86e8de92: merge origin/master after conflict resolution
        • 2642efe6: merge: integrate desloppify/code-health P0 mechanical + execution work
    2. 🔗 anthropics/claude-code v2.1.198 release

      What's changed

      • Claude in Chrome is now generally available
      • Added background agent notifications in claude agents — sessions that need input or finish now fire the Notification hook (agent_needs_input / agent_completed)
      • Added /dataviz skill for chart and dashboard design guidance with a runnable color-palette validator
      • Gateway: added Claude Platform on AWS (anthropicAws) as an upstream provider; model-not-found responses now advance the failover chain
      • Background agents launched from claude agents now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask
      • The built-in Explore agent now inherits the main session's model (capped at opus) instead of running on haiku
      • Subagents and context compaction now inherit the session's extended thinking configuration, improving output quality on delegated tasks
      • Fixed brief network drops mid-response aborting the turn — transient errors like ECONNRESET now retry with backoff instead of failing
      • Fixed excessive background classifier requests when sandboxed processes repeatedly accessed the same network host
      • Fixed background tasks in web, desktop, and VS Code task panels getting stuck on "Running" after they finish or after resuming a session
      • Fixed agent teams: a teammate that dies on an API error now reports "failed" to the lead, and messaging a stuck teammate wakes it to retry immediately
      • Fixed the /diff panel not refreshing when you switch branches or commit outside the session
      • Fixed markdown tables overflowing and wrapping their right border when rendered in fullscreen mode
      • Fixed Claude Platform on AWS and Mantle sessions dead-ending with "Please run /login" when the STS token expires — awsAuthRefresh now runs automatically
      • Fixed "no route to host" for local-network hosts in macOS background agent sessions by declaring Local Network entitlements
      • Fixed /desktop failing with "Cannot determine working directory" after entering and exiting a worktree
      • Fixed background agents repeatedly showing "Reconnecting…" every ~52 seconds on macOS while the agents view was open
      • Fixed pressing ← inside claude attach <id> exiting to the shell instead of opening the agent view
      • Fixed claude --bg silently creating an unattachable session when combined with --print/-p; the conflicting flags are now rejected up front
      • Fixed the workflow progress view dropping the earliest agents from the list while the phase counter stayed correct in SDK and desktop-app sessions
      • Fixed .claude/rules/ conditional rules not loading when the target file is reached via a symlinked path
      • Fixed Cmd+click not opening URLs in fullscreen mode in Warp on macOS
      • Fixed double-click word selection in fullscreen mode to select the entire URL including the scheme
      • Fixed plan mode not auto-allowing read-only tool calls when a session starts in plan mode
      • Fixed /branch deriving its default fork name from the compaction summary instead of the first real prompt
      • Improved focus mode: subagents launched in a turn now appear in its activity summary, and completed background notifications fold into a single count
      • Improved syntax highlighting accuracy in code blocks, diffs, and file previews by upgrading to highlight.js 11
      • Keyboard shortcut hints now show opt/cmd instead of alt/super when connected from a Mac over SSH
      • Improved API retry UX: the error reason is now shown after the second attempt, and a status page link replaces the spinner tip when the API is overloaded
      • /login now opens the sign-in dialog from the claude agents view instead of saying it isn't available
      • Subagents now treat messages from the agent that launched them as normal task direction; an agent's message is still never treated as the user's approval
      • Removed the /agents wizard; ask Claude to create or manage subagents, or edit .claude/agents/ directly
    3. 🔗 smol-machines/smolvm smolvm v1.3.6 release

      What's Changed

      • fix(agent): resync guest clock from host after macOS/WHP sleep (#521) by @BinSquare in #522
      • Release 1.3.6 with the macOS -v share ownership fix by @BinSquare in #523

      Full Changelog : v1.3.5...v1.3.6

    4. 🔗 backnotprop/plannotator v0.21.4 release

      Follow @plannotator on X for updates

      Missed recent releases? Release | Highlights
      ---|---
      v0.21.3 | File comments in code review, unified click-to-highlight comments, VS Code clipboard/keyboard bridge, Codex Ask AI on app-server transport, CLI subcommand help
      v0.21.2 | Custom reviews as Agent Skills, Cursor + OpenCode review engines, whole-file/general findings, deleted-annotation fix, Codex Ask AI outside git repos
      v0.21.1 | Annotate-last blank-page fix on multi-message sessions
      v0.21.0 | Direct document editing in annotate mode, live git-status file tree, in-app agent terminal, open files in external apps, HTML renders as HTML
      v0.20.3 | Annotations no longer lost when clicking away, off-screen indicator for open comments
      v0.20.2 | Pierre CodeView all-files review, large-PR pipeline and instant-open checkout, unified agent engine selection, Pi programmatic plan mode
      v0.20.1 | Pi extension install hotfix (pinned @pierre/diffs after a broken upstream release)
      v0.20.0 | Multi-repo workspace reviews, semantic diff overview, UI 2.0 themes and plan look chooser, leaner single-source skill install
      v0.19.27 | Kiro CLI integration, Glimpse native window, annotate-last message picker
      v0.19.26 | Amp plugin production fixes, Mermaid rendering fix, Settings flicker fix, update notification toast and shimmer
      v0.19.24 | Amp integration, configurable data directory, Auto Mode permission option, Pi plan approval fix


      What's New in v0.21.4

      This release adds Markdown math rendering and continues the code-review pass from v0.21.2 and v0.21.3. The PR review experience is consolidated into a single Overview panel where the description and individual comments are now annotatable, and the "Copy agent instructions" onboarding reaches code review at parity with plan mode. Five PRs land, including one from returning contributor @ishowman.

      Markdown Math Rendering

      Plans, annotated documents, and PR content now render LaTeX math. Inline math written as $…$ or \(…\) and display math written as $$…$$ or \[…\] typeset through KaTeX, with the fonts bundled into the app so equations render offline. Rendered formulas are also first-class annotation targets: you can drag-select across prose and a formula together, or redline a whole equation, and the selection is captured like any other annotation.

      Because the same renderer handles arbitrary plan text and untrusted PR descriptions, it is deliberate about what counts as math. A stray or unterminated $$ (or an informal amount like $$100k) no longer runs on and swallows the rest of a document — an unclosed delimiter is treated as ordinary text, so headings and paragraphs below it keep their structure and stay annotatable. Dollar amounts in prose such as $5-$10, $50,000-$100,000, or $5/mo … $10/mo are left as literal text rather than being mistaken for inline math.

      PR #878 closing #831, by @ishowman — requested by @XxxXMil.

      PR Overview Panel

      Reviewing a pull request used to mean three separate dock tabs — Summary, Comments, and Checks — behind three header buttons. They are now one PR Overview panel: the description and checks stack on the left, comments fill the right, and checks collapse into a progressive-disclosure section with a colored progress label. The comments view gained author avatars, a single-row toolbar with search and filters, a "hide bots" toggle, and background refresh so the discussion and check state stay current while you review.

      The description and comments are also annotatable. Select text in the PR description and leave a comment, or click "Annotate" on any comment card to attach a note to the whole comment. These notes show in the Annotations sidebar under their own groups, count toward the review, and ship to the agent — with the full comment body quoted alongside your note, since the agent can't see the PR discussion on its own. Prose notes stay bound to the PR they were made on: switching to another PR in place hides them from view and export rather than carrying them onto the new PR, and switching back brings them right back. The description renders through the full shared block renderer, so tables, callouts, code, and embedded media (images, &lt;video&gt;, and &lt;picture&gt;) all display inline.

      PR #981, by @backnotprop.

      Copy Agent Instructions in Code Review

      Plan mode has a "Copy agent instructions" action that hands an agent the exact clipboard contract for posting annotations back into Plannotator. That onboarding now exists in code review too, at parity with plan mode: the review header menu offers "Agent Instructions" in a live session, and the copied payload documents how to read the changeset, derive line numbers from the diff, and POST line-, file-, and general-scoped comments (including code suggestions). The backend already accepted these; this closes the missing on- ramp.

      PR #983, by @backnotprop — suggested by @hakunin on X.

      Additional Changes

      • Immediate feedback when launching a review agent — clicking Run in Review Agents now shows a pending launch row and a "Starting" state right away, surfaces server-side launch failures instead of silently clearing the request, and hands off cleanly to the real job once it starts. PR #980, by @backnotprop.
      • Annotation count badge in the plan and annotate header — the annotations toggle in the shared plan/annotate header now shows a numeric count badge, matching the code-review header. PR #979, by @backnotprop.
      • Sturdier media and delimiter parsing — the shared markdown parser no longer lets an unclosed &lt;video&gt;/&lt;picture&gt; tag or a multi-line &lt;img&gt; swallow or garble the rest of a document, and &lt;picture&gt;/&lt;source&gt; and responsive &lt;img&gt; now render correctly. This hardens the same renderer the math and PR Overview work rely on.

      Install / Update

      macOS / Linux:

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

      Windows:

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

      Extra skills (compound, setup-goal, visual-explainer), opt-in:

      npx skills add backnotprop/plannotator/apps/skills/extra
      

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

      OpenCode: Clear cache and restart:

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

      Then in opencode.json:

      {
        "plugin": ["@plannotator/opencode@latest"]
      }
      

      Pi: Install or update the extension:

      pi install npm:@plannotator/pi-extension
      

      Droid: Install via the plugin marketplace:

      droid plugin marketplace add backnotprop/plannotator
      droid plugin install plannotator@plannotator
      

      Amp: Install the CLI first, then copy the plugin:

      mkdir -p ~/.config/amp/plugins
      curl -fsSL https://raw.githubusercontent.com/backnotprop/plannotator/main/apps/amp-plugin/plannotator.ts \
        -o ~/.config/amp/plugins/plannotator.ts
      

      Kiro CLI: The installer auto-detects Kiro and installs skills automatically. After installing the CLI, launch with:

      kiro-cli chat --agent plannotator
      

      Upgrading from before v0.20.0? Read the v0.20.0 release notes first; that release changed how skills install.


      What's Changed

      • feat(ui): render markdown math by @ishowman in #878
      • feat(review): PR Overview panel + description/comment annotations + media by @backnotprop in #981
      • feat(review): add "Copy agent instructions" for external review comments by @backnotprop in #983
      • fix(review): show pending agent job launches by @backnotprop in #980
      • feat(annotate): show annotation count badge in plan/annotate header by @backnotprop in #979
      • fix(ui): stop unclosed &lt;video&gt;/&lt;picture&gt; from swallowing the document by @backnotprop
      • fix(review): scope PR description/comment notes to their PR by @backnotprop
      • fix(ui): keep stray/unclosed math delimiters and dollar amounts from mangling text by @backnotprop

      Contributors

      @ishowman built Markdown math rendering (#878), picking up the feature request in #831 and implementing inline and display math with KaTeX, including selectable, annotatable formulas.

      Thanks also to the community members whose requests shaped this release:

      • @XxxXMil requested Markdown math formula rendering (#831), delivered in #878.
      • @hakunin suggested (on X) bringing the "Copy agent instructions" onboarding to code review, delivered in #983.

      Full Changelog : v0.21.3...v0.21.4

    5. 🔗 smol-machines/smolvm smolvm v1.3.5 release

      What's Changed

      • Fold an image's own registry into a scoped egress allow-list so the in-guest base-image pull is not blocked by @BinSquare in #518
      • Bump the workspace to 1.3.5 by @BinSquare in #519

      Full Changelog : v1.3.4...v1.3.5

    6. 🔗 Luke Muehlhauser Media diet for Q2 2026 rss

      Music

      Music I most enjoyed discovering this quarter:

      • Gareth Coker: "Lost Colony Main Theme" & "Battle with the Lost Queen" (2026)
      • Audiomachine: some of Helios (2012), some of Existence (2013), "Legends of Destiny" & "Epiphany" (2014), some of Magnus (2015), some of Ascendance (2018), some of Worlds of Wonder 2 (2024)
      • Cameron Winter: "Warning" (2026)
      • Shadow Prince: "Ghosts 'n' Stuff" (2026)
      • Marta: "Ground" (2024)
      • Epic Score: some of Strength to Believe (2014), some of Journey Beyond the Sky (2014), "Dark Army" & "Destroyer of Gods" (2014), some of Earthrise (2015), "The Resistance" & "As the Smoke Clears" (2017), some of Inferno (2019), "Great Plains of Freedom" (2020), Winterking (2021), "Doomsday Weapon" (2024)
      • Wlodek Pawlik: "Pulse 11/8" (2004)
      • Immediate Music: some of Themes for Orchestra & Choir 1 (2004), "The Ludlum Conspiracy" (2005), some of Themes for Orchestra & Choir 3 (2008), most of Themes for Orchestra & Choir 4 (2013), "Age of Discovery" (2018), "Odyssey" & "Flight of the Griffin" (2018)
      • Trailerhead: some of Trailerhead (2008), some of Saga (2010), "The Unlikeliest of Heroes" & "Translucent" (2014)
      • Gothic Storm: "Soaring Heights" (2025)
      • Future World Music: some of A Hero Will Rise (2012), "Dreamscapes and Wishes" (2013), "Afterlife" (2014)
      • Nova Twins: "Glory" & "Black Roses" (2025)
      • Sam Eastmond: "Construction" & "Underground" (2015), some of Gulgoleth (2019), "The Pink Shagpile" & "Standing on the Shoulders of Giant Slayers" (2020)
      • Ben Lukas Boysen: some of Spells (2016)
      • Sufjan Stevens: some of The BQE (2009)
      • Debbie Wiseman: "Dark Skies" (2010), "Pro Patria" & "The Depths" (2010)
      • Jerskin Fendrix: "Sk1" (2025)
      • Aka Moon (Fabrizio Cassol): "Quality of Joy" & "You Know That Nobody Knows" (2023)
      • Chris Potter: Underground (2006)
      • Krokofant: some of Krokofant (2014), Krokofant II (2015), Krokofant III (2017), Q (2019), Fifth (2021), 6 (2025)

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

      • Wolf Kerschek (b. 1969): "Adolescence" (2011), The New Four Seasons (2024)
      • Johannes Motschmann (b. 1978): most of Facets of Infinity (2016), most of Electric Fields (2016), most of Waves at Boundaries (2017)
      • Ara Malikian (b. 1968): most of The Incredible Story of Violin (2016), some of Royal Garage (2019), some of Ara (2021)
      • Mario Roig Vila (b. 1972): "Al Senyor Paco" (2005), "Dei Gratia Rex" (2008), "Muharib" (2012), "Teresa Silvestre" (2013), "Cerda Frances" (2014), "Bandolera" (2017)
      • Ilan Eshkeri (b. 1977): some of Stardust (2007), "Heron Egrets" (2012), Reliquary (2016), "Launch" & "International Space Station" (2019), some of A Perfect Planet (2021)
      • Stefano Bollani (b. 1972): Concertone mvt 4 (2004), Concerto Azzurro mvts 1, 3 (2017)
      • Tuomas Kantelinen (b. 1969): some of The Snow Queen Ballet Suite (2012)
      • Johan Ullen (b. 1972): Infinite Bach (2014)
      • Wataru Hokoyama (b. 1974): "Forward" (2000), Spiritual Planet mvt 3 (2004), "Echoes of Memories" (2005), Afrika "Savanna" & "Afrika" (2008), some of Ghost of Yotei (2025)
      • Hudson Nogueira (b. 1968): "A Alegria do Carnaval" & "Quatro Faces de Choro" & "Carnaval de Rua" (2003), some of Miniaturas Brasileiras, Sets 1-2 (2005), "Suite Brasileira de Bolso" (2021)
      • Gerardo Di Giusto (b. 1961): "La Cambiada" (2004), "Jugadeta" (2010), "Habanera" (2011), "Ya Esta" (2014)
      • Mark Petrie (b. 1979): some of Binary (2017), "Invincible Spirit" & "Dominion" (2017), "A Rush of Blood" (2020)
      • Liu Changyuan (b. 1968): Four Seasons mvts 1, 6 (2009)
      • David Penades-Fasanar (b. 1978): XĂ tiva 1707, La Ciutat Abatuda (2011), "La Torre dels Borja" (2011), La Bastida de les Alcusses (2013), Suite No. 1 "Celler del Roure" (2015 or 2018), "El Ritual del Fuego" (2018), "XĂ tiva 1939, El Guernica ValenciĂ " (2018), Symphony No. 2 "The Creation" (2018), "Al-legoria a la Muixeranga" (2019), l 'Orde de Montesa (2021), "Terres dels Alforins" (2022), "Al¡legoria al cant dels ocells" (2025)
      • Todd Levin (b. 1961): most of De Luxe (1995)
      • Timo Forsstrom (b. 1961): "Castle Park" (1996), Life in the Capital City (2011), "Sons of the Midnight Sun" (2012), "Majakkasaari" (2014), Kolme Juhlaa (2016), "Different Time, Difference Place" (2022), "Monark Avenue" (2022)
      • Piotr Rubik (b. 1968): "Niech mĂłwią, Ĺźe to nie jest miłość" & "Litania do kaĹździutkiego na ziemi" (2005), some of Habitat (2008), some of Santo Subito (2009), some of Songs of Happiness (2015), some of Because of My Name (2016), "Dokad" (2017)
      • Kees Vlak (b. 1938): El Paso Montanesa mvts 1, 4 (1979), Las Playas de Rio mvt 3 (1990), Os Passaros do Brasil mvt 3 (1996), "Return to Ithica" (1999)
      • Pedro Joaquin Frances Sanjuan (b. 1951): "Als Ligeros" (1980), "Ben-hixamen" (1985), "Cid" (1995), "Villenerias" (1996), "Te Deum" (1997), "Conqueridor" (~1998), "Manta y Pluma" (2013)
      • Ignacio Sanchez Navarro (b. 1958): "Alhakem" (1988), "Caballeros de Navarra" (1990), "Cristianos de la Vera Cruz" (1997), "Orgullo Santiaguista" (1998), "RifeĂąo" (1998), "Templarios de Caravaca" (2000), "12 de Junio" (2000), "Halcones del Desierto" (2003), "JosĂŠ Antonio el Sabina" (2009), "Mirenos de Caudete" (2009), "Sonidos del Argos" (2010), "Amigo Emilio" (2016), "Pepe Luis Melgare" (2019), "El TorreĂłn de los Templarios" (20??), "Capricho de mayo / Anara Sweik Bedu" (20??)
      • Bart Picqueur (b. 1979): De bello gallico mvt 3 (2006), Jeu de cartes (2012)
      • Kelly Andrew (b. 1984?): "Escape" (2021), "Space Time Continuum" (2024)
      • Shelly Hanson (b. 1951): "Albanian Dance" (2005), Islas y Montanas mvts 2, 3 (2003), Dances with Winds (2008), "Groove" (2017)
      • Simon Kong Su Leong (b. 1968): "Typhoon" (2016), "Bells and Drums Resound" (2022)
      • Venus Rey Jr. (b. 1969): some of Sinfonia Jesuita (2004), "El Ángel de Santa Cecilia" (2016)
      • Lauri Porra (b. 1977): Entropia mvts 2-4 (2015), "Rhapsody of Consequences" & "Dislocated" (2015), Kohta (2016), Domino Suite (2017), "Near & Distant" (2017), some of Matter and Time (2018), "Matter" (2019), Basso (2024), some of Stormskerry Maja (2024), some of Queen of Fucking Everything (2025)
      • Guy Barker (b. 1957): some of The Amadeus Project (2007)
      • Stewart Goodyear (b. 1978): Callaloo mvts 1, 5 (2016)
      • Craig Russell (b. 1951): "Tito Machito" (1999)
      • Vasif Adigezalov (b. 1935): some of Zabul Segah Symphonic Mugham (1998)
      • Karen Khachaturian (b. 1920): some of Cipollino (1973)
      • Jorge Salgueiro (b. 1969): "Abertura para o Gil" (1997), Tuba Concerto , mvt 1 (2006)
      • Ilya Beshevli (b. 1989): "Wanderer" (2016)
      • Valts Puce (b. 1962): "Perpetuum mobile" (2007)
      • Mathieu Lamboley (b. 1980): some of Le retour du heros (2018), some of Madame Bovary (2020), some of Lupin (2021), some of Le Tigre et Le President (2022), "Les mysteres de la Buse" (2022)
      • Trevor Morris (b. 1970): Dragon Age Inquisition "Theme" (2014)
      • Joel McNeely (b. 1959): A Million Ways to Die in the West "Main Title" (2014)
      • BrunuhVille (b. 1989): "The Wolf and the Moon" & "Falls of Glory" (2014), "Rising Sun" (2014), some of Age of Wonders (2016), "Timeless" & "Ancient Awakening" (2018)
      • Matt Herskowitz (b. 1968): Undertow (2008), Jerusalem Trilogy (2009), "Polonaise Libanaise" & "Crossbones" (2010)
      • Naoya Wada (b. 1986): "Voyage into the Blue" (2014), "Lights in the Mirror" (2016), "Nexus for the Future" (2017), "Departures" (2021), "Ancient Aquarium" (2023), "Tokyo Skyscraper" (2024)
      • Lars Danielsson (b. 1958): some of Symphonized (2023)
      • Carlos Surinach (b. 1915): Soleriana mvts 2, 6, 7 (1972), Memories of an Old Zarzuela mvts 1, 4 (1987)
      • Nubia Jaime-Donjuan (b. 1984): "Maso Ye'eme" (2021), "Advertencia, Libertad" (2022), Little Mexican Suite for Winds (2022), "Monarch Migration" (2023), "A su merced, Don Jose" (2024), "Tundra" (2024), "Cuatro Joyas" (2024), "La Marcha de la Cumbia" (2025), Concierto Mexicano para Violonchelo mvt 3 (2025), "Cuerdas del Corazon" (2026), "The Lone Pine" (2026)
      • Boris Kozhevnikov (b. 1906): Symphony No. 3 mvts 3, 4 (1950), "People's Festival" (19??)
      • Su Wen-Cheng (b. 1958): "Taiwan" (1997), A Cat 's Song Without Words mvt 3 (2004), "Impressions of Mountains and Seas" (2009), "Ode to the Mother Earth" (2012), "Uninhibited Song" (2016), "Blossoming Abundance" (2018), "Beautiful Music on Our Land" (2022), "Pasibutbut Fantasia" (2012), "Ode to Mountains and Waters" (2022), "Clouds Surging over Alishan" (2023)
      • Jose Maria Ferrero Pastor (b. 1926): "Reige" (1958), "El Berberisch" (1961), "Chimo" (1964), "El Kabila" (1965), "Bonus Christianus" (1966), "Bon Capita" (1971), "Ilicitana" (1984)
      • Ravi Basrur (b. 1984): "Ugramm Veeram" (2014), "Rise of KGF" (2019)
      • Gaspar Angel Tortosa Urrea (b. 1966): La Conversion de Villena (2009)
      • Helen Jane Long (b. 1974): some of Perspective (2018), "Order" (2020), "At Your Feet" (2022)
      • Remo Anzovino (b. 1976): "Tempo tempesta" (2010)
      • Enrique Alborch Tarraso (b. 1976): some of Amadaras (2016), some of Mes Musica Festera (2025)
      • Jose Luis Peiro Reig (b. 1967): "San Bartolome" (1997), "Jesus Nazareno" (1999), "Cristo de la Dulce Muerte" (2004), "Soria Admirada" (2016), "Paco 'El Mauret'" (2018), "Cavallers Templaris" (2019), "La Catedral" (2020), "Cotalba: Una Historia de Reis" (c. 2021), "La Torre Mora de Moixent" (2021), "The Shadow of the Pilgrim" (2023), "El Diablo de Timanfaya" (2024), "Del Mar a la Cumbre" (2025)
      • Carl Rutti (b. 1949): "Kyrie" (2007)
      • Victor Manuel Ferrer Castillo (b. 1981): "Costaleros de la Aurora" (2001), "Dulce Nombre de MarĂ­a" (2005), "Concha" (2006), "En el Cielo de tus Ojos" (2006), "ExpiraciĂłn" (2007), "Mi Amargura" (2007), "Sanctum Lignum Crucis" (2008), "CrucifixiĂłn" (2009), "La Última Noche" (2010), "Abril" (2011), "Antigua, Madre y SeĂąora" (2012), "A Walk Through China" (2012), "Junto a tĂ­, siempre" (2013), "Bendita Amargura" (2014), "Virgen de las Nieves Coronada" (2014), "Nostalgia de un Lunes Santo" (2015), "AlbaycĂ­n" (2017), "Domingo de Ramos" (2017), "Amarte" (2017), "Al SeĂąor del PerdĂłn" (2018), "Bajo Tu Patrocinio" (2019), "Nuestra Aurora" (2019), "Por la Caridad" (2019), "Siempre Dolores" (2019), "Dulzura" (2021), "Orando a la Soledad" (2022), "El Poder de la Esperanza" (2023), "Virgen de la Alhambra" (2025)
      • David Hurtado Torres (b. 1976): “SalvaciĂłn” (2010), “Subida al Calvario” (2011), “Esperanza Eterna” (2012), “Esos Tus Ojos” (2015), “QuiĂŠn te ViĂł y no te Recuerda, Saeta Jerezana” (2015), “El Amor Crucificado” (2017), “Se Arrodilla Triana” (2019), “La Virgen de las Angustias” (2020), “A Tus Pies se Rompe el Mar, Saeta MalagueĂąa” (2023), “¡Miradlo en la Cruz!” (2023), SinfonĂ­a de la Cruz (2025), “AsĂ­ en los mares como en el Cielo” (2025)
      • Leon Vliex (b. 1961): "El Artiste Saxofonico" (2007), "The Wagon Trail" (2017)
      • Rodrigo Loman (b. 1986): "Obertura Mexicana" (2017), "Flor OaxaqueĂąa" (2017), "Huateque" (2019), "Noche Sotaventina" (2022), "Ofrenda de CempasĂşchil" (2022), "Tarima de fuego" (2022), Clarinet Concerto (2024), Concierto para Ensamble de Guitarras y Orquesta (2025)
      • Cristobal Lopez Gandara (b. 1988): "Leyenda de Oriente" (2012), "Pasa la Virgen de la Candelaria" (2020)
      • Lamberto Curtoni (b. 1987): "Butterfly" (2014), some of Il Ritmo della Terra (2020)
      • James Syler (b. 1961): Country Bandstand , mvt 3 (2002), "Cantique" (2010), "Hocus Pocus" (2012), Love Among the Ruins (2016), "Suite Louisiane" (2018)
      • Christopher Marshall (b. 1956): "Chaconne" (1998), "Hikurangi Sunrise" (1999), "Rondorlando" (2007)
      • Gary Ziek (b. 1960): Essays for Trumpet mvt 2 (2001), Aegean Symphony , mvts 2, 3 (2003), Earth Tones (2011), "Fanfare for a Celebration" (2011), "Burnin'!" (2014), "Caccia for 2 Trumpets" (2014), "Shock Wave" (2014), "Tesla's Dream" (2018), "River of Fire (Pele's March to the Sea)" (2019), "Intensity" (2023)
      • Rami Khalife (b. 1981): some of Stories (2017), "Resist, Pt. 2" (2018), "Fireworks" & "Anthem to the Moon" (2020)
      • Wang Hesheng (b. 1955): "The Cavalrymen of Prairie" (2006), "Peacock Dance" (2007)
      • Eric Watson (b. 1946): "Dialogue for Solo Tabla and Chinese Orchestra" (2007), "Mahjong Kakis" (2007), "The Ceilidh" (2014)
      • Stijn Aertgeerts (b. 1992): "Camelot" (2013), "Faravista" (2013), "Sunfield Concerto" (2014), "Osterfjorden" (2015), "Black Saturday" (2015), "Rise" (2018), "Life" (2019), Perseverance (2021), "Guitar Zero" (2024), "Dansul Focului" (2025), "Red Lines" (2025)
      • James Hosay (b. 1959): "Black Granite" (1996), "Fanfare on Rails" (2008)
      • Michael Harrison (b. 1958): Just Ancient Loops mvt 3 (2012)
      • Shi Wanchun (b. 1936): "Festive Overture" (1959)
      • Robert Buckley (b. 1946): Cascadia Suite mvt 2 (2007), "An Olympic Celebration" (2007), "Procession of the Sorcerers" (2009), "Windjammer" (2011)
      • Andre Waignein (b. 1942): "Dos danzas latinas" (2015), Rhapsody for Alto Saxophone mvt 3 (2010)
      • Carl Hession (b. 1957): Concerto for Flute & Violin, mvt 3 (2021), Concerto for Flute & Strings, mvts 1, 3 (2023)
      • Marc Timon (b. 1980): some of Havanera (2006), Concert per a Piano i Cobla mvt 1 (2008), some of Witches (2009), some of Coses de Palamos (2016), "My Name is Echo Chen" (2018), "The Beacon" (2021)
      • Thiemo Kraas (b. 1984): "Arcus" (2011), "Cloud(iu)s… der Wolkenmann" (2011), "Meteoritmo" (2014)
      • Ken Thomson (b. 1976): "Wanderangst" (2008), "Settle" (2011), "Misery is the New Hope" & "Phantom Vibration Syndrome" (2018)
      • Jan Kucera (b. 1977): "Full House" (2003), some of The 13th Month (2012), Piano Concerto mvts 1, 3 (2019)
      • Alexander Reuber (b. 1986): "Atlantis" (2012), "Makassar" (2013), "Trailermusik" (2014)
      • Jean-Philippe Vanbeselaere (b. 1969): "Around the World" (2003), PromĂŠthĂŠe mvts 1, 3, 4 (2005), "Visuels" (2005), "The Old Legend" (2006), "Le Sacre du Tympan" (2008), "The Fire Dance" (2008), "Hymne des Eurochestries" (2009), Suite Concertante (2009), First Symphony (2010), Convergences mvts 1, 2 (2010), Bernard 's Song (2010?), Esquisses ArtĂŠsiennes (2011), Masters of Lights: The Last Crusade (2013), most of Oratorio pour la Paix (2014), "Le fil d'Ariane" (2015), Symphony No. 2 (2015), "De Sable FrettĂŠ d’Argent" (2015), The Rainbow of Life (2017), "In Memoriam" (2017), "The Royal Arch" (2017), "Oro" (2018?), Tribute to Mister L (2019), "The Fifth Season" (2019)
        • With these new listens, Vanbeselaere has crossed the 5-hour mark as one of my favorite musical artists!
      • Jose Susi Lopez (b. 1945): Mr. Ellington Suite (2001)
      • Jan Jarvlepp (b. 1953): Garbage Concerto mvt 3 (1995), Concerto 2000 mvt 3 (2000), "Street Music" (2016), "Brass Dance" (2018)
      • Jose Luis Represas Carrera (b. 1970): "Xinzo" (1998?), Cabaleiros de Santiago (2003), Cambre (2009?), A Pedra de Serpe (2009), "Calamber" (2009?)
      • Amanda Harberg (b. 1973): Viola Concerto (2011)
      • Richi James (b. 1991): "Pursuing Kahn" (2022)
      • Anton Alcalde (b. 1992): "Enrique Lopez" (2012), "Exilieta" (2013)
      • Anthony Hopkins (b. 1937): "And the Waltz Goes On" (1964), "Orpheus" (2011), 1947 mvt 3 (2011)
      • Frederik Magle (b. 1977): Anastasis-Messe mvts 4, 9 (2017)
      • Rihards Zalupe (b. 1983): "See the Kingdom is the Sky" (2010), Symphony No. 1 mvt 1 (2015), 4+4 Squared (2013), Rebonds C (2020), "Full Moon Orchestra" (2021), "Extension in Blur" (2015), Forest Atmosphere (2016), Palatine Celebration (2014), Symphony No. 3 (2023)
      • Vicente Ortiz Gimeno (b. 1990): "Germanies" (2012)
      • Jorge Grundman (b. 1961): Concierto Sentido mvt 4 (2007), "On Blondes and Detectives" (2012), Piano Quintet “The Toughest Decision of God” (2012), "WATFP" (2014), Piano Concerto “The Toughest Decision of God” (2018)
      • Norman Dello Joio (b. 1913): Satiric Dances mvt 3 (1975)
      • Ferenc Farkas (b. 1905): The Sly Studnets Suite mvt 4 (1949), Lavotta Suite mvt 1 (1951), Old Hungarian Dances mvt 7 (1959)
      • Zhang Qianyi (b. 1959): Dream of Dunhuang (1999), Marco Polo (2010)
      • Kate Moore (b. 1979): Debris & Alchemy mvt 3 (2009), "The Art of Levitation" (2013), Cello Concerto (2014), Piano Concerto "Beatrice" (2019)
      • Juan Carlos Valencia Ramos (b. 1978): "Danzas Costenas" (2018)
      • Helge Sunde (b. 1965): "Denada" (2006), "Molto Alghero" (2009), "The Speedcouch" (2013)
      • Guo Sida (b. 1980): some of Deep in Memory (2017)
      • John Kameel Farah (b. 1973): "Between Carthage and Rome" (2015), some of Time Sketches (2017)
      • Anna-Lena Laurin (b. 1962): The Painter (2009), Concerto in Memoriam mvt 2 (2015)
      • Dennis Llinas (b. 1980): SueĂąos de Calle Ocho (2023), "La Chancla" (2024)
      • Alfonso Yepez Santamaria "Chipi" (b. 1981): "Temps de lluita" (2023), "Qal'a Saguira" (2025), "Walida" (2025)
      • Tim Kliphuis (b. 1974): Reflecting the Seasons (2016), some of The Five Elements (2020)
      • Yuzo Koshiro (b. 1967): orchestral adaptations of some tracks from Sorcerian (1987), Ys (1987), The Scheme (1988), ActRaiser (1990), Streets of Rage (1991), Etrian Odyssey (2007)
      • Roque BaĂąos (b. 1968): "Torrente Suite" (1998), Goya en Burdeos "Titulos" & "Muerte de Goya" (1999), "Salome" (2002), Rincones de Espana (2019), "Paso al Litro" (2021)
      • Panu Aaltio (b. 1984): "A Midsummer Treasure" (2012), "The Message" (2021)
      • Graham Reynolds (b. 1971): some of Marfa (2013), some of Grimm Tales (2019)
      • Geoff Knorr (b. 1985): some of Civilization: Beyond Earth (2014)
      • Christopher Gordon (b. 1956): some of Moby Dick (1998), Melbourne Olympic Games Suite (2006), "Riddles" & "Home Movie" (2021)
      • Dmitry Selipanov (b. 1987): some of Ice (2018), "Moonlight" (2020), most of 01 (2021), some of Superdeep (2001)
      • Mariano Mores (b. 1918): "CafetĂ­n de Buenos Aires" (1948), "Una lĂĄgrima tuya" (1949), "Taquito Militar" (1952), "El Firulete" (1953), "Tanguera" (1955)
      • Michal Lorenc (b. 1955): "Masaryk" (2017)
      • Terry Devine-King (b. 1965): "Out of This World" (2011), some of Galaxies Collide (2020), "Solar Orbiter" (2020), some of Stars Above (2021), "World Travel" (2022), "Hidden Secrets" & "Crystal Gaze" (2023), "Rise of Champions" (2023), "Gods of the Underworld" (2024), "Sovereign Power" (2025)
      • Wayne Siegel (b. 1953): Chaconne for Guitar & Chamber Orchestra (2016)
      • Yugo Kanno (b. 1977): some of Gunshi Kanbei (2014)
      • Kenichiro Suehiro (b. 1980): some of Re:ZERO: Starting Life in Another World (2016), "Beginning of the Journey" (2019), "The Breath of a Vow" (2020), "Contract" (2021)
      • Daniel Thorne (b. 1985?): "Clouds of Glass" & "Ultramarine" (20??)
      • Plus the following composers for which I didn't "strongly like" any of their pieces I listened to: Richard Mills (b. 1949), Evan Chambers (b. 1963), Ezequiel Diz (b. 1977), Erlend Skomsvoll (b. 1969), Miho Hazama (b. 1986), David Schiff (b. 1945), Eduardo Diaz Mendez (b. 1985), Chris Evan Hass (b. 1993), Tolga Tavis (b. 1976), Pete Meechan (b. 1980), Kohei Tanaka (b. 1954), Naoki Sato (b. 1970), Russell Brower (b. 1960), Allen Vizzutti (B. 1952), Federico Maria Sardelli (b. 1963), John Wineglass (b. 1973), Makoto Ozone (b. 1961), Joan Albert Amargos (b. 1950), John Borstlap (b. 1950), Tonci Huljic (b. 1961), Javier Perez Garrido (b. 1985), Martin O'Donnell (b. 1955), Russell Peterson (b. 1969), Andres Soto (b. 1986), Bruno Coulais (b. 1954), David Stanhope (b. 1952), Lu Liang-Hui (b. 1942), Pablo Ziegler (b. 1944), Mindaugas Urbaitis (b. 1952), Richard Blackford (b. 1954), Juan Carlos Sempere Bomboi (b. 1976), Kousuke Yamashita (b. 1974), Michael Conway Baker (b. 1937), Nigel Wood (b. 1960), Yuri Chugunov (b. 1938), Ferran Cruixent (b. 1976), Paul Frick (b. 1979), Matthew Shlomowitz (b. 1975), Guy Woolfenden (b. 1937), Marco Frisina (b. 1954), Robat Arwyn (b. 1959), Christoph Schonherr (b. 1952), Mark Hayes (b. 1953), Glenn McClure (b. 1964), Jules Pegram (b. 1991), Marcos Lifschitz (b. 1971), Pavel Singer (b. 1962), Arthur Barbosa (b. 1965), Yuri Krasavin (b. 1953), Alexander Zhurbin (b. 1945), Jose Agustin Sanchez (b. 1989), Vincent Kennedy (b. 1962), Ilyas Mirzayev (b. 1961), Liu Xing (b. 1962), Larysa Kuzmenko (b. 1956), Ian Munro (b. 1963), Robert Moran (b. 1937), Matthew Curtis (b. 1959), Behzad Abdi (b. 1973), Thomas Oboe Lee (b. 1945), Enric Palomar (b. 1964), Ivan Jevtic (b. 1947), Richard Nanes (b. 1927), Michael Ippolito (b. 1985), Texu Kim (b. 1980), Alejandro Basulto (b. 1984), Maria Grenfell (b. 1969), Juraj Filas (b. 1955), Peteris Plakidis (b. 1947), Rostislav Boiko (b. 1931), Lorenzo Ferrero (b. 1951), David Lyon (b. 1938), Michael Rooney (b. 1973), Alexander Tsygankov (b. 1948), Andrey Petrov (b. 1930), Jerome Moross (b. 1913), Yuri Povolotsky (b. 1962), Frigyes Hidas (b. 1928), Liduino Pitombeira (b. 1962), Ikuma Dan (b. 1924), Gareth Wood (b. 1950), Jun Nagao (b. 1964), Zack Browning (b. 1953), Juan Gonzalo Gomez Deval (b. 1955), Jean-Michel Damase (b. 1928), Ernest Tomlinson (b. 1924), Vaclav Nelhybel (b. 1919), Amando Blanquer Ponsoda (b. 1935), Geir Lysne (b. 1965), James Curnow (b. 1943), Alexander Balanescu (b. 1954), Rafael Talens Pello (b. 1933), Cheng Dazhao (b. 1953), Vaclav Trojan (b. 1907), Alexander Moyzes (b. 1906), Jean-Denis Michat (b. 1971), Steven Snowden (b. 1981), Stephen Montague (b. 1943), Peter Gundry (b. 1990), Borislav Slavov (b. 1973), Jesper Kyd (b. 1972), Keiki Kobayashi (b. 1974), Toshihiko Sahashi (b. 1959), Lachlan Skipworth (b. 1982), Mathieu Lussier (b. 1973), Manfred Schmitz (b. 1939), Manuel Morales Martinez (b. 1977), Xu Changjun (b. 1957), Bernardo Adam Ferrero (b. 1942), Stephen Goss (b. 1964), Milan Svoboda (b. 1951), Yevgeny Svetlanov (b. 1928), Alexis Ciesla (b. 1967), Maurizio Bignone (b. 1968), Joseph Horovitz (b. 1926), Grigory Kalinkovich (b. 1917), Ernesto Cordero (b. 1945), Emil Viklicky (b. 1948), Igor Shamo (b. 1925), Chien Nan-Chang (b. 1948), Jose Bragato (b. 1915), Juan Bautista Frances Parra (b. 1980), Miguel Villar Gonzalez (b. 1913), Colin Jacobsen (b. 1978), Javier Pinto Banuls (b. 1983), Claire Cowan (b. 1983), Emil Tabakov (b. 1947), Peter Mennin (b. 1923), Jose Vicente Egea Insa (b. 1961), Aleksander Debicz (b. 1988), Ariel Ramirez (b. 1921), Taro Hakase (b. 1968), Amjad Ali Khan (b. 1945), Evgeny Grinko (b. 1984), Clifton Williams (b. 1976), Andrew Boysen Jr. (b. 1968), Tetsunosuke Kushida (b. 1935), Aldo Rafael Forte (b. 1953), Karlis Lacis (b. 1977), William Francis McBeth (b. 1933), Abel Moreno Gomez (b. 1944), Pedro Morales Munoz (b. 1923), Michel Lysight (b. 1958), Manuel Marvizon Carvallo (b. 1956), Kevin Walczyk (b. 1964), Victor Valles Fornet (b. 1984), Giancarlo Aquilanti (b. 1959), Frank Proto (b. 1941), Shigeaki Saegusa (b. 1942), Nastasia Khrushcheva (b. 1987), Armando Bayolo (b. 1987), Barry Cockcroft (b. 1972), Jose Maria Valls Satorres (b. 1945), Joan Enric Canet Todoli (b. 1970), James M. David (b. 1978), Alfonso Fuentes (b. 1954), Jose Miguel Fayos Jordan (b. 1980), Eduard Kiprsky (b. 1986), Keiko Abe (b. 1937), Jose Alama Gil (b. 1952), Ralph Hultgren (b. 1953), Wu Hua (b. 1943), Gavin Greenaway (b. 1964), Lionel Beltran Cecilia (b. 1978), Eduard Artemyev (b. 1937), Liu Yuan (b. 1959), Stefano Lentini (B. 1974), Oded Zehavi (b. 1961), Chen Si-Ang (b. 1985), Julio Domingo (b. 1990), Stephen Bulla (b. 1953), Andres Alen RodrĂ­guez (b. 1950), Chen Qian (b. 1962), Ira Hearshen (b. 1948), Dominique Dupraz (b. 1947), Miquel Asins Arbo (b. 1916), Joe Duddell (b. 1972), Stephen Caudel (b. 1955), Jose Perez Vilaplana (b. 1929), Soichi Konagaya (b. 1949), Bruno Sanfilippo (b. 1965), Juan Manuel Molina Milla (b. 1940), Steven Verhelst (b. 1981), Felipe Padilla de Leon (b. 1912), Eduard Toldra (b. 1895), Joaquim Serra (b. 1907), Javier Alvarez (b. 1956), Rob Goorhuis (b. 1952), Nicola Ferro (b. 1974), Phoon Yew Tien (b. 1952), Catherine Likhuta (b. 1981), Edgar Hovhannisyan (b. 1930), Alemdar Karamanov (b. 1934), Marco Somadossi (b. 1968), Chew Hee Chiat (b. 1974), Jan Bosveld (b. 1963), Baruch Berliner (b. 1942), Nelson Jesus (b. 1986), Jordi Peiro Marco (b. 1965), Chow Jun Yi (b. 1983), Maxime Aulio (b. 1980), Ivan Trevino (b. 1983), Santi Miguel Alarcon (b. 1978), Phang Kok Jun (b. 1990), Juan Bautista Meseguer Llopis (b. 1946), John Stevens (b. 1951), Valton Beqiri (b. 1967), Serge Lancen (b. 1922), Thierry Pecou (b. 1965), Perfecto Artola (b. 1904), Eurico Carrapatoso (b. 1962), Levente Gyongyosi (b. 1975), Kentaro Sato (b. 1981), Zdenek Lukas (b. 1928), Sylvie Bodorova (b. 1954), Robert Sheldon (b. 1954), Shuhei Tamura (b. 1986), Valter Sivilotti (b. 1961), Joseph Turrin (b. 1947), Aleksandra Vrebalov (b. 1970), Timothy Mahr (b. 1956), Uri Brener (b. 1974), Wang Huiran (b. 1936), Richard Nixon (b. 1913), Andres Alvarez (b. 1983), Hiroshi Hoshina (b. 1936), Rolf Rudin (b. 1961), Chen Peixun (b. 1921), Henry VIII (b. 1491), Benjamin Franklin (b. 1706), Leo Tolstoy (b. 1828), Friedrich Nietzsche (b. 1844), Frederick II (b. 1712), Jean-Jacques Rousseau (b. 1712), William Herschel (b. 1738), Arnold Rosner (b. 1945), Alain Crepin (b. 1954), Turgay Erdener (b. 1957), Kenneth Young (b. 1955), Ivan IV (b. 1530), Pope Leo X (b. 1475), Theodor Adorno (b. 1903), Anthony Burgess (b. 1917), Douglas Hofstadter (b. 1945), Gintaras Sodeika (b. 1961), Thomas Trachsel (b. 1972), Louis XIII (b. 1601), Ilidio Costa (b. 1955), Gorka Hermosa (b. 1976), Jorg Duda (b. 1968), Eduardo Nogueroles (b. 1971), Jerome Naulais (b. 1951), Alejandro Rutty (b. 1967), Miguel Angel Mas Mataix (b. 1973), Einar Englund (b. 1916), Andrzej Panufnik (b. 1914), Joly Braga Santos (b. 1924), Dylan Mattingly (b. 1991), Saad Haddad (b. 1992), Kees Schoonenbeek (b. 1947), Eduard Mirzoyan (b. 1921), Shelley Washington (b. 1991), Harrison J. Collins (b. 1999), Sato Matsui (b. 1991), Nathan Daughtrey (b. 1975), Peter MachajdĂ­k (b. 1961), Dan Welcher (b. 1948), Paul Basler (b. 1963), Ondrej Brousek (b. 1981), Gity Razaz (b. 1986), Francisco Grau Vegara (b. 1947), Salvador Chulia Hernandez (b. 1944), Marc Lavry (b. 1903), Richard Ayres (b. 1965), Robin Haigh (b. 1993), Zhang Zhao (b. 1964), Fritz Neubock (b. 1965), Amparo Edo Biol (b. 1988), Jorge Calandrelli (b. 1939), Janis Lusens (b. 1959), Yang Fan (b. 1984), Oliver Leith (b. 1990), Salvador Lujan (b. 1975), Jukka Viitasaari (b. 1961), Roger Boutry (b. 1932), Zhang Qu (b. 1983), Antonio Carrillos Colomina (b. 1942), Lu Liang (b. 1982), Zhao Bo (b. 1988?), Liu Tong (b. 1968?), Du Ming (b. 1956), Sanbao (b. 1968), Pedro Manuel Pacheco Palomo (b. 1970), Yukiko Nishimura (b. 1967), Kelly Tang (b. 1961), Jesus Mula Martinez (b. 1945), Johan Nijs (b. 1963), Etienne Crausaz (b. 1981), Liu Shueh-shuan (b. 1969), Gian Carlo Menotti (b. 1911), Hans Otte (b. 1926), Wayne Oquin (b. 1977), Ned McGowan (b. 1970), Trygve Madsen (b. 1940), Daniel Nelson (b. 1965), Harrie Janssen (b. 1960), Li Huanzhi (b. 1919), Luis Cardoso (b. 1974), Manuel Lillo Torregrosa (b. 1940), Kevin Poelking (b. 1988), Francisco Zacares Fort (b. 1962), Raul Martin Ninerola (b. 1983), Benjamin Yeo (b. 1985), Frank J. Cogollos (b. 1977), Tom Davoren (b. 1986), Bertrand Moren (b. 1976), Chu Wanghua (b. 1941), Lu Qiming (b. 1930), Robert Xavier Rodriguez (b. 1946), Robert Groslot (b. 1951), Ximo Cano (b. 1963), James Grant (b. 1954), Philip Wilby (b. 1949), Erika Svanoe (b. 1976), Jared Spears (b. 1936), Andre Gagnon (b. 1936), Michael Brand (b. 1952), Angelo Sormani (b. 1965), Henk van Lijnschooten (b. 1928), Revo (b. 1978), Gregory Fritze (b. 1953), Carlos Rafael Rivera (b. 1970), Jesus Santandreu (b. 1970), Jack Wall (b. 1964), Tadayoshi Makino (b. 1974), Bill Ryan (b. 1969), Yamandu Costa (b. 1980), Enrique Hernandis Martinez (b. 1977), Jess Turner (b. 1983), Kevin Kiner (b. 1958), Hayato Matsuo (b. 1965), Simon Shaheen (b. 1955), Tilman Sillescu (b. 1969), Jim Dooley (b. 1976), Wilbert Roget II (b. 1983), Cait Nishimura (b. 1991), Pedro Macedo Camacho (b. 1979), James Seymour Brett (b. 1974), George Kallis (b. 1974), Eleanor Alberga (b. 1949), Wang Ning (b. 1958), Daniel Ferrero Silvage (b. 1965), John Zdechlik (b. 1937), Loren Rush (b. 1935), Soren Nils Eichberg (b. 1973)

      Rediscovered or revisited, and really liked:

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

      • Marius Neset (b. 1985) / Jazzkamikaze: some of Mission I (2006), Traveling at the Speed of Sound (2007), most of Suite for the Seven Mountains (2008), some of Golden Xplosion (2011), some of The Return of Jazzkamikaze (2012), some of Neck of the Woods (2012), most of Birds (2013), some of Lion (2014), some of Pinball (2015), "Pyramiden" & "Snowmelt" (2016), most of Circle of Chimes (2017), some of Viaduct (2019), some of Tributes (2020), some of Manmade (2022), most of Geyser (2023), some of Summer Dance (2023), "Cabaret" (2025), most of Time to Live (2026)
        • With these new and old listens, Marius Neset has crossed the 5-hour mark as one of my favorite musical artists!
      • Michael Abels (b. 1962): "Urban Legends" (2009), "Anthem" (2019)
      • Nicola Piovani (b. 1946): Life is Beautiful (1997), Life is Beautiful Suite (1997)
      • Alberto Iglesias (b. 1955): "Cautiva" (1992)
      • Arturo O'Farrill (b. 1960): some of Despedida (2015)
      • Dan Deacon (b. 1981): Spiderman of the Rings (2007), Bromst (2009), America (2012), "When I Was Done Dying" (2015), "Finlay's Anthem" (2018), Mystic Familiar (2020), some of Hustle (2022), some of Task (2025)
      • Daniel Pemberton (b. 1977): some of Steve Jobs (2015), "Breaking Out" (2015), some of Spider-Man: Into the Spider-Verse (2018), some of Molly 's Game (2018), some of Amsterdam (2022), some of Spider-Man: Across the Spider-Verse (2023)
      • Klaus Badelt (b. 1967): "He's a Pirate" (2003)
      • Marcin Przybylowicz (b. 1985): "The Trail" (2015), "You're… Immortal?" & "The House of Borsodis" (2015), "On the Champs-Desoles" & "The Beast of Beauclair" (2016), "Drive Them Back" (2018), "Invisible Strike" (2018)
      • Steve Jablonsky (b. 1970): "Autobots" & "Optimus" (2007), some of Ender 's Game (2013)
      • Bill Conti (b. 1942): Dynasty "Theme" (2012), North and South "Main Title" & "End Credits" (2015)
      • Trevor Rabin (b. 1954): some of Armageddon (1998), "Aftermath" (1999)
      • Mahito Yokota (b. 1974): "Gusty Garden Galaxy" (2007), "Super Mario Galaxy 2" (2010)
      • Imants Kalnins (b. 1941): Symphony No. 4 mvts 1-3 (1973), "Aicinajums" (1973), Symphony No. 6 mvt 3 (2001), Oboe Concerto mvts 1, 3 (2012), Symphony No. 7 mvts 3, 4 (2015)
      • Pedro Iturralde (b. 1929): "PequeĂąa Czarda" (1951), "Las morillas de Jaen" & "Zorongo Gitano" (1967), "Bulerias" (1968), Jazz Suite mvt 1 (1970), "Recuerdo a Turina" (1972), "Dixie for Saxes" (1993), "Hungarian Dance" (2014)
      • Yuka Kitamura (b. 1990): "Sir Alonne" (2014), "Dark Souls 3" & "Slave Knight Gael" (2016)
      • Jean-Philippe Goude (b. 1952): "L'echappee" (1994), some of La Divine Nature des Choses (1996), "Vies actives / Vie fictive" (2001)
      • Barbara Thompson (b. 1944): "Celebration" (2011)
      • John Babbage (b. 1968): "Millennium Bug" (1999), "Chop Chop" (2002), "Generations" (2010), most of Ten Hands (2013), "Love Scene" (2014), some of Argus (2015)3
      • Ihab Darwish (b. 1977): "Hekayat" & "The Wanderer" (2021)
      • Elliot Goldenthal (b. 1954): some of The Green Bird (2000), "The Mechanicals Vivace" (2017)
      • Todd Reynolds (b. 1966?): "Transamerica" & "Killer" (2011)
      • Arcangelo Corelli (b. 1653): Concerto Grosso No. 1 [Op. 6/1], mvt 3 (1712)
      • John Philip Sousa (b. 1854): "The Gladiator" (1886), "Semper Fidelis" (1888), "The Thunderer" (1889), "The Washington Post" (1889), "The Liberty Bell" (1893), "Manhattan Beach" (1893), "King Cotton" (1895), "The Stars and Stripes Forever" (1896), "Hands Across the Sea" (1899), "The Invincible Eagle" (1901), "Looking Upward: By the Light of the Polar Star" (1902), "The Fairest of the Fair" (1908)
      • Tsukasa Saitoh (b. 1975): "Elden Ring" & "The Final Battle" (2022)
      • Alex Paxton (b. 1990): "Od Ody Pink’d" (2019), most of Music for Bosch People [album] (2021), "Hairy Pony Estampie" (2022), most of ilolli-pop [album] (2022), "Meany" (2022), "Love Kittens" (2023), "Needy Mouth Corners" (2025), Delicious [album] (2025), Candyfolk Space Drum [album] (2026)
      • Alan Menken (b. 1949): "Be Our Guest" & "Transformation" (1991), some of Aladdin (1992), "Transformations" (2017), "Triton's Kingdom" (2023)
      • Django Bates (b. 1960): "Rowing Bot Delineation Egg" (1985), "Sad Afrika" & "Delightful Precipice" (1986), "Accepting Suites from Strangers" (1988), "Dimple" & "Hollyhocks" & "Jay-Tee" (1989), "Three Architects Called Gabrielle" & "Discovering Metal" (1993), Three English Scenes mvt 3 (1996), "Tentle Morments" (1996), "The Strange Voyage of Donald Crowhurst" (1998)
      • Kelly Moran (b. 1988): "Echo in the Field" (2025)
      • Sarah Neufeld (b. 1979): "The Ridge" & "We've Got a Lot" (2016), "Tumble Down the Undecided" (2021)
      • Caleb Burhans (b. 1980): "Amidst Neptune" (2003), "Iceman Stole the Sun" (2005), "Keymaster" (2005)
      • Colin Stetson (b. 1975): "Judges" (2011), "Spindrift" & "In the clinches" (2017), "When we were that what wept for the sea" (2023)
      • Heinz Karl Gruber (b. 1943): Manhattan Broadcasts mvt 2 (1964)
      • Trevor Jones (b. 1949): some of The Last of the Mohicans (1992)
      • Tom Holkenborg (Junkie XL) (b. 1967): "Choosing Dauntless" (2014), "Let Them Up" (2015), "Roland of Eld" (2017), some of Mortal Engines (2018), "Becoming the Tomb Raider" (2018), "Dark Fate" (2019), some of Zack Snyder 's Justice League (2021)
      • Pinar Toprak (b. 1980): "Take Flight" (2023)
      • Ludovic Bource (b. 1970): "Let petite Nicolas Ouverture" (2022)
      • Rupert Gregson-Williams (b. 1966): "Wonder Woman's Wrath" & "Lightning Strikes" (2017), "Everest" (2019)
      • Jason Hayes (b. 1973): "Spoils of War" (2017)
      • Geoff Zanelli (b. 1974): "Beyond My Beloved Horizon" (2017)
      • Toby Fox (b. 1991): acoustic adaptions of some tracks from Undertale (2015) and Deltarune Chapter 1 (2018)
      • Eicca Toppinen (b. 1975): some of Wagner Reloaded (2013)
      • Sarah Schachner (b. 1988): "Valor" & "The Monitor" (2019)
      • Jocelyn Pook (b. 1960): "Goya's Nightmare" (1994), "La Blanche TraversĂŠe" (1997), "Masked Ball" (1999), Untold Things (2001), some of Heidi (2005), most of CaĂłtica Ana (2007), Storm over Everest (2007), some of Room in Rome (2010), some of Desh (2011), "London Bells" (2012), Dust (2014), "Where Are We Going" (2014), King Charles III (2015), some of The Wife (2017), some of The KingMaker (2019), most of Jungle Book Reimagined (2022)
        • With these new and old listens, Jocelyn Pook has crossed the 5-hour mark as one of my favorite musical artists!
      • Simon Franglen (b. 1963): "Happiness is Simple" & "The Tulkun Return" (2022), "The Windtraders" (2025)
      • Plus the following composers for which I didn't "strongly like" any of their pieces I listened to: Paul McCartney (b. 1942) (his "classical" music), David Arnold (b. 1962), Josquin Desprez (b. 1450), Thomas Bangalter (b. 1975), Neal Acree (b. 1974), John Lunn (b. 1956), Gordy Haab (b. 1976), Henry Jackman (b. 1974), Heitor Pereira (b. 1960), Jean-Philippe Rio-Py (b. 1983), Alexis Ffrench (b. 1970), Lois V. Vierk (b. 1951), Simon Proctor (b. 1959), Peter Michael Hamel (b. 1947), Mark Mothersbaugh (b. 1950), Charlemagne Palestine (b. 1947), David Shire (b. 1937), Stephen Warbeck (b. 1953), Gabriel Yared (b. 1949), Scott Johnson (b. 1952), Angelo Badalamenti (b. 1937), Havergal Brian (b. 1876), Giovanni Pierluigi da Palestrina (b. 1525), Edgard Varese (b. 1883), Michael Tippett (b. 1905), Ida Gotkovsky (b. 1933), Sofia Gubaidulina (b. 1931), Kaija Saariaho (b. 1952), Stephen O'Malley (b. 1974), Ashley Fure (b. 1982), Toshiro Mayuzumi (b. 1929), Michael Vincent Waller (b. 1985), Arnold Dreyblatt (b. 1953), Alexandra Streliski (b. 1985), Zoe Keating (b. 1972), Tyshawn Sorey (b. 1980), Jennifer Walshe (b. 1974), Justin Hurwitz (b. 1985), Ellen Zwilich (b. 1939), Xian Xinghai (b. 1905), Henri Tomasi (b. 1901), Kenji Kawai (b. 1957), Mark Mancina (b. 1957), Olivier Deriviere (b. 1980), Bill Brown (b. 1969), Michiru Yamane (b. 1963), Christopher Young (b. 1957), Shigeru Umebayashi (b. 1951), Adrian von Ziegler (b. 1982), Edward Shearmur (b. 1966), Blake Neely (b. 1969), Joris de Man (b. 1973), Piotr Musial (b. 1987), Christopher Lennertz (b. 1972), Jherek Bischoff (b. 1979), David Newman (b. 1954), Tyler Bates (b. 1965), Harry Partch (b. 1901), Lolita Ritmanis (b. 1962), David Buckley (b. 1976), Randy Edelman (b. 1947), Ned Rorem (b. 1923)

      Movies/TV

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

      • Park Chan-wook: No Other Choice (2025)
      • Phil Lord & Christopher Miller: Project Hail Mary (2026) ★
      • Various: Our Flag Means Death , season 1 (2022)
      • Jeffrey Blitz: Review , season 1 (2014)
      • Various: Widow 's Bay, season 1 (2026) ★
      • Owen Harris & Sarah Adina Smith: A Knight of the Seven Kingdoms , season 1 (2026) ★
      • Various: Beef , season 2 (2026)
      • Kyle Balda: The Sheep Detectives (2026)

      Games

      All games I finished or decided to stop playing:

      • [none]

      Standup comedy

      • [none]

      Books

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

      1. The pieces I listened to for each composer were: Mills, Chambers, Diz, Kerschek, Skomsvoll, Hazama, Motschmann (plus some of his more "electronica" albums), McCartney, Schiff, Roig Vila, Diaz Mendez, Hass, Tavis, Meechan, Eshkeri (plus some film/TV/videogame scores), Bollani (plus a couple jazz albums), several soundtrack albums by Tanaka, Sato (plus several soundtrack albums), Brower (plus several soundtrack albums), Vizzutti, Sardelli, Wineglass, Ozone, Kantelinen (plus a few film scores), Amargos, Borstlap, Huljic, Perez Garrido, Hokoyama (plus several soundtrack albums), Nogueira, Giusto, O'Donnell (plus a few videogame soundtracks), Peterson, Soto, several albums by Petrie, Coulais (plus several soundtracks), Stanhope, Lu Liang-hui, Liu Changyuan, Ziegler, Urbaitis, Blackford, Penades-Fasanar, Levin, Sempere Bomboi, Forsstrom, Rubik, Yamashita, Baker, Wood, Chugunov, Cruixent, Frick, Shlomowitz, Vlak, Frances Sanjuan, Woolfenden, Sanchez Navarro, Picqueur, Frisina, Arwyn, Schonherr, Hayes, McClure, several albums by Andrew, Hanson, Kong, Pegram, Lifschitz, Singer, Barbosa, Krasavin, Rey, Porra (plus some rock and soundtrack albums), Zhurbin, Sanchez, Kennedy, Mirzayev, Barker, Liu Xing, Goodyear, Kuzmenko, Munro, Moran, Curtis, Abdi, Lee, Russell, Palomar, Jevtic, Nanes, Adigezalov, Ippolito, Kim, Basulto, Grenfell, Filas, Plakidis, Boiko, Ferrero, Lyon, Rooney, Khachaturian, Tsygankov, Petrov, Moross, Povolotsky, Hidas, Pitombeira, Dan, Wood, Nagao, Browning, Gomez Deval, Damase, Tomlinson, Nelhybel, Blanquer Ponsoda, Lysne, Curnow, Salgueiro, Beshevli, Balanescu, Talens Pello, Cheng, Trojan, Moyzes, Michat, Puce, Snowden, Montague, Gundry, several soundtracks by Slavov, several soundtracks by Kyd, Lamboley (plus some soundtracks), several videogame soundtracks by Kobayashi, several soundtracks by Morris, several soundtracks by McNeely, a few soundtracks by Sahashi, BrunuhVille, Herskowitz, Wada, Danielsson (plus several jazz albums), Skipworth, Lussier, Schmitz, Surinach, Morales Martinez, Xu, Jaime-Donjuan, Kozhevnikov, Adam Ferrero, Goss, Svoboda, Svetlanov, Su, Ciesla, Bignone, Horovitz, Kalinkovich, Cordero, Viklicky, Shamo, Ferrero Pastor, Chien, Bragato, Frances Parra, several soundtracks by Basrur, Tortosa Urrea, Villar Gonzalez, Jacobsen, Pinto Banuls, Cowan, Tabakov, Mennin, Long, Egea Insa, Anzovino, Debicz, Ramirez, Hakase, Alborch Tarraso, Khan, Grinko, Williams, Boysen, Kushida, Peiro Reig, Rutti, Rafael Forte, Lacis, McBeth, Moreno Gomez, Morales Munoz, Ferrer Castillo, Lysight, Hurtado Torres, Marvizon Carvallo, Walczyk, Valles Fornet, Aquilanti, Vliex, Proto, Loman, Saegusa, Khrushcheva, Bayolo, Lopez Gandara, Cockcroft, Curtoni, Syler, Marshall, Ziek, Khalife, Valls Satorres, Wang Hesheng, Canet Todoli, David, Fuentes, Fayos Jordan, Kiprsky, Watson, Aertgeerts, Abe, Alama Gil, Hosay, Hultgren, Wu, Greenaway, Beltran Cecilia, Artemyev, Liu Yuan, Lentini, Zehavi, Chen Si-Ang, Domingo, Harrison, Bulla, Alen RodrĂ­guez, Chen Qian, Hearshen, Dupraz, Asins Arbo, Duddell, Caudel, (plus some of his rock/jazz albums), Shi, Buckley, Waignein, Perez Vilaplana, Hession (plus a few of his folk albums), Konagaya, Timon, Sanfilippo, Molina Milla, Verhelst, Kraas, Thomson, de Leon, Toldra, Serra, Alvarez, Goorhuis, Ferro, Kucera, Phoon, Likhuta, Hovhannisyan, Karamanov, Somadossi, Chew, Bosveld, Berliner, Jesus, Peiro Marco, Chow, Aulio, Trevino, Alarcon, Reuber, Phang, Meseguer Llopis, Stevens, Beqiri, Lancen, Pecou, Artola, Vanbeselaere, Susi Lopez, Carrapatoso, Jarvlepp, Gyongyosi, Represas Carrera, Sato, Harberg, James (plus a couple film scores), Lukas, Bodorova, Sheldon, Tamura, Sivilotti, Turrin, Vrebalov, Mahr, Brener, Wang Huiran, Alcalde, Nixon, Alvarez, Hoshina, Rudin, Chen Peixun, Henry VIII, Franklin, Tolstoy, Nietzsche, Frederick II, Rousseau, Herschel, Hopkins, Rosner, Crepin, Erdener, Young, Ivan IV, Pope Leo X, Adorno, Burgess, Hofstadter, Sodeika, Trachsel, Louis XIII, Magle, Costa, Zalupe (plus a few soundtrack albums), Hermosa, Duda, Nogueroles, Naulais, Rutty, Mas Mataix, Englund, Panufnik, Braga Santos, Mattingly, Haddad, Schoonenbeek, Ortiz Gimeno, Mirzoyan, Washington, Collins, Matsui, Daughtrey, MachajdĂ­k, Welcher, Basler, Brousek, Razaz, Grundman, Grau Vegara, Chulia Hernandez, Lavry, Ayres, Haigh, Dello Joio, Farkas, Zhang Qianyi, Zhang Zhao, Moore, Neubock, Edo Biol, Valencia Ramos, Calandrelli, Lusens, Yang, Leith, Sunde (plus some of his jazz albums), Lujan, Viitasaari, Boutry, Zhang Qu, Carrillos Colomina, Guo (plus a few film/TV scores), Lu Liang, Zhao Bo, Liu Tong, Du Ming, Sanbao, Pacheco Palomo, Nishimura, Tang, Mula Martinez, Nijs, Crausaz, Liu Shueh-shuan, Menotti, Farah, Otte, Oquin, McGowan, Madsen, Nelson, Janssen, Laurin, Li, Cardoso, Lillo Torregrosa, Poelking, Llinas, Zacares Fort, Martin Ninerola, Yepez Santamaria, Yeo, Cogollos, Davoren, Moren, Chu, Lu Qiming, Rodriguez, Groslot, Cano, Grant, Wilby, Svanoe, Spears, Gagnon, Brand, Sormani, Kliphuis, Lijnschooten, Koshiro, BaĂąos (plus some soundtracks), many soundtracks and rock/pop albums by Revo / Sound Horizon, many soundtracks by Aaltio, Fritze, Rivera (plus several soundtracks), Santandreu, several soundtracks by Wall, Reynolds (plus several soundtracks), several soundtracks by Knorr, several soundtracks by Makino, Ryan, Costa, Gordon (plus some soundtracks), Hernandis Martinez, Selipanov (plus some soundtracks), Mores, Turner, Lorenc (plus some soundtracks), Devine-King, several soundtracks by Kiner, several soundtracks by Matsuo, Shaheen, Sillescu (plus several soundtracks), a few soundtracks by Dooley, several soundtracks by Roget, Siegel, several soundtracks by Kanno, several soundtracks by Suehiro, Nishimura, a few soundtracks by Camacho, Brett, several soundtracks by Kallis, Alberga, Thorne, Wang Ning, Ferrero Silvage, Zdechlik, Rush, Eichberg.
      2. The pieces I listened to for each composer were: Neset, Arnold (plus many film/TV scores), Abels (plus several soundtrack albums), Piovani (plus several soundtrack albums), several soundtracks by Iglesias, O'Farrill, Desprez, Deacon (plus several soundtracks and more "pop/rock" albums), many soundtracks by Pemberton, Bangalter, several soundtracks by Acree, several soundtracks by Badelt, several soundtracks by Przybylowicz, several soundtracks by Lunn, several soundtracks by Haab, several soundtracks by Jablonsky, Jackman (plus several soundtracks), several soundtracks by Conti, a few soundtracks by Yokota, Kalnins, Iturralde (plus a few jazz albums), several soundtracks by Pereira, several soundtracks by Kitamura, Goude, Rio-Py, Thompson, Ffrench, Vierk, Babbage, Proctor, Darwish, Goldenthal (plus many film scores), Hamel, many soundtracks and electronic albums by Mothersbaugh, Palestine, many soundtracks by Shire, many soundtracks by Warbeck, many soundtracks by Yared, Reynolds, Johnson, Badalamenti (plus many soundtracks), Brian, Palestrina, Varese, Tippett, Corelli, Sousa, Gotkovsky, Gubaidulina, Saariaho, O'Malley, Fure, Mayuzumi, several game soundtracks by Saitoh, Waller, Paxton, Dreyblatt, several soundtracks by Menken, Bates (plus many jazz albums he composed for), Streliski, Moran, Neufeld, Keating, Burhans, Sorey, Walshe, several and soundtracks albums by Stetson, Gruber, several soundtracks by Hurwitz, Zwilich, Xian, Tomasi, several soundtracks by Kawai, several soundtracks by Jones, many soundtracks by Holkenborg, several soundtracks by Mancina, several soundtracks by Deriviere, several soundtracks by Brown, several soundtracks by Yamane, many soundtracks by Young, several soundtracks by Toprak, several soundtracks by Umebayashi, several soundtracks by Bource, several soundtracks by Gregson-Williams, a few albums by von Ziegler, several soundtracks by Shearmur, several soundtracks by Neely, several soundtracks by de Man, a few soundtracks by Musial, a few soundtracks by Hayes, several soundtracks by Zanelli, a couple albums and many acoustic adaptations of music by Fox, several soundtracks by Lennertz, Toppinen, Bischoff (plus a soundtrack), several soundtracks by Schachner, several soundtracks by Newman, Pook (plus several soundtracks), several soundtracks by Bates, Partch, several soundtracks by Franglen, Ritmanis (plus several soundtracks), several soundtracks by Buckley, several soundtracks by Edelman, Rorem.
      3. Ten Hands is a joint composition of all Topology members, not just John Babbage.
    7. 🔗 r/reverseengineering Reverse-engineering Samsung Notes handwriting rss
    8. 🔗 r/reverseengineering Obfuscator for compiled 64-bit portable executables. rss
    9. 🔗 r/reverseengineering Obfuscator for compiled 64-bit portable executables. rss
    10. 🔗 smol-machines/smolvm smolvm v1.3.4 release

      What's Changed

      • bump workspace library crates to 1.3.3 by @BinSquare in #514
      • Forward an egress hostname allow-list from the machine API into the DNS filter so machines can be scoped to a fixed set of hosts by @BinSquare in #509
      • Preserve smolmachine layers when repacking VMs by @bzj55pnkxy-droid in #507
      • Add catalog and tag listing to the registry client by @BinSquare in #513
      • fix(overlay): mount via the fsconfig API instead of the mount(8) command by @BinSquare in #516
      • fix(delete): force-kill the VM systemd scope so a stuck machine can't orphan by @BinSquare in #515
      • Bump the workspace to 1.3.4 by @BinSquare in #517

      New Contributors

      Full Changelog : v1.3.3...v1.3.4

    11. 🔗 smol-machines/smolvm smolvm v1.3.3 release

      What's Changed

      • fix(macos): add allow-jit entitlement so forkable VMs can boot by @BinSquare in #505
      • Cap layer-export size and reap the interactive-exec child on error by @BinSquare in #508
      • fix(windows): report the real boot-failure cause, not a cosmetic console warn by @BinSquare in #511
      • Floor TSI egress against cloud-metadata and internal addresses and ship it in 1.3.3 by @BinSquare in #510

      Full Changelog : v1.3.2...v1.3.3

    12. 🔗 Jamie Brandon Artificial adventures rss
      (empty)
    13. 🔗 exe.dev Adding Features Without Interrupting Network Connections rss

      A busy network

      People use exe.dev to build and run programs on virtual machines. For virtual machines that are serving web traffic, we handle encryption and authentication. For people using their VM as a traditional computer, we transparently support SSH access. We also provide terminal access to VMs via the web, and of course our popular Shelley AI coding agent. These features and others require exe.dev to proxy incoming connections between the broader internet and an individual VM.

      This network proxying isn’t trivial—we have to identify the VM the user is trying to reach, route the connection to that VM (which may be in some different region of the world), and provide basic authentication to verify that the user has access to the VM. For outgoing connections from the VM, we have to route the outgoing network connections correctly, and we provide an increasing number of integrations.

      Managing these features and adding new ones means that we regularly update the software that directs network connections, sometimes deploying multiple times a day. Of course, at the same time our users—and their users—are making and using network connections to VMs. We have to be able to deploy new software without interrupting those network connections. In this post we’ll look at how we do that.

      Pipe process

      The answer is to simplify the problem by handling the network connections in a separate process, known internally as exepipe. The exepipe process intentionally does not implement any features. Its only job is to manage network connections. That makes it a simple program that doesn’t change very often. We can and do run it for months without redeploying it.

      An exepipe process takes commands from a proxy process. These commands are simple and don’t have any features or options.

      The simplest command is “listen on this network address, and forward any connections to this other network address.” This command is used on VM host machines to direct incoming connections on an external address to a VM address that can only be seen on the same machine.

      Another command is “take these two network connections, and copy data back and forth between them.” This is used by the proxy. The proxy will accept an incoming connection, handle authentication, decide which VM the user is trying to reach, and open a connection to that VM. When both connections are up and running, the proxy will direct exepipe to copy data between the connections.

      This uses a handy and slightly obscure socket feature: Unix socket ancillary data. When using a Unix domain socket, you can send ancillary data which can include, among other things, file descriptors. The receiving process gets a new file descriptor that refers to the same open file description as the original process. This file description can be a network socket. This effectively duplicates a network socket from one process to another.

      For both of these commands, the exepipe process winds up copying data between network connections. Fortunately on Linux this can be done efficiently using a pair of splice calls over a pipe.

      Since exepipe is rarely restarted, this copying will last as long as it needs to.

      There are of course many ways to copy data between network connections, such as the socat program. That, however, requires a separate socat program per connection and a lot of state tracking. Using a single exepipe server is a more efficient use of system resources.

      SSH copying

      Handling SSH connections is similar, except that forwarding one SSH connection to another SSH connection is more complicated than forwarding a simple TCP connection. The SSH protocol is packet-oriented, with separate communication channels, and the ability for the SSH client to query the SSH server in various ways. The exepipe process has to forward these channels and queries back and forth over two SSH connections.

      Restarting the pipe process

      Of course, sometimes we do need to change exepipe.

      When we redeploy exepipe, we don’t want to break any of the connections that the existing instance is managing. So, rather than restart exepipe, we start a new exepipe and leave the old one running.

      The new exepipe will contact the old exepipe and tell it to transfer any listening sockets, including the socket used to receive new commands from the proxy. The listening sockets will be handed over using Unix socket ancillary data. The old exepipe will then do nothing but keep copying data between sockets that are already open. When all of those socket connections are closed, the old exepipe has nothing left to do and it will quietly exit.

      This work is all in the service of supporting exe.dev users. We handle the details of the network to present a simple and seamless interface, using implementation complexity to provide user simplicity.

  3. June 30, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-06-30 rss

      IDA Plugin Updates on 2026-06-30

      Activity:

    2. 🔗 earendil-works/pi v0.80.3 release

      New Features

      • Anthropic Claude Sonnet 5 support - Claude Sonnet 5 is available through inherited Anthropic-compatible and Bedrock provider catalogs with adaptive thinking enabled. See Providers and Model Options.
      • Configurable output spacing - outputPad controls horizontal padding for user messages, assistant messages, and thinking blocks. See Settings.
      • External editor configuration - externalEditor lets Ctrl+G use a configured editor before $VISUAL/$EDITOR fallbacks. See Settings and Keybindings.
      • Richer RPC session tree access - RPC clients can inspect session entries and tree snapshots with get_entries and get_tree. See get_entries and get_tree.
      • Extension session metadata updates - Extensions can observe session name changes through session_info_changed. See session_info_changed.
      • Modern Azure Foundry endpoint support - Azure OpenAI Responses provider setup supports current Microsoft Foundry endpoint URLs. See Azure OpenAI.

      Added

      • Added inherited Anthropic Claude Sonnet 5 model support.
      • Added get_entries and get_tree RPC commands for reading session entries and tree snapshots over RPC (#6078 by @geraschenko).
      • Added a package ./rpc-entry export for launching Pi directly in RPC mode.
      • Added session-name change events for extensions (#6175 by @xl0).
      • Added inherited Azure OpenAI Responses support for modern Microsoft Foundry endpoint URLs (#6004 by @gukoff).
      • Added inherited Usage.reasoning token counts for providers that report reasoning/thinking token usage (#6057).
      • Added an externalEditor settings.json override for Ctrl+G external editor commands, with default fallbacks to Notepad on Windows and nano elsewhere (#6122).
      • Added an outputPad setting for user message, assistant message, and thinking horizontal padding (#6168).

      Changed

      • Changed the default OpenAI model to gpt-5.5.
      • Changed inherited OpenAI Codex Responses SSE response-header waits to use the configured HTTP timeout instead of the previous fixed 20 second timeout, reducing false timeouts on slow connections (#4945).

      Fixed

      • Fixed inherited Claude Sonnet 5 metadata to use adaptive thinking payloads for Anthropic-compatible and Bedrock requests.
      • Fixed inherited generated Xiaomi MiMo model pricing to match current pay-as-you-go pricing from models.dev (#6138).
      • Fixed inherited provider HTTP errors to include response bodies instead of opaque SDK messages (#5832 by @stephanmck).
      • Fixed inherited streamSimple() max-token caps so providers that count input and output against one context window do not reject long requests (#5595).
      • Fixed inherited OpenAI Responses streams to preserve reasoning replay state when output items finish out of order (#6009).
      • Fixed inherited Z.AI preserved thinking requests to send thinking.clear_thinking: false when thinking is enabled, allowing replayed reasoning_content to participate in provider caching (#6083).
      • Fixed pre-prompt compaction to stop after compaction instead of continuing immediately (#6074 by @yzhg1983).
      • Fixed resource notifications to stay before messages when resuming sessions (#6048 by @haoqixu).
      • Fixed startup benchmark timing output to print after TUI shutdown, preserve extension timings, and drain terminal-query replies before stopping benchmark mode (#6030 by @xl0, #6063 by @xl0).
      • Fixed extension tool changes to apply before the next provider request in the same agent run without dropping before_agent_start system-prompt overrides (#6162).
      • Fixed a crash when undici emits an internal client error while terminating a mid-stream HTTP response (#6133).
      • Fixed the compaction event regression test to cover status indicator cleanup and keep CI passing.
      • Fixed interactive status indicators so ending work, retry, compaction, or branch-summary indicators no longer shrink the TUI when clear-on-shrink is enabled (#6026).
      • Fixed --session and SessionManager.open() to reject non-empty invalid session files without overwriting them (#6002).
      • Fixed user-message transcript rendering to keep visible backslashes in Markdown escape sequences such as \" (#6105).
      • Fixed assistant messages stopped by output length to show a visible incomplete-response error (#4290).
      • Fixed --no-session --session-id so ephemeral CLI runs can use deterministic session IDs for provider cache affinity (#6070).
      • Fixed disk BMP image files to be detected, converted to PNG, and attached through read and CLI @file inputs (#6047).
      • Fixed auto-retry for provider stream errors that explicitly tell callers to retry the request (#6019).
    3. 🔗 obra/superpowers v6.1.0 release

      Lower Per-Session Token Cost

      The using-superpowers bootstrap is injected into every session, so its size is paid for constantly. This release trims it and the per-harness references it points to, without dropping behavior-shaping content.

      • Compressed theusing-superpowers bootstrap. Replaced the graphviz skill-flow diagram with the prose it encoded, folded the standalone Instruction-Priority section into User Instructions, dropped the per-platform "How to Access Skills" walkthrough, and trimmed the Platform Adaptation pointer to the harnesses that still ship a reference file. The full Red Flags rationalization table and the user-instruction precedence rules are unchanged.
      • Pruned the per-harness tool-mapping references. The verbose action-to-tool tables restated guidance modern agents already follow. Each reference file is trimmed to the harness-specific notes that still carry weight — subagent dispatch, task tracking, instructions-file paths — and claude-code-tools.md and copilot-tools.md, which had nothing harness-specific left, are deleted.

      Codex

      • Codex can install from the marketplace. Codex marketplace sources expect a .agents/plugins/marketplace.json at the marketplace root; the repo only shipped the Claude marketplace file, so Codex could name the marketplace but found no installable plugin entries. A repo-local Codex marketplace manifest now points at the same repository root, so the plugin is installable from Codex.
      • Codex no longer ships a SessionStart hook. Codex reliably triggers skills on its own, and the bootstrap hook made the UX worse rather than better. The Codex hook config (hooks-codex.json) and its manifest registration are removed.

      Harness Support

      • Gemini CLI support removed. Google EOLed the Gemini CLI on 2026-06-18; the extension can no longer be installed or updated. Gemini is gone from the install docs, the subagent-capable platform lists, and the eval-harness description, and its tool-mapping reference is deleted.
    4. 🔗 anthropics/claude-code v2.1.197 release

      What's changed

      • Introducing Claude Sonnet 5: now the default model in Claude Code, with a native 1M-token context window and promotional pricing of $2/$10 per Mtok through August 31. Update to version 2.1.197 for access. https://www.anthropic.com/news/claude-sonnet-5
    5. 🔗 Simon Willison Have your agent record video demos of its work with shot-scraper video rss

      shot-scraper video is a new command introduced in today's shot-scraper 1.10 release which accepts a storyboard.yml file defining a routine to run against a web application and uses Playwright to record a video of that routine. I've written before about the importance of having coding agents produce demos of their work; this is my latest attempt at enabling them to do that.

      Here's an example video created using shot-scraper video, exercising a still in development feature adding the ability to create new tables in Datasette from pasted CSV, TSV or JSON data:

      That video was created by running this command:

      shot-scraper video datasette-bulk-insert-storyboard.yml \
        --auth datasette-demo-auth.json --mp4

      (That --auth JSON file contains a cookie, as described here in the documentation.)

      Here's the datasette-bulk-insert-storyboard.yml file:

      output: /tmp/datasette-bulk-insert-demo.webm
      server:
        - uv
        - --directory
        - /Users/simon/Dropbox/dev/datasette
        - run
        - datasette
        - -p
        - 6419
        - --root
        - --secret
        - "1"
        - /tmp/demo.db
      url: http://127.0.0.1:6419/demo/tasks
      viewport:
        width: 1280
        height: 720
      cursor: true
      wait_for: 'button[data-table-action="insert-row"]'
      javascript: |
        (() => {
          let clipboardText = "";
          Object.defineProperty(navigator, "clipboard", {
            configurable: true,
            get: () => ({
              writeText: async (text) => {
                clipboardText = String(text);
              },
              readText: async () => clipboardText,
            }),
          });
        })();
      scenes:
        - name: Bulk insert existing table rows
          do:
            - pause: 0.8
            - click: 'button[data-table-action="insert-row"]'
            - wait_for: "#row-edit-dialog[open]"
            - pause: 0.5
            - click: ".row-edit-bulk-insert"
            - wait_for: ".row-edit-bulk-textarea"
            - pause: 0.5
            - click: ".row-edit-copy-template"
            - wait_for: "text=Copied"
            - pause: 0.8
            - fill:
                into: ".row-edit-bulk-textarea"
                text: |
                  title,owner,status,priority,notes
                  Prepare release video,Ana,doing,1,Recorded with shot-scraper
                  Check pasted CSV import,Ben,review,3,Previewed before inserting
                  Share the branch demo,Chen,queued,2,Bulk insert creates three rows
            - pause: 0.8
            - click: ".row-edit-save"
            - wait_for: "text=Previewing 3 rows."
            - pause: 1.2
            - click: ".row-edit-save"
            - wait_for: "text=3 rows inserted."
            - pause: 1.0
            - click: ".row-edit-cancel"
            - wait_for: "text=Prepare release video"
            - pause: 1.0
        - name: Create a table from pasted CSV
          open: http://127.0.0.1:6419/demo
          wait_for: 'details.actions-menu-links summary'
          do:
            - pause: 0.8
            - click: 'details.actions-menu-links summary'
            - click: 'button[data-database-action="create-table"]'
            - wait_for: "#table-create-dialog[open]"
            - pause: 0.5
            - fill:
                into: ".table-create-table-name"
                text: "launch_metrics"
            - click: ".table-create-from-data"
            - wait_for: ".table-create-data-textarea"
            - pause: 0.5
            - fill:
                into: ".table-create-data-textarea"
                text: |
                  metric_id,name,score,recorded_on
                  m001,Activation rate,87.5,2026-06-29
                  m002,Retention check,72.25,2026-06-30
                  m003,CSV import health,95,2026-07-01
            - pause: 0.8
            - click: ".table-create-save"
            - wait_for: "text=Previewing 3 rows."
            - pause: 1.2
            - click: ".table-create-save"
            - wait_for_url: "**/demo/launch_metrics"
            - wait_for: "text=Activation rate"
            - pause: 1.2

      The video command documentation includes simpler examples, but for the purpose of this post I thought I'd go with something more comprehensive.

      That demo YAML storyboard was constructed entirely by GPT-5.5 xhigh running in Codex Desktop, using the following prompt run inside my ~/dev/datasette checkout of this branch:

      Review the changes on this branch.

      cd to ~/dev/shot-scraper and run the command "uv run shot-scraper video --help"

      Now use that new video command to record a video demo of the new features from this branch, including running a "uv run datasette -p 6419 --root --secret 1 /tmp/demo.db" development server so you can record the video against a demo DB that you first create.

      Now that I've released the feature the prompt could say "run uvx shot-scraper video --help" instead and it should achieve the same result.

      I really like this pattern where the --help output for a command provides enough detail that a coding agent can use it - it works kind of like bundling a SKILL.md file directly inside the tool. I used the same pattern for showboat and rodney.

      How I built this

      shot-scraper video started as an experimental prototype. shot-scraper is built on top of Playwright, and the key feature it needed was for Playwright to be able to record video of browser sessions with enough control to create the desired demo.

      I first tried this a few years ago and found that the Playwright-produced videos included additional chrome that was useful for debugging a test failure but unwanted for a product demo.

      They fixed that a while ago, but there were still some minor blockers. In particular I was getting a few white frames at the start of the videos, since the recording mechanism kicked in before the first URL was loaded by the browser.

      Playwright 1.59 added a new screencast mechanism providing much more finely grained control over video recording. This was very nearly what I needed, but the resulting videos were fixed at 800px wide.

      I found a landed PR fixing that but it wasn't yet in a release. Then yesterday they shipped it in playwright-python 1.61.0 and I was finally unblocked to finish implementing the feature!

      The code itself was all written by GPT-5.5 xhigh in Codex Desktop. I had it write the documentation as well which gave me a very useful frame for reviewing the design - much of the iteration on the feature came from reviewing that documentation, spotting things that were redundant, inconsistent or confusing, and requesting (or dictating) a better design.

      The YAML format itself was mostly defined by the coding agent. I had it use Pydantic to both define and validate the format, partly to make the design easier to review.

      This is a great example of the kind of feature that I almost certainly wouldn't have taken on without coding agent support. I filed the original issue in February 2024, and had difficulty finding the necessary time to solve this in amongst all of my other projects.

      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.

    6. 🔗 Evan Schwartz Scour - June Update rss

      Hi friends,

      Many of you mistakenly got onboarding emails yesterday. I'm sorry about that. I was tweaking the way emails are sent to new users and accidentally sent it out to everyone. Don't worry, you'll get your weekly digest on Friday as usual. (If you got a message about verifying your email, please do verify yours if you'd like to continue receiving the weekly digests.)

      In June, Scour scoured 841,977 articles from 27,356 feeds , and 123 new users signed up. Welcome!

      Here's what's new in the product:

      🔗 Links Between Articles

      Scour now tracks and shows which articles cover other ones so you can find coverage, reactions, and responses to a given story. Under any post, you can see both the stories that the given one links to, and which other sources link to it. A detail I especially like is that the covering sources you tend to like and read are shown first, so you can easily find your favorite commentators' reactions.

      Relatedly, there's now a page that shows the most widely covered stories across Scour. If you subscribe to specific feeds, you can also add this as a feed to source content from.

      Laurynas Keturakis suggested this over a year ago and after finally implementing it this month, it quickly became one of my favorite Scour features. Thanks Laurynas!

      📈 Grow Your Feed After Reading

      After you love or like a post, you'll see a small prompt to add more interests similar to that article's content. Adding interests is the best way to hone your feed and make sure Scour surfaces articles you'll like, so I hope this makes it easier to do that.

      If you subscribe to individual feeds, that prompt will also include a way to subscribe to the publisher's feed, if you aren't already, so you'll get more content from them.

      Similarly, if you dislike a post, you'll see some options to have less of that kind of content appear in the future.

      📱 Redesigned Feed User Interface

      The Scour feed got a makeover! The new layout should be easier to scan and interact with.

      Posts now have the related interest, source, and published date on the first
line, followed by the coverage details. Click or tap the post row to see the
expanded view.

      Clicking or tapping a post opens the expanded view:

      The expanded view shows a preview of the article content and the coverage
details.

      Also, on mobile, you can swipe articles right or left to quickly like or dislike them.

      🗺️ Discover Section

      The new Discover section contains all of your personalized interest and feed recommendations, as well as the pages to browse popular posts, interests, and feeds. Head over there if you'd like to build out your feed more, or if you want to see what others are reading on Scour.

      🗣️ Better Screen Reader Support

      Scour now works far better with assistive technology. Every post is a labeled article whose actions are reachable by screen reader and keyboard, menus support arrow-key navigation, and the things that used to change silently (filter updates, search results, newly loaded posts) are announced as they happen. If you or someone you know reads Scour with assistive tech, I'd love your feedback. See the new Accessibility page for the full picture.

      💬 Testimonials on the Homepage

      Enjoying Scour? I added testimonials to the homepage and I'd love to include your review! Email me to let me know your thoughts (and of course, constructive feedback is also very welcome).


      🔖 Some of My Favorite Posts

      Here were some of my favorite articles I found on Scour in June:

      • I've been thinking a lot about the ways that AI changes what it feels like to be a software engineer and I especially appreciated these takes:
      • And a goofy font that Bill Tarbell made that's readable for humans but not for AI: Souls Only.

      Happy Scouring!

      - Evan

    7. 🔗 Cryptography & Security Newsletter The Threat of Residential Proxies rss

      The last several years have seen the continuous rise of so-called residential proxies. If you’re not familiar with this term, the name refers to the proxies usually (but not always, as we will see later) installed at residential addresses and used for website scraping and similar activities. It’s a fairly niche topic, and it’s quite likely that you won’t have heard about it. It is, however, a phenomenon that requires your attention.

    8. 🔗 HexRaysSA/plugin-repository commits sync repo: +2 releases rss
      sync repo: +2 releases
      
      ## New releases
      - [DriverBuddyReloaded](https://github.com/voidsec/driverbuddyreloaded): 2.2.0
      - [ida-rpc](https://github.com/bkerler/ida_rpc): 0.1.4
      
    9. 🔗 MetaBrainz Current ListenBrainz server issues/high load rss

      Our apologies if you are experiencing outages or slowness on ListenBrainz currently. First it was AI scrapers, now it's K-pop fans…

      In short, we are experiencing massive server load from an unexpected and massive increase in listen submissions. Please bear with us as the small (but mighty) ListenBrainz team works on possible mitigations.

      None of your listens are being lost, they are all sitting safely in our (massively overloaded) processing queue:

      Try to spot when the trouble started!

      This has come about because last.fm recently changed how they calculate their statistics, in order to "reduce the impact of bots and scripts on [their] charts and leaderboards".

      This has caused BTS (a K-pop group) fans to abandon last.fm en masse and shift their attention to ListenBrainz (and libre.fm). The keen eye will be able to notice a difference in ListenBrainz' current global statistics, compared to last year.

      ~~K-pop fans, if you 're reading this, please don't 🙂
      ~~Edit/clarification: We are simply asking the few users who are gaming our charts with (very obviously) tool-assisted submissions to please stop/not to do that. The vast majority of K-pop fans, who are respectful, are always welcome here✌

      We are a very small team on a very tight budget, and don't have the resources to absorb your onslaught. We will start pausing accounts that are found to be aggressively botting and gaming the charts, as per our code of conduct (section 9).

      There's more to dig into on this topic, for instance how these listens are being submitted, and the cultural movements and fandom that prompt this kind of mass action, but we need to be fixing queues, not writing blog posts! So we will let our informed community fill in the gaps, in the comments. Happy reading, and here's hoping that our next update/s will be all good news.

    10. 🔗 MetaBrainz Picard 3 beta 5 released rss

      Today, we're making available the fifth beta version for the upcoming MusicBrainz Picard 3. This new versions brings some important changes:

      • The Options menu was reworked with generalized quick settings and easier access to scripts and options.
      • Handling of the Options dialog and the File Naming Script Editor was streamlined. Editing file naming scripts is now available in the menu in Options > File naming scripts > Edit scripts… or via Ctrl+Shift+S.
      • Option profiles can now be used with plugin settings, the "Attached option profiles" dialog allows changing selected options.
      • Plugins can be installed from a local directory without git, which simplifies local development and plugins created just for personal use.

      Download links and a detailed list of changes since Picard 3 beta 4 are available below. For a more detailed overview of what is new in Picard 3 please see the previous blog post Picard 3 Alpha Release.

      While we have all the major features implemented and with the latest bug fixes we are confident in the current code, this is still a pre-release and there might be bugs. If you use this, do so with care, backup your files and please report any issues you encounter.

      Some of the changes are also backward incompatible, hence we recommend you make a backup of your Picard.ini config file before trying the beta version. You can do so in Picard’s Options under Advanced > Maintenance.

      What’s new?

      Bugfixes

      • PICARD-507 - Wrong matching to already loaded release
      • PICARD-1696 - No stable sort order for cover art saved to ID3
      • PICARD-3308 - macOS: System locale detection fails
      • PICARD-3326 - The releases on PyPI lack the source distribution
      • PICARD-3327 - MBID auto-loading and auto-analyze do not work after loading session with "No auto-matching on load" enabled

      Improvements

      • PICARD-3080 - Consider track no. when matching files to AcoustID results
      • PICARD-3092 - Support reading duration from 3GP files (.m4a)
      • PICARD-3138 - Make user-collections retrieval optional, similar to genres and ratings
      • PICARD-3270 - Add ISRC and ISWC to pre-defined columns
      • PICARD-3302 - Allow focusing Log View dialog while Options dialog is open
      • PICARD-3306 - File naming script UI is overly complex and duplicated
      • PICARD-3309 - Unify Options menu toggle actions into configurable Quick settings
      • PICARD-3313 - Support executing local non-git plugins
      • PICARD-3314 - Add docstrings to PluginApi methods
      • PICARD-3315 - Add support for profiles for plugin options and pages
      • PICARD-3318 - Attached Profiles dialog should provide a way to configure profiles for this page
      • PICARD-3329 - Allow changing the string collator with the PICARD_COLLATOR environment variable

      Download

      We appreciate your interest in trying this new version. Use with care, backup your files and please use theMetaBrainz community forums and the ticket system to give feedback and report bugs.

      For Windows and macOS you can download the beta version from the Picard download page. Linux users can run from source or try the beta channel of the Picard snap package.

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

      Acknowledgements

      Code contributions by Laurent Monin, Philipp Wolfer and Bob Swift. Translations were updated by Marc Riera (Catalan), Jeluang (Malay), Nebulain (Chinese (Simplified Han script)) and Theo Asimakopoulos (Greek).

    11. 🔗 jellyfin/jellyfin 12.0 RC2 release

      🚀 Jellyfin Server 12.0 RC2

      We are pleased to announce the second release candidate preview release of Jellyfin 12.0!

      This is a preview release, intended for those interested in testing 12.0 before its final public release. We welcome testers to help find as many bugs as we can before the final release.

      As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

      A note about versioning

      Starting with this release, we are dropping the preceding10. from our versioning. Thus, 10.11.x -> [10.]12.x = 12.x. The reason is simple: at this point in the project, we don't envision a hard break in the API like we planned way back in the early days, and this version scheme was causing a lot of confusion amongst users about what a "major" release was. For more information, please see the RC1 release notes.

      What's new?

      The main goal of this release has been performance. 10.11.0 dropped a major backend rewrite, and while it was broadly functional, it had a lot of rough edges. This release seeks to polish out most of those rough edges and bring better performance to all users.

      There are many other small fixes, improvements, changes, and translations. See our draft release notes here or below for the full list of pull requests. You can also view the Web side changelog here.

      Note: You must be on Jellyfin 10.10.7+ or 10.11.x (ideally, 10.11.11) before upgrading! If you are not, the upgrade will fail. Ensure you upgrade to one of these versions first!

      Note: The initial load of Jellyfin 12.x will run a few migrations and will take several minutes. Please be patient and do not interrupt the process. You can leverage the (newly improved!) startup UI on your local network to see specific progress, or off-network to see general progress, by visiting the server URL in your web browser during startup.

      Note: If you install the RC, you should disable all external plugins and reinstall using the unstable plugin repository, or plugins may fail to load and cause unintended side effects.

      Installing

      This preview release is distributed in all our traditional forms, though not automatically via our Apt repository or latest tag.

      • For all non-Docker environments, you can find the files for manual download in our repository by selecting "Stable Preview" for your OS.
      • For Docker, you can pull the 12.0-rc2 or preview tags.

      What's Changed (since

      v12.0-rc1)

      New Contributors

      Full Changelog : v12.0-rc1...v12.0-rc2

    12. 🔗 Rust Blog Announcing Rust 1.96.1 rss

      The Rust team has published a new point release of Rust, 1.96.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.

      If you have a previous version of Rust installed via rustup, getting Rust 1.96.1 is as easy as:

      rustup update stable
      

      If you don't have it already, you can get rustup from the appropriate page on our website.

      What's in 1.96.1

      Rust 1.96.1 fixes:

      It also fixes three CVEs affecting libssh2 (which is compiled into Cargo):

      Contributors to 1.96.1

      Many people came together to create Rust 1.96.1. We couldn't have done it without all of you. Thanks!

    13. 🔗 Servo Blog May in Servo: user scripts, mp4 compat, blackboxing in DevTools, and more! rss

      Servo 0.3.0 contains all of the changes we landed in May, which came out to 391 commits (March: 534). For security fixes, see § Security.

      servoshell 0.3.0 showing several new features: the
document.execCommand\(\) commands ‘back­Color’, ‘create­Link’, ‘unlink’,
‘superscript’, ‘subscript’, and ‘remove­Format’, plus ‘font-kerning’ and
‘font-variant-
ligatures’

      We’ve shipped several new web platform features:

      Plus a bunch of new DOM APIs:

      We’ve also fixed some build issues on Windows (@mukilan, #45079), FreeBSD (@delan, @mrobinson, @mukilan, #44600), and for anyone building Servo on NixOS or with Nix (@freyacodes, #45051, #45135).

      This is another big update, so here’s an outline:

      Security __ Servo’s JS runtime, SpiderMonkey 140.10.0 , had several memory safety bugs that have been fixed in Servo 0.3.0 with the update to SpiderMonkey 140.10.1 (@jschwe, #44755). For more details, see CVE-2026-7322, CVE-2026-7323, and MFSA 2026-36. Work in progress We’re continuing to implement document.exec­Command() for rich text editing , under --pref dom­_exec­_command­_enabled (@TimvdLippe, #44735, #44973, #44887). This release adds support for the ‘back­Color’ , ‘fore­Color’ , ‘create­Link’ , ‘unlink’ , ‘superscript’ , ‘subscript’ , and ‘remove­Format’ commands (@TimvdLippe, #44644, #44682, #44657, #44710, #44677), plus partial support for the ‘insert­Paragraph’ command (@TimvdLippe, #44909). We’re also working on the Sanitizer API, under --pref dom­_sanitizer­_enabled. With the feature now enabled in servoshell’s experimental mode (@kkoyung, #44701), this release adds support for set­Comments() , set­Data­Attributes() , allow­Processing­Instruction() , remove­Processing­Instruction() , and remove­Unsafe() on Sanitizer (@kkoyung, #44734, #44983). IndexedDB continues to improve, under --pref dom­_indexeddb­_enabled. This release brings a more conformant abort() on IDB­Transaction (@Taym95, #43950). All of the features above are enabled in servoshell’s experimental mode. We’ve made more progress towards accessibility support, including the name from contents algorithm (@alice, @delan, @mrobinson, #44439) and several changes towards building the accessibility tree incrementally (@alice, @delan, @mrobinson, #44766, #45035, #45207, #44768, #44785, #44801, #44767, #45029). The latter is critical for performance in real-world web content. We’re now working on SharedWorker and ServiceWorker , under --pref dom­_sharedworker­_enabled and --pref dom­_serviceworker­_enabled respectively. This release adds support for new Shared­Worker() (@Taym95, #44761), and parts of the ServiceWorker API (@gterzian, @arihant2math, #45082, #44787). Embedding API

      Servo now requires Rust 1.88.0 or newer, up from the old MSRV of 1.86.0 (@sagudev, #44815). We run compile tests with the MSRV, but most of our testing is now done with Rust 1.95.0 (@simonwuelker, #44632).

      Breaking changes to the cookies methods in our SiteDataManager API (@longvatrong111, #44708):

      Breaking changes to our Preferences API (@Narfinger, @mrobinson, #44307):

      We’ve also reworked our DiagnosticsLogging API (@mukilan, #44703):

      For users and developers servoshell has two new options: You can now configure the path to a hosts file with --host-file= (singular), as an alternative to the HOST_FILE (singular) environment variable (@jschwe, #44880). You can now provide a directory of user scripts to run in every document with --userscripts= (@jdm, #44754). When using the Debugger tab in the Firefox DevTools : You can now “blackbox” a script by clicking Ignore source (@freyacodes, #44359). This prevents breakpoints from being hit inside that script, and it should also allow you to step through execution in the debugger without pausing inside that script. The Scopes panel is more accurate now (@atbrakhi, @eerii, #44765). For developers of Servo itself, please note that per project policy, you must not use the output of large language models or other generative AI tools in your contributions. To help us enforce that, we now have CI checks that reject AI agents as coauthors (@SimonSapin, @delan, #44723). We’ve also fixed build issues with --features vello (@Gae24, @yezhizhen, #44875, #45036). More on the web platform

      We’ve improved the default appearance of < dl>, < ol>, < ul>, < table>, < thead>, < tbody>, < tfoot>, < tr>, < td>, < th>, < dir>, < menu>, and < form> (@avis137, #44837, #44920).

      CryptoKey is now serializable , allowing it to be used in structuredClone() and postMessage() (@kkoyung, #45163).

      We’ve improved JS error messages in several parts of the DOM (@n0blenote, @jdm, @TG199, @PuercoPop, #44704, #45186, #44656).

      We’ve improved the conformance of form submission (@yezhizhen, #44943, #44953, #44954, #44957), tab navigation (@mrobinson, #44684), javascript: url navigation (@jdm, @TimvdLippe, #43490), ‘Refresh’ headers and < meta http-equiv=Refresh> (@jschwe, @mrobinson, #45113, #45116), ‘line-break: anywhere’ (@mrobinson, @SimonSapin, #44609), assign() on Location (@TG199, @jdm, #44298), crypto.subtle.derive­Bits() (@kkoyung, #44706), get­Computed­Style() (@Loirooriol, #44856), performance.measure() (@shubhamg13, #44675), read­As­Data­URL() on File­Reader (@yezhizhen, #44897, #44924), stream() on Blob (@Taym95, #45133), and ML-KEM in Subtle­Crypto (@kkoyung, #45153).

      We’ve also landed improvements to GPU­Supported­Limits (@sagudev, #45114), GPU­Texture (@sagudev, #45154), create­Bind­Group() on GPU­Device (@sagudev, #45140), and other WebGPU features (@sagudev, #45097).

      We’ve fixed bugs related to < svg> with ‘Content-Security-Policy’ (@TimvdLippe, @jdm, #44974), ‘:active’ (@SharanRP, @mrobinson, #43953), ‘:hover’ (@SharanRP, @mrobinson, #43979), ‘align-items’ (@yezhizhen, #44396), ‘border-image- outset’ (@lumiscosity, #45039), ‘padding’ with ‘overflow: scroll’ (@stevennovaryo, #44263), ‘pointerup’ events (@mrobinson, #44666), ‘slotchange’ events (@jdm, #44688), dynamic import() (@Gae24, #44741), and clip() on CanvasRenderingContext2D (@yezhizhen, #44831).

      Performance We’ve built a tool that will help us improve ‘about:memory’ by finding untracked allocations (@jdm, @TimvdLippe, @webbeef, #44674, #44980). Servo now requires fewer OS threads per CPU, after we combined the thread pools for the image cache, web storage, and IndexedDB (@Narfinger, @mrobinson, #44307). We’ve landed a bunch of layout optimisations: The fragment tree is now immutable for the most part, with small pockets of interior mutability where mutability is needed. This means that most fragment tree accesses no longer have to incur the runtime cost of borrowing an AtomicRefCell (@mrobinson, @Loirooriol, #44849). Two steps in the layout process, calculating containing blocks and building the stacking context tree , require traversing the fragment tree. This can be expensive, but we’ve now combined them into a single fragment tree traversal in most cases (@SimonSapin, @mrobinson, #44911, #45210). Another step in the layout process, calculating scrollable overflow , used to require traversing the entire fragment tree. We’ve effectively eliminated that traversal, by making the calculation both lazy and incremental (@mrobinson, @Loirooriol, #44854). We’ve improved the caching of fragments, shaping results, and other layout results between reflows (@mrobinson, @Loirooriol, @SimonSapin, #45038, #44769). We’ve made incremental fragment layout more precise (@Loirooriol, @mrobinson, #44925). We’ve reduced the memory usage of text shaping (@mrobinson, @SimonSapin, #44609). DOM attributes are much more efficient in this release: When scripts write attribute values, we avoid serialising them until the attribute is read back by a script (if ever), speeding up frequent writes to inline styles by up to 25% (@mrobinson, #44931). When we parse attributes in HTML or read attribute values internally, we avoid constructing Attr nodes until a script actually needs them, reducing memory usage and making garbage collection less likely (@webbeef, @TimvdLippe, @mrobinson, #44209, #45023, #45031, #45060). We’ve eliminated a traversal of the whole DOM tree whenever an < iframe> is attached to the tree, which is especially noticeable when parsing documents with many <iframe> tags (@mrobinson, #45236). Stylesheet locks now use AtomicRefCell, which is even more efficient than a parking_lot::RwLock (@mrobinson, #44883). On OpenHarmony, we now have a real refresh driver for reduced idle CPU usage (@jschwe, @yezhizhen, #44927), and we now cache the font list on disk for faster startup (@RichardTjokroutomo, @d-desyatkin, #44158). We’ve also reduced allocations, GC rooting steps, and other operations in many parts of Servo (@jschwe, @kkoyung, @mrobinson, @SteveSharonSam, @Narfinger, @jdm, @nodelpit, @simonwuelker, #44961, #44944, #44972, #45231, #45078, #44662, #44679, #44967, #44963, #44933, #44935, #44905). To improve Servo’s build times , we’re moving more code out of our massive script crate (@Narfinger, @jdm, #44598, #44636, #44823), and reduced the size of our dependency tree (@jschwe, #44818). Stability __

      Several crashes and hangs have been fixed:

      We’ve continued our long-running effort to use the Rust type system to make certain kinds of dynamic borrow failures impossible (@Gae24, @MavenRain, @Narfinger, @SteveSharonSam, @TimvdLippe, @elomscansio, @jdm, @kkoyung, @yezhizhen, #44712, #44759, #44879, #45014, #45058, #45061, #45076, #45098, #45110, #45149, #45117, #45184, #45201, #44806, #44930, #44942, #44946, #45233, #45181, #44659, #44660, #44664, #44668, #44992, #45000, #45081, #45009, #45225, #45087, #45244, #45245, #45247, #44663, #44665, #44993, #45040, #45053, #44647, #44671, #44681, #44717, #44733, #44686, #44653).

      New contributors A special thanks to the following people for landing their first patch in Servo: AbdAlRahman Gad (@AbdAlRahmanGad, #45213) Onyeka Obi (@MavenRain, #44806) Steve Sharon Sam (@SteveSharonSam, #45030) avis137 (@avis137, #44837) Xabier RodrĂ­guez (@calvaris, #45084) June (@kimjune01, #44816) Matt Van Horn (@mvanhorn, #44740) nicole (@n0blenote, #44704) panxt8 (@panxt8, #44991) Interested in helping build a web browser? Take a look at our curated list of issues that are good for new contributors! Donations __

      Thanks again for your generous support! We are now receiving 7659 USD/month (+4.2% from April) in recurring donations. This helps us cover the cost of our speedy CI and benchmarking servers, one of our latest Outreachy interns , and funding maintainer work that helps more people contribute to Servo.

      Servo is also on thanks.dev, and already 35 GitHub users (+2 from April) that depend on Servo are sponsoring us there. If you use Servo libraries like url, html5ever, selectors, or cssparser, signing up for thanks.dev could be a good way for you (or your employer) to give back to the community.

      We now have sponsorship tiers that allow you or your organisation to donate to the Servo project with public acknowlegement of your support. If you’re interested in this kind of sponsorship, please contact us at join@servo.org.

      7659 USD/month

      10000

      Use of donations is decided transparently via the Technical Steering Committee’s public funding request process , and active proposals are tracked in servo/project#187. For more details, head to our Sponsorship page.

    14. 🔗 Ampcode News Agents in Orbs rss

      You can now launch Amp agents remotely in orbs:

      Orbs are machines where agents can run without supervision. When you create a new thread you get a fresh orb that contains your code, plugins, and tools the agent might need.

      Each orb has 32GB memory, 16 cores, $1.66/hour, billed by the minute. They start up quick and go to sleep when you and the agent no longer need them.

      Remote and Yet So Near

      Agents in orbs aren't running on your machine, but you can control them just like they were.

      You can review changes and browse through the files on the orb:

      You can use the terminal:

      If you want to iterate alongside the agent, you can sync the changes to your local machine by running:

      amp sync <thread-id>
      

      Like this:

      And just like you can spawn new Amp thread with amp -x, you can use amp -ox to spawn a thread in an orb:

      amp -ox "Investigate why the latest CI run on 'main' failed"
      

      You don't even have to leave the Amp TUI to spawn an agent that lives in orb:

      See the manual for more information on orbs and how to use them.

      Things Change

      The ability to spin up new agents from everywhere and then let them run for as long as they need changed how we work with agents.

      Of course, having multiple agents work at the same time was already possible before this: one could use different checkouts for different agents, or worktrees, or run agents manually via SSH on remote hosts.

      But when it's this easy to launch an agent on a machine that isn't your own, in the very same interface that you already use to manage your local agents, right next to those local agents, with the very same controls?

      Things change.

      For one, you tend to do it a lot more.

      Why not launch a group of agents to investigate eight different bugs independently when there are no local resource clashes to worry about? Why not turn a bug report into an agent and an investigation instead of a ticket? Why not manage the agent and its results instead of the ticket?

      You also start to use them for things you hadn't considered before.

      Why not launch an agent to run for a very long time and try out all possible performance optimizations if it doesn't eat up your CPU? Why not have agents run through testing workflows if that doesn't conflict with your local agents and steal memory away from them?

      Why not build that prototype? Why not go for that moonshot? Why not try?

      Why not?

      Time to Find Out

      Back in February we said that we hold the models back if we treat them as mere assistants and lock them into a sidebar. The models, we proclaimed, "want to write code and run even when you're not sitting in front of your editor".

      And now we're here. Never mind the editor, now we can let our agents run even when we're not sitting at our computer.

      We believe that is how a lot of code will be written in the future. We believe that this is not just another step, but a step over an important threshold.

      How exactly this will play out we don't know. Some code will likely always be created locally, under close supervision, with a lot of back and forth. But these models are getting so good that the amount of code they can write on their own (and run, and test, and ship) will only grow. At this point, we hold them back if we require them to do it all on a single machine.

      And once you let them loose in orbs, you realize how constrained they’ve been.

      Time to find out how far they can go.

  4. June 29, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-06-29 rss

      IDA Plugin Updates on 2026-06-29

      New Releases:

      Activity:

    2. 🔗 anthropics/claude-code v2.1.196 release

      What's changed

      • Added support for organization default models — admins set it in the org console; it shows as "Org default" (or "Role default") in /model when you haven't picked one yourself
      • Added readable default names for sessions at start, making them easier to identify and message
      • Added clickable file attachments in chat — Cmd/Ctrl-click reveals the file in Finder/Explorer
      • Security: claude mcp list/get no longer spawn .mcp.json servers that a repo self-approved via a committed .claude/settings.json; untrusted workspaces show ⏸ Pending approval
      • Fixed waking a background job permanently deleting its conversation and re-running the original prompt when the transcript probe misread a real transcript; the file is now set aside, never deleted
      • Fixed the rate-limit warning flickering off and rate-limit telemetry being over-counted when multiple parallel requests were in flight at the moment a usage limit was hit
      • Fixed duplicate recap lines after a background session's turn: a schema-rejected StructuredOutput attempt no longer renders alongside its retry
      • Fixed PowerShell git diff/git grep, egrep/fgrep, and quoted search patterns containing | being reported as failures when they exit 1, matching Bash behavior
      • Fixed multiple claude agents side panel issues: keyboard focus getting stuck when opening an agent, background jobs losing their subagent types on every open, and sessions showing incorrect status while actively running
      • Fixed claude agents --dangerously-skip-permissions silently falling back to auto mode instead of showing the bypass disclaimer and applying bypass mode to spawned agents
      • Fixed mid-turn crash recovery for Remote sessions — sessions interrupted by a server restart now auto-resume on the next worker
      • Fixed sessions moved with /cd reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters
      • Fixed claude plugin validate skipping local plugins whose source is "." and stopping after the first error class
      • Fixed Esc Esc at an idle prompt not opening the rewind menu (regression); use Ctrl+C or Ctrl+X Ctrl+K to stop background agents
      • Fixed MCP OAuth requesting the authorization server's full scopes_supported catalog when no scope is specified, causing invalid_scope failures on GitLab self-hosted and other enterprise IdPs
      • Fixed /context showing 0 tokens for all tool groups on Bedrock
      • Fixed /deep-research misreporting verifier failures as "all claims refuted" instead of unverified
      • Fixed plugin dependency version pins not being honored when the marketplace was added as a local folder path backed by a git repo
      • Fixed claude agents session status: completed rows no longer flip between "Done" and "Needs your input", stalled agents are now labeled "Needs attention", and results that mention a PR show a clickable link
      • Fixed voice dictation swallowing spaces and spuriously starting a recording during very fast typing when voice mode is enabled
      • Improved background session reliability: long-running commands and workflows now survive the session's process being stopped, restarted, or updated — including on Windows, where background shells are handed off instead of being killed
      • Improved background agents: workers killed by a daemon restart are now automatically resumed from where they left off the next time the agents view opens
      • Improved /code-review workflow: merged five cleanup finders into one, cutting token usage by roughly 25%
      • Reduced per-frame rendering work in the terminal UI by skipping no-op subtree walks during streaming
      • The streaming idle watchdog is now on by default for all providers — it aborts and retries when a response stream produces no events for 5 minutes. Set CLAUDE_ENABLE_STREAM_WATCHDOG=0 to disable.
      • Remote Control is now disabled when ANTHROPIC_BASE_URL points at a non-Anthropic host, matching the existing behavior under CLAUDE_CODE_USE_BEDROCK/_VERTEX/_FOUNDRY
      • Changed opening the agents view from a foreground session to require a single ← press instead of two, matching the behavior in background sessions
    3. 🔗 r/reverseengineering Native Linux ReClass.NET. rss
    4. 🔗 @HexRaysSA@infosec.exchange The IDA Domain API just got a big update. 👀 mastodon

      The IDA Domain API just got a big update. 👀

      This version adds microcode, pseudocode, imports, and flowchart modules — covering most of the everyday scripting surface in IDA. Less boilerplate, same power.

      Open source and welcoming contributions.

      Read the blog for before/after examples.
      👉 https://hex-rays.com/blog/whats-new-in-the-ida-domain-api

    5. 🔗 r/reverseengineering TABPE: A monthly Windows PE baseline dataset for Cyber security researchers rss
    6. 🔗 r/reverseengineering Experimental Wine runtime for Nintendo Switch project by dantiicu rss
    7. 🔗 smol-machines/smolvm smolvm v1.3.2 release

      What's Changed

      • feat(cuda): remote guest CUDA Driver-API calls to the host GPU over vsock by @BinSquare in #492
      • Fast SIGKILL on machine delete + demote benign teardown skip-kill log by @BinSquare in #502
      • fix(pack): present the shared store's layers/ subdir to the guest, not the store root by @BinSquare in #503
      • Remove the process-wide boot-concurrency gate by @BinSquare in #501
      • release: smolvm 1.3.2 by @BinSquare in #504

      Full Changelog : v1.3.1...v1.3.2

    8. 🔗 r/reverseengineering With the help of AI I reverseengineered Crystal Report format rss
    9. 🔗 r/reverseengineering /r/ReverseEngineering's Weekly Questions Thread rss

      To reduce the amount of noise from questions, we have disabled self-posts in favor of a unified questions thread every week. Feel free to ask any question about reverse engineering here. If your question is about how to use a specific tool, or is specific to some particular target, you will have better luck on the Reverse Engineering StackExchange. See also /r/AskReverseEngineering.

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

    10. 🔗 HexRaysSA/plugin-repository commits sync repo: +3 releases, -1 release rss
      sync repo: +3 releases, -1 release
      
      ## New releases
      - [ida-rpc](https://github.com/bkerler/ida_rpc): 0.1.3, 0.1.2, 0.1.1
      
      ## Changes
      - [IDAssist](https://github.com/symgraph/idassist):
        - removed version(s): 1.1.0
      
    11. 🔗 smol-machines/smolvm smolvm v1.3.1 release

      What's Changed

      • fix(serve): reclaim leaked VM data dirs on startup (dead-record + dangling) by @BinSquare in #498
      • fix(serve): GC record-less dangling VM data dirs on startup by @BinSquare in #499
      • fix(cli): ephemeral machine run leaks VM data dirs on non-graceful exit by @BinSquare in #497
      • release: smolvm 1.3.1 — lazy-bound libkrun (GPU-less boot fix) by @BinSquare in #500

      Full Changelog : v1.3.0...v1.3.1

    12. 🔗 Szymon Kaliski Q2 2026 rss

      Hi!

      A couple of side-project updates: keeping my archival tool alive, ssh-over-web-browser tailored to my needs, and a slightly better dictation CLI.

      Archivist Updates

      I continue to use, and get a lot of value out of, Archivist.

      Since the original post about the project, six years ago (sic!), the tool got extended with collecting screenshots, finding similar items across all sources, and recently moved to my new Home Server, hosted as a permanent web app.

      For collecting screenshots, I use a two-tier system:

      1. I have a couple of Hammerspoon shortcuts overriding the default macOS ones, that take the screenshot, place it in Dropbox/Screenshots/ folder, and inject OCR text into the files through a combination of tinyocr and xattr. Dropbox only supports a subset of xattr, so this took some figuring-out, but I managed to find a way to sync them with the Home Server, with the OCR data surviving in the file. I could do OCR purely in Archivist and save some headaches, but the nice side-effect of having it in xattr is that Spotlight indexes that data, so I can do a quick search for image content directly from Spotlight.
      2. Archivist does a refresh of all its sources hourly, and as part of that, picks up any changes to the Dropbox folder, and updates its local DB.

      Similarity search was a fun recent addition. As part of the hourly refresh, all images are processed on-device with DINOv2-base for embeddings (after some extra post-processing to make them square, without alpha channel, etc.). The resulting vector is stored in the SQLite as a blob of numbers.

      Together with this, textual values (like the OCR info, metadata, etc.) are embedded with MiniLM-L6-v2, and stored into another table.

      The final search uses HNSW index for super fast fetches (under 16ms for my ~10k items), and combines results from image and text similarity searches.

      All together, we get this:

      Telegraphist

      On the topic of always-on custom services, I couldn't find any app that would tick all the boxes for my ssh-from-iPhone needs:

      • I continue to stubbornly use base16-shell for terminal theming, so I can very easily set colors with a simple command, even though I rarely use it.
      • I wanted something that works with terminal graphics, as I — also rarely — use timg to poke at images inline.
      • Finally, on the Home Server, I'm always in a tmux session, so a native support for that would be nice.

      I poked around AppStore, but couldn't find anything ticking at least some of these boxes. I also tested a handful of "web TTY" kinds of things, but nothing sparked joy. So, I made my own TTY-in-a-browser: Telegraphist.

      It didn't take much prompting to combine a PTY library, a WebSocket connection, and xterm.js and get something tailor-made for me.

      The base16-shell colors not only work in the terminal, but also impact the minimal UI:

      I can look at images:

      And there's a native tmux integration:

      The most fun part of this project was cutting corners to get to a rough first working version, and then working on improvements from within itself.

      Tinyparakeet

      Exactly a year ago I wrote about a small Whisper wrapper that I used to use for dictation.

      Since then I discovered parakeet family of models, and made tinyparakeet — a small CLI tool for speech-to-text, fully on-device:

      It's open source if you, like me, rarely have a need for dictating things, and mostly live in CLI: szymonkaliski/tinyparakeet.

      Worth Checking Out

      What I've been reading lately:

      On the web: