Skip to content

Retire the notebook in favour of the workspace - #1190

Open
yattias wants to merge 1 commit into
mainfrom
retire/8-notebook
Open

yattias wants to merge 1 commit into
mainfrom
retire/8-notebook

Conversation

@yattias

@yattias yattias commented Oct 15, 2026

Copy link
Copy Markdown
Member

Eighth and last chunk of the dead-code removal plan (docs/dead-code-report.md, kept local), following #1180. Drafting, editing and publishing live in the workspace now, so the notebook pages, the note and organization invite pages, and everything only they reached go.

Redirects

Old URL Now
/notebook /workspace
/notebook?newGrant=… /workspace?new=rfp
/notebook?newFunding=… /workspace?new=proposal
/notebook/<org> /workspace
/notebook/<org>/<id> /workspace?note=<id>
/note/join/<key>, /org/join/<token> /workspace

All verified on the dev server (307s; Next carries the old query string along, which the workspace ignores). The three query-aware entries come before the plain /notebook one, as Next matches in order.

Doors repointed into the workspace

  • Editing a published work from its header menu (/workspace?note=<id>)
  • "Draft new" and "Continue with draft" in the apply-to-RFP modal. A proposal started from "Draft new" no longer carries the chosen RFP in the URL; it is picked in the workspace masthead, since the workspace URL has no grant parameter today.
  • The expert finder's "Open proposal" (no longer fetches the note first; the id is enough)
  • The registered-report moderation draft
  • The referral page's "Create proposal" and the landing footer link (now "Workspace")

Decisions carried out

  • Admins keep a ChangeLog door. The Publish menu shows moderators a ChangeLog item (useChangelogDrafting) that creates a DISCUSSION draft from the standard template and opens it in the workspace. The publish provider already treats changelog notes as moderator-only and labels them "ChangeLog entry"; the article type comes from the note's document type, so no query flag is needed. As before, the published post's id goes into CHANGELOG_POST_IDS by hand. The draft is not listed in the sidebar's Drafts (that list is RFPs and proposals), so it is written and published in one sitting or reopened by URL.
  • Organization switching and invites are retired. Notes still belong to an organization; every user gets a default one, and the workspace keeps creating drafts there. OrganizationService keeps only the listing the context reads; the invite, member and cover-image methods, the settings modal and useOrganization go.
  • Dropped with the notebook: Word/Markdown document upload (its convert route, @tiptap-pro/extension-import, jsonwebtoken and the Tiptap env variables), the legacy-note banner, the notebook chat panel pieces, the grant and proposal templates (the workspace starts drafts empty), and the publishing form the notebook's Details tab rendered. The workspace's publish dialog only reads the help text, option lists and hooks from those section files, which stay.
  • Smoke tests that drive the notebook (smoke/rfp.spec.ts, smoke/proposal.spec.ts, smoke/helpers/notebook.ts) are left as they are for now and will fail against this branch until rewritten against the workspace.
  • KaTeX's stylesheet moves from the notebook layout to the root layout so math keeps rendering wherever a document shows. @fontsource/inter is removed: no stylesheet referenced it.

94 files changed, 8,456 lines removed, 158 added.

Checks

  • npm run lint: 0 errors (2 pre-existing warnings in untouched files)
  • npm run type-check: clean
  • knip run after each layer (four passes): no unused files, no new unused exports or dependencies
  • Dev server on the branch: all main routes return 200, every notebook and invite URL form redirects as above, the homepage renders

Not exercised here: the moderator ChangeLog door and the repointed signed-in doors (edit, apply-to-RFP, expert finder, moderation) need a signed-in session; worth a click-through on the Vercel preview.

🤖 Generated with Claude Code

Eighth and last chunk of the dead-code plan. Drafting, editing and
publishing live in the workspace now, so the notebook pages, the note and
organization invite pages and everything only they reached go.

Redirects: /notebook opens the workspace; /notebook?newGrant and
?newFunding open its new-RFP and new-proposal screens; /notebook/<org>/<id>
opens that document (/workspace?note=<id>); the invite URLs land on the
workspace too.

Doors that pointed into the notebook now point into the workspace: editing
a published work from its header menu, "Draft new" and "Continue with
draft" in the apply-to-RFP modal, the expert finder's proposal draft, the
registered-report moderation draft, the referral page's Create proposal
button, and the landing footer's link (now "Workspace"). A proposal started
from the apply modal no longer carries the chosen RFP in the URL; it is
picked in the workspace masthead instead.

Moderators keep their ChangeLog door: the Publish menu shows them a
ChangeLog item that creates a DISCUSSION draft from the standard template
and opens it in the workspace, where the publish flow already treats
changelog notes as moderator-only. The published post's id still goes into
CHANGELOG_POST_IDS by hand, as before.

Dropped with the notebook, per the decisions on the plan: Word/Markdown
document upload (its convert route, Tiptap import extension, JWT signing and
the Tiptap env variables), organization switching and invites (notes keep
belonging to the user's default organization; the organization service
keeps only the listing the context reads), the legacy-note banner, and the
notebook-only chat panel pieces. The publishing form the notebook's Details
tab rendered goes too; the workspace's publish dialog only reads the help
text, option lists and hooks from those files, which stay.

KaTeX's stylesheet moves from the notebook layout to the root layout so math
keeps rendering wherever a document shows. The Inter font package served no
stylesheet that referenced it and is removed.

The smoke specs that drive the notebook are left as they are for now.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@yattias
yattias requested a review from a team as a code owner October 15, 2026 00:50
@vercel

vercel Bot commented Oct 15, 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 15, 2026 12:51am UTC

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-15T00:50:08.454031Z 19a6089 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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.

@sonarqubecloud

Copy link
Copy Markdown

This branch was successfully deployed

1 active deployment
Preview — 19a60895 Deployed Oct 15, 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