Sheldon Lewis

Notes, when the notes happen.

I am not trying to force a high-volume writing habit here. This section is reserved for the occasional piece worth publishing once it is clear enough to survive outside my head.

Building a remote MCP time server

Building a remote MCP server so AI agents can ask for real time, timezone, and duration data instead of guessing.

  • Tool-backed time, timezone, and duration answers instead of model guesses.
  • A remote MCP endpoint exposed through a streamable HTTP `/mcp` path.
  • Current time, timezone conversion, duration, validation, offsets, search, and timestamp comparison tools.

The runner was the recovery path

Using a workflow runner to recover access to a host, and why runners need to be treated as serious infrastructure.

  • Using a still-running Forgejo runner as a recovery path after losing host access.
  • Reverse tunnel and Cloudflare shell approaches for temporary access.
  • Why runners with Docker access, network reach, repository trust, and secrets need serious controls.

A note on performance in the registry control plane

Performance work in the registry control plane, including caching repeated views, lighter tag pages, and cache warming.

  • Reducing repeated work so the registry control plane feels more responsive.
  • Caching repository catalog data instead of rebuilding the same views repeatedly.
  • Paginated, lighter tag pages and cached tag summary paths.

Adding a local cache to a Forgejo runner

Using a temporary local BuildKit cache in a Forgejo runner to speed up repeated registry control plane builds on limited hardware.

  • Reusing a local BuildKit cache between Forgejo runner jobs.
  • Why caching matters on smaller hosts with limited CPU, disk, and network headroom.
  • Keeping the cache disposable instead of making the runner a storage layer.

A quick note on my ASU builder changes

Operational changes that made my OpenWrt ASU builds more reliable when the official builders were overloaded.

  • Making local OpenWrt ASU builds more reliable when official builders are overloaded.
  • Container inspection, retry behavior, and diagnostics for early exits and exec races.
  • TTL behavior and CORS support for browser-facing tooling.