I Deleted the Agent Framework: How Matrix Became a Kernel

Matrix is an experimental Rust kernel for composing long-lived software components across process and machine boundaries. A component can be a model adapter, a tool, a memory service, a user interface, or ordinary application logic. Matrix gives each running instance an identity and a generation, resolves its declared dependencies, controls which other components may call it, and tracks the resources it acquires. Consider a consumer receiving a stream from provider. While that stream is open, the provider process crashes and a replacement starts under the same logical name. Most plugin systems can tell you that provider exists again. Matrix is concerned with the harder question: does this chunk still belong to the exact instance that was authorized when the call began? ...

September 10, 2026 · 10 min read · enrell

Zombie process and cyclic symlink: an interesting NAVI bug

I was wrapping up the NAVI 0.3.8 release when I noticed a navi process running with high CPU. Nothing crazy — a headless process that didn’t terminate, probably a stuck task. I went to investigate. The diagnosis btop showed two threads at ~70% CPU each. ps confirmed: 1 2 3 4 5 $ ps -p 425090 -L PID LWP TTY STAT TIME COMMAND 425090 425090 ? S 0:00 navi 425090 425124 ? R 10:28 tokio-rt-worker 425090 425125 ? R 10:27 tokio-rt-worker Two tokio-rt-worker threads with over 10 hours of accumulated CPU time. The main thread was sleeping (S). Those two were running (R) non-stop. ...

July 24, 2026 · 4 min read · enrell

rustquty 0.4.3: Trustworthy Quality Gates Need Trustworthy Metrics

The first public versions of rustquty shipped with a nice idea: local-first quality gates for Rust projects. Run one command. Collect metrics. Compare against a baseline or absolute thresholds. Fail if quality regressed. That model still feels right to me. But this week I hit the part every tool author eventually hits: the moment where the tool says something so obviously wrong that you stop trusting the entire report. For rustquty, that happened in two collectors: duplicates and loc. ...

June 28, 2026 · 5 min read · enrell

rustquty: The Local Quality Scanner Rust Projects Deserve

I was in the middle of a refactor in animedb, one of my Rust projects. Ran cargo fmt --check, ran cargo clippy, ran cargo test. All green. Pushed the PR. A few days later, looking at the diff, I noticed one function had ballooned to over 100 lines. Another had 8 levels of nesting. Nobody commented. CI passed. Because CI doesn’t look at that. I’d seen this happen before. Quality doesn’t disappear overnight. It degrades slowly, one function at a time, until one day you look at a module and think “how did this turn into such a mess?” ...

June 2, 2026 · 6 min read · enrell

Psyche: The Media Server That Keeps Your Data Yours

It was 2 AM. I was digging through my local anime folder trying to figure out why my media server hadn’t picked up a new episode. I opened the SQLite database file out of curiosity — just to see what was in there. I could read it. All of it. Every title. Every rating. Every entry in my watch history. Plain UTF-8 text, sitting unprotected on my disk. I closed the terminal and stared at the ceiling for a while. ...

April 4, 2026 · 12 min read · enrell