Repository navigation
chore(docs): restructure and verify docs against code [skip-line-limit] - #2010
hmzakhalid wants to merge 4 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedToo many files! This PR contains 140 files, which is 40 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Repository: theinterfold/interfold/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (140)
You can disable this status message by setting the 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. Comment |
…ine-limit] Rewrite every docs page against the code at release 0.18.0. Each command, flag, config key, contract call, event, and number now has a source in the repository. Wrong or unverifiable claims are removed. Structure: - Group pages into Learn, Build, Run a Ciphernode, and Reference. - Add permanent redirects for every moved URL (MOVED_PAGES in docs/next.config.js). CRISP, internals, governance, tokenomics, FAQ, constitution, and whitepaper keep their URLs. - Add Reference pages: CLI, node configuration, contracts and addresses, and a glossary. - Keep constitution.mdx byte-identical. Its keccak256 comes from the file. Visuals: - Add a component kit in docs/components/ui: hero, decrypt text effect, committee ring, lifecycle stepper, flow and layer diagrams, stats, terminal, and link cards. All motion stops under reduced motion. - Use the dashboard palette and serif headings. Fixes: - Make #anchor links scroll. The old CSS hid the element that has the heading id. - Keep tab panels mounted, and select the tab that a #link targets. - Stop .prettierignore from skipping docs/pages/build. - Generate sitemap.xml at build. The docs MCP server reads it. - Update old docs paths in READMEs, scripts, the MCP fallback list, llms.txt, and the address-check registry. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
63afc6f to
1b80134
Compare
The contracts page said that mainnet uses DeployableMockCiphertextVerifier. On-chain, the owner replaced that mock at block 25813839 and again at block 26004622. The live ciphertext verifier is Risc0BfvCiphertextVerifier. No mainnet E3 used the mock. Add the live verifier table and its history. The FOLD FAQs described the 19 Aug TGE as upcoming. tgeTimestamp() on the FOLD contract returns 1787148023 (2026-08-19 14:00:23 UTC). State that general transferability is active. Allow the live verifier addresses, and the image-ID prefix that the address pattern matches, in check-addresses.ts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
On-chain checks on 25 September 2026 found two facts that affect operators: - The Sepolia Interfold contract predates the node release gate. nodeReleaseRegistry() reverts, so a 0.18.0 ciphernode stops at startup with "failed to read Interfold release dependencies". Add a warning to the Sepolia pages and a troubleshooting row. - The mainnet SlashingManager has no slash policy. getSlashPolicy() returns a disabled policy for each proof type, so an accused member is excluded from the E3 and no penalty applies. Add a dated note. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The circuit SOURCE_HASH covers every file in each circuits/bin package, README.md included. The docs-path updates in those READMEs changed the hash, so CI found no published circuit artifacts for the new hash. Restore the READMEs to main. Their docs links still use the old paths, which redirect. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Summary
This PR rewrites the docs site (
docs/) against the code at release 0.18.0 and gives it a new structure and visual design. Every command, flag, config key, contract function, event, and number on a page now has a source in this repository. Claims that the code contradicts are corrected. Technical claims that cannot be verified are removed.What changes
Structure
MOVED_PAGESindocs/next.config.js. CRISP, internals, governance, tokenomics, the FAQ, the constitution, and the whitepaper keep their URLs.deployments/manifest.jsonconstitution.mdxis byte-identical tomain. Its canonical URI is this file, and its keccak256 is computed from it at adoption. The whitepaper text is also unchanged.Visual design
docs/components/ui, imported as@/components/ui:primaryHueintheme.config.jsx).Fixes to the site
#anchorlinks did not scroll before this change.globals.csssetdisplay: noneon.subheading-anchor, which is the element that carries the heading id.#linkto a heading in a hidden tab now selects that tab (useOpenTabForHashinpages/_app.tsx)..prettierignorecontainedbuild, so Prettier skipped every page underdocs/pages/build/. That folder is now included.sitemap.xmlis generated at build time. The docs MCP server already reads it.Outside
docs/circuits/README.md,circuits/benchmarks/README.md,circuits/lib/src/README.md,crates/support/README.md,scripts/README.md,scripts/generate-provenance-manifest.ts,agent/invariants/04_BUILD_CONFIG.md, a comment inreleases.yml, andREADME.md.circuits/bin/**are unchanged. The circuitSOURCE_HASHincludes every file in those packages, so an edit there needs new circuit artifacts. Their docs links use old paths, which redirect (see Harness docs, READMEs, and code comments disagree with the code #2023).scripts/check-addresses.tsnow lists the moved consumer pages, plusoperate/rpc-endpoints.mdx, which quoted an address without a registration, andreference/contracts.mdx.docs/public/llms.txtuse the new paths.Code issues found during verification
Each item below was checked again on 25 September 2026 against the code, the 0.18.0 binary or image, and mainnet or Sepolia state (Blockscout event history and
eth_call). The PR does not fix these items. Each has an issue (#2011 to #2023).Confirmed
nodeReleaseRegistry()reverts on the SepoliaInterfoldcontract, so a node stops at startup withfailed to read Interfold release dependencies.SlashingManagerhas emitted noSlashPolicyUpdatedevent, andgetSlashPolicy()returns a disabled policy for each proof type. An accused member is excluded from the E3, and no penalty applies.CiphertextOutputPublished,CommitteePublished, andCommitteeRequestedhave no emitter, and only a test mock emitsInputPublished. On mainnet, E3 test: crisp circuit tests #978 published its key withCommitteeProofPublishedandCommitteePublicKeyChunkPublished. The template'sEncryptSubmit.tsxwaits forCiphertextOutputPublished, so its progress step never completes.ciphernode:0.18.0image, a bind-mounted/run/secrets/secrets.jsonmakes the entrypoint exit withDevice or resource busybeforeinterfold start. A second start exits with code 1 atpassword set(Keyfile already exists). Indeploy/docker-compose.yml, the data volume at.local/share/interfoldis unused, and node state stays in the container layer.ciphernode setup. (ciphernode setupwrites a config that cannot start, and it requires a terminal #2015) It writes nodata_availabilityblock. On a mainnet fork, a node without that block exits withchain 'mainnet' has Interfold enabled but no data_availability reader. The command also prompts for the config directory with no flag, so it needs a terminal.--network localwrites the Sepolia addresses built into the binary.registerE3ProgramandsetCiphertextVerifierrevert withOwnableUnauthorizedAccountfor any other caller. The template'sdeploy/default.tscalls both.config checkreports mainnet as a mock deployment #2017) The live mainnet verifiers (Risc0BfvCiphertextVerifier0x80D2…c549with image ID0x9d3e…10fc, and the two BFV routers) are not in any deployment record. The manifest marks mainnetmocks: truebecause the record listsMockE3Program, which is registered but not enabled. As a result,interfold config checktells mainnet operators that proofs are not verified.otelconfig key is ignored, and several help texts are wrong #2018) Theotelkey andE3_OTELhave no effect (only--otelworks). Help text is wrong forpassword set("or overwrite", but it refuses),nodes restart("Stop"), andnoir status/noir setup(empty). TheKeyfile already existserror suggests the same command that failed.program.dev: false,ctl/containerdoes not mount the project'sprogram/, and the support image contains the CRISP program at/app/program. The default node andcn5both usectrl_port50505.RewardCreditedby the operator address, but the event's account isbondOwnerOf(operator).installselects the macOS arm64 binary and says that it "runs via Rosetta 2". Rosetta runs x86_64 code on Apple silicon, not the reverse.getE3Quote,getE3Stage, andgetFailureReasonreturn thereadContractpromise insidetrywithoutawait, so a revert is not wrapped asSDKError.InterfoldSDK.waitForTransactionis typedPromise<unknown>.CiphertextOutputReferencePublishedDatais exported only from/events.any(...)incommitment_consistency/workflow.rs). The aggregation circuit still checks every pair.agent/flow-trace/00_INDEX.mdrows 8 (CommitteePublished) and 25 (fee slippage), the accusation quorum lines (threshold_m, agree/disagree), flow-trace 02 (ERC20Permit,PermitDisabled: tFOLD has neither on mainnet), theE3_BAD_*policy names (slash_reason()is unused), thecircuits/README.mdtree (fold/,wrapper/), the sortition README (the CRP uses a fixed default seed), and theBfvPkVerifier.solpublic-input comment.Corrected or withdrawn after the on-chain check
DeployableMockCiphertextVerifier. That was true only from 19 to 22 Aug 2026. The owner replaced it at block 25,813,839 and again at block 26,004,622. No mainnet E3 used the mock. The docs now show the live verifiers.tgeTimestamp()returns1787148023(19 Aug 2026 14:00:23 UTC). The FAQs now say that general transferability is active.Test plan
pnpm buildindocs/passes (58 pages).#anchorin the built HTML resolves.prettier --check,eslint docs, andtsc --noEmitpass.pnpm check:addresses,check:license, andcheck:committeepass./sitemap.xmlis served,#linksselect the correct tab and scroll, wide tables scroll, and the layout works at 390 px.check:addressespass.MyProgram.solwere compiled.🤖 Generated with Claude Code