This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in node_modules/next/dist/docs/ before writing any code. Heed deprecation notices.
- The home is an interactive terminal. Commands live in
src/lib/terminal/(content-commands.tsx,system-commands.tsx,nav-commands.tsx,ask-command.tsx,mail-command.tsx); the engine isregistry.ts+parse.ts+run.ts+complete.ts+history.ts, andsrc/components/terminal/only renders (shell, prompt, output, boot).terminal-app.tsxis where commands are registered, inhelporder. - No
innerHTML/dangerouslySetInnerHTMLin the terminal: every output line is aReactNode, and anything the visitor typed is displayed literally. - Content is never hardcoded in
lib/terminal: it comes fromlib/(projects-repo,timeline,toolkit,site,ghost) throughlib/terminal/data.ts, and every visible string comes fromsrc/dictionaries/*.jsonunder theterminalkey. Command, alias and file names stay in English in both locales. - Adding a command: register it, add
help.describe.<name>to both dictionaries (pnpm lintchecks parity), document it in.docs/design/commands.mdand runpnpm docs:commands.