Repository navigation
docs: the layout table describes the tree that now exists - #458
Merged
Merged
Conversation
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
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 forsrc/pages/,src/content/andsrc/dict/, foldsscripts/into thetools/row, and checks every remaining description against the tree rather than against its own history. The intro bullet, which still calledpublic/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 atpublic/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/, thenwww/from 2026-08-11, then the split — and says explicitly that the path rewrites deliberately left old mentions alone, so readingwww/in an older note is correct rather than a typo. It also drops the "duplicate path" explanation, sincescripts/no longer exists to be confused withtools/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 ispublic/. That rule is what the seven slices were actually implementing, and it was only ever implicit.No code changes, and the contract suite passes.