fix(site): unblock the production build - #36
Merged
Conversation
The site could not build from a clean checkout. Two independent breaks: - `pnpm-workspace.yaml` shipped scaffolder placeholder text (`esbuild: set this to true or false`) where `allowBuilds` expects booleans. pnpm 11 treats the unresolved entries as ignored build scripts and fails install with ERR_PNPM_IGNORED_BUILDS, so `pnpm build` never reached next. Set all three to true and mirror them under `onlyBuiltDependencies` for pnpm 10 images. - `src/mdx-components.tsx` imports `mdx/types`, but `@types/mdx` was never declared. pnpm's strict node_modules layout does not hoist it from fumadocs, so type checking failed to resolve the module. Verified: clean install runs the esbuild/sharp/unrs-resolver scripts, `next build` prerenders all 16 routes, and `node --test` passes 5/5.
There was a problem hiding this comment.
Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
The marketing page is authored almost entirely in px and the docs in rem, so a root font-size bump would only scale the docs. Setting `zoom: 1.07` on the root scales both layouts uniformly — like a browser zoom — while keeping sticky headers and document flow intact (unlike transform: scale). Verified in headless Chrome: both the marketing page and the fumadocs docs layout render proportionally with no horizontal overflow and no double scrollbar (docScrollW == clientW == 1440 on both routes).
macanderson
marked this pull request as ready for review
July 22, 2026 00:33
There was a problem hiding this comment.
Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
macanderson
added a commit
that referenced
this pull request
Jul 22, 2026
Resolves the 12 conflict hunks across 7 files. Every conflict was additive — main's consent/egress-scope track (#35, #36, #37) versus this branch's normative sweep — so the resolution is a union in each case, with main's newer normative wording kept where both sides described the same rule. Resolutions: - contextgraph-types/src/lib.rs — union of both module sets and re-exports. - contextgraph-conformance/src/lib.rs — keeps this branch's check_budget (§B1/§B3/§B4, strictly stronger than main's inline respects_budget) and adds main's check_consent_scopes; the runner already calls both. - contextgraph-example-docs — union of imports and of the misbehave modes, so scope-lie joins the branch's eleven. - schema — main's egress_scopes + EgressScope $def, rewritten in the expanded JSON style this branch normalized the file to. - host.rs / host consent.rs / reference-messages.json — main's newer text. Also repairs breakage that predates this merge: the previous merge commit (10808ed) silently dropped ContextFrame::identity() while keeping the content_digest field it feeds, so PR 33's head did not compile against its own tree. identity() is restored and the reference provider now declares a content_digest. rustfmt applied to main's frame_representation_witness.rs, which arrived unformatted. Verified: cargo check/clippy -D warnings clean, fmt clean, schema examples validate, conformance green 6/6 and red 12/12 misbehave modes caught, cargo test 136 passing. Known-red, pre-existing on main and not addressed here: frame_representation_witness::reference_frame_without_inline_content_deserializes fails identically on origin/main — ContextFrame.content is a required String, so a content-less reference frame cannot deserialize. Making it optional is a normative decision that interacts with §B3 canonical token accounting, so it is left for the maintainer.
macanderson
added a commit
that referenced
this pull request
Jul 22, 2026
The Vercel project is now linked to this repo for git-driven deploys, so `vercel link` writes a `.vercel/` directory into every checkout. Ignore it rather than committing project/org IDs. `site/` also carried both `package-lock.json` and `pnpm-lock.yaml`. Vercel resolves the ambiguity in pnpm's favour, but a local `npm install` does not: npm's flat node_modules hoists `@types/mdx` up from fumadocs, which is exactly what masked the missing `@types/mdx` declaration fixed in #36 — the site built locally and failed type checking on Vercel. Keep pnpm as the single source of truth so a clean local install matches the build image.
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.
Deploying the microsite to
cgp.oxagen.shsurfaced two independent breaks that stoppedsite/from building on a clean checkout. Both are fixed here.pnpm-workspace.yamlheld scaffolder placeholdersallowBuildsis a package → boolean map. The placeholder strings are neithertruenorfalse, so pnpm 11 counted all three as ignored build scripts and failed install withERR_PNPM_IGNORED_BUILDS—pnpm buildexited before ever invoking next. Set totrue, and mirrored underonlyBuiltDependenciesso CI images pinned to pnpm 10 behave identically.This is not cosmetic:
esbuildandunrs-resolverfetch platform binaries in their install scripts, andsharpbuilds its native image pipeline.@types/mdxwas undeclaredsrc/mdx-components.tsximportsmdx/types, but@types/mdxwas never a dependency. pnpm's strictnode_moduleslayout does not hoist it out of fumadocs, so type checking failed withCannot find module 'mdx/types'.Verification
pnpm install --frozen-lockfileruns theunrs-resolverandsharpinstall scripts, noERR_PNPM_IGNORED_BUILDSnext buildcompiles and prerenders all 16 routes (/,/icon.svg,_not-found, 12 docs pages)node --test tests/*.test.mjs— 5 passed, 0 failedhttps://cgp.oxagen.shserves 200 with valid TLS,/docs/overview200, unknown routes 404Deployment note
The microsite now lives at https://cgp.oxagen.sh — Vercel project
oxagen/context-graph-protocol, root directorysite/. DNS auto-configured sinceoxagen.shis on Vercel nameservers. The project is not yet connected to Git, so it does not auto-deploy on merge.