Skip to content

feat(www): jobs, license, network and update step-by-step guides with videos, part 4 of 4 - #2432

Merged
MODSetter merged 6 commits into
devfrom
feat/tutorial-guides-jobs
Nov 10, 2026
Merged

MODSetter merged 6 commits into
devfrom
feat/tutorial-guides-jobs

Conversation

@MODSetter

@MODSetter MODSetter commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

What

Part 4 of the tutorials in plans/community-local/tutorials.md: five guides at /docs/v2/guides, each a short silent video above numbered steps with a screenshot of SurfSense for every step.

  • Start a trial and add your license: Settings › License with no license, the trial link, Add license with the emailed surfsense.lic, "Allow downloading your jobs?", and the trial active with both jobs downloaded.
  • Fill in a security questionnaire from your policies: the NCSC's supplier questions in a workbook, answered from the IRS sample security plan by the questionnaire job, then the filled-in copy and its exceptions sheet in Studio.
  • Redline a contract against your playbook: a real NDA from an SEC filing (ContractNLI, CC BY 4.0) reviewed against the Bonterms Mutual NDA (CC BY 4.0) standing in for the firm's playbook, then the tracked changes and their comments in Studio.
  • See and control what leaves your computer: Settings › Network, a site unticked, and the question SurfSense asks the next time something needs it.
  • Update SurfSense: the title bar's update check, then Settings › About and Check now.

The hub and the sidebar gain Jobs and Privacy and updates groups. The Jobs, License, Privacy and Updates pages link to their guides. The hub points to the existing Docker pages instead of a Docker guide: a capture would pull the image, and those pages already walk through it.

How the jobs capture works. A capture issues no license, so trial-license.mjs answers the license routes as a Business trial for you@example.com would (the older license shots do the same), and answers the jobs download as the license server would. The jobs themselves really run: the capture sets the backend's SURFSENSE_LOCAL_JOBS_UNLOCKED switch and installs both signed packs, questionnaire 0.4.3 and redline 0.1.0, through SURFSENSE_LOCAL_JOB_PACKS. The redline pack was signed for this on the maintainer's go-ahead; its job-pack.sig is in the local surfsense-jobs checkout, not committed or published. The questionnaire answers on Claude Haiku 5.5 and the redline on Claude Sonnet 5.5. The redline's window is 1440×900 (a walkthrough can now name its own), since its comments sit beside the page.

Previewing the videos before they're uploaded. node scripts/guides/preview-videos.mjs copies the captured videos into public/guide-videos-local/, which git ignores, and in next dev a guide whose video isn't uploaded plays that copy. A build never does.

The first commit, a shared setHostAllowed helper and Biome fixes for the agent walkthroughs (useAgentModel read as a React hook), is also on #2430's branch. Its stacked base meant CI never linted it.

Stacked on #2430; the base is feat/tutorial-guides-agent.

Why

Part 4 of 4 of the guides the maintainer asked for. The in-app links are #2433.

Found while capturing:

  • The contract redline writes model markup into the contract. On Claude Haiku 5.5, both of two runs on the same NDA left markup at the end of tracked insertions: ](...) and </parameter> in one, }, twice in the other. It is in the "With changes" download. Sonnet 5.5's runs were clean, so the guide runs on Sonnet, and its walkthrough refuses a take whose copy holds any markup.
  • A new trial says "Expiring soon" from day one. Settings › License shows "This license runs out in 14 days" under Expiring soon as soon as a 14-day trial is added.

Fixes # (none: asked in chat)

How to test

  • cd www && pnpm test:unit: every check passes but the video upload check.
  • cd www && pnpm build: passes, and prerenders 27 guides.
  • node scripts/guides/preview-videos.mjs, then pnpm dev, and open /docs/v2/guides: every guide's video plays.

High-level PR Summary

This PR adds the final four step-by-step guides to the SurfSense documentation: starting a Business trial and adding a license, filling in security questionnaires from policy documents, controlling network access for privacy, and updating the application. Each guide includes a silent video and numbered steps with screenshots. The guides are organized into Jobs and Privacy and updates sections in the documentation hub and sidebar. The implementation includes sophisticated test infrastructure that simulates a Business trial license by intercepting license server requests, allowing the job-related guides to demonstrate real functionality during capture without requiring an actual license.

⏱️ Estimated Review Time: 15-30 minutes

💡 Review Order Suggestion
Order File Path
1 plans/community-local/tutorials.md
2 www/content/docs/v2/guides/meta.json
3 www/content/docs/v2/guides/index.mdx
4 www/content/docs/v2/guides/business-trial.mdx
5 www/content/docs/v2/guides/security-questionnaire.mdx
6 www/content/docs/v2/guides/privacy-network.mdx
7 www/content/docs/v2/guides/updates.mdx
8 www/content/docs/v2/jobs.mdx
9 www/content/docs/v2/license.mdx
10 www/content/docs/v2/privacy.mdx
11 www/content/docs/v2/updates.mdx
12 www/scripts/guides/walkthroughs/trial-license.mjs
13 www/scripts/guides/walkthroughs/business-trial.mjs
14 www/scripts/guides/walkthroughs/security-questionnaire.mjs
15 www/scripts/guides/walkthroughs/privacy-network.mjs
16 www/scripts/guides/walkthroughs/updates.mjs
17 www/scripts/guides/walkthroughs/index.mjs
18 www/scripts/guides/capture.mjs
19 www/scripts/guides/capture/walkthrough-session.mjs
20 www/scripts/guides/walkthroughs/studio.mjs
21 www/public/guides/business-trial/01-no-license.webp
22 www/public/guides/business-trial/02-add-license.webp
23 www/public/guides/business-trial/03-allow-jobs.webp
24 www/public/guides/business-trial/04-active.webp
25 www/public/guides/business-trial/poster.webp
26 www/public/guides/security-questionnaire/01-jobs.webp
27 www/public/guides/security-questionnaire/02-run-form.webp
28 www/public/guides/security-questionnaire/03-start.webp
29 www/public/guides/security-questionnaire/04-progress.webp
30 www/public/guides/security-questionnaire/05-done.webp
31 www/public/guides/security-questionnaire/06-answers.webp
32 www/public/guides/security-questionnaire/07-exceptions.webp
33 www/public/guides/security-questionnaire/poster.webp
34 www/public/guides/privacy-network/01-network.webp
35 www/public/guides/privacy-network/02-blocked.webp
36 www/public/guides/privacy-network/03-ask.webp
37 www/public/guides/privacy-network/poster.webp
38 www/public/guides/updates/01-check.webp
39 www/public/guides/updates/02-about.webp
40 www/public/guides/updates/poster.webp

Need help? Join our Discord

Four walkthroughs: a Business trial added in Settings › License, the security
questionnaire job run on a workbook and opened in Studio, Settings › Network
with a site blocked and the question SurfSense then asks, and an update check.

A capture issues no license, so the jobs walkthroughs answer the license routes
and the jobs download themselves (trial-license.mjs), through a new intercept
hook that runs before the page loads. The job itself runs: the capture sets the
backend's SURFSENSE_LOCAL_JOBS_UNLOCKED switch and installs the signed
questionnaire pack through SURFSENSE_LOCAL_JOB_PACKS.
…ots and videos

Start a trial and add your license, Fill in a security questionnaire from your
policies, See and control what leaves your computer, and Update SurfSense. The
hub and the sidebar gain Jobs and Privacy and updates groups, and the hub points
to the Docker pages for running SurfSense on a server. The Jobs, License,
Privacy and Updates pages link to their guides.
@vercel

vercel Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
surf-sense-frontend Ignored Ignored Preview Nov 10, 2026 8:10am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Explain Change →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

The redline walkthrough adds a real NDA from an SEC filing (ContractNLI, CC BY
4.0, kept as a Word file) and the Bonterms Mutual NDA (CC BY 4.0, fetched) as
the playbook, runs the job, and reads the marked-up copy beside its comments.
It runs on Claude Sonnet 5.5 and refuses a take whose copy holds markup: on
Haiku 5.5 both of two runs wrote `](...)`, `</parameter>` or `},` into their
changes.

A walkthrough can now name its own window size (the redline's comments need
Studio at its widest, 1440 by 900) and poster quality. The trial's jobs
download answers for every pack the capture installs, now both; the
questionnaire take clears every job's runs, so Recent runs starts empty; the
model switch waits for the server's model list.
…aded

`node scripts/guides/preview-videos.mjs` copies the capture's videos into
public/guide-videos-local/, which git ignores. In development, a guide whose
video isn't in guide-videos.json plays that copy, and its caption leaves the
length out. A build never falls back.
…th both jobs

Redline a contract against your playbook, in the hub's Jobs group and linked
from the Jobs page. The trial and questionnaire guides are retaken with both
signed packs installed, so Jobs and Settings › License show both jobs ready, as
every Business trial will, and Recent runs starts empty.
@MODSetter
MODSetter marked this pull request as ready for review November 10, 2026 08:19
@MODSetter
MODSetter changed the base branch from feat/tutorial-guides-agent to dev November 10, 2026 08:21
@MODSetter
MODSetter merged commit 98af66a into dev Nov 10, 2026
2 checks passed
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