Skip to content

Retire the paper pages - #1179

Merged
yattias merged 2 commits into
mainfrom
retire/7-paper-pages
Oct 12, 2026
Merged

yattias merged 2 commits into
mainfrom
retire/7-paper-pages

Conversation

@yattias

@yattias yattias commented Oct 12, 2026

Copy link
Copy Markdown
Member

Seventh chunk of the dead-code removal plan (docs/dead-code-report.md, kept local), following #1174: paper pages are no longer part of the product.

Redirects

/paper and /paper/:path* redirect permanently to the homepage. The seven registered-report entries that map old paper URLs to /report/... stay ahead of the catch-all, so those links still land on the report. Verified on the dev server: /paper, /paper/:id, /paper/:id/:slug, a tab URL and /paper?doi= all answer 308 to /; the registered-report URL still answers 308 to its /report page.

What goes

  • app/paper/** (the slug and DOI redirect pages, the layout and the five tab pages) and everything only it reached: the paper feed card, the journal and hashtag badges only that card rendered, the paper header skeleton, the hot-score tooltip, the version-history tab and its display (versions were a paper feature), PaperService's metadata/abstract updaters and the OpenAlex creator (PaperService.get stays for the expert finder), and the paper sitemap chunk.
  • Two leftovers from main's earlier removals, swept up here: services/file.service.ts and components/ui/MainPageHeader.tsx.
  • The top bar, back-navigation list, share-title label, ESLint page glob and lint:work-pages script drop their paper entries.

How the rest of the app treats papers now

This is the frontend side of the open question in the plan; it needs no backend change.

  • buildWorkUrl no longer builds paper URLs: a paper (and any unknown content type) gets '#', which the comment mention renderers, the recently-visited rail and the activity cards already treat as "no link". The DOI argument only ever served paper URLs, so it goes.
  • FeedEntryItem returns nothing for a PAPER entry and the activity feed builds no work card for a paper event, so paper cards disappear from every feed, list and profile tab that renders feed entries.
  • Bounties and comments whose related work is a paper still render (they are the peer-review feed), with no destination for the paper itself.
  • Search handlers keep routing the "paper" entity type that recents and OpenAlex hits use: proposals and posts go to their pages, papers go home.

If the backend later stops emitting paper entries, the PAPER guards become dead and can go.

39 files changed, 1,244 lines removed, 42 added. The remaining behaviour changes are the ones listed above.

Checks

  • npm run lint: 0 errors (2 pre-existing warnings in untouched files)
  • npm run type-check: clean
  • knip run three times (after the main pass, after the six second-layer deletions, and once more): no unused files, no new unused exports or dependencies
  • Dev server on the branch: all main routes return 200, the home feed renders, every paper URL form redirects as described

Next

Chunk 8 (retire/8-notebook) is the last page retirement and the biggest; its prerequisites table in the plan lists the workspace doors that have to exist first.

🤖 Generated with Claude Code

Seventh chunk of the dead-code plan: paper pages are no longer part of the
product.

- /paper and /paper/:path* redirect permanently to the homepage. The seven
  registered-report entries that map old paper URLs to /report stay ahead of
  the catch-all, so those links still land on the report.
- app/paper goes (the slug and DOI redirect pages, the layout and the five
  tab pages), and with it the paper feed card, the journal and hashtag
  badges only it rendered, the paper header skeleton, the hot-score tooltip,
  the version-history tab and its display (versions were a paper feature),
  PaperService's metadata/abstract updaters and the OpenAlex creator, and
  the paper sitemap chunk. Two leftovers from main's earlier removals go in
  the same sweep: services/file.service.ts and components/ui/MainPageHeader.
- buildWorkUrl no longer builds paper URLs: a paper (and any unknown content
  type) gets '#', which the mention renderers, the recently-visited rail and
  the activity cards already treat as "no link". The DOI argument only ever
  served paper URLs, so it goes.
- The frontend stops rendering paper entries: FeedEntryItem returns nothing
  for a PAPER entry and the activity feed builds no work card for a paper
  event. Bounties and comments on papers still show, with no destination for
  the paper itself.
- The search handlers keep routing recent and OpenAlex "paper" suggestions:
  proposals and posts go to their pages, papers go home.
- The top bar, back-navigation list, share-title label, ESLint page glob and
  lint:work-pages script drop their paper entries.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@yattias
yattias requested a review from a team as a code owner October 12, 2026 00:34
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@vercel

vercel Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
web Ready Ready Preview Oct 12, 2026 12:50am UTC

Request Review

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
24.2% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@yattias
yattias merged commit bc88457 into main Oct 12, 2026
2 of 5 checks passed
@yattias
yattias deleted the retire/7-paper-pages branch October 12, 2026 00:50

This branch was successfully deployed

1 active deployment
Preview — f8a37296 Deployed Oct 12, 2026 by vercel[bot]
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