- β
- β
- October 21, 2026
-
π Hex-Rays Blog IDA 9.5: Apple DriverKit Shared Cache rss
IDA 9.5: Reversing Apple DriverKit Drivers
Apple is moving third-party drivers out of the kernel and into DriverKit. A DriverKit driver, or dext , is the kernel's C++ driver framework, IOKit, compiled into a user-space library. It is still built from C++ classes with virtual methods, and it gets work done by sending the kernel messages.

-
π pydantic/monty v1.3.0 - 2026-10-21 release
No content.
-
π HexRaysSA/plugin-repository commits sync repo: +2 releases rss
sync repo: +2 releases ## New releases - [IDA-MCP-Hub](https://github.com/captain-ai-hub/ida-mcp): 0.9.8 - [oh-my-dump](https://github.com/nevergiveupcpp/oh-my-dump): 1.0.17 -
π r/LocalLLaMA Be prepared, GPU price increase incoming --> Samsung sells out 100% of all 2027 HBM capacity - HBM prices expected to jump 200% next year, DRAM prices expected to see a double-digit price increase rss
| submitted by /u/chemist_slime
[link] [comments]
---|--- -
π backnotprop/plannotator v0.28.25 release
Follow @plannotator on X for updates
Missed recent releases? Release | Highlights
---|---
v0.28.24 | A new look for the Inbox, Send now, tag agents, comment on an agent's message, much smaller reads for agents, links in HTML pages
v0.28.23 | Inbox replies reach sessions with background subagents, dictated text no longer goes missing, π Looks good reaches the agent, notifications that never fail silently
v0.28.22 | π Looks good, full view for files, one viewer for a thread's images and files, every session prints its URL,PLANNOTATOR_BROWSER=noneopens nothing
v0.28.21 | Message an agent from the Inbox, video attachments, Open in for attachments, Code / Tests / Generated in code review, writes from other websites refused
v0.28.20 | Inbox search (βK), real folder names for projects, data files open in the code view, word-only replies leave questions open
v0.28.19 | Ask this session in T3 Code, folder sessions load shared stylesheets and images, the agent note asked once per agent, Copy connect prompt
v0.28.18 |plannotator inboxconnects your agents, agents are told when to use the Inbox, rendered Markdown in code review, Inbox Settings in sections
v0.28.17 | The Inbox on iPads and narrow windows, the reply bar no longer cuts off "Keep open", a Pi crash on/reloadfixed
v0.28.16 | The Inbox on a phone, a doorbell for new questions, Mark read, step through a thread's files, replies when the asking session ended
v0.28.15 | Long Inbox threads fold to what is new, "Skipped N questions" replies, Inbox list and sidebar fixes
v0.28.14 | Agents can replace an earlier question, comment on a guided review in the Inbox, issue numbers link to the repository
v0.28.12 | Update notices andplannotator update, attach any file to an Inbox message, questions with context, links to attached filesWhat's New in v0.28.25
A follow-up to 0.28.24 for the Plannotator Inbox: Re-ask, delivery ticks on the list, a count of new messages on the tab, a right-click menu on threads, and click Inbox to refresh. All PRs by @backnotprop.
Plannotator Inbox
Re-ask open questions
When two or more questions in a thread are still open, Re-ask sits beside Reply. It asks the agent to ask them again together in one new message, with fresh context. Picks you made but didn't send go along as answers.
Delivery ticks on the list
A small mark before a row's time shows where your last reply is: a clock while it's queued, dots while it's sending, β when it's saved for an agent, ββ once it's delivered.
A count of new messages on the tab
The tab reads "(3) Plannotator Inbox" and its icon gets a red badge while threads hold agent messages you haven't looked at.
Right-click a thread
Right-click a row (or Shift+F10) to copy its link or thread ID, mark it read or archive it.
Click Inbox to refresh
Click Inbox, the project you're on or the list's title to load the list again, as a page reload would. The icon turns to β» on hover. Nothing is marked read.
Smaller changes
- Close or swipe away a toast with its Γ or a sideways drag. #2021
- Images in What's new. The page shows the images a release carries, saved on your computer first. #2017
- Older Claude Code sessions update with
/reload-plugins, without restarting. #2009 - Long lists stay fast. Rows off screen are skipped, and only changed rows redraw. #2022
- Shift-click works on attached HTML pages , joining several elements to one comment. #2019
- The Sent toast fits on one line. #2010
- A linked page's Back button gets focus reliably. #2015
- A row no longer shows "Sending" while the agent is working after a turn ended and started again within a second. #2030
Plannotator
Smaller changes
- Comments wrap long words and links , show the year on older dates, keep the time visible, and show right-to-left names correctly. Question context keeps its line breaks. #2020
- Documents open faster : the annotation toolbar no longer forces a layout pass when a document opens. #2025
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: The plugin and the
plannotatorbinary update separately, so run the install script above as well. In a terminal:claude plugin marketplace update plannotator claude plugin update plannotator@plannotatorThen restart Claude Code. Inside Claude Code, run
/plugin marketplace update plannotator, then open/pluginβ Installed β plannotator β Update now.Pi:
pi update --extensionsOpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.
What's Changed
- Inbox: update older Claude Code sessions with /reload-plugins by @backnotprop in #2009
- Inbox: the Sent toast fits on one line by @backnotprop in #2010
- Inbox: a count of new messages on the tab by @backnotprop in #2011
- e2e: tag in a file comment measures the passage once the pane stops moving by @backnotprop in #2012
- e2e: wait for the touch-opened composer to take focus before Escape by @backnotprop in #2013
- Inbox: a linked page's Back takes focus once it is drawn by @backnotprop in #2015
- Inbox: delivery ticks on list rows by @backnotprop in #2016
- Inbox: images in What's new by @backnotprop in #2017
- Inbox: Re-ask open questions by @backnotprop in #2018
- Inbox: shift-click joins more elements to one comment on an attached HTML page by @backnotprop in #2019
- @plannotator/ui: five display fixes from Workspaces' break-ui pass by @backnotprop in #2020
- Inbox: close or swipe away a toast by @backnotprop in #2021
- Inbox: skip layout for rows off screen by @backnotprop in #2022
- Inbox: right-click a thread row to copy its link by @backnotprop in #2024
- @plannotator/ui 0.53.1: two fewer forced layouts on document open by @backnotprop in #2025
- Inbox: click Inbox to refresh the list by @backnotprop in #2027
- Inbox: tell the windows when a turn ends and starts again between delivery looks by @backnotprop in #2030
- Tests: two DOM tests that failed at random in CI by @backnotprop in #2031
Community
Every PR in this release is by @backnotprop.
Full Changelog :
v0.28.24...v0.28.25 -
π r/LocalLLaMA EXCLUSIVE: ByteDance, Alibaba, Tencent place over $35 billion worth of Nvidia chip orders rss
China just ordered 3mil RTX 5500 Pro for $11.4k a pop. Probably for llm inference and AI video gen. I suppose this card is now out of reach for local llm.
submitted by /u/Ok_Warning2146
[link] [comments]
-
- October 20, 2026
-
π IDA Plugin Updates IDA Plugin Updates on 2026-10-20 rss
IDA Plugin Updates on 2026-10-20
New Releases:
Activity:
- augur
- 103e7868: docs: update
- chernobog
- e96039ef: docs: add Chernobog 6.5.0 release notes and update README
- bad5076c: fix: reduce constant-masked selectors before Legacy MBA SMT search
- 8acf0c1a: fix: canonicalize verified complements in MBA SMT proof expressions
- 2a2f6055: fix: prioritize complete linear word regions in Legacy MBA SMT
- 98793b69: fix: reserve 750 ms ctree budget for Legacy MBA SMT chains
- e5900be5: fix: execute unconditional MBA SMT chains without invariant inference
- d2401dd0: feat: promote CoBRA to default MBA SMT backend
- 0e83dbb9: fix: retain 500 ms site cap for all unmasked Legacy MBA SMT expressions
- 83d35afd: ci: add configurable native parallelism input for MBA CoBRA runtime wβ¦
- cf61d8a3: fix: preserve 250 ms site cap for masked and small Legacy MBA SMT expβ¦
- 76018126: fix: prepare MBA SMT word proofs for constant queries and retain per β¦
- 68f9dfda: fix: skip MBA SMT invariant inference for empty unconditional CFG wraβ¦
- e74216d0: fix: prepare cached word proofs before Legacy MBA SMT search
- diaphora
- ffxiv_bossmod
- 21555358: oh yeah
- haruspex
- 390c9e5e: docs: update
- rhabdomancer
- 51b5167f: docs: update
- XrefsExt
- f1e57756: plugins
- augur
-
π @binaryninja@infosec.exchange For the stable-branch-enjoyers, there's a fresh Krypton (6.0) R2 release mastodon
For the stable-branch-enjoyers, there's a fresh Krypton (6.0) R2 release available where you regularly download all your fine Binary Ninja releases:
-
π Simon Willison Battle Drones - a vibe coded RTS with audio-based multiplayer rss
My latest vibe coded game experiment is a Command & Conquer style RTS (Real Time Strategy) game called Battle Drones (play it here). Unlike my previous experiments, this one is actually fun to play. I'm somewhat embarrassed to admit that I got there by telling Claude to "Make it a LOT more fun". It also supports multiplayer between nearby devices using audio to synchronize game state! Here's what I've built so far, and some of the things I learned along the way.
- Battle Drones
- How I built this
- v1: the initial prototype
- v2: full sprites
- v3: varied terrain
- v4: the fun update
- v5: Battle Drones goes 3D
- v8: Archipelago
- v10: Goliath, and agent battles
- Agent battles
- v11: Random Maps
- v12: Multiplayer via sound
- Some thoughts
- Update: Online multiplayer support
Battle Drones
My initial goal was to build an RTS game I could play on my phone, in the style of Command & Conquer. I have fond memories of the 1995 original (I liked Red Alert too) and wanted to recapture a little bit of the magic.
After 12 major iterations (and 321 commits by coding agents, mainly Claude Code) I now have a browser-based game that works on mobile and desktop, has multiple play modes, several maps (including a random map generator) and even supports multiplayer for two devices within microphone range of each other. (Update: also online multiplayer; the audio multiplayer induced headaches!)
Here's a video demo of Battle Drones running in a desktop browser:
Features so far include:
- 9 buildings, 7 ground vehicles, 6 aerial vehicles, 3 infantry units - all 3D models, which you can browse here
- Fog of war
- Different weapons are needed to target aerial or ground vehicles
- Six maps, across five biomes - temperate, desert, arctic, volcanic, tropical
- A random map generator
- Skirmish mode - red vs. blue on a rotationally symmetrical map
- Last Stand mode - one player holds out against as many waves of enemies as possible
- Area effect weapons: Barrage, EMP, Drop Pod, Sky Hammer
- Crate drops with bonus resources
- In-game music that responds to events - it gets more intense as fighting breaks out
- Different in-game AI personalities (Balanced, Rush, Air Swarm, Boom, Skyforce, Ironclad)
- AI vs. AI mode, to watch those personalities play each other
- The Goliath - a giant stomping mech with laser eyes and arm cannons and the ability to establish a new base
- Mutators that add extra rules or twists
- A "Daily Op" challenge
- Ranks and achievements (Medals)
- Agent vs. Agent mode where two LLMs can play Battle Drones against each other
- A multiplayer mode based on two nearby phones communicating via audio messages, an extension of my earlier experiment with Chirp Pong
How I built this
Battle Drones is heavily vibe coded - I've reviewed almost none of the code, and it's built in a language (TypeScript) that I've hardly used myself. I've playtested it quite a bit though, and it's been through a large number of iterations since I started the project.
Here's a rough history of the project so far, including key prompts and links to transcripts.
v1: the initial prototype
I started out with Claude Fable 5 back in July:
We are going to build a mobile friendly RTS game - command and conquer style - called Battle Drones, in which two armies of drones (both flying and ground-based) battle for territory and resourcesLet's start with a MVP design, ask me some questionsHere's a shared transcript. I'd given Claude Code for Web an environment variable with an OpenAI API key and told it to use the OpenAI Image Generation API for assets, which got me some basic sprites.
You can try v1 here - it looked like this:

It's recognizable as an RTS, has building mechanics and the ability to select and direct units, and a basic AI to play against.
This first version was barely a proof of concept, and it wasn't any fun to play.
Claude used the Phaser 2D game framework for these early versions. I didn't even realize this until several iterations later!
v2: full sprites
The second version (try v2 here) added sprites for all of the vehicles and the "AI vs. AI" mode, so I could watch the game playing without having to directly control it myself.
Claude proved reasonably competent at prompting OpenAI's image models to generate sprites. You can browse the v2 sprites in the public/assets/sprites folder.

v3: varied terrain
It still wasn't much fun, and the graphics were boring. It was now October, and I had upgraded to Claude Opus 5.5. I told it:
Massively improve this game. Make the graphics and gameplay better (keep it mobile friendly). Render new graphics using the latest OpenAI GPT image API (lookup details) with the API key in the environment variable. Add new unit types and balance the gameplay better. Also add new buildings and better, more varied terrain.This resulted in five new maps with generated background tiles in a variety of styles, visible here. Opus also regenerated the sprites, making them much more visually appealing. You can try v3 here - it looks like this:

This is starting to feel like a real game! It still wasn't very fun to play though - I found myself getting bored pretty quickly.
v4: the fun update
So far my Battle Drones experiment was confirming my previous belief that coding agents can build a thing that looks like a game but can't actually make something that's genuinely compelling to play.
I shared this theory with someone over dinner, and then thought to myself that I should give the models a proper chance to prove me wrong. I prompted Opus 5.5 on my phone:
This game isn't fun enough yet. Make it a LOT more fun.This time I was running in Ultracode mode, where Claude Code (in this case Claude Code for Web) runs "dynamic workflows", described in their docs as:
A dynamic workflow is a JavaScript script that orchestrates many subagents at once.
This kicked off many hours of work. I started it in the evening and didn't get a playable result back until late into the next morning. But the results were spectacular.
You can try v4 here - it looks like this:

I had Claude write its own release notes - here are the highlights:
Every skirmish and Daily Op now opens with a choice, gives the side that's losing a way back, and pulls the armies into the middle of the map. There are also two new ways to play.
- Openers: pick Blitz, Industry or Air Wing before the clock starts.
- Call-down powers: Barrage, EMP, Drop Pod and the Sky Hammer orbital strike.
- Objectives and salvage: Uplink relays, supply drops and wrecks worth scrap.
- Feel: combat juice, adaptive music, unit voices and an announcer.
- Command: battle alerts, game speed, saved squads and touch placement.
- New modes: Last Stand survival waves and an 8-mission Ops campaign.
- Progression: heroes, an after-action report with awards, a career, 7 mutators and a Daily Op.
Fights run longer and swing more. In 1,200 AI-vs-AI test matches on Normal, games still undecided after 25 minutes fell from 14% to 0.9%. The share of wins by a side that had been 800+ scrap behind rose from 24% to 46%.
Part of the reason Claude took so long was that it ran over a thousand simulated playtest sessions, and used the results to rebalance the existing units, add new ones, and introduce new features.
v5: Battle Drones goes 3D
After the success of Ultracode at "Make it a LOT more fun", I decided to be more ambitious:
Port this game to three.js with 3D models for all of the buildings and vehicles and landscapesThat was another overnight run. I woke up to this v5 version:

The new 3D models were entirely constructed by Claude in TypeScript code.
v6 (play v6 here) added some more visual polish. v7 (play v7) added robot infantry (troopers, rocket squads, snipers) and a "Condor" troop carrying aircraft.
v8: Archipelago
I was beginning to feel guilty at how little actual design input I had into the game - it really had been a case of me saying "make it more fun" and "add visual polish" for the past few releases.
I'd noticed that the AI didn't use the new infantry and troop carrying aircraft from v7 very often - there wasn't a great strategic reason to use them.
It would be neat if we had a new map with a new game mechanic that actively encouraged players to load up Condors with infantry robots and send them out into the map.
This resulted in my longest prompt yet:
Design a new map. Goal is to make different strategic incentives that encourage use of Infantry and Condors and aerial vehicles.To do this the map will have limited harvester resources but several more uplinks - but uplinks will be on islands that are inaccessible by land vehicles or infantry. These uplinks can also not be claimed using air vehicles. The ONLY way to get them is to fly infantry there in a Condor.Armies always start with a Condor and a single squad. If an army has no Condor a new one will be provided for free, flying in from the edge closest to their HQ and landing there. That free condor will come with a single free squad on board.The two HQs should be entirely separated by water, but still accessible by vehicles thanks to two bridges across the map in different placesI want to encourage a battle over uplinks.The map should be the times the size of other maps - still squareFirst research and then critique this design. Only build after we have agreed on any modificationsYou get to design a new biome for thisThe result was the tropical Archipelago map, with seven island uplinks that players can only capture by flying out infantry in a Condor. It's definitely the most fun map to play, once you've got the hang of the basic game mechanics from the simpler maps. The v9 edition made that map a little more interesting - it now looks like this:

v10: Goliath, and agent battles
I decided to add giant robot mechs to the game - think Jaegers from Pacific Rim, or Titans from Warhammer 40,000.
Here are some of the prompts I used to brainstorm with Claude:
Help me brainstorm ideas for adding giant robots to this game - think dreadnoughts or titans from W20K - how could we do this in a way that enhanced gameplay, kept things balanced, added unique twist? Don't overthink this yetLet's keep brainstorming. I like the idea that it's a mobile base - that can accept harvested scrap and can have buildings built near it (even if it later moves on) and can produce infantry units too. An interaction with condor would be neat but I don't know what that could be.Idea: as it gets damage it loses the ability to fire some weapons - by default it has eye laser (like lancers) and arm canons (like titan) and two shoulder mounted mortars, plus machine guns similar to a squad of troopsDamage knocks out mortars and then laser - it always has guns. You can't build next to a building that was only put there because of the mech, you need the mech there for off-base building and only within three squares of it[...] Lets do two condors can carry the mechThe end result is really cool.
Goliaths can be constructed using a Gantry - a building that can only be created after first building a Fab, Bay, Airpad, and Tech Lab. You can see the Goliath under construction, and it then walks out from the Gantry and can march around the map.
Goliaths can "anchor", which digs them into the ground. In their anchored state they can act as a new HQ, constructing infantry units and additional buildings in a new area.
Two Condor aircraft can hook onto a Goliath, at which point it can be flown around the map!
The game now ends when you destroy the enemy's HQ building and any Goliaths they might have built.
There are also a couple of mutators relating to Goliaths:
- Goliath Armada starts each side with four airborne Goliaths (each with a pair of Condors) and no other units.
- Robot Love adds a special rule: if enemy Goliaths get close to each other on the battlefield they fall in love and the game ends in a draw. (Thank Natalie for that one).
Agent battles
The other v10 feature is agent battles. In musing about how multiplayer could work I had an idea: what if different LLMs could fight it out in the game?
Fun extra challenge: think about how we might make multiplayer available to coding agents. It would be neat if we could set up a battle between eg GPT-6 Sol and Claude Opus 5.5 where each model has access to a tool which gives them information about the game (presumably non-visual, but only the information they could see through fog of war etc) and lets them control their units etc [...]Consult ~/dev/llm/docs and include notes in that file about how LLM could be used here via a new tools pluginOpus 5.5 went to work on this, producing this AGENT-BATTLES.md proposal and then implementing and testing it. The feature also includes the ability to record and replay these battles - here's a replay of Claude Haiku 5.5 vs. GPT-6 Luna, and here's that same battle in a separate debug tool that shows the underlying prompt responses.

The prompt that drives agent battles can be seen here.
There are a few more replays like this linked in the README. I hope to turn this into a full league table at some point in the future.
v11: Random Maps
This version exists purely because I glanced at my Claude Usage page one day and saw that I'd only used 75% of my weekly allowance and it was resetting in 45 minutes. I decided to see if I could get an extra Battle Drones feature from my remaining tokens, and picked "random map" as the target:
Design and implement a mechanism for generating a random map using any of the available biomes - it should be the size of the largest map and rivers and bridges and rocks and forest and scrap and crystals are all in play. Make them rotationally symmetric and use a seed to allow them to be selected or reused later. You have 45 minutes to build this! Be creative.Here's the transcript, and an image Claude generated to show me its work:

v12: Multiplayer via sound
I only just got this working, so I've not had much time to actively test it yet. The latest Battle Drones now supports multiplayer via two devices sat within microphone distance of each other!
This feature started out as my Chirp Pong experiment from last week. I pointed Claude Code at that working proof of concept:
Clone Simonw/tools from GitHub and look at recent branches for the example pong game that uses web microphone to implement multiplayer between two phones via audio signalsBuild a version of that for battledronesOpus built this Radio Probe tool to measure how much bandwidth we could get between two devices and, based on positive results from that, implemented a full audio modem system. I've tried it between laptops, iPhones and iPads so far and it seems to work really well!
Why use sound for this? Because I love static HTML that costs nothing to run, and I don't want to spin up a server somewhere and then stay responsible for keeping it operating for as long as anyone might want to play the game.
Some thoughts
I know almost nothing about game development. This makes it a great opportunity to try out coding agents in a field where my existing software engineering experience has less impact on the results.
Games are also super low stakes. The worst that can happen is one of my silly game experiments suffers a bug.
This morning (via Hacker News) I found Steam Fans Are Begging for a No-AI Filter as Steam Next Fest Is Filled With Slop. I wouldn't personally dream of submitting Battle Drones to an event like this - it's still way too low effort to warrant consideration as a legitimate indie gaming project.
... but I can now see a path to vibe coded games like this being taken seriously. Battle Drones is fun, it looks good, it has innovative features (the multiplayer-over-audio thing is a first for an RTS as far as I can tell).
I'd love to see what someone with better taste than me and a driving passion to produce something truly exceptional could build!
A few other observations from this project:
- Static HTML and JavaScript is a fantastic medium for games development. WebGL works great, and Three.js (and Phaser before it) are excellent platforms to build on that the current models know inside out.
- This also lets them run as Progressive Web Apps - I didn't ask for it, but Battle Drones works offline. I was able to play it on a plane despite never having directly installed it - my phone had it cached.
- Giving Claude an OpenAI API key and telling it to generate images using OpenAI's models works really well. It can view the images it has generated and iterate on the prompts.
- Opus 5.5 is spectacular at 3D modeling using Three.js (and Blender, and no doubt other 3D applications as well). The same is true of GPT-6 Astra. They are absolutely capable of building models for 3D game projects.
- For features like replay and multiplayer it's useful to have a deterministic simulation engine. At one point Claude had to replace calls to
Math.sin()andMath.cos()and friends with custom versions because different browsers (Chrome vs. Safari, for example) returned very slightly different numbers, desynchronizing the replay. - Opus 5.5 can write music! There are no audio files in this project - the soundtrack is entirely generated through code, varies across different maps, and even gets more intense as the battle heats up. See Scrimshaw Jukebox for a previous experiment with Claude for music composition.
- I still can't get over how well the prompt "Make it a LOT more fun" worked.
- Tools are effectively free. I prompted up the Radio Probe, the Model browser, the Agent vs. Agent debug tool, and Claude Code built a bunch of tools for itself that I haven't even explored myself.
- Audio-based multiplayer between static HTML games works! I hope to see a whole lot more games use this same pattern - in digging around today I've not found much prior art beyond Siner by Alon Horesh and ggwave by Georgi Gerganov (also of
llama.cppfame). - Claude Code "Ultracode" burns tokens like there's no tomorrow, but it can also solve complex problems (like adding audio-based multiplayer) from a single prompt.
- I'm still not quite over the guilt of building software in this way. I don't feel like I've earned the right to create something this good, in a field in which I have so little prior experience! At this point I've shown it to enough people in private that it felt wrong not to publish it for everyone else to see and learn from.
Update: Online multiplayer support
Earlier in this article I said:
Games are also super low stakes. The worst that can happen is one of my silly game experiments suffers a bug.
Then I tried playing the multiplayer version with Natalie... and the high pitched modem sounds gave her a nasty headache!
That's a pretty bad bug. I added a warning and was then inspired to build proper network multiplayer. I tried getting WebRTC to work but couldn't get a connection going between two of my own devices even on my own WiFi network, so I had Claude build a simple, stateless WebSockets relay server instead:
If I wanted to support multiplayer between two devices at a very low cost without storing any state on the server could I do that with a tiny asyncio web server running on the cheapest Fly instance?Build the server and the fly.toml for deploying it, use Fly application name battledrones-relay - put that in a folder in the repo, include deploy instructions in the README in that folderHere's the resulting server. Since this scales to zero and runs on a single Fly.io
shared-cpu-1xinstance it should cost me no more than $2.19/month - and that's if it stays hot and serving connections the whole time.Battle Drones now supports online multiplayer. Click "Duel a friend online", then either share the resulting room URL via your messaging app of choice or have them snap a picture of the displayed QR Code.
I also added a feature where you can copy JSON of the match once it has ended and then feed that into the replay feature to rewatch your game.
I didn't expect to introduce online multiplayer this soon, but the headache bug felt like it warranted an urgent alternative.
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.
-
π backnotprop/plannotator v0.28.24 release
Follow @plannotator on X for updates
Missed recent releases? Release | Highlights
---|---
v0.28.23 | Inbox replies reach sessions with background subagents, dictated text no longer goes missing, π Looks good reaches the agent, notifications that never fail silently
v0.28.22 | π Looks good, full view for files, one viewer for a thread's images and files, every session prints its URL,PLANNOTATOR_BROWSER=noneopens nothing
v0.28.21 | Message an agent from the Inbox, video attachments, Open in for attachments, Code / Tests / Generated in code review, writes from other websites refused
v0.28.20 | Inbox search (βK), real folder names for projects, data files open in the code view, word-only replies leave questions open
v0.28.19 | Ask this session in T3 Code, folder sessions load shared stylesheets and images, the agent note asked once per agent, Copy connect prompt
v0.28.18 |plannotator inboxconnects your agents, agents are told when to use the Inbox, rendered Markdown in code review, Inbox Settings in sections
v0.28.17 | The Inbox on iPads and narrow windows, the reply bar no longer cuts off "Keep open", a Pi crash on/reloadfixed
v0.28.16 | The Inbox on a phone, a doorbell for new questions, Mark read, step through a thread's files, replies when the asking session ended
v0.28.15 | Long Inbox threads fold to what is new, "Skipped N questions" replies, Inbox list and sidebar fixes
v0.28.14 | Agents can replace an earlier question, comment on a guided review in the Inbox, issue numbers link to the repository
v0.28.12 | Update notices andplannotator update, attach any file to an Inbox message, questions with context, links to attached filesWhat's New in v0.28.24
A big Inbox release: a new look, Send now, tagging agents, comments on an agent's own words, and much smaller reads for agents. Links inside HTML pages now work everywhere you annotate. 23 PRs, all by @backnotprop.
Plannotator Inbox
A new look
The Inbox has a softer, calmer design, with tooltips that match the app instead of the browser's. A new text size setting (Settings β General, 12 to 15) makes everything larger or smaller at once.
Send now
After you send a reply, the line under it says whether it is queued (the agent is busy and gets it when its turn ends) or on its way. Send now puts it into the agent's running turn right away, on Claude Code, Pi and OpenCode 2.
Tag agents
Type
@in a reply or a comment to choose which agents get it.Comment on an agent's message
Select any words in an agent's message and comment on them, the same way you comment on an attached file. Your comments go with your next reply.
Agents read much less
When an agent reads a long thread, it now gets the newest messages in full and older ones as one line each, with the option to open any of them. A 46-message thread went from about 48,000 tokens to about 7,000. Agents can also search the Inbox.
Knowing when to update Claude Code sessions
When a Claude Code session still runs an older Plannotator plugin than the one installed, the Inbox says so and shows how to load the new one.
One full-screen mode for files
Every kind of attached file opens full screen the same way.
Removed: the Decisions page. The Inbox no longer has a Decisions page, and agents no longer have the tools that recorded decisions.
Smaller changes
- The skill picker in New message opens right under the line you are typing instead of behind the footer (#2004)
- New message is in the list header while the sidebar is closed (#1987)
- The toast sits at the bottom of the window and its words are never cut off (#1988)
- The notification line above the list reads more cleanly (#1989)
- Rows that Show brings in stay highlighted a little longer (#2003)
Plannotator
Links in HTML pages work
In HTML you annotate, and in HTML pages attached in the Inbox, a click on a link now follows it and β-click (Ctrl-click) pins it for a comment. On a phone, a tap follows and a press-and-hold comments. Live apps follow the same rule.
Smaller changes
- Docs: WSL2 needs no remote mode, so Ask this session stays on (#1984); the guide skill is now called guided-review, with a new guided-plan skill (#1996); the
@plannotator/uihandoff docs are up to date (#1986)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: The plugin and the
plannotatorbinary update separately, so run the install script above as well. In a terminal:claude plugin marketplace update plannotator claude plugin update plannotator@plannotatorThen restart Claude Code. Inside Claude Code, run
/plugin marketplace update plannotator, then open/pluginβ Installed β plannotator β Update now.Pi:
pi update --extensionsOpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.
What's Changed
- Inbox: one full-screen mode for files by @backnotprop in #1958
- Inbox: say a sent reply is queued, and Send now delivers it into the running turn by @backnotprop in #1968
- Inbox Soft (1/4): Soft on theme tokens by @backnotprop in #1971
- Inbox Soft (4/4): buttons, dialogs, Settings and a file's chrome painted Soft by @backnotprop in #1977
- Inbox: component tooltips everywhere, no native titles by @backnotprop in #1982
- Docs: WSL2 needs no remote mode, so Ask this session stays on by @backnotprop in #1984
- Inbox: remove Decisions by @backnotprop in #1985
- Docs: packages/ui HANDOFF.md and README.md match core 0.25.13 / ui 0.53.0 by @backnotprop in #1986
- Inbox: New message in the list header while the sidebar is closed by @backnotprop in #1987
- Inbox: the toast sits at the bottom of the window, and its words show whole by @backnotprop in #1988
- Inbox: the notification line above the list reads cleanly by @backnotprop in #1989
- Inbox: a text size setting (12β15, default 14) by @backnotprop in #1990
- Docs: the guide skill is now guided-review; add guided-plan by @backnotprop in #1996
- Inbox: comment on the text of an agent's message by @backnotprop in #1997
- Inbox MCP: smaller results by @backnotprop in #1999
- Inbox: links inside an attached HTML page open by @backnotprop in #2000
- Inbox: say when an agent session needs a restart after an update by @backnotprop in #2001
- Inbox MCP: windowed thread reads, text transcripts, and agent search by @backnotprop in #2002
- Inbox: rows that Show brings in stay lit longer by @backnotprop in #2003
- Inbox: the skill picker in New message opens at the cursor by @backnotprop in #2004
- Inbox: tag agents in a reply or a comment by @backnotprop in #2005
- Inbox: the restart note leads with /exit and the resume command by @backnotprop in #2008
Community
Every PR in this release is by @backnotprop.
- @balaji-dutt reported that Ask this session was off under WSL2 even though the review page was only reachable on the same machine (#1983), which led to the WSL2 docs fix.
Full Changelog :
v0.28.23...v0.28.24 -
π exe.dev The Topology of an LLM Agent Loop With Tool Use rss
When I look at a new agent, I break it down by focusing on its topology. An agent is three things:
- A model. Your model choice defines the agentβs βsmarts,β i.e., which tasks it can accomplish.
- The agentic loop (see: The Unreasonable Effectiveness of an LLM Agent Loop with Tool). Loop choice determines UX.
- The set of tools. This defines the capabilities and power (and blast radius) an agent has.
(2) and (3) together are often called βthe harness.β
All of this is code, and code has to run somewhere. Where these runβthe topology of these agents βhas implications on cost, capability, effectiveness, and security for companies building AI products and people using AI tools.
Example 1: Claude Code
Claude Code on your laptop uses Anthropicβs hosted model, runs the agentic loop on your laptop, and runs the tools also on your laptop.
Example 2: ChatGPT
ChatGPT uses OpenAIβs hosted model, runs the agentic loop on their backend server, and runs tools also on their backend servers.
Example 3: Siri on your Mac
Siri on your Mac uses a mix of models: smaller ones run on your Mac, and bigger ones run in Appleβs Private Cloud Compute. The agentic loop runs on your Mac, and so do the tools, like the one that reads your Messages.
Example 4: Amp Orbs
Amp Orbs use models from Anthropic, OpenAI, and others, run the agentic loop in Ampβs backend, and run the tools in your Orb, a VM that Amp creates for each thread with your code on it.
Example 5: Shelley on exe.dev
If youβre using our Shelley coding agent on an exe.dev VM, the model is hosted, and the agent and the tools run on the VM.
In all of these cases, remote MCP servers can expose tools running elsewhere.
Where Is the Model?
Your choices here are GPUs hosted by someone else or your own GPUs.
As the controversy around the Navier-Stokes equation reminds us, the only way to be confident nobody is training on your data is to not send your data to them. If youβre working on common problems, it probably doesnβt matter. But I suspect a hapax legomenon could end up in the training data somewhere.
If I want to, say, use some LLMs to OCR and classify some scanned bills on my computer, Iβm reaching for local models, because speed doesnβt matter (it can run overnight), and privacy is guaranteed. (Shout out to the Apple Vision Framework, by the way. And ScanShelf is an example where I do this!)
Ken Thompsonβs 1984 Turing Award lecture, Reflections on Trusting Trust, hits different now. That paper poses how a Trojan Horse could be hidden in a compiler, invisible in the compilerβs source code, as itβs propagated by the compiler. The LLM (a compiler? maybe? no?) could have some tampered weights that lead the agent to do something naughty; itβs been tried. We must choose which vendors to trust.
LLMs are wreaking havoc on traditional SaaS cost structures as well. If you have, for example, a diagram-drawing SaaS, and you want to let your users use agents to edit the diagrams: whoβs paying for the tokens? Before agents, your costs were a few database rows per customer; now that customer can rack up a $100 bill with a few sentences. At exe.dev, our users can bring their own ChatGPT subscriptions to build applications with OpenAI models. This is a win- win. I expect weβll see more βbring your own modelβ options.
This is my bespoke drawing editor, with a built-in agent. Youβre going to see βagent drawersβ in every product.
Where is the loop?
If youβre using, say, ChatGPT, the loop is running in OpenAIβs servers. If youβre running a coding agent, the loop is running on your laptop. The loop could run in a web browser (e.g., as I did in ItsyBitsy, and as many others have as well).
I have found over and over again that I find other peopleβs loops limiting. For example, I much prefer pointing my preferred agent at my source code and my observability tooling rather than using the observability vendorβs agent loop.
The loop has to maintain the message history (since an LLM agent is operating on the entire history), and that has to be stored somewhere. Storing it in SQLite for Shelley remains a decision Iβm very happy with. Pi Durable also offers SQLite.
The loop also provides the UI for the agent. Can it display images? Are there customizations to give feedback on video? Is it limited to plain text? Can it handle attachments? Can a conversation be shared? All of these are choices the loop must make.
Where are the Tools?
Agents arenβt agents without tools. The jump from one βcompletionβ from an LLM to an agentic loop is transformational. If an agent can empirically test the thing itβs writing, the results are better.
The problem with executing code is that, well, you have to do it somewhere, and you have to assume that the code being executed is unpleasant and will steal all the cookies from your pantry and set off the fire alarms at night unnecessarily (or worse).
The code execution isnβt lightweight: itβs not all editing files; compilation, video processing, running testsβ¦ the workload can be heavy.
Virtual Machines are the gold standard for executing code safely. Even with VMs, there are tons of variables: can it talk to the network? Does it have credentials to talk to other services? Is there enough memory?
Running coding agents locally works too, but the blast radius for the βLethal Trifectaβ is bigger. Exposure to untrusted content could lead the agent to leak secrets, for example.
You can build many useful agents without a full machine. Pyodide, a Python running in WASM, is sandboxable without a full machine. Likewise, there are several WASM JS implementations. You can always run the agent loop on the browser, too, which runs sandboxed code day in and out. (See https://blog.philz.dev/blog/sandboxes/ for a short list of some of these approaches.) You can also give an agent the ability to run SQL on a readonly database connection, and thatβs pretty safe!
Note that the tools donβt have to be in the same address space as the loop; they donβt even need to be in the same neighborhood. When youβre using a βConnectorβ in ChatGPT (roughly their word for MCP), youβre giving the agent loop (which is hosted by OpenAI) access to resources somewhere else. Concretely, if you use the exe.dev MCP, your ChatGPT can operate on your exe VMs. When youβre talking about MCP, map out where the OAuth tokens are held.
To make their products useful, Muse, GrokBot, OpenAI Dots, and so on are all providing VMs.
Mapping Agents
There are tradeoffs everywhere you look. Framed as topology, you can break down any agentic product. Once you know whatβs running where, you can reason about what a product can and cannot do.
In my work at exe.dev, I use five independent agentic loop implementations nearly every day. (Our coding agent, Shelley; our alert agent, Sisyphus; our deployment supervisor, Athena; an ops agent, Puck; our repo news Slack agent.) Shelley is a general purpose coding agent, but the other four are bespoke software. More and more software will ship with agentic loops built-in.
I also constantly interact with other systems, and use agents to glue them together. The companies that get it make their product legible to coding agents. I can just smell Clayton Christensen's Innovator's Dilemma as I switch from better, more polished, established products to ones that let me point an agent at them. Of the nine points in Revisiting Joelβs Test, this is the most important one.
There is no βone loop to rule them all.β Good UX (and a good set of tools) for a general-purpose chatbot is not the same as good UX for a coding agent.
I leave you with the most useful code of the year. When you insert agents into your products, think of the topology of those agents.
def loop(llm): msgs, msg = [], user_input() while True: msgs += [msg] output, tool_calls = llm(msgs) print("Agent: ", output) if tool_calls: msg = [ handle_tool_call(tc) for tc in tool_calls ] else: msg = user_input() -
π r/LocalLLaMA Pocket TTS which supports voice cloning is now just 1.9 million parameters rss
submitted by /u/Affectionate_Hat_585
[link] [comments] -
π r/LocalLLaMA Deepseek released DeepInfer - Open Source high-performance, large-scale inference framework for DeepSeek models! rss
| This is crazy good for studying to improve existing custom engines by community like gufo, halogen, strixite, Strata... by learning their secret sauces. submitted by /u/feelspeaceman
[link] [comments]
---|--- -
π r/LocalLLaMA 24GB is plenty if your engines take turns rss
| System service that watches your card, swaps and loads whatever you want, whenever you want. Donβt have to swap anything manually, collisions avoided, VRAM fully dedicated to each function while itβs running (no VRAM squatters). I had issues everyday (Linux) where a node process would orphan, comfyUI auto starts and holds 500MB that strata canβt claim. I also wanted to be able to switch natively and not have to think about starting each engine, making sure strata or llama wasnβt stuck loaded, or flux GGUFβs still claimed in comfyUI from an old workflow. I swap between Ninfer-4090 (llama-swap), strata, comfyUI, OpenWebUI, and I do it between multiple devices all using the same RTX 4090. Maybe you want to have your box run Hermes at night and you take the card back in the day, you can do it natively without thinking about and have full visibility on what was done and when. Berth will also serve your engines as an API so when you need to switch natively you load berth as the API endpoint and you can load strata, polystrata, and any other custom engine. Works for gaming as well, you donβt have to worry about a cron job, a request, or anything grabbing the card while youβre gaming or doing custom workflows. REPO: https://github.com/T-Crypt/berth EDIT: Berth v0.3 is out, and I need testers with big RAM and more than one GPU v0.3 parks engines in system RAM instead of unloading them. A switch back to a parked engine skips the reload from disk. My workstation has 62 GB, and Strata alone pins 40 GB, so I can't measure parking at the sizes you run. I'm looking for: - 64, 96 or 128 GB of RAM with a 24 GB card. You'd park a vLLM or ComfyUI engine, switch away, switch back, and send me the times. - Two or more GPUs, any mix. Multi-GPU leases are the next release, and I want real topologies before I write them. - Windows with an NVIDIA card. One of you already runs it there. contrib/windows/check.ps1 compares Berth's per-process VRAM with Task Manager and writes a report. - AMD on Linux, for the release after that. submitted by /u/Distinct-Pie2389
[link] [comments]
---|--- -
π Rust Blog Announcing rustup 1.29.2 rss
The rustup team is happy to announce the release of rustup version 1.29.2.
Rustup is the recommended tool to install Rust, a programming language that empowers everyone to build reliable and efficient software.
What's new in rustup 1.29.2
This is a small release which only updates the rustls-webpki and webpki-root- certs dependencies to address the problematic eMudhra intermediate certificates issue described in CVE-2026-111943.
See also RUSTSEC-2026-0382.
Further details are available in the changelog!
How to update
If you have a previous version of rustup installed, getting the new one is as easy as stopping any programs which may be using rustup (e.g. closing your IDE) and running:
$ rustup self updateRustup will also automatically update itself at the end of a normal toolchain update:
$ rustup updateIf you don't have it already, you can get rustup from the appropriate page on our website.
Rustup's documentation is also available in the rustup book.
Caveats
Rustup releases can come with problems not caused by rustup itself but just due to having a new release.
In particular, anti-malware scanners might block rustup or stop it from creating or copying files, especially when installing
rust-docswhich contains many small files.Issues like this should be automatically resolved in a few weeks when the anti-malware scanners are updated to be aware of the new rustup release.
Thanks
Thanks again to all the contributors who made this rustup release possible!
-
π Filip Filmar Bazelizing Third-Party FPGA Designs: Two Case Studies rss
Converting existing open-source FPGA projects to Bazel and rules_openxc7 makes hardware builds reproducible, eliminates machine-specific paths, and enables one-command bitstream generation without vendor licensing hurdles. This article examines two real conversions of external repositories: mmRISC-2, a silicon-proven RISC-V SoC with heavy SystemVerilog hierarchies, and Custom RISC CPU with Systolic Matrix Accelerator, a pipelined processor paired with a 2D systolic array coprocessor. Both examples illustrate how Bazel transforms fragile build scripts into reliable, sandboxed workflows.
-
- October 19, 2026
-
π IDA Plugin Updates IDA Plugin Updates on 2026-10-19 rss
IDA Plugin Updates on 2026-10-19
New Releases:
Activity:
- oh-my-dump
- ee60b0dd: ci: parameterize builds and bundle release assets
- f57347cd: ci: attach standalone DLL to releases
- 0af0b1c0: ci: preserve release title format
- ef591292: build: update IDA SDK library lookup
- c0209d05: ci: build on pushes and PRs, publish releases on tags
- 5bf11189: chore: update plugin metadata and bump version to 1.0.16
- oh-my-dump
-
π Quarkslab's blog MbedTLS Security Audit rss
Introduction
Mbed TLS is a widely deployed open-source TLS, DTLS, and X.509 library maintained by Trusted Firmware, targeting constrained and embedded environments. It is used as the cryptographic backbone of products across the IoT, automotive, and industrial sectors, and forms the TLS layer for projects such as the Trusted Firmware family.
Version 4.0 represents the most significant architectural change in the project's history. The cryptographic layer has been extracted into a standalone library, TF-PSA-Crypto, which implements the PSA Cryptography API v1.2 as specified by Arm. The Mbed TLS repository now consumes TF-PSA-Crypto as a submodule, and the configuration space has been split across two header files:
mbedtls_config.hfor the TLS and X.509 options, andpsa/crypto_config.hfor the cryptographic primitives. All RNG callbacks have been removed in favor of a mandatory call topsa_crypto_init()before any operation.The Open Source Technology Improvement Fund (OSTIF) commissioned Quarkslab to perform a security audit of this new architecture.
Scope
The primary objectives of this audit are:
-
Architectural transition review. Assess the security implications of the Mbed TLS 3.x to 4.0 split, focusing on the trust boundary between the TLS layer and TF-PSA-Crypto, the correctness of the PSA API integration, and whether the removal of the legacy crypto paths introduces new attack surface.
-
PSA API usage correctness. Verify that key attributes (usage flags, permitted algorithms, lifetimes) are correctly set and enforced throughout the TLS and X.509 code paths, and that the mandatory
psa_crypto_init()dependency is properly documented and enforced. -
Memory safety. Identify memory corruption vulnerabilities in the SSL/DTLS context management (in particular, session serialization and resumption), the X.509 parsing subsystem, and the PSA key store.
-
Default configuration posture. Review the security of the default build configuration, including enabled cipher suites, protocol versions, key exchange algorithms, and compile-time options that may expose users to risk without explicit opt-in.
-
Protocol compliance. Identify deviations from the TLS 1.2 (RFC 5246), TLS 1.3 (RFC 8446), and DTLS specifications that have security consequences.
The engagement covers:
- Mbed TLS at commit
0fe989b6b514192783c469039edd325fd0989806. - TF-PSA-Crypto (integrated submodule) at commit
29160dd877d29658279fd683b2ae57b320ddcf09.
The complete technical report, including our findings and recommendations, is available in Quarkslab's public reports repository.
Findings
The table below summarizes the findings of the audit. A total of 5 vulnerabilities were identified: 1 of high severity, 1 of low severity, and 3 informational ones.
ID | Title | Severity | Perimeter | HIGH-1 | CID Buffer Overflow in
mbedtls_ssl_context_load()| High |library/ssl_tls.c:5002
---|---|---|---
LOW-4 |mbedtls_pk_verify()accepts BER-encoded signatures | Low |tf-psa-crypto/extras/pk.c
INFO-2 | No Anti-Replay Protection for TLS 1.3 0-RTT Early Data | Info |include/mbedtls/ssl.h:5166
INFO-3 | Mismatch in CMAC cipher support between the documentation and the implementation. | Info | TF-PSA-Crypto documentation
INFO-5 |compat.shDTLS 1.2 tests fail on thembedtls-testDocker image due to IPv6localhostresolution | Info | mbedtls-test Docker images,compat.shNote: All relevant findings have since been resolved.
Conclusion
The audit identified a few vulnerabilities with only two non-informational ones, and the auditors were overall very satisfied with the quality of the product in general, and this version's changes in particular.
The high and low vulnerabilities are related to a heap buffer overflow and potential signature malleability, respectively, with the second one being identified thanks to the integration of integration of Project Wycheproof test vectors into the test suite.
An informational finding documents the absence of any anti-replay protection for TLS 1.3 0-RTT early data, a known limitation that is currently not surfaced in the public-facing documentation in a way that prevents inadvertent misuse. Auditors have proposed improvements to the existing fuzzing harnesses and corpora, along with an integration of the #anv test suite into the CI/CD pipeline.
We would like to thank the Mbed TLS maintainers for their responsiveness and collaboration throughout the audit process, as well as the OSTIF team for their continuous support.
Further details can be found in our report.
Further reading
-
-
π exe.dev Join Us: exe's First Meetup in San Francisco rss
Maybe it's the years we spent on Zoom? San Francisco seems hungry for in- person events, and we're no exception.
We're hosting our first technical meetup for developers on Monday, October 26, from 6 to 9pm at the Sentry office in San Francisco. The question of the evening: Are we running too many agents?
The topic comes from Josh's recent post, ETOOMANYTHINGS? Run Fewer Agents, which sparked some interesting discussion online. We figured it would be fun to continue the conversation and debate in person.
We've invited a few exe friends to give some talks on the theme:
- Josh Bleecher Snyder is the cofounder of exe and the person who got this whole conversation started. He'll be talking about whether we're building software factories incorrectly.
- Beyang Liu is working on amplifying human agency at Amp and previously cofounded Sourcegraph.
- Josh Wills is an engineer at DatologyAI, with a long history of building developer tools and infrastructure.
We'll follow the talks with an open Q&A. Bring your questions and opinions to participate in the conversation.
There will be pizza and drinks, too. A big thank you to Sentry for sponsoring.
We'd love to have you there. Sign up here: https://luma.com/0qr6bxcw
-
π crosspoint-reader/crosspoint-reader v2.0.0rc release
CrossPoint 2.0.0
What a busy month. A lot of new features landed in CrossPoint, and we're eager to hear what you think.
New devices
This release adds support for four ESP32-S3-based devices: the Metalio E-Ink 4, the EEGO A4 (standard and Lite versions), and the BOOX Picco. If you're thinking of buying one, you'll find links at https://crosspointreader.com/devices. That page uses our affiliate links, so buying through it helps support CrossPoint.
SD card plugins
CrossPoint now supports plugins installed on the SD card. A plugin can add book catalogs and downloads to the reader, or tools to the device's web interface. To show the Plugins entry on Home, enable Plugins under Settings β Connectivity.
Plugins are not apps that run arbitrary code on the reader. On-device plugins use the screens and operations the firmware already provides, such as sign-in, catalogs, downloads, and supported reading events. They can't replace the reading engine, install hardware drivers, or add unsupported document formats.
Some plugins include JavaScript, but that code runs in a browser on your phone or computer, so the browser page has to stay open while it works. For example, a browser plugin can turn articles or RSS feeds into an EPUB, which you then read on the device.
The plugin system will stay focused on reading and book services. It won't become a platform for on-device games, calculators, notepads, writing apps, web browsers, or PDF rendering. Those remain outside CrossPoint's scope, plugins included.
Bluetooth page turners
Bluetooth page turners now work on all devices. Go to Settings β Connectivity β Bluetooth Page Turner to scan for a remote, pair it, and map its buttons. Short and long presses can trigger different actions: page turns, chapter navigation, the reader menu, and clipping selection.
Highlights and clippings
You can now select text in EPUBs, highlight passages, and save excerpts as clippings. On button devices, use the reader menu. On touch devices, hold a word and drag the selection handles. Selected text also works for dictionary lookup, including multi-word phrases. If you turn on Sync Clippings, clippings can sync through a compatible CrossPoint Sync server.
EPUB formatting and reading controls
EPUB rendering now handles more of what books actually contain: drop caps, small caps, mixed text sizes, borders, and shaded blocks. Tables take column content, cell padding, and borders into account. Headings stay attached to the text that follows them, and paragraph indentation has its own setting. EPUBs can also show non-interlaced GIF images, covers included.
Noto Serif is now optional
To free up space for all of this, Noto Serif moved from a built-in font to an optional SD card font. If you use it, install
NotoSerifthrough Manage Fonts before or after upgrading. Without it, a Noto Serif selection falls back to Noto Sans.
Libron also available for direct download from the font manager.Everything else
- OPDS, the catalog format used to browse and download books, now supports version 2.0 alongside existing catalogs.
- The device web interface has a new look and more consistent dialogs.
- Settings are grouped into a cleaner layout that's easier to extend.
- Touch devices get swipe-to-delete in the file browser and a few other places.
- Azerbaijani is now available as a UI language.
We also added a device comparison page to the website, for anyone who wants a CrossPoint device but can't decide which one: https://crosspointreader.com/device-comparison.
What's Changed
- fix: update keyboard layout and look by @uxjulia in #3755
- test: include in library builder storage stub by @suhsoohong in #3765
- feat: navigate lists on button press by @Uri-Tauber in #3754
- fix: Footnote selection with power button by @Uri-Tauber in #3766
- docs(dictionary): recommend unzipping .dict.dz files on devices without PSRAM. by @brianhuster in #3768
- perf: remove ButtonNavigator allocation churn by @serialx in #3698
- refactor(reader): unify TXT and Markdown rendering via EPUB pipeline by @brianhuster in #3704
- fix: let Back leave File Transfer during a slow HTTP upload by @martinqnguyen in #3732
- feat: settings checkbox by @Uri-Tauber in #3773
- perf: keep FAT sectors in a separate SdFat cache by @serialx in #3685
- feat: Add configurable EPUB paragraph indentation by @meat-holic in #3727
- chore: clean dead code by @Uri-Tauber in #3805
- feat: SD card based plugin system by @itsthisjustin in #3114
- fix: reopen on the viewed page after following a link by @suhsoohong in #3764
- fix: Remove BQ27220 battery current USB detection for X3 by @itsthisjustin in #3809
- chore: change "Footnotes" label to "Links and footnotes" by @Uri-Tauber in #3808
- fix: Add per-book content key storage and plugin isolation by @itsthisjustin in #3824
- fix: keep reopened books from pinning the heap by @serialx in #3830
- fix(bidiutils): canonicalize reversed tuple in emission path by @Uri-Tauber in #3834
- fix: stop books with thousands of chapters aborting the index build by @martinqnguyen in #3733
- fix: keep SD-font kerning and ligatures in edge cases by @serialx in #3838
- fix: stop dropping log lines at the low-power clock by @serialx in #3737
- fix: hold the power mode mutex while switching to low-power by @martinqnguyen in #3847
- perf: avoid list navigation callback allocations by @serialx in #3848
- feat: Add support for Metalio E-Ink 4 device by @itsthisjustin in #3825
- fix: lend the framebuffer to the chapter build's image dimension probe by @osakanataro in #3802
- fix(webdav): GET sends one byte per file, since HalFile wrapped FsFile by @rfordinal in #3410
- perf: skip unused Arduino SDK libraries by @Uri-Tauber in #3857
- fix: add plugin-manager to return-selection mapping by @Uri-Tauber in #3864
- fix: stable tip positions in keyboard activity by @Uri-Tauber in #3863
- fix: Center button hints using the actual text height by @Uri-Tauber in #3865
- fix: preserve paragraph continuity across soft flushes by @brianhuster in #3875
- fix: scope Git version to sources that use it by @Uri-Tauber in #3860
- feat: Add vector font (.ttf/.otf) upload support in webserver by @itsthisjustin in #3717
- feat: render redaction blocks without a special font by @uxjulia in #3882
- fix: load the X3 battery capacity into its BQ27220 fuel gauge by @martinqnguyen in #3730
- perf: stop SD-font caches from splitting the heap while reading by @serialx in #3831
- feat: eego a4 support by @Uri-Tauber in #3887
- feat(kosync): add server profiles and extended metadata by @jadehawk in #3804
- perf: Batch page-position reads by @Uri-Tauber in #3899
- docs: clarify non-Latin UI fallback isn't CJK-specific by @YuunJiee in #3873
- fix: show popup for kosync server type selector by @jadehawk in #3905
- chore: refactor agents guidelines by @Uri-Tauber in #3890
- feat: JPEG file viewer by @Uri-Tauber in #3918
- fix(KOSync): resolve upload XPaths for text outside
<p>/<li>by @brendanlefebvre in #3923 - feat: complete Azerbaijani translation and add Ζ/Ι glyph support by @kheyyam in #3842
- fix: add currency, letterlike, minus to latin-ext by @stefanvanburen in #3801
- feat: add ability to clip/highlight text for EPUBs by @uxjulia in #3589
- fix: add non-CJK GUI fallback font support by @YuunJiee in #3484
- feat(dict): support looking up multiple tokens using clipping feature by @brianhuster in #3932
- fix(kosync): advertise percentage progress support by @mehalter in #3219
- fix: Metalio E-Ink 4 powers off fully when it sleeps by @eszter007 in #3944
- fix: say why an OPDS feed fetch failed by @MrcRjs in #3872
- chore: yet more refinment of agents guidelines by @Uri-Tauber in #3951
- fix: Sub-chapter contents navigation by @Uri-Tauber in #3946
- style: refresh device web UI by @cdmoro in #3950
- fix: update SDK to resolve X3 anti-aliasing freeze by @serialx in #3960
- feat: Swipe to delete by @Uri-Tauber in #3712
- fix: prevent FilesPage modal from closing when selecting text by @Crestwave in #3931
- perf(zip): scan the central directory in one read per entry by @hamaluik in #3955
- docs: list Paper Mono in frontlight guide by @muness in #3968
- feat: Add custom HTTP headers for OPDS and KOReader Sync by @sergmetelin in #3016
- feat: Add "Footnotes and links" option to long press menu button by @pmiossec in #3851
- fix: wrap plugin event disclosures to fit screen by @lpla in #3837
- fix: normalize web upload filenames to NFC by @serialx in #3961
- feat: offer Libron in Manage Fonts downloads by @phucisstupid in #3971
- docs: clarify scope for reusable downstream primitives by @kivarun in #3821
- fix(layout): allow breaking line after hyphens, dashes by @brianhuster in #3883
- fix: dictionary back overflow bug by @Uri-Tauber in #3987
- fix: Respect content area insets and corner radius in UI by @itsthisjustin in #3986
- fix: Add WiFi TX power limit configuration by @itsthisjustin in #3993
- feat: hide dictionary entry when none configured by @pmiossec in #3990
- fix: add sleep screen confirmation by @Uri-Tauber in #3994
- test: run standalone UI regressions with CTest by @phucisstupid in #3991
- fix: refresh Library after plugin book installs by @georborodin in #3997
- fix(time): Use RTC for plugin time by @dasJ in #3879
- feat: Adds OPDS 2.0 support by @itsthisjustin in #3629
- feat: add global plugin system toggle and optional plugin hub bootstrap by @jadehawk in #3877
- fix: keep cumulative spine sizes in book.bin instead of RAM by @martinqnguyen in #3784
- feat: Bluetooth page turner (one module owns the BLE radio) by @martinqnguyen in #3785
- feat: Settings grouping by @digitaltembo in #3862
- refactor: Implement dialogs, consistent promps, polish js logic by @cdmoro in #3984
- fix: recognize AES-256-CBC manifests by @jadehawk in #4016
- feat: move NotoSerif to optional SD font by @Uri-Tauber in #4022
- fix: preserve CSS styles under low memory by @serialx in #4032
- feat: Improve epub rendering by @itsthisjustin in #3891
- docs: explain IPA in dictionary pronunciations by @jokot in #4034
- fix: flush pending word before a block opens by @jokot in #4030
- fix: prevent font-size crash in the Text panel by @serialx in #4041
- fix: XTCH books missing from library, XTC books show filename and unknown author by @eszter007 in #4023
- refactor: remove unused checkbox icon helper by @phucisstupid in #4059
- refactor: remove unused zlib header helper by @phucisstupid in #4057
- refactor: remove unused rectangle touch helper by @phucisstupid in #4058
- refactor: remove unused image existence helper by @phucisstupid in #4060
- fix: keep the BLE radio off in a book when no remote is chosen by @martinqnguyen in #4074
- feat: support static GIF images in EPUBs by @lpla in #2299
- feat: Add support for BOOX Picco device by @itsthisjustin in #3947
- fix: avoid restoring stale home cover pixels by @lpla in #4076
- fix: defines incomplete-type owner lifecycles out of line by @lpla in #2643
New Contributors
- @suhsoohong made their first contribution in #3765
- @martinqnguyen made their first contribution in #3732
- @meat-holic made their first contribution in #3727
- @rfordinal made their first contribution in #3410
- @brendanlefebvre made their first contribution in #3923
- @kheyyam made their first contribution in #3842
- @stefanvanburen made their first contribution in #3801
- @mehalter made their first contribution in #3219
- @MrcRjs made their first contribution in #3872
- @Crestwave made their first contribution in #3931
- @hamaluik made their first contribution in #3955
- @muness made their first contribution in #3968
- @sergmetelin made their first contribution in #3016
- @pmiossec made their first contribution in #3851
- @phucisstupid made their first contribution in #3971
- @kivarun made their first contribution in #3821
- @georborodin made their first contribution in #3997
- @digitaltembo made their first contribution in #3862
- @jokot made their first contribution in #4034
Full Changelog :
1.6.5...2.0.0rc -
π r/LocalLLaMA MiniMax M3.1 Flash released, Model weights Oct 23 rss
| submitted by /u/MagicZhang
[link] [comments]
---|--- -
π r/LocalLLaMA MiniMax-M3.1-Flash is coming rss
| From MiniMax (official) on π: https://x.com/MiniMax_AI/status/2112111925975032241 submitted by /u/Nunki08
[link] [comments]
---|--- -
π Ampcode News Assign It To Amp rss
Amp is now an agent in Linear.
Assigning an issue to Amp starts a new Agent Session in Linear and spawns a new orb. You can also mention @Amp to kick off a session. Amp sends its response back to the same session and replies to messages sent along the way. The Agent Session also appears in your Amp sidebar and is fully viewable in Amp.
Assign Amp an issue in Linear.

Follow its progress in the Agent Session.

Then open the same conversation in Amp.

To get started, install the Amp agent in your Linear workspace and connect your Amp account to the Linear MCP in Settings β MCP & Integrations.

Read the docs to learn more.
-
- October 18, 2026
-
π IDA Plugin Updates IDA Plugin Updates on 2026-10-18 rss
IDA Plugin Updates on 2026-10-18
New Releases:
Activity:
- community-malware-research
- b494a31f: Yara rules to detect Eternidade Stealer, and some components
- IDAPluginList
- 3e23e67c: chore: Auto update IDA plugins (Updated: 19, Cloned: 0, Failed: 0)
- mysl8te-feature-lab
- 7156cf72: Merge pull request #1 from patelvivek9111/cursor/environment-bootstraβ¦
- 6a4c678c: docs: add final security verification report with complete test evidence
- 59200d7b: fix: correct security test naming and add production mode verification
- 203e7f00: docs: add final corrections report
- 74e21b9d: fix: final security and reproducibility corrections
- 4d4ad22d: docs: add final verification summary with all evidence links
- c7f9a46d: fix: harden bootstrap - all tests passing, REA & Ghidra verified end-β¦
- ff38799f: docs: add quick reference guide for development and testing
- b48f480e: feat: install REA, Ghidra, and create comprehensive bootstrap infrastβ¦
- 80767667: feat: initialize React + TypeScript frontend and Node.js backend withβ¦
- d7e7fd38: Create README.md
- oh-my-pi
- 933f6cd0: docs(fork): record the v18.12.1 upgrade and rebase the patch-list basβ¦
- 2ce9b186: Merge branch 'trial/v18.12.1'
- f4a8ba83: style(wiki): oxfmt drift on patch #42 files
- deb4698b: fix(catalog): keep web/grok first in the KDL web role-defaults (fork β¦
- 44292107: fix(trial): MCP loader test fixtures gain lazyConfigs/lazySources
- 5264552d: fix(trial): post-merge typecheck repairs (wiki 4-arg sig, lsp import,β¦
- 540ccc55: Merge upstream v18.12.1 into the fork (trial)
- acdb9016: v18.12.1 upstream source
- oh-my-pi-schema
- b67632f9: feat(mcp): send structured results to the model as JARO text
- 558dc28a: fix(ai): stop retrying background requests against a failing server
- 04d1e410: feat(catalog): add catalog.remoteRefresh switch to stop catalog.stencβ¦
- a3e361c6: feat(ai): read concurrency limit from RateLimit-Policy header
- 9562e7c8: feat(task): add opt-in cold-start subagent concurrency
- 53432fc9: feat(ai): honour a gateway-advertised concurrency limit
- e279e79e: fix(ai): learn provider overload from every transport response
- b64e56de: feat(ai): adapt provider concurrency to overload
- c1ff3590: fix(ai,task): scale retries and subagent fan-out to a provider cap
- b1d054e0: fix(ai,skills): keep side requests from starving turns on capped provβ¦
- 7c2f174c: feat(skills): add skills.compressDescriptions opt-out
- 5b95c909: chore(sync): merge upstream oh-my-pi v18.12.1
- community-malware-research
-
π r/LocalLLaMA Google Open Sources Harness2 for Self Improving AI Agents rss
| Google just released Harness2 as open source. It turns any AI harness into a system that improves itself over time. A harness is everything around the model. System prompt, tools, memory, skills, and subagents. Normally a person designs it once and the agent uses that fixed setup for every new task. With Harness2 the agent itself refines the harness for each task. It proposes changes, runs a few candidate versions, and picks a better one by comparing how they perform. No correct answers or graders are needed. The model weights stay the same. What it learns on one task carries over to the next. After finishing a task it saves the improved harness and useful lessons so future edits start smarter instead of from scratch. Google tested it with Gemini 3.5 Flash and GLM-5 on legal, office, and professional work benchmarks. Even one round of edits beat the original harnesses. More rounds pushed scores higher. GitHub https://github.com/google-research/harness2 submitted by /u/chemist_slime
[link] [comments]
---|--- -
π r/LocalLLaMA 72 hours, four big open weights drops. The only one that fits in 24GB came from NVIDIA, of all companies. rss
| What a week. Quick recap, all numbers from the official repos and model cards: Thursday: Meta drops Muse Spark Open. 816B total, 42B active, 1M context. The launch post says it brings agentic AI "to your desktop". The desktop is two M5 Ultra Mac Studios with 512GB each, a config Apple says ships "late October" and still hasn't put a price on. The alternative is four 256GB Studios, roughly $38k. On top of that it's a custom license: mandatory "Built with Muse Spark Open" attribution and a separate deal once you're past $20M revenue. And Meta's own model card puts it at 39 on the Artificial Analysis index, behind GLM 5.3 (45) and Kimi K3 (44). Same day: NVIDIA ships Nemotron 3.5 Bolt. 74B total, 9B active, trained quantization aware down to 2 bit, so the whole thing is 22GB plus a 1.7GB vision projector. Built to fit in 24GB on purpose. Unsloth GGUFs on day one, plus llama.cpp, Ollama and LM Studio support. Friday: Reflection actually ships Beam. 501B total, 23B active, Apache 2.0, no strings. Smallest official checkpoint is NVFP4 at 294GB. Saturday afternoon: DeepSeek posts V4.1 Flash 1017 on X like it's nothing. MIT. Their own table has it at 77.0 on DeepSWE vs 74.0 for Opus 5 (vendor numbers, salt accordingly). The repo is 510GB. So I put them all on one chart against the 24GB line most of us live under. My takeaways:- "Runs locally" now officially means "runs on a computer that costs more than a car."
- The company that keeps selling us 24GB cards is the only lab this week that built a model for 24GB cards. Not sure if that's wholesome or a sales funnel.
- Licenses mattered more than parameter counts this week. MIT and Apache 2.0 from DeepSeek and Reflection, attribution plus a revenue clause from the company with the loudest "open" marketing.
- Mistral says the Large 4 weights ("Le Chonk", 1T total) land before the end of the month, so the 24GB line is about to get even lonelier.
Sources in the comments. submitted by /u/BTA_Labs
[link] [comments]
---|--- -
π pydantic/monty v1.2.0 - 2026-10-18 release
What's Changed
- Cap float format precision at
INT_MAX - 1024like CPython 3.14.8 by @samuelcolvin in #1002 - Implement
hashlibby @samuelcolvin in #988 - fix(monty-js): publish the component facade declaration in dist by @Yi-111-a in #1008
- fix-pr-comments: include maintainer threads, be sceptical of bots by @samuelcolvin in #1012
- Implement
os.pathby @samuelcolvin in #1000 - Add a docs column to the branch diff and fix misclassified files by @samuelcolvin in #1017
- Support dataclasses
field(),default_factoryand__post_init__by @rewitt94 in #835 - Load
pydantic_monty._binaryeagerly at package import by @cpruijsen in #992 - Honour
open()'snewlineargument and make file objects iterable by @samuelcolvin in #1001 - Import host call by @samuelcolvin in #942
- Host module fixes: duplicate attr names, assignment docs, module hashing by @samuelcolvin in #1021
- fix(monty): compile the JSON string cache on the declared 1.96 MSRV by @Yi-111-a in #1013
- Fix JavaScript print callbacks swallowing thrown null by @GoldArowana in #1028
- Optimisation: Direct sequence unpacking by @jaheba in #1015
- Extract a
PyHashTableshared by dict and set by @rewitt94 in #884 - Binascii and base64 resource limits checks by @rewitt94 in #842
- Bump
samuelcolvin/check-python-versionaction to v5.1 by @Viicos in #997 - Harden CI by @Viicos in #1010
- Cap restored session budgets at destination limits by @rewitt94 in #1027
- Support list slice assignment by @jaheba in #1031
Path.scanos call by @samuelcolvin in #987- Bump dtolnay/rust-toolchain from efa25f7f19611383d5b0ccf2d1c8914531636bf9 to e2a55d2ffb04f378e9626c28d38b36d230d1e12f by @dependabot[bot] in #1034
- Fix contracts of
pathlib.Pathandosfs actions by @jaheba in #999 - Support ordering comparisons for set and frozenset by @jaheba in #1040
- Add
bisectmodule by @jaheba in #1047 - Run CodSpeed benchmarks on macro runners in walltime mode by @samuelcolvin in #1044
- Extract Python benchmark scripts into separate files by @jaheba in #1055
- Enable CodSpeed memory mode for benchmarks by @jaheba in #1054
- Optimize f-string concatenation buffer preallocation and refcount churn by @gabrielhsc95 in #1052
- Implement the
csvmodule by @samuelcolvin in #1018 - Remove redundant interpreter benchmarks by @samuelcolvin in #1056
- Disable ASLR for the CodSpeed bench run by @samuelcolvin in #1062
- optimize ci by @davidhewitt in #1064
- Match statements by @samuelcolvin in #1016
- Pin glibc malloc thresholds for walltime benchmarks by @codspeed[bot] in #1059
- make many more dunders supported on user instances by @davidhewitt in #1058
- Include capture groups in
re.split()results by @Likheet in #1036 - Register interpreter benchmarks from the python/ directory by @samuelcolvin in #1057
- Fix match statement review findings by @samuelcolvin in #1069
- Add
pyperformancebenchmarks by @jaheba in #996 json.loadandjson.dumpby @samuelcolvin in #1023- implement
tomllibby @samuelcolvin in #1022 - v1.2.0 release prep by @samuelcolvin in #1073
New Contributors
- @cpruijsen made their first contribution in #992
- @GoldArowana made their first contribution in #1028
- @dependabot[bot] made their first contribution in #1034
- @gabrielhsc95 made their first contribution in #1052
- @Likheet made their first contribution in #1036
Full Changelog :
v1.1.0...v1.2.0 - Cap float format precision at
-
π r/LocalLLaMA unsloth/DeepSeek-V4.1-Flash-1017-GGUF Β· Hugging Face rss
| https://unsloth.ai/docs/models/deepseek-v4.1-flash submitted by /u/MundanePercentage674
[link] [comments]
---|--- -
π r/LocalLLaMA Two pallets of ZOTAC RTX 5090 graphics cards worth $470,000 disappear at Brazilian airport rss
| submitted by /u/chemist_slime
[link] [comments]
---|--- -
π r/LocalLLaMA You donβt need that expensive of a build for local llms. rss
Been seeing a lot of people with their 64gb of ddr5 4x3090 or whatever strata builds and itβs been sorta depressing knowing i cant afford that but i finally finished my setup today so here we go,
Qwen 3.8 27b at 262k context, unsloth iq4XS ascii condensed with kv cache streaming
My only gpu is a 9060 xt 16gb and i have 24gb ddr5 for my whole homelab only needing 16 for this
MTP+ ngram prediction
q4 kv cache values with q8 keys
42.7 tps generation 658 tps prefill at 20k, 35/500tps at 200k
Using this fork: https://github.com/achyudh/llama.cpp
I got grok bot to ssh in and fix the bugs i had with missing pcie atomics
submitted by /u/Maglcite
[link] [comments]
-