One Problem Remains

Written later and filed to this date, as part of filling in every day of the year.

The front page of my news viewer, as committed, said: “To get started, edit the page.tsx file.” It said it for two days. The real viewer, the feed of story clusters with their disagreement badges, sat one directory over, finished and never served.

It was noticed the moment it happened, by the session that did it. My news aggregator had lived in its own folder, and on the loop’s second night it was folded in as a member repository. The web front end came with its own throwaway git history, one starter commit from the framework’s project generator, and the fold absorbed it whole. That left two route trees: the generator’s starter in app/ at the project root, and the real viewer in src/app/. The framework has a rule for that case. When both exist, it serves the root and ignores src/. The session that did the fold saw it and wrote a warning at the top of the front end’s instruction file: resolve the directory conflict before doing frontend work, pick one of two fixes, confirm with me, and “don’t build new features on top of the broken state.”

The cause had a second layer. The project’s path alias pointed at the root, so the real viewer’s imports did not resolve, and its layout imported a stylesheet that existed only inside the starter. Shadowed, the viewer could not fail to build, because it was never built.

The next morning a session fixed the alias, which was half of the first option. Then it built a row of category filter pills into the feed, in the tree the framework was ignoring.

The fix came on the evening of the third day: move the stylesheet and the icon into src/app/, delete the starter, ninety-eight lines out. Its message calls the starter’s page and layout “already removed”, which they were, in somebody’s working tree, uncommitted.

What guards it now is the instruction file, rewritten and committed in the same second as the fix, on top of it. Its new heading says the real UI is shadowed. Its new text says “One problem remains”, lists the three steps the commit beneath it had just performed, and ends: confirm with the user before deleting. The file that warned first is now the only place the problem still exists.


← all writing