- config.json: theme gruvbox (was matrix_crt).
- tailwind darkMode 'class' + src/pages/_document.tsx sets <Html className="dark">,
so dark mode applies regardless of the visitor's system setting.
- global.css: retheme the hardcoded terminal accents (prompt, tree, sumfetch,
scrollbar, resume button) from matrix-green to gruvbox yellow/aqua/fg.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt6ycjAMdUMqGTGtbKocrs
Wire MiTerm (canonical) to publish its static export into Mihir-Null.github.io,
which serves GitHub Pages (nullis.me) from docs/.
- package.json: `export` script (next build && next export -o out) that also
regenerates the résumé mirrors via prebuild.
- public/CNAME (nullis.me) + public/.nojekyll so the export is Pages-ready.
- .github/workflows/deploy.yml: on push to main / manual dispatch, build and
publish ./out to github.io/docs via peaceiris/actions-gh-pages.
- docs/decisions/0002-deploy-topology.org: records the topology and the one
operational dependency — the GH_PAGES_DEPLOY_TOKEN secret the user must add.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt6ycjAMdUMqGTGtbKocrs
Make the plain page (public/resume.html) a generated declared mirror so it and
the terminal share one source, and enrich that source to the superset both need.
- resume.org: merged to the superset — richer achievement-oriented bullets,
per-item subtitle/location/tech tags, all projects (adds Terrapin Rocket,
Robotics@UMD) and the full course list.
- org-to-json parser: optional subtitle/location fields + `- tech :: X` tagged
bullets; `list` flag so education stays bullet-free; empty tag arrays dropped.
- scripts/build-resume-html.mjs + resume.template.html: the template owns the
design (unchanged look); content is rendered from resume.json. Adds a global
search box that filters every card and course pill across sections, with a
no-results empty state. HTML-escaped; arXiv ids linkified.
- resume:build now generates both mirrors; resume:check + CI canary verify both.
Verified: yarn build + tsc clean; both canaries green; driven headless — design
preserved, 17 cards render, search isolates by keyword/tech/course, no errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt6ycjAMdUMqGTGtbKocrs
Make MiTerm the canonical app (was the stale LiveTerm template) and strip it
back to a clean, minimal terminal wired to the resume.json single source.
Port:
- Bring the evolved components/pages/utils in from the github.io fork; drop the
old history/ folder + api_commands.ts. Import matrix theme + tailwind resolver.
De-bloat:
- Remove the CRT barrel-distortion generator, SVG filters, and crt-frame/inner
wrappers from _app.tsx; keep only the live clock/age ticker.
- Delete the crt command (and warp/curve) and the dead .login-* overlay CSS.
- global.css trimmed to base + flat sumfetch + hover/clickable styling.
SSOT wiring:
- New src/utils/resume.ts: single typed accessor over resume.json. commands,
sumfetch, and api read identity/content from it; config.json now holds only
site config (identity/contact facts live once, in resume.org).
- sumfetch and ls reduced from boxed ASCII widgets to flat text: tree default
listing, hover-highlight rows, clickable links (arXiv auto-linkified).
Verified: yarn build + tsc clean; driven headless — landing renders, live clock
ticks, help has no crt, links clickable, no console errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt6ycjAMdUMqGTGtbKocrs
Establish the canonical résumé authoring layer, the heart of the MiTerm
redesign toward a single source of truth.
- resume.org: canonical résumé as org-roam nodes (one :ID: heading per
experience/project/education/org/publication item + profile + skills).
- scripts/org-to-json.mjs: contract-first, dependency-free parser that emits
a deterministic resume.json declared mirror; --check is the drift canary.
- resume.json: generated mirror consumed (next phase) by the terminal and the
plain résumé page.
- prebuild/predev generate the mirror; .github/workflows/resume-canary.yml
fails CI when resume.json drifts from resume.org.
- docs/decisions/0001: MADR record of the source/pipeline/topology/minimalism
decisions. docs/resume-pipeline.org: reference + mirror table.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nt6ycjAMdUMqGTGtbKocrs
When you run a command such as `help`, the terminal will automatically scroll down to the bottom of the output and to the next prompt. This doesn't happen for api commands such as `weather Miami`. This PR changes that and matches the api command behavior to the regular ones.