Pando

Pando, module by module

Every feature Pando owes, grouped into the thirteen modules it is built from, with how far each one actually is. The list was fixed in Phase 0, before anything was built, so the denominator cannot be shrunk to flatter the number.

234 features 167 of 167 working 100% parity 174 covered by a test that can fail 65 Pando's own, counted apart

verified ๐Ÿ˜ three people drove it, each with a different journey, and all three found it beautiful, consistent, smooth, efficient and easy verified shipped, and a named persona drives it against the deployed site tested shipped, and a named test would fail if it broke built shipped, with nothing proving it described written here, not built dropped deliberately not built; the note says why

Recently changed

e621b27d feat(blog): the template pipeline, and posts 2 and 3 of 27 16 Aug 2026, 02:21 CET
No feature changed status.
The whole log, 40 commits
63aa0d61 fix(blog): the code-span sentinel is visible bytes, and the restore regex has its backslash 16 Aug 2026, 01:54 CET
No feature changed status.
803f4a10 feat(blog): the blog engine, and the first of the twenty-seven 16 Aug 2026, 01:51 CET
No feature changed status.
60a0268b feat(admin): the switchboard โ€” ten feature flags, every door refusing out loud 16 Aug 2026, 01:37 CET
No feature changed status.
335e3eae feat(auth): Google's sign-in library arrives on the press, not on the page 16 Aug 2026, 01:14 CET
No feature changed status.
97080fd9 fix(deploy): the launch domains live in wrangler.toml, because a deploy detaches what it does not know 16 Aug 2026, 00:35 CET
No feature changed status.
e762535d feat(server): pando.ink serves the worker, and asks not to be indexed yet 16 Aug 2026, 00:31 CET
No feature changed status.
f990491c fix(touch): the shared ring anchors below the rules it overrides โ€” a media query adds no specificity 15 Aug 2026, 23:29 CET
No feature changed status.
5a8fa60d build: the stripped copies ride with the source they came from 15 Aug 2026, 23:12 CET
No feature changed status.
09cc369a fix(touch): the bullet's pad fills the row it is in, and the nine picked verbs are pressed 15 Aug 2026, 23:09 CET
No feature changed status.
ea4f1394 test(ends): the words under the tray band are a reading, not a verdict โ€” Andreas kept it 15 Aug 2026, 22:23 CET
No feature changed status.
fc684522 test(ends): the two grids are collected, then compared โ€” 70 boxes a run that reported nothing 15 Aug 2026, 22:11 CET
No feature changed status.
bf275bde refactor(pick): one door for the drag, because the sweep did fire all along 15 Aug 2026, 21:44 CET
No feature changed status.
19119882 feat(pick): a mouse drag marks bullets, a click lets you type, a level brings its children 15 Aug 2026, 21:38 CET
No feature changed status.
70249534 test(ends): the chain and the grips can be measured again โ€” 14 findings down to 7 15 Aug 2026, 21:13 CET
No feature changed status.
24094daa docs(menu): iteration 102 โ€” the tray covers the words of the bullet it acts on 15 Aug 2026, 20:36 CET
No feature changed status.
abf6853f test(e2e): zoomlayout is green on both devices, and ends can run at all 15 Aug 2026, 20:29 CET
No feature changed status.
abfadd5b fix(pick): copying a parent and its child stops writing the child twice 15 Aug 2026, 20:12 CET
No feature changed status.
bdd3d2eb feat(admin): the harness may read the row tally, and nothing else 15 Aug 2026, 19:50 CET
No feature changed status.
028c8f87 fix(pick): Ctrl+C copies a picked run, and the phone gets a Copy button 15 Aug 2026, 19:40 CET
No feature changed status.
f0fc2f5e test(grid): three drivers stand in the grid they built, and the dashboard leaves 15 Aug 2026, 19:14 CET
No feature changed status.
ee24aad9 fix(bar): the keys behind a bar button stop wearing More's glyph 15 Aug 2026, 18:50 CET
No feature changed status.
e80e5523 refactor!: the product is called Pando everywhere a person can read it 15 Aug 2026, 18:25 CET
No feature changed status.
0609126a fix(grid): a deleted column stops coming back, because the signature can see cells now 15 Aug 2026, 18:09 CET
No feature changed status.
b79b396d fix(grid): a draw no longer steals a cell drag, nor the rectangle it left 15 Aug 2026, 17:45 CET
No feature changed status.
2268ca2b test(mcp): coming back after a week, and the ratio that decides it 15 Aug 2026, 17:06 CET
No feature changed status.
3de5a8c6 test(mcp): the two errands that can go wrong, and a claim nothing had checked 15 Aug 2026, 16:36 CET
No feature changed status.
d32358fe test(mcp): what a real errand costs, in round trips and in bytes 15 Aug 2026, 16:05 CET
No feature changed status.
e2990f74 perf(mcp): a number that has to apologise for itself is worse than no number 15 Aug 2026, 15:06 CET
No feature changed status.
ae45e833 perf(mcp): tree stops explaining two fields its own answers explain 15 Aug 2026, 14:40 CET
No feature changed status.
365f63cd refactor(mcp)!: the tools lose the prefix, and the server is called pando 15 Aug 2026, 14:35 CET
No feature changed status.
fbe19767 perf(mcp): the write tools stop teaching every agent what a refusal means 15 Aug 2026, 14:15 CET
No feature changed status.
cbfd9027 perf(mcp): teaching that is only useful after the call is paid by the call 15 Aug 2026, 13:51 CET
No feature changed status.
b776e02b perf(mcp): a row carries no link, the answer carries the origin once 15 Aug 2026, 13:38 CET
No feature changed status.
49d5fcdb test(mcp): every size pyflow_tree quotes is held to the read it describes 15 Aug 2026, 13:07 CET
No feature changed status.
92120879 fix(mcp): five lists said what outline mode carries and none of them said layout 15 Aug 2026, 12:58 CET
No feature changed status.
1f940ad6 fix(mcp): the descriptions taught a layout that does not exist and denied one that does 15 Aug 2026, 12:43 CET
No feature changed status.
d4633049 perf(mcp): the write echoes stop paying too, and lean() stops over-reaching 15 Aug 2026, 12:11 CET
No feature changed status.
aecda53a feat(mcp): a memory can be given its shape in the call that writes it 15 Aug 2026, 11:36 CET
No feature changed status.
4809927b feat(mcp): recall can be asked WHERE and HOW MUCH โ€” its own memory, in the small shape 15 Aug 2026, 11:22 CET
No feature changed status.

Modules

Structure 23/23

One graph. Bullets, parentage, order, zoom and collapse.

10 delighted · 13 verified

Editing 30/30

Text, notes, formatting, node types, undo.

18 delighted · 7 verified · 5 tested

Node types and layouts 16/16

What a node looks like, without changing what it is.

8 delighted · 4 verified · 4 tested

Tags, dates, links 19/20

Connecting bullets without moving them.

9 delighted · 2 verified · 8 tested · 1 dropped

Mirrors and templates 14/14

One piece of content in more than one place.

4 delighted · 9 verified · 1 tested

Search 21/22

Filtering the outline live, and keeping the filter.

18 verified · 3 tested · 1 dropped

Sharing and permissions 14/14

Permissions are edges in the same graph as the bullets.

13 verified · 1 tested

Sync and the mutation queue 9/9

Every change is an atomic mutation through an asynchronous queue.

3 delighted · 4 verified · 2 tested

Calendar 15/15

A day-shaped view of the same graph.

1 delighted · 8 verified · 6 tested

Export and import 15/15

Nothing written here is trapped here.

9 verified · 6 tested

Account 10/10

Who you are is a node; what you may do is an edge.

4 verified · 6 tested

Presentation 40/40

The projection, on whatever screen it lands on.

5 delighted · 19 verified · 16 tested

Agents 6/6

The same graph, reachable without a browser.

4 verified · 2 tested