Field Notes

An API Schema Describes Vendor Intent, Not Client Behavior

A documented hash in a VK button broke mini-app navigation; comparing three links found the cause where another schema-based hypothesis did not.

A Dynamic Tail in the System Prompt Disables the Provider Cache

A timestamp and memory near the start of a 92K-token agent request made every call cold; a stable prefix and cached-token metric made the defect testable.

CUDA PTX vs. SASS: Toolchain and GPU Architecture Decide Whether the Model Runs

Why a fresh llama.cpp build still crashed on Blackwell and how native SASS removed the incompatible PTX JIT path.

A Stupid Mistake That Broke the Agent's Context

A slice taken from the wrong end made a multimodal agent receive the oldest images instead of the newest ones.

Postgres, Partitions, and Missing Posts

The data reached its partitions, but cursor.rowcount returned zero and prevented the processing pipeline from starting.

hash() Is Stable Only Within a Single Process

One source generated a new post_id for the same URL on every process start and bypassed deduplication.

Semantic Decisions Belong to the Model; Critical Invariants to Code

In an agent system, the model should interpret requests and choose actions while code preserves guarantees, safety, and irreversible invariants.

Critical Links Should Not Depend on One External Domain

When an external Telegram domain temporarily stopped working, every link to a bot, channel, or user failed at once.

Delayed Execution Should Be a Separate Tool

When scheduling is embedded in every tool, new channels inflate the codebase; a shared scheduling tool keeps that logic in one place.

JWT Refresh Broke After a Service Migration

After a service move, users were logged out because access and refresh tokens became unsynchronized and configuration silently fell back to defaults.

The Payment Succeeded, but the Plan Was Not Applied

The payment flow assumed that a plan already existed: update-only logic must create the state when a concurrent trial operation has not created it yet.

A Client Loop Caused a Threefold Database Connection Spike

Even successful repeated requests can exhaust a connection pool: the server needs rate limits, and the client needs a guard against loops after streaming failures.

Keep Alembic revision ids under 32 characters

Alembic stores the current revision in a VARCHAR(32) column, so long human-authored revision ids overflow and break migrations.

App Store Review Exposed Unfinished Product Requirements

The iOS rejection showed that technical readiness is not enough without account deletion, appropriate authentication, safe screenshots, and a clear payment model.

Do Not Share Local and Container Environments

Ruff stopped launching in Zed because the local project used a Linux binary from a container virtualenv.

Unbounded Conversation History Can Exceed the Context Window

The harness capped retrieved memory but left active conversation history unbounded; recovery after a restart suggested, but did not prove, context overflow.

User Data Should Be Soft-Deleted

When a user deletes a chat by mistake, soft deletion with controlled recovery is safer than immediate physical deletion.

Qwen3.5:32B and OpenCode Compatibility Is a Contract

A local coding-agent session can stop because of an incompatible reasoning format even after the model loads and changes files successfully.

CI Should Not Depend on One Package Registry

External PyPI timeouts can break container builds; mirrors and an owned registry turn that dependency into a manageable failure.

A Corporate Network Can Block SSE

Working HTTP requests do not prove that a corporate network allows the long-lived SSE connection required for streaming agent responses.

Deleting a File Does Not Clear RAG Memory

Deleting source documents does not guarantee that their vector representations are gone: an agent's memory must be cleared at every storage layer.

Why an Agent Should Not Choose the Architecture for an Unfamiliar Task

Asking an agent to clone a voice without prior research turned into endless trial and error: define the architecture and evaluation criteria first.

One Vision Model Is Not Enough for Reliable Receipt Parsing

A vision model may read a receipt but still confuse prices, names, quantities, or totals; reliability requires a verifiable pipeline.

An Audio Fallback Must Cover Real Decode Failures

Audio files can play successfully while a library fails to inspect them: an ffmpeg fallback should not be limited to one assumed exception type.

Not Every Good Idea Deserves Automation

An idea suggested by a model and phrased conveniently is not automatically a useful change: validate its value and success criteria first.