Repository navigation
Conversation
…oogle CSE The site's own /search/ route now 301-redirects to http://127.0.0.1/, which refuses connections, so searchNovels always fails. The site's search popup now submits to Google Programmable Search (cx=649de34f5e63448cb). Plain fetches of the CSE results endpoint return HTTP 403 to non-browser clients, so the plugin cannot reach search without a data-source change and an API key. Rename to linovelib_tw.broken.ts per the repository convention for unavailable plugins and bump the version to 1.0.2. Listing, novel detail and chapter parsing are unchanged.
[Low impact] No additional issue blocks merging beyond the concerns RibatTRW already acknowledges. SummaryMarks Linovelib(繁體) as broken by renaming
Reviews (1) · Last reviewed commit: "fix(chinese/linovelib_tw): mark source b..." · Reviewed by Greptile |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Fix the broken linovelib_tw source so a reader can search it again, and include screenshots of the working fix in the PR.
plugins/chinese/linovelib_tw.ts browses and reads fine, but its own live check fails searchNovels: the plugin reports its own error 無法獲取搜索結果, 請檢查網絡 (cannot get search results), while the site's list page answers 200 with about 47 KB. So the site is up - the plugin's search path has drifted. This is one of the plugins this fleet's plugin health sweep confirmed as genuinely broken today (not a site-side block).
Make sure the fix's pull request shows a photo of the plugin working correctly inside the plugin playground, and run that screenshot process headless if possible.
Later, the captain said: for linovel cant we use the chrome tools we already have if not do the recommended actions but include screenshots of the broken site
What Changed
plugins/chinese/linovelib_tw.tstoplugins/chinese/linovelib_tw.broken.ts, which excludes the Linovelib(繁體) source from normal production compilation while keeping its source.1.0.1to1.0.2, as required for an existing plugin change.Risk Assessment
🚨 High: The single change disables the whole linovelib_tw plugin instead of fixing its search, which the stated intent requires, and it rests on unverified evidence while a later human decision asked for a browser-based check first, so it should not merge without explicit human approval.
Testing
The change was driven live against the real site with the plugin's live checker, using a temporary copy of the pre-rename plugin. Search still fails (searchNovels FAIL) and the site's /search/ route still 301-redirects to 127.0.0.1, so the core intent is not met. Browsing and reading pass on the original file but are excluded from the playground and production build by the rename. The browser screenshots the intent asks for could not be taken because the Chrome bridge was unavailable. Overall result: no-go.
Browser evidence (headless, captured by an AI worker)
Authorship: this change and this write-up were produced by an AI agent (Claude Haiku 5.5) under the captain's direction. No human has reviewed the code. The screenshots below come from a headless Chromium run on this machine, not from the LNReader app (the Android toolchain is not installed here), and not from the plugin playground: the renamed
.broken.tsfile is excluded from the playground registry.Screenshots of the live site, taken 2026-10-15:
/search/{term}_1.htmlroute: 127.0.0.1 refuses the connection:Findings:
/search/returns 301 to 127.0.0.1, and the search form now posts to Google Programmable Search. A plugin cannot read those results without a browser or an API key, and the CSE element endpoint returns 403 to plain HTTP clients.Why Plugin Live Check fails
The CI Plugin Live Check fails on the renamed
plugins/chinese/linovelib_tw.broken.ts. The failure is expected and comes from the site, not from this diff:/search/returns 301 to127.0.0.1, and the search form now posts to Google Programmable Search (cx=649de34f5e63448cb).parseChapterfailed once in CI (80 chars) but passed locally at 2238 chars, so that look transient. Its parser was not changed.The live check is left failing as an honest report: the shared workflow and checker were not changed, and no API key was added.
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
plugins/chinese/linovelib_tw.broken.ts:435- Contradicts the required intent 'Fix the broken linovelib_tw source so a reader can search it again'. The commit makes no change to searchNovels (lines 435-442 still call /search/${term}_${page}.html with the same error text). Instead the whole source is disabled by renaming linovelib_tw.ts to linovelib_tw.broken.ts, which removes the plugin from production compilation and flags it as broken in scripts/build-plugin-manifest.js:206-222. Browsing and reading, which the intent says already work, are removed from users' reach as well. Required behavior now absent: a working search path. Remedy needs human authorization because it changes the product status of the plugin rather than fixing search.plugins/chinese/linovelib_tw.broken.ts:12- The later recorded decision asked 'for linovel cant we use the chrome tools we already have' before falling back to the recommended action, and to include screenshots of the broken site. The commit's evidence is plain non-browser fetches (the commit message cites HTTP 403 for CSE results and a 301 to http://127.0.0.1/). It records no browser-based attempt and no screenshot of the broken site. The version bump at line 12 (1.0.1 to 1.0.2) is also tied to this unverified status change. The claimed root cause (search moved to Google CSE, and the /search/ route redirects to 127.0.0.1) is not reproduced anywhere in the diff.plugins/chinese/linovelib_tw.broken.ts:435- The change does not fix search. It renames the plugin to .broken.ts, which by the build script's rules removes it from production compilation. The live probe confirms the search route still 301-redirects to http://127.0.0.1/. The user intent requires a working search path and screenshots of the working fix. This needs the user to decide whether to keep the source disabled, switch to a different search data source, or accept the status change.git show --stat fc2b110 and git show fc2b110 -- plugins/chinese/linovelib_tw.broken.ts (confirmed the diff is a rename plus version bump only)sed of plugins/chinese/linovelib_tw.broken.ts lines 425-445 (searchNovels still calls /search/${term}_${page}.html with the same error text)sed of scripts/build-plugin-manifest.js lines 200-225 (.broken.ts files are excluded from production and flagged as broken)curl -sS -o /dev/null -w '%{http_code} %{redirect_url}' 'https://tw.linovelib.com/search/測試_1.html' (live: 301 to http://127.0.0.1/)curl -sS -o /dev/null -w '%{http_code}' 'https://tw.linovelib.com/top/lastupdate/1.html' (live: 200)🔧 No changes applied.
3 issues (2 errors, 1 warning) still open:
plugins/chinese/linovelib_tw.broken.ts:435- Search for linovelib_tw still fails: the live check reports searchNovels FAIL with 無法獲取搜索結果, 請檢查網絡 for both the renamed file and the original file. The site's /search/ route still returns 301 to http://127.0.0.1/, so the required intent 'a reader can search it again' is not met.plugins/chinese/linovelib_tw.broken.ts:1- The rename removes the plugin from the playground and production catalog (src/provider/plugin-registry.ts excludes **/*.broken.ts), so readers lose browsing and reading too, not only search. Needs a human decision on whether to keep the source disabled.npm run check:plugin -- plugins/chinese/linovelib_tw.broken.tsreports searchNovels FAIL (無法獲取搜索結果, 請檢查網絡).curl https://tw.linovelib.com/search/測試_1.htmlreturns 301 to http://127.0.0.1/. The sam…npm run check:plugin -- plugins/chinese/linovelib_tw.broken.tsreports popularNovels PASS (50 novels), parseNovel PASS (620 chapters), parseChapter PASS (2238 chars).git show fc2b110andgit show --statto read the diff (rename plus version bump only)npm ciin the worktree to install dependencies (node_modules, gitignored)curlprobes of https://tw.linovelib.com/search/測試_1.html, search.html?searchkey=test, /search/test_1.html, the home page, and the top listcurlprobe of the Google CSE endpoint (returns 403)npm run check:plugin -- plugins/chinese/linovelib_tw.broken.ts(live: popular PASS, search FAIL, parseNovel PASS, parseChapter PASS)npm run check:pluginon a temp copy of the original 49b4727 file (search FAIL, same as the renamed file)Read src/provider/plugin-registry.ts and scripts/build-plugin-manifest.js to confirm the broken-file exclusion🔧 No changes applied.
3 issues (2 errors, 1 warning) still open:
plugins/chinese/linovelib_tw.broken.ts:435- Search for linovelib_tw still fails. The commit only renames the plugin to .broken.ts and does not change searchNovels, so a reader still cannot search it. The live check reports searchNovels FAIL with 無法獲取搜索結果, 請檢查網絡 (evidence: evidence/linovelib_tw-live-check.md). The site's /search/ route returns 403 to plain HTTP clients and the headless Chrome bridge was unavailable, so the claimed 301 to 127.0.0.1 could not be re-checked here.plugins/chinese/linovelib_tw.broken.ts:1- Renaming to .broken.ts removes the plugin from production compilation and the playground registry. Browsing and reading (popularNovels and parseNovel PASS in the live check) are therefore also withdrawn from readers. The screenshot of the working plugin in the playground required by the intent cannot be produced, because no working search exists and the plugin is excluded from the playground.npm run check:plugin -- plugins/chinese/linovelib_tw.broken.ts(live check against linovelib.com; popularNovels PASS, searchNovels FAIL, parseNovel PASS, parseChapter PASS)curl HEAD probes to https://www.linovelib.com/ and /search/ routes (all HTTP 403 to a plain client)chrome-devtools-axi open on the search URL (failed twice: BRIDGE_NOT_READY, no active CDP target)Saved the live-check table to evidence/01M4ZNNKW00RKACM8NPTY5VAHH/linovelib_tw-live-check.md🔧 No changes applied.
3 issues (2 errors, 1 warning) still open:
plugins/chinese/linovelib_tw.broken.ts:435- The commit does not fix search. searchNovels is unchanged and still fails in the live check (searchNovels FAIL, 無法獲取搜索結果, 請檢查網絡), and /search/ still returns 301 to http://127.0.0.1. A reader still cannot search linovelib_tw, which the intent requires.plugins/chinese/linovelib_tw.broken.ts:1- Renaming to .broken.ts removes the plugin from the playground registry (src/provider/plugin-registry.ts:4 excludes **/*.broken.ts) and from production compilation (scripts/build-plugin-manifest.js:206-222). Browsing and reading, which pass in the live check on the original file, are withdrawn from readers. Needs a human decision on whether to keep the source disabled.git show --stat HEAD and git show HEAD~1:plugins/chinese/linovelib_tw.ts to confirm the commit only renames the file and changes the versionnpm run check:plugin -- plugins/chinese/linovelib_tw_probe_orig.ts (temporary copy of the pre-rename plugin, removed afterward): popularNovels PASS (50 novels), searchNovels FAIL (無法獲取搜索結果, 請檢查網絡), parseNovel PASS (620 chapters), parseChapter PASS (2238 chars)curl -sI https://tw.linovelib.com/search/test_1.html: HTTP/2 301, location: http://127.0.0.1curl https://tw.linovelib.com/top/lastupdate/1.html: HTTP 200chrome-devtools-axi open https://tw.linovelib.com/search/test_1.html: failed with BRIDGE_NOT_READY (attached CDP target gone), so no browser screenshot was producedCode reading of src/provider/plugin-registry.ts:4 and scripts/build-plugin-manifest.js:206-222 for the effect of the .broken.ts suffixConfirmed the worktree is clean after removing the temporary probe file✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.