🏡


  1. July 20, 2026
    1. 🔗 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

    2. 🔗 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 --minimal install, 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 annotate now 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.md failed with File type not supported: .md, even though .md is 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 typing notes.md cannot 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.

      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 but CLI (0.21.0 or newer). --gitbutler forces the provider and --git remains 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.

      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.

      Port ranges

      PLANNOTATOR_PORT now accepts an inclusive range like 19432-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_plan call 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.

      Pi: faster startup and honest error reporting

      The extension added about two seconds to every pi launch 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.

      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-remote could 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.

      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_FILES budget, so a stray symlink into a huge unrelated tree cannot stall startup.

      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 | bash
      

      Windows:

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

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

      OpenCode: Clear cache and restart:

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

      Then in opencode.json:

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

      Pi: Install or update the extension:

      pi install npm:@plannotator/pi-extension
      

      What's Changed

      v0.24.1

      • fix(annotate): resolve explicit ../ paths that escape the project root by @backnotprop, closing #1085

      v0.24.0

      New Contributors

      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)

    3. 🔗 r/reverseengineering X3DH-lite + Double Ratchet + sender-keys E2EE messenger protocol (Kotlin) — internal audit history included, no independent review yet rss
    4. 🔗 @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

      https://youtube.com/shorts/lOJKwPwhdOY

    5. 🔗 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
      
    6. 🔗 HexRaysSA/plugin-repository commits add 2025 plugin contest winners rss
      add 2025 plugin contest winners
      
    7. 🔗 r/reverseengineering ReChan brings Jackie Chan Stuntmaster to PC as a native reimplementation rss
    8. 🔗 19h/chernobog v6.0.0 release

      Superseded by 6.0.1.

      Full Changelog : v5.3.0...v6.0.0

    9. 🔗 r/reverseengineering repel_paw3950_driver_re rss
    10. 🔗 r/reverseengineering Reversing GetOfflineDeviceUniqueID: How Windows Derives Its Offline Device ID rss
    11. 🔗 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
    12. 🔗 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_scroll dispatch for scrolling algorithm (#13955) by @erstarr
      • algo/scrolling: add a "fit expand" layout message (#14761) by @LichtMarv
      • algo/scrolling: add new fit_into_view layout 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_hdr window 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:

      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:layout description (#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

    13. 🔗 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]

    14. 🔗 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 --minimal install, 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/diffs after 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.

      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 but CLI (0.21.0 or newer). --gitbutler forces the provider and --git remains 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.

      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.

      Port ranges

      PLANNOTATOR_PORT now accepts an inclusive range like 19432-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_plan call 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.

      Pi: faster startup and honest error reporting

      The extension added about two seconds to every pi launch 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.

      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-remote could 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.

      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_FILES budget, so a stray symlink into a huge unrelated tree cannot stall startup.

      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 | bash
      

      Windows:

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

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

      OpenCode: Clear cache and restart:

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

      Then in opencode.json:

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

      Pi: Install or update the extension:

      pi install npm:@plannotator/pi-extension
      

      What's Changed

      New Contributors

      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:

      Full Changelog : v0.23.1...v0.24.0

    15. 🔗 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
      
    16. 🔗 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 A or B. We initialize the union as A, take a pointer to its internals, overwrite the original with B, and then use the pointer. The pointer is still typed as A, but the bytes it points to now belong to B: 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?

    17. 🔗 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.

    18. 🔗 Ampcode News Meet Puck rss

      Say Hello to Puck, your new assistant in Amp:

      Puck 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.

    19. 🔗 Ampcode News Amp Is Now In Slack rss

      You can now summon Amp in Slack.

      Connect your workspace from Amp's settings, then mention @Amp in 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:

      Fix a User Bug Report

      A user reported a bug with a screenshot. Amp read the screenshot, reproduced the issue, and posted back a fix.

      Using Amp in Slack to investigate and fix a user bug report

      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.

      Using Amp in Slack to root-cause and resolve a production incident
      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.

      Puck notifying a teammate in Slack that an issue has been resolved

      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.

      Using Amp to search Slack messages for context

      Install the Slack Integration

      1. 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.)
      2. Individual users should link their Amp user directly with their Slack user in Personal Settings.
      3. Mention @Amp in any Slack channel or thread.

      Read the Amp manual for more details.

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

      IDA Plugin Updates on 2026-07-19

      New Releases:

      Activity:

      • flakida-9.4
        • 5e69153b: feat: initialize flakida-9.4
        • 669a71a5: feat: add plugins - findcrypt, wpegpt, dereferencing
      • IDA-NO-MCP
        • 21fd3bb1: Merge pull request #25 from AWDSCAN/main
        • ed22a672: Update .gitignore to modify ignored files
        • 1c3aae66: 修复bug、增加测试性AI导航功能,rust构建百兆大文件分析cli工具
        • 7cc1aefe: 修复python版本存在的部分问题、优化python版本的提取速度,同时增加rust重构的可执行文件,解决百兆以上大文件无法分析导出的问题…
      • ida-pro-mcp
        • 120ae7ab: Fix Kimi Code installation instructions
        • d6c168b5: Merge pull request #481 from s0kil/kimi-code-support
      • ida-taskr
        • d399f4a2: build: publish IDA Taskr through HCLI (#6)
      • idavator
        • e79b7f6a: build: publish Idavator through HCLI (#1)
    2. 🔗 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.

    3. 🔗 @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/

    4. 🔗 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

    5. 🔗 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
    6. 🔗 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

    7. 🔗 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.

  3. July 18, 2026
    1. 🔗 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
        • 299ea389: feat(history): reuse empty active tab when opening a chat
        • 7e7c27c4: Merge branch 'worktree-chat-history-on-demand': chat history on-demand
        • d37adc23: feat(history): chat history on-demand
      • re-sbz
    2. 🔗 mahmoudimus/ida-sigmaker v1.14.0 release

      sigmaker.py - IDAPython standalone release

      Release information

      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

      1. Copy sigmaker.py to your IDA Pro plugins directory.
      2. Restart IDA Pro.
      3. 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.

    3. 🔗 mahmoudimus/ida-sigmaker v1.13.0 release

      sigmaker.py - IDAPython standalone release

      Release information

      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.0 wheel automatically so managed installations receive the SIMD extension without a separate pip install.

      Fixed

      • PyPI builds now run only for published releases. Ordinary successful tests on main no longer launch an untagged wheel build, and the HCLI manifest version and exact PyPI dependency pin are synchronized from sigmaker.__version__ during release preparation.

      Installation

      1. Copy sigmaker.py to your IDA Pro plugins directory.
      2. Restart IDA Pro.
      3. 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.

    4. 🔗 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
      
    5. 🔗 r/reverseengineering Making a mod for Grand Prix Circuit (DSI / Accolade, 1988) rss
    6. 🔗 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-tui on 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 started amp --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.

      • John Carmack is smart.

      • 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:

    7. 🔗 r/reverseengineering Automated reverse engineering of Android apps rss
    8. 🔗 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

    9. 🔗 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

    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.

    11. 🔗 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:

      Subscription FAQs

      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.

  4. July 17, 2026
    1. 🔗 IDA Plugin Updates IDA Plugin Updates on 2026-07-17 rss

      IDA Plugin Updates on 2026-07-17

      New Releases:

      Activity:

    2. 🔗 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

    3. 🔗 r/reverseengineering [Crackme x64] Modular Vault — 6-floor path-dependent opcode encryption (debugger welcome) rss
    4. 🔗 @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

    5. 🔗 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
      
    6. 🔗 @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

      https://youtube.com/shorts/486zHriqGMA

    7. 🔗 r/reverseengineering Maintaining the old code of the man who wrote "How To Write Unmaintainable Code" rss
    8. 🔗 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

    9. 🔗 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

    10. 🔗 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

    11. 🔗 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

    12. 🔗 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.

      ANALYZE is apparently important

      Today 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.

      ANALYZE generates "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:

      1. I run some kind of command to clean up the rows
      2. 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)
      3. 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)
      4. 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 ANALYZE thing. 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/ prune
      

      way 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.yml
      

      I set retention: 400h in 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 ANALYZE existed 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:

    13. 🔗 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.

    14. 🔗 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.

    15. 🔗 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.

    16. 🔗 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.

    17. 🔗 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.

      An Amp agent creating a new thread in an orb and uploading the changed news post

      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.