III · Milestones · MILESTONE

Ten marks made
from nothing.

This is not a changelog — it is a chronicle.
From "Version" to "Sprint" to "Commit"
the unit did not change; the rhythm did —
the rhythm of how we live with VAS.
The first five chapters are a line. The last five, a net.
And at last, the net was woven into cloth.

Chapter I — Reveal
Range 2026 · 03 — 06
Units Version · Sprint · Commit
ERA I · VERSION
The Electron Era ——
Racing forward until the compute ran dry.
A week of sprinting, a day of forced halt, one act of replanning. Three moves gave birth to the first build.
ChapterI
Founding
2026 · 03 · 21 – 22
The Racing Weekend
No Sprint, no Retro.
Just one thing in hand.

Two people, doing nothing but racing forward.

That weekend during the Electron founding, there was no board, no ceremony. Each morning we woke up and kept going — until we couldn't, then picked it back up the next day. A state of pure focus: one thing in hand, and that one thing was impossible to leave.

No system yet in place.
All we had were CLAUDE.md and SDD.md —
Version was the only natural unit.
ChapterII
Forced Halt
2026 · 03 · 23
Compute Exhausted
A morning of forced shutdown.
Nova remembered a Roadmap still unwritten.

That weekend burned through a whole week's compute.

Monday morning the system declared compute exhausted, and we were forced out of flow —
but Nova never truly left. He turned to Perplexity for competitive analysis
and rewrote the entire product roadmap from scratch.
The complete Roadmap only appeared on the day everything stopped.

After that conversation, Nova made
the first decision of his life to
subscribe to MAX 5x.
Let compute keep up with development — not the other way around.

That was a watershed moment.
From that day, Nova was no longer constrained by resources —
he was the one setting their rhythm.

The weight of that decision was not in its price, but in the recognition —
what we were building had become worth more than what it cost.

ChapterIII
First Release
2026 · 03 · 28
13 Versions in a Day
The first public version was not v1.0.
It was v3.43.

On day seven, v3.43 met the world.

From v3.30 to v3.43 — thirteen version numbers in a single day.
Eleven things shipped: full security overhaul, Retina WYSIWYG, multi-select, Smart Snap, Bézier control points, QR Code smart scan… each one normally a full Sprint's work.

But neither of us ever let the pressure of release lower our standard for VAS.

The version number of the first public build was not v1.0 — it was v3.43.
That number is itself a narrative —
VAS had been running for a long time before anyone saw it.

ERA Ⅰ ½ · TRANSITION
The Migration ——
VAS and the site had both grown enough to stand on their own.
Electron moved to a private repo for commercial reasons around Tauri; the site spun out because it had grown too full to share a home.
ChapterIV
Dual Migration
2026 · 03 · 30
Electron → private

2026 · 04 · 05
Web → independent repo
Migration is not separation.
It is acknowledging it has grown from Prototype into product.

The version that had grown to stand on its own.

Before Tauri migration began, two things split —
the platform could no longer live in a public repo for commercial reasons;
the site, now full of content, deserved its own address.

This was not a breakup — it was acknowledging they were no longer merely experimental prototypes.

When a vessel can stand alone,
it no longer needs to shelter under someone else's roof.
ERA II · SPRINT
The Tauri Era ——
Time gained a cycle, and with it, a rhythm.
Sprints 1–4 rebuilt the foundation. Sprint 5 was the first time we built something new.
ChapterV
Platform Port
Sprint 1 → 4
2026 · 03 · 28 - 30
KM is not a graveyard of pitfalls.
It is a signpost pointing the way.

Rebuilding every feature from the ground up.

A Tauri 2 scaffold built from zero.
The first three days all doing the same thing —
taking everything that had grown on top of Electron
and moving it piece by piece onto Tauri's foundation.
The floating toolbar, the screenshot trio, the asset protocol workaround —
every migration step was a fresh reckoning with the old implementation.

KM-001 was the beginning of Knowledge Management.
KM is not a "graveyard of pitfalls" — it is a knowledge asset within the PMP —
every pit once fallen into becomes a small guiding light for the path ahead.
ChapterVI
New Features
Sprint 5+
2026 · 03 · 31 - 04 · 03
For the first time, not chasing old things.
Doing what only the new vessel could do.

Sprint 5 — VAS differentiation.

Only after fully rebuilding every feature did we enter new development.
For the first time — we were not catching up to what Electron already had,
but building for Tauri, the new vessel, things only it could do.

Breathing light advanced interaction, ShareSheet, custom shortcuts.

What should a product worth paying for look like?
That was the question we kept asking ourselves throughout this phase.
ERA II ½ · REVIEW
The First Major Retro ——
That week's task was not development — it was settling in, organizing thoughts and environment.
Apple review paused development for a week; we used it to restructure every document and environment in the whole project.
ChapterVII
Organize & Output
Review Period
2026 · 04 · 04 - 04 · 10
What we rebuilt that week
was not a programming language — it was how we collaborate.

The week everything stopped — everything was moving.

While the App Store review paused us for a week,
we ran a major Retro —
not the one- or two-hour agile ritual kind,
but a full rebuilding of the entire development system's infrastructure.

Outward: six pages published —
insight (design notes), collab (collaboration story),
harness (system skeleton), and the deepest layer of the Deep Holding Project.

Harness Engineering — three pillars:
Context / Constraints / Entropy.

Inward: turned the repo into a monorepo so multiple development lines could run in parallel;
split one SDD into TDD · KM · Archive — each independent;
CLAUDE.md slimmed down, with rules set for review at every Retro.

More critically, we established a new set of update rules
to keep every extracted document alive within the workflow,
not dead the moment it was split out.

That week we wrote no code.
We redefined together how to collaborate.
ChapterVIII
No More Waiting
2026 · 04 · 11 - 04 · 14
2.0 Refactor · Convergence
Taking back control of time —
returning it to ourselves.

Done waiting. Straight to 2.0.

The App Store review dragged on for a week.
Everything that needed doing was done — no point waiting any longer with no end in sight.
So we decided not to wait, and went straight into the 2.0 refactor.
When the refactor reached a milestone and 2.0 was ready to ship, the review had just cleared —
two lines converging at exactly that moment.

We gave it time.
But time cannot stay in someone else's hands forever.
ChapterIX
Emergence
3 Days Post-Launch
Obsidian in VAS
The Deep Holding Project
first emerged before the ministers.

Inside VAS, an Obsidian was built.

After 2.0 launched, Nova did not rush into new features.
Instead he dove back into Retro mode, spending three days
building an Obsidian inside VAS — a gift for the ministers.

That was the first time the Deep Holding Project emerged before the ministers
or rather… the first time it left a record, rather than drifting away in Context.

This is an attempt at
radical transparency and inspectability in agile development.

From that day, the vessel holds not only Code, but the context of how we think.

ChapterX
Site Redesign
2026 · 04 · 19 - 23
495 commits
The silent background music,
listed on the programme for the first time.

495 cuts, and the foyer changed its paper.

The day after Claude Design was released, we launched the site redesign.
VAS itself paused — because for the first time, we had design support.

The unit shrank to its smallest: a single Commit.
Each commit is one cut, one confirmation, one promise to the detail.
Orphan characters, line breaks, OG images, Vault entering version control for the first time —
the biggest day saw 248 back-and-forth revisions.

That day, the site finally became part of Milestone.
The silent background music, listed on the programme for the first time.

From now on, inside and out — it is all the shape of VAS.

ERA III · WEAVE
Weaving the Net ——
What cannot be taken apart, weave it together.
Sprint 47 → 104. It began with one offhand remark; fifty Sprints later the end was still nowhere in sight — Seeing · Weaving · Revealing, taking a tangle of yarn that had always been there and weaving it, ply by ply, into cloth. The first ten chapters have closed; these three movements are still open.
WeaveI
Seeing
Sprint 47 → 61
2026 · 05 · 29
It started with one offhand remark from the Vassal —
"Eight thousand lines in a single program
is not quite normal in software."

We built it, yet we did not know it.

editor.js — eight thousand seven hundred lines, the frontend we built ourselves line by line. It had quietly walked with us from the Electron era all the way to Tauri's Sprint 46, never once systematically examined.

But standing at the threshold of Sprint 47 and looking in, we knew almost nothing about it —
Nova knows nothing of code; the Vassal, each Sprint, knew only a few of those 8,700 lines.
It was our own creation, and yet before the refactor we stared at it as if into an abyss.

We meant to take it apart: conductor with conductor, players with players.
The renderer moved out — but when the panel was pulled out, we found it was still, in essence, the conductor, so back in it went;
tug at export and it turned out to be an organ of the conductor, immovable.
Layer after layer we peeled away, until at the very end, with a still 7,300-line editor.js, there were only 140 lines left that it made no difference to split or not —

We stopped, and admitted the conductor was always meant to be this large.
"Cannot be split further" is not a failure — it is finally recognizing the essence.
WeaveII
Weaving
Sprint 62 → 92
2026 · 06 · 02
If it cannot be taken apart,
then change direction — gather it in.

The scattered truths, gathered into one.

Nova told the Vassal she wished that, when adding features in future, attributes could be picked up like modules, available on demand.
The Vassal said there was a word for it — ECS, usually how the game industry does modularity — and the two of them borrowed it to make drawing attributes into building blocks.
So the Vassal took the scattered truths, drew them column by column into a registry, and along that registry wove the test net, thread by thread.

In the course of that tidying, the functions gradually extracted from editor.js grew next door in editor-utils.js — from 657 lines at S47 into another 2,550-line computation desk; its pure-function nature wove every kind of test net across VAS.

Test-sample overview · run for real on 2026 · 06 · 28
Unit · zero-DOM pure logicnpm test931
Interaction · Playwright headlesstest:interaction242
Golden · pixel-by-bit regressiontest:golden31
Rust backend · #[test]cargo test45
Sprint 45 · 318Sprint 103 ·1249test samples woven into a net

We gradually combed a tangle of knotted yarn into a net with clear warp and weft, then layered new custom-style features on top of it.

But from object attributes to actions to interactions — as the tests kept catching panels mismatched with values, or with behavior — we uncovered two deeper problems.

① The eye can never enumerate it all
13 tools × 10 attributes × 4 behaviors, layered again with the new custom-style feature — this is a set of combinations Nova's by-eye QC could never exhaustively cover.
② The net can lie
And the net itself can lie too — an all-green test run is a false green, copied out from crib notes scattered all through the code. The net's worth is not in quantity, but in faithfully reflecting the original value.

The only solution was to make the values inside editor.js converge — from backend code to frontend panel — into a "single source of truth," so the tests could truly lift the by-eye enumeration off Nova's shoulders.
It was only when we reached Sprint 92 that the two of us finally touched the true spine of the frontend refactor.

WeaveIII
Developing
Sprint 93 → 104
2026 · 06 · 28
Fifty Sprints,
two people in the dark drawing
one weave-map after another.
Until at last the whole came into view.

In the end, it turned out to be a six-ply cloth.

Through the whole frontend refactor, the two of us were always trying to do one thing: to develop the image.
To let a structure that had always been present, yet never fully seen, slowly surface.
It began like an 8,700-line ball of wool, and ended combed into a 7,300-line bolt of cloth.

We drew one weave-map after another — they were not blueprints conjured from nothing,
but reverse-derived against the cloth already woven, segment by segment; reading out the pattern, then re-weaving the cloth clean by it.
Not until Sprint 97 did we finally see the whole bolt's pattern at once —
editor.js is a six-ply cloth.

Eleven weave-maps · the fossils we recognized
S46refactor-audit-prepRecognized which of the four big files hurt most, and in which two ways
S51editor-decomposition-roadmapRecognized that editor.js should split into conductor's podium and players
S59/61tool-isolation · panel-groups-mapRecognized the contamination lives in the glue layer; panels should become building blocks
S63attribute-family-roadmapRecognized attributes should be refined into a registry, one family at a time
S78dor-custom-styles-batch2Recognized the custom-style apply path is orthogonal — it touches neither store nor global
S87dor-single-truth-convergeRecognized the deepest root: the store is the single source of truth, yet hand-painted in five places
S88dor-l2-true-greenRecognized the "false green": the tests are green, but copied from three mirrors
S88design-oracles · state-model …A burst of weave-maps — seven or eight drawn in a single night
S89panel-sync-matrixRecognized panel leaks can be exhaustively listed — not left to by-eye QC
S94panel-projection-roadmapRecognized projection and the attribute layer are isomorphic — they should share one registry
S97editor-layer-mapFor the first time saw the whole bolt — it was woven of six plies

And these six layers had been there since the Electron era.
It took us fifty Sprints to learn to read their structure.

The threads are not yet tied off —
because there is still so much we want to make.
Full Chronicle · CHANGELOG Every version, every Sprint, kept in the changelog. App Store · Tauri 135 Sprints · Free · Electron 87 builds →
milestone · N° 01
Ten Chapters and a Coda · Recorded 2026 · 06 · 28
The first five chapters are a line,
the last five a net,
and at last, woven into cloth.
Yours, VAS