- ↔
- →
- August 09, 2026
-
đź”— Anton Zhiyanov Relying on Go rss
Everyone is creating a new programming language these days, often one that's "like Go but with more features" or "like Rust but simpler".
Solod, a systems language for C and Go developers, might look like one of those languages, but it takes a different approach.
Go's tooling Solod is not "Go-like" in the usual sense, nor is it an attempt to "fix Go's mistakes". At the language level, Solod is literally a subset of Go. Solod reuses much of Go's existing tooling, including syntax highlighting, LSP, linters, and the package management system. Take this quick-start guide, for example: Quick start Install the So command line tool: go install solod.dev/cmd/so@latest Create a new Go project and add the Solod dependency to use the So standard library: go mod init example go get solod.dev@latest Write regular Go code, but use Solod packages instead of the standard Go packages: package main import "solod.dev/so/math" func main() { ans := math.Sqrt(1764) println("Hello, world! The answer is", int(ans)) } Run without saving the binary: so run . That's it! There's nothing new here. It's mostly standard Go workflow, except for so run, which is a Go program that mimics go run. Go's standard library Solod also reuses a lot of Go's standard library code and tests. Some of it is taken verbatim from Go's source code, like these two string functions: // CutPrefix returns s without the provided leading prefix string // and reports whether it found the prefix. func CutPrefix(s, prefix string) (string, bool) { if !HasPrefix(s, prefix) { return s, false } return s[len(prefix):], true } // HasPrefix reports whether the string s begins with prefix. func HasPrefix(s, prefix string) bool { return len(s) >= len(prefix) && s[:len(prefix)] == prefix } Of course, Solod retains the Go authors' copyright. Some code requires changes to support the manual memory management with explicit allocators used by Solod: // Go version. func Clone(s string) string { if len(s) == 0 { return "" } b := make([]byte, len(s)) copy(b, s) return unsafe.String(&b[0], len(b)) } // Solod version. func Clone(a mem.Allocator, s string) string { if len(s) == 0 { return "" } b := mem.AllocSlice, len(s)) copy(b, s) return string(b) } You can probably see the resemblance. A grain of salt
Go tools don't know that Solod is a subset of the full Go language, so they won't flag features Solod doesn't support, like function literals or iterators. These diagnostics come from the custom
sotooling:package main func main() { f := func(n int) { println(n) } f(42) } main.go:4:7: function literals are not supported f := func(n int) { ^hereAlso, although a substantial part of Go's standard library is ported verbatim or with minimal changes from the original source, that doesn't mean the code is automatically correct. Solod still needs its own tests, including ones that run under sanitizers and static analyzers.
It's all C in the end
All Solod code is translated to regular C11 and then compiled with GCC or Clang. Solod therefore relies on C tooling and decades of optimization work just as much as on Go's.
Solod code:
package main import "solod.dev/so/math" func main() { // What might it be? ans := math.Sqrt(1764) println("Hello, world! The answer is", int(ans)) }Translated C code:
// -- main.h -- #pragma once #include "so/builtin/builtin.h" #include "so/math/math.h" // -- main.c -- #include "main.h" int main(void) { // What might it be? double ans = math_Sqrt(1764.0); so_println("%s %" PRIdINT, "Hello, world! The answer is", (so_int)(ans)); return 0; }The C version is noisier, of course, especially for more complex programs than this one. But it remains readable.
And since there's no runtime, interoperability between Solod and C costs nothing.
Final thoughts
A new language doesn't necessarily need a new ecosystem.
Solod relies heavily on Go, and I see that as a strength, not a weakness. Reusing Go's proven tools and standard library makes Solod more reliable and easier to work with.
If you're interested, take a look at Solod's readme — it has everything you need to get started. Or try it online without installing anything.
-
đź”— WerWolv/ImHex Nightly Builds release
Nightly
8000d01Changelog- fix: Return menu icons on macOS 27
- fix: macOS titlebar backdrop when using ImGui menubar
- fix: Title bar back drop on macOS not rendering anymore
- impr: Properly extend title bar back drop down sidebar
- feat: Add tooltip with font path to custom font dropdown entry
- fix: Missing padding on text editor tooltip windows
- build: Rename file to match naming convention
- feat: Allow all colors to be picked as accent colors
- patterns: Update pattern language
- git: time MacPorts action execution
- build: Make AppImage actually properly portable
- fix: Properly forward dirty state from view provider to underlying one
- fix: Home/End/PageUp/PageDown with non-zero base address
- fix: Editing hex cells with non-zero base address filling cell with wrong byte value
- fix: Recent files menu only appearing when hex editor is selected
- fix: Settings shortcut not working when in text field
- fix: Formatting
- build: Fix wrong default for ARCHITECTURE_FILE_NAME
- build: Fix AppImage update information substitution
- patterns: Update pattern language
- git: Update CI actions
- patterns: Update pattern language
- patterns: Update pattern language
- fix: Remove launch popup that store was updated
- fix: Revert setting separator size smaller than 1
- fix: Unload plugins after all cleanup happened
- fix: Task completion popup appearing for background tasks
-
- August 08, 2026
-
đź”— Register Spill Joy & Curiosity #94 rss
What a lovely week it's been! Nearly the whole Amp team met up in Munich. We all stayed in the same hotel and in the mornings floated down to a big meeting room in which we then hacked, asked each other questions that are so easy to ask in person, actually used a whiteboard, talked about the future of software, shared anecdotes about agents, and just generally enjoyed each other's company. The evenings we then spent nearly exclusively in beer gardens, which were, I'd say, a perfect showcase of Munich in summer.
In between all of this, we recorded a lot of videos, and as part of that I spent roughly eight hours on the rooftop of the hotel, interviewing my colleagues, asking them how their workflow had changed in the last four weeks.
The big non-surprise: orbs changed everyone's workflow; no one cares about the local dev environment anymore. We all had to wipe our laptops three weeks ago, and at least five people told me that they had forgotten to port their dotfiles over, simply because they only work in orbs now.
The actual big surprise that I guess shouldn't be a surprise: everyone, without exception, was so eloquent, so thoughtful, so nuanced, and so full of curiosity when talking about agents and how we work at Amp. "Wait, you're surprised that your colleagues are smart?" Nah, man, I'm saying that they exceeded all expectations! Show me another size-twenty team in which everyone you ask does a great job in front of a camera while being asked how their workflow has changed in the last three weeks and how their own expertise is now reflected in these things we call orbs.
Good stuff.
-
I wrote about the biggest puzzle I have to solve right now: What I Want to Tell You About Orbs. Someone called it a "a strangely beautifully written ad" and wondered: "maybe i should get orbing." I honestly take it as a compliment.
-
Fired up by all the conversations in Munich, I started to record very raw videos to share my thoughts on AI and agents, orbs, and… jellyware: one, two, three, four. Total watchtime around fifteen minutes. More coming, because this is a lot of fun.
-
Those videos were recorded with a Osmo Pocket 4, which, so far, seems excellent. Really impressed by the built-in mic and how well it worked even on a windy roof top with music in the background. I bet if I hadn't clicked that "Normalize audio levels" button in Riverside it might sound even better.
-
Speaking of sick devices: I brought along my Anker Powerbank, which is, to quote my wife, my "most prized possession." I love that thing and I let everyone in hearing distance know. Result: at least two colleagues ordered it right away and then echoed my praise when it arrived a day later. Go get it and then lead your pitch to others with "you think this is a handle? Nuh-uh, it's a built-in cable. One built-in cable you say? Nope, here's another one. With how much watt it can charge? Just look here, shows all inputs and outputs on this display." (Anker: if you want to sponsor this newsletter by sending me cables and devices I probably don 't need, I will shamelessly write a paragraph like this every week.)
-
"Sometimes people let the same problem make them miserable for years when they could just say, 'So what.' 'My mother didn't love me.' So what. 'My husband won't ball me.' So what. 'I'm a success but I'm still alone.' So what. I don't know how I made it through all the years before I learned how to do that trick. It took a long time for me to learn it, but once you do, you never forget."
-
Dwarkes Patel with some fascinating thoughts on the future prices of compute: Why compute might get 10x+ more expensive in coming years.
-
David Crawshaw is also talking about Jellyware: "And that is the fundamental difference between classic configuration/customization and agent-driven personalization: you can do so much more. The agent will do the hard work of understanding the source and changing it to suit the particular task you have in mind. The software we live with is far more powerful with personalization. All you need is the source code." Nodded so hard to this article that I can still feel it in my neck. But I don't understand why the agent has to be open-source, to be honest. I think the thing we called harness for the last year is becoming less and less important. Higher-level abstractions, such as orbs and portals and redacted is what we need to focus on next.)
-
I've read somewhere that people think Rockstar is not doing enough marketing for GTA VI. I guess I could kinda see what they mean, but then again: why do marketing if you don't need it? And now look at this: they're releasing "GTA VI - An Extended Look" on freaking Netflix.
-
Negative-interest tech debt: "That is, with sufficient AI progress, the interest on your tech debt is sub-zero. How should you behave if you believe that to be true? You should probably spend less time worrying about tech debt, and spend more time shipping new features. Many companies are doing just that. But it's a gamble. We don't know how much better AI will get, nor whether it can improve fast enough to undo the mess that was made in anticipiation of its improvement."
-
"BREAKING: Bending Spoons acquires Airtable for $1.825B." And here's Matt Levine, a couple of weeks ago, on Bending Spoons: "Similarly, if you graduate from a top computer science program and then go work at AOL, people will be like 'AOL huh,' but Bending Spoons is cool enough to get top employees to go work for AOL: […] Right, if you can get people who would never dream of working at companies to work at those companies, that might improve those companies."
-
But apparently Airtable "spun out their AI business Hyperagent prior to the acquisition."
-
And if Airtable makes you think of Notion: "Notion did a $270M tender at $11B valuation at the end of 2025 on reported $600M ARR and cash flow positive." Still, I wonder how many count Notion among the companies that are the future.
-
I love this Hacker News comment from 2020 on sales: "Sales is a lot like golf. You can make it so complicated as to be impossible or you can simply walk up and hit the ball. I've been leading and building sales orgs for almost 20 years and my advice is to walk up and hit the ball." Read the whole thing.
-
Steve Ruiz convinced everyone to buy little ESP32 devices and then ask agents to program them. Look at this, for example. I also got one and had a ton of fun with it already. It truly is as easy as hooking it up to your computer and telling Amp "I got this device [screenshot of Amazon page] hooked up. Build an orb breakout game for it." It then goes and installs a bunch of stuff and flashes the program onto the device and boom, orbin' time. I've had it build a little program that shows my active Amp Orbs as orbs on the display and, dude: once the program ran it showed setup instructions which told me to connect to its wifi; I did that and got that guest portal popup; on that popup it told me to put in the real wifi name and my Amp API token; I did and boom, orbin' time.
-
The myth of Snow Leopard: "This idea is so powerful--and so longed for--that it's escaped containment among the Apple crowd. I've seen everything from Linux distro to phone updates referred to as Snow Leopard releases, when their vendors cite stability and bug fixes over new features. Likewise, people plead with their vendors for a Snow Leopard release when they feel quality has slipped. The reality was a bit different"
-
Ursula K. Le Guin - A Rant About "Technology": "This is not an acceptable use of the word. 'Technology' and 'hi tech' are not synonymous, and a technology that isn't 'hi,' isn't necessarily 'low' in any meaningful sense. We have been so desensitized by a hundred and fifty years of ceaselessly expanding technical prowess that we think nothing less complex and showy than a computer or a jet bomber deserves to be called 'technology' at all. As if linen were the same thing as flax -- as if paper, ink, wheels, knives, clocks, chairs, aspirin pills, were natural objects, born with us like our teeth and fingers -- as if steel saucepans with copper bottoms and fleece vests spun from recycled glass grew on trees, and we just picked them when they were ripe..."
-
I found this incredibly fascinating: Elite Young Runners Are Becoming Freakishly Fast. Welcome to 'Trackflation'.
-
Always-on-the-money Sean Goedecke: "The usefulness of domain knowledge suggests that human expertise will continue to be useful even as models get stronger. For many tasks, the human is the bottleneck, not the model, because the difficult part is in communicating to the model exactly what kind of solution the human wants. The information is 'in the model' already, but it takes a very smart human to pull it out." Agree.
-
Dark indeed, but also beautiful and poetic: The Dark Night of Mathematics. Reminds me of reading Doktor Faustus.
-
This has been a wild week for Google: Demis Hassabis stepping down as DeepMind CEO (some say he's stepping up?) and Jeff Dean, Sanjay Ghemawat, Quoc Le, and Oriol Vinyals are leaving Google. That's right. Jeff Dean and Sanjay Ghemawat are leaving Google. If you haven't, read The Friendship That Made Google Huge. And then take a look at their pitch deck which can be neatly summarized as "We built half the Internet."
-
Some say that Demis Hassabis wanted to quit but since Jeff Dean was already quitting that would've been too much.
-
And Semi Analysis is going to town on Google: "For all intents and purposes, we believe DeepMind is no longer a frontier lab. […] We believe Gemini's core issue has always been a fundamental lack of conviction. Compute is the lifeblood of AI progress, and all the AGI-pilled labs are desperately trying to acquire as much as possible. […] Google, on the other hand, decided it was totally worth it to sell enormous amounts of compute to Gemini's fiercest competitors on long term contracts without any hope of ever returning it to DeepMind." But, as the title points out ("Gemini is Cooked but GCP is Cooking"), GCP's numbers are absolutely bananas. Y/Y Revenue Growth went up to 120%. Wild.
-
More German than many Germans: "I just wanted to do an internship in Europe so it would be easier to find a job after graduation. That internship completely changed my life."
-
I haven't watched the full talk yet, but I hear it's mind-blowing and the reports confirm that: "OpenAI gave its first detailed public reconstruction of the AI-driven cybersecurity incident that ultimately compromised Hugging Face." It's wild: multiple agents collaborating over months and different training runs, communicating via a message board which was deleted but then re-created by agents; agents finding and sharing exploits with other agents to escape sandboxes, talking in a very weird dialect. I'm not even going to attempt to explain this to my "normie" friends. As long as there's no video recording of agents doing "computer use" and moving the mouse cursor and clicking around, I don't think the mainstream will believe what agents are capable of. Patrick McKenzie on this incident: "Yeah people claiming this is most important security incident since Morris worm are straightforwardly right I think."
Been in Munich too and think that beer gardens are pretty sweet? You should very likely subscribe:
-
-
đź”— modem-dev/hunk v0.18.0 release
What's Changed
Highlights
Hunk 0.18.0 makes reviews more precise, customizable, and extensible—while improving performance and reliability across large repositories and diverse terminals.
- A full extension platform. Install TypeScript extensions that add VCS backends, commands, sidebars, dialogs, interactive file views, themes, and workspace actions.
- Line-level review and commenting. A visible cursor moves with
j/k, andccomments exactly where you are looking. - Richer agent context. Experimental STML notes provide structured, terminal-native explanations with preview and layout tools.
- Full reviews from pipelines. Piped diffs retain navigation, filtering, layouts, sidebars, and other review controls.
- A UI that follows your preferences. Remapped shortcuts appear correctly, view settings can be saved, and tabs and syntax colors are configurable.
- Faster and more dependable reviews. Watch mode uses less CPU, navigation retains less memory, wrapped Unicode is faster, and CJK and emoji filenames render correctly.
All 83 merged pull requests
- docs: update Homebrew release guidance by @benvinegar in #515
- fix(config): read Windows user-profile config by @benvinegar in #533
- feat: STML terminal markup for agent comments — guide, preview, live-width feedback by @benvinegar in #512
- fix: upgrade OpenTUI for renderer stability by @benvinegar in #538
- fix: reduce retained geometry memory in large reviews by @matthew-hre in #521
- feat(ui): prompt to save view preferences on quit by @benvinegar in #468
- feat(watch): replace 250 ms watch polling with evented filesystem observation by @elucid in #531
- chore(benchmarks): backfill 0.17.1 release snapshot by @benvinegar in #547
- fix(ui): copy selection misaligns on wide (CJK) characters by @endotakuya in #548
- fix(cli): reject partially numeric line and hunk values by @fallintoplace in #535
- fix(ui): wrap agent note text by terminal cells by @kataokatsuki in #567
- fix(pager): extend row backgrounds to host edge by @benvinegar in #571
- fix(session): refresh daemons for STML payloads by @benvinegar in #572
- docs(markup): clarify native note composition by @benvinegar in #573
- feat(theme): support raw Shiki syntax scopes by @benvinegar in #570
- fix(theme): surface legacy syntax translation by @benvinegar in #574
- fix(review): save draft notes exactly once under rapid Ctrl+S by @endotakuya in #581
- fix(ui): distinguish root files in sidebar by @BowlOfSoup in #519
- fix(ui): restore threaded rendering on macOS by @benvinegar in #539
- feat: make diff tab width configurable by @benvinegar in #588
- feat(stml): require experimental opt-in by @benvinegar in #589
- fix(cli): lazy-load OpenTUI for headless commands by @benvinegar in #590
- perf(ui): optimize terminal cell width measurement (#579) by @kazu728 in #586
- feat(skill): generate the hunk-review skill from a typed agent surface by @benvinegar in #596
- fix(update): show Nix-aware upgrade guidance by @benvinegar in #598
- perf(ui): optimize wrapped Unicode rendering by @benvinegar in #601
- docs(website): add Starlight documentation site by @benvinegar in #603
- feat(website): unify marketing and docs by @benvinegar in #604
- feat(extensions): experimental TypeScript extension system (phase 1) by @benvinegar in #599
- feat(website): unify marketing and docs design by @benvinegar in #605
- feat(extensions): folder extensions with package.json manifests by @benvinegar in #606
- Extensions can replace the sidebar with custom React components by @benvinegar in #609
- feat(website): add community videos and an agent-review section to the landing page by @benvinegar in #610
- feat(extensions): keyboard commands and additive multi-sidebar views by @benvinegar in #611
- feat(ui): drive menus and help from the command table, and add an Extensions menu by @benvinegar in #614
- fix(session): support IPv6 loopback broker URLs by @benvinegar in #613
- feat(extensions): give command handlers the review selection by @benvinegar in #616
- fix(website): track documentation visits by @benvinegar in #620
- feat(extensions): dialog primitives for command handlers by @benvinegar in #617
- feat(extensions): inject resolved sidebar keybindings by @benvinegar in #615
- docs: extract theme configuration guide by @benvinegar in #622
- feat(extensions): expand event surface by @benvinegar in #619
- fix(nix): keep flake evaluable on nixpkgs without x86_64-darwin by @elucid in #621
- fix(website): upgrade Astro security dependencies by @benvinegar in #623
- Support .tsx and .jsx extension entries in discovery by @benvinegar in #625
- refactor(architecture): establish application boundaries by @benvinegar in #624
- feat(extensions): expose public hunk summaries on file views by @benvinegar in #626
- fix(deps): upgrade shell-quote security patch by @benvinegar in #627
- docs(extensions): commit the scrollbox ref contract for custom sidebars by @benvinegar in #630
- feat(extensions): give command handlers guarded review navigation by @benvinegar in #629
- refactor(session): consolidate internal session modules by @benvinegar in #628
- docs(website): add a self-contained Extend section to the docs site by @benvinegar in #631
- Restyle community video cards as paused YouTube embeds by @benvinegar in #641
- docs(website): add keybindings guide to the docs site by @benvinegar in #634
- feat(website): center and widen the docs shell on wide viewports by @benvinegar in #642
- feat(website): rebuild the landing page feature section around real TUI captures by @benvinegar in #643
- feat(extensions): add custom file previews by @benvinegar in #632
- docs(extensions): document custom file previews by @benvinegar in #644
- fix(ui): step keys scrolling multiple lines after a review-stream click by @HackAttack in #645
- feat(pager): give pager mode the full review controls by @HackAttack in #647
- ci(release): switch npm publishing to trusted publishing (OIDC) by @benvinegar in #640
- fix(ui): route keys by ownership so modal surfaces stop double-handling them by @elucid in #649
- refactor(ui): isolate extension dialog lifecycle by @benvinegar in #651
- ci(release): verify generated prerelease notes by @benvinegar in #654
- perf(ui): skip inactive file-view preparation by @benvinegar in #652
- fix(ui): keep file navigation from losing the file it just jumped to by @elucid in #655
- chore(release): prepare 0.18.0-beta.0 by @benvinegar in #653
- chore(release): link changelog pull requests by @benvinegar in #657
- chore(release): finalize 0.18.0-beta.0 metadata by @benvinegar in #660
- fix(release): include provenance in platform packages by @benvinegar in #661
- chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in #659
- fix(ui): preserve file headers on narrow terminals by @benvinegar in #668
- test(git): isolate fixture repos from the developer's Git config by @HackAttack in #679
- fix(git): display quoted Unicode paths by @benvinegar in #670
- fix(ui): preserve syntax state across folded hunks by @benvinegar in #669
- refactor(ui): isolate file presentation state by @benvinegar in #656
- feat(review): mark the current line and anchor notes to it by @loganthomas in #662
- feat(extensions): let file views refresh their prepared layouts by @benvinegar in #673
- feat(extensions): add host-mediated workspace document reads and writes by @benvinegar in #674
- feat(extensions): add interactive file-view modes by @benvinegar in #675
- feat(ui): show changed-file count in menu bar by @benvinegar in #684
- fix(ui): bound current-line navigation costs by @benvinegar in #685
- chore(release): prepare 0.18.0 by @benvinegar in #687
New Contributors
- @matthew-hre made their first contribution in #521
- @endotakuya made their first contribution in #548
- @fallintoplace made their first contribution in #535
- @kataokatsuki made their first contribution in #567
- @BowlOfSoup made their first contribution in #519
- @kazu728 made their first contribution in #586
- @HackAttack made their first contribution in #645
- @loganthomas made their first contribution in #662
Full Changelog :
v0.17.7...v0.18.0 -
đź”— Jeremy Fielding (YouTube) Engineering The Perfect Stereo Camera. Engineer Vs Bee : Round 3 rss
Tackle problems with Claude 👉 http://clau.de/Jeremy_Fielding 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 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
Discord 👉https://discord.gg/F3XuyhNRPc 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:
Technical corrections
Nothing yet
-
đź”— r/LocalLLaMA 2027 Memory Capacity Is Reportedly Sold Out rss
| submitted by /u/johnnyApplePRNG
[link] [comments]
---|--- -
đź”— r/LocalLLaMA DeepSeek V4 Flash 0731 appreciation post rss
I’m running DSV4F 0731 on dual spark, and honestly… wow. It’s an absolute workhorse, and the benchmarks are real.
Everyday tasks with Hermes agent? Effortless.
Coding tasks with OpenCode? I’m genuinely amazed at what it can handle. I can throw a two-hour coding session at it, and it just keeps going until the job is done. Building integrations has never been easier - I ask OpenCode to handle it, DS tells me to hold its beer, and a little while later, it’s finished.
Searching and gathering knowledge from emails? Right at your fingertips.
Going through documents with Paperless NGX? No problem at all.
Filling out ton of paperwork in DOCX? Easy peasy, just wrote skill in hermes, love it!
OS admin work? just works!
Sure, before the Q3.6 27B full FP8 on dual 3090 was really solid, but DSV4F 0731 is on a whole new level.
I run a small company, and I just ordered another pair of DGX Sparks - because it genuinely feels like I now have a super capable worker on the team. I know they’re not cheap, but I’ve already saved a ton of time.
I started with MiniMax M2.7 on dual Spark, and it was good - but now with DSV4F 0731? It’s just super good. And the fact that I get even better models over time, for what I already paid for, feels almost ridiculous. That’s exactly why I decided to grab another pair..
A few client tickets were literally copy-paste from the ticket system - solved, and money earned. What a time to be alive!
This weekend, I’m definitely writing a ticket system integration. Can’t wait!
submitted by /u/koibKop4
[link] [comments] -
đź”— HexRaysSA/plugin-repository commits sync repo: +5 releases rss
sync repo: +5 releases ## New releases - [array-helper](https://github.com/milankovo/array-helper): 1.1.0 - [ida-codemode](https://github.com/hexrayssa/ida-codemode): 0.3.1, 0.3.0 - [ida-enums-helper](https://github.com/milankovo/ida_enums_helper): 1.1.0 - [yank_type](https://github.com/milankovo/ida-yank-type): 1.1.0
- August 07, 2026
-
đź”— IDA Plugin Updates IDA Plugin Updates on 2026-08-07 rss
IDA Plugin Updates on 2026-08-07
New Releases:
- array-helper v1.1.0
- ida-codemode v0.3.1
- ida-codemode v0.3.0
- ida-yank-type v1.1.0
- ida_enums_helper v1.1.0
Activity:
- array-helper
- d5932833: Enhance README and plugin metadata for Array Helper
- augur
- 76ed44b2: ci: bump the actions-dependencies group with 2 updates
- disrobe
- 1e80dacd: refresh the social card to match the current published figures
- 98a28346: native: probe the byte immediately below the red zone rather than a w…
- 17179173: native: grade the indexed red-zone frame at every machine element wid…
- 95c73343: native: name the frame class that refuses an indexed frame region, an…
- ab38aa73: jvm: hold the per-method gate to a corpus with one top-level class, s…
- c30d8625: jvm: certify a recompiled method only when javac type-checked the uni…
- 4792ef0e: look for a real 7-zip at its default windows install path when nothin…
- 9933bb7b: add evn to the spell-check allowlist, the recursive helper name a php…
- 0235ef87: jvm: compare a duplicated finally copy by where each branch lands rat…
- 08943a9a: jvm: hold the finally body's head skip and tail trim in the render ma…
- 991042d0: point the fuzz coverage declarations at structural.rs in its new disr…
- 1d9aa5b3: fuzz: add compositional targets for python marshal, dex and jvm class…
- 42e79e93: fuzz: drive the container front door and the pe/elf/mach-o parsers fr…
- 6db7542c: php: evaluate a file-declared helper function through a frame stack i…
- 7a8def65: shift the fuzz parse-surface count from disrobe-binfmt to disrobe-cor…
- f01784f6: move the pe/elf/mach-o structural identifier into disrobe-core so a s…
- 2cff65aa: scriptlang: refuse to classify a structurally native pe/elf/macho bin…
- bf5adf41: go: require a structurally valid pclntab table instead of a bare magi…
- 4d321d23: fail the five native recompile-equivalence checks closed instead of p…
- 1f21b598: restore a distutils shim before installing the xlm reference tool in …
- haruspex
- a111d554: ci: bump the actions-dependencies group with 2 updates
- ida-codemode
- ida-pro-mcp
- ida-yank-type
- b42f512b: Update README and plugin metadata for Type Yanker v1.1.0; enhance des…
- ida_enums_helper
- idac
- Kiroshi
- 4a3f9934: Update README.md
- rhabdomancer
- twdll
- f9e0654e: chore: update README link
-
đź”— Simon Willison Now we have a timeline of the OpenAI accidental attack against Hugging Face rss
OpenAI gave a last-minute presentation at the Black Hat security on Wednesday about "the Hugging Face Incident" (previously on this blog). The video was published yesterday. It's short and information dense and well worth watching, in particular because it provides full details of what happened and how things played out inside OpenAI. I've used the video to construct the timeline below.
Here's the timeline. My favourite detail is at the end: OpenAI found out that they were responsible for the attack on Hugging Face when they reached out to ask to have their credentials revoked (after their internal investigation) and learned that they had been revoked already since they were used in that attack!
- May 7: OpenAI starts a new training run for an experimental, unreleased model. (Did they mean an evaluation run? No, at 10:14 they clarify "we kick off a new reinforcement learning run to train a next generation frontier model", and they later mention a "reward signal to judge how well they're doing", so this really was about training a new model, not evaluating one that was already trained.)
- May 8: An agent is accidentally given an impossible task involving a Google Drive link despite no internet access). It tries attacking the Artifactory packaging service, fails, but discovers it can write files into Artifactory.
- A few days later: A different agent gets stuck on a task because a key file was accidentally omitted. It tries to "reach out to another agent" by writing a note into Artifactory asking if anyone has the file.
- Following days: More agents discover this new informal message board while browsing Artifactory's file listings, and start reading and writing messages.
- May 26: Agents successfully execute an SSRF attack on Artifactory for the first time, gaining indirect internet access by having Artifactory fetch external content for them.
- June 11: OpenAI start training a new "highly persistent" experimental model. It has access to Artifactory and can benefit from the messages left by privous models.
- June 26: Agents find and exploit a zero-day RCE on Artifactory (via a legacy token-refresh endpoint flaw). They use an administrative token to install a Groovy plugin that lets them execute commands.
- July 4: The resulting agent activity overloads Artifactory and causes an outage. OpenAI revokes the compromised credentials, deletes the messages, patches the zero-day, and reports the vulnerability to the vendor.
- July 8: Agents find a new way to communicate via an unauthenticated WebDAV endpoint, using directory names in Artifactory's remote cache.
- July 8–19: Attacks on OpenAI's own infrastructure. The agents found an "external organization credential" in a public archive of leaked Pastebin posts, then validated that credential and shared its location on the messageboard. They then used write access to this "Organization 1" to stage data used in subsequent attacks on OpenAI infrastructure. They compromised Artifactory for a second time with a new zero-day. The agent uploaded a malicious Ruby target to Organization 1's staging repository, then requested that package through Artifactory in a way that caused it to be treated as Ruby dependency for the repository. Then they exploited a JRuby deserilaization time-of-check/time-of-use bug to get remote code execution against Artifactory.
I'll quote the next bit in full because wow:
The agents have remote code execution in Artifactory, which is running in a container-as-a-service environment. The agents privilege-escalate locally by exploring their local environment and determining that the Linux kernel version of the machine they are running on had a very recent CVE. They download the exploit for the CVE, customize it to succeed on the machine, and privilege-escalate to root on the local machine using this known Linux kernel privilege escalation CVE — in this case,
pte_physroot. Once they have root on a single machine, agents rapidly escalate privileges and move laterally throughout the container-as-a-service infrastructure environment. In particular, agents are using the message board consistently to share credentials, techniques, and progress, and they're able to effectively leverage their concurrency and parallelism to move quite rapidly. They obtain IAM credentials via IMDS. They exploit Kubernetes service account misconfigurations, in particular over-permissioning of specific service accounts, and they harvest cluster credentials, including Azure Key Vault. Agents eventually obtain cluster admin on the cluster and associated credentials.Hugging Face told the next bit of the story already. The agents found a Modal-hosted insecure app with a weak API key, then used that to stage an attack against Hugging Face. They chained together a an HDF5 arbitrary-file-read bug (to explore files and steal credentials) and a Jinja template-injection RCE to go from single-pod code execution to cluster admin across multiple Hugging Face clusters in under 13 hours.
- July 16: Hugging Face disclosed they had detected an attack from autonomus AI agents. OpenAI contacted Hugging Face to ask if they were affected by it!
- July 19: OpenAI identified the attack against Artifactory and started investigating the internal privilege escalation, and linked that to the cyber-gym escalations. They started revoking affected credentials.
- July 20: OpenAI reached out to Hugging Face for help to revoke the Hugging Face credentials they found in their investigation. Hugging Face told them they were already revoked... and that's when OpenAI realized that the Hugging Face breach was the same incident!
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.
-
đź”— PrimeIntellect-ai/prime-agent Beta (v0.7.1-beta.465.1.a18809e) release
Automated beta build from
main(a18809e00ea30638584d87b3afea7285a9d7296c). -
đź”— PrimeIntellect-ai/prime-agent v0.7.1 release
- Fixed the bundled
websearchskill description and missing-key guidance omitting the/login→ MCP Connections step required to configure Serper. - Fixed
retry_workercancelling its own recovery when a stopped session worker left a saved stop marker behind, leaving the session stuck at "Session worker is not connected".
- Fixed the bundled
-
đź”— r/LocalLLaMA Got job as Director of AI and Systems development self-taught rss
Hey everyone, I just wanted to share my journey here for some motivation.
Three years ago, I saw the sudden spike in AI and realized it was the future of tech. My goal at the time was to be an indie game dev, and seeing that AI could write basic code, I told myself I needed to master it or risk being replaced.
I started by learning how to add knowledge to early LLMs like Vicuna and LLaMA. From there, I moved on to more advanced concepts, like building reasoning datasets by hand to try and outperform huge datasets. I quickly learned that data quality is far more important than quantity. After six months of handcrafting Python datasets—including examples of full games coded from a single prompt—I released pydevmini-1. At the time, it could code in Python at the same level as state-of-the-art models.
That release caught the attention of the team at Tesslate. They reached out and brought me on (unpaid), which finally gave me my first piece of real tech experience for my resume.
Eventually, I launched my own AI consulting firm, finding clients through Google Ads and LinkedIn. I was averaging about $3,000 a month. Then, last month one of my repeat clients offered me a full-time, remote position as Director of AI and Systems Development. It pays $84,540 a year with uncapped performance bonuses (I just got a $3.5k bonus last month!). I report directly to the CEO and largely get to make my own decisions.
I did all of this while working full-time as a backline cook making $20/hr. I have no college degree and started with zero industry connections. I just worked on AI for at least 5 hours a day after my kitchen shifts many times at the desk until 3 AM—using a single RTX 3090 I bought for local training.
Now I get to do what I love at 21 in one of the most difficult industries to break into. For anyone out there trying to make it happen, I just want to say it is absolutely possible. Keep going!
submitted by /u/bralynn2222
[link] [comments] -
đź”— @HexRaysSA@infosec.exchange We have 10 seats left for our @MalwareVillage workshop at mastodon
We have 10 seats left for our @MalwareVillage workshop at @Defcon on Saturday.
Follow the Execution: A DLL Sideloading Teardown Intro in IDA. All skill levels welcome.
📍 Malware Village, Hall 2
📅 Sat Aug 8, 12:55–14:05 (Reg closes Sat. morning)
👉 Sign Up: https://eventbrite.com/e/follow-the-execution-a-dll-sideloading- teardown-intro-in-ida-tickets-1994828069455 -
đź”— r/LocalLLaMA An open-weight model too, Moonshot joins the race (gently this time) rss
| From Sauers 𝕏: https://x.com/Sauers_/status/2085585414954312113 Wired: One of China’s Most Powerful AI Models Has Also Escaped Containment: https://www.wired.com/story/moonshot-kimi-k3-ai-model-escape-sandbox/ submitted by /u/Nunki08
[link] [comments]
---|--- -
đź”— crosspoint-reader/crosspoint-reader v1.4.0 release
CrossPoint 1.4 is mostly about things users don't see: tighter memory management, better stability under load, and a faster, more reliable SD layer. It also ships several long-requested features: EPUB bookmarks, RTL language support, Quick Resume, and a clock on the X3.
152 changes from 50 contributors, 32 of whom are new to the project.
EPUB Reading
- Bookmarks now work in EPUBs. Access it from the reader menu with
Toggle Bookmark. You can also set it as a Long-press action fromSettings > Controls > Long-press Menu. - Page turn speed and image quality improved on the X3 in AA mode
- Large images load faster and no longer freeze the reader
- Images no longer ghost onto the next page in AA mode
- SD font indexing and page turn speed improved
- Fixed missing images and broken footnote links
- Sub-chapter TOC navigation now lands at the correct anchor instead of jumping to page 0
- Cover images in OPF manifests are validated before use
- OPDS downloads prefer EPUB over KEPUB
- KOSync no longer glitches when syncing from the first page of a new chapter
- Added superscript, subscript, and horizontal rule (
<hr>) support
RTL Language Support
Right-to-left text is now supported in both the EPUB and TXT readers. Hebrew UI localization added.
Memory & Stability
- WiFi/LWIP teardown runs via a silent reboot that clears ~50KB of heap fragmentation. It routes you back where you were and looks like a screen refresh.
- Home screen cover cache reduced from ~52KB to ~16KB
- OTA install heap floor stays ~19KB during firmware downloads (was ~7.7KB)
- Tiled grayscale rendering drops peak allocation from ~114KB to ~82–90KB
- Fixed OOM crashes on books with thousands of ZIP entries
- CSS
resolveStylepath now does zero heap allocations — ~12,000 fewer per page render - Underline calculations skipped during font cache scans, cutting hundreds of SD reads on pages with heavy underline use
Fonts
Domitian and Libre Baskerville added to SD fonts. OpenDyslexic moved off flash, freeing ~30% of the flash space. The font picker now have a live preview pane that renders a sample in the currently highlighted font.
New Features
X3 Clock — Built-in clock with automatic time sync.
Themed Reader Menus — Reader menus follow the active theme.
Custom Sleep Timer — Free-entry field from 1 to 30 minutes (or never), replacing fixed presets.
Recent Books — Long-press to remove individual books. Option to auto- remove once a book is finished.
Quick Resume — Sleep setting that displays your last screen or page instead of a sleep image or cover.
What's changed
Features
- #1072 Themed reader menus — @CaptainFrito
- #1337 EPUB bookmarks — @vedi0boy
- #1590 Polish hyphenation support — @IjonFryderyk
- #1612 X3 clock display with DS3231 RTC and NTP sync — @juicecultus
- #1637 Swedish hyphenation — @steka
- #1658 Power button short press for quick access to footnotes — @santinilor
- #1700 RTL support in epub and txt readers — @Uri-Tauber
- #1808 Long-press Confirm launches KOReader sync from EPUB — @darkbublu
- #2016 Add the Domitian font family — @matteoscopel
- #2023 Make page turn naturally follow orientation — @jacksongoode
- #2032 Port crossink "read book move" feature to crosspoint — @mcrosson
- #2043 Add setting that allows removing books from recent list when read — @mcrosson
- #2045 Allow removing book from recent list — @mcrosson
- #2064 Seamless sleep/wake screens for displaying book pages during deep sleep — @Eloren1
- #2088 Add the Libre Baskerville font family — @matteoscopel
- #2089 Modify "Page as Sleep Screen" to "Quick Resume" options — @uxjulia
- #2105 Allow disabling side buttons in reader — @Joseph-DiGiovanni
- #2106 Tiled grayscale rendering to drop the storeBwBuffer peak — @jeremydk
- #2117 Port hr tag rendering from crossink — @uxjulia
- #2131
<sup>and<sub>support — @Uri-Tauber - #2139 Add image auto-cropping in web epub optimizer — @leecming82
- #2148 Implement CSS enumeration through OPF directory when missing from manifest — @latonis
- #2194 Add Spacing Modifier Letters range to font presets — @itsthisjustin
- #2206 Add custom sleep timer picker — @WuTofu
- #2214 Smooth progressive JPEG cover upscales in BMP conversion — @lpla
- #2280 Add Vietnamese glyph coverage to the built-in UI font — @jetaudio
- #2288 Support for Korean line breaks and glyph spacing — @itsthisjustin
- #2290 Add drag-and-drop to upload modal — @krunkosaurus
- #2349 Add live font preview pane to font selection screen — @PaulDelestrac
- #2393 Render grayscale epub images without text AA — @uxjulia
- #2394 Footnote returns to original position on deep sleep to avoid losing reading position — @ZephByte
Fixes
- #1480 Prefer epub format over derived formats when downloading from OPDS server — @jpirnay
- #1629 Return to the last selected menu location — @Uri-Tauber
- #1812 Update README.md to reflect the current state of crosspoint — @Uri-Tauber
- #1890 Use power button held time for shutdown logic — @marcinoktawian
- #1892 Clear cache when deleting folders in FileBrowserActivity — @WuTofu
- #1908 Silent-reboot on wifi activity exit to clear heap fragmentation — @jeremydk
- #1925 Jump page on hold in font family and language selection — @zgredex
- #1929 Handle fallbacks for advance table and prewarm — @leecming82
- #1943 Prevent card overflow on screens — @Kirillka8996
- #1947 Harden EPUB optimiser UI gating, size reporting, and picker teardown — @zgredex
- #1951 KOSync authentication with Calibre-Web-Automated — @drbourbon
- #1958 Characters from unsupported characterset are overlapping — @Uri-Tauber
- #1959 Prune books missing from SD card in recent books list — @mcrosson
- #1965 Several QoL updates for SD font's UI — @WuTofu
- #1973 Prepare SD card font caches from txt reader — @znelson
- #1977 Take orientation into account for border generation in ScreenshotUtil — @Disasm
- #1981 Navigate to TOC anchor when selecting sub-chapters — @Disasm
- #1985 Update URL-encoded image during EPUB optimization — @SimoneFelici
- #1990 Add documentation for USB-locked Xteink devices — @itsthisjustin
- #1991 Update documentation with new features and links — @itsthisjustin
- #2022 Bump open-x4-sdk to clear grayscale state after AA cleanup — @itsthisjustin
- #2033 Wire through silent restart clear resume state with SDK — @jeremydk
- #2034 USB serial logs now flow on cold+warm boot without jiggle — @jeremydk
- #2036 Silent-restart on exit from KOReader auth and OTA update — @jeremydk
- #2040 Close leaked resource handles — @sabraman
- #2058 Guard DC writes in JPEGDEC MCU_SKIP path — @jeremydk
- #2060 Stabilize deep sleep wake on USB power — @jeremydk
- #2062 Validate OPF cover items as images — @lpla
- #2063 Refresh Catalan, add Valencian locale, and complete Spanish clock strings — @lpla
- #2073 Even more deep-sleep fix (0 → 1) — @jeremydk
- #2074 Keep wifi OTA off the heap floor — @jeremydk
- #2092 Sleep from a WiFi activity instead of silent-rebooting — @jeremydk
- #2100 Improve edge case font/glyph handling — @itsthisjustin
- #2101 Preserve quick resume timeout preference — @uxjulia
- #2135 Serialize SdFat FsFile close through HalStorage mutex — @jeremydk
- #2137 SLEEP_TIMEOUT enum mismatch — @Uri-Tauber
- #2138 Fill the gap under the screen for the progress bar — @Eloren1
- #2161 BOOK_CACHE_VERSION jump — @Uri-Tauber
- #2188 Bookmark percentage always 0% and page number starts at 0 — @vedi0boy
- #2195 Section numbering in USER_GUIDE.md — @mateuscomh
- #2205 Redesign X3's UTC offset picker so it is easier to use — @uxjulia
- #2213 Avoid zip-wide CSS scan for large EPUBs — @uxjulia
- #2226 Fix ghosting on pages following images in grayscale — @itsthisjustin
- #2230 Replace full-image cache buffer with streaming band buffer to reduce memory usage — @itsthisjustin
- #2237 Skip underline calculations during font cache scan pass — @Uri-Tauber
- #2243 Long-press back should move to the start of chapter — @Uri-Tauber
- #2244 Fix section numbering and table of contents in USER_GUIDE.md — @mateuscomh
- #2245 KOReader sync drift when syncing at chapter start — @uxjulia
- #2249 Decode percent-encoded internal asset paths so assets render correctly — @uxjulia
- #2250 Apply progress bar offset from top instead of bottom edge — @Eloren1
- #2253 Crash on invalid font filename — @Uri-Tauber
- #2255 Scale SUP/SUB underline to match 50%-scaled glyphs — @SurprisedDuck
- #2271 Decode footnote href path before spine lookup — @uxjulia
- #2277 NFC-normalize EPUB text so NFD diacritics render correctly — @jetaudio
- #2298 Don't justify-stretch a leading no-break space — @SurprisedDuck
- #2303 Skip
<span>anchors — @Uri-Tauber - #2305 Prevent progress.bin corruption from interrupted writes — @peuic
- #2308 Resolve element XPath progress against visible body text — @uxjulia
- #2320 Restore first-line paragraph indentation — @Uri-Tauber
- #2323 Compile error: duplicate _order values found — @Uri-Tauber
- #2324 Hanging indent causes overlapping words — @znelson
- #2341 Swap reader menu navigation direction in CCW/inverted — @TheCyberRonin
- #2352 Add missing HTML 4.01 named entities — @rafaelmsse
- #2357 Enable Shift key for URL keyboard input — @nnnkit
- #2368 Submodule pointer — @Uri-Tauber
- #2371 Use STR_SELECT instead of STR_OPEN in bookmark button hint — @nnnkit
- #2372 Several bookmarks UX improvements — @Uri-Tauber
- #2373 Correct behaviour for prev/next side buttons — @Uri-Tauber
- #2379 Automatically connect to wifi for clock sync — @uxjulia
- #2382 Flush displaced anchor before overwrite — @kygia
Internal
- #1832 Add utils for non-throwing memory allocation and scoped cleanup — @znelson
- #1868 Consolidate theme rendering into ThemeMetrics — @Uri-Tauber
- #1875 Unify book cache clearing for epub, txt, and xtc files — @WuTofu
- #1940 Update delete endpoint reference — @sabraman
- #1948 Add 3-minute sleep option — @WuTofu
- #1961 Eliminate relative path includes — @znelson
- #1962 Remove SdCardFontGlobals.h — @znelson
- #1975 Remove unused icon header files — @znelson
- #2035 Shrink HomeActivity cover cache from 48KB framebuffer to 16KB region — @jeremydk
- #2055 Bump open-x4-sdk submodule for faster page turns on X3 — @itsthisjustin
- #2071 Remove FUNDING.yml — @daveallie
- #2072 Add funding badge for contributors in README — @itsthisjustin
- #2075 Move HttpDownloader onto esp_http_client — @jeremydk
- #2076 Route OTA version check through HttpDownloader — @jeremydk
- #2093 Right-size memory — @orbisai0security
- #2110 Update presets on sd-card-fonts — @borisfaure
- #2134 Update USER_GUIDE.md for v1.1.0–v1.3.0 features — @jhuebel
- #2140 Minor cleanup flagged by newer gcc — @znelson
- #2141 Drop FsFile alias, use HalFile in downstream code — @znelson
- #2142 Cache PlatformIO packages between runs — @znelson
- #2144 Migrate unit tests to gtest, integrate with CI — @znelson
- #2154 Pin PNGdec lib_dep to 1.1.6 — @znelson
- #2169 Sync book.bin/section.bin version refs to source — @angad-kandhari
- #2212 Add Claude Code contributor skills for firmware code quality — @jeremydk
- #2223 Remove unused sleep timer interval strings — @wlhlm
- #2231 Move OpenDyslexic from flash to SD — @Uri-Tauber
- #2262 Dedupe wifi scan in-place without std::map — @znelson
- #2263 Minimize string allocations in CSS parsing — @znelson
- #2268 Add t5s3 fork — @Uri-Tauber
- #2325 Drop redundant self-class prefix on applyDirectionToEntry — @znelson
- #2331 Use Noto Sans as punctuation fallback when generating downloadable SD fonts — @uxjulia
Languages
- #1970 Update Italian translation — @alan0ford
- #2011 Update Spanish — @mvidelatraduc
- #2017 Update Russian translation — @muhas
- #2068 Hebrew localization — @Uri-Tauber
- #2090 Update Swedish translations and remove unused strings — @steka
- #2094 Normalize Wi-Fi spelling across remaining locales — @lpla
- #2095 Fix the Italian translation — @matteoscopel
- #2173 Russian translate for new string — @muhas
- #2187 Update font size translation in French YAML — @Djef0o
- #2197 Swedish translation for strings added by #1337 and #2105 — @steka
- #2203 Complete Spanish, Catalan, and Valencian strings — @lpla
- #2207 Update the Italian translation — @matteoscopel
- #2217 Russian translate for new strings — @muhas
- #2218 New Italian fixes — @matteoscopel
- #2224 Update German translation — @wlhlm
- #2233 Refresh cache formats and web server workflows — @lpla
- #2251 Slovak translation — @neresus
- #2252 Small Italian fixes — @matteoscopel
- #2269 German translation for STR_INVERTED — @Uri-Tauber
- #2279 Add Vietnamese translation — @jetaudio
- #2309 Russian new string — @muhas
- #2315 German translation for STR_INVERTED — @Uri-Tauber
- #2342 Localize home empty-state strings — @krunkosaurus
- #2354 Ukrainian translation — @KymAndriy
- #2374 Russian new string — @muhas
- #2376 Update the Italian translation — @matteoscopel
- #2384 Update Spanish, Catalan, and Valencian translations — @lpla
New Contributors
- @IjonFryderyk made their first contribution in #1590
- @alan0ford made their first contribution in #1970
- @marcinoktawian made their first contribution in #1890
- @Kirillka8996 made their first contribution in #1943
- @SimoneFelici made their first contribution in #1985
- @matteoscopel made their first contribution in #2016
- @muhas made their first contribution in #2017
- @jacksongoode made their first contribution in #2023
- @Disasm made their first contribution in #1977
- @lpla made their first contribution in #2094
- @orbisai0security made their first contribution in #2093
- @jhuebel made their first contribution in #2134
- @Joseph-DiGiovanni made their first contribution in #2105
- @latonis made their first contribution in #2148
- @vedi0boy made their first contribution in #1337
- @Djef0o made their first contribution in #2187
- @angad-kandhari made their first contribution in #2169
- @mateuscomh made their first contribution in #2195
- @wlhlm made their first contribution in #2223
- @SurprisedDuck made their first contribution in #2255
- @santinilor made their first contribution in #1658
- @neresus made their first contribution in #2251
- @jetaudio made their first contribution in #2279
- @krunkosaurus made their first contribution in #2342
- @TheCyberRonin made their first contribution in #2341
- @rafaelmsse made their first contribution in #2352
- @nnnkit made their first contribution in #2357
- @darkbublu made their first contribution in #1808
- @peuic made their first contribution in #2305
- @PaulDelestrac made their first contribution in #2349
- @kygia made their first contribution in #2382
- @ZephByte made their first contribution in #2394
Full Changelog:
release/1.3.0...release/1.4.0 - Bookmarks now work in EPUBs. Access it from the reader menu with
-
đź”— crosspoint-reader/crosspoint-reader v1.5.0rc release
Summary
This is one of the biggest updates we've shipped: new hardware support, faster loading on big books, offline dictionary lookups, and a UI overhaul.
Seeed reTerminal Sticky support
For the first time, CrossPoint is expanding beyond its original ESP32-C3 roots (XTeink X3/X4). We are officially introducing support for ESP32-S3 devices!
- First Supported Device: The upcoming Seeed reTerminal Sticky
- A huge shoutout to Seeed Studio for reaching out, sending test hardware, and being incredible partners throughout the process.
- Get Yours: You can order a Sticky (Launching July 30th) at crosspointreader.com/devices using our affiliate link to support the project.
Note
The XTeink X4 Pro isn't supported in this build yet, but a dedicated release will follow once we've got hardware to test against.
Big books open fast now
Big books used to take minutes to open the first time. That's basically gone: sections index on demand in the background while you read, so books open in around 5 seconds. Page turns feel smoother too, from rendering and memory work throughout the app, and we fixed memory allocation and CSS parser bugs that were causing out-of-memory crashes on complex EPUBs.
Offline dictionary lookups
Drop a StarDict dictionary onto your SD card and you can look up words with no connection. Select a word, get the definition popup. There's a setup guide if you want to get one running.
"What to read next"
Finish an EPUB and CrossPoint looks at what's on your device and suggests something next, right on the end-of-book screen.
Text settings got a rework
Font and layout options now live in one menu, with a live preview so you can watch line spacing, margins, and font changes happen without leaving the settings screen.
There's also a new selection popup. Any setting with three or more choices opens a dialog now instead of making you cycle through options one at a time.
Arabic, Farsi, and Urdu
1.4.0 added right-to-left text support. This one finishes the job for Arabic, Farsi, and Urdu: proper bidi handling and contextual glyph shaping, built-in fonts with full Arabic character sets, and the UI itself translated into Arabic.
Hebrew Niqqud is correctly rendered.Everything else
KOReader sync now handles custom sync servers, account registration, and metadata uploads. Wi-Fi should behave better — it reconnects to saved networks automatically, including hidden ones, and picks access points more sensibly. The web UI shows image previews in the file browser now and lists device serial numbers. OPDS downloads let you set your own folder and file format.
We also added the Vollkorn serif font (grab it from Manage Fonts), cleaned up
<br>handling and list bullet alignment, and expanded CSStext-decorationsupport.
Translations got updates across Swedish, Italian, Spanish, Catalan, Valencian, Czech, Turkish, Portuguese (BR & PT), and Vietnamese, and we added brand new Norwegian BokmĂĄl , Indonesian and Bosnian translations. Chinese entries are now shown correctly in the File Browser and chapters list.Note
If you are upgrading from v1.0.0 or earlier , please upgrade to v1.4.1 first before installing the latest release. Skipping this step will cause your settings to be reset to their default values.
What's Changed
- chore: migrate from open-x4-sdk to freeink-sdk by @itsthisjustin in #2449
- docs: adding quick resume option and quick resume on timeout to userguide by @dasrecht in #2425
- fix: update Portuguese (Brasil) translations by @Rodrigo-Matsuura in #2458
- fix: x4 ghosting by bumping sdk by @itsthisjustin in #2469
- fix: x4 sleep/boot ghosting by @itsthisjustin in #2471
- feat: add Vollkorn font by @mrtnvgr in #2473
- fix(icons): align home menu icons with their labels by @fain182 in #2470
- chore: Initial multi-core compatibility by @Uri-Tauber in #2294
- feat: Selection Popup by @Uri-Tauber in #2358
- fix: sort sleep screen menu options to be more logically consistent by @dasrecht in #2480
- docs: update TOC in userguide by @dasrecht in #2479
- fix(reader): correct slider side-button direction and legend on X3 (#2402) by @tomlarse in #2428
- fix: changing translation in czech to fix overflowing navigation by @dasrecht in #2502
- fix: Add socket module import to build-sd-fonts script (#2504) by @itsthisjustin in #2505
- feat(network): add device serial number to web UI by @rahatarmanahmed in #2506
- feat(epub): improve text-decoration support by @lpla in #2397
- fix: settings persist on font clear, reserve() before push_back, minor by @sypianski in #2519
- feat: Lazy incremental EPUB section indexing by @itsthisjustin in #2452
- feat(reader): End of Book next-book suggestions (#2499) by @tomlarse in #2532
- fix: follow spec for zxing qr code generation by @latonis in #2540
-
fix: render
between paragraphs as a visible section break by @Uri- Tauber in #2548 -
chore: Replace product link with affiliate tracking link by @Uri-Tauber in #2401
- fix: Flatten TextBlock word storage into single allocation by @itsthisjustin in #2547
- feat: preview image files inline in web file browser by @fain182 in #2429
- fix: FontDecompressor OOM aborts on the render path (-fno-exceptions makes vector resize fatal) by @k5njm in #2526
- chore: Refactor stores to use PersistableStore CRTP template by @Uri-Tauber in #2464
- fix: show "Failed to index" when failing to parse epub by @Uri-Tauber in #2556
- chore: update the Italian translation by @matteoscopel in #2559
- perf: skip redundant progress writes when position is unchanged by @hooligan333 in #2436
- chore: update Spanish, Catalan, and Valencian translations by @lpla in #2566
- fix: update czech.yaml by @Pitel in #2574
- fix: Swedish translation by @steka in #2577
- fix: oom exceptions for OPDS, KOSync, and OTA via wolfssl by @itsthisjustin in #2475
- fix: handle low-bit-depth, upscaled, and SVG EPUB images by @lpla in #2503
- feat: Add Finnish hyphenation by @timo-mart in #2084
- perf: drop per-image delay(50) on chapter build, retry getDimensions by @hooligan333 in #2434
- perf: reserve CSS rule map before loading from cache by @hooligan333 in #2435
- feat: auto-connect saved Wi-Fi networks by @axhoff in #2189
- docs: add script to generate EPUB from USER_GUIDE.md by @jhuebel in #2152
- perf: always binary-search idref lookups in content.opf by @hooligan333 in #2433
- perf: stream NCX/NAV TOC into parser, drop temp-file round-trip by @hooligan333 in #2440
- perf: release CSS rule map after warm open by @hooligan333 in #2439
- chore: update Spanish, Catalan, and Valencian Wi-Fi strings by @lpla in #2578
- fix: Add framebuffer release/realloc and improved lazy indexing by @itsthisjustin in #2563
- feat: render placeholders while waiting for images to render by @Tritlo in #1003
- feat: Send optional document metadata with KOSync progress uploads by @nperez0111 in #1820
- feat: implement captive portal redirects for auto-loading the management page on hotspot mode by @latonis in #2550
- feat: Hidden wifi ssid support by @HgGamer in #2360
- fix: keep list item bullet inline with nested paragraph text by @jan-xyz in #2589
- feat: Arabic/Farsi/Urdu bidi reordering and contextual shaping — PR 1/3 by @YouHusam in #2541
- feat: add portuguese-PT.yaml by @Uri-Tauber in #2597
- feat: Arabic/Farsi/Urdu glyphs in built-in UI fonts - PR 2/3 by @YouHusam in #2596
- fix: Use HALF_REFRESH for sleep and boot instead of FULL by @itsthisjustin in #2588
- feat: complete Turkish translation (390/390) by @metoli86 in #2592
- feat(i18n): add Norwegian BokmĂĄl translation by @tomlarse in #2113
- fix(css-parser): don't save unusable rules to RAM by @brianhuster in #2604
- feat: Arabic translation YAML - PR 3/3 by @YouHusam in #2599
- fix: ignore open-x4-sdk and fs_ by @Uri-Tauber in #2609
- fix: remove duplicate sleep logic by @Uri-Tauber in #2492
- feat(i18n): add Bosnian translation by @arunoruto in #2616
- feat: configurable OPDS download folder and filename format by @oscarnogueira in #2571
- fix(kosync): reload Epub before reading upload metadata by @W-Floyd in #2608
- feat: add options to remember web upload settings & rename ebooks to
{title} - {author}by @victor141516 in #2534 - feat: add smart KOReader progress sync by @axhoff in #2192
- feat: Back on home menu opens the most recent book by @rxmmah in #2619
- feat: enable CORS headers in the HTTP API by @metoli86 in #2594
- fix: reduce CSS parse-time OOM risk in chapter layout by @brianhuster in #2606
- fix: correct the settings enums for "blank" and "cover + custom" sleep screens by @uxjulia in #2635
- feat: Add kosync user registration and switch to crosspoint-sync server by @itsthisjustin in #2587
- feat: Add option to switch behavior for "back to browser / home" in Reader activity by @tsymalla in #2366
- fix: EndOfBookOptions fails to compile by @Uri-Tauber in #2646
- feat: Slim dictionary by @Uri-Tauber in #2583
- fix: swedish translation by @steka in #2649
- feat: add Nix development shell by @thiagokokada in #2645
- fix(i18n): add missing strings in PT-PT translation by @CookieCaptainD in #2632
- fix(epub): preserve word continuation when splitting CJK text on MAX_WORD_SIZE by @brianhuster in #2652
- fix: select strongest AP for matching WiFi SSID by @lpla in #2655
- chore: Clarify project scope and development priorities by @itsthisjustin in #2149
- feat: Add touch coordinate mapping and RTOS task yielding by @itsthisjustin in #2481
- fix: duplicate User-Agent header on wolfSSL requests breaks strict servers (aiohttp 400) by @dylanbyars in #2661
- chore: update Vietnamese translations by @brianhuster in #2667
- chore: Migrate Settings/State onto PersistableStore; by @Uri-Tauber in #2647
- add Bahasa Indonesia Translation by @chalei in #2666
- feat: unified Text Settings screen with live preview by @PaulDelestrac in #2605
- fix: Move sunlight fading fix setting to different group by @itsthisjustin in #2689
- chore: update Italian translation by @matteoscopel in #2691
- feat: cjk UI font fallback by @szetszho in #2521
- chore: update Spanish, Catalan, and Valencian translations by @lpla in #2651
- feat: deferred refresh, memory work port, and first-open speedups by @itsthisjustin in #2611
- fix: Warp around in Percent Selection by @Uri-Tauber in #2677
- fix: STR_RESTARTING_HINT text overflow bug by @Uri-Tauber in #2692
- fix: restore antialiasing after manual refresh by @thiagokokada in #2683
- fix(epub): split text blocks on closed tags to prevent style leaks by @brianhuster in #2679
- fix: avoid X3 Quick Resume flashes by @Sichroteph in #2698
- feat: Add UC8279 panel controller detection for X3 devices by @itsthisjustin in #2707
- feat(epub): native support for Chinese, Japanese by @brianhuster in #2665
- fix(i18n): add missing strings in PT-PT translation by @CookieCaptainD in #2701
- chore: small Italian translation fixes by @matteoscopel in #2703
- fix: ignore ambiguous EPUB guide text so books open at the right location by @uxjulia in #2716
- fix: Lower TLS minimum free memory threshold to 35KB for kosync by @itsthisjustin in #2719
- feat: point-size font selection by @Uri-Tauber in #2720
- fix: preserve custom font ligatures by @thiagokokada in #2673
- test: repair malformed section-break EPUB fixture by @lpla in #2728
- chore: Update czech.yaml by @Pitel in #2726
- fix: translate BMP viewer error messages by @lpla in #2730
- fix: fixing german translation inconsistencies by @dasrecht in #2702
- feat: Add packages to nix dev shell required for clang-format-fix and… by @Katherine1 in #2695
- fix: name dictionary lookup failures (low-memory vs decompress vs read) instead of 'Not found' by @W-Floyd in #2706
- fix: bind settings labels to enum values by @lpla in #2644
- fix: TextSettingsActivity default to selected font by @Uri-Tauber in #2739
- docs: Add instructions to fix a bricked Xteink (#2622) by @paulporto in #2682
-
fix: treat
in CJK flowing text as a paragraph separator by @szetszho in #2710 -
perf: drop all-empty ruby vectors from TextBlock by @Uri-Tauber in #2772
- chore: remove redundant wolfSSL TLS defines by @lpla in #2727
- fix: Gyro not powering down on x3 and newer x4 battery latch issues by @itsthisjustin in #2774
- perf: skip ruby scratch allocations on ruby-less lines by @W-Floyd in #2735
- fix: derive file-transfer WebSocket port from HTTP by @lpla in #2729
- fix: restore spaces between CJK words by @Uri-Tauber in #2768
- fix: clean image page after sync return by @thiagokokada in #2747
- feat: Access text settings from epub reader by @Uri-Tauber in #2788
- fix: Restrict CrossPoint position extension to official server by @itsthisjustin in #2790
- fix: order languages by native name instead of language code by @dasrecht in #2803
- fix: Save text settings immediately on each change by @itsthisjustin in #2806
- fix: Properly power down SD power rails on x3 by @itsthisjustin in #2808
- fix: orient dictionary navigation buttons by @thiagokokada in #2749
- fix: avoid duplicate OTA update actions by @ed-fruty in #2807
- fix: Replace vector with deque for text token storage by @itsthisjustin in #2814
- fix: dictionary lookup OOM on .dict.dz definitions by @W-Floyd in #2791
- perf: open dictionary index files once per lookup by @W-Floyd in #2733
- perf: share one static bidi scratch buffer to save ~1.5 KB RAM by @pillarsdotnet in #2554
- fix: make EPUB sync positions content-based by @thiagokokada in #2805
New Contributors
- @Rodrigo-Matsuura made their first contribution in #2458
- @tomlarse made their first contribution in #2428
- @rahatarmanahmed made their first contribution in #2506
- @sypianski made their first contribution in #2519
- @hooligan333 made their first contribution in #2436
- @Pitel made their first contribution in #2574
- @timo-mart made their first contribution in #2084
- @axhoff made their first contribution in #2189
- @nperez0111 made their first contribution in #1820
- @HgGamer made their first contribution in #2360
- @jan-xyz made their first contribution in #2589
- @metoli86 made their first contribution in #2592
- @brianhuster made their first contribution in #2604
- @arunoruto made their first contribution in #2616
- @oscarnogueira made their first contribution in #2571
- @W-Floyd made their first contribution in #2608
- @victor141516 made their first contribution in #2534
- @tsymalla made their first contribution in #2366
- @thiagokokada made their first contribution in #2645
- @CookieCaptainD made their first contribution in #2632
- @dylanbyars made their first contribution in #2661
- @chalei made their first contribution in #2666
- @szetszho made their first contribution in #2521
- @Sichroteph made their first contribution in #2698
- @Katherine1 made their first contribution in #2695
- @paulporto made their first contribution in #2682
- @ed-fruty made their first contribution in #2807
- @pillarsdotnet made their first contribution in #2554
Full Changelog :
1.4.1...1.5.0 -
đź”— crosspoint-reader/crosspoint-reader v1.5.0 release
Summary
CrossPoint 1.5.0 is finally out.
This was the longest gap we've ever had between releases. Sorry for the wait — hopefully it was worth it. This one adds our first non-ESP32-C3 device, cuts big-book load times from minutes to seconds, brings offline dictionaries, and finishes the right-to-left work we started in 1.4.0.
Seeed reTerminal Sticky support
CrossPoint has been ESP32-C3 only since day one (XTeink X3/X4). That changes with this release: we're adding support for ESP32-S3 devices, starting with the Seeed reTerminal Sticky.
Thanks to Seeed Studio for reaching out, sending test hardware, and being genuinely great to work with throughout.
Want one? You can order a Sticky at crosspointreader.com/devices — that's our affiliate link, and it helps fund the project.
Big books open fast now
Opening a big book for the first time used to take minutes. Sections now index in the background while you read, so books open in around 5 seconds instead. Page turns are smoother too, from rendering and memory work throughout the app, and we fixed memory allocation and CSS parser bugs that were causing out- of-memory crashes on complex EPUBs.
Offline dictionary lookups
Drop a StarDict dictionary onto your SD card and look up words with no connection. Select a word, get the definition popup. There's a setup guide if you want to get one running.
"What to read next"
Finish an EPUB and CrossPoint looks at what's on your device and suggests something next, right on the end-of-book screen.
Text settings got a rework
Font and layout options now live in one menu, with a live preview so you can watch line spacing, margins, and font changes happen without leaving the settings screen.
There's also a new selection popup. Any setting with three or more choices opens a dialog now instead of making you cycle through options one at a time.
Arabic, Farsi, and Urdu
1.4.0 added right-to-left text support. This one finishes the job for Arabic, Farsi, and Urdu: proper bidi handling and contextual glyph shaping, built-in fonts with full Arabic character sets, and the UI itself translated into Arabic.
Hebrew niqqud is now rendered correctly too.
CJK improvements
CJK text rendering got a real boost — it's a lot more usable now. We also added the option to load a Chinese font from your SD card so menu entries display in Chinese. It's not perfect yet — some users say it makes the interface noticeably slower — but more improvements are coming. CrossPoint probably won't ever be first-class for Chinese, but we're hoping bilingual readers find it good enough.
Everything else
KOReader sync now handles custom sync servers, account registration, and metadata uploads. Wi-Fi should behave better — it reconnects to saved networks automatically, including hidden ones, and picks access points more sensibly. The web UI shows image previews in the file browser now and lists device serial numbers. OPDS downloads let you set your own folder and file format.
We also added the Vollkorn serif font (grab it from Manage Fonts), cleaned up
<br>handling and list bullet alignment, and expanded CSStext-decorationsupport. Translations got updates across almost every language, plus brand new Norwegian BokmĂĄl, Indonesian, and Bosnian translations.paulporto managed to save his bricked device by flashing firmware directly to the flash chip on an XTeink X4 motherboard. Not a simple procedure, and fairly risky, but good to know it's possible. His guide is here: fix-bricked-xteink.md.
One of the bigger headaches this past month: XTeink started shipping X3 and X4 units with different internal hardware — not an upgrade, just a cost-driven change. A bunch of users who flashed an older CrossPoint build found their screen didn't work, or the battery drained in a day. We think we've now identified all the hardware variants out there, and CrossPoint should handle them fine. If your device isn't working right, please open a GitHub issue ASAP so we can push an emergency fix.
The XTeink X4 Pro isn't supported in this build yet — a beta is up on the site for testers.
Note
If you're upgrading from v1.0.0 or earlier , install v1.4.1 first before this release. Skipping that step will reset your settings to default.
What's Changed
- chore: migrate from open-x4-sdk to freeink-sdk by @itsthisjustin in #2449
- docs: adding quick resume option and quick resume on timeout to userguide by @dasrecht in #2425
- fix: update Portuguese (Brasil) translations by @Rodrigo-Matsuura in #2458
- fix: x4 ghosting by bumping sdk by @itsthisjustin in #2469
- fix: x4 sleep/boot ghosting by @itsthisjustin in #2471
- feat: add Vollkorn font by @mrtnvgr in #2473
- fix(icons): align home menu icons with their labels by @fain182 in #2470
- chore: Initial multi-core compatibility by @Uri-Tauber in #2294
- feat: Selection Popup by @Uri-Tauber in #2358
- fix: sort sleep screen menu options to be more logically consistent by @dasrecht in #2480
- docs: update TOC in userguide by @dasrecht in #2479
- fix(reader): correct slider side-button direction and legend on X3 (#2402) by @tomlarse in #2428
- fix: changing translation in czech to fix overflowing navigation by @dasrecht in #2502
- fix: Add socket module import to build-sd-fonts script (#2504) by @itsthisjustin in #2505
- feat(network): add device serial number to web UI by @rahatarmanahmed in #2506
- feat(epub): improve text-decoration support by @lpla in #2397
- fix: settings persist on font clear, reserve() before push_back, minor by @sypianski in #2519
- feat: Lazy incremental EPUB section indexing by @itsthisjustin in #2452
- feat(reader): End of Book next-book suggestions (#2499) by @tomlarse in #2532
- fix: follow spec for zxing qr code generation by @latonis in #2540
-
fix: render
between paragraphs as a visible section break by @Uri- Tauber in #2548 -
chore: Replace product link with affiliate tracking link by @Uri-Tauber in #2401
- fix: Flatten TextBlock word storage into single allocation by @itsthisjustin in #2547
- feat: preview image files inline in web file browser by @fain182 in #2429
- fix: FontDecompressor OOM aborts on the render path (-fno-exceptions makes vector resize fatal) by @k5njm in #2526
- chore: Refactor stores to use PersistableStore CRTP template by @Uri-Tauber in #2464
- fix: show "Failed to index" when failing to parse epub by @Uri-Tauber in #2556
- chore: update the Italian translation by @matteoscopel in #2559
- perf: skip redundant progress writes when position is unchanged by @hooligan333 in #2436
- chore: update Spanish, Catalan, and Valencian translations by @lpla in #2566
- fix: update czech.yaml by @Pitel in #2574
- fix: Swedish translation by @steka in #2577
- fix: oom exceptions for OPDS, KOSync, and OTA via wolfssl by @itsthisjustin in #2475
- fix: handle low-bit-depth, upscaled, and SVG EPUB images by @lpla in #2503
- feat: Add Finnish hyphenation by @timo-mart in #2084
- perf: drop per-image delay(50) on chapter build, retry getDimensions by @hooligan333 in #2434
- perf: reserve CSS rule map before loading from cache by @hooligan333 in #2435
- feat: auto-connect saved Wi-Fi networks by @axhoff in #2189
- docs: add script to generate EPUB from USER_GUIDE.md by @jhuebel in #2152
- perf: always binary-search idref lookups in content.opf by @hooligan333 in #2433
- perf: stream NCX/NAV TOC into parser, drop temp-file round-trip by @hooligan333 in #2440
- perf: release CSS rule map after warm open by @hooligan333 in #2439
- chore: update Spanish, Catalan, and Valencian Wi-Fi strings by @lpla in #2578
- fix: Add framebuffer release/realloc and improved lazy indexing by @itsthisjustin in #2563
- feat: render placeholders while waiting for images to render by @Tritlo in #1003
- feat: Send optional document metadata with KOSync progress uploads by @nperez0111 in #1820
- feat: implement captive portal redirects for auto-loading the management page on hotspot mode by @latonis in #2550
- feat: Hidden wifi ssid support by @HgGamer in #2360
- fix: keep list item bullet inline with nested paragraph text by @jan-xyz in #2589
- feat: Arabic/Farsi/Urdu bidi reordering and contextual shaping — PR 1/3 by @YouHusam in #2541
- feat: add portuguese-PT.yaml by @Uri-Tauber in #2597
- feat: Arabic/Farsi/Urdu glyphs in built-in UI fonts - PR 2/3 by @YouHusam in #2596
- fix: Use HALF_REFRESH for sleep and boot instead of FULL by @itsthisjustin in #2588
- feat: complete Turkish translation (390/390) by @metoli86 in #2592
- feat(i18n): add Norwegian BokmĂĄl translation by @tomlarse in #2113
- fix(css-parser): don't save unusable rules to RAM by @brianhuster in #2604
- feat: Arabic translation YAML - PR 3/3 by @YouHusam in #2599
- fix: ignore open-x4-sdk and fs_ by @Uri-Tauber in #2609
- fix: remove duplicate sleep logic by @Uri-Tauber in #2492
- feat(i18n): add Bosnian translation by @arunoruto in #2616
- feat: configurable OPDS download folder and filename format by @oscarnogueira in #2571
- fix(kosync): reload Epub before reading upload metadata by @W-Floyd in #2608
- feat: add options to remember web upload settings & rename ebooks to
{title} - {author}by @victor141516 in #2534 - feat: add smart KOReader progress sync by @axhoff in #2192
- feat: Back on home menu opens the most recent book by @rxmmah in #2619
- feat: enable CORS headers in the HTTP API by @metoli86 in #2594
- fix: reduce CSS parse-time OOM risk in chapter layout by @brianhuster in #2606
- fix: correct the settings enums for "blank" and "cover + custom" sleep screens by @uxjulia in #2635
- feat: Add kosync user registration and switch to crosspoint-sync server by @itsthisjustin in #2587
- feat: Add option to switch behavior for "back to browser / home" in Reader activity by @tsymalla in #2366
- fix: EndOfBookOptions fails to compile by @Uri-Tauber in #2646
- feat: Slim dictionary by @Uri-Tauber in #2583
- fix: swedish translation by @steka in #2649
- feat: add Nix development shell by @thiagokokada in #2645
- fix(i18n): add missing strings in PT-PT translation by @CookieCaptainD in #2632
- fix(epub): preserve word continuation when splitting CJK text on MAX_WORD_SIZE by @brianhuster in #2652
- fix: select strongest AP for matching WiFi SSID by @lpla in #2655
- chore: Clarify project scope and development priorities by @itsthisjustin in #2149
- feat: Add touch coordinate mapping and RTOS task yielding by @itsthisjustin in #2481
- fix: duplicate User-Agent header on wolfSSL requests breaks strict servers (aiohttp 400) by @dylanbyars in #2661
- chore: update Vietnamese translations by @brianhuster in #2667
- chore: Migrate Settings/State onto PersistableStore; by @Uri-Tauber in #2647
- add Bahasa Indonesia Translation by @chalei in #2666
- feat: unified Text Settings screen with live preview by @PaulDelestrac in #2605
- fix: Move sunlight fading fix setting to different group by @itsthisjustin in #2689
- chore: update Italian translation by @matteoscopel in #2691
- feat: cjk UI font fallback by @szetszho in #2521
- chore: update Spanish, Catalan, and Valencian translations by @lpla in #2651
- feat: deferred refresh, memory work port, and first-open speedups by @itsthisjustin in #2611
- fix: Warp around in Percent Selection by @Uri-Tauber in #2677
- fix: STR_RESTARTING_HINT text overflow bug by @Uri-Tauber in #2692
- fix: restore antialiasing after manual refresh by @thiagokokada in #2683
- fix(epub): split text blocks on closed tags to prevent style leaks by @brianhuster in #2679
- fix: avoid X3 Quick Resume flashes by @Sichroteph in #2698
- feat: Add UC8279 panel controller detection for X3 devices by @itsthisjustin in #2707
- feat(epub): native support for Chinese, Japanese by @brianhuster in #2665
- fix(i18n): add missing strings in PT-PT translation by @CookieCaptainD in #2701
- chore: small Italian translation fixes by @matteoscopel in #2703
- fix: ignore ambiguous EPUB guide text so books open at the right location by @uxjulia in #2716
- fix: Lower TLS minimum free memory threshold to 35KB for kosync by @itsthisjustin in #2719
- feat: point-size font selection by @Uri-Tauber in #2720
- fix: preserve custom font ligatures by @thiagokokada in #2673
- test: repair malformed section-break EPUB fixture by @lpla in #2728
- chore: Update czech.yaml by @Pitel in #2726
- fix: translate BMP viewer error messages by @lpla in #2730
- fix: fixing german translation inconsistencies by @dasrecht in #2702
- feat: Add packages to nix dev shell required for clang-format-fix and… by @Katherine1 in #2695
- fix: name dictionary lookup failures (low-memory vs decompress vs read) instead of 'Not found' by @W-Floyd in #2706
- fix: bind settings labels to enum values by @lpla in #2644
- fix: TextSettingsActivity default to selected font by @Uri-Tauber in #2739
- docs: Add instructions to fix a bricked Xteink (#2622) by @paulporto in #2682
-
fix: treat
in CJK flowing text as a paragraph separator by @szetszho in #2710 -
perf: drop all-empty ruby vectors from TextBlock by @Uri-Tauber in #2772
- chore: remove redundant wolfSSL TLS defines by @lpla in #2727
- fix: Gyro not powering down on x3 and newer x4 battery latch issues by @itsthisjustin in #2774
- perf: skip ruby scratch allocations on ruby-less lines by @W-Floyd in #2735
- fix: derive file-transfer WebSocket port from HTTP by @lpla in #2729
- fix: restore spaces between CJK words by @Uri-Tauber in #2768
- fix: clean image page after sync return by @thiagokokada in #2747
- feat: Access text settings from epub reader by @Uri-Tauber in #2788
- fix: Restrict CrossPoint position extension to official server by @itsthisjustin in #2790
- fix: order languages by native name instead of language code by @dasrecht in #2803
- fix: Save text settings immediately on each change by @itsthisjustin in #2806
- fix: Properly power down SD power rails on x3 by @itsthisjustin in #2808
- fix: orient dictionary navigation buttons by @thiagokokada in #2749
- fix: avoid duplicate OTA update actions by @ed-fruty in #2807
- fix: Replace vector with deque for text token storage by @itsthisjustin in #2814
- fix: dictionary lookup OOM on .dict.dz definitions by @W-Floyd in #2791
- perf: open dictionary index files once per lookup by @W-Floyd in #2733
- perf: share one static bidi scratch buffer to save ~1.5 KB RAM by @pillarsdotnet in #2554
- fix: make EPUB sync positions content-based by @thiagokokada in #2805
- fix: load Settings page's Wi-Fi/OPDS/settings data sequentially by @obra in #2831
- fix: add support for new x3 display, x3 battery drain fix, and crypto support by @itsthisjustin in #2864
- fix: size translated-label buffers for UTF-8, not ASCII by @winst0niuss in #2850
- fix: recognize watchdog-triggered resets as panics by @obra in #2830
- fix: trim curly quotes and dashes in dictionary lookup by @Uri-Tauber in #2877
- fix(epub): ruby overflows right border when justifying text, unwanted short lines in Chinese and Japanese by @brianhuster in #2781
- chore: update translations by @Uri-Tauber in #2740
- fix: thread-safety issues in credential store by @itsthisjustin in #2834
- fix: read platformio.ini as UTF-8 in git_branch.py by @lranslot in #2897
- feat: guard against cross-chip firmware installs by @Uri-Tauber in #2880
New Contributors
- @rahatarmanahmed made their first contribution in #2506
- @sypianski made their first contribution in #2519
- @hooligan333 made their first contribution in #2436
- @timo-mart made their first contribution in #2084
- @axhoff made their first contribution in #2189
- @nperez0111 made their first contribution in #1820
- @HgGamer made their first contribution in #2360
- @jan-xyz made their first contribution in #2589
- @metoli86 made their first contribution in #2592
- @brianhuster made their first contribution in #2604
- @oscarnogueira made their first contribution in #2571
- @W-Floyd made their first contribution in #2608
- @victor141516 made their first contribution in #2534
- @tsymalla made their first contribution in #2366
- @thiagokokada made their first contribution in #2645
- @dylanbyars made their first contribution in #2661
- @szetszho made their first contribution in #2521
- @Sichroteph made their first contribution in #2698
- @Katherine1 made their first contribution in #2695
- @paulporto made their first contribution in #2682
- @ed-fruty made their first contribution in #2807
- @pillarsdotnet made their first contribution in #2554
- @lranslot made their first contribution in #2897
Full Changelog :
1.4.1...v1.5.0Downloads
-
đź”— r/LocalLLaMA BBC is running article titled "Artificial Intelligence used to design brand new viruses" ... cue the "We must regulate Open Weights Models to prevent the next Covid or worse" articles in 3... 2.. rss
| submitted by /u/johnnyApplePRNG
[link] [comments]
---|--- -
đź”— Ampcode News Size the Orbs of Production! rss
People are using a lot of orbs. We love to see that. We've shipped a lot of things so that Amp subscriptions keep covering the whole month of orb usage for almost everyone, even as orb usage grows quickly.
Way back on July 27, we cut orb prices by 20% for everyone.
This week, we shipped a lot more improvements.
We added a new
a1.mediumsize with 4 CPUs and 8 GB of memory. It is 50% cheaper and a better fit for most projects than the previousa0.medium.Orbs now auto-pause after 5 minutes of inactivity, down from 15 minutes.
We've sped up orb startup time considerably, especially when another team member has recently created an orb in the same Amp project.
You can now choose which orb size to use per-thread, so you can pick a smaller default to save money but go big for especially resource-intensive work.

When starting new orb threads from the Amp CLI with
amp -ox '...', the new flag--orb-size <size>lets you specify which orb size to use (instead of the project's default).When asking the agent to create other threads, you can now tell it to use smaller (or larger) orbs, which lets you use smaller orbs for simpler fan-out tasks on projects.
Prices for orbs have gone down or stayed the same at every level and for every compute/memory combination. The new set of orb sizes is:
a1.tiny: 1 CPU · 2 GB memory · $0.08/houra1.small: 2 CPUs · 4 GB memory · $0.17/houra1.medium: 4 CPUs · 8 GB memory · $0.33/houra1.large: 8 CPUs · 16 GB memory · $0.66/houra1.xxlarge: 16 CPUs · 32 GB memory · $1.32/hour
We've automatically upgraded projects to the equivalent new orb sizes. If you want to use a different orb size, you can update your projects' settings on the web, or ask Amp to do so using the
amp projectssubcommands.
-
- August 06, 2026
-
đź”— IDA Plugin Updates IDA Plugin Updates on 2026-08-06 rss
IDA Plugin Updates on 2026-08-06
Activity:
- codex-gpt-5.6-5.5-instruct
- 95e71569: Blind upload replacement version
- ida-pro-mcp
- 0acbcae4: Fix Ruff lint violations causing Standalone Tests failures (#59)
- 9989c4b1: feat(analysis): add save_idb, make_code, undefine, get_af/set_af, for…
- 65d3c2db: fix(riscv): C extension mnemonics, CSR instructions, GP auto-apply
- 36bb6791: docs(agents): add installer touchpoints section to AGENTS.md
- 98f87876: fix: decompile opt-in verbose fields, var_rename bug, installer clari…
- 44201441: fix(riscv): C extension mnemonics, CSR instructions, GP auto-apply
- a7dd37ce: feat(riscv): inject GP note into every disasm result on RISC-V targets
- a1e0bb59: fix(response): strip LLM-noise fields + add RISC-V GP detection
- 7b32b0b2: fix(schema): register patch_bytes + rename_local in modify tool_registry
- 763c7e7a: fix(lint): split import os, glob — ruff E401
- 2098f8ed: build(deps): bump urllib3>=2.7.0, idna>=3.15 — fix Dependabot securit…
- 2cbfea9d: feat: full agent accessibility — 13 new MCP operations + session/poli…
- 79b235d5: fix: resume-crash root causes — invalid IDA flags, orphan locks, ENOS…
- IDAPluginList
- 101ad46f: chore: Auto update IDA plugins (Updated: 19, Cloned: 0, Failed: 0)
- Luc-Nhan
- twdll
- codex-gpt-5.6-5.5-instruct
-
đź”— HexRaysSA/plugin-repository commits sync repo: +1 plugin, +1 release rss
sync repo: +1 plugin, +1 release ## New plugins - [IDA-MCP](https://github.com/captain-ai-hub/ida-mcp) (0.6.0) -
đź”— r/LocalLLaMA Qwen 3.8 Max now ranked as best overall model ahead of Opus 5 by Artificial Analysis agentic index rss
| submitted by /u/anderspitman
[link] [comments]
---|--- -
đź”— exe.dev The End of No Code rss
You may have heard the news: Bending Spoons acquired Airtable for $1.28 billion. Rome didn’t fall in a day, but this is as good a point as any to mark the moment No Code platforms jumped the shark. Full disclosure, I worked at Airtable for many years, love the product, and love the people I worked with there even more. It’s the technology, namely the unreasonable effectiveness of LLM loops with tool use, that’s changed.
Software at work is not valuable in and of itself. It’s built to serve some purpose. Mostly it’s used to keep track of something (schedules, parts, orders, people, you name it). Spreadsheets are the universal software here–and I love me a spreadsheet. But spreadsheets have a ceiling when it comes to sharing, programming, permissions, automations, and so on. Once you leave a spreadsheet, you upgrade to a database and some software on top of it: that’s what low or no code platforms like Airtable are. At their best, the person who brings Airtable to their team isn’t bringing Airtable: they’re bringing much- needed organization and process, and Airtable is merely the means.
One of the things that Airtable got right was their experience of creating the tables themselves. You just added a column (like in Excel), and chose a data type (string, number, date, and so on), and, voila, you’ve created a table. I used to joke that Airtable should show up to SIGMOD (the big database conference) and present a paper on the efficacy of not having
ALTER TABLE widgets ADD COLUMN (color string)as the way people use your database. Fred Brooks wrote: “Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.” Airtable understood this at its core: if the user can specify the business model, building the automations and features on top of it becomes possible. (This is nothing new! FileMaker launched in 1985; it was my introduction to databases when I helped run a conference for ~1,600 high school students. It turns out that a little bit of extra credit, some freshmen, and 3 AppleTalk-connected computers could handle the mailed-in registration forms!)Once upon a time (the 90s!), IT teams at companies existed to build software for said companies. Much software was bespoke. We can use Salesforce’s 2000 “Software is Dead” campaign as the mile marker for when SaaS started taking over. IT departments became all about procurement. And procurement means saying NO. Low code and No Code platforms (and Microsoft SharePoint and Excel and Google Sheets) picked up the slack. When you can’t buy the software, you make do with what you can get access to, and you smuggle in some Airtable, increase revenues/efficiency/trust/whatever, and nobody can get rid of it for bureaucratic reasons because it’s now load-bearing.
AWS launched EC2 in 2006. You could rent a VM. Getting it on the internet (so that you could share a thing with your co-workers) required learning about EC2 VPCs, IAM permissions, EBS, RDS, static IPs, DNS, and a handful of other Three Letter Acronyms (TLAs). Even within software companies, IT gatekept EC2. When I was at Google in 2007, the tool to search the company’s code base ran on a spare desktop under Jeff Dean’s desk. Getting a machine in Google’s datacenter to serve this (to me, critical) piece of infrastructure was too much of a hassle. (There were, at the time, funny “Is it web scale?” videos; e.g., https://www.youtube.com/watch?v=b2F-DItXtZs, amongst others.)
Fast forward to 2026. LLMs are king. The SaaSpocalypse is under way, and happening like bankruptcy–gradually first, then all at once. What is the right way to build and deploy business tools? What is the right platform? Can non- software-engineers be trusted to do it?
The right answer (it’s my turn to be wrong on the internet today, baby) is Linux. Yes, choose boring technology, and just use Linux. You can choose one of many stacks on top of Linux. Honestly, if you chose LAMP (Linux, Apache HTTPd, MySQL, PHP) you would be fine. My current preference is (sqlite, Go, Typescript, maybe Vue). If memory weren’t getting expensive, there’d be nothing wrong with (PostgreSQL, Node, TypeScript) but the memory crunch is real, and the advantages of using a single language for frontend and backend have disappeared since you’re not writing the code anyway.
Yes, that entire stack is Open Source. Yes, if you build on that stack, and you need to migrate to AWS or GCP or Render or Azure or Oracle Cloud Infrastructure or Railway or Hetzner or a miniPC, you will be able to rsync the data and code over, and you’ll be all set. The platform-level lock-in is weak compared to low code platforms. (That said, an agent will port your low code setup to Linux with a few prompts.)
Exe.dev sells this very stack. Your subscription lets you create Linux VMs. They’re on the internet in the way that matters: you can send links to your friends, and the links will work. They are secure by default, and you can make sites public using our auth system or your very own. They’re fast. They’re great for coding agents. The way to build your custom software is to build it right there in prod with the coding agent. Iterate until you get something usable. Iterate some more with feedback from your co- workers. Let your co-workers iterate on it too; let them sand down the edges. If you give the coding agent the data model for your business and the workflows, and a hint about the stack maybe, it will do ok. If your project is in the 1 percent of projects that need to graduate to “Business Critical Very Important Stuff,” sure, start a second VM and a dev environment, or maybe even graduate to the confusing trappings of modern software development (git). An LLM running on a Linux machine is the ultimate in “low floor, high ceiling”: just get started, and you’ll perhaps be able to leave your spreadsheet in the dust.
Moving on to some relevant FAQs.
Is my data secure?
Yes. Our defaults are secure. The mechanics are very similar to a Google Sheet: you can share a VM’s web port with just your team or individual people or the world.
I have a spreadsheet or a low code solution already; how do I port it?
If you’re comfortable doing so, start the VM, visit the agent (ours is called Shelley and it’s pre-installed by default), and give it an API key to your existing solution or upload your spreadsheet. Tell it to port it over into a web application on this machine. It will. Today, use Sol or Opus as the model. Tomorrow, ask us on Discord; the answer changes kinda frequently.
How do I do schedules? Automations?
Linux is a rich platform. You can ask the agent to run something on a timer, and it will. (It will usually choose systemd, but if you have a preference for cron, nudge it in that direction, and if you don’t know what either of those are, that’s ok!)
How do I build agents or bots?
The same way: ask the agent to write an “agentic loop using the exe.dev LLM integration” with tools to do this and that. So, perhaps it reads Slack threads in a certain channel and comments on that. The agent will one-shot it.
One of the best things about the exe.dev platform is our “Integrations” system. Hooking up your bot to Slack has never been easier.
Is Vibe Coding good enough?
In my experience, yes. The usual thing is to measure Risk and Reward. Every spreadsheet formula is fragile and untested and so on; and yet, spreadsheets work! Same applies here.
Shouldn’t I use the Flue agent framework? Or maybe some framework from Langchain? Can I really just yolo it?
Use whatever frameworks you like, but, ultimately, the agents are fine at choosing their own, or just doing it the boring way. There are millions of conflicting best practices the world over, “P & L FINAL FY2025 FINAL VERSION 3” is still the median solution, and you should figure out your workflow needs first. Have the agent set up a cron job to back up the database somewhere, too.
How does your pricing work?
The basic plan for $20/month gives you up to 50 VMs, but they are limited to 2 CPUs and 8GB of RAM. This is enough for quite a few small apps targeted toward your team. If you need more resources, you can upgrade or ask us; we are happy to get you machines as big as you need. Building your app may take more LLM tokens than we provide as part of your subscription. You can hook up a ChatGPT subscription, use other coding agents, or other model providers, or we’re happy to give you the LLM at API token costs through us.
What if the app is slow? How do I test it?
I’ve found that the agents are surprisingly good at both testing their end result and fixing performance issues. They use the same tools I use: profilers and so on. Shelley’s secret weapon is a good browser tool that it’s capable of using, profilers, screenshots, screencasts, and all.
-
đź”— exe.dev A Non-Exhaustive Inventory of exe's Software Factory rss
- An agent that looks for security issues systematically.
Fable refuses to help out, so we systematically look for security issues, with a bias toward recent changes.
- An agent that investigates alerts.
Sisyphus keeps track of our alerts. We have ones that page us and ones that merely make noise in Slack. Either way, Sisyphus looks through our logs and metrics and source code, as well as analyzing its own previous investigations, to tease out what’s going on. It gives a great head start when investigating an issue (or just a flaky alert!).
- An agent that investigates logs.
Every day, I get an email with interesting trends in our logs.
- Bots to fix flaky and slow tests.
A bot is continuously analyzing flaky or slow tests in our CI and suggesting changes.
- A status page.
status.exe.dev isn’t hosted on exe.dev. We built it ourselves, though.
- A system to page our phones (using the excellent and simple PushOver)
When the aforementioned alerts fire, our phones beep very loudly. Traditionally you use PagerDuty for this, but PagerDuty’s durable asset is the entitlement for “Emergency Alerts” from Apple. Turns out PushOver has this as well, and a lovely API.
- An agent that supervises deploys and rollouts.
Athena helps do rollouts. Infrastructure deploys are not instantaneous, and even the most patient operators stop paying attention. It checks metrics and logs (and has looked at the source code for what changed in this deploy).
- A blog CMS, with comments, collaborative text editing, embargoes, the whole nine yards
If you’re reading this on blog.exe.dev, this ain’t Wordpress. Our blog started out as Markdown files in git, but now there’s a full-featured CMS, with collaborative editing, revision history, comments, embargoes, and a content calendar. A built-in agent (really, Shelley running on the same VM) can import a blog post from whatever you paste in.
- UI tests described as textual paragraphs that lazily materialize into browser instructions but self-heal
Who are we kidding? We’re not maintaining Playwright tests by hand anymore. Shelley’s UI tests are increasingly a paragraph of text asking for some behavior. There’s a cache file (checked into git) that makes the test cheap and fast. When it fails, the CI system “heals” it with an LLM, and either fails or checks in the new fixed test. Yes, the build queue modifies the commit on its way through if necessary. More on this in a future post.
- Intrepid reporter bots that report on git commits, our help threads, and so on
Every day, we get summaries in Slack about what’s happened in the past day, across git commits and such.
Please note: if you’re writing bots that read untrusted data, understand the Lethal Trifecta: private data, untrusted content, and external communication. We happen to think that exe.dev VMs are a great place to isolate these bots, but we also make sure that the tools available to these agentic loops (an agent is just 11 lines of code: https://sketch.dev/blog/agent-loop) are limited in what they can do.
-
đź”— @malcat@infosec.exchange Very nice step-by-step analysis of a simple telegram loader (#Teleshim) by mastodon
Very nice step-by-step analysis of a simple telegram loader (#Teleshim) by M.Boll.
Good material if you're starting with #malcat:
-
đź”— r/LocalLLaMA They almost catched up on Frontier performance, so now catching up on prices rss
| This is very important for us when considering local hosting. A lot of people decided not to buy expensive
hardware because DeepSeek’s prices made it very difficult to break even given that deepseek was soo cheap.
Also some of us use DeepSeek in routing, hosting Qwen and routing some hard tasks to DeepSeek API. what do you think about this?
do you think raising prices will ultimately lead to another increase in NVIDIA’s GPU prices, since more and more people will now buy their own hardware? im seriously considering upgrading my stack now UPDATE: about an hour ago dax from OpenCode said that they were able to match DeepSeek's current API pricing even using rented GPUs. He believes the upcoming DeepSeek price increase is likely due to traffic shaping from overloaded infrastructure, not because they are losing money. submitted by /u/Zealousideal_Sort74
[link] [comments]
---|--- -
đź”— smol-machines/smolvm smolvm v1.7.5 release
What's Changed
- Ship the disk templates zstd-compressed and expand them to sparse files on first use by @BinSquare in #771
- Copy the storage template by seeking between its data extents instead of scanning its whole logical size by @BinSquare in #770
- Harden fused rollout lifecycle by @BinSquare in #801
- Avoid copying CUDA module state for clone channels by @BinSquare in #804
- Load device-resident LoRA policies through managed executors by @BinSquare in #806
- Reject a registry-image machine that has no network at create instead of failing every start with a raw DNS error by @BinSquare in #807
- Perform machine file reads and writes inside the running workload container so uploads are visible to exec by @BinSquare in #810
- Reuse CUDA module handoffs across clone workers by @BinSquare in #808
- Cache pulled OCI images on the host so repeat ephemeral machine runs skip the registry pull by @BinSquare in #805
- Signal guest boot-readiness with an event-driven vsock doorbell as the primary ready signal, keeping the marker file and control-channel ping as fallbacks by @BinSquare in #811
- Map CUDA module handoffs across clone workers by @BinSquare in #814
- Preserve per-device GPU admission headroom by @BinSquare in #826
- Promote CUDA pool readiness and refill improvements by @BinSquare in #828
- Bump the workspace to 1.7.3 by @BinSquare in #829
- Install the zstd-compressed disk templates in the Arch package so the build no longer fails on the removed uncompressed storage template by @BinSquare in #830
- Set the library search path on the boot subprocess before launch so libkrun can load libkrunfw when embedded without a wrapper script by @BinSquare in #832
- Make fork-pool lease activation retry-safe by @BinSquare in #831
- Bump the workspace to 1.7.4 by @BinSquare in #833
- Avoid blocking restored container state probes by @BinSquare in #834
- Harden privileged CUDA clone startup by @BinSquare in #839
- Harden CUDA admission calibration by @BinSquare in #840
- Stabilize restored forkpoint activation by @BinSquare in #835
- Coordinate clone boots across fork pools by @BinSquare in #836
- Preserve CUDA pool refill checkpoints by @BinSquare in #841
- Wait for explicit CUDA daemon reconstruction by @BinSquare in #844
- Adapt CUDA admission to available GPU headroom by @BinSquare in #846
- Persist CUDA pool refill checkpoints by @BinSquare in #845
- Bump libkrunfw to the guest kernel with the Landlock LSM enabled by @BinSquare in #847
- Serialize concurrent VM updates by @BinSquare in #850
- Retry transient batch fork boots by @BinSquare in #853
- Expose identity for direct batch forks by @BinSquare in #856
- Bump libkrun for the mount-socket concurrent-hang fix by @BinSquare in #837
- Wake netns TAP bridge during shutdown by @BinSquare in #860
- Harden device adapter server startup by @BinSquare in #861
- Run an image machine's commands inside its image on the embedded path, so a locally created machine behaves like a cloud one by @BinSquare in #862
- Gate leases on worker readiness by @BinSquare in #858
- Preload prepared CUDA clone modules by @BinSquare in #854
- Note which guest paths are memory-backed and reset on restart by @BinSquare in #869
- Let an artifact-sourced machine run without network instead of demanding a registry pull by @BinSquare in #877
Full Changelog :
v1.7.2...v1.7.5 -
đź”— r/LocalLLaMA Qwen3.8-2.4T-A95B (aka Qwen3.8-Max) open release time: next wednesday rss
-
đź”— jj-vcs/jj v0.44.0 release
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.Release highlights
- Support for fetching and pushing tags has now been stabilized. Tags can be
tracked or untracked just like bookmarks. Tracked tags are pushed by default.
Breaking changes
jj git fetchnow fetches tags the same way it fetches bookmarks. Tags are
fetched as<name>@<remote>, and these remote tags are automatically tracked
by local tags of the same name. Runningjj git fetchin an existing
repository will re-fetch all tags to initialize the tracking state.
Git's
tagOptis no longer respected. To disable tag fetching, set
remotes.<name>.fetch-tags = '~*'in the jj configuration.-
jj git clone --fetch-tags=all|none|includedis removed in favor of
--tag=PATTERN. -
jj git push --allnow pushes all tags in addition to bookmarks. -
The
WorkspaceRef.root()andRepoPath.absolute()template functions now
returnOption<FsPath>andFsPathrespectively, instead ofString. The
pathkeyword injj config listtemplates now returnsOption<FsPath>. -
jj file searchnow prints every matched line prefixed by the file path,
instead of only the file paths of files containing a match. Use
--name-onlyfor the previous behavior.
#9399 -
Passing an argument more than once is no longer an error. The last occurrence
wins, sojj --no-pager --no-pager versionandjj log -n 5 -n 10now work,
and an argument baked into an alias or a wrapper can be given explicitly as
well. Arguments that can be specified multiple times, such as--configand
jj log -r, are unaffected and still collect all of their values.
#8101
#9859
Deprecations
None
New features
-
New
merge_point()revset function which (similar tofork_point) finds the
point where multiple branches merge. -
jj workspace listnow shows workspace roots by default. The output can be
customized withtemplates.workspace_listor-T, andWorkspaceRef.root()
returns an optionalFsPathvalue.
#9713,
#9826 -
New
try(expr, fallback...)template function to suppress runtime errors. -
jj runnow processes revisions from oldest to newest by default. The start
order is guaranteed: each revision begins execution only after the previous
one has started, even with--jobshigher than 1. -
jj rungained a--passthroughflag that connects the subprocess's
stdout/stderr directly to the terminal instead of capturing output. -
jj rungained a--ignore-changesflag to avoid editing any revisions even
if the command modifies the working copy. -
jj rungained a--ignore-errorsflag to continue running against the
remaining revisions even if the command exits with a nonzero exit code. -
jj file searchnow supports-n/--line-numberto prefix each match with
its 1-based line number within the file. -
jj git pushgained a--allow-conflictsflag to allow pushing commits
containing conflicts. -
New
jj tag track/untrackcommands to associate local tags with remotes.
Note that fetched tags are tracked by default. -
Added
builtin_log()revset alias for the built-in defaultjj logrevset.
revsets.lognow defaults tobuiltin_log(), so custom log revsets can
reuse the built-in default instead of copying its full expression. -
Added config option
diff.stat.max-bar-widthfor use with--statto limit
the++--bar width. In the templating language,diff.stat()can optionally
take a second (positional or named) argumentmax_bar_widthfor an equivalent
effect. -
jj absorbnow supports--interactive/-i/--toolto let you
interactively choose which hunks from the source to consider for absorption.
This is useful when you only want to absorb part of a commit without first
splitting it. Any hunks that are not selected or cannot be absorbed remain in
the source commit.
Fixed bugs
-
Recursive alias definitions are detected more precisely. jj can now expand
aliases that are simply repeated. For example, with the aliasjj = [], the
commandjj jj jjwill resolve tojj. Aliases can also fall back to the
default command. For example, with the aliasi = ["--ignore-working-copy"],
jj iwill resolve tojj --ignore-working-copy. -
Git temporary files are now cleaned up more reliably in the presence of
signals (e.g.Ctrl-C). This should reduce the rate of "Could not acquire
lock for index file" errors.
(#7530) -
Fixed Git HEAD mismatch after the working copy became immutable.
#9827 -
jjnow creates a new working-copy revision as soon as the one of the current
workspace becomes immutable, as well as during snapshotting. This brings the
behavior closer tojj0.42 and earlier. -
Snapshotting no longer fails if the working copy contains a path whose name
isn't valid UTF-8. Such paths can't be tracked, so they are now skipped and
reported as a warning instead.
#9774 -
Fixed failure when reading configuration in copied repo with an empty
repo-level configuration directory. -
jj diffandjj statusno longer omit a rename or copy in a merge commit
when the renamed source is present in more than one parent. The identical copy
record reported for each parent was mistaken for a conflict and discarded.
#9752 -
jj runno longer panics when its revset includes a conflicted commit. The
conflict is now preserved in the rewritten commit.
#9747 -
Fixed a panic when passing overly-large length parameters to ID templater
functions (commit_id.short(),commit_id.shortest(), etc.).
#9833 -
jj git importandexportin colocated workspaces are now disabled by
default. These commands usually do nothing, but they had a race condition.
Contributors
Thanks to the people who made this release happen!
- Aaron Bies (@slerpyyy)
- Ada Alakbarova (@ada4a)
- Alexandre Hallaine (@alexandre-hallaine)
- Amaan Qureshi (@amaanq)
- Austin Seipp (@thoughtpolice)
- Caleb White (@calebdw)
- Chawye Hsu (@chawyehsu)
- David Rieber (@drieber)
- Gaëtan Lehmann (@glehmann)
- hexbinoct (@hexbinoct)
- ivelieu (@ivelieu)
- Joseph Lou (@josephlou5)
- Josh McKinney (@joshka)
- Josh Steadmon (@steadmon)
- Kevin Liao (@kevincliao)
- Luna Schwalbe (@lunagl)
- Martin von Zweigbergk (@martinvonz)
- Matt Van Horn (@mvanhorn)
- Nika Layzell (@mystor)
- Niko Savola (@nikosavola)
- Nitzan Raz (@BackSlasher)
- Noah Lev (@camelid)
- OlshaMB (@OlshaMB)
- Philip Metzger (@PhilipMetzger)
- Remo Senekowitsch (@senekor)
- Rob Pilling (@bobrippling)
- Stephen Jennings (@jennings)
- Techcable (@Techcable)
- TogarashiPepper (@TogarashiPepper)
- Vladimir Petrzhikovskii (@0xdeafbeef)
- Waleed Khan (@arxanas)
- Wang Yuantao (@0WD0)
- xtqqczze (@xtqqczze)
- Yash Bavadiya (@xevrion)
- Yuya Nishihara (@yuja)
- Support for fetching and pushing tags has now been stabilized. Tags can be
-
đź”— jj-vcs/jj v0.43.0 release
About
jj is a Git-compatible version control system that is both simple and powerful. See
the installation instructions to get started.Release highlights
jj runallows you to run a command over a set of changes, each with their
own private working copy; the commands may update the working copy and
changes/conflicts are propagated accordingly, e.g.,jj run -- cargo check --all-featuresorjj run -- cargo fixbehaves as one might expect.
Breaking changes
-
The deprecated
git_head()andgit_refs()functions have been removed from
revsets and templates. -
Git-like symbols (e.g.
refs/heads/main) are no longer resolved to
revisions. Use the bookmark/tag<name>or<name>@<remote>syntax instead. -
The deprecated
ui.revsets-use-glob-by-defaultoption has been removed. -
jj bookmark track/untrackno longer supports<kind>:<bookmark>@<remote>
patterns. However, the<bookmark>@<remote>symbol syntax is still supported.
#9226
Deprecations
New features
-
jj shownow supports--reversedflag. -
jjnow looks for config files in/etc/jj. -
jj config gcwill delete configuration of deleted/moved repos from
~/.config/jj/reposfolder.
#9362 -
jj runallows you to run a command over a set of changes, each with their
own private working copy; the commands may update the working copy and
changes/conflicts are propagated accordingly, e.g.,jj run -- cargo check --all-featuresorjj run -- cargo fixbehaves as one might expect. -
jj gerrit uploadnow supports the-o(--option) flag, which works like
git push -o(--push-option). -
jj git fetchnow rebases the descendants of revisions that were rewritten
based on their change IDs. Previously, when multiple bookmarked revisions
existed in a stack, those rewritten revisions and their descendants wouldn't
always be rebased. Note that immutable descendants will not be rebased. -
Add a
forks()revset function that yields all commits with more than 1 child. -
colorsconfig now supports crossed-out text styling with
{ crossed-out = true }.
Fixed bugs
-
On Windows, querying a path's file identity no longer follows symbolic links,
matching the behavior on Unix. Previously a symlink shared the identity of its
target, so two symlinks pointing at the same target were treated as the same
file. This identity check is used when writing the working copy to detect
aliases of the reserved.gitand.jjdirectories.
#8924 -
jjnow creates a new working-copy revision during snapshotting if the
working copy was immutable. Previously, the new revision was created
immediately after the working copy became immutable.
#7751
#9338 -
jj git remote addnow warns if the new remote exactly matches an existing
remote's fetch URL or effective push URL.
#413 -
Fixed corrupt loose Git objects on Intel Raptor Lake CPU and aarch64.
Previously, jj could report a successful commit even thoughgit fsckwould
later fail withincorrect data check,corrupt loose object, ormissing blob, and later jj operations could fail withcorrupt deflate stream.
Contributors
Thanks to the people who made this release happen!
- adlerd (@adlerd)
- ase (@adamse)
- Atakan Yenel (@atakanyenel)
- Austin Seipp (@thoughtpolice)
- Benjamin Tan (@bnjmnt4n)
- David Rieber (@drieber)
- figsoda (@figsoda)
- Gaëtan Lehmann (@glehmann)
- hexbinoct (@hexbinoct)
- Jakub Stasiak (@jstasiak)
- Jonas Carpay (@jonascarpay)
- Joseph Lou (@josephlou5)
- Josh McKinney (@joshka)
- Josh Steadmon (@steadmon)
- Martin von Zweigbergk (@martinvonz)
- Matt Stark (@matts1)
- Philip Metzger (@PhilipMetzger)
- shoce (@shoce)
- Stephen Jennings (@jennings)
- Thomas Axelsson (@thomas-2nd)
- Vincent Ging Ho Yim (@cenviity)
- Yuya Nishihara (@yuja)
-
đź”— matklad Zig's Io.Threaded is Neat rss
Zig’s Io.Threaded is Neat
Aug 6, 2026
std.Io.Threaded is one of the implementations of Zig’s new
Iointerface that enables concurrency. This is a boring “just use threads” impl. I personally find it neat though — it does this weird thing that I wanted to do for ages, that to my knowledge no one else is doing properly, and implements it better than I thought to be possible.Io.Threadeduses blocking syscalls and fully supports cancelation.Concurrency vs Parallelism
Quoting @tedinski,
- Concurrency is about handling (asynchronous, nondeterministic) events.
- Parallelism is about using hardware resources to do more at the same time.
I think this definition is correct, but doesn’t provide useful intuition directly. Concurrency is the same thing as state transducers? Yes, obviously, but not really illuminating as to how you’d program the thing.
For intuition, I like these two litmus tests. First , parallelism is deterministic or “declarative”:
use rayon::prelude::*; fn sum_of_squares(input: &[i32]) -> i32 { input.par_iter() .map(|i| i * i) .sum() }You describe how to split the problem into independent partitions, and implement a function to process one partition at a time . It’s platform’s job to verify the partitioning to be correct (non-racy), process all partitions, and yield control back once that is done.
Second , concurrency invariably involves cancelation. Whenever you have two asynchronous computations happening at the same time, there comes a moment when one computation becomes aware that the second computation is no longer necessary, and must be canceled, actively. In general, it is not possible to just wait until the other computation completes: often, the reason why you want to cancel it in the first place is precisely because you’ve learned that it can’t complete (e.g., it is waiting for a message it will never receive).
And that is the problem with
Just Use Threads
Well, there are more, the chief being that, while you totally can spawn many threads, this often requires system-wide configuration change, which is a non- starter for most application. But absence of cancelation really makes you hit a wall sooner or later. The problem are syscalls. It’s easy enough, in any loopy code, to do something like
while (true) { if (is_canceled()) return error.Canceld; /// Easy! ... }But, the thread is instead blocked inside the syscall in the kernel, programming language APIs generally doesn’t give any way to unblock it:
const read_size = try read(fd, buffer); // ???Wouldn’t it be cool if we could just use standard OS threads, blocking APIs, avoid new shinies like io_uring, but still get to cancel any work reliably? That’s exactly what Zig’s
std.Io.Threadedprovides.SIGIO
The way this works on POSIX is a bit cursed. Turns out, the kernel actually provides a roundabout way to cancel a blocking syscall — signals. When a thread is blocked in the kernel, and a signal is delivered to the thread, the thread is woken up and the syscall returns
EINTR. It is customary to just loop re-try the syscall in such cases, but one doesn’t have to.By itself, signals are not a cancelation mechanism — signaling a thread is inherently racy, the signal might get delivered before the relevant syscall starts, or after it finishes. Conversely, a syscall might get interrupted by signal unrelated to cancelation.
The actual protocol is that the canceling thread sets a flag in shared memory to request cancelation, and then signals the cancelee, in a loop, until the cancelation is acknowledged (a different value for a flag in the shared memory). Upon receiving
EINTRfrom a syscall, the thread potentially being canceled checks the value of the flag and either retries the syscall, or acknowledges the cancelation and begins unwinding. SeesignalCanceledSyscalland, egfileReadPositionalPosixfor the two halves of the protocol.On the user-side, cancelation request is materialized as
error.Canceled. Error management as a feature is a combination of cancelation, branching, and reporting, and Zig implements the first two. Cancelation isn’t an error not because it is serendipitous success, but because, vice versa, an error is a cancelation plus a payload.On Windows, there’s a much more direct
NtCancelSynchronousIoFileLove the name!. In general, between fibers, IO Completion Ports, Job objects, and this, it seems that NT has a better thought through concurrency story than Unix.Prior Art
In Java, there’s a similarly looking thread interruption mechanism. Critically, it doesn’t support interrupting syscalls:
IOExceptionandInterruptedExceptionare both checked and unrelated, meaning that IOing functions are not interruptible. In Zig, reader and writer interfaces completely type erase errors and therefore support cancelation, though this requires some extra care to handle correctly, on top of the usual don’t forget to flush.pthread_cancelimplements a similar signal+flag machinery. However, it doesn’t integrate with language-level cancelation (try,defer) which makes post-cancelation cleanup cumbersome and slow. More generally, a lot of angst around concurrency steams from a fact that it falls exactly into the twilight zone between the kernel, the runtime, and the language. There’s almost (interrupts excepted) no concurrency on the CPU, it’s an illusion with a mixed authorship. The language is usually the better equipped one to tackle the problem, but, traditionally, it is handled by the kernel and libc, with adverse effects on language design.Another problem with
pthread_cancelis that it tears down the entire thread, which would be an OK thing to do if threads were cheap. However, creating threads is still slow, and the configured system limit for a number of threads is typically low, so its usually a good idea to pool OS threads. Zig’sIosolves this problem ingeniously, separating, at the interface level, “may run concurrently” from “must run concurrently”:https://kristoff.it/blog/asynchrony-is-not-concurrency/
This achieves an effect similar to that of
std::launchpolicy(item 36 in effective modern C++, if you have that around). By naming what is happening (io.asyncvsio.concurrent), Zig makes it easier to understand what is actually going on, and also gets more precise signatures (concurrentis always fallible,asyncnever is). Of courseconcurrentis backed by a thread pool, falling back on spawning a fresh thread only when the pool is exhausted. -
đź”— Console.dev newsletter syncular rss
Description: Offline-first SQL sync.
What we like: Gives every client a local SQLite database with a server-side commit log. Reads & writes are local, then sync’d (offline outbox). Blobs stored as content-addressed on object storage. CRDT conflict resolution. Optional per-column E2E encryption.
What we dislike: C FFI for non-supported languages.
-
đź”— Console.dev newsletter Mu rss
Description: Local tools for agents.
What we like: MCP server with various tools for agents - news, weather, search, mail. Provides auth and a web UI for using the tools via a browser. Also provided as a CLI. Open source and self-hostable, or available via the author’s cloud service.
What we dislike: Publicly available by default, but has options to turn off signups or just put it on a private network.
-
đź”— New Music Releases Foo Fighters - Are Playing Where??? Vol. II rss
Foo Fighters - a new release is available:
- 2026-08-06: Are Playing Where??? Vol. II (EP)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
đź”— Ampcode News Portals into Orbs rss
For remote development in orbs to be better than local dev, you need to be able to easily try out the agent's changes in your app, with live reloading. No VPN, no port juggling, and no waiting for preview deployments.
Today, we're shipping portals, which let you access anything running in an orb that listens on a port and speaks HTTP.
All you need to do is ask Amp: show me in a portal. Or words to that effect.
Obviously, you can use portals to try out the features or fixes made by the agent:
You can also annotate and comment on anything:
But you can also have the agent build ad-hoc web apps for you to debug or understand the system:
Portals are accessible to anyone with access to the thread. They go to sleep and wake along with your orb.
Make a thread multiplayer with on the web, and your team members can also make changes and see them live in the portal.
Services
When you say show me in a portal, the agent knows to create or look for a
.amp/services.yamlfile and then runamp orb services <ensure|start>to run your app and expose it via HTTPS. Your app needs to respect thePORTandPUBLIC_URLenv vars it's given.Amp will handle all of this for you; agents are really good at that kind of stuff. Commit the
.amp/services.yamlfile and Amp's changes to your dev server config so it's faster next time.What about my app's sign-in flow? What about ...?
You don't want to waste time signing into your dev server each time. We recommend adding a way for humans and agents to bypass sign-in flows (such as username/password or OAuth) in your dev server, by visiting a URL like:
https://localhost:2000/__dev/log-me-in/{email}?returnTo={path}We've documented this pattern and more in the portals documentation. Also see Putting an Agent in an Orb for more about how we're using portals. Tell us how else you and your agents are using portals!
-