Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
04fe1f0
release: v3.0.3 — Audio Mode, extension UI and website revamp, monorepo
DarhkVoyd May 7, 2026
9e63c09
webext + website
DarhkVoyd Jun 21, 2026
111c312
Restructure the website for App Router colocation and simpler data.
DarhkVoyd Jun 21, 2026
6b904b1
Restructure web-ext: co-locate feature stores, introduce core/, clean…
DarhkVoyd Jun 28, 2026
9b047ca
refactor
DarhkVoyd Jun 28, 2026
2f4aae4
refactor: consolidate core/ and data/ — dissolve hooks/ and stale dat…
DarhkVoyd Jun 28, 2026
60fcf5c
refactor: unify storage naming — CHROME_STORAGE_LOCAL, BROWSER_STORAG…
DarhkVoyd Jun 28, 2026
3d9dd18
refactor: add _KEY/_STORE suffixes to storage constants for clarity
DarhkVoyd Jun 28, 2026
73c3877
fix(utils): simplify mergeDefaults and drop stale storage keys
DarhkVoyd Jul 25, 2026
2a1531b
docs(agents): restructure AGENTS.md as a hub and add comment policy
DarhkVoyd Jul 25, 2026
a12bc56
refactor(web-ext): apply the comment policy to segments, watch and op…
DarhkVoyd Jul 25, 2026
54725d6
refactor(web-ext): finish the comment sweep across the remaining files
DarhkVoyd Jul 25, 2026
5191da7
fix(web-ext): stop cycleProfilesShortcut listing every preset twice
DarhkVoyd Jul 25, 2026
fad64e5
chagnes
DarhkVoyd Aug 16, 2026
2725f6a
rebuild(website): hero-only site on Next 16 with no framework deps
DarhkVoyd Sep 26, 2026
056a811
fix(website): restore the original hero and make the noise backdrop v…
DarhkVoyd Sep 26, 2026
10c5c58
polish(website): fix the upside-down backdrop, restore the cursor, re…
DarhkVoyd Sep 26, 2026
67bd718
polish(website): clean up the backdrop at rest
DarhkVoyd Sep 26, 2026
38d24f9
polish(website): keep the headline on a dark pool and drop the ember …
DarhkVoyd Sep 26, 2026
1902746
type(website): Newsreader Light for display, Geist for UI text
DarhkVoyd Sep 26, 2026
15eb6c1
type(website): Gloock for display at a calmer size
DarhkVoyd Sep 26, 2026
d4c912c
type(website): Instrument Sans for secondary text
DarhkVoyd Sep 26, 2026
e56bbfc
copy(website): drop the version number from the hero and footers
DarhkVoyd Sep 26, 2026
1462577
copy(website): call the support link "Add a topping"
DarhkVoyd Sep 26, 2026
03b9eed
rebuild(backend): one file per feature, no router dependency
DarhkVoyd Sep 26, 2026
ed32969
refactor(backend): make the playlist feature read top-down
DarhkVoyd Sep 26, 2026
a4de764
refactor(backend): name the playlist functions by what they do
DarhkVoyd Sep 26, 2026
c919c98
fix(backend): say when the YouTube key is missing, relay YouTube's er…
DarhkVoyd Sep 26, 2026
08bfbe0
fix(backend): declare the YouTube secret in src/env.d.ts
DarhkVoyd Sep 26, 2026
fb9c21d
refactor(backend): fetchVideoIdsByPage, since it fetches
DarhkVoyd Sep 26, 2026
4693cd9
refactor(backend): name YouTube's error parser for what it reads
DarhkVoyd Sep 26, 2026
ca87208
refactor(backend): errorMessage belongs in http.ts
DarhkVoyd Sep 26, 2026
f5dc739
deploy(backend): route only toppings.enry.ch/api/* to the Worker
DarhkVoyd Sep 26, 2026
ddc589e
fix(web-ext): make type-check run, and type dom-chef JSX as DOM
DarhkVoyd Sep 26, 2026
1bd5db6
build(web-ext): replace webpack and Babel with Bun.build
DarhkVoyd Sep 26, 2026
08f7569
feat(web-ext): finish the Audio preset, remove the standalone Audio Mode
DarhkVoyd Sep 26, 2026
7ab5aeb
fix(web-ext): Shorts buttons, playback menu class, unsaved auto-scrol…
DarhkVoyd Sep 26, 2026
5962d1f
refactor(web-ext): feature folders; dissolve core/, data/, utils/, co…
DarhkVoyd Sep 26, 2026
d27a953
refactor(web-ext): split SegmentPanel into panel/ by section
DarhkVoyd Sep 26, 2026
23356a5
copy(website): Audio mode becomes the Audio preset
DarhkVoyd Sep 26, 2026
b307bab
fix(website): FAQ entry for the Audio preset
DarhkVoyd Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 0 additions & 67 deletions .github/ISSUE_TEMPLATE/bug_report.yml

This file was deleted.

4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Security
url: https://github.com/enrych/toppings/security
about: Report sensitive issues through GitHub; do not file public issues for vulnerabilities.
30 changes: 0 additions & 30 deletions .github/ISSUE_TEMPLATE/docs.yml

This file was deleted.

44 changes: 0 additions & 44 deletions .github/ISSUE_TEMPLATE/feature_request.yml

This file was deleted.

33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Issue
about: Bug, feature, or docs
title: ""
labels: []
assignees: []
---

<!--
Agent — read AGENTS.md first.
Title: [Bug] | [Feature] | [Docs]
Parse: Summary → Context → Details → Expected vs actual → Acceptance criteria → Agent brief
-->

## Summary

One sentence: what is broken, missing, or should change?

## Context

- **Surface:** extension | website | backend | packages | docs
- **Version:** (if known)
- **Environment:** browser, OS (if relevant)

## Details

## Expected vs actual

N/A

## Acceptance criteria

## Agent brief
27 changes: 0 additions & 27 deletions .github/pull_request_template.md

This file was deleted.

44 changes: 0 additions & 44 deletions .github/workflows/build-web-ext.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/deploy-backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Deploy Backend

on:
push:
branches: [main]
paths:
- "backend/**"
workflow_dispatch:

concurrency:
group: "cf-worker-backend"
cancel-in-progress: true

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- run: bun install --frozen-lockfile
working-directory: backend
- run: bun run check
working-directory: backend
- uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
workingDirectory: backend
command: deploy
Comment on lines +16 to +29
65 changes: 21 additions & 44 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,17 @@ on:
branches: ["main"]
paths:
- "website/**"

workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
group: "cf-pages-website"
cancel-in-progress: false

jobs:
build:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -29,42 +24,24 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v1

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Restore cache
uses: actions/cache@v4
with:
path: |
website/.next/cache
# Generate a new cache whenever packages or source files change.
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock', '**/bun.lockb') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
# If source files changed but packages didn't, rebuild from a prior cache.
restore-keys: |
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock', '**/bun.lockb') }}-

- name: Install dependencies
run: |
source $GITHUB_ENV
cd website && bun install

- name: Build with Next.js
run: |
source $GITHUB_ENV
cd website && bun run build

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
run: cd website && bun install

- name: Build (static export → website/out)
run: cd website && bun run build

# Deploys the static export to Cloudflare Pages.
# Required repo secrets:
# CLOUDFLARE_API_TOKEN — token with "Cloudflare Pages: Edit"
# CLOUDFLARE_ACCOUNT_ID — your Cloudflare account id
# The --project-name MUST match the Pages project bound to
# toppings.enry.ch in the Cloudflare dashboard.
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
path: website/out

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: >-
pages deploy website/out
--project-name=toppings-website
--branch=main
Loading
Loading