Skip to content

Comments that still describe the old tree, and a flow map pinned to one edition - #281

Merged
dhobi merged 1 commit into
masterfrom
fix/comments-and-a-pinned-flowmap
Aug 23, 2026
Merged

Comments that still describe the old tree, and a flow map pinned to one edition#281
dhobi merged 1 commit into
masterfrom
fix/comments-and-a-pinned-flowmap

Conversation

@dhobi

@dhobi dhobi commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Two things, and the second is the one that had a decision in it.

The comments

A source comment naming a path is documentation, and it rots the same way — so this is the sweep #279 did for docs/, run over the code. Not by memory: a scan pulled every path-shaped token out of every comment in the four packages and tools/, resolved each against the filesystem, and only what failed to resolve was touched. Most of what it found was idiomatic shorthand and correct (df/savegame.ts, nav/dials.ts, a served editors/tracks.html); what was left was essentially one shape, in twenty-odd places.

engine/<x>.ts used to name the runtime directory. engine/ is the whole package now, so each of those reads as a file that is not there. Inside the package they become runtime/<x>.ts, matching the df/<x>.ts shorthand already used beside them; outside it they are spelled out in full. The same move sent bug-report.ts to site/, mklangstg.ts into taoot/tools/, the editors into site/editors/, and masks.ts out of the playthrough into the runtime — where session.ts was still pointing at its old home, i.e. from the engine into a game's test directory, for a file now sitting next to it.

Two that were not path drift:

  • tools/gif.ts credited tools/mkintromov.ts, renamed and moved to taoot/tools/mknightdive.ts.
  • proptrace.ts explained what it replaced by naming taoot/tests/browser/iface.ts, which appears in no commit — a throwaway probe never checked in. The account is worth keeping; the path is not.

And dust/src/main.ts opened by declaring the page has "no engine, no interpreter, no editions, no saves" — while importing GameHost, the save browser and two audio sinks. True of the experiment, and it stopped being true as the experiment worked. It now describes what the page does: boots off the disc through the same host Titanic uses, plays the intro films through the engine's own MoviePlayer, saves .rtd through the shared browser. What survives of the original is the standalone set walker, kept by start() as the fallback for a boot that cannot produce a viewer — so the "every frame decoded up front" section now says which half of the page it is about, because the game does not pay that cost.

The flow map reads one tree, and says which

Per the call on #280. flowmap.ts emits two committed artifacts: shipgraph.gen.ts, which the playthrough navigator walks, and the interactive map under docs/public/. Its input was the whole rip, so its output was a function of which editions the person running it happened to have. On a seven-tree install that is 326 trips against en's 271 — scripts are deduplicated by content, but the trees are not all the same game, and demo is a different cut contributing trips the full game has not got.

The default is now one tree via activeLanguage(): TAOOT_LANG when set, en when not, a path argument to override. The generated header records which tree it read, so the next regeneration is comparable to this one:

/* GENERATED by taoot/tools/flowmap.ts — do not edit.
 * 271 set-to-set trips, 214 of them fully understood.
 * Read from the en tree.
 * Regenerate: npx tsx taoot/tools/flowmap.ts
 */

Regenerated deliberately on that footing, and the result is the reassuring one: the graph data is byte-identical to what was committed — that header line is the entire diff — and the flow map's own output does not change at all.

So nothing had drifted. The committed artifacts were always en; there was simply no way to reproduce them until #280 fixed the publish path, and no way to know you had until now. Both facts are now pinned rather than lucky.

Verified

npm test 534/534 · npm run test:playthrough 30/30 · tsc --noEmit clean · build:dust clean · dust/tests/browser/built-layout.ts good across four viewports.

🤖 Generated with Claude Code

…ne edition

Two things, and the second is the one with a decision in it.

## The comments

A source comment naming a path is documentation, and it rots the same way — so
this is the same sweep #279 did for `docs/`, run over the code. Not by memory:
a scan pulled every path-shaped token out of every comment in the four packages
and `tools/`, resolved each against the filesystem, and only what failed to
resolve was touched. Most of what it found was idiomatic shorthand and correct
(`df/savegame.ts`, `nav/dials.ts`, a served `editors/tracks.html`); what was
left was one shape, in twenty-odd places.

`engine/<x>.ts` used to name the runtime directory. `engine/` is the whole
package now, so every one of those reads as a file that is not there. Inside the
package they are `runtime/<x>.ts`, matching the `df/<x>.ts` shorthand already
used beside them; outside it they are spelled out. The same move sent
`bug-report.ts` to `site/`, `mklangstg.ts` into `taoot/tools/`, the editors into
`site/editors/`, and `masks.ts` out of the playthrough and into the runtime —
where `session.ts` was still pointing at its old home, which is now a reference
from the engine into a game's test directory for a file that sits next to it.

Two that were not path drift:

  - `tools/gif.ts` credited `tools/mkintromov.ts`, which was renamed and moved
    to `taoot/tools/mknightdive.ts`;
  - `proptrace.ts` explained what it replaced by naming
    `taoot/tests/browser/iface.ts`, which is in no commit — a throwaway probe
    that was never checked in. The account is worth keeping and the path is not.

And `dust/src/main.ts` opened by saying the page has "no engine, no interpreter,
no editions, no saves" while importing `GameHost`, the save browser and two
audio sinks. That was true of the experiment and stopped being true as the
experiment worked: it boots off the disc through the same host Titanic uses,
plays the intro films through the engine's own `MoviePlayer`, and saves `.rtd`
through the shared browser. What is left of the original is the standalone set
walker, which `start()` keeps as the FALLBACK for a boot that cannot produce a
viewer — so the "every frame decoded up front" section now says which half of
the page it is about, because the game does not pay that cost.

## The flow map reads one tree, and says which

`flowmap.ts` emits two things that are COMMITTED: `shipgraph.gen.ts`, which the
playthrough navigator walks, and the interactive map under `docs/public/`. Its
input was the whole rip, so its output was a function of which editions the
person running it had installed. On a seven-tree install that is 326 trips
against `en`'s 271 — scripts are deduplicated by content, but the trees are not
all the same game, and `demo` is a different CUT that contributes trips the full
game has not got.

So the default is one tree now, via `activeLanguage()`: `TAOOT_LANG` when set,
`en` when not, a path argument to override, and the generated header records
which tree it read so the next regeneration is comparable to this one.

Regenerated deliberately on that footing, and the result is the reassuring one:
**the graph data is byte-identical to what was committed** — 271 trips, 214
fully understood, the header line the only diff — and the flow map's own output
does not change at all. The committed artifacts were always `en`; nothing had
drifted, and there was no way to reproduce them until #280 fixed the publish
path. Now there is, and it is pinned.

Verified: `npm test` 534/534, `npm run test:playthrough` 30/30, `tsc --noEmit`
clean, `build:dust` clean, `dust/tests/browser/built-layout.ts` good across four
viewports.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dhobi
dhobi merged commit db29a6a into master Aug 23, 2026
2 checks passed
@dhobi
dhobi deleted the fix/comments-and-a-pinned-flowmap branch August 23, 2026 12:58
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