Skip to content

Conversation

Signor1
Copy link

@Signor1 Signor1 commented Sep 10, 2025

Summary of changes

Changes introduced in this pull request:

  • Extended cargo-spellcheck configuration to include .github directory for repository-wide markdown spellchecking
  • Added explicit markdown file inclusion pattern to ensure all .md files are scanned across the repository
  • Updated forest.dic dictionary with legitimate technical terms, contributor names, and project-specific terminology
  • Fixed actual spelling errors in CHANGELOG.md: applicabile→applicable, facilate→facilitate, daeamon→daemon, advistory→advisory etc
  • Added security identifiers (RUSTSEC-*) and version codes to project dictionary

The motivation was to expand spellcheck coverage from only docs/docs directory to the entire repository, ensuring consistent spelling standards across all documentation including GitHub workflows, README files, and other markdown content.

Reference issue to close (if applicable)

Closes #[5958]

Other information and links

  • Uses existing cargo-spellcheck infrastructure rather than introducing redundant tooling
  • Maintains consistency with project's existing spellcheck workflow and Hunspell dictionary format
  • Configuration changes ensure CI will catch spelling issues in .github workflows, README files, and other repository documentation
  • All legitimate technical terms were identified through comprehensive analysis and added to forest.dic with appropriate Hunspell flags

Change checklist

  • I have performed a self-review of my own code,
  • I have made corresponding changes to the documentation. All new code adheres to the team's documentation standards,
  • I have added tests that prove my fix is effective or that my feature works (if possible),
  • I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Summary by CodeRabbit

  • Improvements

    • Faster, more reliable actor bundle loading during startup via concurrent fetching and stricter validation.
  • Documentation

    • Added Docker Compose usage details for running with a gateway.
    • Numerous typo, grammar, and formatting fixes across docs; standardized terminology (e.g., CIDs), headings, and brand names.
    • Clarified installation and deployment wording; minor readability and style updates.
  • Chores

    • Expanded spellchecking to Markdown across the repository with improved dictionary and rules.
    • Editorial updates to changelog, contribution guidelines, and issue templates (consistent American English).

@Signor1 Signor1 requested a review from a team as a code owner September 10, 2025 19:16
@Signor1 Signor1 requested review from LesnyRumcajs and akaladarshi and removed request for a team September 10, 2025 19:16
Copy link
Contributor

coderabbitai bot commented Sep 10, 2025

Walkthrough

Primarily editorial and configuration updates across docs and comments (spelling, capitalization, inline code formatting, dictionary/config tweaks). Build tooling extends spellcheck coverage. One functional change: src/daemon/bundle.rs modifies load_actor_bundles_from_server to take bundles, process them concurrently, validate headers, and return loaded root CIDs. No other code logic changes.

Changes

Cohort / File(s) Summary
Spellcheck config and dictionaries
.config/spellcheck.toml, .config/forest.dic, docs/dictionary.txt
Expanded hunspell quirks, added emoji allowance, updated tokenization; large dictionary additions/normalizations; minor dictionary capitalization/term removals.
Build tooling: spellcheck
Makefile
Added second cargo-spellcheck pass over Markdown using find/xargs with .config/spellcheck.toml; existing spellcheck retained.
Functional: actor bundle loading
src/daemon/bundle.rs
Signature change: now accepts bundles slice and returns Vec; processes qualifying bundles concurrently, downloads (primary/fallback), streams to DB, validates single root matching manifest; returns loaded root CIDs.
Docs site and content edits
CHANGELOG.md, CONTRIBUTING.md, docs/README.md, README.md, f3-sidecar/README.md, .github/ISSUE_TEMPLATE/1-bug_report.md, build/manifest.json, .cargo/config.toml, documentation/src/developer_documentation/*, docs/docs/**, scripts/**/README.md
Textual/formatting fixes, capitalization, minor heading/link text adjustments, added Docker Compose example, JSON/OpenRPC reformatting; no functional code changes.
Doc comment formatting updates in Rust code
src/blocks/tipset.rs, src/chain/..., src/chain_sync/validation.rs, src/cid_collections/*, src/cli/**, src/db/**, src/documentation.rs, src/interpreter/fvm*.rs, src/ipld/util.rs, src/lotus_json/sector_size.rs, src/rpc/**, src/shim/**, src/tool/**, src/utils/**
Comment-only changes: wrap terms like CIDs/v1/v2/enum in backticks, minor wording; no logic, types, or control-flow changes.

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant Loader as BundleLoader
    participant DB
    participant Primary as Primary URL
    participant Fallback as Fallback URL

    Caller->>Loader: load_actor_bundles_from_server(db, network, bundles)
    note over Loader: Process bundles concurrently (FuturesUnordered)

    loop for each bundle
        Loader->>DB: check if bundle root exists / network discriminant matches
        alt not present and network matches
            Loader->>Primary: GET bundle CAR
            alt primary success
                Primary-->>Loader: stream CAR
            else primary fails
                Loader->>Fallback: GET bundle CAR
                Fallback-->>Loader: stream CAR (or error)
            end
            Loader->>DB: ingest blocks into DB
            Loader->>Loader: validate header roots == 1 and matches manifest
            Loader-->>Caller: collect root CID
        else skip
            note right of Loader: Already present or network mismatch
        end
    end

    Loader-->>Caller: Vec<Cid> (loaded roots)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • LesnyRumcajs
  • akaladarshi
  • hanabi1224

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly summarizes the primary change by stating that cargo-spellcheck coverage is extended across the entire repository including the .github directory, aligning directly with the pull request’s core objective and providing clear context for reviewers.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e1748c0 and 534718c.

📒 Files selected for processing (1)
  • CHANGELOG.md (16 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • CHANGELOG.md

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
CONTRIBUTING.md (1)

106-110: Security contact is missing

The sentence ends with “sent by email to .” which omits the address/route. Link to SECURITY.md or provide the proper email.

-> Instead sensitive bugs must be sent by email to .
+> Instead, sensitive bugs must be reported privately as described in our
+> [SECURITY policy](./SECURITY.md).

If you prefer an email, replace with your security contact address.

🧹 Nitpick comments (8)
documentation/src/developer_documentation/rpc_api_compatibility.md (1)

58-59: Minor wording tweak for clarity

Replace “done with a local node rather than api.node.glif.io” with “done against a local node rather than against api.node.glif.io.”

-This means API compatibility testing has to be done with a local node rather than
-`api.node.glif.io`.
+This means API compatibility testing must be done against a local node rather than
+against `api.node.glif.io`.
documentation/src/developer_documentation/chain_index_spike.md (1)

86-88: Use canonical crate name and tighten phrasing

Prefer “sqlx” (crate name) and simplify the sentence.

-2. **Sqlx** crate? In case of abstraction of the backend DB:
+2. **sqlx** crate? If abstracting the backend DB:
CHANGELOG.md (3)

90-93: Fix “computating” typo

Use “computing.”

-- [#5946](https://github.com/ChainSafe/forest/pull/5946) Added `--n-epochs` to `forest-cli state compute` for computating state trees in batch.
+- [#5946](https://github.com/ChainSafe/forest/pull/5946) Added `--n-epochs` to `forest-cli state compute` for computing state trees in batch.

1762-1763: Acronym casing

Prefer “API” over “Api.”

-- `Build and Api Versioning`
+- `Build and API Versioning`

1773-1774: Grammar nit

“crashing when sending …” reads better.

-- Forest daemon crashing on sending bitswap requests.
+- Forest daemon crashing when sending bitswap requests.
.config/forest.dic (3)

128-129: Normalize brand casing (optional)

Consider dropping “CloudFlare” and keep “Cloudflare”.

-CloudFlare

271-273: Brand consistency (optional)

Prefer “GitHub” over “Github/github” unless matching historical text.

-Github
-github

1-680: Validate dictionary affix flags and remove duplicates
Dozens of entries in .config/forest.dic use suffix flags (e.g. Algorand/M, CAR/SM, benchmark/GD); if your .aff file doesn’t define matching affix rules these will be ignored—either supply the needed affix definitions or strip the unused flags. Also scan for duplicate words via:

awk '{print $1}' .config/forest.dic | sort | uniq -d

and prune or consolidate any duplicates.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4b4411a and 2d65c5c.

📒 Files selected for processing (6)
  • .config/forest.dic (1 hunks)
  • .config/spellcheck.toml (1 hunks)
  • CHANGELOG.md (9 hunks)
  • CONTRIBUTING.md (1 hunks)
  • documentation/src/developer_documentation/chain_index_spike.md (1 hunks)
  • documentation/src/developer_documentation/rpc_api_compatibility.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-08T12:10:45.218Z
Learnt from: hanabi1224
PR: ChainSafe/forest#5867
File: src/ipld/util.rs:553-558
Timestamp: 2025-08-08T12:10:45.218Z
Learning: Forest project targets Rust stable >=1.89; features stabilized in 1.88 like let-chains are acceptable in this codebase.

Applied to files:

  • CHANGELOG.md
🔇 Additional comments (4)
CONTRIBUTING.md (1)

115-117: LGTM: article fix

“Open a bug report” reads correctly now.

CHANGELOG.md (2)

48-49: LGTM: added entry for extended spellcheck

Entry accurately describes the change.


50-53: Mismatched issue number vs URL

Link text shows #5897 but URL points to /issues/5987. Make them consistent.

-- [#5897](https://github.com/ChainSafe/forest/issues/5987) Added support for the NV27 _Golden Week_ network upgrade for devnets.
-- [#5897](https://github.com/ChainSafe/forest/issues/5987) Added support for the NV27 _Golden Week_ network upgrade for calibration network. The upgrade epoch is set to `3_007_294` (Wed 10 Sep 23:00:00 UTC 2025).
+- [#5987](https://github.com/ChainSafe/forest/issues/5987) Added support for the NV27 _Golden Week_ network upgrade for devnets.
+- [#5987](https://github.com/ChainSafe/forest/issues/5987) Added support for the NV27 _Golden Week_ network upgrade for calibration network. The upgrade epoch is set to `3_007_294` (Wed 10 Sep 23:00:00 UTC 2025).
.config/spellcheck.toml (1)

4-11: LGTM: sensible hunspell defaults

Language, dirs, and dictionaries look correct.

@akaladarshi
Copy link
Collaborator

@Signor1 CI is failing can you check it.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (7)
.config/forest.dic (7)

62-66: Prefer canonical forms; drop “Blockheader” and “Blocksync”.

Keep “BlockHeader”, “BlockSync”, and “blocksync”.

- Blockheader
- Blocksync

27-27: Brand style: “Arch Linux” is two words.

Recommend removing “Archlinux” and fixing any prose to “Arch Linux”.

- Archlinux

368-369: Use brand-correct “mdBook”.

Add “mdBook” (tool name). Keep “mdbook” if it appears as a CLI/crate; you can drop “MdBook” if not used.

+ mdBook
- MdBook

191-191: Prefer “e.g.” over “eg”; keep “i.e.”.

Add the standard abbreviation and remove the non‑standard form.

- eg
+ e.g.

Also applies to: 293-293


340-340: Remove “LetsEncrypt”.

Use “Let’s Encrypt” (with apostrophe and space) in prose; no need to whitelist “LetsEncrypt”.

- LetsEncrypt

341-344: libp2p brand-case: keep only “libp2p” unless mixed-case is intentional.

If not required by historical text, drop mixed‑case variants to avoid masking style drift.

- LibP2P
- Libp2p

151-153: Add hyphenated standards names.

Docs often use “DAG‑JSON” and “DAG‑CBOR”; include these alongside existing variants.

+ DAG-JSON
+ DAG-CBOR
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9cd219f and a06cebd.

📒 Files selected for processing (1)
  • .config/forest.dic (1 hunks)
🔇 Additional comments (4)
.config/forest.dic (4)

2-676: Strong expansion; good coverage.

The broadened allowlist looks comprehensive and aligns with the PR goal to catch repo‑wide typos, including .github. No structural issues spotted with the file format.


447-448: Style choice: en‑US vs en‑GB (“organisation/Organisation”).

Confirm the house style. If en‑US, remove these and use “organization/Organization” in prose; if mixed allowed, keep as is.


557-557: Remove “Stackoverflow”.

Brand is “Stack Overflow” (two words); don’t whitelist the typo.

- Stackoverflow

Likely an incorrect or invalid review comment.


2-676: Fix typos, trailing punctuation, and canonicalize brand casing in .config/forest.dic

  • Remove trailing-period entries: backend., bitswap.
  • Correct obvious misspellings: line 206 everytingeverything; line 449 overridenoverridden
  • Fix abbreviation: line 190 ege.g. (or remove if not desired)
  • Canonicalize/dedupe brand entries (pick one preferred casing and remove other variants):
    • github: ['Github', 'github']
    • cloudflare: ['Cloudflare', 'CloudFlare']
    • libp2p: ['libp2p', 'LibP2P', 'LibP2p']
    • bitswap: ['bitswap', 'Bitswap']
    • blocksync: ['BlockSync', 'Blocksync', 'blocksync']
    • blockheader: ['BlockHeader', 'Blockheader']
  • Other flagged tokens (for review/fix): 27:Archlinux, 62:Blockheader, 64:Blocksync, 127:CloudFlare, 269:Github, 339:LetsEncrypt, 556:Stackoverflow
  • Re-run spellcheck: make spellcheck or cargo spellcheck check --cfg .config/spellcheck.toml --recursive

Ethereum
eth
exa
everyting
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Delete obvious typos (“everyting”, “overriden”).

These undermine the value of spellcheck.

- everyting
- overriden

Also applies to: 450-450

🤖 Prompt for AI Agents
In .config/forest.dic around line 206 (and also at line 450), there's an obvious
typo "everyting" (and similarly "overriden" per reviewer); update the dictionary
entries to correct spellings ("everything" and "overridden") so the spellchecker
file contains valid words, preserving file formatting and any surrounding
entries.

@Signor1
Copy link
Author

Signor1 commented Sep 11, 2025

Hi @akaladarshi, I'm having challenges installing cargo-spellcheck locally.

error: failed to run custom build command for `hunspell-sys v0.3.1`

So I had to use CI to check.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (3)
.config/forest.dic (3)

42-42: Remove tokens with trailing punctuation (they mask punctuation errors).

These entries will hide sentence-final punctuation mistakes.

- backend.
- bitswap.

Also applies to: 58-58


449-449: Delete typo “overriden” to avoid whitelisting a common mistake.

- overriden
+ overridden

556-556: Use canonical brand spelling “Stack Overflow”; drop “Stackoverflow”.

- Stackoverflow

Prefer “Stack Overflow” in prose.

🧹 Nitpick comments (3)
.config/forest.dic (3)

358-359: Prefer canonical casing “macOS”; remove “MacOS”.

- MacOS

175-175: Standardize “DevOps” casing (optionally include lowercase variant for prose).

- Devops
+ DevOps
+ devops

189-189: Prefer “e.g.” over “eg”.

Aligns with “i.e.” already present and avoids normalizing a style issue.

- eg
+ e.g.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a06cebd and 86cefb8.

📒 Files selected for processing (1)
  • .config/forest.dic (1 hunks)
🔇 Additional comments (1)
.config/forest.dic (1)

1-676: Overall: solid expansion; good coverage and useful normalizations

The bulk of additions look appropriate for reducing false positives across the repo. Nice cleanup of prior typos and inclusion of common project terms.

@hanabi1224
Copy link
Contributor

Hey @Signor1 could you run make spellcheck and make sure it passes locally?

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (4)
.config/forest.dic (4)

41-59: Remove tokens with trailing punctuation (will mask sentence-end typos).

Keep only the bare tokens; drop the dotted forms.

- backend.
- bitswap.

139-141: Remove stray non-word “creativ” (keep “creativcoder”).

- creativ

438-438: Don’t whitelist placeholder tokens; drop “nvXX”.

- nvXX

450-450: Delete obvious typo “overriden” (use “overridden” in prose).

- overriden
🧹 Nitpick comments (7)
.config/forest.dic (7)

54-56: Normalize BitField spelling; drop mixed-case “Bitfield”.

Prefer BitField (type) and bitfield (common noun); remove Bitfield.

- Bitfield

62-65: Normalize BlockHeader/BlockSync casing; remove mid-word lowercase variants.

Use BlockHeader and BlockSync; drop Blockheader and Blocksync.

- Blockheader
- Blocksync

27-27: Use canonical brand “Arch Linux”; drop “Archlinux”.

Enforce correct casing/spacing in docs; the dictionary entry isn’t needed.

- Archlinux

359-360: Prefer “macOS”; drop “MacOS”.

Keep only the canonical Apple branding.

- MacOS

557-557: Prefer “Stack Overflow”; drop “Stackoverflow”.

Use the official brand style in docs.

- Stackoverflow

340-340: Prefer “Let’s Encrypt”; don’t whitelist “LetsEncrypt”.

Avoid encouraging the non-canonical form.

- LetsEncrypt

21-26: Consider dropping mixed-case “Api”; prefer “API” (acro) or “api” (identifier).

Reduces inconsistent styling in docs.

- Api
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 86cefb8 and 9a9ac24.

📒 Files selected for processing (4)
  • .config/forest.dic (1 hunks)
  • docs/README.md (1 hunks)
  • f3-sidecar/README.md (1 hunks)
  • src/shim/actors/builtin/miner/mod.rs (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • src/shim/actors/builtin/miner/mod.rs
  • docs/README.md
  • f3-sidecar/README.md

@Signor1
Copy link
Author

Signor1 commented Sep 11, 2025

Hey @hanabi1224, make spellcheck is passing successfully now.
Thanks for the support

@Signor1
Copy link
Author

Signor1 commented Sep 11, 2025

Hey @hanabi1224, make spellcheck is passing successfully now. Thanks for the support

Also, you can let me know if the spellcheck implementation inside the docs folder should be discarded.

@Signor1
Copy link
Author

Signor1 commented Sep 12, 2025

Hey @hanabi1224 , there's an unrelated CI failure in the docs deployment workflow where yarn dependencies
aren't being installed before Wrangler runs.

@hanabi1224
Copy link
Contributor

hanabi1224 commented Sep 12, 2025

Commits must have verified signatures.

@Signor1 All commits have to to signed to unblock merge. Could you sign all of them?

Also, you can let me know if the spellcheck implementation inside the docs folder should be discarded.

That's fine, we can keep it.

there's an unrelated CI failure in the docs deployment workflow

Retrying, if could still fail due to insufficient permission to deploy from a fork but never mind.

@Signor1
Copy link
Author

Signor1 commented Sep 12, 2025

@hanabi1224 , Alright.

Meanwhile, I just signed this PR #6062

hanabi1224
hanabi1224 previously approved these changes Sep 12, 2025
akaladarshi
akaladarshi previously approved these changes Sep 12, 2025
@hanabi1224
Copy link
Contributor

Hey @Signor1 it requires all commits to be signed before we can merge this PR, please check and make sure every commit has a checkmark https://github.com/ChainSafe/forest/pull/6062/commits

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
CHANGELOG.md (3)

49-50: Move entry to Unreleased and align style.

This is a repo‑maintenance change, not part of v0.30.0 release notes. Please move under “Forest unreleased > Changed”. Also drop the colon and capitalize “Markdown”.

- [#5958](https://github.com/ChainSafe/forest/issues/5958): Extended cargo-spellcheck coverage to include .github directory for repository-wide markdown spellchecking.
+ [#5958](https://github.com/ChainSafe/forest/issues/5958) Extend cargo-spellcheck coverage to include the .github directory for repository‑wide Markdown spellchecking.

279-279: Fix duplicate word (“that that”).

- [#5375](https://github.com/ChainSafe/forest/issues/5375) Add an RNG wrapper that that can be overridden by a reproducible seeded RNG.
+ [#5375](https://github.com/ChainSafe/forest/issues/5375) Add an RNG wrapper that can be overridden by a reproducible seeded RNG.

1769-1775: Match “Fixed” section tone.

Rephrase to follow the imperative “Fix …” style used nearby.

- Forest daemon crashing on sending bitswap requests.
+ Fix Forest daemon crash when sending Bitswap requests.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5d5449d and 0dd50d1.

📒 Files selected for processing (6)
  • .cargo/config.toml (1 hunks)
  • .config/forest.dic (1 hunks)
  • CHANGELOG.md (11 hunks)
  • README.md (1 hunks)
  • documentation/src/developer_documentation/chain_index_spike.md (1 hunks)
  • documentation/src/trouble_shooting.md (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • .cargo/config.toml
  • documentation/src/trouble_shooting.md
  • README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • documentation/src/developer_documentation/chain_index_spike.md
  • .config/forest.dic
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-08T12:10:45.218Z
Learnt from: hanabi1224
PR: ChainSafe/forest#5867
File: src/ipld/util.rs:553-558
Timestamp: 2025-08-08T12:10:45.218Z
Learning: Forest project targets Rust stable >=1.89; features stabilized in 1.88 like let-chains are acceptable in this codebase.

Applied to files:

  • CHANGELOG.md
🔇 Additional comments (5)
CHANGELOG.md (5)

633-634: LGTM: “applicable” correction.

Spelling fix looks correct.


986-987: LGTM: “facilitate” correction.

Grammar and clarity improved.


1917-1919: LGTM: parenthetical i.e.

Punctuation and wording are consistent.


3345-3346: LGTM: “overridden” correction.

Spelling aligns with standard usage.


3457-3458: Capitalize RocksDB brand name.

- Naive DB + Rocksdb implementation
+ Naive DB + RocksDB implementation

[raise_nitpick_refactor]

@LesnyRumcajs
Copy link
Member

@Signor1 There are still a lot of entries that shouldn't be there. Types and variables should be in backticks (it should prevent the spellcheck from complaining about them). Some short forms shouldn't be short. F1..F28 - it's not an entry for the dictionary. Same for v0..v14 and others like this. Also, some names have bad casing, e.g., Devops should be DevOps.

@LesnyRumcajs
Copy link
Member

Also - feel free to add https://github.com/ChainSafe/forest/tree/main/documentation to exceptions, i.e., don't run checks there. This is outdated and unmaintained; the pages there will be either migrated manually to new docs or removed.

@hanabi1224 hanabi1224 requested review from hanabi1224 and removed request for hanabi1224 September 19, 2025 12:58
@LesnyRumcajs LesnyRumcajs marked this pull request as draft September 22, 2025 08:23
@elmattic
Copy link
Contributor

elmattic commented Oct 3, 2025

@Signor1 Could you please address coderabbitai's and Hubert's comments, resolve conflicts, and ensure the CI tests pass?

@Signor1
Copy link
Author

Signor1 commented Oct 3, 2025

@Signor1 Could you please address coderabbitai's and Hubert's comments, resolve conflicts, and ensure the CI tests pass?

Alright

  - Clean up .config/forest.dic: remove 6 duplicate entries (Github/GitHub, ParityDb/ParityDB, RocksDb/RocksDB, F3, JWT, P2P, Implementers,
  Preloaded), update count to 230
  - Add emoji regex pattern to .config/spellcheck.toml to handle emoji sequences
  - Exclude .github directory from markdown spellcheck in Makefile
  - Fix inconsistent spellings: Github → GitHub, Devops → DevOps
  - Standardize contractions: It's → It is for formal documentation
  - Fix CHANGELOG.md formatting: add backticks around version numbers (v1, v2, v6, etc.)
  - Update docs/docs/users/guides/gc.md: replace ~ with 'approximately' for clarity
  - Fix import quote style in docs/docs/users/getting_started/install.md
  - Add template-specific words to forest.dic: env, WORKFLOW_URL, yaml, YY, HH, mm, known_blocks
  - Remove curly braces {} from tokenization_splitchars to properly handle template variables
  - Add regex patterns to ignore {{ and }} template delimiters
  - Fix British to American English in bug report template: behaviour → behavior
  - Update dictionary count from 230 to 237
@Signor1 Signor1 marked this pull request as ready for review October 6, 2025 10:17
@Signor1
Copy link
Author

Signor1 commented Oct 6, 2025

@Signor1 Could you please address coderabbitai's and Hubert's comments, resolve conflicts, and ensure the CI tests pass?

Hi @elmattic , you can check it out.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/daemon/bundle.rs (1)

88-136: Fix comparison against header roots; consider cloning Cid and improve error handling

  • Critical: header.roots.first() == root compares Option<&Cid> to &Cid. Use Some(root) (or deref the first element).
  • Safer to return root.clone() instead of *root unless Cid: Copy.
-                        let header = stream.header_v1;
-                        anyhow::ensure!(header.roots.len() == 1);
-                        anyhow::ensure!(header.roots.first() == root);
-                        Ok(*root)
+                        let header = stream.header_v1;
+                        anyhow::ensure!(header.roots.len() == 1, "bundle header must contain exactly one root");
+                        anyhow::ensure!(
+                            header.roots.first() == Some(root),
+                            "bundle root mismatch: expected {root}, got {:?}",
+                            header.roots
+                        );
+                        Ok(root.clone())

Additional recommendations (non-blocking):

  • Don’t swallow DB errors in the filter:
// precompute to propagate errors
let to_fetch: Vec<_> = bundles.iter()
    .filter(|b| discriminant(network) == discriminant(&b.network))
    .filter(|b| match db.has(&b.manifest) { Ok(false) => true, Ok(true) => false, Err(e) => return Err(e) })
    .collect();
  • Consider bounded concurrency (e.g., stream::iter(to_fetch).map(...).buffer_unordered(N)) to avoid burst downloads. As per coding guidelines.
🧹 Nitpick comments (2)
src/lotus_json/sector_size.rs (1)

9-9: Consider keeping backticks for technical terms.

The removal of backticks around enum may be inconsistent with the maintainer's feedback about formatting technical terms in backticks (per PR comments).

Apply this diff if you'd like to restore the backticks for consistency:

-// This should probably be a JSON Schema enum
+// This should probably be a JSON Schema `enum`
docs/docs/users/guides/running_with_gateway.md (1)

31-31: Use canonical libp2p term “multiaddress” (or “multiaddr”)

“multi-address” is uncommon in libp2p docs. Suggest reverting to “multiaddress” for consistency.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0dd50d1 and ed51cf4.

📒 Files selected for processing (53)
  • .config/forest.dic (2 hunks)
  • .config/spellcheck.toml (1 hunks)
  • .github/ISSUE_TEMPLATE/1-bug_report.md (3 hunks)
  • CHANGELOG.md (16 hunks)
  • Makefile (1 hunks)
  • build/manifest.json (1 hunks)
  • docs/dictionary.txt (3 hunks)
  • docs/docs/developers/guides/network_upgrades.md (2 hunks)
  • docs/docs/users/getting_started/install.md (1 hunks)
  • docs/docs/users/guides/gc.md (1 hunks)
  • docs/docs/users/guides/interacting_with_wallets.md (1 hunks)
  • docs/docs/users/guides/running_with_gateway.md (2 hunks)
  • docs/docs/users/knowledge_base/docker_tips.md (1 hunks)
  • docs/docs/users/openrpc.json (218 hunks)
  • docs/docs/users/reference/cli.md (4 hunks)
  • docs/docs/users/reference/json_rpc_overview.md (1 hunks)
  • src/blocks/tipset.rs (2 hunks)
  • src/chain/mod.rs (2 hunks)
  • src/chain/store/chain_store.rs (2 hunks)
  • src/chain_sync/validation.rs (1 hunks)
  • src/cid_collections/hash_map.rs (1 hunks)
  • src/cid_collections/mod.rs (1 hunks)
  • src/cid_collections/small_cid_vec.rs (2 hunks)
  • src/cli/subcommands/chain_cmd.rs (1 hunks)
  • src/cli/subcommands/mpool_cmd.rs (1 hunks)
  • src/cli/subcommands/state_cmd.rs (1 hunks)
  • src/cli_shared/cli/client.rs (1 hunks)
  • src/daemon/bundle.rs (1 hunks)
  • src/db/car/forest.rs (4 hunks)
  • src/db/car/forest/index/mod.rs (1 hunks)
  • src/db/car/mod.rs (1 hunks)
  • src/db/mod.rs (1 hunks)
  • src/documentation.rs (1 hunks)
  • src/interpreter/fvm2.rs (1 hunks)
  • src/interpreter/fvm3.rs (1 hunks)
  • src/interpreter/fvm4.rs (1 hunks)
  • src/ipld/util.rs (1 hunks)
  • src/lotus_json/sector_size.rs (1 hunks)
  • src/rpc/error.rs (1 hunks)
  • src/rpc/methods/f3/types.rs (1 hunks)
  • src/rpc/methods/mpool.rs (2 hunks)
  • src/rpc/methods/state.rs (4 hunks)
  • src/rpc/mod.rs (1 hunks)
  • src/rpc/registry/actors_reg.rs (1 hunks)
  • src/shim/actors/builtin/miner/mod.rs (1 hunks)
  • src/shim/machine/manifest.rs (1 hunks)
  • src/tool/subcommands/api_cmd/api_compare_tests.rs (1 hunks)
  • src/tool/subcommands/archive_cmd.rs (1 hunks)
  • src/tool/subcommands/shed_cmd.rs (1 hunks)
  • src/utils/db/car_stream.rs (1 hunks)
  • src/utils/db/mod.rs (1 hunks)
  • src/utils/encoding/cid_de_cbor.rs (3 hunks)
  • src/utils/encoding/fallback_de_ipld_dagcbor.rs (1 hunks)
✅ Files skipped from review due to trivial changes (38)
  • src/rpc/methods/mpool.rs
  • src/ipld/util.rs
  • src/rpc/registry/actors_reg.rs
  • src/db/mod.rs
  • src/rpc/error.rs
  • src/cid_collections/mod.rs
  • docs/dictionary.txt
  • src/chain/mod.rs
  • src/cid_collections/small_cid_vec.rs
  • src/shim/machine/manifest.rs
  • src/cli/subcommands/chain_cmd.rs
  • src/utils/db/mod.rs
  • src/tool/subcommands/api_cmd/api_compare_tests.rs
  • src/db/car/forest.rs
  • docs/docs/users/guides/interacting_with_wallets.md
  • src/tool/subcommands/shed_cmd.rs
  • src/chain_sync/validation.rs
  • src/rpc/mod.rs
  • src/rpc/methods/state.rs
  • src/tool/subcommands/archive_cmd.rs
  • src/cli_shared/cli/client.rs
  • src/cli/subcommands/mpool_cmd.rs
  • docs/docs/developers/guides/network_upgrades.md
  • src/cid_collections/hash_map.rs
  • src/chain/store/chain_store.rs
  • src/db/car/mod.rs
  • src/rpc/methods/f3/types.rs
  • build/manifest.json
  • .github/ISSUE_TEMPLATE/1-bug_report.md
  • src/documentation.rs
  • src/utils/db/car_stream.rs
  • src/interpreter/fvm2.rs
  • src/interpreter/fvm4.rs
  • .config/forest.dic
  • docs/docs/users/knowledge_base/docker_tips.md
  • docs/docs/users/openrpc.json
  • src/utils/encoding/cid_de_cbor.rs
  • src/blocks/tipset.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/shim/actors/builtin/miner/mod.rs
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-18T12:25:29.183Z
Learnt from: akaladarshi
PR: ChainSafe/forest#5896
File: src/lotus_json/actor_states/methods/verified_reg_actor.rs:133-137
Timestamp: 2025-08-18T12:25:29.183Z
Learning: In Lotus JSON for verified registry actor, the SectorAllocationClaimsLotusJson struct uses "SectorExpiry" as the field name for the expiry field, not "Expiry". The current code with #[serde(rename = "SectorExpiry")] is correct.

Applied to files:

  • src/lotus_json/sector_size.rs
🔇 Additional comments (9)
src/cli/subcommands/state_cmd.rs (1)

46-46: Doc comment tweak looks solid.

Wrapping CIDs in backticks matches the surrounding documentation style; no further action needed.

docs/docs/users/reference/json_rpc_overview.md (1)

17-17: Consistent GitHub capitalization

Thank you for fixing the brand capitalization; change looks good.

src/db/car/forest/index/mod.rs (1)

127-127: LGTM! Documentation formatting improved.

Wrapping CIDs in backticks aligns with Rust documentation conventions for technical terms and addresses the reviewer's feedback about using backticks for types rather than adding them to the dictionary.

src/utils/encoding/fallback_de_ipld_dagcbor.rs (1)

669-669: Comment wording/style LGTM

Backtick formatting for CIDs is consistent with the PR’s documentation changes.

docs/docs/users/getting_started/install.md (1)

6-7: Imports style OK

Single quotes are fine here; no behavior change.

docs/docs/users/guides/running_with_gateway.md (1)

46-46: Section heading change is fine

No functional impact; reads well.

docs/docs/users/reference/cli.md (3)

419-419: OK

Wording with code-formatted CIDs looks good.

Ensure the CLI docs generator (generate_cli_md.sh) was updated so this persists. Based on header note in this file.


1955-1955: OK

Description reads clearly with code-formatted CIDs.

Confirm docs generator reflects this change. Based on header note in this file.


1970-1970: OK

Sentence reads well; consistent formatting.

Confirm docs generator reflects this change. Based on header note in this file.

Comment on lines +104 to +108
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `--format` flag to the `forest-cli snapshot export` subcommand. This allows exporting a Filecoin snapshot in `v2` format(FRC-0108).

- [#5956](https://github.com/ChainSafe/forest/pull/5956) Add `forest-tool archive f3-header` subcommand for inspecting the header of a standalone F3 snapshot(FRC-0108).

- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `forest-tool archive metadata` subcommand for inspecting snapshot metadata of a Filecoin snapshot in v2 format(FRC-0108).
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `forest-tool archive metadata` subcommand for inspecting snapshot metadata of a Filecoin snapshot in `v2` format(FRC-0108).
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix spacing before parenthetical references

Both new bullets read format(FRC-0108) / snapshot(FRC-0108). Please restore the space before the parenthetical so the reference reads naturally.

-  `v2` format(FRC-0108).
+  `v2` format (FRC-0108).
-  snapshot in `v2` format(FRC-0108).
+  snapshot in `v2` format (FRC-0108).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `--format` flag to the `forest-cli snapshot export` subcommand. This allows exporting a Filecoin snapshot in `v2` format(FRC-0108).
- [#5956](https://github.com/ChainSafe/forest/pull/5956) Add `forest-tool archive f3-header` subcommand for inspecting the header of a standalone F3 snapshot(FRC-0108).
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `forest-tool archive metadata` subcommand for inspecting snapshot metadata of a Filecoin snapshot in v2 format(FRC-0108).
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `forest-tool archive metadata` subcommand for inspecting snapshot metadata of a Filecoin snapshot in `v2` format(FRC-0108).
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `--format` flag to the `forest-cli snapshot export` subcommand. This allows exporting a Filecoin snapshot in `v2` format (FRC-0108).
- [#5956](https://github.com/ChainSafe/forest/pull/5956) Add `forest-tool archive f3-header` subcommand for inspecting the header of a standalone F3 snapshot(FRC-0108).
- [#5835](https://github.com/ChainSafe/forest/issues/5835) Add `forest-tool archive metadata` subcommand for inspecting snapshot metadata of a Filecoin snapshot in `v2` format (FRC-0108).
🤖 Prompt for AI Agents
CHANGELOG.md lines 104-108: the parenthetical references lack a leading space
(e.g., "format(FRC-0108)" and "snapshot(FRC-0108)"); update the three affected
bullet lines to insert a space before each "(" so they read "format (FRC-0108)"
and "snapshot (FRC-0108)" respectively, preserving the rest of the text and
punctuation.

--local Print pending messages for addresses in local wallet only
--cids Only print `CIDs` of messages in output
--cids Only print ``CIDs`` of messages in output
--to <TO> Return messages to a given address
Copy link
Contributor

@coderabbitai coderabbitai bot Oct 6, 2025

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

🧩 Analysis chain

Fix double backticks around CIDs

Use single backticks for consistency.

-      --cids         Only print ``CIDs`` of messages in output
+      --cids         Only print `CIDs` of messages in output

Also ensure the generator emits this. Based on header note in this file.


🏁 Script executed:

#!/bin/bash
rg -n '``CIDs``' docs/docs/users/reference/cli.md
echo "---- header ----"
head -n 20 docs/docs/users/reference/cli.md

Length of output: 484


Use single backticks for CIDs in the CLI reference
Replace CIDs with CIDs (docs/docs/users/reference/cli.md:638) and update generate_cli_md.sh to emit single backticks for CIDs.

🤖 Prompt for AI Agents
In docs/docs/users/reference/cli.md around line 639, the CLI reference currently
uses double backticks for CIDs (``CIDs``); replace them with single backticks
(`CIDs`) in that line (and any other occurrences). Then update
generate_cli_md.sh so the generation/template emits single backticks for CID
placeholders instead of double backticks (adjust the template or post-processing
step that wraps CID tokens so it writes `CIDs`), and regenerate the CLI markdown
to ensure the file and generator are consistent.

Copy link
Contributor

Choose a reason for hiding this comment

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

Is this now good?

Copy link
Contributor

Choose a reason for hiding this comment

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

@elmattic, not yet! The current version still has double backticks (CIDs), but it should use single backticks (CIDs) for consistency with the rest of the document.

You'll need to fix this in two places:

  1. Source code: In src/cli/subcommands/mpool_cmd.rs, change the doc comment from:

    /// Only print ``CIDs`` of messages in output
    

    to:

    /// Only print `CIDs` of messages in output
    
  2. Regenerate the CLI docs: After fixing the source, run the generate_cli_md.sh script to regenerate docs/docs/users/reference/cli.md.

The standard convention throughout this file is to use single backticks for inline code formatting (like libp2p, PeerId, etc.), so CIDs should follow the same pattern.

@Signor1
Copy link
Author

Signor1 commented Oct 10, 2025

@elmattic, I've resolved the typos.

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.

5 participants