exe.dev's ssh host header
been playing with exe.dev this weekend and was curious how they made ssh [vm-name].exe.dev just work, and it’s pretty cool: https://blog.exe.dev/ssh-host-header
been playing with exe.dev this weekend and was curious how they made ssh [vm-name].exe.dev just work, and it’s pretty cool: https://blog.exe.dev/ssh-host-header
Toggling features.* or permissionGate.requireConfirmation in the settings command stored the raw display string ("enabled"/"disabled", "on"/"off") instead of converting to true/false. Since any non-empty string is truthy, features appeared stuck “on” when toggled to “disabled” or “off”.
Compatibility update for Devstral’s tool-result role ordering requirements.
The process tool always used the session working directory (ctx.cwd) when spawning processes, ignoring the cwd parameter passed by the LLM. This caused commands with relative paths to fail when a different working directory was specified.
Settings enum fix for "disabled" values.
i like the idea of claude’s workflow thingy but since it’s writing code, it keeps failing with these kind of errors:

but claude feels a bit overwhelming to me 😅

makes sense but wonder if this could still be handled? also, curious why they don’t give guidance about this and/or linting to have this be caught before running the workflow

Removed models no longer returned by Synthetic (hf:zai-org/GLM-5, hf:deepseek-ai/DeepSeek-V3.2), added hf:Qwen/Qwen3.6-27B, and updated syn:small:vision to point at the new Qwen target.
missed that claude/opus has a fast mode so had pi make a quick extension to play with it. comparison with the vanilla pi
ext: https://gist.github.com/aliou/b7fe59004e023691c2e75c8458f3c0a8
(don’t look to closely at that horrendous code that kimi no thinking produced loooool)
Update extension guidance to default Pi core peer dependency ranges to *, using minimum ranges only for APIs introduced after Pi 0.74.0.
Jellybeans Mono themes for Pi in dark and light variants.
Name tools explicitly in promptGuidelines so they make sense in the global system prompt Guidelines section.
Migrate Pi core package dependencies from @mariozechner/* to @earendil-works/* namespace.
Fix gateway model checks to match models by provider and limit warning output per provider.
Two ways to connect Pi to a custom model endpoint, using Synthetic as an example
What made me switch coding agents and why I stayed
Maintenance matters more than setup: keeping context fresh as codebases evolve
Your AGENTS.md is not enough. Leverage deterministic tools to enforce rules
Progressive disclosure for coding agents: load context only when needed
The new wave of coding models needs less hand-holding than you think
How coding agents changed the way I worked
Fixing nvim-treesitter after the master-to-main rewrite
Querying GCS Parquet files through an in-memory DuckDB instance in Cube
Using TypeScript template literal types to generate joined field names like orders.total automatically
A CSS pattern for swapping images between light and dark mode with smooth transitions
Using global interface augmentation in TypeScript to define type-safe Cube models
Adding a custom TextMate grammar to Shiki for Ghostty config syntax highlighting
Enabling Monaspace’s stylistic sets for code ligatures in Ghostty
Parsing structured strings with Ruby’s named regex captures instead of split
Making Ruby value objects look like constants by overriding inspect
Serializing value objects into ActiveRecord models with the Attributes API
.gitignore, .git/info/exclude, and core.excludesfile
Building a custom Ecto type for Postgres timestamp ranges
A Rails source spelunking find: custom validators can be namespaced with ::
Setting up a global .gitignore to keep editor and OS files out of every repo