Skip to content

Conversation

@VatsalSy
Copy link
Member

Summary

  • Add thesis navigation and defense stream content updates
  • Refresh dependency set and related tooling updates

Changes Made

  • Add PhD thesis link to the navbar and update thesis page content
  • Update CSS and JS to support the new thesis section updates
  • Refresh dependencies and lockfiles, including fsevents support updates
  • Adjust workflow/config housekeeping tied to the dependency refresh

Testing

  • Not run (content and dependency updates only)

- Fix js-yaml prototype pollution vulnerability (CVE-2025-64718)
- Add npm override to force js-yaml 4.1.1 for all dependencies
- Upgrade ESLint 8.x → 9.x with updated flat config
- Upgrade Jest 29.x → 30.x
- Upgrade husky 8.x → 9.x with new prepare script format
- Upgrade lint-staged 15.x → 16.x
- Upgrade markdownlint-cli2 0.18 → 0.20
- Upgrade prettier 3.1 → 3.7
- Upgrade stylelint 16.1 → 16.26
- Upgrade stylelint-config-standard 36 → 37
- Add globals package for ESLint 9.x browser globals
- Create stylelint.config.js with vendor file exclusions
Include video embed, defense details, and shared section styling.
Surface the thesis page alongside other top-level links.
Copilot AI review requested due to automatic review settings January 25, 2026 23:38
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 25, 2026

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • PhD Thesis page added to the site navigation
    • Math rendering enabled site-wide
  • Style

    • New responsive thesis layout and styling for intro, summary, and About sections
    • Minor client-side UI string consistency tweaks
  • Chores

    • Automated workflow now uses an app token for pushes; branch protection respected
    • Linting config refreshed; ignore list updated
  • Documentation

    • New developer reference added; content page metadata updated

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Replaces a PAT-based CI push with a GitHub App token flow; adds PhD thesis content and MathJax; introduces thesis-specific styles and responsive layout; updates lint config and .gitignore; adds AGENTS.md; minor JS string delimiter and formatting tweaks.

Changes

Cohort / File(s) Summary
CI / Workflows
.github/workflows/update-search.yml
Reworked workflow to remove PAT (BYPASS_TOKEN). Keeps checkout and cloning of comphy-search, adds step to create a GitHub App installation token, and commits/pushes using the App token; normalized quoting/formatting and branch/path patterns.
Site content & templates
CLAUDE.md, _layouts/default.html
Adds CLAUDE.md; converts phd-thesis.md from a redirect to a content page (now listed in CLAUDE.md); adds PhD Thesis nav link and MathJax config/script in the default layout.
Styles / Assets
assets/css/styles.css
Adds thesis presentation styles (.s-intro .thesis-info-grid, .thesis-section, .thesis-summary-grid, responsive rules, animations) and related layout/mobile adjustments; minor formatting cleanup.
Scripts
assets/js/main.js
Minor delimiter changes: two string literals changed from single to double quotes in copy-related DOM calls (no behavioral change).
Linting & ignores
eslint.config.js, .gitignore
Updated ESLint: imported globals, set ecmaVersion to 2021, replaced boolean env flags with spreads. .gitignore updated (removed windsurfrules, cursorrules; added CLAUDE.md).
Docs / Developer notes
AGENTS.md
Adds developer/agent guide describing site structure, build commands, Ruby version, content management notes, and deployment/testing guidance.

Sequence Diagram(s)

sequenceDiagram
  participant Action as GitHub Action
  participant Repo as Repository (origin)
  participant SearchRepo as comphy-search
  participant GitHubApp as GitHub App
  participant Git as Git (push)

  rect rgba(200,220,255,0.5)
    Note over Action,Repo: New flow (App token)
    Action->>Repo: checkout (fetch-depth preserved)
    Action->>SearchRepo: git clone/comphy-search
    Action->>GitHubApp: request installation token
    GitHubApp-->>Action: returns App token
    Action->>SearchRepo: copy `search_db.json` -> working tree
    Action->>Git: commit & push using App token
  end

  rect rgba(255,220,200,0.5)
    Note over Action,Repo: Previous flow (PAT)
    Action->>Repo: checkout
    Action->>SearchRepo: git clone/comphy-search
    Action->>Git: commit & push using BYPASS_TOKEN (PAT)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I nibbled code beneath the moon,
Tokens swapped and styles in bloom,
MathJax sparkles, thesis takes flight,
App-signed pushes in the night,
A rabbit hops — the site feels bright.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the main changes: adding thesis navigation/content and refreshing dependencies, matching the primary objectives of the PR.
Description check ✅ Passed The description is directly related to the changeset, providing clear sections for summary, changes made, and testing notes that align with the modifications across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 2025-wrap-up-updates

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds PhD thesis content to the website and performs dependency maintenance. The primary change enables direct access to thesis information through a new navigation link, while supporting updates refresh ESLint configuration and GitHub Actions workflow authentication.

Changes:

  • Add PhD thesis navigation link and update documentation to reflect the page is no longer a redirect
  • Introduce CSS styling for thesis presentation including info grids and video embeds
  • Update ESLint configuration to use the globals package and modernize syntax
  • Migrate GitHub Actions workflow from PAT to GitHub App token authentication

Reviewed changes

Copilot reviewed 6 out of 6739 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
_layouts/default.html Adds MathJax support and PhD thesis navigation link
assets/css/styles.css Introduces thesis-specific styling for info grids, video embeds, and responsive layouts
assets/js/main.js Quote style consistency changes (single to double quotes)
eslint.config.js Modernizes configuration using globals package and updates ecmaVersion
CLAUDE.md Updates documentation to reflect phd-thesis.md is now a content page instead of redirect
.github/workflows/update-search.yml Migrates authentication from PAT to GitHub App token

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@CLAUDE.md`:
- Around line 44-52: The documentation claim in phd-thesis.md that "This page is
NOT in the navigation menu" is stale: the site's template _layouts/default.html
currently injects a nav item (<li><a href="{{ site.baseurl }}/phd-thesis/">PhD
Thesis</a></li>), so either remove that nav entry from _layouts/default.html to
keep the page hidden or update the phd-thesis.md/C LAUDE.md content to state
that the PhD Thesis page is included in the site navigation; locate the nav
insertion in _layouts/default.html (around the navigation list) and either
delete or comment it out, or edit phd-thesis.md/CLAUDE.md to accurately describe
the page as present in the navbar and optionally note the previous redirect
behavior.
🧹 Nitpick comments (1)
_layouts/default.html (1)

28-38: Pin MathJax to a specific version and reconsider the $...$ inline delimiter.

Using mathjax@3 pulls from the latest v3.x release (currently 3.2.2, June 2022), which ensures bug fixes but means your site's math rendering can change without explicit action. MathJax documentation recommends pinning to an exact version in production for reproducibility.

Additionally, MathJax deliberately does not enable $...$ as an inline delimiter by default because $ appears frequently in plain text (currency, amounts, etc.), leading to accidental math interpretation. The current configuration enables both \(...\) and $...$, which means any literal dollar signs in content must be escaped as \$ to avoid being treated as math delimiters. If this dual-delimiter approach is necessary, ensure all content authors understand the escaping requirement.

🔧 Suggested fix to pin version
-  <script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
+  <script defer src="https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-svg.js"></script>

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@AGENTS.md`:
- Line 7: Replace bare URLs in AGENTS.md (e.g., the occurrences of
https://comphy-lab.org/vatsalsy and https://comphy-lab.org and other bare links
referenced in the comment) with proper markdown link syntax or angle-bracket
wrapped links to satisfy markdownlint MD034; update each occurrence to either
[ComPhy Lab](https://comphy-lab.org) style or <https://comphy-lab.org/vatsalsy>
style so the file no longer contains naked URLs.

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.

2 participants