Skip to content

feat: add browser automation and unify the cache layer.#4

Open
Niapya wants to merge 42 commits into
mainfrom
dev
Open

feat: add browser automation and unify the cache layer.#4
Niapya wants to merge 42 commits into
mainfrom
dev

Conversation

@Niapya

@Niapya Niapya commented Jul 24, 2026

Copy link
Copy Markdown
Member

Summary

  • add the multi-theme book experience, i18n, and related documentation
  • introduce browser automation utilities with Cloudflare and Vercel adapters
  • replace the cache layer with core and runtime-specific implementations
  • improve application initialization, errors, rendering, OpenAPI, and deployment configuration

Validation

  • bun run fix
  • bun run check:biome
  • bun run check:type
  • bun run test (543 passed, 0 failed)

Niapya added 30 commits July 5, 2026 22:57
- Add i18n module with zh-CN and en translations
- Reorganize components into layout/, content/, controls/ subdirectories
- Remove barrel export file (index.ts)
- Replace hardcoded Chinese text with i18n references
- Update Nav and Footer logos to use RSSBook SVG
- Add search/filter status card at top of Timeline
- Update footer link to RSSBook GitHub repository
…, reader, redbook themes

- Add 6 distinct themes with unique layouts (gallery, magazine, masonry, minimal, reader, redbook)
- Add i18n support (zh-CN, en) for all themes
- Add dark mode toggle support
- Add search/filter functionality
- Add pagination support
- Refactor error page from theme/error to books/error
- Create theme registry (books/themes.ts) with DEFAULT_THEME
- Add types/safe.ts for XSS-safe attribute handling
- Fix all XSS vulnerabilities (K601) across all themes
- All 507 tests pass, xss-scan passes with 0 errors
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
rssbook Ready Ready Preview, Comment Jul 25, 2026 8:09am

@netlify

netlify Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploy Preview for rssbook failed.

Name Link
🔨 Latest commit 442e176
🔍 Latest deploy log https://app.netlify.com/projects/rssbook/deploys/6a638b7b9564650008ea2410

1 similar comment
@netlify

netlify Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploy Preview for rssbook failed.

Name Link
🔨 Latest commit 442e176
🔍 Latest deploy log https://app.netlify.com/projects/rssbook/deploys/6a638b7b9564650008ea2410

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 24, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
rssbook 6e620a2 Commit Preview URL

Branch Preview URL
Jul 25 2026, 08:09 AM

try {
return (await pending) as T;
} finally {
if (this.inFlight.get(fullKey) === pending) this.inFlight.delete(fullKey);
Niapya added 2 commits July 25, 2026 00:18
# Conflicts:
#	bun.lock
#	pkgs/rssbook/src/app.ts
#	pkgs/rssbook/src/books/magazine/home/components/content/Featured.tsx
#	pkgs/rssbook/src/books/magazine/home/components/content/Item.tsx
#	pkgs/rssbook/src/books/magazine/home/components/layout/Footer.tsx
#	pkgs/rssbook/src/books/magazine/home/components/layout/Nav.tsx
#	pkgs/rssbook/src/books/masonry/home/components/content/Item.tsx
#	pkgs/rssbook/src/books/masonry/home/components/layout/Footer.tsx
#	pkgs/rssbook/src/books/masonry/home/components/layout/Nav.tsx
#	pkgs/rssbook/src/books/minimal/home/components/content/Item.tsx
#	pkgs/rssbook/src/books/minimal/home/components/layout/Footer.tsx
#	pkgs/rssbook/src/books/minimal/home/components/layout/Nav.tsx
#	pkgs/rssbook/src/books/reader/home/components/content/Item.tsx
#	pkgs/rssbook/src/books/reader/home/components/layout/Footer.tsx
#	pkgs/rssbook/src/books/redbook/home/components/content/Item.tsx
#	pkgs/rssbook/src/books/redbook/home/components/layout/Footer.tsx
#	pkgs/rssbook/src/books/redbook/home/components/layout/Nav.tsx
#	pkgs/rssbook/src/index.ts
#	pkgs/rssbook/src/plugins/init.ts
#	platform/cloudflare/index.ts
#	platform/cloudflare/package.json
#	platform/cloudflare/wrangler.jsonc
#	platform/deno/index.ts
#	platform/vercel/api/index.ts
#	platform/vercel/package.json
@Niapya Niapya changed the title chore: merge dev into main feat: add browser automation and unify the cache layer. Jul 24, 2026
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 117 files, which is 17 over the limit of 100.

To get a review, narrow the scope:
• coderabbit review --committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8b22b5a9-bf82-4bd1-9cf5-9bf372bb8399

📥 Commits

Reviewing files that changed from the base of the PR and between bbe7cfe and 6e620a2.

⛔ Files ignored due to path filters (2)
  • bun.lock is excluded by !**/*.lock
  • pkgs/utils-feed-helper/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (119)
  • .agents/skills/create-feed/SKILL.md
  • .agents/skills/create-feed/references/browser.md
  • .agents/skills/create-feed/references/errors.md
  • HOSTS
  • README.EN.md
  • README.md
  • biome.jsonc
  • package.json
  • pkgs/rssbook/package.json
  • pkgs/rssbook/src/app.ts
  • pkgs/rssbook/src/books/index.test.ts
  • pkgs/rssbook/src/books/index.ts
  • pkgs/rssbook/src/books/magazine/home/components/content/Featured.tsx
  • pkgs/rssbook/src/books/magazine/home/components/content/Item.tsx
  • pkgs/rssbook/src/books/magazine/home/components/layout/Footer.tsx
  • pkgs/rssbook/src/books/magazine/home/components/layout/Nav.tsx
  • pkgs/rssbook/src/books/masonry/home/components/content/Item.tsx
  • pkgs/rssbook/src/books/masonry/home/components/layout/Footer.tsx
  • pkgs/rssbook/src/books/masonry/home/components/layout/Nav.tsx
  • pkgs/rssbook/src/books/minimal/home/components/content/Item.tsx
  • pkgs/rssbook/src/books/minimal/home/components/layout/Footer.tsx
  • pkgs/rssbook/src/books/minimal/home/components/layout/Nav.tsx
  • pkgs/rssbook/src/books/reader/home/components/content/Item.tsx
  • pkgs/rssbook/src/books/reader/home/components/layout/Footer.tsx
  • pkgs/rssbook/src/books/redbook/home/components/content/Item.tsx
  • pkgs/rssbook/src/books/redbook/home/components/layout/Footer.tsx
  • pkgs/rssbook/src/books/redbook/home/components/layout/Nav.tsx
  • pkgs/rssbook/src/browser/browser.test.ts
  • pkgs/rssbook/src/browser/browser.ts
  • pkgs/rssbook/src/browser/cdp.test.ts
  • pkgs/rssbook/src/browser/cdp.ts
  • pkgs/rssbook/src/browser/errors.test.ts
  • pkgs/rssbook/src/browser/errors.ts
  • pkgs/rssbook/src/browser/index.ts
  • pkgs/rssbook/src/browser/lease.test.ts
  • pkgs/rssbook/src/browser/lease.ts
  • pkgs/rssbook/src/browser/local.test.ts
  • pkgs/rssbook/src/browser/local.ts
  • pkgs/rssbook/src/browser/test-helpers.ts
  • pkgs/rssbook/src/cache/cache.test.ts
  • pkgs/rssbook/src/cache/cache.ts
  • pkgs/rssbook/src/cache/index.ts
  • pkgs/rssbook/src/cache/memory.test.ts
  • pkgs/rssbook/src/cache/memory.ts
  • pkgs/rssbook/src/cache/null.test.ts
  • pkgs/rssbook/src/cache/null.ts
  • pkgs/rssbook/src/index.ts
  • pkgs/rssbook/src/plugins/errorHandler.test.ts
  • pkgs/rssbook/src/plugins/errorHandler.ts
  • pkgs/rssbook/src/plugins/init.test.ts
  • pkgs/rssbook/src/plugins/init.ts
  • pkgs/rssbook/src/plugins/inject.test.ts
  • pkgs/rssbook/src/plugins/inject.ts
  • pkgs/rssbook/src/plugins/openAPI.ts
  • pkgs/rssbook/src/plugins/render.test.ts
  • pkgs/rssbook/src/plugins/render.ts
  • pkgs/rssbook/src/routers/feeds/_example/_browser/index.start.ts
  • pkgs/rssbook/src/routers/feeds/_example/_browser/index.test.ts
  • pkgs/rssbook/src/routers/feeds/_example/_browser/index.ts
  • pkgs/rssbook/src/routers/feeds/_example/_html/index.ts
  • pkgs/rssbook/src/routers/feeds/_example/index.ts
  • pkgs/rssbook/src/routers/feeds/multimedia/ithome/errors.ts
  • pkgs/rssbook/src/routers/feeds/multimedia/ithome/index.ts
  • pkgs/rssbook/src/routers/feeds/multimedia/pingwest/index.ts
  • pkgs/rssbook/src/routers/feeds/multimedia/sspai/index.ts
  • pkgs/rssbook/src/routers/utils/fetch.ts
  • pkgs/rssbook/src/routers/utils/filter.ts
  • pkgs/rssbook/src/routers/utils/intersection.ts
  • pkgs/rssbook/src/routers/utils/sort.ts
  • pkgs/rssbook/src/routers/utils/transform.ts
  • pkgs/rssbook/src/routers/utils/union.ts
  • pkgs/rssbook/src/types/data.ts
  • pkgs/rssbook/src/types/route.ts
  • pkgs/rssbook/src/types/source.ts
  • pkgs/rssbook/src/types/utils.ts
  • pkgs/rssbook/src/utils/browser/cdp.test.ts
  • pkgs/rssbook/src/utils/browser/cdp.ts
  • pkgs/rssbook/src/utils/browser/cookies.test.ts
  • pkgs/rssbook/src/utils/browser/cookies.ts
  • pkgs/rssbook/src/utils/browser/fingerprint.test.ts
  • pkgs/rssbook/src/utils/browser/fingerprint.ts
  • pkgs/rssbook/src/utils/browser/index.ts
  • pkgs/rssbook/src/utils/browser/resources.test.ts
  • pkgs/rssbook/src/utils/browser/resources.ts
  • pkgs/rssbook/src/utils/browser/response.test.ts
  • pkgs/rssbook/src/utils/browser/response.ts
  • pkgs/rssbook/src/utils/cache.test.ts
  • pkgs/rssbook/src/utils/cache.ts
  • pkgs/rssbook/src/utils/category.ts
  • pkgs/rssbook/src/utils/dispatchRoute.ts
  • pkgs/rssbook/src/utils/error.ts
  • pkgs/rssbook/src/utils/feeds/parse.ts
  • pkgs/rssbook/src/utils/feeds/render.test.ts
  • pkgs/rssbook/src/utils/feeds/render.ts
  • pkgs/rssbook/src/utils/index.ts
  • pkgs/rssbook/src/utils/source.ts
  • pkgs/utils-feed-helper/.gitignore
  • pkgs/utils-feed-helper/package.json
  • pkgs/utils-feed-helper/public/index.html
  • pkgs/utils-feed-helper/src/index.ts
  • pkgs/utils-feed-helper/src/index.tsx
  • pkgs/utils-feed-helper/tsconfig.json
  • platform/cloudflare/browser.test.ts
  • platform/cloudflare/browser.ts
  • platform/cloudflare/cache.test.ts
  • platform/cloudflare/cache.ts
  • platform/cloudflare/index.ts
  • platform/cloudflare/package.json
  • platform/cloudflare/worker-configuration.d.ts
  • platform/cloudflare/wrangler.jsonc
  • platform/deno/cache.test.ts
  • platform/deno/cache.ts
  • platform/deno/deno.json
  • platform/deno/index.ts
  • platform/deno/package.json
  • platform/vercel/api/_browser.test.ts
  • platform/vercel/api/_browser.ts
  • platform/vercel/api/index.ts
  • platform/vercel/package.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

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