Skip to content

docs: the layout table describes the tree that now exists - #458

Merged
oddharsh merged 2 commits into
mainfrom
docs/layout-after-split
Aug 18, 2026
Merged

oddharsh merged 2 commits into
mainfrom
docs/layout-after-split

Conversation

@oddharsh

Copy link
Copy Markdown
Owner

Seven slices moved almost every path in this repository (#450, #451, #452, #453, #455, #456, #457), and the automated sweeps that repointed code also walked CLAUDE.md. That left the map wrong in two different ways, and the second is the one that matters.

Stale

The table said public/ holds "pages, client scripts, CSS, photos, dictionaries". It holds none of the first four now. This adds rows for src/pages/, src/content/ and src/dict/, folds scripts/ into the tools/ row, and checks every remaining description against the tree rather than against its own history. The intro bullet, which still called public/ the live site "including the _worker.js/ dispatcher", is two moves out of date and now names what each root is for.

False

The sweep rewrote historical names, so the file claimed the Worker used to live at public/_worker.js/ and the photo pipeline at public/scripts/. Neither ever existed.

A stale note is one somebody distrusts. A false one is one somebody follows.

The naming note now records the full sequence — holding/, then www/ from 2026-08-11, then the split — and says explicitly that the path rewrites deliberately left old mentions alone, so reading www/ in an older note is correct rather than a typo. It also drops the "duplicate path" explanation, since scripts/ no longer exists to be confused with tools/photos/.

And one thing the table never said

Where a new file goes: if a build step transforms it, it is src/; if it ships byte-for-byte, it is public/. That rule is what the seven slices were actually implementing, and it was only ever implicit.

No code changes, and the contract suite passes.

Seven slices moved almost every path in this repository (#450, #451, #452,
#453, #455, #456, #457), and the automated sweeps that repointed code also
walked CLAUDE.md. That left the map wrong in two different ways.

STALE: the table still said public/ holds "pages, client scripts, CSS, photos,
dictionaries". It holds none of the first four now. Rows added for src/pages,
src/content and src/dict; scripts/ folded into the tools/ row; every row's
description checked against the tree rather than against its own history.

FALSE: the sweep rewrote HISTORICAL names, so the file claimed the Worker lived
at `public/_worker.js/` and the photo pipeline at `public/scripts/`. Neither
ever existed. A stale note is a note somebody distrusts; a false one is a note
somebody follows.

The naming note now records the full sequence, holding -> www -> the split, and
says explicitly that the rewrites deliberately left old mentions alone, so
reading `www/` in an older note is correct rather than a typo. It also drops the
"duplicate path" explanation, since scripts/ no longer exists to be confused
with tools/photos/.

And it states the test for where a new file goes, which the table never did: if
a build step transforms it, it is src/; if it ships byte-for-byte, it is public/.
The bullet under the header still called public/ the live site including the
_worker.js/ dispatcher, which is two moves out of date: the Worker left the
served tree in #450 and the documents left it in #457. It now names what each
root is for, which is the same question the table below answers per entry.
@oddharsh
oddharsh merged commit 9cf3d43 into main Aug 18, 2026
6 checks passed
@oddharsh
oddharsh deleted the docs/layout-after-split branch August 18, 2026 16:31
oddharsh added a commit that referenced this pull request Aug 19, 2026
The layout table documented `public/terminal.js`, a client-side PowerShell
console that #266 deleted when it stopped emulating a shell. Nothing in the tree
has a client terminal script, and `createTextNode` appears nowhere under src/ or
public/. A later path sweep had rewritten the prefix to `public/`, which is what
made a dead reference read as maintained. The row now describes
`src/worker/wire.ts`, which is what /terminal is: server-rendered, nothing to
type into, showing a real POST /mcp exchange.

The row below it still assumed a console you type into, so two phrases move to
what /terminal renders. Its 80-column frame claim is untouched and still true:
tui.ts carries 443 box-drawing characters and COLS = 80.

The naming note pointed at `www/`, which the same commit that wrote the sentence
had deleted. It now names src/worker/ and tools/photos/, and it records that both
earlier versions of that sentence were mangled by the rewrites it warns about:
the pre-#458 one came out as "public/ was called public/" because the
www-to-public pass caught both halves of a sentence about the old name.
oddharsh added a commit that referenced this pull request Aug 19, 2026
…ead ones (#465)

* docs: point the Worker file references at the .ts files that exist

#459 and #460 converted the Worker to TypeScript and CLAUDE.md kept naming the
.js files, so 53 references across 26 filenames sent a reader to a path that is
not there. lib/security.js, lens.js, lib/trace.js and the rest are all .ts now.

Scoped deliberately. The naming note at the top of this file records that the
automated path rewrites were careful NOT to rename historical mentions, since
doing so falsifies notes about what the tree looked like at the time, so every
`_worker.js/` and `www/` prefixed mention is left exactly as it was. What
changed is the extension on references to files that still exist under the same
name, which is a conversion rather than a move.

The three bare `index.js` that mean the Worker entrypoint are matched on their
surrounding sentences, because the other three mean cal/src/index.js and
lens-reader's src/index.js and are correct as they stand. Client scripts
(nav.js, tooltip.js, quiz.js, hoist.js), cal/, serendipity and lens-reader are
untouched: those are still JavaScript.

Verified rather than assumed: every .ts path named in this file now resolves to
a real file, no .json or .jsonc reference was caught by the extension match, and
the historical mention counts are unchanged.

* docs: retire the deleted terminal row, and repair the naming note

The layout table documented `public/terminal.js`, a client-side PowerShell
console that #266 deleted when it stopped emulating a shell. Nothing in the tree
has a client terminal script, and `createTextNode` appears nowhere under src/ or
public/. A later path sweep had rewritten the prefix to `public/`, which is what
made a dead reference read as maintained. The row now describes
`src/worker/wire.ts`, which is what /terminal is: server-rendered, nothing to
type into, showing a real POST /mcp exchange.

The row below it still assumed a console you type into, so two phrases move to
what /terminal renders. Its 80-column frame claim is untouched and still true:
tui.ts carries 443 box-drawing characters and COLS = 80.

The naming note pointed at `www/`, which the same commit that wrote the sentence
had deleted. It now names src/worker/ and tools/photos/, and it records that both
earlier versions of that sentence were mangled by the rewrites it warns about:
the pre-#458 one came out as "public/ was called public/" because the
www-to-public pass caught both halves of a sentence about the old name.

---------

Co-authored-by: Aadharsh Pannirselvam <19518661+oddharsh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant