Daily Agents Need a Scheduler
The Mattermost Codex bridge moved recurring work out of immortal agent threads and into a small scheduler with state, receipts, and Mattermost delivery.
Thoughts, tutorials, and insights about technology and software development.

The Mattermost Codex bridge moved recurring work out of immortal agent threads and into a small scheduler with state, receipts, and Mattermost delivery.

A practical way to run Mattermost on a small server, expose it safely, and use the mobile app as a chat interface to a local Codex agent.

A powerful Dell laptop made a fresh Ubuntu install feel broken. The usual checks said everything was fine. They were wrong. The fix was buried in Intel display power saving and a …

Supply-chain scanners should not bury local endpoint risk in raw JSON. Bumblebee has the engine; this UI turns the scan into something developers can actually inspect.

AI coding agents do real repository work. They deserve review desks, not cramped chat boxes. This is the product shape behind a native Flutter client for Jules.

Dream TTS turned local speech from a model demo into product architecture: Flutter for the surface, Rust for durable synthesis work, and strict boundaries for long-running private …

Local speech becomes trustworthy when pronunciation, latency, fixtures, logs, and release gates make quality repeatable instead of subjective.

A local speech feature survives only when the app talks to one stable product API while engines, voices, platforms, playback, and failures change underneath it.

Your first local voice ships only after it is bundled, checksummed, observable, cancellable, and boring enough to survive real user machines.

If your app needs speech without a hosted API, the hard part comes after the nice demo voice: engines, latency budgets, licenses, updates, and fallbacks.
A postmortem on the Gravitee loopback pattern: the dead ends, the latency win, the sandbox boundaries, and the production checklist that matters next time.
When a gateway cache only wants to cache full HTTP responses, the loopback pattern turns that constraint into a small internal token API.