Skip to content

Add static Vercel landing page, codespell, and unify CI via ./scripts/check.sh#11

Open
Huynhthuongg wants to merge 4 commits into
mainfrom
codex/review-code-and-propose-fixes-6qh4yq
Open

Add static Vercel landing page, codespell, and unify CI via ./scripts/check.sh#11
Huynhthuongg wants to merge 4 commits into
mainfrom
codex/review-code-and-propose-fixes-6qh4yq

Conversation

@Huynhthuongg

@Huynhthuongg Huynhthuongg commented Jun 3, 2026

Copy link
Copy Markdown
Member

Motivation

  • Provide a polished static landing page and badges to showcase the project and enable easy Vercel deployments.
  • Harden repository-level checks by consolidating linting, spell-checking, and tests into a single script.
  • Ensure CI runs the same verification steps across the Python matrix and validate developer dependencies before running checks.

Description

  • Add a static site under public/ including index.html, styles.css, app.js, and animated SVG badges, and add vercel.json for routing and security headers.
  • Replace direct CI steps with a unified script by updating .github/workflows/ci.yml to run ./scripts/check.sh instead of individual ruff/pytest steps.
  • Enhance scripts/check.sh to verify required dev commands/modules, fail early with guidance, and run ruff, codespell, and pytest -q in sequence.
  • Update pyproject.toml to add codespell to the dev extras and include a [tool.codespell] config, and update README.md to document the landing page and use of ./scripts/check.sh.

Testing

  • Ran ./scripts/check.sh, which verifies dev dependencies then executes ruff, codespell, and pytest -q, and the script completed successfully.
  • CI is configured to run the same ./scripts/check.sh across Python versions 3.10, 3.11, and 3.12 in GitHub Actions (matrix), ensuring consistent automated checks.

Codex Task


Summary by cubic

Adds a Vercel-ready static landing page and configures codespell. Ships a polished static site with security headers and simple rewrites, plus README deploy steps.

  • New Features
    • Static landing page in public/ (index.html, styles.css, app.js) with animated SVG badges and scroll-reveal.
    • vercel.json with clean URLs, security headers, and routes for /, /styles.css, /app.js, and /badges/*.
    • README.md updated with badges, page preview, and Vercel deploy instructions.
    • pyproject.toml adds [tool.codespell] (skip caches; ignore "thi").

Written for commit 9265cdd. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agents-md Canceled Canceled Jun 3, 2026 2:56am

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

PR thêm mới một trang landing tĩnh cho Vercel bao gồm HTML, CSS, và JavaScript với animationcó mục đích. Quy trình kiểm tra phát triển được cấu trúc lại thành một script tập trung với xác thực phụ thuộc. Cấu hình Vercel cung cấp routing và các header bảo mật. Tài liệu hướng dẫn cách triển khai và quy trình phát triển.

Changes

Trang Landing Vercel & Cơ Sở Hạ Tầng Triển Khai

Layer / File(s) Summary
Landing Page - Markup & Styling
public/index.html, public/styles.css
Trang landing HTML mới với cấu trúc hero, features, workflow, deploy sections. CSS theme đầy đủ với biến màu, layout container, navigation, buttons, terminal cards, grid cards, reveal animation states, float keyframes, và responsive design cho màn hình nhỏ.
Landing Page - Intersection Observer Animation
public/app.js
JavaScript khởi tạo class js, thiết lập IntersectionObserver với threshold 0.18, tự động gắn visible class khi phần tử .reveal xuất hiện viewport, sau đó unobserve.
Vercel Deployment Configuration
vercel.json
Cấu hình URL cleanup và trailing slash settings. Headers bảo mật toàn cục: X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy vô hiệu hóa camera, microphone, geolocation.
Development Tooling & Check Script
pyproject.toml, scripts/check.sh
Dev dependencies cập nhật: httpx>=0.28,<1.0 và thêm codespell>=2.3,<3.0. Script check.sh xác thực command ruff/codespell và import các module pytest/httpx2/httpx trước khi chạy kiểm tra, báo lỗi và hướng dẫn cài đặt nếu thiếu.
CI Workflow Integration
.github/workflows/ci.yml
Job test chạy bước duy nhất ./scripts/check.sh thay thế các bước riêng lẻ trước đó.
README Documentation & Deployment Instructions
README.md
Thêm badges Termux/FastAPI/Vercel. Mục "Vercel landing page" mô tả trang tĩnh, tham chiếu vercel.json, cung cấp lệnh deploy Vercel kèm hướng dẫn token CI. Mục "Development" cập nhật nêu ./scripts/check.sh kiểm tra dependencies, chạy Ruff/Codespell/pytest.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 phút

Poem

🐰 Một trang landing mới, CSS bắt mắt,
JavaScript làm animation tươi sáng,
Vercel đã sẵn sàng bay cao,
Check script kiểm tra mọi thứ tới từng vị,
Đi deploy, thế giới sẽ thấy ta!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Tiêu đề chính xác mô tả các thay đổi chính: thêm landing page tĩnh Vercel, codespell, và thống nhất CI qua scripts/check.sh.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed Mô tả PR liên quan chặt chẽ đến changeset, bao gồm thêm trang landing tĩnh, cấu hình codespell, và thống nhất CI thông qua scripts/check.sh.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/review-code-and-propose-fixes-6qh4yq
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/review-code-and-propose-fixes-6qh4yq
  • 🛠️ Aethon

Warning

Review ran into problems

🔥 Problems

Linked repositories: Your configuration references 1 linked repositories, but your current plan allows 0. Analyzed ``, skipped Aethon/backend-api.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@kilo-code-bot

kilo-code-bot Bot commented Jun 3, 2026

Copy link
Copy Markdown

Kilo Code Review could not run — your account is out of credits.

Add credits or switch to a free model to enable reviews on this change.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@public/app.js`:
- Around line 1-15: The code assumes IntersectionObserver exists so new
IntersectionObserver(...) will throw in unsupported browsers and .reveal
elements stay hidden; guard the creation and use of observer by checking if
'IntersectionObserver' in window and if missing, immediately add the 'visible'
class to all elements matching '.reveal' (or remove the 'js' hiding class)
instead of creating the observer, otherwise proceed to create observer and call
observer.observe as currently done; refer to
document.documentElement.classList.add, the IntersectionObserver instantiation,
observer.observe and querySelectorAll('.reveal') to locate where to add the
feature-detection fallback.

In `@public/styles.css`:
- Around line 30-31: Add an accessible keyboard focus style using :focus-visible
for interactive elements that currently only have :hover; update the existing
anchor selector (a) and any button-like selectors (button, a[href], .btn,
.icon-button, input[type="button"/"submit"]) to include a :focus-visible rule
that applies a clear focus ring (e.g., visible outline or box-shadow),
outline-offset and respects border-radius so focused elements are easily
discoverable; ensure you do this alongside the existing text-decoration:none for
a so keyboard users still get a visible indicator rather than relying on
hover-only styles.

In `@pyproject.toml`:
- Around line 52-54: The [tool.codespell] configuration may be ignored on Python
3.10 because tomli is required to parse pyproject.toml on Python < 3.11; add
tomli as a conditional dependency for older Python versions (e.g., tomli;
python_version < "3.11") or ensure codespell is installed in a way that pulls
tomli so that the skip and ignore-words-list ("thi") settings are respected
during runs on Python 3.10.

In `@README.md`:
- Around line 73-83: Update the README description to accurately reflect the
contents of vercel.json: state that vercel.json configures URL cleanup options
(cleanUrls, trailingSlash) and security headers rather than custom routing
rules; mention that any custom routing would require additional
rewrites/redirects entries which are not present in vercel.json; reference the
vercel.json file and the README section about the Vercel landing page so the
reader knows where to look.
- Around line 3-12: The README contains an internal link
href="public/index.html" used by the "Preview the landing page" anchor which
won’t render correctly on GitHub; update the "Preview the landing page" link to
point to the actual live deployment URL (e.g., your Vercel app) or, if no
deployment exists, replace it with a GitHub Pages URL or remove the anchor and
leave only the "Deploy on Vercel" link—edit the <a
href="public/index.html">Preview the landing page</a> anchor in README.md
accordingly so the anchor text still reads "Preview the landing page" but its
href points to a publicly accessible deployment.

In `@vercel.json`:
- Around line 4-13: Update the existing "headers" array entry for the route with
"source": "/(.*)" to include the missing security headers: add "X-Frame-Options"
(e.g., "DENY") or a frame-ancestors directive inside a Content-Security-Policy,
add a strict Content-Security-Policy value that restricts resources to self and
the allowed Google Fonts origins, and add "Strict-Transport-Security" (e.g.,
max-age=31536000; includeSubDomains; preload); modify the headers list in the
same object containing "X-Content-Type-Options" etc. so all security headers are
present for that route.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c8ed8ad5-7076-4b99-b19f-9b0ba0fcdcf6

📥 Commits

Reviewing files that changed from the base of the PR and between 4afa8a3 and 9e9ca02.

⛔ Files ignored due to path filters (3)
  • public/badges/fastapi.svg is excluded by !**/*.svg
  • public/badges/termux.svg is excluded by !**/*.svg
  • public/badges/vercel.svg is excluded by !**/*.svg
📒 Files selected for processing (8)
  • .github/workflows/ci.yml
  • README.md
  • public/app.js
  • public/index.html
  • public/styles.css
  • pyproject.toml
  • scripts/check.sh
  • vercel.json

Comment thread public/app.js
Comment thread public/styles.css
Comment thread pyproject.toml
Comment thread README.md
Comment thread README.md
Comment thread vercel.json

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9e9ca0286d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyproject.toml Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 9 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="vercel.json">

<violation number="1" location="vercel.json:26">
P1: Rewrite destinations incorrectly use `/public/` prefix — Vercel serves `public/` content at root URL paths (e.g., `/index.html`, not `/public/index.html`). Combined with `cleanUrls: true`, the `.html` extension in the destination also violates Vercel's documented requirement. These rewrites are both unnecessary and potentially harmful (could cause 404s on routes that should work).</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread vercel.json

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 5 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

@Huynhthuongg Huynhthuongg left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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


@Huynhthuongg Huynhthuongg self-assigned this Jun 3, 2026
@Huynhthuongg Huynhthuongg added bug Something isn't working documentation Improvements or additions to documentation duplicate This issue or pull request already exists enhancement New feature or request help wanted Extra attention is needed good first issue Good for newcomers invalid This doesn't seem right question Further information is requested labels Jun 3, 2026
@Huynhthuongg Huynhthuongg moved this from Todo to In Progress in @Huynhthuongg's untitled project Jun 3, 2026
…e-fixes-6qh4yq

Reduce landing page PR merge scope
…e-fixes

Merge pull request #12 from Huynhthuongg/codex/review-code-and-propose-fixes-6qh4yq

Reduce landing page PR merge scope

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9265cdd901

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread public/app.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working codex documentation Improvements or additions to documentation duplicate This issue or pull request already exists enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed invalid This doesn't seem right question Further information is requested

Projects

None yet

1 participant