Skip to content

Rename project to rssnook - #4

Draft
AdrienLF wants to merge 1 commit into
mainfrom
codex/rename-rssnook
Draft

Rename project to rssnook#4
AdrienLF wants to merge 1 commit into
mainfrom
codex/rename-rssnook

Conversation

@AdrienLF

@AdrienLF AdrienLF commented Jul 18, 2026

Copy link
Copy Markdown
Owner

What changed

  • renamed the complete product, UI, runtime, packages, Docker project, launcher, database defaults, documentation, and repository-facing assets to rssnook
  • added automatic migration support for existing installations using the former Compose project and database names
  • added public-project documentation, CI, Dependabot, security policy, contribution guidance, issue templates, and pull request conventions
  • refreshed dependencies, accessibility behavior, Docker builds, proxying, nginx hardening, and the product screenshot

Why

This prepares the project for a public release under its permanent rssnook identity while preserving existing user data.

Validation

  • 148 backend tests passed
  • 29 frontend tests passed
  • frontend production build passed
  • Docker backend and frontend images built successfully
  • Docker Compose configuration validated
  • npm audit reports 0 vulnerabilities
  • desktop and mobile visual QA completed
  • shell entrypoints passed syntax checks
  • staged diff passed whitespace validation

Summary by Sourcery

Rename the application, services, and assets to rssnook and prepare the project for public release while preserving existing installations.

New Features:

  • Add architecture documentation and contributor guidelines for the public project.
  • Introduce GitHub CI workflow, Dependabot configuration, codeowners, issue templates, and pull request template for repository hygiene.
  • Provide a macOS launcher script for starting the full stack and guiding users through model download.

Enhancements:

  • Update backend and frontend package metadata, dependencies, and Dockerfiles for a 1.0.0 release and reproducible builds.
  • Improve accessibility and UX with better focus behavior, ARIA roles and labels, and keyboard handling across modals, search, and topic navigation.
  • Harden nginx with stricter security headers, disable server tokens, and forward proxy metadata for secure reverse-proxying.
  • Add Docker Compose project naming, service healthchecks, and legacy container/database migration for seamless upgrades from prior releases.
  • Refine in-app and README documentation to reflect the new name, setup flow, upgrade path, and security model.

Build:

  • Adjust backend and frontend Docker images to use locked dependencies, custom entrypoint, and non-root execution.
  • Configure Vite dev server API proxying and Playwright/e2e helpers for local and CI test environments.

CI:

  • Add a CI workflow to run backend tests, frontend tests, builds, and Compose validation on pushes and pull requests.

Deployment:

  • Set a Compose project name, add healthchecks for backend and frontend, and document backup and upgrade procedures for the default SQLite data directory.

Documentation:

  • Rewrite the README and add ARCHITECTURE, SECURITY, and CONTRIBUTING docs for users and contributors.

Tests:

  • Update frontend tests and e2e configuration to match the new base URL, saved-search API usage, and local stack behavior.

Chores:

  • Rename configuration defaults, headers, and exported artifacts (e.g., OPML files, database paths, user agents) from the old project name to rssnook.

@sourcery-ai

sourcery-ai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Reviewer's Guide

Renames the product and codebase from Readr to rssnook, adds migration/entrypoint logic and Compose tweaks to preserve existing deployments, improves Docker/nginx/dev tooling and accessibility, and introduces public-facing project docs plus CI/dependabot/security configuration for a 1.0.0-style release.

Sequence diagram for legacy Readr to rssnook migration on startup

sequenceDiagram
    actor User
    participant rssnook_command as rssnook.command
    participant start_sh as start.sh
    participant Docker as docker
    participant Backend as backend_container
    participant Entrypoint as entrypoint.sh
    participant Uvicorn as uvicorn

    User->>rssnook_command: open rssnook.command
    rssnook_command->>start_sh: bash start.sh --build

    start_sh->>Docker: docker ps (check legacy project readr)
    alt legacy containers exist
        start_sh->>Docker: docker compose -p readr down --remove-orphans
    end
    start_sh->>Docker: docker compose up -d [gpu or cpu]

    Docker->>Backend: start backend service
    Backend->>Entrypoint: rssnook-entrypoint
    Entrypoint->>Entrypoint: check DATABASE_URL
    Entrypoint->>Entrypoint: mv rss_reader.db -> rssnook.db
    Entrypoint->>Entrypoint: chown -R appuser:appuser /app/data
    Entrypoint->>Uvicorn: exec gosu appuser uvicorn app.main:app

    Uvicorn-->>User: rssnook API available at /api/settings
Loading

File-Level Changes

Change Details Files
Global rename and branding from Readr to rssnook across UI, API, docs, packaging, and defaults.
  • Updated user-facing names and titles in the UI, docs, OPML exports, and CLI scripts from Readr to rssnook.
  • Renamed backend and frontend packages and metadata (project names, versions, descriptions, URLs, user agents).
  • Adjusted default database filename and related environment-variable/documentation references to rssnook.db.
README.md
frontend/src/routes/+page.svelte
frontend/src/routes/docs/+page.svelte
frontend/src/routes/settings/+page.svelte
frontend/src/routes/bookmarks/+page.svelte
frontend/src/routes/saved/+page.svelte
frontend/src/routes/search/+page.svelte
frontend/src/app.html
frontend/src/lib/components/Sidebar.svelte
backend/app/main.py
backend/app/config.py
backend/app/routers/feeds.py
backend/pyproject.toml
backend/app/services/extractor.py
backend/app/services/fetcher.py
frontend/package.json
frontend/package-lock.json
Backward-compatible migration support for existing Compose deployments and databases after the rename.
  • Added a backend entrypoint that migrates the legacy rss_reader.db file to rssnook.db when using the default DATABASE_URL.
  • Updated the macOS launcher and start script to reference the new project name and handle legacy Compose projects.
  • Documented upgrade behavior and data safety for existing installations.
backend/entrypoint.sh
backend/Dockerfile
start.sh
rssnook.command
README.md
Improved Docker and runtime configuration for backend, frontend, and nginx.
  • Introduced a named Compose project and health checks for backend and frontend services.
  • Refined backend Docker build to pin uv version, use uv.lock, and delegate startup to a dedicated entrypoint running as a non-root user.
  • Optimized frontend Docker image to use npm ci with a lockfile in both build and runtime stages.
  • Extended nginx configuration with stricter security headers, disabled server tokens, and improved proxy headers for API and UI traffic.
docker-compose.yml
backend/Dockerfile
frontend/Dockerfile
nginx/nginx.conf
Frontend dependency refresh, configuration updates, and minor UX/accessibility improvements.
  • Upgraded SvelteKit, Svelte, Vite, adapter, lucide icons, dompurify, postcss, and vitest versions and renamed the frontend package with proper metadata.
  • Switched icon imports from lucide-svelte to @lucide/svelte across components and routes.
  • Added a dev-server API proxy config and adjusted Playwright/e2e helpers to target the new base URL and API path.
  • Improved keyboard/accessibility behavior for topic lists, modals, toolbars, and search input (labels, ARIA attributes, Escape handling, focus).
frontend/package.json
frontend/package-lock.json
frontend/vite.config.js
frontend/playwright.config.js
frontend/tests/e2e/helpers.js
frontend/src/lib/components/*.svelte
frontend/src/routes/**/*.svelte
CI, Dependabot, governance, and architecture documentation for the public project.
  • Added GitHub Actions CI to run backend tests, frontend tests/build, and Compose validation.
  • Configured Dependabot for backend, frontend, GitHub Actions, and Docker dependencies.
  • Introduced CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, ARCHITECTURE docs, issue templates, PR template, and CODEOWNERS to define project process and expectations.
.github/workflows/ci.yml
.github/dependabot.yml
.github/ISSUE_TEMPLATE/bug_report.yml
.github/ISSUE_TEMPLATE/feature_request.yml
.github/ISSUE_TEMPLATE/config.yml
.github/pull_request_template.md
.github/CODEOWNERS
CONTRIBUTING.md
CODE_OF_CONDUCT.md
SECURITY.md
ARCHITECTURE.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

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