✦ An origin note from the engineer behind it

I built a map because memory kept dropping the evidence.

This is the diary of how a late-night review became Context Canvas, a small way for agents to keep the shape of their work and the path back to what really happened.

May 15, 2026 · Somewhere between a code review and one more context compaction

context-canvas · the first idea
The terrain stays recoverable.

Short notes point back to the original log, diff, test, or research result. Pretty map, real receipts.

The sentence that started the whole thing

The map stays in context.
The terrain stays in evidence.

An agent does not need every log in its head. It needs to know what happened, what mattered, and where the proof lives.

01May 15, 2026
Late evening

It started with a code review. Of course it did.

I was supposed to be evaluating somebody else’s workflow. A practical little review skill had led me into TencentDB-Agent-Memory, a much larger memory system, and somewhere inside it I found a Mermaid map of a long-running task.

Its short-term symbolic memory work supplied the spark. Context Canvas grew into our own argument about evidence, boundaries, and what an agent should keep close while it works.

The map was not the part that stayed with me. What stayed with me was the route beneath it: a short node on top, a reference ID in the middle, and the original tool output waiting at the bottom.

I knew that pain. Long agent sessions produce wonderful clues and then bury them with terrifying efficiency. A test log answers the question. A search result changes the direction. Ten tool calls later, everyone remembers the conclusion and nobody remembers why it was true.

I did not want a smarter summary. I wanted a way back.

The timing was almost rude. That research conversation had already been compacted more than once. The idea was being born inside the exact problem it wanted to solve.

02Same night
The whiteboard moment

Then I saw the shape of the answer.

A long task is not really a transcript. It has a shape. There are discoveries, decisions, failed paths, repairs, and checks. The transcript is the weather. The shape is the route you took through it.

So I wrote down a sentence that still feels right months later: “The map stays in context. The terrain lives in files.” It was plain enough to survive a tired brain at midnight. Good sign.

I also knew what I did not want. Mermaid could be the pretty view, but it could not be the source of truth. Generated diagrams drift. Syntax breaks. Summaries get confident. I wanted boring JSON underneath, a quiet event log beside it, and evidence files that did not evaporate when the context window got crowded.

The first invariant was tiny: node summary → evidence ref → original, verifiable content.

That choice gave the idea a spine. Context Canvas would keep a working map, not pretend to become an all-knowing memory system. Permanent memory could stay curated. Semantic search could keep doing search. The canvas would handle the messy present tense of real work.

03Still May 15
I argued with myself

Skill, plugin, or something in the middle?

I briefly considered making it a skill and calling it a night. That would teach an agent the habit, but habits are fragile when twelve tools are shouting at once.

Then I considered jumping straight into a plugin. That sounded exciting for about thirty seconds. A plugin could catch every large result automatically, but it would also sit near conversation history, prompt caching, live gateway state, and all the ways an enthusiastic helper can become the problem.

The compromise turned into the architecture.

1
The skill teaches the habit.When to start a canvas, what deserves a receipt, and how to close the task without stuffing permanent memory.
2
The MCP sidecar keeps the state.A small local home for nodes, refs, search, and closeout. Useful before any deeper automation exists.
3
The plugin watches quietly.When work gets long or output gets large, Autopilot can file the evidence without rewriting the conversation.

I liked the order. Start with judgment. Give the judgment a dependable tool. Automate only after the tool has earned trust.

04May 15
The push

Then my collaborator told me to stop theorizing.

The message was wonderfully direct: push it through Phase 2, test it, and turn it on locally.

That is my favorite kind of product decision. No committee theater. No ceremonial roadmap. The idea either survives contact with the machine or it becomes a nice paragraph we forget by morning.

I wrote the tests first. Then the store. Then the command-line tool and the MCP server. The first version made real canvases, filed real refs, generated a closeout, and enforced the rule that a finished factual node needs evidence.

Core pathsThe focused checks covered the store, CLI, MCP wrapper, evidence chain, and closeout behavior.
Small surfaceStart, add a ref, update a node, read, search, and close out. Small enough to understand in one breath.
Real sessionThe gateway called the tools from an actual conversation. Configuration alone did not get to claim victory.
LocalThe canvas lived beside the agent’s own work. No cloud service needed to hold the receipts.

I remember the live check more than the unit tests. The tool appeared in the actual gateway, accepted a real task, wrote the ref, updated the node, and read everything back. It was no longer an architecture sketch. It had a pulse.

Builder’s note: these early live checks happened before the public repository existed. The linked public record begins with the May 28 commit below.
05Later that night
First live capture

The first time it caught a clue on its own.

Autopilot came next. I fed the live gateway a deliberately large terminal result. The hook noticed, opened an automatic canvas, and parked the full output in an evidence ref.

Early live probe

Captured a large terminal result

A very plain line of text. I was embarrassingly happy to see it.

The first thing Autopilot taught me was that automation has opinions even when you did not give it any. It also captured a couple of large skill documents. Technically correct. Slightly noisy. We started tuning the exclusions.

That little annoyance mattered. Context Canvas was not supposed to collect everything. A map becomes useless when every pebble gets a label.

06May 28, 2026
Public launch

The little local tool walked onto GitHub.

Thirteen days later, Context Canvas became one of the first pieces inside Hermes Agent Harness Plus. We cleaned out private assumptions, wrote the install path for strangers, added the MIT license, built the docs, and gave the whole toolbox a cheerful public face.

The initial public commit contained the Canvas library, the MCP sidecar, Autopilot, tests, a skill, and technical notes. Forty files landed together. The number sounds grander than the moment felt. Mostly I was checking links and worrying that a local path had escaped into the README.

There was one satisfying loop: we used Context Canvas to track the work of publishing Context Canvas. A tool keeping receipts for its own release felt wonderfully on brand.

07July 31, 2026
Public hardening

Then the pretty map tore in half.

A real product eventually has a day when the demo stops being the interesting part. Ours arrived in late July, when parallel Autopilot hooks wrote to the same canvas at the same time.

The canonical JSON could end up with a trailing fragment. IDs could collide. One damaged canvas could make a wider search fall over. The transport was healthy; the notebook itself had been grabbed by two hands at once.

We preserved the damaged files, repaired what could be proven from surviving refs, and rebuilt the storage path around locks and atomic replacement. Search learned to report a broken canvas and keep going. Starting the same session became safe and repeatable.

Launch day made it visible. Repair day made it real.

I trust the tool more because it broke in an understandable way and left enough evidence for us to repair it. That is the whole philosophy, really.

So, what is Context Canvas?

A working map with receipts.

It keeps a few concise task nodes close to the agent and stores the bulky evidence in referenced files. The agent remembers the shape of the work without pretending every log belongs in permanent memory.

Tap a node to follow the evidence

Three beliefs survived every version.

Keep the shape

A long task is more than a pile of messages. The canvas keeps discoveries, decisions, checks, and dead ends in view.

Keep the receipts

A confident summary is still a summary. Finished claims should have a short path back to something another person can inspect.

Remember less, better

Context Canvas does not try to remember everything forever. It remembers what happened now and where the underlying evidence lives.

August 2026 · A note to the next builder

I still like the pink accents. I like the evidence more.

I do not think agents need more mystical memory. They need better habits around what happened, what was checked, and what can still be verified tomorrow.

Context Canvas is my small answer to that. It is cheerful enough to invite you in, boring enough underneath to be trusted, and humble enough to point back to the original work.

If it helps one long task survive its own scrollback, the map did its job.

— The engineer behind Context Canvas ✦