Skip to content

Release v1: editable About page and rollout readiness - #139

Merged
mrboxs merged 6 commits into
mainfrom
t3/fix-several-issues
Nov 4, 2026
Merged

mrboxs merged 6 commits into
mainfrom
t3/fix-several-issues

Conversation

@mrboxs

@mrboxs mrboxs commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Completes the v1 rollout with an editable About page and verifies the current release across the workspace. /about uses the shared public Markdown renderer; administrators can preview and publish title, description, and content from /admin/about, with stale-edit protection and an unsaved-changes guard.

  • Add About API contracts, authorization, singleton persistence, migration, navigation, metadata, sitemap entry, and generated package exports.
  • Keep initial catalogue pagination consistent across SSR and hydration, index category ancestry lookups, cancel deleted-category query variants together, and replace deprecated client/chart APIs.
  • Consolidate advertising and ranking documentation into the existing guides, synchronize the PRD and roadmap, and prepare changelog notes covering changes since v0.7.1.
  • Update regression coverage for Recommended sorting, About endpoints, custom OpenAPI error statuses, verified bookmark projections, 45-slot pagination, and current project-card markup. Flush pending React work in editor/navigation fixtures and allow the search test's debounce and route-pending delays to complete.

Validation on the final working tree:

  • vp check: formatting, lint, and type-aware checks pass with zero warnings/errors.
  • vp run typecheck: all 8 workspace configurations pass.
  • All unit/integration suites across server, web, API, auth, DB, shared, and UI: 1,730 tests pass. Database suites use disposable local test schemas.
  • vpx react-doctor@latest --verbose --scope changed --include-untracked: 100/100, no new findings.
  • Browser suite: 20 files, 121 tests pass.
  • HTTP acceptance passes for auth, bookmarks, reports, featured projects, ownership, licenses, SEO/production packaging, and categories. Email delivery is mocked; no live mail is sent. SEO includes 16 check groups and category acceptance includes 6.
  • Production recursive build passes. Existing non-blocking bundle-size and Shiki import warnings remain.

The optional live Upstash integration test is not run because dedicated development credentials are not configured. It is excluded from the passing test count.

Before deployment, apply the additive About migration with vp run db:migrate; its reserved-slug preflight must pass. Deploy matching API/web revisions. Changelog notes remain under Unreleased until the actual version is tagged.

Summary by CodeRabbit

  • New Features
    • Added a public About page with an admin editor for updating its content.
    • Added About page links to site navigation and included the page in the sitemap.
    • Added customizable confirmation and cancellation button labels to dialogs.
  • Bug Fixes
    • Improved category lookups and deletion handling, and corrected catalogue loading behavior.
    • Updated upload error responses to report expired uploads and promotion conflicts with appropriate statuses.
  • Documentation
    • Updated release, deployment, architecture, and development guidance for the About page and other product features.

- Use the renamed `RouterContractClient` type in API tests
- Align chart legend spacing with its position prop
- Add public About page with SEO metadata and sitemap coverage
- Add admin editor with Markdown preview, validation, and conflict handling
- Persist About content through API and database
- Move advertising guidance into architecture and deployment docs
- Document ranking, curated content, and current product capabilities
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Explain Change →

Walkthrough

This pull request adds public and admin About pages with versioned updates. It also changes category lookups and deletion behavior, catalogue offsets, and v1 release documentation. Supporting updates adjust navigation, API fixtures, and tests.

Changes

About Page Publishing

Layer / File(s) Summary
About page data and persistence
packages/shared/src/schemas/about.ts, packages/db/src/schemas/about.ts, packages/db/src/migrations/*, packages/shared/src/constants/index.ts, docs/prd.md
The shared package defines About page schemas, types, and default content. The database adds a singleton about_page table. Project slugs now reserve about. The PRD specifies About page access and content requirements.
About API and revision handling
packages/api/src/contracts/about.ts, packages/api/src/routers/about.ts, packages/api/src/contracts/index.ts, packages/api/src/routers/index.ts, packages/api/tests/about.test.ts
The API adds public and admin About endpoints. Admin updates use expected versions and return a conflict when the stored revision does not match. Tests cover reads, updates, authorization, validation, and concurrent writes.
Public and admin About pages
apps/web/src/features/about/*, apps/web/src/routes/_app/about.tsx, apps/web/src/routes/_main/admin.about.tsx, apps/web/src/routeTree.gen.ts, apps/web/src/components/header.tsx, apps/web/src/components/footer.tsx, apps/web/src/components/main-sidebar-content.tsx, apps/web/src/components/workspace-header.tsx, apps/web/src/components/action-confirmation.tsx, apps/web/src/features/seo/sitemap.server.ts, apps/web/tests/about.test.tsx, apps/web/tests/admin-about-editor.test.tsx, apps/web/tests/browser/about.browser.tsx
The public route renders About content, and the admin route provides an editor with validation, previews, navigation blocking, and conflict handling. Navigation and the sitemap include About routes. Tests cover rendering, editing, and browser behavior.

Category and Catalogue Behavior

Layer / File(s) Summary
Indexed category labels and ancestry
apps/web/src/features/admin-categories/model.ts, apps/web/src/features/admin-categories/components/*, apps/web/src/components/category-combobox-view.tsx, apps/web/tests/category-model.test.ts
Category ancestry and labels now accept arrays or ID-indexed maps. Category forms, tables, and the combobox build and use an index. Tests cover duplicate IDs, missing parents, cycles, and input order.
Category deletion and detail queries
apps/web/src/features/admin-categories/queries.ts, apps/web/tests/category-catalog-ui.test.tsx
Category deletion cancels and removes queries matching either category detail key. The test checks cancellation, late responses, query state, and navigation.
Catalogue offsets and directory pagination
apps/web/src/features/ads/use-catalogue-offset.ts, docs/architecture.md, docs/prd.md, apps/web/tests/category-http.acceptance.ts, apps/web/tests/seo-http.acceptance.ts, apps/web/tests/public-category-routes.test.tsx
The catalogue offset hook uses useSyncExternalStore with client and server snapshots. Documentation describes directory display slots and offsets. Acceptance tests update category-card assertions and pagination fixtures.

Release Documentation and Supporting Updates

Layer / File(s) Summary
V1 release notes and product requirements
CHANGELOG.md, README.md, docs/prd.md, docs/roadmap.md, docs/ads.md, docs/ranking.md
The release notes and product documents describe editorial publishing, advertising, ranking, and v1 acceptance. The standalone advertising and ranking documents are removed.
Architecture and deployment guidance
docs/architecture.md, docs/deployment.md, docs/development.md
The guides document advertising selection and operations, email delivery, monitoring, and test coverage. Architecture documentation also describes request handling, ranking, private order access, and uploads.
Compatibility and supporting test updates
packages/api/tests/*, packages/api/tests/fixtures/openapi-wire-contract.json, packages/shared/tests/*, packages/ui/src/components/chart.tsx, apps/web/tests/*
Supporting changes update OpenAPI error responses, oRPC client types, sort expectations, and tests for bookmarks, licenses, and retries. The chart legend uses Recharts’ position prop; test helpers and fixtures also change.

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant AboutRoute
  participant AboutRouter
  participant AboutDatabase
  AboutRoute->>AboutRouter: Request public or admin About data
  AboutRouter->>AboutDatabase: Select the About page
  AboutDatabase-->>AboutRouter: Stored page or no row
  AboutRouter-->>AboutRoute: Page data or default About page
  AboutRoute->>AboutRouter: Submit update with expectedVersion
  AboutRouter->>AboutDatabase: Insert or update matching revision
  AboutDatabase-->>AboutRouter: Updated page or no matching row
  AboutRouter-->>AboutRoute: Updated page or conflict
Loading
Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly identifies the main changes: the editable About page and v1 rollout readiness. It is concise, specific, and related to the changeset.
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.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 14 functions across 49 files. (12 skipped: 12 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Review coverage is incomplete: 1 file could not be fully reviewed. Findings from completed review steps are included; see review info for details.

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
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between a860348 and aeb9cdc.

Files selected for processing: 64
  • CHANGELOG.md
  • README.md
  • apps/web/src/components/action-confirmation.tsx
  • apps/web/src/components/category-combobox-view.tsx
  • apps/web/src/components/footer.tsx
  • apps/web/src/components/header.tsx
  • apps/web/src/components/main-sidebar-content.tsx
  • apps/web/src/components/workspace-header.tsx
  • apps/web/src/features/about/article.tsx
  • apps/web/src/features/about/editor.tsx
  • apps/web/src/features/about/queries.ts
  • apps/web/src/features/admin-categories/components/category-form.tsx
  • apps/web/src/features/admin-categories/components/category-table.tsx
  • apps/web/src/features/admin-categories/model.ts
  • apps/web/src/features/admin-categories/queries.ts
  • apps/web/src/features/ads/use-catalogue-offset.ts
  • apps/web/src/features/seo/sitemap.server.ts
  • apps/web/src/routeTree.gen.ts
  • apps/web/src/routes/_app/about.tsx
  • apps/web/src/routes/_main/admin.about.tsx
  • apps/web/tests/about.test.tsx
  • apps/web/tests/admin-about-editor.test.tsx
  • apps/web/tests/admin-collection-editor.test.tsx
  • apps/web/tests/bookmark-actions.test.tsx
  • apps/web/tests/bookmarks-http.acceptance.ts
  • apps/web/tests/browser/about.browser.tsx
  • apps/web/tests/category-catalog-ui.test.tsx
  • apps/web/tests/category-http.acceptance.ts
  • apps/web/tests/category-model.test.ts
  • apps/web/tests/licenses-http.acceptance.ts
  • apps/web/tests/public-category-routes.test.tsx
  • apps/web/tests/seo-http.acceptance.ts
  • apps/web/tests/sitemap.test.ts
  • apps/web/tests/submission-navigation.test.tsx
  • docs/ads.md
  • docs/architecture.md
  • docs/deployment.md
  • docs/development.md
  • docs/prd.md
  • docs/ranking.md
  • docs/roadmap.md
  • packages/api/package.json
  • packages/api/src/contracts/about.ts
  • packages/api/src/contracts/index.ts
  • packages/api/src/routers/about.ts
  • packages/api/src/routers/index.ts
  • packages/api/tests/about.test.ts
  • packages/api/tests/admin-project-github-metadata.test.ts
  • packages/api/tests/admin-project-github-readme.test.ts
  • packages/api/tests/fixtures/openapi-wire-contract.json
  • packages/api/tests/openapi-mapping.test.ts
  • packages/api/tests/submission-rate-limit.test.ts
  • packages/db/package.json
  • packages/db/src/migrations/20261104131240_about-page/migration.sql
  • packages/db/src/migrations/20261104131240_about-page/snapshot.json
  • packages/db/src/schemas.ts
  • packages/db/src/schemas/about.ts
  • packages/shared/package.json
  • packages/shared/src/constants/index.ts
  • packages/shared/src/schemas/about.ts
  • packages/shared/src/schemas/index.ts
  • packages/shared/tests/github-license.test.ts
  • packages/shared/tests/slug.test.ts
  • packages/ui/src/components/chart.tsx
Files with no reviewable changes: 2
  • docs/ads.md
  • docs/ranking.md
Files not fully reviewed because their changes were unavailable: 1
  • packages/db/src/migrations/20261104131240_about-page/snapshot.json

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit aeb9cdc.

@mrboxs
mrboxs merged commit 819f963 into main Nov 4, 2026
3 checks passed
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