Skip to content
This repository was archived by the owner on Apr 22, 2026. It is now read-only.

Merge dev into main#1

Merged
sichengchen merged 99 commits into
mainfrom
dev
Feb 7, 2026
Merged

Merge dev into main#1
sichengchen merged 99 commits into
mainfrom
dev

Conversation

@sichengchen
Copy link
Copy Markdown
Owner

@sichengchen sichengchen commented Feb 4, 2026

MVP

- Created pnpm-workspace.yaml to manage workspace packages.
- Added tsconfig.base.json for TypeScript compiler options.
- Introduced turbo.json for task management with Turbo.
@sichengchen sichengchen requested a review from Copilot February 4, 2026 02:30
Repository owner deleted a comment from chatgpt-codex-connector Bot Feb 4, 2026
@sichengchen
Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

To use Codex here, create a Codex account and connect to github.

Copy link
Copy Markdown

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 pull request merges the complete development history from the dev branch into an empty main branch, introducing a full-featured local-first news reader application called "Dispatch" built with Electron, React, and a Node.js backend.

Changes:

  • Added complete monorepo structure with workspace configuration (pnpm, turbo)
  • Implemented backend server with tRPC API, RSS scraping, LLM-powered summarization, and scheduled refresh
  • Created Electron desktop application with React frontend and three-pane UI (sources, articles, reader)

Reviewed changes

Copilot reviewed 78 out of 86 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
turbo.json, pnpm-workspace.yaml, tsconfig.base.json Monorepo configuration for build orchestration and TypeScript
packages/db/* Database layer with SQLite, Drizzle ORM, schema, migrations, and seed data
packages/lib/* Shared library with AI client abstractions for LLM providers
packages/server/* Backend server with tRPC routes, RSS scraper, LLM integration, scheduler, and tests
packages/api/* Type-safe API client package exporting server router types
apps/desktop/* Electron desktop app with React UI, tRPC client, and IPC communication
scripts/check-secrets.sh Security script to detect API key leaks in repository
.gitignore, package.json Root workspace configuration and ignore rules

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

Comment thread packages/db/src/verify.ts Outdated
Comment thread apps/desktop/src/components/SourceList.tsx
Comment thread apps/desktop/src/main.tsx Outdated
Comment thread apps/desktop/vite.config.ts Outdated
Comment thread apps/desktop/electron/preload.ts Outdated
Comment thread apps/desktop/src/components/ReaderPane.tsx Outdated
Comment thread packages/server/src/services/settings.ts Outdated
Comment thread packages/server/src/services/scheduler.ts Outdated
Comment thread apps/desktop/src/components/ArticleList.tsx Outdated
sichengchen and others added 20 commits February 3, 2026 22:19
Implement Phase 2.1 advanced scraping:
- L2 scraping via fetch + JSDOM + @mozilla/readability for static HTML
- L3 scraping via Playwright headless browser for SPAs
- Automatic fallback chain: RSS → HTML → SPA with strategy caching
- p-queue concurrency limiter (max 3 concurrent scrapes)
- New scrapingStrategy column on sources table (via migration)
- Scheduler and routes updated to use fallback chain + queue
- 7 automated tests covering extraction, fallback, concurrency, and
  browser lifecycle

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added `grammy` package for Telegram bot integration.
- Introduced `notificationsRouter` for managing notification settings.
- Implemented notification service to handle sending digests and breaking news alerts.
- Updated settings schema to include notification configurations.
- Enhanced digest generation to send notifications if enabled.
- Added procedures for managing pairing codes and delivery status.
- Integrated notification checks in article processing workflow.
- Introduced a shared schedule shape for fetch, pipeline, and digest tasks in `dispatch.settings.json`, consolidating `fetchSchedule`, `pipelineSchedule`, and digest scheduling fields into a single `schedules` key.
- Refactored the scheduler service to utilize a unified cron resolution logic, replacing individual functions for each task with a single `resolveScheduleCron`.
- Updated frontend components to read and write the new `schedules` structure, ensuring compatibility with the updated settings schema.
- Removed deprecated settings keys and adjusted related schemas in Zod for validation.
- Enhanced the `getSchedulerSnapshot()` function to reflect the new unified structure, providing a consistent interface for scheduled task data.
- Updated tests and documentation to align with the new configuration and functionality.
- Implemented an onboarding wizard to guide users through provider setup and adding their first source.
- Created `ErrorBoundary` component to handle rendering errors gracefully.
- Updated settings schema to include `onboardingComplete` flag.
- Added server bundling script to package the server as a standalone process within the Electron app.
- Integrated auto-update functionality using `electron-updater` and configured macOS code signing.
- Established release infrastructure with versioning, LICENSE file, and CI/CD workflows for signed releases.
- Refactor SourcesPage to display SourceList and SourceArticlesPanel side by side.
- Implement article count display for each source in SourceList.
- Create SourceArticlesPanel to show articles for the selected source with management actions.
- Add delete and reprocess functionality for articles, including bulk operations.
- Enhance navigation to allow returning to Sources page from article viewer.
- Update server-side routes to support new article management mutations.
@sichengchen sichengchen merged commit c075298 into main Feb 7, 2026
4 checks passed
@sichengchen sichengchen deleted the dev branch February 7, 2026 09:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants