Jennifer Nguyen

Bootwitch

Scientist building AI and research tools
10+ years in immunology research · Building with AI since 2024
Bootwitch / Interactive demo
Simulated session
Files
Terminal
Welcome to Bootwitch.
Projects / runtime-observability

Systems Logging and Telemetry

A subsystem study of model drift, provider metadata, and storage housekeeping.

runtime-observabilityobservability-and-subsystems

The parts that tell me what answered, what happened, and what needs attention.

Jennifer Naomi Nguyen · systems work · Subsystem study · First project · July 2025 · built with Claude Code and Codex

README · ARCHITECTURE · TECHNICAL · source

Why I built it

I'm building toward systems I can inspect while I use them. As Context and Memory Workspace and Journal Club grew, I needed a better view of what the models and background jobs were doing.

What actually answered

Context and Memory Workspace records the model returned by a response, groups usage by model family, and keeps a short history of model changes. That gives me a way to see when the thing answering requests changes, even if the requested alias stays the same.

Keep the response details together

Journal Club keeps the provider's finish reason, token-cap information, reasoning metadata, and response length alongside the generated text. It also distinguishes the provider shortening a response from the application shortening it for display.

One distinction carries through the whole project: missing information and zero are different values. If a provider doesn't report a quantity, keeping that absence visible makes later comparisons easier to interpret.

The jobs behind the scenes

The workspace also has scheduled work for archiving older conversations, backing up D1 data to R2, and finding attachment objects that no longer have matching records.

These are small subsystems, but they affect whether the rest of the workspace stays understandable as it accumulates data. The architecture page follows the signals and storage paths; the technical page explains the details and the issues that shaped them.

When the system talks back

One part of the workspace used a Durable Object to keep a shared live room in order while WebSockets carried messages back and forth. The useful part was not only the real-time conversation. The same path also made it easier to see when message delivery or related storage work did not complete.

The system could record the problem, correction, or gotcha in shared memory. Later work then had something concrete to react to instead of repeating the same mistake.

That is the kind of self-correction I mean here: the system could notice and document a problem so future behavior had better context. It was not silently rewriting or redeploying its own code.

Explore the implementation

The source excerpts include model tracking, response normalization, and the operational boundaries around storage and rate limiting.

Model Routing and Job Orchestration covers the other half: how requests and jobs reach their destinations.

All projects