Build log

What we build, what broke, what we learned.

Engineering notes from the team building Northsun, with the receipts attached.

Posts

Byline: Northsun · read time computed from length

Governance

Your agent does not only have a memory problem

Stored history can still produce stale, conflicting, late, or untraceable context. The harder problem is deciding what an agent is allowed to rely on now.
5 min
Engineering

Three caller-memory endpoints, on purpose

Northsun keeps its frozen caller-memory REST contract to recall, write-back, and read-only lookup—while the hosted MCP tool surface evolves separately.
4 min
Governance

Context rot: when agent instructions become liabilities

A mandatory stale instruction is worse than a missing optional note. Here is how authority, freshness, routing, and falsifiers prevent context rot.
4 min
Engineering

Choosing Northsun or a general-purpose memory system

A non-comparative evaluation guide for deciding whether Northsun's memory, enrichment, caller REST lifecycle, and governed-context direction fit your agent.
5 min
Voice

Bi-temporal facts, explained through a voice interaction

A caller correction shows why valid time and transaction time are different—and why Northsun limits the full two-timeline model to evidence_refs and locked_facts.
4 min
Incidents & fixes

The preamble tax: what agents pay before useful work begins

Agent sessions spend context before the first useful action. The least visible part is often the context your rules require but your tooling does not automatically load.
5 min
Engineering

Bi-temporal memory: what was true, and what did the system know?

Valid time and transaction time answer different questions. Keeping both lets an agent system preserve late-arriving facts, corrections, and prior belief.
4 min
Engineering

Salience: the right context, not the biggest context

Why useful agent memory depends on selecting relevant, timely, governed context instead of filling the prompt with everything available.
5 min
Incidents & fixes

A check that does not run is a check that passes

How false-green verification happens, why exit code zero is not enough, and how to prove that a gate can reject the defect it claims to catch.
5 min
Governance

One source of truth is a routing problem, not a slogan

Why declaring a canonical document is insufficient unless every writer, reader, index, and agent is reliably routed to it.
5 min
Engineering

MCP or REST for agent memory?

How to choose between explicit HTTP lifecycle calls and model-visible MCP tools when connecting an agent to Northsun.
5 min
Engineering

Recall before, write back after

A durable agent-memory integration pattern: read context before the interaction, submit the completed event once, then verify it with a later recall.
5 min
Voice

Enrichment is context, not identity proof

How to use caller enrichment as nullable, correctable evidence without turning a phone-number lookup into an identity-verification claim.
5 min
Voice

Null enrichment is not an error

A caller-memory integration should become less personalized when optional enrichment is missing—not less functional.
3 min
Engineering

What 204 No Content proves—and what it does not

A successful calls/end response confirms the interaction is already committed durably. Enrichment and other background work follow their own timing.
3 min
Engineering

Retrying an agent-context call without creating a storm

Retry only failures that can improve with time, cap the retry budget, add jitter, and keep voice fallbacks independent from optional context.
3 min
Governance

Cross-agent coherence without making every agent identical

Shared context should be an explicit grant between bounded Context Spaces, not one giant memory bucket or uncontrolled copying between agents.
3 min
Changelog notes

Changelogs are part of the API contract

An API change is not complete when code merges. Builders need a dated, state-accurate explanation of what changed, what remains compatible, and what to verify.
2 min
Governance

A false memory retrieved perfectly is still false

Memory contamination — one hallucinated fact, written once, poisoning every later step — is the failure mode retrieval cannot fix. New research formalizes it. Here is what memory builders should do at the write path.
4 min
Governance

MCP's enterprise phase: easier to deploy, harder to trust

The 2026-07-28 stateless spec made MCP servers trivial to run; nine days later GitHub shipped enterprise allowlists. Thousands of servers are coming. The enterprise question is now: why should yours be on the list?
3 min
Governance

The agent stack standardized connectivity. Context is next.

A2A found a home beside MCP, GitHub shipped a portable plugin standard, and MCP itself went stateless. The connective tissue of the agent economy is settling — which makes the one layer nobody is standardizing the interesting one.
5 min
Governance

Tool permissions are not context permissions

Your agent can be authorized to call the CRM and still have no business reading the record it gets back. Access control for tools is a solved idea; access control for context is a different primitive — and pretending otherwise leaks data politely.
5 min
Voice

Designed for sub-300ms voice recall: inside the edge hot path

How Northsun keeps recall work bounded, reports request timing, and lets agent builders design honest fallbacks without treating an architecture target as a benchmark.
4 min
Voice

Add caller memory to Vapi with a custom HTTP lifecycle

Map Vapi server events to Northsun recall and call-end APIs, handle partial context safely, and verify write-back before relying on it.
6 min