- ↔
- →
- July 20, 2026
-
🔗 19h/chernobog v6.0.1 release
Chernobog 6 is a major release.
New since 5.3.0:
- rax hybrid engine — bounded, focused-function emulation that materializes runtime strings and projects decoder, branch, memory, and Z3 cross-check evidence into the IDB (see
RAX_HYBRID.md) - Native pre-lift analysis — early native/Hex-Rays enrichment passes that repair call/pop and get-PC control flow, resolve indirect targets, and fold constants before decompilation
- Recurrent-switch CFF recovery — encoded recurrent switch dispatchers are classified and rewritten with exact Z3 transition proofs
- VM-family MBA recovery with exact-Z3 affine reconstruction, plus cross-function Hikari CFG recovery , reversible native opaque-predicate and branch patching, and writable-constant inlining
- Select/cmov cascade collapse and static XOR/NOT stack-string recovery
- Multi-database support (
PLUGIN_MULTI) — isolated state per open database
Chernobog 6 requires IDA Pro 9.4 (SDK
940); older SDKs are rejected at build time.Full Changelog :
v5.3.0...v6.0.1 - rax hybrid engine — bounded, focused-function emulation that materializes runtime strings and projects decoder, branch, memory, and Z3 cross-check evidence into the IDB (see
-
🔗 backnotprop/plannotator v0.24.1 release
Follow @plannotator on X for updates
Missed recent releases? Release | Highlights
---|---
v0.24.0 | PR/MR artifact gallery, GitButler review support, port ranges, expanded comment editor, OpenCode + Pi fixes
v0.23.1 | Startup no longer hangs on large or slow directory trees, Ask AI input stays visible after long responses
v0.23.0 | Plan approval fix for Claude Code 2.1.199+, annotate mode version diff, binary-only--minimalinstall, reviews post without attribution
v0.22.0 | Git-status "All changes" default review view, Commits panel with per-commit diffs, Guided Review, Pi + GitHub Copilot CLI review engines
v0.21.4 | Markdown math rendering, PR Overview panel with annotatable description and comments, agent instructions in code review, media parsing fixes
v0.21.3 | File comments in code review, unified click-to-highlight comments, VS Code clipboard/keyboard bridge, Codex Ask AI on app-server transport, CLI subcommand help
v0.21.2 | Custom reviews as Agent Skills, Cursor + OpenCode review engines, whole-file/general findings, deleted-annotation fix, Codex Ask AI outside git repos
v0.21.1 | Annotate-last blank-page fix on multi-message sessions
v0.21.0 | Direct document editing in annotate mode, live git-status file tree, in-app agent terminal, open files in external apps, HTML renders as HTML
v0.20.3 | Annotations no longer lost when clicking away, off-screen indicator for open comments
v0.20.2 | Pierre CodeView all-files review, large-PR pipeline and instant-open checkout, unified agent engine selection, Pi programmatic plan mode
What's New in v0.24.1
A one-fix patch.
plannotator annotatenow opens a file you point to with a../path.v0.24.1 follows v0.24.0 by a few hours, so the full v0.24.0 notes are included below — most users updating now are getting both.
Annotate accepts parent-relative file paths
Running
plannotator annotate ../docs/plan.mdfailed withFile type not supported: .md, even though.mdis supported. The path resolver rejected any relative path that pointed outside the current directory, so a../path never resolved. The command then found the file on disk and reported the resolver miss as a type error, which is why the message named a supported extension.An explicit path you type is now honored when the file exists, including a
../path that points to a parent directory. This matches how absolute paths already work. Bare filenames still resolve only within the current project, so typingnotes.mdcannot reach a same-named file in a parent directory.Closing #1085, reported by @shulcsm.
What's New in v0.24.0
This release adds two review surfaces: a gallery for the images, videos, and documents inside PR conversations, and native GitButler workspace support. 25 pull requests landed since v0.23.1. Six came from community members, four of them first-time contributors. The release also brings port ranges, an expanded comment editor, and fixes across the OpenCode and Pi integrations.
PR and MR artifact gallery
Pull request conversations hold more than text: screenshots of the bug, GIFs of the fix, demo videos, HTML reports, attached markdown. The review UI ignored all of it.
When you review a GitHub pull request or GitLab merge request, Plannotator now collects images, GIFs, videos, HTML, and markdown files from the description and conversation into a gallery. Selecting a tile opens a focused viewer. Markdown and sandboxed HTML render inline, and everything is annotatable: select text in a document, drop a point note on an image, pin a note to a video timestamp, or comment on the artifact as a whole. These notes join your normal review feedback with their source attached, whether the feedback posts to GitHub/GitLab or returns to your local agent.
Conversation artifacts sort newest-first, and you can hide tiles you don't want to see again. The gallery appears only for hosted reviews, since local diffs have no conversation to collect from.
- Authored by @backnotprop in #1055
GitButler review support
GitButler users work in a virtual-branch workspace that ordinary Git tooling misreads: HEAD sits on a synthetic workspace commit, and several branches are applied at once. Running a code review there produced confusing diffs against internals GitButler manages for you.
Plannotator now detects an active GitButler workspace and reviews it natively. The default Workspace view shows everything applied, committed changes plus assigned and unassigned working-tree changes, against GitButler's reported merge base. You can also review a single stack or one branch within a stack as committed-only diffs. Detection requires both the workspace HEAD and GitButler's local target configuration, so a leftover branch or database from a past experiment cannot hijack an ordinary Git repo. An active workspace needs the
butCLI (0.21.0 or newer).--gitbutlerforces the provider and--gitremains the escape hatch. Both the Bun and Pi runtimes support it.The original GitButler effort came from @dansusman, whose work is preserved in the commit co-author credit.
- Authored by @backnotprop in #1067, superseding #566 by @dansusman
Expanded comment editor in code review
Long review comments were cramped in the compact inline toolbar. A new expand control opens a full-size dialog that edits the same comment, so you can draft multi-paragraph findings and submit through the familiar flow. The compact composer stays the default for quick notes and gains vertical resize.
- Authored by @leoreisdias in #1030
Port ranges
PLANNOTATOR_PORTnow accepts an inclusive range like19432-19463. Plannotator tries each port in order and binds the first available one, in both the Bun and Pi runtimes. Fixed single ports and the random-port default behave as before. This helps devcontainer and SSH setups where you forward a block of ports and run several sessions side by side.OpenCode: cancelling a plan review now cleans up
Cancelling a
submit_plancall in OpenCode left the review server running, so the next plan submission could not bind its port. Cancellation now flows through OpenCode's tool-abort contract: the server shuts down, timers and child processes are released, and the plan is kept so a resubmitted revision reuses the same fixed port.- Authored by @backnotprop in #1064, closing #1046 reported by @fabians-px
Pi: faster startup and honest error reporting
The extension added about two seconds to every
pilaunch because its full module graph loaded at registration. The heavy browser and server graph now loads on first use, and the large UI bundles are read only when you open a review or annotate session.Separately, when a review engine failed (for example, out of API credits mid- review), Guided Review reported a generic parse failure instead of the real cause. Provider errors now surface as themselves.
- Authored by @backnotprop in #1063, closing #1058 reported by @tomsej, and #1061, closing #1037 reported by @alexanderkreidich
Background git checks can no longer freeze the terminal
Plannotator periodically checks whether your review baseline is behind its remote. On repos whose remote needs interactive authentication, that background
git ls-remotecould open a credential or passphrase prompt with nowhere to render. On Pi it froze the TUI. Background discovery now runs without interaction: credential prompts are disabled, SSH runs in batch mode, and timed-out processes are cleaned up as a group. Explicit actions like the "Fetch" button keep the normal interactive authentication path.- Authored by @backnotprop in #1062, closing #1020 reported by @r3clin3r
Workspace mode discovers symlinked repos
Multi-repo workspace review walked real directories only, so a child repo reachable through a symlink was skipped. Symlinked and junction-linked repos are now discovered, deduplicated by real path, and labeled by their workspace- relative alias. This release also caps the discovery walk with the
PLANNOTATOR_FILE_BROWSER_MAX_FILESbudget, so a stray symlink into a huge unrelated tree cannot stall startup.- Authored by @backnotprop in #1060, closing #1054 reported by @fruxxxl
Additional Changes
- JSON 404 for unknown API routes : a nonexistent
/api/*path used to return the full app HTML with a 200. All six servers (Bun and Pi) now return a JSON 404, while SPA routes still serve HTML. By @buihongduc132 in #748, their first contribution. - System theme everywhere : the System option now appears in every theme menu through a shared mode list. By @gwynnnplaine in #1015.
- OpenCode planning handoff preserved : approving a plan with an agent switch no longer loses the planning context. By @franktronics in #1034, their first contribution.
- Visual-explainer Mermaid colors : the skill emitted OKLCH theme variables Mermaid cannot parse; it now emits hex. By @FNDEVVE in #1044, closing #1043, their first contribution.
- Review feedback validation narrowed : submitting findings no longer risks starting a second review pass. By @backnotprop in #1065.
- Responsive review header : the code review header now wraps at narrow widths. By @backnotprop in #1073.
- Open-in selector placement : the open-in-editor selector moved after the file context. By @backnotprop in #1072.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run
/pluginin Claude Code, find plannotator , and click "Update now".OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in
opencode.json:{ "plugin": ["@plannotator/opencode@latest"] }Pi: Install or update the extension:
pi install npm:@plannotator/pi-extension
What's Changed
v0.24.1
- fix(annotate): resolve explicit
../paths that escape the project root by @backnotprop, closing #1085
v0.24.0
- feat(review): add PR and MR artifact gallery by @backnotprop in #1055
- Add modern GitButler review support by @backnotprop in #1067
- feat(review): Add expanded review comment editor by @leoreisdias in #1030
- feat(server): support bounded port ranges by @iurysza in #1042
- Fix OpenCode plan cleanup after cancellation by @backnotprop in #1064
- fix(review): keep background remote discovery noninteractive by @backnotprop in #1062
- perf(pi): lazy-load runtime graph to cut startup time by @backnotprop in #1063
- fix: surface Pi provider errors in reviews by @backnotprop in #1061
- Fix workspace discovery for symlinked repositories by @backnotprop in #1060
- Validate submitted findings without starting a second review by @backnotprop in #1065
- fix(server): return JSON 404 for unknown /api/* routes instead of HTML by @buihongduc132 in #748
- fix(review): show System in theme menu via shared mode list by @gwynnnplaine in #1015
- fix(opencode): preserve planning handoff by @franktronics in #1034
- fix visual-explainer Mermaid theme colors by @FNDEVVE in #1044
- fix(review): make header responsive by @backnotprop in #1073
- Place open-in selector after file context by @backnotprop in #1072
- Refine Workspaces waitlist page by @backnotprop in #1056
- Route legacy docs and blog URLs to docs.plannotator.ai by @backnotprop in #1079
- docs: connect the README to canonical Plannotator docs by @backnotprop in #1080
- Use the production Totman favicon by @backnotprop in #1066, #1071, and #1081
- SEO: publish the new default social card by @backnotprop in #1082
- Add Bing Webmaster Tools site verification by @backnotprop in #1074
- chore(deps): update github actions by @renovate in #593
New Contributors
- @iurysza made their first contribution in #1042
- @buihongduc132 made their first contribution in #748
- @franktronics made their first contribution in #1034
- @FNDEVVE made their first contribution in #1044
Contributors
@iurysza built port range support across both server runtimes for their first contribution, with tests for the parsing edge cases. @buihongduc132's first contribution touched all six servers, giving API clients proper JSON 404s. @franktronics fixed the OpenCode planning handoff on their first PR. @FNDEVVE both reported and fixed the visual-explainer Mermaid color bug. @leoreisdias returned for a fifth contribution with the expanded comment editor. @gwynnnplaine made the System theme option consistent everywhere. @dansusman's original GitButler pull request laid the groundwork for this release's native support.
Issue reporters drove much of the fix list this cycle:
- @shulcsm reported the parent-relative annotate failure with a clear before/after reproduction in #1085
- @fabians-px reported the OpenCode cancellation port leak in #1046
- @r3clin3r reported the Pi TUI freeze from background SSH prompts in #1020
- @tomsej profiled and reported the 2.1s Pi startup cost in #1058
- @alexanderkreidich reported Guided Review masking insufficient-credit errors in #1037
- @fruxxxl reported the symlinked-repo gap in workspace mode in #1054
Full Changelog :
v0.24.0...v0.24.1(patch) ·v0.23.1...v0.24.0(v0.24.0) -
🔗 r/reverseengineering X3DH-lite + Double Ratchet + sender-keys E2EE messenger protocol (Kotlin) — internal audit history included, no independent review yet rss
submitted by /u/softdeadlock
[link] [comments] -
🔗 @binaryninja@infosec.exchange Brandon first disclosed the bug from this video a few months ago, and now you mastodon
Brandon first disclosed the bug from this video a few months ago, and now you have a chance to learn how to find bugs just like it, from him! Class is next week, so sign up today: https://shop.binary.ninja/products/fre- july-26
-
🔗 HexRaysSA/plugin-repository commits Merge pull request #37 from HexRaysSA/plugin-contest-2025 rss
Merge pull request #37 from HexRaysSA/plugin-contest-2025 add 2025 plugin contest winners -
🔗 HexRaysSA/plugin-repository commits add 2025 plugin contest winners rss
add 2025 plugin contest winners -
🔗 r/reverseengineering ReChan brings Jackie Chan Stuntmaster to PC as a native reimplementation rss
submitted by /u/_AG700
[link] [comments] -
🔗 19h/chernobog v6.0.0 release
Superseded by 6.0.1.
Full Changelog :
v5.3.0...v6.0.0 -
🔗 r/reverseengineering repel_paw3950_driver_re rss
submitted by /u/KepcukTheGreat
[link] [comments] -
🔗 r/reverseengineering Reversing GetOfflineDeviceUniqueID: How Windows Derives Its Offline Device ID rss
submitted by /u/Beneficial_Slide_424
[link] [comments] -
🔗 r/reverseengineering I found a tiny component with what appears to be an electronic structure, and I would like to determine what it actually is: the type of component, its possible function, and the technology involved (MEMS, sensors, microelectronics, etc.). My goal is simply to obtain a technical identification base rss
submitted by /u/This-One-6675
[link] [comments] -
🔗 hyprwm/Hyprland v0.56.0 release
A big new release with tons of features and fixes, brought to you by the Hyprland Corp.
No breaking changes! :)
New features:
- algo/master: add an option to focus master when window is closed (#14306) by @ArchSav
- algo/scrolling: add
inhibit_scrolldispatch for scrolling algorithm (#13955) by @erstarr - algo/scrolling: add a "fit expand" layout message (#14761) by @LichtMarv
- algo/scrolling: add new
fit_into_viewlayout msg (#14991) by @erstarr - cm/icc: add Primaries to ICC-generated SImageDescription (#15227) by @GamingLiamStudios
- config/lua: add a change_id workspace API (#15298) by @vaxerski
- config/lua: add get_loaded_plugins (#14582) by @vaxerski
- config/lua: add hl.clear_crashed_lockscreen() and fix tty instructions (#15299) by @vaxerski
- config/lua: add is_key_down and a key event (#14779) by @zacoons
- config/lua: add lua-driven custom live gestures (#15393) by @vaxerski
- config/lua: add physicalWidth and physicalHeight to lua's Monitor (#14657) by @leiserfg
- config/propRefresher: add capability to execute scheduled prop refresh immediately with lua helper function, add event for prop refresh (#14990) by @erstarr
- crashreporter: fix SIGSEGV on dladdr1 failure (#15352) by @oclaw
- decoration/glow: add gradient and angle animation (#15208) by @Undeadamien
- decoration/shadow: add gradient and angle animation (#14809) by @Undeadamien
- desktop/windowRule: add
no_auto_hdrwindow rule (#14694) by @fxzzi - desktop/windowRule: add
stableid:window selector (#14984) by @LRitzdorf - desktop/windowRule: add a suppressevent for X11 configure requests (#13313) by @lichie567
- desktop/windowrule: add silent option to monitor effect (#14357) by @ArchSav
- event/bus: add specialActive event to workspace (#14971) by @vaxerski
- groups: add groupbar disable_when_only option (#15009) by @feelamee
- groups: sync window monitor/workspace when added to a group (#14478) by @andresilva
- hyprctl: add config full-reload for performing a ground-up reload (#14748) by @vaxerski
- hyprctl: add interactive Lua REPL mode (#15043) by @Dregu
- hyprctl: add onCreatedEmpty field to workspacerules dispatcher data (#14826) by @ikalco
- hyprtester: add -t option for running specific tests (#14846) by @ArchSav
- input/tablet: add TabletTool config options for eraser button and tool pressure (#14110) by @marcello505
- lua/monitor: add set_ functions for raw workspace management (#14875) by @vaxerski
- lua/objects: add cm and reserved properties to monitor (#14523) by @ndavd
- meta/lua: add missing notification text field and make timeout required (#14665) by @atomicptr
- meta/lua: add proper lua stub types to the general config (#14993) by @JustLinuxUser
- plugins: add api for registering and dispatching events (#14734) by @zacoons
- protocols/xdg-shell: add support for xdg interactive drags (#15343) by @vaxerski
- renderer: add a motion blur option to windows (#14911) by @vaxerski
- renderer: add tonemap settings (#14903) by @UjinT34
- renderer: add wrapping options to SRenderData (#14666) by @zacoons
- socket2: add back changefloatingmode and togglegroup events (#14089) by @ErrorNoInternet
- splashes: add 5th comp winner's splash
Fixes:
- Minor fixes today (#14401) by @vaxerski
- Tests/scroll: fix window hiding test passing inconsistently (#15384) by @erstarr
- algo/dwindle: fix moving windows across a split (#15079) by @LRitzdorf
- algo/master: fix drag-swap with two tiled windows (#14974) by @karaolidis
- animation: refactor manager, fixup desktopAnimationManager, clean up code (#15302) by @vaxerski
- binds/submap: fix mouse binds inside submaps (#15060) by @jestemleonard
- binds/submap: fix submap enter bind == bind inside submap (#14856) by @bendi-github
- ci: fix codeownersplus (#15383) by @vaxerski
- AGENTS: add agents.md (#14835) by @vaxerski
- CI/Arch: add libheif dep
- code: fix clang-format
- compositor: fix monitor re-enabling on hotplug when dpms is off (#14818) by @samsyu518
- compositor: fix render unfocused for subsurfaces (#14718) by @UjinT34
- config/actions: fix null derefs in pin dispatcher (#14914) by @DxCx
- config/lua: add hl.clear_crashed_lockscreen() and fix tty instructions (#15299) by @vaxerski
- config/lua: fix layout ctx checking the wrong argument (#15061) by @vaxerski
- config/lua: fix missing event from know events lists (#15232) by @nath1416
- config: fix VRR not applying on runtime change (#14744) by @BlueManCZ
- config: fix cycle_next using nonexist layoutmsg for prev (#15396) by @Dregu
- config: fix decoration values to refresh on runtime eval/keyword change (#14590) by @BlueManCZ
- config: fix description matching for default workspaces (#15074) by @vaxerski
- config: fix initial workspace tracking (#15395) by @gulafaran
- config: fix plugin variables with dashes (#14379) by @VirtCode
- config: fix slide animation direction param (#15240) by @Dregu
- core: fix --verify-config crash (#15418) by @gulafaran
- core: fix a few fd leaks (#14870) by @vaxerski
- core: refactor fullscreen logic, improve maintainability and add a lot of tests (#14705) by @erstarr
- core: various SHM handling fixes (#15315) by @vaxerski
- crashreporter: fix SIGSEGV on dladdr1 failure (#15352) by @oclaw
- decoration/glow: fix visibility when no decorate is set (#14602) by @vaxerski
- desktop/groups: fix crash on dissolution (#15135) by @vaxerski
- desktop/popup: fix crash on destroy (#15416) by @gulafaran
- desktop/popup: fix reposition artifacts (#14820) by @gulafaran
- desktop/popup: fix subsurface scaling (#14936) by @Brandtweary
- desktop/view: fix IView virtual inheritance and erase_if ptr (#15421) by @gulafaran
- desktop/window: fix crash on requested workspace not having a mon (#15234) by @vaxerski
- desktop/window: fix unwanted reswallow (#12993) by @tomben13
- desktop/window: fix wrong scale being applied after workspace rules (#14832) by @awused
- desktopAnimation: fix crash in startAnimation on ws with no parent (#15224) by @vaxerski
- dispatchers: fix fullscreen movefocus regression (#15226) by @MightyPlaza
- frame: fix frame scheduling being skipped or one vblank off (#15404) by @gulafaran
- fullscreen: fix some bars remaining invisible when unfullscreening (#15370) by @erstarr
- gestures: fix live cursorZoom anchoring to a mid-animation value (#14996) by @barrettruth
- gestures: fix toggle cursorZoom sharing a single on/off flag (#14998) by @barrettruth
- glframebuffer: fix spurious incomplete framebuffer errors (#15380) by @gulafaran
- groups: fix border color for locked groups (#15015) by @EnzoBarizza
- hyprtester: Fix some failing tests terminating early (#14969) by @kolayne
- hyprtester: misc bug fixes & refactorings (#15025) by @kolayne
- i18n: completed italian translation and fixed some previous italian translation inaccuracies (#14763) by @Lucad44
- input/dnd: fix touch-driven drag-and-drop (#15077) by @hjanuschka
- input/window: fix dragging pointer-locked and fullscreen game windows (gamescope) (#15165) by @ZStud
- input: fix inverted scrollwheel direction in keybinds (#14749) by @zjeffer
- input: fix missing a pointer frame after absolute pointer motion (#15003) by @seven-mile
- input: fix wheel scroll events from virtual pointers being dropped (#15319) by @Nicholas-Arthur-Cook
- internal: fix bugs revealed by hu update
- internal: fix filename string not being computed at compile time in RASSERT and GLCALL macros (#14972) by @danielkrupinski
- internal: fix more fd leaks (#15225) by @vaxerski
- internal: fix null deref in setWindowFullscreenInternal when fullscreen state stale (#14725) by @neonetizen
- internal: fix tokens for xdg-desktop-portals (#15433) by @gulafaran
- internal: minor spelling fixes (#15199) by @bjoernab
- internal: modernize truthy(fix possible UB) (#15217) by @b1tflyyyy
- jeremy: fix auto-generating hyprlang instead of lua config file by default (#14944) by @LionHeartP
- keybinds: fix nested submaps and resets (#15213) by @ItsOhen
- layout/WindowTarget: fix crash when toggling float on oversized windows (#14587) by @floresce
- layout/monocle: fix
w[tv1]workspace rule not working on monocle layout (#15382) by @erstarr - layout/scrolling: fix prop refresh triggering hard input (#14594) by @erstarr
- layout/target: fix unmanaged configure loops in x11 (#15336) by @vaxerski
- meta/lua: fix capture of lua events (#15071) by @SteinGaming
- monitor: refactor inheritance, expand query, add unit tests for position and query (#15073) by @vaxerski
- monitor: fix cursor default_monitor option (#15322) by @lichie567
- monitor: fix special fade state update (#15316) by @vaxerski
- monitor: fix top-layer bar visibility on workspace change with scrolling-layout fullscreen (#14425) by @zerbiniandrea
- nix/tests: fix deprecation warning
- pointer-warp: fix forgetting enter serial (#15462) by @Dregu
- pointer: fix cursor bounds not updating on monitor layout changes (#14393) by @x1h0
- pointer: fix two stale cursor images clearings (#15376) by @gulafaran
- protocols/foreignToplevel: fix class and title reporting on map and afterwards (#15037) by @vaxerski
- protocols/grab: fix refocus to unreachable windows (#14555) by @gusjengis
- protocols/pointerWarp: fix crash when warp is on a non interactive surf (#15021) by @vaxerski
- protocols: Fix crash when creating inert workspace resource (#15303) by @PlasmaPower
- protocols: fix SHM cursor partial damage copy (#15399) by @gulafaran
- protocols: fix protocol null dereference paths (#15275)
- render/cm: fix premult in shaders (#14403) by @vaxerski
- render/gl/framebuffer: fix swizzle comparisons (#14481) by @vaxerski
- renderer/cm: fix blur clipping with HDR (#15371) by @ryanpholt
- renderer: fix SEGV on monitor disconnect (#15048) by @neonetizen
- renderer: fix
cursor:zoom_rigidbeing ignored with detached camera (#14995) by @barrettruth - renderer: fix border cm for mirroring (#14574) by @UjinT34
- renderer: fix mirror draw buffers on rotating work buffers (#15427) by @gulafaran
- renderer: fix screenshader with fp16 (#14918) by @UjinT34
- renderer: minor shader fixes (#14584) by @fxzzi
- screencopy: fix screenshare copyfb pending frames (#14837) by @imperishableSecret
- screenshare: minor fence and copy fixes (#15429) by @gulafaran
- scripts: fixup static asan patch (#14889) by @vaxerski
- scrolling/fullscreen: fix fullscreen/maximise behaviour, existing bugs with scrolling fullscreen (#14387) by @erstarr
- state/monitorQuery: fix monitor desc selector being treated as "down" selector (#15109) by @lichie567
- state/workspace: refactor workspace state, add querying, move off of CCompositor (#15075) by @vaxerski
- tests: fix broken test and flakiness (#14506) by @andresilva
- tests: fix failing cases (#15200) by @vaxerski
- xwayland: fix ICCCM synthetic event comparison (#14827) by @umbrageodotus
Other:
- AGENTS: include m_ rule
- CI: do not auto-comment on PRs from contributors (#15183) by @kolayne
- README: update showcase
- algo/dwindle: do not remove node before assigning (#15373) by @vaxerski
- algo/floating: do not alter pinned windows' state on ws move (#14513) by @vaxerski
- algo/master: avoid nullptr dereferences (#15422) by @gulafaran
- algo/master: guard target in remove (#14756) by @vaxerski
- algo/master: respect center_master_fallback when resizing slave cols (#14961) by @karaolidis
- algo/scrolling: hide the top layer in workspace swipe to scrolling layout fullscreen (#15137) by @Vic-41148
- algo/scrolling: intelligently decide where to drop a dnd'd window (#15251) by @vaxerski
- algo: prevent shadowing of
m_parent(#15270) by @erstarr - animation: dont .lock() a uniqueptr (#15470) by @gulafaran
- assets: update lockdead png with new dispatch commands (#14213) by @imperishableSecret
- buffer: wait on seperate fences instead of merging (#15088) by @gulafaran
- build: bump libinput to 1.29 (#14593) by @marcello505
- build: link Glaze to the compositor core (#15454)
- ci: add code owners via codeowners-plus (#15261) by @kolayne
- ci(codeowners-plus): fetch PR head before trying to diff against it (#15486) by @LRitzdorf
- ci: upgrade actions/checkout to v6 (#14885) by @danielkrupinski
- ci: upgrade actions/upload-artifact to v7 (#14887) by @danielkrupinski
- ci: upgrade github/codeql-action/upload-sarif to v4 (#14886) by @danielkrupinski
- cleanup: remove comment made for self (#14724) by @erstarr
- compositor: allow to request focusing windows behind fullscreen (#14942) by @kolayne
- compositor: give preference to same-workspace windows in getWindowInDirection (#14941) by @vaxerski
- config: add path in stdout log disabling message (#14793) by @davc0n
- config/actions: unfocus last window on changeWorkspace when moving monitors (#15374) by @vaxerski
- config/lua: allow disabling workspace rules (#15362) by @vaxerski
- config/lua: allow manual group control (#15363) by @vaxerski
- config/lua: allow re-enabling monitors (#14447) by @bizmythy
- config/lua: allow wildcards or absolute paths in require (#15461) by @vaxerski
- config/lua: do not wrap std::function in std::optional (#15197) by @danielkrupinski
- config/lua: expose monitor serial/available modes (#14973) by @karaolidis
- config/lua: improve error handle-ability with Lua
require(#14937) by @LRitzdorf - config/lua: make resizewindow param accessible to lua (#14658) by @SteinGaming
- config/lua: match lua output naming to hyprctl output and match naming convention (#15367) by @erstarr
- config/lua: report errors better without check* (#14695) by @vaxerski
- config/lua: restrict package module loading to lua-only modules (#14526) by @x1h0
- config/lua: revert "restrict package module loading to lua-only modules (#14526)" (#14533) by @x1h0
- config/lua: use function pointers instead of std::function for fields (#15154) by @danielkrupinski
- config/lua: use ref for workspace destroy events (#14562) by @vaxerski
- config/monitor: allow per-monitor vrr to inherit misc:vrr (#14746) by @BlueManCZ
- config/monitor: refresh splash texture on monitor reload (#14632) by @DavidLokison
- config/monitorRule: default scale to auto (#15019) by @vaxerski
- config/propRefresher: avoid crash if event loop manager isn't loaded (#14423) by @vaxerski
- config/propRefresher: schedule frames on screen shader refresh (#14874) by @vaxerski
- config/values: default no_hardware_cursors to 2 (#14575) by @vaxerski
- config/values: update
general:layoutdescription (#15175) by @Undeadamien - config: monitors default to "preferred" res, "auto" pos and scale (#15193) by @davc0n
- core/output: don't destroy bound wl_output resources on same-name global replace (#15351) by @titosymanankasina
- core: refactor more compositor state into separate classes and states (#15282) by @vaxerski
- crashReporter: don't skip trailing zeros in the stack trace (#15300) by @LRitzdorf
- cursor: revert "transform hardware cursors within content bounds (#14988)"
- cursor: transform hardware cursors within content bounds (#14988)
- debug: replace sizeof(x)/sizeof(x[0]) with std::size (#14871) by @VPeruS
- desktop/fadeout: extract bad logic, simplify fadeouts (#15260) by @vaxerski
- desktop/focusstate: restore keyboard focus after layer closed (#15419) by @myamusashi
- desktop/rule: optimize mapping rule properties to strings and engines (#14945) by @danielkrupinski
- desktop/view: ignore client maximize requests for tiled windows (#13790) by @charisvt
- desktop/view: sync layout's m_box in clampWindowSize (#15266) by @swomf
- desktop/window: allow focus while held to non-OR X11 windows (#14821) by @vaxerski
- desktop/windowRule: use original monitorstr if not silent (#14621) by @lichie567
- desktop: extract a lot of view state from compositor (#15245) by @vaxerski
- desktop: move window manipulation functions out of compositor (#15256) by @vaxerski
- desktop: remove using directives, move to geometric functions (#15402) by @vaxerski
- dmabuf: ensure both create and create_immed verify v4 (#15424) by @gulafaran
- dmabuf: revert "ensure both create and create_immed verify v4 (#15424)" by @gulafaran
- docs/hyprctl: update example code for hyprctl dispatch (#14656) by @raluvy95
- drm: init sync_merge_data::name field directly with a string literal (#15153) by @danielkrupinski
- drm: refactor merging and exporting fences (#14808) by @gulafaran
- dwindle: avoid crashing on expired weakptr (#15415) by @gulafaran
- elementrenderer: allow smaller viewports near the top/left edges of the buffer (#14891) by @awused
- eventmanager: handle partial IPC writes (#15262)
- gestures/scroll_move: guard col to avoid crash (#14394) by @vaxerski
- gestures: clamp toggle cursorZoom like mult and live (#14997) by @barrettruth
- gestures: configure client to final size on fullscreen/float gesture completion (#14981) by @TimaDub
- helpers: include numbers header (#14406) by @LinuxUserGD
- helpers: remove old header (#15095) by @vaxerski
- hyprctl: handle partial IPC transfers (#15408)
- hyprctl: hide C++ symbols by default (#14959) by @danielkrupinski
- hyprctl: remove redundant mutex locking from SRollingLogFollow::get() (#15114) by @danielkrupinski
- hyprctl: use .transform() instead of .and_then() (#15116) by @danielkrupinski
- hyprpm: allow distro packagers to provide extra cflags for building plugins (#14755) by @GaugeAndGravity
- hyprpm: continue after repository update failures (#15391) by @gfhdhytghd
- hyprpm: hide C++ symbols by default (#14958) by @danielkrupinski
- hyprtester: handle empty Lua include path in plugin build (#15241)
- hyprtester: improvements, remove some redundancy and other things. (#15038) by @cebem1nt
- hyprtester: report failures at the end (#14421) by @vaxerski
- i18n: Adjust some awkward English (#14831) by @tremby
- i18n: reduce the size of the machine code generated from CI18nEngine constructor (#15036) by @danielkrupinski
- i18n: update italian translation (#14556) by @alba4k
- init: gain real-time through rtkit (#15411) by @andresilva
- init: revert "gain real-time through rtkit (#15411)" by @andresilva
- input-capture: impl protocol (#7919) by @3l0w
- input-capture: permission type not in lua config (#15481) by @littleblack111
- input: aggregate modifier states from all keyboards on focus enter (#14633) by @ahmedkall
- input: disable libinput send events when pointer device is disabled (#15327) by @sitiyou
- input: properly make input-blocked windows inaccessible (#14517) by @vaxerski
- internal: do not use std::make_pair() (#15122) by @danielkrupinski
- internal: extract rarely executed code from RASSERT macro to a non-inline function (#15013) by @danielkrupinski
- internal: make ColorManagement constants inline to reduce binary file size (#15267) by @danielkrupinski
- internal: make color constants inline to reduce binary file size (#15211) by @danielkrupinski
- internal: optimize Env::envEnabled() (#15295) by @danielkrupinski
- internal: pass lua includes to hyprtester plugin (#14747) by @UjinT34
- internal: removed Herobrine
- internal: rename getWindows to getWindowCount to be more descriptive. (#15268) by @erstarr
- internal: replace O_CLOEXEC with FD_CLOEXEC for file descriptor flags (#14909)
- internal: replace PI macro with std::numbers::pi (#15115) by @danielkrupinski
- internal: replace std::vformat() with std::format() when the format string is known at the compile time (#15119) by @danielkrupinski
- internal: use std::lerp() (#15296) by @danielkrupinski
- ipc/lua: rxpose tearingHint for windows (#15431) by @SergeyKasmy
- keybinds: set a fallback releasePending flag for special lua binds (#14600) by @vaxerski
- keybinds: store hit binds first, then execute callbacks (#14743) by @vaxerski
- layersurface: dont nullptr deref on compositor cleanup (#15379) by @gulafaran
- layersurface: inform layer surfaces of scale changes (#14771) by @awused
- layout/dragController: reset floating offset on ended drag (#14940) by @vaxerski
- layout/scrolling: check if cursor overlaps with target in focusOnInput (#14687) by @cebem1nt
- layout: harden workspace layout refresh during monitor changes (#14893) by @awsms
- logger: avoid multiple instances of static variables being created in CLogger::log() (#15012) by @danielkrupinski
- main: gain SCHED_RR and drop CAP_SYS_NICE earlier (#14897) by @ErrorNoInternet
- meta/lua-stubs: overwrite scale to accept float and int (#14461) by @vaxerski
- meta/lua: Gestures can accept a lua function (#14649) by @kolayne
- meta: update lua stubs for permissions (#14400) by @alba4k
- monitor: don't modeset on reserved changes (#14397) by @vaxerski
- monitor: don't refresh background textures on small changes (#15117) by @vaxerski
- monitor: don't set back to 8 bit when applying rules (#14404) by @fxzzi
- monitor: move floating windows with layout changes (#14928)
- monitor: retry transient mode selection failures (#14927)
- monitor: revert "set format back after failing DS activation (#14168)" (#14864) by @fxzzi
- monitor: skip fallback monitor on recovery flag evaluation (#15332) by @oclaw
- nix/module: link /share path
- nix: gcc15Stdenv -> gcc16Stdenv
- opengl: optimize CShaderLoader::getDefines() (#15212) by @danielkrupinski
- output/icc: avoid unnecessary VCGT resampling (#15144)
- output: simplify trying DRM formats (#15198) by @danielkrupinski
- perf: avoid unnecessary copies and allocation (#15147)
- presentation: ensure feedbacks arent silently dropped (#15473) by @gulafaran
- protocols/background-effect: don't automatically destroy object on surface destroy (#14758) by @vaxerski
- protocols/cm: implement WP CM v1.3 (#15026) by @UjinT34
- protocols/dmabuf: don't send mods on v4 and above (#15189) by @vaxerski
- protocols/fractional-scale: track if scale is known and send scales eagerly when known (#14798) by @awused
- protocols/pointerwarp: allow warp on layer surfaces (#14949) by @awused
- protocols/toplevelExport: null-check pixel format (#15203) by @Kuenec
- protocols/vicinae-hotkey-v1: implement client-managed global shortcuts (#15010) by @aurelleb
- protocols: avoid crash in lease (#15417) by @gulafaran
- protocols: bump xdg-decoration to rev 2 (#14869) by @vaxerski
- protocols: guard protocol callback resource lookups (#15276)
- protocols: guard protocol output resource lookups (#15273)
- protocols: implement ext-background-effect-v1 protocol (#13211) by @aurelleb
- render: handle explicit sync fallback safely (#14986)
- render: rollback failed direct scanout state (#14987)
- renderer/gl: release failed fence syncs (#14956) by @sluongng
- renderer/gl: skip invalidation clear on empty damage (#14921) by @tazzo343
- renderer/rbo: avoid nullptr deref (#15167) by @gulafaran
- renderer: allow blurring of the session lock surface (#15283) by @NamorNiradnug
- renderer: block solitary on fadeouts (#15428) by @gulafaran
- renderer: harden damage handling and workspace color cache (#15035)
- renderer: intersect blur region with bbox to normalize it (#14639) by @aurelleb
- renderer: optimize text rendering (#15124) by @umbrageodotus
- renderer: reduce per-frame heap allocations (#14932)
- renderer: reject invalid damage before region handling (#15242)
- renderer: reject invalid damage regions (#15064)
- renderer: send frame callbacks on presented if no change (#14849) by @gulafaran
- renderer: set proper image description in snapshots (#14398) by @vaxerski
- renderer: unbreak text rendering (#15127) by @umbrageodotus
- screenshare: only copy fb for pending frames (#14672) by @imperishableSecret
- screenshare: revert "only copy fb for pending frames (#14672)" by @imperishableSecret
- shaders: replace SHADERS std::map with a constexpr sorted std::array (#15113) by @danielkrupinski
- start: re-show display lock died screen on restart after crash (#15334) by @neal98
- state/monitor: refactor monitor state, init fallback state (#14547) by @vaxerski
- state/monitorQuery: implement monitor query, move logic off of Compositor (#15070) by @vaxerski
- state: extract layout control functions from compositor (#15104) by @vaxerski
- tests/misc: remove isDirection(char)
- tests: check that we can auto-group floating windows (#14453) by @Aqa-Ib
- tests: some code improvements (#14774) by @cebem1nt
- texture: cache G and A swizzle channels aswell (#14605) by @gulafaran
- treewide: clean up and performance (#15230)
- window: cache process environment lookups (#15264)
- windows/focus: differentiate fullscreen focus reason into default and layout handled reasons. (#14370) by @erstarr
- windowstate/layerstate: don't dynamic_cast a view's self-ptr during destruction (#15471) by @gulafaran
- xwayland: avoid unmanaged geometry configure loop (#15280) by @moetayuko
- xwayland: guard unknown selection events (#15409)
- xwayland: lock focus while dragging an xwayland window (#12051) by @enzi
- xwayland: preserve title fallback state (#15449)
- xwayland: validate ICCCM hint replies (#15450)
Special thanks
Special thanks as always to these gigachads for supporting Hyprland's continued development:
Sponsors
Diamond
37Signals
Gold
Framework, Butterfly
Donators
Top Supporters:
soy_3l.beantser, taigrr, RaymondLC92, Xoores, Bonsai, d, DHH, alukortti, miget.com, Ammar Hossain, Jas Singh, yamauchihiroshi, iain, Seishin, Brandon Wang, ExBhal, Hunter Wesson, RayJameson, Kay, Ki☆, alexmanman5, Tonao Paneguini, John Shelburne, 3RM, gfunnymoney, ari-cake, TyrHeimdal, Illyan, --, Insprill, lzieniew, MadCatX, Theory_Lukas
New Monthly Supporters:
Anon, wmeints, Twinkybot, ryan, jakhub, JMH, Le Juju, ercument, xff, Mike Raphone, Mike E, Martijn, mfed, leomoon, OldPastaFace, ferngg_, damirk, Ghostxsalmon, Flo, DavDood, bamboo, Justin, Cpl. Roth, irontom10, Eric, phage- zn, erotourtes, Streifenfrei
One-time Donators:
Wawan, Jim, Marco Celis, JDM, LPGames, joscani, trvnkwil, davinsky, Santiago Perez, Mantas, Javier, asdfasdfasdfasdf, Leo, saltchicken, Yakedo, J Fernandes, PasiS, Marcelo, RammFire, jrgd, elandi, Xenia, Paul H, Jonathan Lopez, mir0, sheik, Supporter, Gérald, Ghoul, uniuni, Lei Huang, BTCharlie, marckeelingiv, ArisTheInquiring, anon, 9x25dillon, DCyph360, inittux111, Steve, Rowan, Awachuwere, Hank, Chloessica, escuco, Boriana, CRUDB, EndoliteMatrix, King, tdha, SillyingAround, Ag, MrElo, fraxineus, Dobrovschi Stefan, MrCharless, 4everN00b, bogdan.bagno@gmail.com, Shoh Berdy, araneae, Skrazzo, Carlos martinez, Kimli, Antoni, Ed R, Aphrofluff, ThatOneShortGuy, gtm, ChristophLHR, Sam C, deven, Alezarine, golanv, Praegustator, zaafiel428, skatos24, Louis Nicholas, Ivan Ucha, Andrejs, mirolPirol, dacero, cmquesada, Nando, an, shkz, Rob H, TrentZent#5307, Snil, Rigle, NikodemRafalski, Bishop James, Some random dude from China, jo, Roy, ProfessorNova, Ikey, nihilfm, Serj007, GVM, DucSpa, LinuxHG, WetSeal, sikor666, djledda, Dominik, jolteroli, Jkob, Valerie, Valentino, A374377, evandroev@gmail.com, w00z4, Mateusz, Dirk, mdereje, Joy, Celerodlak, BabawabatheSuperSlender, Paulin, Manuel P., Cobra1one, Abhinav, houdinihacker, JohnAtl, Blackcat, yDog-1, CUhRip, Alex, Kodlak, ReallyFluffy, Miguel Padilla, wronguy, JWHall, TheGreatMcPain, mykey, ThePreviousOne, poor_man, FarLT, Élder Bernardi, Citizen5, Gus, GKL, falparsi, @ericmoyer@hachyderm.io, labo, MeaTLoTioN, Caja, Willem van Ede, @elmorek, anonymous- supporter, William Caicedo, Hello, aussiedini, omnicroissant, cadds, Evan LeSage, Pierre, Marugun, Robbie, Henry, paradaimu, Cody Weaver, jbsbuilder, zongben, Pawel, ManosG, revitalist, marcs100, Azrael Alpha, erkre, brainfxk, PaulG, Ivan Shakuta, taqashh/abbo0dio, curu, Chaosz, GedeSaika, Amor, 7NK01, abby, Ren, luomichael, Alon, Matthew Feidt, xtarr, Annoying Moose, carpet.lover, Emil Folino, kanito, Nael, Christoffer, Arepa, Kazunari Irie, Ebrithil, Daan, Cbriss, Gustavo Rodriguez, Keylack, kern, McMelon, Aser, zerocool823, Tony, Tom C, Mike B, Thank you, JB, Henrik, kusanaginoturugi, Shmoo Maru, Lou, Oleks Sheremet, kagenou-sama, J, Blueh, decoy, Skaz, Neno, CurlyDude, Dmitrii Gol, Roger Powell, Joseba.dev, oddi, gumbum, Alejandro
Full Changelog :
v0.55.0...v0.56.0 -
🔗 r/reverseengineering /r/ReverseEngineering's Weekly Questions Thread rss
To reduce the amount of noise from questions, we have disabled self-posts in favor of a unified questions thread every week. Feel free to ask any question about reverse engineering here. If your question is about how to use a specific tool, or is specific to some particular target, you will have better luck on the Reverse Engineering StackExchange. See also /r/AskReverseEngineering.
submitted by /u/AutoModerator
[link] [comments] -
🔗 backnotprop/plannotator v0.24.0 release
Follow @plannotator on X for updates
Missed recent releases? Release | Highlights
---|---
v0.23.1 | Startup no longer hangs on large or slow directory trees, Ask AI input stays visible after long responses
v0.23.0 | Plan approval fix for Claude Code 2.1.199+, annotate mode version diff, binary-only--minimalinstall, reviews post without attribution
v0.22.0 | Git-status "All changes" default review view, Commits panel with per-commit diffs, Guided Review, Pi + GitHub Copilot CLI review engines
v0.21.4 | Markdown math rendering, PR Overview panel with annotatable description and comments, agent instructions in code review, media parsing fixes
v0.21.3 | File comments in code review, unified click-to-highlight comments, VS Code clipboard/keyboard bridge, Codex Ask AI on app-server transport, CLI subcommand help
v0.21.2 | Custom reviews as Agent Skills, Cursor + OpenCode review engines, whole-file/general findings, deleted-annotation fix, Codex Ask AI outside git repos
v0.21.1 | Annotate-last blank-page fix on multi-message sessions
v0.21.0 | Direct document editing in annotate mode, live git-status file tree, in-app agent terminal, open files in external apps, HTML renders as HTML
v0.20.3 | Annotations no longer lost when clicking away, off-screen indicator for open comments
v0.20.2 | Pierre CodeView all-files review, large-PR pipeline and instant-open checkout, unified agent engine selection, Pi programmatic plan mode
v0.20.1 | Pi extension install hotfix (pinned@pierre/diffsafter a broken upstream release)
What's New in v0.24.0
This release adds two review surfaces: a gallery for the images, videos, and documents inside PR conversations, and native GitButler workspace support. 25 pull requests landed since v0.23.1. Six came from community members, four of them first-time contributors. The release also brings port ranges, an expanded comment editor, and fixes across the OpenCode and Pi integrations.
PR and MR artifact gallery
Pull request conversations hold more than text: screenshots of the bug, GIFs of the fix, demo videos, HTML reports, attached markdown. The review UI ignored all of it.
When you review a GitHub pull request or GitLab merge request, Plannotator now collects images, GIFs, videos, HTML, and markdown files from the description and conversation into a gallery. Selecting a tile opens a focused viewer. Markdown and sandboxed HTML render inline, and everything is annotatable: select text in a document, drop a point note on an image, pin a note to a video timestamp, or comment on the artifact as a whole. These notes join your normal review feedback with their source attached, whether the feedback posts to GitHub/GitLab or returns to your local agent.
Conversation artifacts sort newest-first, and you can hide tiles you don't want to see again. The gallery appears only for hosted reviews, since local diffs have no conversation to collect from.
- Authored by @backnotprop in #1055
GitButler review support
GitButler users work in a virtual-branch workspace that ordinary Git tooling misreads: HEAD sits on a synthetic workspace commit, and several branches are applied at once. Running a code review there produced confusing diffs against internals GitButler manages for you.
Plannotator now detects an active GitButler workspace and reviews it natively. The default Workspace view shows everything applied, committed changes plus assigned and unassigned working-tree changes, against GitButler's reported merge base. You can also review a single stack or one branch within a stack as committed-only diffs. Detection requires both the workspace HEAD and GitButler's local target configuration, so a leftover branch or database from a past experiment cannot hijack an ordinary Git repo. An active workspace needs the
butCLI (0.21.0 or newer).--gitbutlerforces the provider and--gitremains the escape hatch. Both the Bun and Pi runtimes support it.The original GitButler effort came from @dansusman, whose work is preserved in the commit co-author credit.
- Authored by @backnotprop in #1067, superseding #566 by @dansusman
Expanded comment editor in code review
Long review comments were cramped in the compact inline toolbar. A new expand control opens a full-size dialog that edits the same comment, so you can draft multi-paragraph findings and submit through the familiar flow. The compact composer stays the default for quick notes and gains vertical resize.
- Authored by @leoreisdias in #1030
Port ranges
PLANNOTATOR_PORTnow accepts an inclusive range like19432-19463. Plannotator tries each port in order and binds the first available one, in both the Bun and Pi runtimes. Fixed single ports and the random-port default behave as before. This helps devcontainer and SSH setups where you forward a block of ports and run several sessions side by side.OpenCode: cancelling a plan review now cleans up
Cancelling a
submit_plancall in OpenCode left the review server running, so the next plan submission could not bind its port. Cancellation now flows through OpenCode's tool-abort contract: the server shuts down, timers and child processes are released, and the plan is kept so a resubmitted revision reuses the same fixed port.- Authored by @backnotprop in #1064, closing #1046 reported by @fabians-px
Pi: faster startup and honest error reporting
The extension added about two seconds to every
pilaunch because its full module graph loaded at registration. The heavy browser and server graph now loads on first use, and the large UI bundles are read only when you open a review or annotate session.Separately, when a review engine failed (for example, out of API credits mid- review), Guided Review reported a generic parse failure instead of the real cause. Provider errors now surface as themselves.
- Authored by @backnotprop in #1063, closing #1058 reported by @tomsej, and #1061, closing #1037 reported by @alexanderkreidich
Background git checks can no longer freeze the terminal
Plannotator periodically checks whether your review baseline is behind its remote. On repos whose remote needs interactive authentication, that background
git ls-remotecould open a credential or passphrase prompt with nowhere to render. On Pi it froze the TUI. Background discovery now runs without interaction: credential prompts are disabled, SSH runs in batch mode, and timed-out processes are cleaned up as a group. Explicit actions like the "Fetch" button keep the normal interactive authentication path.- Authored by @backnotprop in #1062, closing #1020 reported by @r3clin3r
Workspace mode discovers symlinked repos
Multi-repo workspace review walked real directories only, so a child repo reachable through a symlink was skipped. Symlinked and junction-linked repos are now discovered, deduplicated by real path, and labeled by their workspace- relative alias. This release also caps the discovery walk with the
PLANNOTATOR_FILE_BROWSER_MAX_FILESbudget, so a stray symlink into a huge unrelated tree cannot stall startup.- Authored by @backnotprop in #1060, closing #1054 reported by @fruxxxl
Additional Changes
- JSON 404 for unknown API routes : a nonexistent
/api/*path used to return the full app HTML with a 200. All six servers (Bun and Pi) now return a JSON 404, while SPA routes still serve HTML. By @buihongduc132 in #748, their first contribution. - System theme everywhere : the System option now appears in every theme menu through a shared mode list. By @gwynnnplaine in #1015.
- OpenCode planning handoff preserved : approving a plan with an agent switch no longer loses the planning context. By @franktronics in #1034, their first contribution.
- Visual-explainer Mermaid colors : the skill emitted OKLCH theme variables Mermaid cannot parse; it now emits hex. By @FNDEVVE in #1044, closing #1043, their first contribution.
- Review feedback validation narrowed : submitting findings no longer risks starting a second review pass. By @backnotprop in #1065.
- Responsive review header : the code review header now wraps at narrow widths. By @backnotprop in #1073.
- Open-in selector placement : the open-in-editor selector moved after the file context. By @backnotprop in #1072.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run
/pluginin Claude Code, find plannotator , and click "Update now".OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in
opencode.json:{ "plugin": ["@plannotator/opencode@latest"] }Pi: Install or update the extension:
pi install npm:@plannotator/pi-extension
What's Changed
- feat(review): add PR and MR artifact gallery by @backnotprop in #1055
- Add modern GitButler review support by @backnotprop in #1067
- feat(review): Add expanded review comment editor by @leoreisdias in #1030
- feat(server): support bounded port ranges by @iurysza in #1042
- Fix OpenCode plan cleanup after cancellation by @backnotprop in #1064
- fix(review): keep background remote discovery noninteractive by @backnotprop in #1062
- perf(pi): lazy-load runtime graph to cut startup time by @backnotprop in #1063
- fix: surface Pi provider errors in reviews by @backnotprop in #1061
- Fix workspace discovery for symlinked repositories by @backnotprop in #1060
- Validate submitted findings without starting a second review by @backnotprop in #1065
- fix(server): return JSON 404 for unknown /api/* routes instead of HTML by @buihongduc132 in #748
- fix(review): show System in theme menu via shared mode list by @gwynnnplaine in #1015
- fix(opencode): preserve planning handoff by @franktronics in #1034
- fix visual-explainer Mermaid theme colors by @FNDEVVE in #1044
- fix(review): make header responsive by @backnotprop in #1073
- Place open-in selector after file context by @backnotprop in #1072
- Refine Workspaces waitlist page by @backnotprop in #1056
- Route legacy docs and blog URLs to docs.plannotator.ai by @backnotprop in #1079
- docs: connect the README to canonical Plannotator docs by @backnotprop in #1080
- Use the production Totman favicon by @backnotprop in #1066, #1071, and #1081
- SEO: publish the new default social card by @backnotprop in #1082
- Add Bing Webmaster Tools site verification by @backnotprop in #1074
- chore(deps): update github actions by @renovate in #593
New Contributors
- @iurysza made their first contribution in #1042
- @buihongduc132 made their first contribution in #748
- @franktronics made their first contribution in #1034
- @FNDEVVE made their first contribution in #1044
Contributors
@iurysza built port range support across both server runtimes for their first contribution, with tests for the parsing edge cases. @buihongduc132's first contribution touched all six servers, giving API clients proper JSON 404s. @franktronics fixed the OpenCode planning handoff on their first PR. @FNDEVVE both reported and fixed the visual-explainer Mermaid color bug. @leoreisdias returned for a fifth contribution with the expanded comment editor. @gwynnnplaine made the System theme option consistent everywhere. @dansusman's original GitButler pull request laid the groundwork for this release's native support.
Issue reporters drove much of the fix list this cycle:
- @fabians-px reported the OpenCode cancellation port leak in #1046
- @r3clin3r reported the Pi TUI freeze from background SSH prompts in #1020
- @tomsej profiled and reported the 2.1s Pi startup cost in #1058
- @alexanderkreidich reported Guided Review masking insufficient-credit errors in #1037
- @fruxxxl reported the symlinked-repo gap in workspace mode in #1054
Full Changelog :
v0.23.1...v0.24.0 -
🔗 HexRaysSA/plugin-repository commits sync repo: +2 plugins, +2 releases, ~2 changed rss
sync repo: +2 plugins, +2 releases, ~2 changed ## New plugins - [ida-taskr](https://github.com/mahmoudimus/ida-taskr) (1.0.3) - [idavator](https://github.com/mahmoudimus/idavator) (0.1.1) ## Changes - [SigMaker](https://github.com/mahmoudimus/ida-sigmaker): - 1.14.0: archive contents changed, download URL changed - 1.13.0: archive contents changed, download URL changed -
🔗 matklad Memory Safety's Hardest Problem rss
Memory Safety’s Hardest Problem
Jul 20, 2026
Uplifting a lobsters comment for easier reference.
The central memory safety counter example, the hardest case to solve, doesn’t have anything to do with destructors or heap:
const std = @import("std"); const E = union(enum) { a: u128, b: []const u8, }; pub fn main() void { const bad_addr: u128 = @intFromPtr(&main); var e: E = .{ .b = "hello" }; const oh_no_pointer: *const []const u8 = switch (e) { .a => unreachable, .b => |*p| p, }; e = .{ .a = (16 << 64) + bad_addr }; const oh_no: []const u8 = oh_no_pointer.*; std.debug.print("{s}\n", .{oh_no}); } $ zig run main.zig ��C�� �This sort of example also breaks Ada:
https://www.enyo.de/fw/notes/ada-type-safety.html
We have a tagged union, which can hold either
AorB. We initialize the union asA, take a pointer to its internals, overwrite the original withB, and then use the pointer. The pointer is still typed asA, but the bytes it points to now belong toB: a type confusion.
This being said, we care about memory unsafety primarily because it leads to exploitable software, and it’s unclear just how impactful the example above is in practice. It is a happy coincidence that by far the most exploitable memory error in practice, the infamous buffer overflow, is also trivial to fix with compiler-inserted bounds checks. The biggest miss of the industry when it comes to memory safety is not listening to Walter Bright:
https://digitalmars.com/articles/C-biggest-mistake.html
I bet that, had we got
char a[..]syntax around C11, quite a few issues wouldn’t have happened!See also What is Memory Safety?
-
🔗 tonsky.me Looking for work rss
Hey, Niki here. This is a bit unusual. My sabbatical is coming to an end, and I am looking for a new opportunity. Full-time or contract, startup or research, remote or Berlin, individual contributor, ideally—tight team, ambitious product.
I am a software engineer first and foremost with 20+ years of experience. I work on technically challenging products, foundational technology, dev tools. I’ve been doing Clojure and web recently, but I'm also very excited to explore closer-to-the-metal programming.
I have an eye for design, user interfaces, UX, DX. I would love to work with a team that takes interface quality seriously. Or to work with graphics!
I am pretty sure I am good at explaining stuff, including what we are building, why, why this way, why is it important, etc. For example.
The overarching theme is to understand computers deeply, and then use that to make better and simpler software. If you care about that too, we might be a great match!
Recent work
Instant DB is a US startup building a modern Firebase. I worked on the sync algorithm, performance, DX. A summary of my commit log.
Roam Research is an OG personal knowledge manager. I worked on database optimization and a plugin system.
At JetBrains, I developed a new Skia renderer for Fleet and Jetpack Compose Desktop.
I’ve built many open-source libraries, including a database, a GUI toolkit, a Clojure dev environment, a React wrapper, a well-known font... More recently, Clojure+ gives you a taste of my approach to DX, and Fast EDN—to performance.
I maintain several active projects — AlleKinos.de, Grumpy Website, this site.
If you want to dive deeper, here’s the usual stuff: Projects / Talks / LinkedIn / GitHub
I also made a two-page PDF CV.
Why this post?
It’s an attempt to reach beyond my immediate network. I’ve been doing Clojure for a long time, and now want to explore.
If you are working on a compiler, a database, an IDE, a programming language or another technically ambitious product, touching graphics, typography, algorithms, low-level programming, and you think my experience can help, let’s talk: niki@tonsky.me.
-
🔗 Ampcode News Meet Puck rss
Say Hello to Puck, your new assistant in Amp:
Open it up from anywhere on ampcode.com:
Puck is always available and has access to many different tools to help you manage your agents in Amp.
Here are some examples of things you can ask Puck to do:
- "Spawn a new agent in an orb to fix this bug the user reported in the screenshot."
- "Start an agent in ampcode/amp to investigate why CI is failing."
- "Find me that massive thread I had where I was investigating that 500 server issue."
- "Once this thread is done, archive it."
- "Create a new project and start setting up a 2026 Rust development toolchain in it."
- "For each script in our ./scripts folder, spawn an agent in an orb to try and run it again dev server. Then compile their feedback about what worked/didn't work.
Think of Puck as a quick assistant and a home base for launching and coordinating other agents. It's an experiment, too. Puck is flexible, and we've already found more ways to use it than we expected. We're excited to see what you come up with.
Time to open Puck and put it to work.
-
🔗 Ampcode News Amp Is Now In Slack rss
You can now summon Amp in Slack.
Connect your workspace from Amp's settings, then mention
@Ampin any channel or thread. Amp sends your message to your personal Puck, which can initiate bug fixes, spike new features, answer questions about your codebase, and find and manipulate existing threads.Here are a few examples of how we've been using it:
1 / 4Fix a User Bug Report
A user reported a bug with a screenshot. Amp read the screenshot, reproduced the issue, and posted back a fix.

Resolve a Production Incident
A production alert posted to a Slack channel, Amp identified the likely culprit commit, pulled production logs to verify, and pushed a fix to the production Terraform config.
See full investigation thread. Close the Loop with Your Team
Two teammates investigated the same issue. One resolved it and asked Amp to ping the other user from their investigation thread. The other user then archived their ongoing threads from Slack.

Search Slack for Context
Amp can also search through Slack to pull discussions relevant to its current task. The Amp Slack integration compiled the examples used in this post.

Install the Slack Integration
- Open Workspace Integrations as an Amp workspace admin, select Connect a Slack Workspace, and authorize the Amp app in Slack. (If you don't yet have an Amp workspace, create one.)
- Individual users should link their Amp user directly with their Slack user in Personal Settings.
- Mention
@Ampin any Slack channel or thread.
-
- July 19, 2026
-
🔗 IDA Plugin Updates IDA Plugin Updates on 2026-07-19 rss
IDA Plugin Updates on 2026-07-19
New Releases:
Activity:
- flakida-9.4
- IDA-NO-MCP
- ida-pro-mcp
- ida-taskr
- d399f4a2: build: publish IDA Taskr through HCLI (#6)
- idavator
- e79b7f6a: build: publish Idavator through HCLI (#1)
-
🔗 MetaBrainz Spotify users will need to reconnect every 6 months to ListenBrainz rss
Spotify recently announced a drastic change in their API: connections to your account will now expire after 6 months, starting July 20th.
If you have your Spotify account connected to ListenBrainz, this means you will have toreconnect your Spotify account every 6 months , or ListenBrainz will not be able to keep your listening history in sync.
To get us started, all users will need to reconnect their Spotify account this coming Monday July 20th.In addition to sending you an email, you will see an error message at the top of the page in ListenBrainz:

To minimize disruption and potential loss of listening history in the future, we will send you an email a month ahead, and one week ahead of the disconnection for you to disconnect and reconnect your Spotify account in your music services settings.
This is quite the thorn in our side but alas we have no other choice as the internet continues to enshittify.
-
🔗 @malcat@infosec.exchange You like [#capa](https://infosec.exchange/tags/capa) but wish it would scan mastodon
You like #capa but wish it would scan faster?
Try out #Malcat 0.9.15, featuring a blazing fast native Capa scanner, among other improvements:https://malcat.fr/blog/0915-is-out-capa-scanning-at-native- speed/
-
🔗 smol-machines/smolvm smolvm v1.6.13 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
- Route fork clones to workers by an explicit connection preamble so a golden's reconnect can never be misrouted by @BinSquare in #663
- Never LRU-evict the reference-shared pack store by @BinSquare in #666
- Fail an image machine's start when the image pull fails by @BinSquare in #669
- Flatten from-vm packs to a single layer and share the pack export, workload launch, and machine-create env handling in the lib by @BinSquare in #668
- Cap keep-alive exec output so oversized results return a clear error instead of a frame-too-large crash by @BinSquare in #670
- Fix file-upload body limit and clarify the oversized-exec-output guidance by @BinSquare in #671
- CUDA fork: sync-call retry, allocation burst, multi-GPU pinning, sandboxed serve, and machine-create workload by @BinSquare in #672
- Reload clone-worker modules byte-identical to the golden's images by @BinSquare in #673
- Recover fork clones whose worker died, and give clone reconnects a real handshake window by @BinSquare in #675
- CUDA 13 guest surface by @LoganGrasby in #674
- Re-key the golden's persistent exec overlay to the clone so forks inherit filesystem state by @BinSquare in #677
- Replay function attributes on clone-worker kernels, and print backtraces on fatal signals by @BinSquare in #676
Full Changelog :
v1.6.0...v1.6.13 -
🔗 WerWolv/ImHex Nightly Builds release
Nightly eed63cb Changelog
- build: Install autoconf-archive in emscripten docker
- patterns: Update pattern language
- fix: Allocate slightly more space for the hex editor footer expand button
- impr: Reduce size of scroll bars
- impr: Make hex editor scroll bar render above hex cells
- fix: Text editor line flickering when using the scroll bar
- fix: Style and Theme maps persisting between warm-restarts on Linux
- fix: Font pt value not matching expected size
- impr: Match text editor style to rest of ImHex
- build: Fix AppImage not bundling all necessary dependencies
-
🔗 smol-machines/smolvm smolvm v1.6.12 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
- Route fork clones to workers by an explicit connection preamble so a golden's reconnect can never be misrouted by @BinSquare in #663
- Never LRU-evict the reference-shared pack store by @BinSquare in #666
- Fail an image machine's start when the image pull fails by @BinSquare in #669
- Flatten from-vm packs to a single layer and share the pack export, workload launch, and machine-create env handling in the lib by @BinSquare in #668
- Cap keep-alive exec output so oversized results return a clear error instead of a frame-too-large crash by @BinSquare in #670
- Fix file-upload body limit and clarify the oversized-exec-output guidance by @BinSquare in #671
- CUDA fork: sync-call retry, allocation burst, multi-GPU pinning, sandboxed serve, and machine-create workload by @BinSquare in #672
- Reload clone-worker modules byte-identical to the golden's images by @BinSquare in #673
Full Changelog :
v1.6.0...v1.6.12 -
🔗 Filip Filmar Cocoapuffs: Booting Fuchsia's Zircon Kernel on a RISC-V core in Artix-7 FPGA rss
Zircon, the (non-POSIX, non-Linux) kernel powering Fuchsia, an open-source operating system under development at Google, now boots on my RISC-V based system-on-chip design, running on an AMD Artix-7 FPGA device. While this might be the first Fuchsia-powered device apart from the boards that Google works on, it is definitely the first piece of programmable hardware running Fuchsia. Why not Linux instead? I thought it would be novel and more amusing to see Fuchsia booting on a FPGA, vs Linux.
-
- July 18, 2026
-
🔗 IDA Plugin Updates IDA Plugin Updates on 2026-07-18 rss
IDA Plugin Updates on 2026-07-18
New Releases:
Activity:
- ida-sigmaker
- 8741e798: Merge pull request #85 from mahmoudimus/diff/ignore-superpowers-docs
- ca335484: docs: correct macOS user directory
- c5064833: Ignore local superpowers planning docs
- 7fd35fce: Merge pull request #84 from mahmoudimus/diff/release-v1.14.0-test-fix
- 774c332e: Keep speedups remediation test version-aware
- 6394378c: Prepare v1.14.0 release
- 406c3969: Merge pull request #83 from mahmoudimus/diff/xref-buffer-reuse
- cdc32ec0: Merge pull request #81 from mahmoudimus/diff/xref-lazy-startup
- e1950d05: Merge pull request #80 from mahmoudimus/diff/simd-extension-api-compa…
- c480160f: Reuse buffers across xref candidates
- 2e9d282e: Keep xref progress visible without pre-counting
- f34a4ebe: Make xref startup cancelable
- 78250748: Accept structurally compatible legacy speedups
- leaknet
- 5b9087f3: - added missing retail shaders (did NOT replace ANY beta shaders)
- Luc-Nhan
- re-sbz
- 49973e76: feat: add d3dx
- ida-sigmaker
-
🔗 mahmoudimus/ida-sigmaker v1.14.0 release
sigmaker.py - IDAPython standalone release
Release information
- Version : 1.14.0
- Source : https://github.com/mahmoudimus/ida-sigmaker
- Author : @mahmoudimus (Mahmoud Abdelkader)
What changed
Changed
- Direct Xref generation starts immediately and remains cancelable. SigMaker no longer walks every Xref to pre-count it before generating the first signature. One visible progress dialog stays active throughout the action, and cancellation is polled before enumeration and between candidates.
- One Xref action reuses its SIMD search buffer. Database-wide generation loads the searchable bytes once; segment-scoped generation reuses one buffer per containing segment. Candidate signatures still retain their existing uniqueness scope, ordering, cancellation behavior, and no-SIMD fallback. (#82)
Fixed
- Stale optional SIMD wheels no longer crash SigMaker. SigMaker validates the extension's callable API before using it. Incompatible wheels fall back to the existing Python implementation and show HCLI and IDA-Python update commands, while compatible installed wheels continue to enable SIMD automatically. (#79)
Installation
- Copy
sigmaker.pyto your IDA Pro plugins directory. - Restart IDA Pro.
- Use Ctrl+Alt+S to access the Signature Maker menu.
The release source archive is also installable through Hex-Rays HCLI.
License
See the repository for license information.
-
🔗 mahmoudimus/ida-sigmaker v1.13.0 release
sigmaker.py - IDAPython standalone release
Release information
- Version : 1.13.0
- Source : https://github.com/mahmoudimus/ida-sigmaker
- Author : @mahmoudimus (Mahmoud Abdelkader)
What changed
Added
- Python 3.14 wheels are included in the existing Linux, Windows, and macOS release matrix. Installing from PyPI on CPython 3.14 receives the same optional native SIMD search speedups as other supported Python versions.
- SigMaker releases are installable through Hex-Rays HCLI. The release source archive contains the HCLI manifest and plugin entry point, while HCLI installs the matching
sigmaker==1.13.0wheel automatically so managed installations receive the SIMD extension without a separatepip install.
Fixed
- PyPI builds now run only for published releases. Ordinary successful tests on
mainno longer launch an untagged wheel build, and the HCLI manifest version and exact PyPI dependency pin are synchronized fromsigmaker.__version__during release preparation.
Installation
- Copy
sigmaker.pyto your IDA Pro plugins directory. - Restart IDA Pro.
- Use Ctrl+Alt+S to access the Signature Maker menu.
The release source archive is also installable through Hex-Rays HCLI.
License
See the repository for license information.
-
🔗 HexRaysSA/plugin-repository commits sync repo: +1 release rss
sync repo: +1 release ## New releases - [SigMaker](https://github.com/mahmoudimus/ida-sigmaker): 1.14.0 -
🔗 r/reverseengineering Making a mod for Grand Prix Circuit (DSI / Accolade, 1988) rss
submitted by /u/alberto-m-dev
[link] [comments] -
🔗 Register Spill Joy & Curiosity #92 rss
This week was busy : we shipped a lot of things, recorded quite a few things, I worked on my Laracon talk, chatted with amazing programmers in different timezones, and our local public swimming pool celebrated its 50th birthday.
There wasn't a lot of reading this week, but a lot of thinking and wondering and questioning and aha! -ing. And I kinda can't shut up about it. So…
Some of you might remember my original description of this newsletter: "It's very informal; it's what I'd send you if you were to ask me what's on my mind this week in an email."
Now, here is what I'd say if you were to ask me what's on my mind this week, on a phone call:
-
Finally: Amp now has subscriptions. Yes, you read that right. Go there, get a subscription, pair it with your ChatGPT subscription so you get infinite GPT-5.6 tokens, and spawn those orbs.
-
We also shipped agent-to-agent communication in Amp: agents can now spawn other agents -- anywhere you have a Amp instance running or in an orb -- and then send messages and files to them. The number of "holy shit, it just …" messages this produced in our internal Slack is insane. To give you a taste: this morning I was hacking on something in our orb, but the agent in the orb lacked the permissions to upload an asset to our bucket. So the agent said: hey, start
amp --no-tuion your machine, where you have permissions, then I'll start a thread there, send it that asset, and ask it to upload the file. And… it fucking did it! Exactly like that! I startedamp --no-tui, I saw the new thread being created, I watched both of them, and saw how they sent messages to each other. Wild! -
Raising An Agent is back! Here's the first episode of the new season: The Local Dev Env is Dead. Or listen on Spotify.
-
I know what you're thinking: "Thorsten, your voice… I need more of it." Don't worry, I got you. Dominic and Morten invited me to be a guest on the go podcast and our episode came out this week: Agentic engineering is here to stay with Thorsten Ball.
-
Yes, I know, you want more. I got more: Evan Phoenix, Quinn and I shipping from orbs to a Miren cluster. There's coding in there, but also a lot of talking about coding and developer tools and the future of software and deployments. Evan has shipped and worked on more successful developer tooling than basically anyone else (Rubinius! Puma! Hashicorp!), so him sharing his thoughts was a treat.
-
You want more? Okay, okay. I recorded a short video with thoughts on this race we're in and the forces at play that I don't think most developers are aware of. Titles I considered: "man, it must suck to be a model house", "the tectonic forces shaping software", "once the compute is available, this will all change again", and "there won't be a rugpull"
-
Hardcore Kindle reader here, but this really, really made me want to buy physical books again, even though it should probably serve as a warning to not do that: "Mendel Uminer faced a crisis when his landlord objected to the 10,000 volumes in his New York studio apartment."
-
Fabien Sanglard: Don't you mean extinct? Lovely article. You need to read this for the Phil Tippett story alone.
-
Another amazing Fabien Sanglard article: Jurassic Park computers in excruciating detail. Jurassic Park is one of my favorite movies of all time. Easy top five. I love it. And I'm sure its depiction of computers had an influence on my life. But one thing I hadn't noticed until reading this article is that Oppenheimer portrait.
-
After 7 years in production, Scarf has reluctantly moved away from Haskell. I'm honestly not sure what to say about the skeptics any more. Maybe this: for decades now, some programmers were really lucky in that what they loved to do, what they saw as their craft and their passion, was valuable to businesses. Now that's not the case anymore. And if you don't adapt, then, well, you end up not being valuable to businesses anymore.
-
Holy moly: Measuring input latency on Linux: X11 vs Wayland, VRR, and DXVK. If you're in the mood to find out how deep a rabbit hole can go, then read this. Very fascinating. Also: I can't believe it's 2026 and we're still talking about X11 vs. Wayland. Wayland was released in 2008.
-
Linus Torvalds on the Linux kernel mailing list: "There are other questions around AI (like what the economy of it will actually look like in the end), but 'is it useful' is no longer one of those questions. Anybody who doubts that clearly hasn't actually used it. Yes, it can also be a somewhat painful tool, both for maintainer
workloads and just from a 'it keeps finding embarrassing bugs' standpoint. But the solution is not to put your head in the sand and sing 'La La La, I can't hear you' at the top of your voice like some people seem to do."
-
There is this whole debate going on around whether you should still read the code agents produce. antirez now chimed in too: Control the ideas, not the code. He writes: "But if I had my hands free, you know what I would do, instead? Use all the time that the review is taking me to do more QA, to think at the next optimization idea and apply it, and to use LLMs to write a DESIGN.md file where each data structure is described in human language, with the ideas it contains, the implementation tricks, the design. That, in the future, is going to be much more useful." I think he's onto something here. I personally do spot checks of code and mostly don't care about single functions anymore, except when the blast radius would be huge or when it's super critical. But it ties back to what antirez writes: I want to control the ideas, not the code.
-
And here's Sean Goedecke: In defense of not understanding your codebase. As always, very good post. I agree. People who say "you have to review every line" make me think that either they haven't worked with (a) a model that was released in 2026 or (b) other people in a multi-team engineering org.
-
Justin Jackson on the value of software in a Fable world: "Generally, the economy rewards difficulty and rarity. If something is hard to do or make, you get to charge more. So if AI reduces the time it takes to build software, what happens to the value of software?" See also my thoughts on software & oil here.
-
What working at Google feels like: "Have you ever changed a flat tire on the shoulder of the freeway? When you get out of your car and stand by the side of the road, you realize you are in a world scaled for 30,000-pound tractor trailers, not for human beings. The white stripes between the lanes that usually flash by like little punctuation marks are actually ten feet long and thirty feet apart. Even the road signs look absurdly out of scale, like those textbook-sized large-print editions of bestsellers the library stocks for elderly people. And then one of those tractor trailers hurtles by at seventy miles per hour, inches from your fragile body, and it feels like God himself is screaming in your face. That's exactly what working at Google feels like at first. You realize very quickly you are inhabiting an environment that was not designed for humans to experience with their naked minds. Even the smallest problems--which customers are we allowed to send this email to? What countries will have special legal requirements around the deployment of this tiny feature?--are so mind-numbingly complex that they make you want to shrink down into a fetal ball on the side of the freeway and just let the traffic shriek past."
-
"I had a french professor who once said if you just did something like going to the supermarket and experienced it fully without the goggles of habit and categories you would go crazy with pure sense and joy. I think about it all the time. In a way this is all for him." And I had a french teacher once who said that bean soup is the poor man's piano. I think about him every time I eat beans. So there's that.
If you liked my phone call, you should subscribe:
-
-
🔗 r/reverseengineering Automated reverse engineering of Android apps rss
submitted by /u/No_Distribution_9182
[link] [comments] -
🔗 smol-machines/smolvm smolvm v1.6.11 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
- Route fork clones to workers by an explicit connection preamble so a golden's reconnect can never be misrouted by @BinSquare in #663
- Never LRU-evict the reference-shared pack store by @BinSquare in #666
- Fail an image machine's start when the image pull fails by @BinSquare in #669
- Flatten from-vm packs to a single layer and share the pack export, workload launch, and machine-create env handling in the lib by @BinSquare in #668
Full Changelog :
v1.6.0...v1.6.11 -
🔗 smol-machines/smolvm smolvm v1.6.10 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
- Route fork clones to workers by an explicit connection preamble so a golden's reconnect can never be misrouted by @BinSquare in #663
- Never LRU-evict the reference-shared pack store by @BinSquare in #666
- Fail an image machine's start when the image pull fails by @BinSquare in #669
Full Changelog :
v1.6.0...v1.6.10 -
🔗 New Music Releases Phish - 2026-07-18: Merriweather Post Pavilion, Columbia, MD, USA rss
Phish - a new release is available:
- 2026-07-18: 2026-07-18: Merriweather Post Pavilion, Columbia, MD, USA (Live)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
🔗 Ampcode News Subscriptions, At Last rss
Today we're launching Amp Subscriptions in Beta. You can now subscribe monthly to Amp and explore the frontier with us, with cheaper and more predictable pricing:
If you subscribe on or before Sunday, July 19[^1], you'll get bonus 2x usage for orbs and agents in the first month.
Amp Is Not (Necessarily) Expensive Anymore
Amp just got a lot cheaper for many of you, especially if you link your ChatGPT subscription.
We know you've been asking for this for a long time. Until now, Amp's pricing model has been pay-as-you-go for tokens at API prices, no subscription. Compared to other agents on monthly subscriptions, this made Amp more expensive—"the Apple or Porsche of agentic coding tools", to put it nicely.
But everything is changing. Great tokens are reasonably priced. Good-enough tokens are downright cheap (like GLM-5.2 in our new low mode). Being on the frontier no longer requires using the most expensive models.
You can still pay-as-you-go in Amp; monthly subscriptions aren't required.
And, to be clear, to use Amp beyond your subscription's included monthly limits, you need to link your ChatGPT subscription or add paid credits.
The Frontier Runs in Orbs, Not Your Laptop
The frontier is now about agents working for you in parallel, without your supervision, on remote machines. We call these "orbs", and Amp's monthly subscriptions include so much orbs usage you don't need to worry about counting the minutes.
We want you to finally be able to (and want to) kill your singleton local dev environment.
We want you to make your agents go further to prove to you their work is correct, with videos and screenshots and local dev portals, and much less manual code review.
Remember last year, when other agents asked you to approve the agent's work step-by-step, edit-by-edit? Amp users realized before anyone else that was dumb and slow, and Amp never did that.
This shift feels similar to us. It's inevitable, and we want it to go as fast as possible. We hope this subscription makes it easy for you to explore this new frontier with us.
-
- July 17, 2026
-
🔗 smol-machines/smolvm smolvm v1.6.9 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
- Route fork clones to workers by an explicit connection preamble so a golden's reconnect can never be misrouted by @BinSquare in #663
- Never LRU-evict the reference-shared pack store by @BinSquare in #666
Full Changelog :
v1.6.0...v1.6.9 -
🔗 r/reverseengineering [Crackme x64] Modular Vault — 6-floor path-dependent opcode encryption (debugger welcome) rss
submitted by /u/AngryIgor
[link] [comments] -
🔗 @binaryninja@infosec.exchange Going live! Join us to learn about everything that's new in Sidekick 26: mastodon
Going live! Join us to learn about everything that's new in Sidekick 26: https://www.youtube.com/live/S5hAxyopaQk
-
🔗 HexRaysSA/plugin-repository commits sync repo: +1 plugin, +5 releases, ~1 changed rss
sync repo: +1 plugin, +5 releases, ~1 changed ## New plugins - [SigMaker](https://github.com/mahmoudimus/ida-sigmaker) (1.13.0) ## New releases - [IDASQL](https://github.com/allthingsida/idasql): 0.0.18 - [hrtng](https://github.com/kasperskylab/hrtng): 3.9.108 - [ida-rpc](https://github.com/bkerler/ida_rpc): 0.1.8, 0.1.7 ## Changes - [IDASQL](https://github.com/allthingsida/idasql): - 0.0.8: archive contents changed, download URL changed -
🔗 @binaryninja@infosec.exchange Our Firmware Reverse Engineering class is just over a week away! Join us to mastodon
Our Firmware Reverse Engineering class is just over a week away! Join us to learn what's involved in analyzing bare-metal software and how to overcome those challenges! https://shop.binary.ninja/products/fre- july-26
-
🔗 r/reverseengineering Maintaining the old code of the man who wrote "How To Write Unmaintainable Code" rss
submitted by /u/Odd-Flamingo-6211
[link] [comments] -
🔗 smol-machines/smolvm smolvm v1.6.8 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
- Gate engine PRs on compiling the smol CLI and script the release cut by @BinSquare in #661
- Export the pack sidecar, not the executable stub, when a machine is exported by @BinSquare in #662
Full Changelog :
v1.6.0...v1.6.8 -
🔗 smol-machines/smolvm smolvm v1.6.7 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
- Fix silently dropped CUDA work after a fork-clone reconnect, and rebuild captured graphs in clone workers by @BinSquare in #659
Full Changelog :
v1.6.0...v1.6.7 -
🔗 smol-machines/smolvm smolvm v1.6.6 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
- Run the pack-from-vm helper as the source VM's isolated uid so it can read the source disks by @BinSquare in #658
Full Changelog :
v1.6.0...v1.6.6 -
🔗 smol-machines/smolvm smolvm v1.6.5 release
What's Changed
- Bump the Nix flake to smolvm 1.6.0 by @BinSquare in #625
- Fix the pacman repo build so it packages both architectures by @BinSquare in #626
- Make VM boot failures diagnosable instead of opaque by @BinSquare in #627
- docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in #621
- Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in #628
- CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in #629
- Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in #630
- feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in #631
- Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in #634
- Warn at launch when CUDA remoting is requested on a host with no usable GPU by @BinSquare in #635
- CUDA Path 3: address-preserving per-clone-process fork isolation by @BinSquare in #633
- Bump the workspace to 1.6.1 by @BinSquare in #641
- Group container tasks under the sandbox shim (fixes containers on containerd 2.2+) by @BinSquare in #643
- Rebuild the linux libkrun.so with a glibc 2.35 floor and gate it in CI by @BinSquare in #644
- CUDA Path 3 follow-ups: fork crash fixes, zero-config forkable machines, remote (TCP) clone workers by @BinSquare in #648
- Route smolmachine pack references through the host-side pack flow instead of the in-guest OCI puller by @BinSquare in #647
- Stamp pushed smolmachine manifests with the OCI 1.1 artifactType and standard annotations by @BinSquare in #649
- CUDA fork: release a torn-down golden's VRAM (close leaked export fds) by @BinSquare in #650
- CUDA fork: fail fast when a clone's worker dies or its lineage is gone by @BinSquare in #652
- Rename the CUDA fork env vars to describe behavior by @BinSquare in #653
- release: bundle CUDA shims + smolvm-cuda-run in agent-rootfs by @NickyHeC in #601
- Stream the pack overlay export to disk by @BinSquare in #654
- CUDA image machines: run the create workload, and fail fast when no GPU host answers by @BinSquare in #655
- feat: add --expose-socket and --mount-socket for forwarding arbitrary unix sockets by @BinSquare in #656
Full Changelog :
v1.6.0...v1.6.5 -
🔗 Julia Evans Learning a few things about running SQLite rss
Hello! I've been working on a Django site recently, and I decided to use SQLite as the database. When I was getting started with using SQLite as database for a website I read a bunch of blog posts about how it is totally fine to use SQLite in production for a small site and I think it is totally fine, but what I did not fully appreciate is that SQLite is still a database, databases are complicated, and I do not know a lot about operating databases.
So here are a couple of small things I've been learning about running SQLite. This is the 4th website I've used SQLite for, and I think this one is harder because with the power of the Django ORM I've been making the database do more work than I was previously without Django.
I started by turning on WAL mode like all the blog posts said to do and hoping for the best.
ANALYZEis apparently importantToday I was running a query (using SQLite's FTS5 for full-text search) on a table with 4000 rows and it took 5 seconds. That seemed wrong to me: computers are fast!
It turned out that what I needed to do was to run
ANALYZE! Immediately the problem query went from taking 5 seconds to like 0.05 seconds (or some other number small enough that I didn't care to investigate further). I still don't know exactly what went wrong in the query plan, but my best guess is that it was some sort of accidentally quadratic thing.ANALYZEgenerates "statistics" (I guess about the number of rows in each table? and presumably other things?) so that the query planner can make better choices.Maybe one day I'll learn to read a query plan.
cleaning up the database is tricky
Occasionally I've run into situations where I accidentally put a bunch of rows in my database that I don't want to be there (for example completed tasks from django-tasks-db), and I want to clean them up.
What's happened to me a few times in this case is:
- I run some kind of command to clean up the rows
- The command takes more than 5 seconds, since there are a lot of rows (though I still have some questions about why these DELETE statements are so slow honestly, maybe there's a bunch of Python code running inside a transaction, I'm not sure)
- One of the other workers tries to write the database while this is happening, and times out after 5 seconds (I have a timeout of 5 seconds set)
- The worker crashes because it couldn't write to the database and the VM shuts down
My approach so far has been to just do these cleanup operations in small batches so that I don't need to do database queries that take more than 5 seconds to run. This whole experience has given me more of an appreciation for why someone might want to use a "real" database like Postgres which can have more than one writer at the same time though.
Maybe in the future I'll just take the site down for scheduled maintenance instead when I need to do this kind of thing, but I haven't figured out a workflow for that yet.
no notes on performance of ORM queries yet
So far I've been using Django's ORM to make any query I want without paying any attention at all to query performance and it's mostly been going okay other than the
ANALYZEthing. The database is pretty small (maybe 10000 rows?) and I expect it to stay pretty small forever, so I'm hoping that that plan will keep working.backing up sqlite
I've done SQLite backups a couple of ways. I don't think I've actually tested restoring from my backups but I do usually try to monitor them with a dead man's switch.
way 1: restic
sqlite3 /data/calendar.db "VACUUM INTO '/tmp/calendar.sqlite'" gzip /tmp/calendar.sqlite # Upload backup to S3 # Sometimes the backup gets OOM killed and so it stays locked, do an unlock restic -r s3://s3.amazonaws.com/some_bucket/ unlock # Do the backup & prune old backups restic -r s3://s3.amazonaws.com/some_bucket/ backup /tmp/calendar.sqlite.gz restic -r s3://s3.amazonaws.com/some_bucket/ snapshots restic -r s3://s3.amazonaws.com/some_bucket/ forget -l 1 -H 6 -d 2 -w 2 -m 2 -y 2 restic -r s3://s3.amazonaws.com/some_bucket/ pruneway 2:litestream
I started trying out Litestream recently because I felt like doing incremental backups might be more efficient: my restic backups were sometimes getting OOM killed, and I was a bit tired of it. Basically I just write a config file and run:
litestream replicate -config litestream.ymlI set
retention: 400hin my config file in an attempt to retain some amount of history of the database but I have no idea if it works.I've been backing up to AWS, which is always a pain because it's annoying to navigate the AWS console to generate credentials. Maybe one day I'll move away to some other S3-compatible alternative.
you can use multiple databases
My current project only has one database, but one trick I used with Mess with DNS was to split the tables into three separate database files because I didn't actually need my tables to be in the same db. I think it was helpful.
Mess with DNS has been running on SQLite for 4 years now (since 2022) and it's been great, I think the move from Postgres was a great choice for that project.
that's all!
It's always kind of fun to see how long it takes me to learn sort of basic things about the technologies I'm using. I think I used SQLite for a web project for the first time in 2022 and I only learned that
ANALYZEexisted today! I imagine in a year or two I'll be learning about some other very basic feature.some references
Some blog posts I've looked at, other than the official docs:
-
🔗 New Music Releases Phish - 2026-07-17: Coastal Credit Union Music Park at Walnut Creek, Raleigh, NC, USA rss
Phish - a new release is available:
- 2026-07-17: 2026-07-17: Coastal Credit Union Music Park at Walnut Creek, Raleigh, NC, USA (Live)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
🔗 New Music Releases Tiësto - Echo Sax Finale rss
Tiësto - a new release is available:
- 2026-07-17: Echo Sax Finale (Single)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
🔗 New Music Releases Periphery - The Marigold Nocturne rss
Periphery - a new release is available:
- 2026-07-17: The Marigold Nocturne (Single)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
🔗 New Music Releases Haken - in a fever dream rss
Haken - a new release is available:
- 2026-07-17: in a fever dream (EP)
Amazon: Canada | Deutschland | France | United Kingdom | United States
Visit muspy for more information.
-
🔗 Ampcode News From Agent to Agent rss
You can now ask your agents in Amp to spawn other agents. In orbs, your local machine [^1], or on any other machine.
They can send messages and files to each other, too.

You can have agents in orbs work on side quests while you continue your work:
Spin up an orb thread with what you know about this unrelated bug, ask it to fix it, then keep working here.Or fan out work:
Run four low-mode threads in parallel to test this flow in Chrome at four screen sizes and report back with screenshots.Find and continue old work by pulling in the important files:
Pull the files from my abandoned prototype thread into this workspace and integrate the useful parts into our current approach.Offload work to another machine:
Start a new thread on cloud-dev-box and upload this test matrix we created. Ask it to run through each row at least 10 times.Coordinate cross-project work:
Spawn an agent in the docs project, send it what it needs to document this API change, and ask it to report back.Agents running locally, or in orbs, or anywhere else, and sending messages and files to each other? It's a whole new world.