Skip to content

feat(docs): Docusaurus site scaffold + Pages CI (PR #1/3)#39

Closed
EtienneLescot wants to merge 0 commit into
feat/native-stt-whispercppfrom
feat/docs-scaffold
Closed

feat(docs): Docusaurus site scaffold + Pages CI (PR #1/3)#39
EtienneLescot wants to merge 0 commit into
feat/native-stt-whispercppfrom
feat/docs-scaffold

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Reintroduces the Docusaurus scaffold after PR #38 reverted the piggy-backed copy that landed via PR #36, then implements the OpenScreen Docs Site.dc.html design from the OpenScreen Design System project on top of it, and writes real feature documentation.

Scaffold (original three commits, in authored order)

  • c4d985f feat(docs): scaffold Docusaurus 3 site + GitHub Pages CI — minimal Docusaurus 3 site (TS config, Infima-tweaked theme, hero landing with WIP badge, intro doc), docs.yml workflow (build on PR, deploy on push to main, concurrency group, minimal permissions), postcss.config.cjs Tailwind override
  • e6a6f08 style(website): biome auto-format — mechanical biome pass on the scaffold files
  • 50dd22b ci(docs): pin actions to commit SHAs in docs.yml — pins actions/checkout, actions/setup-node, actions/upload-pages-artifact, actions/deploy-pages with version comments

Design implementation

  • 26107c7 feat(docs): implement OpenScreen Design System landing + docs theme

Implements the design 1:1 rather than just the placeholder scaffold:

  • Dark/light themed landing page — hero, product-visual mockup (agent panel, timeline, transport), bento feature grid, quick-start terminal block, platform strip — matching the design's exact spacing/color tokens in both color modes.
  • Full site retheme: Infima variables retargeted at the design's --os-* tokens (background/surface/border/text/accent) so the navbar, sidebar, TOC, footer, and code blocks all pick up the design palette, not just the landing page.
  • Pixel-matched navbar: bordered GitHub/theme-toggle pills, divider after the brand lockup, and a live GitHub star count fetched from the GitHub API at build time (no fake/stale numbers, gracefully omitted if the fetch fails offline).
  • A swizzled Footer component — the default Docusaurus footer (Links/Logo/Copyright) can't produce the design's 1.4fr/1fr/1fr brand+description/Project/Community column layout, so this ejects and rewrites it from scratch.
  • The real OpenScreen logo mark (assets/logo-icon.png from the design project) as navbar logo, favicon, and social-share image, replacing the placeholder gradient logo.svg.
  • Docs sidebar/TOC/article/tables/admonitions restyled to match the design's docs screen.

Feature documentation

  • ecc7fea feat(docs): write feature documentation grounded in the shipped editor

Six new pages — Installation, Quick start, Recording, Editing & timeline, Captions & AI, Export — written directly against the app's actual source (not marketing copy), organized into the Getting Started / Features / Community sidebar the design specifies. Along the way this caught and fixed a few inaccuracies that had crept into the intro page and landing copy: there's no freeform "region" capture (screen or window only), no WebM export (MP4/GIF only), and AI chat editing is a real shipped feature gated behind AI_FEATURES_ENABLED, not a roadmap item.

docs/website/docs/ migration (moving the deeper architecture/engineering/testing specs) is still a separate follow-up — these six pages are new user-facing content, not a port of the existing internal docs.

How to validate locally

cd website
npm install
npm run typecheck
npm run build
npm run serve   # http://localhost:3000/openscreen/

Deploy status — verified, not just configured

GitHub Pages is already set to Source = GitHub Actions (confirmed via the API, build_type: "workflow"), and this exact docs.yml pipeline has deployed successfully from main before (pre-dating the PR #38 revert) — deployment from 2026-06-26, live at https://getopenscreen.github.io/openscreen/. The build job has also run green on this PR's head commit. No manual setup step is pending — merging to main will deploy cleanly.

@EtienneLescot

Copy link
Copy Markdown
Collaborator Author

@FabLrc previous PR was closed by error, so here is a new one

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a Docusaurus-based website under website/, with docs content, landing-page UI, theme styling, footer customization, site config, and a GitHub Actions workflow to build and deploy the site to GitHub Pages.

Changes

Website scaffold and deployment

Layer / File(s) Summary
Pages build/deploy workflow
.github/workflows/docs.yml
New workflow triggers on PRs, pushes to main for website/**, and manual dispatch; builds the site and deploys the generated Pages artifact on main pushes.
Package manifest and build config
website/package.json, website/tsconfig.json, website/postcss.config.cjs, website/sidebars.ts, website/.gitignore
Adds the website package manifest, TypeScript and PostCSS config, sidebar navigation, and ignore rules for build and local files.
Docusaurus site configuration
website/docusaurus.config.ts
Adds createConfig() with site metadata, navbar/theme wiring, Prism configuration, and an optional GitHub stars badge fetched at build time.
Docs pages and README
website/README.md, website/docs/*.md
Adds the site README plus intro, recording, captions, editing timeline, export, installation, and quick-start documentation pages.
Global theme styling
website/src/css/custom.css
Defines theme tokens and overrides for the docs navbar, footer, sidebar, TOC, markdown, and pagination styles.
Landing page component and styles
website/src/pages/index.tsx, website/src/pages/index.module.css
Adds the static landing page with hero, product visual, feature grid, quick-start terminal, and platform strip sections.
Custom footer component
website/src/theme/Footer/index.tsx, website/src/theme/Footer/styles.module.css
Adds a custom footer with brand, link columns, and bottom bar styling.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description is informative, but it does not follow the repository's required template or include the requested sections. Rewrite it using the template headings: Summary, Related issue, Type of change, Release impact, Desktop impact, Screenshots / video, and Testing.
✅ Passed checks (3 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title is concise and accurately summarizes the main change: a Docusaurus docs site scaffold with GitHub Pages CI.
✨ 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 feat/docs-scaffold

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.

@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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
website/package.json (1)

1-45: 📐 Maintainability & Code Quality | 🔴 Critical | ⚡ Quick win

Fix Biome formatting failure (CRLF line endings).

CI lint reports Biome formatter mismatch on this file due to CRLF line endings; run biome format --write website/package.json (or configure line endings to LF) to fix.

🤖 Prompt for 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.

In `@website/package.json` around lines 1 - 45, The Biome formatter is failing on
this package manifest because of CRLF line endings; update the file to use LF
consistently so the formatting check passes. Make the fix in the
website/package.json content itself (and any related editor/config defaults if
needed) so the package.json formatting stays stable across CI and local runs.

Source: Pipeline failures

website/src/pages/index.tsx (1)

123-281: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix JSX formatting (Biome formatter failure).

CI reports the formatter would reflow several segments here (span attribute wrapping, paragraph text wrapping) and near the closing </Layout>. Run Biome format before merging.

🤖 Prompt for 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.

In `@website/src/pages/index.tsx` around lines 123 - 281, The JSX in the index
page is not Biome-formatted, causing formatter failures in the span attribute
wrapping, paragraph wrapping, and the closing Layout area. Reformat the affected
JSX in the index component so it matches Biome’s expected layout, especially
around the timeline pills, feature cards, quick start text, and the final
</Layout> block.

Sources: Coding guidelines, Pipeline failures

🧹 Nitpick comments (5)
.github/workflows/docs.yml (1)

29-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider adding actions/configure-pages before upload.

GitHub's official custom-workflow docs for Pages consistently include a configure-pages step ahead of upload-pages-artifact/deploy-pages to derive Pages metadata (e.g., base path); this workflow omits it. Since Docusaurus already sets its own static baseUrl/url in docusaurus.config.ts, this is likely non-blocking, but worth confirming the build doesn't rely on metadata this action would otherwise provide (e.g., environment detection).

🤖 Prompt for 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.

In @.github/workflows/docs.yml around lines 29 - 49, The docs Pages workflow is
missing the standard GitHub Pages metadata setup step before artifact upload.
Update the workflow around the existing checkout/setup/build and
`actions/upload-pages-artifact` steps to include `actions/configure-pages` so
Pages-specific metadata is initialized consistently; keep the Docusaurus build
and artifact path flow intact and verify any `website` build assumptions tied to
Pages environment detection still work as expected.
website/docusaurus.config.ts (1)

18-37: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Unauthenticated GitHub API call on every CI build risks rate-limiting.

fetchStarCount runs unauthenticated on every npm run build invocation in CI (per docs.yml, this happens on every PR and every push to main). Shared GitHub Actions runner IPs make it plausible to hit GitHub's unauthenticated rate limit (60 req/hour), silently dropping the badge rather than failing the build. Consider passing a GITHUB_TOKEN/PAT via Authorization header in the workflow env to raise the limit, or caching the last known count.

🤖 Prompt for 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.

In `@website/docusaurus.config.ts` around lines 18 - 37, The `fetchStarCount` path
in `createConfig` is making an unauthenticated GitHub API request on every
build, which can hit rate limits in CI and drop the badge. Update
`fetchStarCount` to send an `Authorization` header when a token is available
(for example from `GITHUB_TOKEN`/PAT in the workflow environment), and keep the
existing fallback to `null` if the request still fails. If you prefer, also add
a cache or persisted fallback for the last known star count so `createConfig`
does not depend on a fresh API call every run.
website/.gitignore (1)

9-11: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Stray next/dist/ entry looks like leftover from a Next.js template.

This is a Docusaurus site (build output already covered by build/ at Line 5); next/dist/ doesn't apply here.

🤖 Prompt for 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.

In `@website/.gitignore` around lines 9 - 11, Remove the stray Next.js-specific
ignore entry from the Generated files section in .gitignore; the website is a
Docusaurus site and build artifacts are already covered by the existing build/
rule. Keep the rest of the ignore list unchanged and delete the next/dist/
pattern so the file only contains entries relevant to this project.
website/src/pages/index.module.css (1)

403-413: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use existing design tokens instead of duplicating raw color values.

.pillDanger and .pillSpeed hardcode rgba(248, 113, 113, 0.14) / rgba(251, 146, 60, 0.14), which are exact duplicates of --os-danger-soft and --os-speed-wash already defined in custom.css. .pillAnnotation right above correctly uses var(--os-annotation-wash) — worth being consistent.

♻️ Proposed fix
 .pillDanger {
-	background: rgba(248, 113, 113, 0.14);
+	background: var(--os-danger-soft);
 	color: var(--os-danger);
 	border: 1px solid rgba(248, 113, 113, 0.3);
 }
...
 .pillSpeed {
-	background: rgba(251, 146, 60, 0.14);
+	background: var(--os-speed-wash);
 	color: var(--os-speed);
 	border: 1px solid rgba(251, 146, 60, 0.3);
 }
🤖 Prompt for 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.

In `@website/src/pages/index.module.css` around lines 403 - 413, Update the pill
styles in index.module.css so .pillDanger and .pillSpeed use the existing design
tokens from custom.css instead of hardcoded rgba values. Reuse the same
token-based pattern already used by .pillAnnotation, and keep the current
.pillDanger/.pillSpeed class names and their border/text color rules intact
while swapping only the duplicate background values.
website/src/pages/index.tsx (1)

49-51: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Use Docusaurus Link/useBaseUrl instead of a hardcoded baseUrl path.

href="/openscreen/docs/intro" bakes in the current baseUrl config. If the deployment path changes, this link silently 404s. Footer/index.tsx in this same PR already uses <Link>/useBaseUrl correctly for this reason — worth being consistent here too, and it gets client-side routing for free.

♻️ Proposed fix
+import Link from "`@docusaurus/Link`";
 import useDocusaurusContext from "`@docusaurus/useDocusaurusContext`";
 ...
-						<a className={styles.secondaryCta} href="/openscreen/docs/intro">
+						<Link className={styles.secondaryCta} to="/docs/intro">
 							Read the docs
-						</a>
+						</Link>
🤖 Prompt for 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.

In `@website/src/pages/index.tsx` around lines 49 - 51, The index page CTA is
hardcoding the docs path, which ties it to the current baseUrl and breaks if
deployment changes. Update the link in the homepage component (the anchor in the
index page) to use Docusaurus `Link` together with `useBaseUrl`, matching the
pattern already used in `footer/index.tsx`, so the docs URL stays baseUrl-safe
and uses client-side routing.
🤖 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 @.github/workflows/docs.yml:
- Line 30: The checkout step in the docs workflow is persisting the default
GITHUB_TOKEN unnecessarily. Update the actions/checkout usage in the workflow to
explicitly set persist-credentials to false so the token is not left in git
config for later steps; locate the change at the checkout step in the docs job.

In `@website/src/pages/index.tsx`:
- Around line 1-18: The import block in the index page is failing Biome’s
organizeImports check because the imports are not in the expected sorted order.
Update the top-level imports in the index page component so they are reordered
according to Biome’s import discipline rules, keeping the existing modules like
useDocusaurusContext, Layout, Heading, and the lucide-react icons in the correct
grouped order.

In `@website/src/theme/Footer/index.tsx`:
- Around line 24-56: Biome is reflowing the JSX text in Footer’s
brandDescription and bottomBar blocks, so update the formatting in the Footer
component to match the formatter output. Adjust the text wrapping in the
Footer/index.tsx JSX so the brandDescription paragraph and bottomBar content are
laid out in the style Biome expects, then run the formatter to verify the diff
is clean.
- Around line 1-5: The imports in Footer/index.tsx are not ordered according to
Biome’s organizeImports rules, including the type-only ReactNode import. Reorder
the existing imports in the Footer component so Biome’s import sorting passes,
keeping the same symbols (ReactNode, Link, useBaseUrl, and styles) but arranging
them in the correct grouped order.

---

Outside diff comments:
In `@website/package.json`:
- Around line 1-45: The Biome formatter is failing on this package manifest
because of CRLF line endings; update the file to use LF consistently so the
formatting check passes. Make the fix in the website/package.json content itself
(and any related editor/config defaults if needed) so the package.json
formatting stays stable across CI and local runs.

In `@website/src/pages/index.tsx`:
- Around line 123-281: The JSX in the index page is not Biome-formatted, causing
formatter failures in the span attribute wrapping, paragraph wrapping, and the
closing Layout area. Reformat the affected JSX in the index component so it
matches Biome’s expected layout, especially around the timeline pills, feature
cards, quick start text, and the final </Layout> block.

---

Nitpick comments:
In @.github/workflows/docs.yml:
- Around line 29-49: The docs Pages workflow is missing the standard GitHub
Pages metadata setup step before artifact upload. Update the workflow around the
existing checkout/setup/build and `actions/upload-pages-artifact` steps to
include `actions/configure-pages` so Pages-specific metadata is initialized
consistently; keep the Docusaurus build and artifact path flow intact and verify
any `website` build assumptions tied to Pages environment detection still work
as expected.

In `@website/.gitignore`:
- Around line 9-11: Remove the stray Next.js-specific ignore entry from the
Generated files section in .gitignore; the website is a Docusaurus site and
build artifacts are already covered by the existing build/ rule. Keep the rest
of the ignore list unchanged and delete the next/dist/ pattern so the file only
contains entries relevant to this project.

In `@website/docusaurus.config.ts`:
- Around line 18-37: The `fetchStarCount` path in `createConfig` is making an
unauthenticated GitHub API request on every build, which can hit rate limits in
CI and drop the badge. Update `fetchStarCount` to send an `Authorization` header
when a token is available (for example from `GITHUB_TOKEN`/PAT in the workflow
environment), and keep the existing fallback to `null` if the request still
fails. If you prefer, also add a cache or persisted fallback for the last known
star count so `createConfig` does not depend on a fresh API call every run.

In `@website/src/pages/index.module.css`:
- Around line 403-413: Update the pill styles in index.module.css so .pillDanger
and .pillSpeed use the existing design tokens from custom.css instead of
hardcoded rgba values. Reuse the same token-based pattern already used by
.pillAnnotation, and keep the current .pillDanger/.pillSpeed class names and
their border/text color rules intact while swapping only the duplicate
background values.

In `@website/src/pages/index.tsx`:
- Around line 49-51: The index page CTA is hardcoding the docs path, which ties
it to the current baseUrl and breaks if deployment changes. Update the link in
the homepage component (the anchor in the index page) to use Docusaurus `Link`
together with `useBaseUrl`, matching the pattern already used in
`footer/index.tsx`, so the docs URL stays baseUrl-safe and uses client-side
routing.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 980982dc-1476-4254-8b49-e4ee162adb2f

📥 Commits

Reviewing files that changed from the base of the PR and between af06dd2 and 26107c7.

⛔ Files ignored due to path filters (2)
  • website/package-lock.json is excluded by !**/package-lock.json
  • website/static/img/logo-icon.png is excluded by !**/*.png
📒 Files selected for processing (14)
  • .github/workflows/docs.yml
  • website/.gitignore
  • website/README.md
  • website/docs/intro.md
  • website/docusaurus.config.ts
  • website/package.json
  • website/postcss.config.cjs
  • website/sidebars.ts
  • website/src/css/custom.css
  • website/src/pages/index.module.css
  • website/src/pages/index.tsx
  • website/src/theme/Footer/index.tsx
  • website/src/theme/Footer/styles.module.css
  • website/tsconfig.json

name: Build site
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Set persist-credentials: false on checkout.

Static analysis (zizmor) flags this: the default checkout persists the GITHUB_TOKEN in the local git config for the rest of the job, exposing it to any subsequent step/tool in the build job unnecessarily (credential exposure via artifacts risk). Since this job never needs git push/authenticated git operations, disable persistence.

🔒 Proposed fix
       - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.26.1)

[warning] 30-30: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for 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.

In @.github/workflows/docs.yml at line 30, The checkout step in the docs
workflow is persisting the default GITHUB_TOKEN unnecessarily. Update the
actions/checkout usage in the workflow to explicitly set persist-credentials to
false so the token is not left in git config for later steps; locate the change
at the checkout step in the docs job.

Source: Linters/SAST tools

Comment on lines +1 to +18
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import Heading from "@theme/Heading";
import Layout from "@theme/Layout";
import {
AppWindow,
Apple,
Captions,
Cpu,
Download,
HeartHandshake,
Monitor,
Pause,
Scissors,
SkipBack,
SkipForward,
Terminal,
TerminalSquare,
} from "lucide-react";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix import order (Biome organizeImports failure).

CI reports unsorted imports in this file. As per coding guidelines, import discipline (including type-only imports) is handled by Biome. Run the Biome auto-fix before merging.

🧰 Tools
🪛 GitHub Actions: CI / 3_Lint.txt

[error] 1-1: Biome organizeImports check failed. Imports/exports are not sorted. Safe fix: Organize Imports (Biome).

🪛 GitHub Actions: CI / Lint

[error] 1-1: Biome assist/source/organizeImports reported unsorted imports/exports (FIXABLE) in website/src/pages/index.tsx. Safe fix: Organize Imports (Biome).

🤖 Prompt for 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.

In `@website/src/pages/index.tsx` around lines 1 - 18, The import block in the
index page is failing Biome’s organizeImports check because the imports are not
in the expected sorted order. Update the top-level imports in the index page
component so they are reordered according to Biome’s import discipline rules,
keeping the existing modules like useDocusaurusContext, Layout, Heading, and the
lucide-react icons in the correct grouped order.

Sources: Coding guidelines, Pipeline failures

Comment on lines +1 to +5
import type { ReactNode } from "react";
import Link from "@docusaurus/Link";
import useBaseUrl from "@docusaurus/useBaseUrl";

import styles from "./styles.module.css";

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix import order (Biome organizeImports failure).

As per coding guidelines, import discipline (including type-only imports) is handled by Biome; CI reports this file's imports are unsorted.

🧰 Tools
🪛 GitHub Actions: CI / 3_Lint.txt

[error] 1-1: Biome organizeImports check failed. Imports/exports are not sorted. Safe fix: Organize Imports (Biome).

🪛 GitHub Actions: CI / Lint

[error] 1-1: Biome assist/source/organizeImports reported unsorted imports/exports (FIXABLE) in website/src/theme/Footer/index.tsx. Safe fix: Organize Imports (Biome).

🤖 Prompt for 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.

In `@website/src/theme/Footer/index.tsx` around lines 1 - 5, The imports in
Footer/index.tsx are not ordered according to Biome’s organizeImports rules,
including the type-only ReactNode import. Reorder the existing imports in the
Footer component so Biome’s import sorting passes, keeping the same symbols
(ReactNode, Link, useBaseUrl, and styles) but arranging them in the correct
grouped order.

Sources: Coding guidelines, Pipeline failures

Comment on lines +24 to +56
</div>
<p className={styles.brandDescription}>
A free, open-source screen recorder and editor. Community-maintained
continuation, MIT licensed.
</p>
</div>

<div>
<div className={styles.colTitle}>Project</div>
<div className={styles.colLinks}>
<Link href="https://github.com/getopenscreen/openscreen">GitHub</Link>
<Link href="https://github.com/getopenscreen/openscreen/releases">Releases</Link>
</div>
</div>

<div>
<div className={styles.colTitle}>Community</div>
<div className={styles.colLinks}>
<Link href="https://github.com/getopenscreen/openscreen/blob/main/CONTRIBUTING.md">
Contributing
</Link>
<Link href="https://github.com/getopenscreen/openscreen/blob/main/LICENSE">
License (MIT)
</Link>
<Link href="https://discord.gg/VvT6Vtnyh">Discord</Link>
</div>
</div>
</div>

<div className={styles.bottomBar}>
OpenScreen is released under the MIT license. Built by the community — free,
forever.
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix JSX text-wrapping formatting (Biome formatter failure).

CI reports the formatter would reflow the brandDescription and bottomBar text blocks. Run Biome format before merging.

🧰 Tools
🪛 GitHub Actions: CI / 3_Lint.txt

[error] 24-56: Biome formatter check failed. Formatter would reflow text content inside JSX (e.g., sentence wrapping in the brandDescription

and bottomBar

).

🪛 GitHub Actions: CI / Lint

[error] 24-56: Biome formatter failed for website/src/theme/Footer/index.tsx: text wrapping in JSX/HTML differs from expected output.

🤖 Prompt for 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.

In `@website/src/theme/Footer/index.tsx` around lines 24 - 56, Biome is reflowing
the JSX text in Footer’s brandDescription and bottomBar blocks, so update the
formatting in the Footer component to match the formatter output. Adjust the
text wrapping in the Footer/index.tsx JSX so the brandDescription paragraph and
bottomBar content are laid out in the style Biome expects, then run the
formatter to verify the diff is clean.

Source: Pipeline failures

@EtienneLescot EtienneLescot changed the base branch from main to feat/native-stt-whispercpp July 9, 2026 19:37
@EtienneLescot EtienneLescot deleted the feat/docs-scaffold branch July 9, 2026 22:27
EtienneLescot added a commit that referenced this pull request Jul 9, 2026
- Convert website/package.json to LF line endings (Biome formatter failure)
- Reformat index.tsx/Footer per Biome (import order, JSX wrapping)
- Use var(--os-danger-soft)/var(--os-speed-wash) tokens instead of duplicating raw rgba values
- Use Docusaurus Link/useBaseUrl for the docs CTA instead of a hardcoded baseUrl path
- Drop stray Next.js next/dist/ entry from website/.gitignore
- Set persist-credentials: false on the docs workflow checkout step

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
EtienneLescot added a commit that referenced this pull request Jul 11, 2026
- Convert website/package.json to LF line endings (Biome formatter failure)
- Reformat index.tsx/Footer per Biome (import order, JSX wrapping)
- Use var(--os-danger-soft)/var(--os-speed-wash) tokens instead of duplicating raw rgba values
- Use Docusaurus Link/useBaseUrl for the docs CTA instead of a hardcoded baseUrl path
- Drop stray Next.js next/dist/ entry from website/.gitignore
- Set persist-credentials: false on the docs workflow checkout step

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

1 participant