Skip to content

Commit a4c74b7

Browse files
authored
feat: report broken recaps and blurbs from page or popup (#125) (#126)
* feat: add FlagIcon component * feat: add ReportButton component Opens a pre-filled Google Form with the chapter URL and current date for users to report broken recaps. * feat: show report button in popup on chapter pages Detects the active tab URL and conditionally renders the ReportButton in the popup header when the user is on a RoyalRoad chapter page. * feat: wire up Google Form for popup report button Replace placeholder form URL and field IDs with actual Google Form. Remove date field since Google Sheets adds a timestamp automatically. * feat: add openUrl message handler to background script * feat: add report broken recap link to chapter pages Inject a report link into the chapter page sidebar that opens a pre-filled Google Form with the current chapter URL. * chore: bump version to 1.7.0 and add patch notes Add patch notes for bug reporting feature release. * style: pnpm format * refactor: extract shared report form config and remove unused handler Move Google Form URL and builder to shared report-form.ts config. Remove unused openUrl message handler from background script. * chore: split host_permissions out of permissions in wxt.config Required for proper MV3 compliance. Note: existing users will be prompted to re-approve the royalroad.com host permission on update. * feat: enrich broken-report with version/browser/type and blurb support Extend buildReportFormUrl to prefill version, browser, and content type alongside the chapter URL, and support reporting broken blurbs in addition to recaps. Introduce a shared ContentType ("recap" | "blurb") type, extract isChapterUrl into dom-utils, and expose the report link placement in advanced settings. Adds unit tests for URL building. NOTE: version/browser/type Google Form entry IDs are still placeholders (entry.PLACEHOLDER_*) and must be replaced with real field IDs before those prefills will populate. * feat: wire real Google Form entry IDs for version/browser/type prefill Replace placeholder entry IDs with the real field IDs from the report form (Version, Browser type, Content Type), so all four values now prefill correctly. * chore: pin pnpm build-script approvals Record approved dependency build scripts (esbuild enabled, spawn-sync disabled) via pnpm approve-builds so contributors and CI share the same build policy. * chore: add .gitattributes to normalize line endings to LF Pin text files to LF in the repo and working trees so Windows core.autocrlf no longer produces phantom CRLF-only diffs. Mark binary asset types so their bytes are left untouched. * docs: update v1.7.0 patch notes date and content Set release date to 2026-06-21 and reflect what actually shipped: blurb reporting in addition to recaps, and auto-included version/browser diagnostics. * ci: prevent needrestart hang and add timeout to CSS Selectors workflow Set NEEDRESTART_MODE=a / NEEDRESTART_SUSPEND=1 so `playwright install --with-deps` no longer hangs on the needrestart prompt on Ubuntu 24.04, and add timeout-minutes: 15 so any future hang fails fast instead of squatting a runner. Closes #127. * ci: upgrade @playwright/test to 1.61.0 to fix browser-install hang @playwright/test 1.57.0 is affected by a regression (Playwright 1.55.1 to <1.60.0) where `playwright install` downloads Chromium then hangs indefinitely on system-deps, stalling the CSS Selectors workflow until the runner times out. Upgrade to 1.61.0, which includes the fix. Ref: microsoft/playwright#40998
1 parent 36d6639 commit a4c74b7

22 files changed

Lines changed: 746 additions & 158 deletions

.gitattributes

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Normalize line endings: store text as LF in the repo and in working trees,
2+
# regardless of each contributor's core.autocrlf setting.
3+
* text=auto eol=lf
4+
5+
# Binary assets — never touch line endings
6+
*.png binary
7+
*.jpg binary
8+
*.jpeg binary
9+
*.gif binary
10+
*.ico binary
11+
*.webp binary
12+
*.woff binary
13+
*.woff2 binary
14+
*.ttf binary
15+
*.eot binary
16+
*.zip binary
17+
*.crx binary
18+
*.xpi binary

.github/workflows/css-selectors.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ jobs:
1616
css-selectors:
1717
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
1818
runs-on: ubuntu-latest
19+
timeout-minutes: 15
20+
21+
# Stop needrestart from prompting during `playwright install --with-deps`
22+
# on Ubuntu 24.04, which otherwise hangs the apt step indefinitely.
23+
env:
24+
NEEDRESTART_MODE: a
25+
NEEDRESTART_SUSPEND: 1
1926

2027
steps:
2128
- uses: actions/checkout@v4

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "royalrefresh",
3-
"version": "1.6.0",
3+
"version": "1.7.0",
44
"description": "A web extension for royalroad.com. For people who juggle multiple stories",
55
"main": "background.js",
66
"directories": {
@@ -44,7 +44,7 @@
4444
},
4545
"homepage": "https://github.com/Seismix/royalrefresh#readme",
4646
"devDependencies": {
47-
"@playwright/test": "^1.57.0",
47+
"@playwright/test": "^1.61.0",
4848
"@tsconfig/svelte": "^5.0.6",
4949
"@types/firefox-webext-browser": "^143.0.0",
5050
"@types/node": "^25.0.9",

0 commit comments

Comments
 (0)