Lotu RadarAbout · RSS

Latest News Archive - Page 635

Notable Blogs · Simon Willison

micropython-wasm 0.1a2

Release: micropython-wasm 0.1a2 I added a CLI to micropython-wasm ( issue #7 ), inspired by the first draft of the blog entry when I realized it would be a great way to illustrate the Try it yourself section. Tags: python , sandboxing , webassembly , micropython

Cybersecurity · The Hacker News

Cisco Catalyst SD-WAN Manager CVE-2026-20245 Flaw Actively Exploited – No Patch Available

The Hacker News published: Cisco Catalyst SD-WAN Manager CVE-2026-20245 Flaw Actively Exploited – No Patch Available

Notable Blogs · Simon Willison

Running Python code in a sandbox with MicroPython and WASM

I've been experimenting with different approaches to running code in a sandbox for several years now, but my latest attempt feels like it might finally have all of the characteristics I've been looking for. I've released it as an alpha package called micropython-wasm , and I'm using it for a code execution sandbox plugin for Datasette Agent called datasette-agent-micropython . Why do I want a sandbox? What I want from a sandbox WebAssembly looks really promising here MicroPython in WebAssembly Building the first version Try it yourself Should you trust my vibe-coded sandbox? Why do I want a sandbox? My key open source projects - Datasette , LLM , even sqlite-utils - all support plugins. I absolutely love plugins as a mechanism for extending software. A carefully designed plugin system reduces the risk involved in trying new things to almost nothing - even the wildest ideas won't leave a lasting influence on the core application itself. My software can grow a new feature overnight and I don't even have to review a pull request! There's one major drawback: my plugin systems all use Python and Pluggy , and plugin code executes with full privileges within my applications. A buggy or malicious plugin could break everything or leak private data. I'd love to be able to run plugin-style code in an environment where it is unable to read unapproved files, connect to a network, or generally operate in a way that's risky or harmful to the rest of the application or the user's computer. My interest covers more than just plugins. For Datasette in particular there are many features I'd like to support where arbitrary code execution would be useful. I've already experimented with this for Datasette Enrichments , where code can be used to transform values stored in a table. I'd love to build a mechanism where you can run code on a schedule that fetches JSON from an approved location, runs a tiny bit of code to reformat it into a list of dictionaries, then inserts those as rows in a SQLite database table. What I want from a sandbox My goal is to execute code safely within my own Python applications. Here's what I need: Dependencies that cleanly install from PyPI , including binary wheels across multiple platforms if necessary. I don't want people using my software to have to take any extra steps beyond directly installing my Python package. Executed code must be subject to both memory and CPU limits. I don't want while True: s += "longer string" to crash my application or the user's computer. File access must be strictly controlled . Either no filesystem access at all or I get to define exactly which files can be read and which files can be written to. Network access is controlled as well . Sandboxed code should not be able to communicate with anything without going through a layer I fully control. Support for interaction with host functions . A sandbox isn't much use if I can't carefully expose selected platform features to the code that it's running. It has to be robust, supported, and clearly documented . I've lost count of the number of sandbox projects I've seen in repos with warnings that they aren't actively maintained! WebAssembly looks really promising here Web browsers operate in the most hostile environment imaginable when it comes to malicious code. Their job is to download and execute untrusted code from the web on almost every page load. Given this, JavaScript engines should be excellent candidates for sandboxes. Sadly those engines are also extremely complicated, and are not designed for easy embedding in other projects. Most of the V8-in-Python projects I've seen are infrequently maintained and come with warnings not to use them with completely untrusted code. WebAssembly is a much better candidate. It was designed from the start to support all of the characteristics I care about and has been tested in browsers for nearly a decade. The wasmtime Python library brings WASM to Python, is actively maintained, and has binary wheels. MicroPython in WebAssembly WebAssembly engines like wasmtime run WebAssembly binaries. Some programming languages like Rust are easy to compile directly to WebAssembly. Dynamic languages like JavaScript and Python are harder - they support language primitives like eval() , which means they need a full interpreter available at runtime. To run Python we need a full Python interpreter compiled to WebAssembly, wired up in a way that makes it easy to feed it code, hook up host functions and access the results. Pyodide offers an outstanding package for running Python using WebAssembly in the browser, but using Pyodide in server-side Python isn't supported. The most recent advice I could find was from October 2024 stating "Pyodide is built by the Emscripten toolchain and can only run in a browser or Node.js". The other day I decided to take a look at MicroPython as an option for this. The MicroPython site says: MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments. WebAssembly sure feels like a constrained environment to me! Building the first version I had GPT-5.5 Pro do some research for me , which turned up this PR against MicroPython by Yamamoto Takahashi titled "Experimental WASI support for ports/unix". It then produced this research.md document , so I let Codex Desktop and GPT-5.5 high loose on it to see what would happen: read the research.md document and build this. You will probably need to write a script that compiles a custom WASM version of MicroPython as part of this project - fetch the MicroPython code to a /tmp directory for this as part of that script. It worked. I now had a prototype Python library that could execute Python code inside a WebAssembly sandbox! The trickiest piece to solve was persistent interpreter state. The WASM build we are using here exposes a single entry point which starts the interpreter, runs the code and then stops the interpreter at the end. This works fine for one-off scripts, but for Datasette Agent I want variables and functions to stay resident in memory so I can reuse them across multiple code execution calls. A neat thing about working with coding agents is that you can get from an idea to a proof of concept quickly. I prompted: For keeping variables resident: what if we ran code inside micropython itself which called a host function get_next_python_code() and then passed that to eval() - and that host function blocked until new code was available, maybe by running in a thread with a queue? Could that or a similar idea help here? After some iteration we got to a version of this that works! In Python code you can now do this: from micropython_wasm import MicroPythonSession with MicroPythonSession () as session : print ( session . run ( "x = 10 \n print(x)" ). stdout ) print ( session . run ( "x += 5 \n print(x)" ). stdout ) print ( session . run ( "print(x * 2)" ). stdout ) Under the hood this starts a thread, sets up a request queue and then sends messages to that queue for the session.run() command, each time waiting on a reply queue for the result of that execution. Inside WASM the MicroPython interpreter blocks waiting for a __session_next__() host function to return the next line of code, which it runs eval() on before calling __session_result__({"id": request_id, "ok": True}) when each block has been successfully executed. The other piece of complexity was supporting host functions, so my Python library could selectively expose functions that could then be called by code running in MicroPython. Codex ended up solving this with 78 lines of C , which ends up compiled into the 362KB WebAssembly blob I'm distributing with the package. I am by no means a C programmer, but I've read the C and had two different models explain it to me (here's Claude's explanation ) and I've subjected it to a barrage of tests. The great thing about working with WebAssembly is that if the C turns out to be fatally flawed the worst that can happen is the WebAssembly execution will fail with an exception. I can live with that risk. Memory limits are directly supported by wasmtime. CPU limits are a little harder: wasmtime offers a "fuel" concept to limit how many operations a WebAssembly call can execute, and that's the correct fit for this problem, but the units are hard to reason about. I'm experimenting with a 20 million default "fuel" setting now but I'm not confident that it's the most appropriate value. Try it yourself The micropython-wasm alpha is now live on PyPI . You can try it from your own Python code as described in the README . I've also added a simple CLI mode in version 0.1a2 which means you can try it using uvx without first installing it like so: uvx micropython-wasm -c ' print("Hello world") ' # To see it run out of fuel: uvx micropython-wasm -c ' s = ""; while True: s += "longer" ' # Outputs: micropython-wasm: guest exited with code 1 You can also try it in Datasette Agent like this: uvx llm keys set openai # Paste in an OpenAI key, then: uvx --with datasette-agent \ --with datasette-agent-micropython \ --prerelease allow \ datasette --internal internal.db \ -s plugins.datasette-llm.default_model gpt-5.5 \ --root -o Then navigate to http://127.0.0.1:8001/-/agent and run the prompt: show me some micropython You can try a live demo of that plugin running in Datasette Agent by signing into agent.datasette.io with your GitHub account. Should you trust my vibe-coded sandbox? Having complained about immature, loosely-maintained sandboxing libraries, it's deeply ironic that I've now built my own! I deliberately slapped an alpha release version on it, and I'm not ready to recommend it to anyone who isn't willing to take a significant risk. I've put it through enough testing that I'm OK using it myself. I've shipped my first plugin that uses it, datasette-agent-micropython . I've also locked GPT-5.5 xhigh in that Datasette Agent plugin and challenged it to break out of the sandbox and so far it has not managed to. I'm hoping this implementation can convince some companies with professional security teams and high-stakes problems to commit to using Python in WebAssembly as a sandboxing approach and open source their own solutions. Tags: python , sandboxing , ai , datasette , webassembly , generative-ai , llms , ai-assisted-programming , codex , datasette-agent , micropython

Products & Consumer Tech · Product Hunt

Incorruptible by Eric Ries

Why good companies go bad and how great companies stay great Discussion | Link

Developers & Open Source · ollama/ollama Releases

v0.30.7-rc0

<p>launch: use native Windows Hermes config path (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4600810652" data-permission-text="Title is private" data-url="https://github.com/ollama/ollama/issues/16558" data-hovercard-type="pull_request" data-hovercard-url="/ollama/ollama/pull/16558/hovercard" href="https://github.com/ollama/ollama/pull/16558">#16558</a>)</p>

Products & Consumer Tech · Product Hunt

TrakMac

Voice-first macro tracking for fitness enthusiasts Discussion | Link

Developers & Open Source · vercel/next.js Releases

v16.3.0-canary.42

<h3>Misc Changes</h3> <ul> <li>[turbopack] Treat local <code>const</code> assignments as side-effect free: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4561575439" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94294" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94294/hovercard" href="https://github.com/vercel/next.js/pull/94294">#94294</a></li> <li>[turbopack] Remove worker helpers from the default runtime: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4577542433" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94372" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94372/hovercard" href="https://github.com/vercel/next.js/pull/94372">#94372</a></li> <li>Extract App Shell from static prefetches: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4515050698" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94095" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94095/hovercard" href="https://github.com/vercel/next.js/pull/94095">#94095</a></li> <li>docs: correct wording and casing in turbopack tracing guide: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4594474727" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94469" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94469/hovercard" href="https://github.com/vercel/next.js/pull/94469">#94469</a></li> <li>Turbopack: refactor ServerActionManifestAsset to be lazy: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4578350327" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94377" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94377/hovercard" href="https://github.com/vercel/next.js/pull/94377">#94377</a></li> <li>docs: typos and errors outside docs, error, examples folders: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4595455245" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94472" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94472/hovercard" href="https://github.com/vercel/next.js/pull/94472">#94472</a></li> <li>Update vendored lodash to 4.18.1: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4596437795" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94473" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94473/hovercard" href="https://github.com/vercel/next.js/pull/94473">#94473</a></li> <li>chore: reword cacheComponents jsDoc to lead with partial prerendering: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4596482208" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94474" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94474/hovercard" href="https://github.com/vercel/next.js/pull/94474">#94474</a></li> <li>Upgrade React from <code>f0dfee38-20260529</code> to <code>43bcbf80-20260603</code>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4583251828" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94440" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94440/hovercard" href="https://github.com/vercel/next.js/pull/94440">#94440</a></li> <li>Turbopack: Perform issue filtering without turbo-task functions: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4457977702" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/93885" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/93885/hovercard" href="https://github.com/vercel/next.js/pull/93885">#93885</a></li> <li>Keep Instant DevTools locked when opening error overlay: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4573398581" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94357" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94357/hovercard" href="https://github.com/vercel/next.js/pull/94357">#94357</a></li> <li>Revert "ci: run Linux Playwright jobs in prebuilt Microsoft container (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4429567948" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/93794" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/93794/hovercard" href="https://github.com/vercel/next.js/pull/93794">#93794</a>)": <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4575715145" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94366" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94366/hovercard" href="https://github.com/vercel/next.js/pull/94366">#94366</a></li> <li>fix(deps): bump @vercel/nft@1.10.2: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4487512530" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/93979" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/93979/hovercard" href="https://github.com/vercel/next.js/pull/93979">#93979</a></li> <li>Simplify turbo-tasks-backend: collapse single-impl traits and remove redundant Arc layers: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4488639704" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/93983" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/93983/hovercard" href="https://github.com/vercel/next.js/pull/93983">#93983</a></li> <li>Turbopack: refactor to use <code>get_ecma_transform_rule</code>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4598700631" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94485" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94485/hovercard" href="https://github.com/vercel/next.js/pull/94485">#94485</a></li> <li>[ci] Switch release-next-rspack to a more explicit environment name: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4598358193" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94480" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94480/hovercard" href="https://github.com/vercel/next.js/pull/94480">#94480</a></li> <li>[ci] Set <code>persist-credentials: false</code> for all GH actions: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4544760058" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94214" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94214/hovercard" href="https://github.com/vercel/next.js/pull/94214">#94214</a></li> <li>Turbopack: fixup cache handler tracing: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4597957247" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94477" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94477/hovercard" href="https://github.com/vercel/next.js/pull/94477">#94477</a></li> <li>[turbopack] Remove turbotask functions from <code>trait ResolveOrigin</code>: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4566988940" data-permission-text="Title is private" data-url="https://github.com/vercel/next.js/issues/94324" data-hovercard-type="pull_request" data-hovercard-url="/vercel/next.js/pull/94324/hovercard" href="https://github.com/vercel/next.js/pull/94324">#94324</a></li> </ul> <h3>Credits</h3> <p>Huge thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sampoder/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sampoder">@sampoder</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/acdlite/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/acdlite">@acdlite</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/RazinShafayet2007/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/RazinShafayet2007">@RazinShafayet2007</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mischnic/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mischnic">@mischnic</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/icyJoseph/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/icyJoseph">@icyJoseph</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/timneutkens/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/timneutkens">@timneutkens</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vercel-release-bot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vercel-release-bot">@vercel-release-bot</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bgw/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bgw">@bgw</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/devjiwonchoi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/devjiwonchoi">@devjiwonchoi</a>, <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/styfle/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/styfle">@styfle</a>, and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lukesandberg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lukesandberg">@lukesandberg</a> for helping!</p>

Notable Blogs · Simon Willison

OpenAI Help: Lockdown Mode

<p><strong><a href="https://help.openai.com/en/articles/20001061-lockdown-mode">OpenAI Help: Lockdown Mode</a></strong></p> OpenAI first teased this <a href="https://openai.com/index/introducing-lockdown-mode-and-elevated-risk-labels-in-chatgpt/">in February</a>, but now it's live and "rolling out to eligible personal accounts, including Free, Go, Plus, and Pro, and self-serve ChatGPT Business accounts":</p> <blockquote> <p>Lockdown Mode is designed to help prevent the final stage of data exfiltration from a prompt injection attack by limiting outbound network requests that could transfer sensitive data to an attacker. Lockdown Mode does not prevent prompt injections from appearing in the content ChatGPT processes. For example, a prompt injection could appear in cached web content or in an uploaded file, and could still affect the behavior or accuracy of a response.</p> </blockquote> <p>This looks really good to me.</p> <p>The <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">Lethal Trifecta</a> occurs when an LLM system has access to all three of access to private data, exposure to untrusted content and a way to steal data and transmit it back to the attacker.</p> <p>The only way to solve the trifecta is to cut off one of the three legs, and by far the easiest leg to restrict without making your LLM systems far less useful is the exfiltration vectors to steal data.</p> <p>It looks to me like lockdown mode directly attacks that leg, using mechanisms that are deterministic and, crucially, are not evaluated by AI systems that themselves can be subverted by sufficiently devious attacks.</p> <p>The existence of lockdown mode does however imply that ChatGPT, in its default settings, does <em>not</em> provide robust protection against sufficiently determined data exfiltration attacks!</p> <p><strong>Update</strong>: <a href="https://twitter.com/cryps1s/status/2062923575049531422">This tweet</a> OpenAI CISO Dane Stuckey:</p> <blockquote> <p>Lockdown mode is not meant for everyone. However, for folks who have an elevated risk profile - due to who they are, what they work on, or the types of data they work with - it's an excellent tool for further securing themselves. This has some tradeoffs on functionality and utility, but for these users, the tradeoff is worthwhile.</p> </blockquote> <p>Tags: <a href="https://simonwillison.net/tags/security">security</a>, <a href="https://simonwillison.net/tags/ai">ai</a>, <a href="https://simonwillison.net/tags/openai">openai</a>, <a href="https://simonwillison.net/tags/prompt-injection">prompt-injection</a>, <a href="https://simonwillison.net/tags/llms">llms</a>, <a href="https://simonwillison.net/tags/lethal-trifecta">lethal-trifecta</a></p>

Products & Consumer Tech · Ars Technica

Baby botulism outbreak: FDA still doesn't know cause—or how to prevent it

Ars Technica published: Baby botulism outbreak: FDA still doesn't know cause—or how to prevent it

Developers & Open Source · GitHub Changelog

GPT-5.2 and GPT-5.2-Codex deprecated

As of today, June 5, 2026, we have deprecated the following models across most GitHub Copilot experiences (including Copilot Chat, inline edits, ask and agent modes, and code completions). Note… The post GPT-5.2 and GPT-5.2-Codex deprecated appeared first on The GitHub Blog .

Cybersecurity · BleepingComputer

Suspicious Polyfill login prompts pop up on Toshiba, Muji websites

BleepingComputer published: Suspicious Polyfill login prompts pop up on Toshiba, Muji websites

Developers & Open Source · Chrome Releases

Beta Channel Update for ChromeOS / ChromeOS Flex

<p><span color="rgba(0, 0, 0, 0.87)" style="color: rgba(0, 0, 0, 0.87); font-family: arial; font-size: large;">The ChromeOS Beta channel is being updated to OS version </span><span color="rgba(0, 0, 0, 0.87)" style="color: rgba(0, 0, 0, 0.87); font-family: arial; font-size: large;">16667.35.0</span><span color="rgba(0, 0, 0, 0.87)" style="color: rgba(0, 0, 0, 0.87); font-family: arial; font-size: large;"> (Browser version </span><span color="rgba(0, 0, 0, 0.87)" style="color: rgba(0, 0, 0, 0.87); font-family: arial; font-size: large;">149.0.7827.88</span><span color="rgba(0, 0, 0, 0.87)" style="color: rgba(0, 0, 0, 0.87); font-family: arial; font-size: large;">) for most ChromeOS devices.</span></p><div style="background-color: white; color: rgba(0, 0, 0, 0.87); font-family: Roboto, sans-serif; font-size: 17px; line-height: 2.21538; margin-bottom: 0pt; margin-top: 31pt;"><span style="white-space-collapse: preserve;"><span style="font-family: arial;">If you find new issues, please let us know one of the following ways:</span></span></div><ol style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, sans-serif; font-size: 17px; margin: 0px; padding-inline-start: 48px; padding: 0px 48px;"><li style="line-height: 32px; margin: 0px 0px 0.25em; padding: 0px;"><span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"><span style="color: black;"><a href="https://bugs.chromium.org/p/chromium/issues/list" style="color: #4184f3; text-decoration: none;"><span style="font-family: arial;">File a bug</span></a></span></span></li><li aria-level="1" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; line-height: 32px; list-style-type: decimal; margin: 0px 0px 0.25em; padding: 0px; vertical-align: baseline; white-space: pre;"><p role="presentation" style="background-color: white; line-height: 2.21538; margin-bottom: 0pt; margin-top: 0pt;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"><span style="font-family: arial;">Visit our ChromeOS communities</span></span></p></li><ol style="margin: 0px; padding-inline-start: 48px; padding: 0px 48px;"><li aria-level="2" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; line-height: 32px; list-style-type: decimal; margin: 0px 0px 0.25em; padding: 0px; vertical-align: baseline; white-space: pre;"><p role="presentation" style="background-color: white; line-height: 2.21538; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">General: </span><a href="https://support.google.com/chromebook/community/?hl=en&amp;gpf=%23!forum%2Fchromebook-central" style="color: #4184f3; text-decoration: none;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">Chromebook Help Community</span></a></span></p></li><li aria-level="2" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; line-height: 32px; list-style-type: decimal; margin: 0px 0px 0.25em; padding: 0px; vertical-align: baseline; white-space: pre;"><p role="presentation" style="background-color: white; line-height: 2.21538; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">Beta Specific: </span><a href="https://support.google.com/chromeos-beta/community" style="color: #4184f3; text-decoration: none;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">ChromeOS Beta Help Community</span></a></span></p></li></ol><li aria-level="1" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; line-height: 32px; list-style-type: decimal; margin: 0px 0px 0.25em; padding: 0px; vertical-align: baseline; white-space: pre;"><p role="presentation" style="background-color: white; line-height: 2.21538; margin-bottom: 0pt; margin-top: 0pt;"><a href="https://support.google.com/chrome/answer/95315?hl=en&amp;co=GENIE.Platform%3DDesktop" style="color: #4184f3; text-decoration: none;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"><span style="color: black;"><span style="font-family: arial;">Report an issue or send feedback on Chrome</span></span></span></a></p></li><li aria-level="1" style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; line-height: 32px; list-style-type: decimal; margin: 0px 0px 0.25em; padding: 0px; vertical-align: baseline; white-space: pre;"><p role="presentation" style="background-color: white; line-height: 2.21538; margin-bottom: 42pt; margin-top: 0pt;"><span style="font-family: arial;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">Interested in switching channels? </span><a href="https://support.google.com/chromebook/answer/1086915" style="color: #4184f3; text-decoration: none;"><span style="background-color: transparent; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;">Find out how.</span></a></span></p></li></ol><p style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, sans-serif; font-size: 17px; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="white-space-collapse: preserve;"><span style="font-family: arial;"><span style="text-wrap-mode: nowrap;">Luis Menezes</span></span></span></p><p style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, sans-serif; font-size: 17px; line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-family: arial; white-space-collapse: preserve;">Google ChromeOS</span></p>

Developers & Open Source · GitHub Changelog

CodeQL 2.25.6 adds Swift 6.3.2 support and improves C# coverage

CodeQL is the static analysis engine behind GitHub code scanning, which finds and remediates security issues in your code. We’ve recently released CodeQL 2.25.6, which adds Swift 6.3.2 support, completes… The post CodeQL 2.25.6 adds Swift 6.3.2 support and improves C# coverage appeared first on The GitHub Blog .

Products & Consumer Tech · Product Hunt

Toyo

Exec assistant who lives in iMessage and calls your phone Discussion | Link

Developers & Open Source · GitHub Changelog

Enterprise-managed plugins in VS Code in public preview

Last month we launched a public preview with Copilot CLI that allows enterprise administrators the ability to configure and distribute plugins to GitHub Copilot CLI users across their enterprise. VS… The post Enterprise-managed plugins in VS Code in public preview appeared first on The GitHub Blog . ]]>

Products & Consumer Tech · Ars Technica

How a USB-connected speaker can infect a PC without ever being touched

Ars Technica published: How a USB-connected speaker can infect a PC without ever being touched

Products & Consumer Tech · Product Hunt

Daemons by Charlie Labs

Keep PRs, issues, CI, and docs moving with AI agents Discussion | Link

Startups & Funding · TechCrunch Startups

Startup Battlefield 200 applications officially close in 3 days

Applications for Startup Battlefield 200 officially close on June 8, 11:59 p.m. PT. Don't wait any longer. Secure your shot at competing on the Disrupt Stage at TechCrunch Disrupt 2026 this October at San Francisco's Moscone West.

Products & Consumer Tech · Product Hunt

ZeroGPU

The compute efficient layer for AI inference Discussion | Link

Products & Consumer Tech · Ars Technica

Small modular nuclear reactor reaches criticality in first test

Ars Technica published: Small modular nuclear reactor reaches criticality in first test

Developers & Open Source · langchain-ai/langchain Releases

langchain-perplexity==1.3.2

<p>Changes since langchain-perplexity==1.3.1</p> <p>release(perplexity): 1.3.2 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4599478340" data-permission-text="Title is private" data-url="https://github.com/langchain-ai/langchain/issues/37925" data-hovercard-type="pull_request" data-hovercard-url="/langchain-ai/langchain/pull/37925/hovercard" href="https://github.com/langchain-ai/langchain/pull/37925">#37925</a>)<br> fix(perplexity): serialize <code>ToolMessage</code> and <code>AIMessage.tool_calls</code> (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4592696532" data-permission-text="Title is private" data-url="https://github.com/langchain-ai/langchain/issues/37911" data-hovercard-type="pull_request" data-hovercard-url="/langchain-ai/langchain/pull/37911/hovercard" href="https://github.com/langchain-ai/langchain/pull/37911">#37911</a>)</p>

Cybersecurity · BleepingComputer

CISA: Hackers now exploit SolarWinds Serv-U flaw to crash servers

BleepingComputer published: CISA: Hackers now exploit SolarWinds Serv-U flaw to crash servers

Cloud & Infrastructure · AWS News Blog

Try the new console experience in Amazon Bedrock, optimized for Anthropic- and OpenAI-compatible APIs

You can use the new console experience on Amazon Bedrock to browse and compare the latest AI models side by side, organize work into projects with streamlined evaluation workflows, and access project-aware live documentation with auto-prefilled code snippets ready to copy and run.

Products & Consumer Tech · Product Hunt

QWERTYS

<p> My keyboard fell apart. Now it's your problem. </p> <p> <a href="https://www.producthunt.com/products/qwertys?utm_campaign=producthunt-atom-posts-feed&amp;utm_medium=rss-feed&amp;utm_source=producthunt-atom-posts-feed">Discussion</a> | <a href="https://www.producthunt.com/r/p/1164522?app_id=339">Link</a> </p>