Skip to content

feat(web): add landing page, move doc graph to /graph.html - #1936

Merged
rh-hemartin merged 1 commit into
mainfrom
feat/landing-page
Jun 8, 2026
Merged

feat(web): add landing page, move doc graph to /graph.html#1936
rh-hemartin merged 1 commit into
mainfrom
feat/landing-page

Conversation

@rh-hemartin

Copy link
Copy Markdown
Member

Summary

  • Replaces the document graph at / with a light-themed landing page consistent with the docs SPA visual style
  • Moves the interactive document graph from / to /graph.html
  • Landing page links to /docs/ and /graph.html; no admin link (dev paused)
  • Docs topbar brand "Fullsend" now links back to /
  • Graph page has a "← Fullsend" back-link in the controls panel
  • vite.config.ts: enables publicDir so npm run dev serves both files correctly; adds //index.html rewrite in spaFallbackPlugin
  • CI and local preview docs updated to bundle/copy graph.html alongside index.html
  • ADR 0019, architecture.md, site-deployment.md updated to reflect new file layout

Closes #549

Test plan

  • npm run dev/ shows landing page, /graph.html shows document graph, /docs/ loads docs SPA
  • Clicking "← Fullsend" in graph returns to landing page
  • Clicking "Fullsend" in docs topbar returns to landing page
  • npm run build succeeds; web/dist/index.html and web/dist/graph.html both present
  • CI Build Site workflow bundles both files into _bundle/public/

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Site preview

Preview: https://f516eedc-site.fullsend-ai.workers.dev

Commit: 648ea4770a6a41c9143ad06745f6014279c5bb0a

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 5, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [protected-path] .github/workflows/site-build.yml — This PR modifies a protected path (.github/). The change is well-justified (adding graph.html to the CI bundle step) and links to issue Product landing page: entry to documentation app and admin app #549, but human approval is always required for protected-path changes regardless of context.

  • [stale-doc] web/README.md:3 — Still describes public/ as containing "document graph as index.html". After this PR, index.html is the landing page and the document graph is graph.html. This file is not updated in the PR.
    Remediation: Update web/README.md to reflect the new layout: landing page as index.html and document graph as graph.html.

  • [stale-reference] Makefile:83 — The mindmap make target opens web/public/index.html, which after this PR is the landing page, not the document graph. The help text (line 20) says "Open the interactive document graph in a browser" but the target will open the landing page instead.
    Remediation: Change the mindmap target to open web/public/graph.html instead of web/public/index.html.

Low

  • [naming-convention] web/public/index.html / web/public/graph.html — The landing page card labels the link "Document Map" (<h2>Document Map</h2>) but graph.html's title says "Fullsend — Document Graph". Users clicking "Document Map" arrive at a page titled "Document Graph". Pick one term and use it consistently.

  • [stale-reference] docs/superpowers/plans/2026-04-09-site-cloudflare-pages.md:5,183 — References to "the mindmap is the current index.html source only" and "Step 2: Push a commit on main that touches web/public/index.html (document graph)" are outdated. The document graph is now at graph.html.

  • [stale-reference] docs/superpowers/specs/2026-04-09-site-cloudflare-pages-design.md:10 — States "the primary surface is the interactive document graph in web/public/index.html" which is now stale.

  • [stale-reference] docs/superpowers/specs/2026-05-04-docs-browser-design.md:8 — Describes "a static root page (web/public/index.html)" as the document graph context. After this PR, index.html is a landing page.

  • [stale-reference] docs/superpowers/plans/2026-05-04-docs-browser-spa.md:629 — States "publicDir: false avoids Vite serving a non-existent web/public" and "the site's static root web/public/index.html is still copied by CI separately (unchanged)". Both claims become incorrect: publicDir is now conditionally enabled for dev mode, and graph.html is also copied.

  • [pre-existing] web/public/graph.html:7 — Four CDN scripts loaded without Subresource Integrity (SRI) hashes. Pre-existing from the old index.html, not introduced by this PR, but the file move is an opportunity to add integrity attributes.

  • [pre-existing] web/public/graph.html:188 — PAT creation link requests repo scope (full read/write), but the graph only needs read-only access. Pre-existing; consider narrowing to a fine-grained PAT with read-only Contents permission.

Info

Previous run

Review

Findings

Medium

  • [protected-path] .github/workflows/site-build.yml — This PR modifies a protected path (.github/). The change is well-justified (adding graph.html to the CI bundle step) and links to issue Product landing page: entry to documentation app and admin app #549, but human approval is always required for protected-path changes regardless of context.

  • [stale-reference] web/README.md:3 — Still describes public/ as containing "document graph as index.html". After this PR, index.html is the landing page and the document graph is graph.html. This file is not updated in the PR.
    Remediation: Update web/README.md to reflect the new layout: landing page as index.html and document graph as graph.html.

Low

  • [naming-convention] web/public/index.html / web/public/graph.html — The landing page card labels the link "Document Map" (<h2>Document Map</h2>) but graph.html's title says "Fullsend — Document Graph". Users clicking "Document Map" arrive at a page titled "Document Graph". Pick one term and use it consistently.

  • [stale-reference] docs/superpowers/plans/2026-04-09-site-cloudflare-pages.md:5,183 — References to "the mindmap is the current index.html source only" and "Step 2: Push a commit on main that touches web/public/index.html (document graph)" are outdated. The document graph is now at graph.html.

  • [stale-reference] docs/superpowers/specs/2026-04-09-site-cloudflare-pages-design.md:10 — States "the primary surface is the interactive document graph in web/public/index.html" which is now stale.

  • [pre-existing] web/public/graph.html:7 — Four CDN scripts loaded without Subresource Integrity (SRI) hashes. Pre-existing from the old index.html, not introduced by this PR, but the file move is an opportunity to add integrity attributes.

  • [pre-existing] web/public/graph.html:303 — PAT creation link requests repo scope (full read/write), but the graph only needs read-only access. Pre-existing; consider narrowing to a fine-grained PAT with read-only Contents permission.

Info

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Jun 5, 2026

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multi-Agent Review — 7 agents (2x claude-coder, 2x claude-researcher, 2x gemini, 1x cursor)

Findings: 2 HIGH, 5 MEDIUM (posted inline) · 5 LOW, 4 INFO (omitted from inline)
False positives removed: 5

Clean, well-executed PR. The two HIGH findings (missing SRI hashes, localStorage PAT scope) are pre-existing patterns carried from the old index.html — not regressions. The most actionable new issue is the docs-brand CSS missing text-decoration: none. The publicDir change warrants a conditional or comment.

See inline comments for details.

Comment thread web/public/graph.html
Comment thread web/public/graph.html
Comment thread vite.config.ts Outdated
Comment thread web/docs/src/App.svelte
Comment thread web/public/graph.html
Comment thread web/public/graph.html
Comment thread web/public/index.html
@rh-hemartin

Copy link
Copy Markdown
Member Author

I won't fix anything to do with the graph, I'm just moving it.

Replaces the document graph at / with a light-themed landing page that
routes users to the docs SPA (/docs/) and the graph (/graph.html).

- web/public/index.html: new landing page matching docs visual style
- web/public/graph.html: doc graph moved from index.html
- vite.config.ts: enable publicDir so dev server serves both files at
  root; add / → /index.html rewrite in spaFallbackPlugin
- web/docs/src/App.svelte: brand link navigates back to /
- .github/workflows/site-build.yml: bundle graph.html alongside index.html
- docs/: update site-deployment.md, architecture.md, ADR 0019 to
  reflect new file layout

Closes #549

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Hector Martinez <hemartin@redhat.com>
@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment and removed requires-manual-review Review requires human judgment labels Jun 8, 2026
@rh-hemartin rh-hemartin self-assigned this Jun 8, 2026
@rh-hemartin
rh-hemartin requested a review from waynesun09 June 8, 2026 07:40

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean PR — well-scoped file move, landing page is visually consistent with the docs SPA, CI and documentation updates are thorough.

No blocking issues found.

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One low-priority nit for a follow-up — see inline comment on graph.html.

Comment thread web/public/graph.html
@rh-hemartin
rh-hemartin enabled auto-merge June 8, 2026 12:52
@rh-hemartin
rh-hemartin added this pull request to the merge queue Jun 8, 2026
Merged via the queue into main with commit 633cf0e Jun 8, 2026
17 of 18 checks passed
@rh-hemartin
rh-hemartin deleted the feat/landing-page branch June 8, 2026 12:58
@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #1936 — feat(web): add landing page, move doc graph

Workflow: Human-authored PR by rh-hemartin. One review cycle, 3 actionable fixes applied, merged after approval.

What went well:

  • Review agent correctly caught 3 genuinely actionable new issues (conditional publicDir, missing text-decoration: none, missing focus-visible styles) — all fixed by the author.
  • Pre-existing issues were correctly labeled as such in the review.
  • Single review→fix→approve cycle — efficient turnaround.
  • Author proactively opened follow-up issue Add SRI integrity and crossorigin attributes to CDN scripts on setup page #2018 for SRI hashes.

Main friction point:

  • Review agent flagged 2 HIGH-severity findings on code that was moved, not introduced. The graph.html file is ~1600 lines of code that was simply relocated from index.html — the review treated the entire file as new code and surfaced pre-existing security issues (SRI hashes, PAT scope). The author had to explicitly push back: "I won't fix anything to do with the graph, I'm just moving it."

Proposal assessment:

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Product landing page: entry to documentation app and admin app

2 participants