[codex] Make Protocol tab App Layer ready#144
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
philanton
left a comment
There was a problem hiding this comment.
Top-level structural suggestion
The 1.x Protocol tab is now App Layer-only. The nested protocol/app-layer/ directory adds a path segment that carries no information — every page already lives under the "Protocol" tab.
Move all pages from docs/nitrolite/protocol/app-layer/*.mdx up to docs/nitrolite/protocol/*.mdx. This also lets docs/nitrolite/protocol/introduction.mdx drop its slug: /protocol/app-layer/overview override and use a natural URL (or rename to protocol/overview.mdx). Removes the mixed sidebar id scheme between protocol/introduction and protocol/app-layer/*. Update sidebars-nitrolite.ts, the navbar docId in docusaurus.config.ts, and any inbound link in learn//build/ that already uses /nitrolite/protocol/app-layer/....
Cosmetic — duplicate ordering source
Each new App Layer page has sidebar_position: N in frontmatter, but the sidebar uses an explicit items: array — frontmatter positions are inert. Two sources of truth for ordering. Drop sidebar_position from the frontmatter, or switch the sidebar to autogenerated and rely on frontmatter alone. Pick one.
|
@philanton fixed the top-level notes. moved the pages up, removed the extra url override and ordering fields, updated the links, and checked the pages locally. |
philanton
left a comment
There was a problem hiding this comment.
All review comments addressed in de19e21. RLP → Solidity ABI fix landed, .mdx suffixes dropped on versioned 0.5.x links, Clearnet category position reverted to 4, Event Messages stub collapsed to admonition, and the structural move flattened protocol/app-layer/* up to protocol/*. LGTM.
## Summary Makes the current Nitrolite `1.x` Protocol tab App Layer-only and source-bound after the `nitrolite` / `clearnet` split from base branch commit `f7b0b80` (`feat: nitrolite-clearnet separation`). This PR adds a language-agnostic Nitrolite App Layer protocol section derived only from `/Users/maharshimishra/Documents/nitrolite/docs/protocol`, removes stale current Nitrolite Protocol pages from the visible `1.x` Protocol tree, and keeps old VirtualApp/NitroRPC material available under the existing `0.5.x` versioned docs. ## Current Protocol navigation - Current `1.x` Nitrolite Protocol opens at `/nitrolite/protocol/introduction`. - The visible current Protocol sidebar contains only `App Layer` and its nine source-bound pages. - The sidebar label is `App Layer`, not `Nitrolite v1 App Layer`, because the docs version selector already says `1.x`. - Old current `Protocol Reference`, `Architecture`, and old top-level `Terminology` are not shown in the current Nitrolite Protocol sidebar. - Clearnet/YNP pages from the base branch remain under `/clearnet/**` and are not shown in the current Nitrolite Protocol sidebar. - Version switching from any current Nitrolite Protocol page without a matching `0.5.x` doc id falls back to `/nitrolite/0.5.x/protocol/introduction`, preserving access to the old 0.5 Protocol tree. - Version switching from `0.5.x` Protocol pages without a matching current doc id falls back to `/nitrolite/protocol/introduction`. ## Source coverage matrix | Current page | Source file / sections | | --- | --- | | `docs/nitrolite/protocol/introduction.mdx` | `docs/protocol/overview.md`: design goals, roles, architecture layers, core concepts, protocol version scope | | `docs/nitrolite/protocol/terminology.mdx` | `docs/protocol/terminology.md`: naming conventions, entities, state, cryptographic, ledger, signing, operation, extension terms | | `docs/nitrolite/protocol/cryptography-and-signing.mdx` | `docs/protocol/cryptography.md`: algorithms, canonical encoding, digest construction, signature envelope, validation modes, session keys, replay protection | | `docs/nitrolite/protocol/state-and-ledger-model.mdx` | `docs/protocol/state-model.md`: common fields, channel state, ledger invariant, empty non-home ledger, off-chain/enforcement representations, intent mapping | | `docs/nitrolite/protocol/channel-lifecycle.mdx` | `docs/protocol/channel-protocol.md`: definition, identifier, lifecycle actions, signing categories, advancement rules, transition families, checkpoint-relevant transitions | | `docs/nitrolite/protocol/enforcement-and-settlement.mdx` | `docs/protocol/enforcement.md`: enforceability, locked funds, creation, submission, challenge, close, validation, escrow/migration enforcement, failures | | `docs/nitrolite/protocol/cross-chain-and-assets.mdx` | `docs/protocol/cross-chain-and-assets.md`: unified asset model, normalization, home/non-home ledgers, escrow, cross-chain deposit/withdrawal, migration, replay protection, current notes | | `docs/nitrolite/protocol/interaction-model.mdx` | `docs/protocol/interactions.md`: transport assumptions, envelope, message types, operations, events, correlation, errors, ordering | | `docs/nitrolite/protocol/security-and-limitations.mdx` | `docs/protocol/security-and-limitations.md`: maturity, goals, off-chain safety, enforcement guarantees, node liquidity trust, assumptions, limitations, future improvements | | `static/img/protocol/state-ledger-advancement.png` | copied unchanged from `docs/protocol/state_ledger_advancement.png` | ## Review updates - Flattened current Protocol pages from `docs/nitrolite/protocol/app-layer/*.mdx` to `docs/nitrolite/protocol/*.mdx`. - Removed the `slug: /protocol/app-layer/overview` override from the current overview. - Updated Nitrolite/Clearnet inbound links and footer links to `/nitrolite/protocol/introduction` or the flattened page routes. - Removed redundant `sidebar_position` frontmatter from explicit-sidebar current Protocol pages. - Fixed canonical encoding wording from RLP to Solidity ABI encoding. - Demoted reserved event messages from a full section to a note under Message Types. - Removed the reviewed `.mdx` suffixes from versioned Markdown links. - Adjusted Clearnet decentralized-layer category position from `5` to `4`. - Added `AGENTS.md` so future Docusaurus work runs typecheck/build, serves locally, fetches changed routes, and keeps internal doc links extensionless. ## Adversarial source-only checks - Searched current Nitrolite Protocol pages for `@erc7824`, `@yellow-org/sdk`, `TypeScript`, `Go`, `Clearnet`, `Duck`, `v0.5`, old VirtualApp/NitroRPC markers, and redundant visible `v1` wording: no disallowed current Protocol hits. - Searched `migration` separately: hits are source-backed by `channel-protocol.md`, `cross-chain-and-assets.md`, and `terminology.md`. - Verified the source image is served from `/img/protocol/state-ledger-advancement.png`. - Verified built current sidebar shows only `App Layer` and the nine planned pages. - Verified built version dropdown maps current Protocol pages to `/nitrolite/0.5.x/protocol/introduction` when there is no exact `0.5.x` equivalent, and maps `0.5.x` Protocol introduction back to `/nitrolite/protocol/introduction`. - Verified `/clearnet/learn/decentralized-layer/overview` remains available after conflict resolution. ## Validation - `npm run typecheck` passed. - `npm run build` passed. - `npm run serve -- --host 127.0.0.1 --port 3014` passed. - `curl -fsS -L` returned `200` for all nine current Protocol pages: - `/nitrolite/protocol/introduction` - `/nitrolite/protocol/terminology` - `/nitrolite/protocol/cryptography-and-signing` - `/nitrolite/protocol/state-and-ledger-model` - `/nitrolite/protocol/channel-lifecycle` - `/nitrolite/protocol/enforcement-and-settlement` - `/nitrolite/protocol/cross-chain-and-assets` - `/nitrolite/protocol/interaction-model` - `/nitrolite/protocol/security-and-limitations` - `curl -fsS -L` also returned `200` for `/nitrolite/0.5.x/protocol/introduction`, `/clearnet/learn/decentralized-layer/overview`, and `/img/protocol/state-ledger-advancement.png`. Build notes: Docusaurus still reports pre-existing/base broken links in Clearnet generated contract API pages and versioned `0.5.x` pages, plus pre-existing broken anchors in versioned `0.5.x` pages. No build failure remains, and the merge conflicts are resolved.
Summary
Makes the current Nitrolite
1.xProtocol tab App Layer-only and source-bound after thenitrolite/clearnetsplit from base branch commitf7b0b80(feat: nitrolite-clearnet separation).This PR adds a language-agnostic Nitrolite App Layer protocol section derived only from
/Users/maharshimishra/Documents/nitrolite/docs/protocol, removes stale current Nitrolite Protocol pages from the visible1.xProtocol tree, and keeps old VirtualApp/NitroRPC material available under the existing0.5.xversioned docs.Current Protocol navigation
1.xNitrolite Protocol opens at/nitrolite/protocol/introduction.App Layerand its nine source-bound pages.App Layer, notNitrolite v1 App Layer, because the docs version selector already says1.x.Protocol Reference,Architecture, and old top-levelTerminologyare not shown in the current Nitrolite Protocol sidebar./clearnet/**and are not shown in the current Nitrolite Protocol sidebar.0.5.xdoc id falls back to/nitrolite/0.5.x/protocol/introduction, preserving access to the old 0.5 Protocol tree.0.5.xProtocol pages without a matching current doc id falls back to/nitrolite/protocol/introduction.Source coverage matrix
docs/nitrolite/protocol/introduction.mdxdocs/protocol/overview.md: design goals, roles, architecture layers, core concepts, protocol version scopedocs/nitrolite/protocol/terminology.mdxdocs/protocol/terminology.md: naming conventions, entities, state, cryptographic, ledger, signing, operation, extension termsdocs/nitrolite/protocol/cryptography-and-signing.mdxdocs/protocol/cryptography.md: algorithms, canonical encoding, digest construction, signature envelope, validation modes, session keys, replay protectiondocs/nitrolite/protocol/state-and-ledger-model.mdxdocs/protocol/state-model.md: common fields, channel state, ledger invariant, empty non-home ledger, off-chain/enforcement representations, intent mappingdocs/nitrolite/protocol/channel-lifecycle.mdxdocs/protocol/channel-protocol.md: definition, identifier, lifecycle actions, signing categories, advancement rules, transition families, checkpoint-relevant transitionsdocs/nitrolite/protocol/enforcement-and-settlement.mdxdocs/protocol/enforcement.md: enforceability, locked funds, creation, submission, challenge, close, validation, escrow/migration enforcement, failuresdocs/nitrolite/protocol/cross-chain-and-assets.mdxdocs/protocol/cross-chain-and-assets.md: unified asset model, normalization, home/non-home ledgers, escrow, cross-chain deposit/withdrawal, migration, replay protection, current notesdocs/nitrolite/protocol/interaction-model.mdxdocs/protocol/interactions.md: transport assumptions, envelope, message types, operations, events, correlation, errors, orderingdocs/nitrolite/protocol/security-and-limitations.mdxdocs/protocol/security-and-limitations.md: maturity, goals, off-chain safety, enforcement guarantees, node liquidity trust, assumptions, limitations, future improvementsstatic/img/protocol/state-ledger-advancement.pngdocs/protocol/state_ledger_advancement.pngReview updates
docs/nitrolite/protocol/app-layer/*.mdxtodocs/nitrolite/protocol/*.mdx.slug: /protocol/app-layer/overviewoverride from the current overview./nitrolite/protocol/introductionor the flattened page routes.sidebar_positionfrontmatter from explicit-sidebar current Protocol pages..mdxsuffixes from versioned Markdown links.5to4.AGENTS.mdso future Docusaurus work runs typecheck/build, serves locally, fetches changed routes, and keeps internal doc links extensionless.Adversarial source-only checks
@erc7824,@yellow-org/sdk,TypeScript,Go,Clearnet,Duck,v0.5, old VirtualApp/NitroRPC markers, and redundant visiblev1wording: no disallowed current Protocol hits.migrationseparately: hits are source-backed bychannel-protocol.md,cross-chain-and-assets.md, andterminology.md./img/protocol/state-ledger-advancement.png.App Layerand the nine planned pages./nitrolite/0.5.x/protocol/introductionwhen there is no exact0.5.xequivalent, and maps0.5.xProtocol introduction back to/nitrolite/protocol/introduction./clearnet/learn/decentralized-layer/overviewremains available after conflict resolution.Validation
npm run typecheckpassed.npm run buildpassed.npm run serve -- --host 127.0.0.1 --port 3014passed.curl -fsS -Lreturned200for all nine current Protocol pages:/nitrolite/protocol/introduction/nitrolite/protocol/terminology/nitrolite/protocol/cryptography-and-signing/nitrolite/protocol/state-and-ledger-model/nitrolite/protocol/channel-lifecycle/nitrolite/protocol/enforcement-and-settlement/nitrolite/protocol/cross-chain-and-assets/nitrolite/protocol/interaction-model/nitrolite/protocol/security-and-limitationscurl -fsS -Lalso returned200for/nitrolite/0.5.x/protocol/introduction,/clearnet/learn/decentralized-layer/overview, and/img/protocol/state-ledger-advancement.png.Build notes: Docusaurus still reports pre-existing/base broken links in Clearnet generated contract API pages and versioned
0.5.xpages, plus pre-existing broken anchors in versioned0.5.xpages. No build failure remains, and the merge conflicts are resolved.