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

  • Documentation

    • Expanded spellcheck coverage to include markdown files across the repository.
    • Updated documentation formatting for consistency and clarity.
    • Corrected spelling and terminology throughout guides and references.
  • Style

    • Standardized inline code formatting for technical identifiers and terms.
    • Improved capitalization and naming conventions in documentation.
  • Chores

    • Enhanced spellcheck configuration with additional pattern rules and emoji support.
    • Simplified build workflows by removing redundant spellcheck scripts.

@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
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 10, 2025

Walkthrough

This PR consolidates documentation and configuration updates including spelling corrections, code formatting consistency (backtick-enclosed identifiers), spellcheck tooling enhancements, and one functional API change. Approximately 90% of changes are editorial; one functional modification updates the bundle-loading function signature.

Changes

Cohort / File(s) Summary
Documentation & README spelling/formatting fixes
CHANGELOG.md, CONTRIBUTING.md, README.md, docs/README.md, f3-sidecar/README.md, scripts/devnet-curio/README.md, scripts/devnet/README.md
Corrected spelling ("behaviour" → "behavior", "applicabile" → "applicable", "everyting" → "everything", "overriden" → "overridden"), fixed typos, adjusted markdown formatting, and standardized capitalization (e.g., "Arch Linux", "Cloudflare Pages").
Developer documentation code formatting
documentation/src/developer_documentation/chain_index_spike.md, documentation/src/developer_documentation/rpc_api_compatibility.md, docs/docs/developers/guides/network_upgrades.md, docs/docs/developers/deep_dives/chain_follower.md
Added backticks around code identifiers (SQLx, NV23, NV24, etc.) and type references for consistency in inline documentation.
User-facing documentation inline formatting
docs/docs/users/getting_started/install.md, docs/docs/users/guides/gc.md, docs/docs/users/guides/interacting_with_wallets.md, docs/docs/users/guides/running_with_gateway.md, docs/docs/users/knowledge_base/docker_tips.md, docs/docs/users/knowledge_base/network_upgrades_state_migrations.md, docs/docs/users/reference/env_variables.md, docs/docs/users/reference/json_rpc.mdx, docs/docs/users/reference/json_rpc_overview.md, docs/docs/users/reference/cli.md
Wrapped code-like terms (F3, CIDs, WSL2, M1/M2, NV22/NV23, localhost, etc.) in backticks; reworded descriptions for clarity (e.g., "~80 GiB" → "80 GiB", "It's" → "It is").
User-facing reference files
docs/docs/users/openrpc.json
Updated TipSetKey description to format CIDs with backticks.
Source code doc comments — CID references
src/blocks/tipset.rs, src/chain/mod.rs, src/chain/store/chain_store.rs, src/chain_sync/validation.rs, src/cid_collections/hash_map.rs, src/cid_collections/mod.rs, src/cid_collections/small_cid_vec.rs, src/cli/subcommands/chain_cmd.rs, src/cli/subcommands/state_cmd.rs, src/cli_shared/cli/client.rs, src/db/car/forest.rs, src/db/car/forest/index/mod.rs, src/db/mod.rs, src/documentation.rs, src/interpreter/fvm...rs, src/ipld/util.rs, src/rpc/error.rs, src/rpc/methods/f3/types.rs, src/rpc/methods/mpool.rs, src/rpc/methods/state.rs, src/rpc/registry/actors_reg.rs, src/shim/machine/manifest.rs, src/tool/subcommands/api_cmd/api_compare_tests.rs, src/tool/subcommands/archive_cmd.rs, src/tool/subcommands/shed_cmd.rs, src/utils/db/car_stream.rs, src/utils/db/mod.rs, src/utils/encoding/cid_de_cbor.rs, src/utils/encoding/fallback_de_ipld_dagcbor.rs
Consistently wrapped CIDs references in backticks throughout doc comments and inline comments.
Source code doc comments — other code terms
src/shim/actors/builtin/miner/mod.rs, src/blocks/block.rs, src/blocks/chain4u.rs, src/chain/snapshot_format.rs, src/chain_sync/consensus.rs, src/cli/humantoken.rs, src/cli/subcommands/f3_cmd.rs, src/cli/subcommands/mod.rs, src/db/car/any.rs, src/db/car/mod.rs, src/db/car/plain.rs, src/eth/eip_1559_transaction.rs, src/eth/eip_155_transaction.rs, src/eth/homestead_transaction.rs, src/f3/mod.rs, src/health/endpoints.rs, src/libp2p/chain_exchange/message.rs, src/libp2p/discovery.rs, src/libp2p_bitswap/message.rs, src/lotus_json/ipld.rs, src/lotus_json/mod.rs, src/lotus_json/sector_size.rs, src/message/signed_message.rs, src/rpc/channel.rs, src/rpc/reflect/mod.rs, src/rpc/types/mod.rs, src/shim/crypto.rs, src/shim/version.rs, src/tool/subcommands/api_cmd.rs, src/tool/subcommands/api_cmd/stateful_tests.rs, src/utils/io/progress_log.rs, src/utils/io/writer_checksum.rs, src/utils/misc/env.rs, src/utils/multihash.rs, src/utils/proofs_api/paramfetch.rs
Added backticks around code terms (F3, SECP, struct, async, enum, CAR/CARv1/CARv2, EIP155/EIP-1559, Mutex, TTY, hasher, truthy, Cloudflare, R2, etc.) in doc comments for consistency.
GitHub templates and workflows
.github/ISSUE_TEMPLATE/1-bug_report.md, .github/ISSUE_TEMPLATE/6-network-upgrade.md, .github/CARGO_ADVISORIES_ISSUE_TEMPLATE.md, .github/DOCKER_ISSUE_TEMPLATE.md, .github/INTEGRATION_TESTS_ISSUE_TEMPLATE.md, .github/RPC_PARITY_ISSUE_TEMPLATE.md, .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md
Updated spelling to American English ("behaviour" → "behavior"), adjusted template formatting, wrapped code terms in backticks (e.g., env.WORKFLOW_URL), and minor heading formatting adjustments.
Build configuration & tooling
.cargo/config.toml, .config/forest.dic, .config/spellcheck.toml, Makefile
Fixed typo in cargo config ("overriden" → "overridden"); expanded forest.dic with new tokens; significantly enhanced spellcheck.toml with improved regex patterns, emoji support, and new sections ([nlprules], [reflow]); added markdown-focused spellcheck pass to Makefile.
Workflow and documentation build
.github/workflows/docs-check.yml, docs/Makefile, docs/package.json
Removed spellcheck dictionary formatting targets and yarn spellcheck script; removed redundant workflow steps.
Dictionary cleanup
docs/dictionary.txt
Removed broad set of dictionary entries.
Functional API change
src/daemon/bundle.rs
Updated load_actor_bundles_from_server() signature: now accepts bundles: &[ActorBundleInfo] parameter and returns Vec<Cid> instead of (); refactored control flow to process bundles concurrently using FuturesUnordered, filter to bundles not in DB, and return loaded root CIDs.
Bootstrap script
scripts/tests/bootstrapper/README.md
Reformatted "Teardown" section heading to use inline code formatting.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • High repetition, low complexity: ~95% of changes follow consistent, mechanical patterns (backtick formatting, spelling corrections, typo fixes across multiple files).
  • One functional change requiring attention: src/daemon/bundle.rs modifies the public API of load_actor_bundles_from_server() to accept bundle parameters and return CID results. Review should verify:
    • Caller sites properly handle the new Vec<Cid> return value
    • Concurrent processing with FuturesUnordered correctly handles error cases and bundle filtering logic
    • Thread-safety of shared database access during concurrent downloads

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 pull request title clearly summarizes the primary objective: extending cargo-spellcheck to cover the entire repository, particularly the .github directory.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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 b506c91 and 7de371a.

📒 Files selected for processing (3)
  • .config/spellcheck.toml (1 hunks)
  • docs/docs/users/knowledge_base/docker_tips.md (1 hunks)
  • src/utils/proofs_api/paramfetch.rs (4 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/utils/proofs_api/paramfetch.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/docs/users/knowledge_base/docker_tips.md
🔇 Additional comments (4)
.config/spellcheck.toml (4)

27-53: Transform regex patterns look appropriate.

The expanded set of skip patterns (operators, file extensions, import paths, version identifiers, emojis, etc.) are well-anchored and targeted to avoid false positives without over-matching legitimate prose. Patterns appropriately balance between filtering false positives and preserving spellcheck coverage of actual content.


25-25: Pattern correctly handles documentation by design—no changes needed.

The pattern ^[a-z]+_[a-z]+$ with both anchors is working as intended. It matches only lines that consist entirely of an underscore-separated identifier, which is appropriate for YAML configuration keys. The empty search result across all .md files confirms the pattern does not skip legitimate prose or inline code references—those are longer than a bare identifier and won't match the anchored pattern. The comment "YAML frontmatter - skip underscore_words common in config" confirms the intended scope aligns with the implementation.


9-9: The tokenization change is safe; cargo-spellcheck uses CommonMark parsing for markdown.

cargo-spellcheck uses a CommonMark parser (pulldown-cmark/doc-chunks) to parse docs and extract tokens from the AST rather than relying on regex tokenization. Angle brackets in markdown autolinks (https://...) are recognized by the parser and treated as link nodes, with the URL not tokenized as ordinary prose for spellchecking.

Removing <> from tokenization_splitchars does not affect markdown link handling because markdown syntax is parsed at the AST level by the CommonMark parser, independent of tokenization configuration. The change is intentional and safe.


59-62: Configuration is correct and intentionally minimal.

The [reflow] section with max_line_length = 80 is a supported configuration option. The [nlprules] section has no documented per-section configuration in cargo-spellcheck; nlprules is a checker feature (enable/disable) and configuration is handled by the nlprule library's data/binaries rather than a dedicated TOML section. The empty [nlprules] section is therefore expected and correct. No conflicts or version incompatibilities found.

Tip

📝 Customizable high-level summaries are now available!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide custom instructions to shape the summary (bullet lists, tables, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example:

"Create a concise high-level summary as a bullet-point list. Then include a Markdown table showing lines added and removed by each contributing author."


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

@akaladarshi
Copy link
Collaborator

@Signor1 CI is still failing you can run the check locally once and verify

@Signor1
Copy link
Author

Signor1 commented Oct 16, 2025

@akaladarshi
Fixed now. All good. Was an oversight

"bafk2bzacedgl6zt7d2ointmeyqrdwkehpi5w5rk3smsemrwbf3v5gc2wx7qfy"
]
],
"actor_list_cid": "bafy2bzaceasz5pov3d4tyxxdcxj2qvvdnkdxihzycj5oos5t2xj5pznwvxvem"
Copy link
Collaborator

Choose a reason for hiding this comment

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

@Signor1 Can you please revert this change

Copy link
Collaborator

Choose a reason for hiding this comment

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

This might be the reason the unit test is failing.

Copy link
Author

Choose a reason for hiding this comment

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

Hey @akaladarshi, this version is the same with what is in base branch.

Copy link
Collaborator

@akaladarshi akaladarshi Oct 17, 2025

Choose a reason for hiding this comment

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

@Signor1 The unit test state_migration_generate_actors_metadata is failing because of the changes, it might be related to the manifest file.

Can you please verify once by running make test or cargo nextest run --workspace --no-fail-fast.

Copy link
Author

Choose a reason for hiding this comment

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

@akaladarshi I've identified the fix :)

I added a trailing new line to the manifest.json. Absence of \n at the end of manifest.json made this comparison assert_eq!(json, manifest)to fail

Copy link
Author

Choose a reason for hiding this comment

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

@akaladarshi I've identified the fix :)

I added a trailing new line to the manifest.json. Absence of \n at the end of manifest.json made this comparison assert_eq!(json, manifest)to fail

Since it is a byte-for-byte string comparison, the \n counts

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

🧹 Nitpick comments (1)
.config/spellcheck.toml (1)

38-40: Empty config sections introduced without documentation or purpose.

The new [nlprules] and [reflow] sections are added but appear empty or minimally configured. Clarify whether these sections are:

  • Intentional placeholders for future use (document this intention)
  • Incomplete configuration that should have values (complete them)
  • Dead code that should be removed

Empty sections may signal incomplete work or configuration drift. If retained, add inline comments explaining their purpose.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6103bcf and 38494ef.

📒 Files selected for processing (2)
  • .config/spellcheck.toml (1 hunks)
  • config.toml (1 hunks)
🔇 Additional comments (2)
config.toml (1)

1-46: Verify scope alignment with PR objectives.

This config file does not appear related to the stated PR objectives (extending cargo-spellcheck coverage and dictionary updates). Please confirm:

  1. Is this file intentionally part of the spellcheck PR, or was it accidentally included?
  2. Is this file meant as a default configuration, example template, or documentation?
  3. Should it be included in version control at all, or should it be .gitignore'd (e.g., if it's meant as a user-specific template)?

Based on PR objectives and typical practices, config files with user-specific paths are usually not committed to repositories directly.

.config/spellcheck.toml (1)

9-9: Configuration changes align well with Markdown spellcheck objectives.

The tokenization updates (line 9) and new transform_regex patterns (lines 16–32) appropriately handle Markdown-specific constructs:

  • Template variables ({{ ... }}) and Handlebars/Jinja syntax
  • Double braces for standalone delimiters
  • Numeric and operator sequences
  • Emoji support (with accompanying allow_emojis = true on line 36)
  • Import-like patterns (@theme/...)

These changes support the PR's goal of extending spellcheck coverage to .github and other Markdown files without excessive false positives on code-like tokens.

Also applies to: 16-36

@Signor1
Copy link
Author

Signor1 commented Oct 18, 2025

@akaladarshi please review. I've fixed the issue

@akaladarshi akaladarshi enabled auto-merge October 22, 2025 08:08
Copy link
Member

@LesnyRumcajs LesnyRumcajs left a comment

Choose a reason for hiding this comment

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

The dictionary should not contain entries such as class or module names, different casing of wasm, implementer/implementor (just choose one) etc. Some features of hunspell could be used to limit the number of entries (refer to https://github.com/ChainSafe/forest/blob/main/.config/spellcheck.md). Please ensure all entries in the dictionary are correct and needed (refer to https://github.com/ChainSafe/forest/blob/main/.config/spellcheck.md#tips for stuff like NV22).

Also, if cargos-spellcheck is used across the board, the javascript one at docs/ should be removed - there's no point in having two. Refer to @hanabi1224 comment in your previus PR #6058 (comment).

auto-merge was automatically disabled October 22, 2025 22:51

Head branch was pushed to by a user without write access

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

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)

124-126: Fix type mismatch in comparison.

Line 125 compares Option<&Cid> (returned by first()) with &Cid directly, which would cause a compilation error since PartialEq is not implemented between these types. Additionally, the error messages could be more descriptive for debugging.

Apply this diff to fix the type mismatch and improve error messages:

                         let header = stream.header_v1;
-                        anyhow::ensure!(header.roots.len() == 1);
-                        anyhow::ensure!(header.roots.first() == root);
+                        anyhow::ensure!(
+                            header.roots.len() == 1,
+                            "Expected exactly one root in bundle {network}-{version}, found {}",
+                            header.roots.len()
+                        );
+                        anyhow::ensure!(
+                            header.roots.first() == Some(root),
+                            "Bundle {network}-{version} root mismatch: expected {root}, found {:?}",
+                            header.roots.first()
+                        );
                         Ok(*root)
🧹 Nitpick comments (1)
src/daemon/bundle.rs (1)

91-123: LGTM with minor suggestions!

The concurrent processing with FuturesUnordered, filtering logic, download fallback mechanism, and streaming into the database are all well-implemented.

Minor suggestions:

  • Line 95: The unwrap_or(false) fallback is reasonable but could mask underlying database errors. Consider logging a warning if db.has() returns an error.
  • Line 114: Good error handling with the warning message for fallback URL.

Consider adding a warning log on line 95 if the database check fails:

             .filter(|bundle| {
-                !db.has(&bundle.manifest).unwrap_or(false) &&
+                !db.has(&bundle.manifest).unwrap_or_else(|e| {
+                    warn!("Failed to check if bundle exists: {e}");
+                    false
+                }) &&
                 // Comparing only the discriminant is enough. All devnets share the same
                 // actor bundle.
                 discriminant(network) == discriminant(&bundle.network)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7890696 and 5214c5c.

📒 Files selected for processing (5)
  • CHANGELOG.md (16 hunks)
  • src/chain/mod.rs (2 hunks)
  • src/daemon/bundle.rs (1 hunks)
  • src/tool/subcommands/archive_cmd.rs (1 hunks)
  • src/utils/db/car_stream.rs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/utils/db/car_stream.rs
  • CHANGELOG.md
🔇 Additional comments (4)
src/tool/subcommands/archive_cmd.rs (1)

153-155: LGTM! Documentation formatting improved.

The addition of backticks around version identifiers (v1 and v2) correctly formats these technical terms as inline code, improving documentation clarity and consistency.

src/chain/mod.rs (1)

52-52: LGTM! Documentation formatting improvement.

Wrapping version identifiers in backticks follows rustdoc best practices and aligns with reviewer feedback about preferring inline code formatting over adding technical terms to the spellcheck dictionary.

Also applies to: 65-65

src/daemon/bundle.rs (2)

85-85: LGTM!

The documentation correctly describes the return value, and the backtick formatting around CIDs is appropriate.


86-90: The unused return value is intentional and acceptable.

The function documentation explicitly states it returns "the CIDs of the loaded bundles." Both call sites discard this value, which is acceptable—this design allows future callers to access the CIDs when needed while current callers that don't require them can simply ignore the return value.

@LesnyRumcajs LesnyRumcajs marked this pull request as draft October 30, 2025 15:29
@Signor1 Signor1 marked this pull request as ready for review November 15, 2025 21:35
@Signor1
Copy link
Author

Signor1 commented Nov 15, 2025

@hanabi1224

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: 5

♻️ Duplicate comments (4)
.github/RPC_PARITY_ISSUE_TEMPLATE.md (1)

8-8: Verify template variable rendering with backtick syntax.

Same concern as .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md (line 8): confirm that the backticks inside the template expression render correctly and do not appear as literal characters in the issue description.

.github/DOCKER_ISSUE_TEMPLATE.md (1)

8-8: Verify template variable rendering with backtick syntax.

Same concern as previous templates: confirm that {{ env.WORKFLOW_URL }} renders correctly and backticks do not appear as literal characters in the issue description.

.github/CARGO_ADVISORIES_ISSUE_TEMPLATE.md (1)

8-8: Verify template variable rendering with backtick syntax.

Same template rendering concern: confirm that {{ env.WORKFLOW_URL }} renders as intended without displaying literal backticks in the issue description.

.github/INTEGRATION_TESTS_ISSUE_TEMPLATE.md (1)

8-8: Verify template variable rendering with backtick syntax.

Same template rendering concern applies to all 5 automated issue templates (SNAPSHOT_PARITY, RPC_PARITY, DOCKER, CARGO_ADVISORIES, and INTEGRATION_TESTS). Confirm that wrapping env.WORKFLOW_URL in backticks within the template expression renders correctly across all templates.

🧹 Nitpick comments (5)
scripts/tests/bootstrapper/README.md (1)

29-29: Consider removing backticks from the descriptive section heading.

Inline code formatting (backticks) is conventionally reserved for code identifiers, command names, variables, and other code-like tokens. "Teardown" is a descriptive section heading, so the backticks are semantically unnecessary here.

-## `Teardown`
+## Teardown
src/tool/subcommands/archive_cmd.rs (1)

153-164: MergeF3 help text is good; tiny nearby grammar nit

The MergeF3 description and parameter docs read well and match the intended v1 + F3v2 flow.

Very minor optional tweak while you're in this area: at line 96, consider changing “metadata of an Filecoin snapshot archive” to “metadata of a Filecoin snapshot archive” to fix the article.

src/cid_collections/mod.rs (1)

13-24: CID doc comment improvements look good; small spacing nit

The explanation of compacted CIDs and the use of backticks is clear and consistent. One minor readability tweak:

  • Add a space after the comma between V1 and DagCbor:
-/// Nearly all Filecoin `CIDs` are `V1`,`DagCbor` encoded, and hashed with `Blake2b256` (which has a hash
+/// Nearly all Filecoin `CIDs` are `V1`, `DagCbor` encoded, and hashed with `Blake2b256` (which has a hash
src/cli/subcommands/f3_cmd.rs (1)

81-109: F3 CLI docs are clearer with backticks; a few minor grammar tweaks

The overall move to backtick F3/v1 in these help texts looks good and matches the rest of the PR. A few small wording improvements you might consider:

  • Make the “no progress” description grammatically clean:
-        /// Exit after `F3` making no progress for this duration.
+        /// Exits after `F3` makes no progress for this duration.
  • Fix the preposition in the certificate Get description:
-    /// Gets an `F3` finality certificate to a given instance ID, or the latest certificate if no instance is specified.
+    /// Gets an `F3` finality certificate for a given instance ID, or the latest certificate if no instance is specified.
  • Tighten and unify the power table help text in both places:
-    /// Gets `F3` power table at a specific instance ID or latest instance if none is specified.
+    /// Gets the `F3` power table at a specific instance ID, or the latest instance if none is specified.

(Apply the same wording to the doc on F3PowerTableCommands::Get.)

Also applies to: 232-257, 347-354

docs/docs/developers/guides/network_upgrades.md (1)

40-40: Improve link descriptiveness.

The link text "here" is not descriptive. Consider making it more specific so readers know what to expect when clicking.

Apply this diff to improve the link text:

-This provides the base for the state migrations and network-aware node changes. See the sample PR for `NV24` [here](https://github.com/ChainSafe/forest/pull/4819).
+This provides the base for the state migrations and network-aware node changes. See the [sample `NV24` skeleton PR](https://github.com/ChainSafe/forest/pull/4819).
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5214c5c and b506c91.

📒 Files selected for processing (72)
  • .config/forest.dic (1 hunks)
  • .config/spellcheck.toml (1 hunks)
  • .github/CARGO_ADVISORIES_ISSUE_TEMPLATE.md (1 hunks)
  • .github/DOCKER_ISSUE_TEMPLATE.md (1 hunks)
  • .github/INTEGRATION_TESTS_ISSUE_TEMPLATE.md (1 hunks)
  • .github/ISSUE_TEMPLATE/6-network-upgrade.md (1 hunks)
  • .github/RPC_PARITY_ISSUE_TEMPLATE.md (1 hunks)
  • .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md (1 hunks)
  • .github/workflows/docs-check.yml (0 hunks)
  • CHANGELOG.md (16 hunks)
  • docs/Makefile (0 hunks)
  • docs/dictionary.txt (0 hunks)
  • docs/docs/developers/deep_dives/chain_follower.md (3 hunks)
  • docs/docs/developers/guides/network_upgrades.md (5 hunks)
  • docs/docs/users/getting_started/install.md (2 hunks)
  • docs/docs/users/guides/monitoring/health_checks.md (5 hunks)
  • docs/docs/users/guides/monitoring/metrics.md (1 hunks)
  • docs/docs/users/knowledge_base/docker_tips.md (1 hunks)
  • docs/docs/users/knowledge_base/network_upgrades_state_migrations.md (3 hunks)
  • docs/docs/users/reference/cli.md (13 hunks)
  • docs/docs/users/reference/env_variables.md (3 hunks)
  • docs/docs/users/reference/json_rpc.mdx (1 hunks)
  • docs/docs/users/reference/json_rpc_overview.md (2 hunks)
  • docs/package.json (0 hunks)
  • f3-sidecar/README.md (4 hunks)
  • scripts/tests/bootstrapper/README.md (1 hunks)
  • src/blocks/block.rs (2 hunks)
  • src/blocks/chain4u.rs (1 hunks)
  • src/chain/mod.rs (2 hunks)
  • src/chain/snapshot_format.rs (1 hunks)
  • src/chain/store/chain_store.rs (4 hunks)
  • src/chain_sync/consensus.rs (1 hunks)
  • src/cid_collections/hash_map.rs (2 hunks)
  • src/cid_collections/mod.rs (1 hunks)
  • src/cli/humantoken.rs (1 hunks)
  • src/cli/subcommands/chain_cmd.rs (1 hunks)
  • src/cli/subcommands/f3_cmd.rs (6 hunks)
  • src/cli/subcommands/mod.rs (1 hunks)
  • src/db/car/any.rs (1 hunks)
  • src/db/car/forest.rs (5 hunks)
  • src/db/car/mod.rs (1 hunks)
  • src/db/car/plain.rs (5 hunks)
  • src/eth/eip_1559_transaction.rs (2 hunks)
  • src/eth/eip_155_transaction.rs (4 hunks)
  • src/eth/homestead_transaction.rs (1 hunks)
  • src/f3/mod.rs (1 hunks)
  • src/health/endpoints.rs (1 hunks)
  • src/ipld/util.rs (1 hunks)
  • src/libp2p/chain_exchange/message.rs (2 hunks)
  • src/libp2p/discovery.rs (1 hunks)
  • src/libp2p_bitswap/message.rs (1 hunks)
  • src/lotus_json/ipld.rs (1 hunks)
  • src/lotus_json/mod.rs (8 hunks)
  • src/message/signed_message.rs (1 hunks)
  • src/rpc/channel.rs (1 hunks)
  • src/rpc/methods/state.rs (4 hunks)
  • src/rpc/reflect/mod.rs (1 hunks)
  • src/rpc/types/mod.rs (1 hunks)
  • src/shim/actors/builtin/miner/mod.rs (2 hunks)
  • src/shim/crypto.rs (2 hunks)
  • src/shim/machine/manifest.rs (1 hunks)
  • src/shim/version.rs (1 hunks)
  • src/tool/subcommands/api_cmd.rs (2 hunks)
  • src/tool/subcommands/api_cmd/api_compare_tests.rs (1 hunks)
  • src/tool/subcommands/api_cmd/stateful_tests.rs (1 hunks)
  • src/tool/subcommands/archive_cmd.rs (2 hunks)
  • src/utils/db/car_stream.rs (6 hunks)
  • src/utils/io/progress_log.rs (1 hunks)
  • src/utils/io/writer_checksum.rs (1 hunks)
  • src/utils/misc/env.rs (1 hunks)
  • src/utils/multihash.rs (2 hunks)
  • src/utils/proofs_api/paramfetch.rs (4 hunks)
💤 Files with no reviewable changes (4)
  • .github/workflows/docs-check.yml
  • docs/Makefile
  • docs/package.json
  • docs/dictionary.txt
✅ Files skipped from review due to trivial changes (26)
  • src/rpc/channel.rs
  • src/cli/humantoken.rs
  • src/db/car/any.rs
  • src/cid_collections/hash_map.rs
  • src/libp2p/discovery.rs
  • src/rpc/reflect/mod.rs
  • src/eth/eip_1559_transaction.rs
  • src/utils/io/progress_log.rs
  • src/lotus_json/ipld.rs
  • src/tool/subcommands/api_cmd.rs
  • src/db/car/plain.rs
  • src/libp2p/chain_exchange/message.rs
  • src/utils/misc/env.rs
  • src/f3/mod.rs
  • src/chain/store/chain_store.rs
  • src/chain/mod.rs
  • src/utils/io/writer_checksum.rs
  • docs/docs/users/getting_started/install.md
  • src/shim/crypto.rs
  • src/eth/eip_155_transaction.rs
  • docs/docs/users/reference/json_rpc.mdx
  • src/libp2p_bitswap/message.rs
  • src/health/endpoints.rs
  • src/eth/homestead_transaction.rs
  • src/chain/snapshot_format.rs
  • src/utils/db/car_stream.rs
🚧 Files skipped from review as they are similar to previous changes (9)
  • src/tool/subcommands/api_cmd/api_compare_tests.rs
  • src/shim/actors/builtin/miner/mod.rs
  • src/db/car/forest.rs
  • f3-sidecar/README.md
  • src/ipld/util.rs
  • docs/docs/users/reference/cli.md
  • .config/forest.dic
  • src/rpc/methods/state.rs
  • CHANGELOG.md
🧰 Additional context used
🧠 Learnings (13)
📚 Learning: 2025-10-17T14:24:47.046Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 6167
File: src/tool/subcommands/state_compute_cmd.rs:89-91
Timestamp: 2025-10-17T14:24:47.046Z
Learning: In `src/tool/subcommands/state_compute_cmd.rs`, when using `ReadOpsTrackingStore` to generate minimal snapshots, `HEAD_KEY` should be written to `db.tracker` (not `db` itself) before calling `export_forest_car()`, because the export reads from the tracker MemoryDB which accumulates only the accessed data during computation.

Applied to files:

  • src/db/car/mod.rs
📚 Learning: 2025-08-11T14:00:47.060Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5886
File: src/daemon/db_util.rs:236-259
Timestamp: 2025-08-11T14:00:47.060Z
Learning: In Forest's snapshot import (`src/daemon/db_util.rs`), when F3 CID is present in snapshot metadata but the actual F3 data is missing, this should cause a hard error as it indicates snapshot corruption. Only errors during the F3 import process itself (after data is successfully retrieved) should be non-fatal and logged.

Applied to files:

  • src/db/car/mod.rs
  • src/tool/subcommands/archive_cmd.rs
  • docs/docs/users/knowledge_base/network_upgrades_state_migrations.md
📚 Learning: 2025-08-25T13:35:24.230Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5969
File: src/tool/subcommands/snapshot_cmd.rs:412-412
Timestamp: 2025-08-25T13:35:24.230Z
Learning: In src/tool/subcommands/snapshot_cmd.rs, the +1 in `last_epoch = ts.epoch() - epochs as i64 + 1` fixes an off-by-1 bug where specifying --check-stateroots=N would validate N+1 epochs instead of N epochs, causing out-of-bounds errors when the snapshot contains only N recent state roots.

Applied to files:

  • src/db/car/mod.rs
📚 Learning: 2025-08-08T12:10:45.218Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 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:

  • docs/docs/users/reference/json_rpc_overview.md
📚 Learning: 2025-10-17T09:36:15.757Z
Learnt from: elmattic
Repo: ChainSafe/forest PR: 6128
File: src/ipld/util.rs:23-30
Timestamp: 2025-10-17T09:36:15.757Z
Learning: Always run `cargo check` or `cargo build` to verify actual compilation errors in the Forest codebase before flagging them as issues. Do not rely solely on documentation or assumptions about trait implementations.

Applied to files:

  • docs/docs/users/reference/json_rpc_overview.md
  • docs/docs/developers/guides/network_upgrades.md
📚 Learning: 2025-08-18T03:09:47.932Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5944
File: src/chain/store/index.rs:0-0
Timestamp: 2025-08-18T03:09:47.932Z
Learning: In Forest's tipset_by_height caching implementation, hanabi1224 prefers performance-conscious solutions that leverage finality guarantees rather than expensive chain walking for fork detection. The approach of constraining cache lookups to finalized epochs (using CHECKPOINT_INTERVAL >= CHAIN_FINALITY) provides fork safety without the performance cost of ancestry verification.

Applied to files:

  • docs/docs/users/reference/json_rpc_overview.md
  • docs/docs/developers/deep_dives/chain_follower.md
📚 Learning: 2025-08-28T12:52:46.927Z
Learnt from: LesnyRumcajs
Repo: ChainSafe/forest PR: 6011
File: src/cli/main.rs:18-25
Timestamp: 2025-08-28T12:52:46.927Z
Learning: In Forest CLI (src/cli/main.rs), the early RPC network check before Cli::parse_from() does not block help/version commands because clap processes these internally before reaching the RPC call. LesnyRumcajs confirmed this implementation works correctly and that RPC call failures are acceptable in this context.

Applied to files:

  • docs/docs/users/reference/json_rpc_overview.md
📚 Learning: 2025-08-07T09:37:03.079Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5886
File: scripts/tests/calibnet_eth_mapping_check.sh:49-49
Timestamp: 2025-08-07T09:37:03.079Z
Learning: In Forest project scripts, `forest_wait_api` (called within `forest_init`) ensures basic RPC service readiness, while `forest_wait_for_healthcheck_ready` performs additional comprehensive checks including DB backfill completion. When using `--backfill-db` flag, basic RPC operations can proceed after `forest_init`, but operations requiring complete DB backfill should wait for `forest_wait_for_healthcheck_ready`.

Applied to files:

  • docs/docs/users/reference/json_rpc_overview.md
📚 Learning: 2025-08-18T12:25:29.183Z
Learnt from: akaladarshi
Repo: ChainSafe/forest PR: 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/mod.rs
📚 Learning: 2025-08-08T12:11:55.266Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5867
File: src/ipld/util.rs:461-487
Timestamp: 2025-08-08T12:11:55.266Z
Learning: Forest (src/ipld/util.rs, Rust): In UnorderedChainStream::poll_next, dropping `extract_sender` (when no more tipsets and the extract queue is empty) is the intended shutdown signal for workers. Any subsequent attempt to enqueue work after this drop is a logic error and should be treated as an error; do not change `send()` to ignore a missing sender.

Applied to files:

  • docs/docs/developers/deep_dives/chain_follower.md
📚 Learning: 2025-08-11T13:50:04.489Z
Learnt from: elmattic
Repo: ChainSafe/forest PR: 5836
File: src/tool/subcommands/api_cmd/api_run_tests.rs:211-268
Timestamp: 2025-08-11T13:50:04.489Z
Learning: In Filecoin WebSocket channels (used for methods like `Filecoin.ChainNotify`), the protocol only uses Text messages for communication. Non-Text WebSocket message types (Binary, Ping, Pong, etc.) can be safely ignored when processing Filecoin channel notifications.

Applied to files:

  • docs/docs/developers/guides/network_upgrades.md
📚 Learning: 2025-09-02T14:23:53.808Z
Learnt from: akaladarshi
Repo: ChainSafe/forest PR: 5923
File: src/tool/subcommands/api_cmd/test_snapshots.txt:206-252
Timestamp: 2025-09-02T14:23:53.808Z
Learning: In the Forest project, .rpcsnap.json.zst snapshot files listed in src/tool/subcommands/api_cmd/test_snapshots.txt are not stored in the repository itself but are downloaded from a DigitalOcean (DO) bucket when needed. The manifest file serves as an index/catalog of available snapshots.

Applied to files:

  • docs/docs/users/knowledge_base/network_upgrades_state_migrations.md
📚 Learning: 2025-08-25T14:17:09.129Z
Learnt from: hanabi1224
Repo: ChainSafe/forest PR: 5978
File: .github/workflows/unit-tests.yml:0-0
Timestamp: 2025-08-25T14:17:09.129Z
Learning: hanabi1224's download_file_with_cache function in src/utils/net/download_file.rs preserves URL path structure in local cache directories by using cache_dir.join(url.path().strip_prefix('/').unwrap_or_else(|| url.path())), so snapshots from https://forest-snapshots.fra1.cdn.digitaloceanspaces.com/rpc_test/ are cached locally at ~/.cache/forest/test/rpc-snapshots/rpc_test/ (including the rpc_test subdirectory from the URL path).

Applied to files:

  • docs/docs/users/knowledge_base/network_upgrades_state_migrations.md
🪛 LanguageTool
docs/docs/users/reference/env_variables.md

[style] ~36-~36: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... | Whether or not to start the F3 sidecar via FFI ...

(WHETHER)


[style] ~37-~37: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... | Whether or not to apply the F3 consensus to the node...

(WHETHER)

docs/docs/developers/deep_dives/chain_follower.md

[grammar] ~121-~121: Ensure spelling is correct
Context: ...re performed in parallel: 1. Parent Tipset State Execution: This is the most cri...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/docs/users/knowledge_base/docker_tips.md

[grammar] ~21-~21: Use a hyphen to join words.
Context: .../amd64` The images will work out-of-the box on both Intel processors and macOS w...

(QB_NEW_EN_HYPHEN)

docs/docs/users/knowledge_base/network_upgrades_state_migrations.md

[style] ~27-~27: Use ‘will’ instead of ‘going to’ if the following action is certain.
Context: ...fe/forest/discussions/4488) the mainnet is going to be upgraded to NV23 at the epoch `415...

(GOING_TO_WILL)

🪛 markdownlint-cli2 (0.18.1)
docs/docs/developers/guides/network_upgrades.md

40-40: Link text should be descriptive

(MD059, descriptive-link-text)

🔇 Additional comments (27)
src/db/car/mod.rs (1)

35-35: LGTM! Good documentation formatting.

Wrapping v2 in backticks correctly formats it as an inline code identifier, improving documentation clarity.

src/tool/subcommands/api_cmd/stateful_tests.rs (1)

46-46: LGTM! Inline code formatting applied correctly.

The backtick formatting around async follows Rust documentation best practices for keywords and aligns with the PR's approach of using inline code formatting rather than expanding the spellcheck dictionary.

src/blocks/chain4u.rs (1)

481-481: LGTM! Documentation formatting improvement.

Wrapping struct in backticks follows Rust documentation conventions and improves readability by visually distinguishing the keyword.

docs/docs/users/knowledge_base/docker_tips.md (1)

6-6: Formatting improvements look good.

The spacing adjustment in the heading (line 6) and wrapping code-like terms in backticks (lines 14, 22) improve clarity and consistency with the PR's documentation standardization goals. These changes correctly identify WSL2, M1, and M2 as technical identifiers that benefit from inline code formatting.

Also applies to: 14-14, 22-22

src/shim/version.rs (1)

42-42: LGTM! Documentation formatting improvement aligns with reviewer feedback.

Adding backticks around V0 and V1 in the doc comment follows Rust documentation best practices and directly addresses the reviewer concern about not adding code identifiers to the spellcheck dictionary. This approach prevents false positives while keeping the dictionary clean.

.github/ISSUE_TEMPLATE/6-network-upgrade.md (1)

8-10: Consistent backtick formatting for code-like identifiers.

Wrapping NVXX in backticks improves readability and aligns with markdown conventions for code-style identifiers. This formatting change is safe and adds clarity.

.github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md (1)

8-8: Verify template variable rendering with backtick syntax.

The change from {{ env.WORKFLOW_URL }} to {{ env.WORKFLOW_URL }} places backticks inside the template expression. This could affect how the workflow URL is rendered in the issue description—either backticks appear literally in the output or the template engine strips them. Confirm that the rendered issue displays correctly with the intended formatting.

src/lotus_json/mod.rs (1)

35-35: LGTM! Documentation formatting improvements.

The backtick additions around "struct" and "structs" consistently improve code documentation by clearly distinguishing technical terms from prose, aligning with Rust documentation best practices.

Also applies to: 57-57, 95-95, 98-99, 122-122, 137-137, 474-474, 483-483, 492-492

src/utils/proofs_api/paramfetch.rs (2)

4-4: LGTM! Documentation formatting improved.

Adding backticks around R2 in documentation comments improves clarity and follows markdown conventions for technical terms.

Also applies to: 37-37


193-193: LGTM! Documentation formatting improved.

The addition of backticks around R2 maintains consistency with the documentation improvements throughout this file.

docs/docs/users/guides/monitoring/metrics.md (1)

5-5: LGTM! Documentation formatting improvement.

Wrapping localhost in backticks follows markdown best practices for inline code formatting and improves documentation clarity.

src/cli/subcommands/chain_cmd.rs (1)

66-66: LGTM! Proper inline code formatting.

Wrapping CIDs in backticks is the correct approach for technical identifiers in documentation. This aligns with reviewer feedback about preferring formatting over dictionary additions.

src/shim/machine/manifest.rs (1)

22-22: LGTM! Consistent documentation formatting.

Properly formats the technical identifier CIDs using inline code style, maintaining consistency with other documentation changes in this PR.

src/chain_sync/consensus.rs (1)

7-7: LGTM! Proper keyword formatting.

Wrapping the async keyword in backticks is the correct documentation style for language keywords.

src/message/signed_message.rs (1)

59-59: LGTM! Proper technical term formatting.

Wrapping SECP in backticks correctly formats this cryptographic algorithm identifier using inline code style.

src/utils/multihash.rs (1)

5-5: LGTM! Consistent technical term formatting.

Wrapping hasher in backticks properly emphasizes this technical term. The same formatting is correctly applied at line 179.

docs/docs/users/knowledge_base/network_upgrades_state_migrations.md (1)

17-17: LGTM! Proper formatting of network version identifiers.

Wrapping network version identifiers (NV22, NV23) in backticks follows markdown best practices for code-like terms and improves documentation clarity.

Also applies to: 27-27, 46-46

src/rpc/types/mod.rs (1)

273-273: LGTM! Proper keyword formatting.

Wrapping the struct keyword in backticks follows the correct documentation style for language keywords, consistent with other documentation improvements in this PR.

src/cli/subcommands/mod.rs (1)

97-99: F3 subcommand docstring formatting looks consistent

Backticking F3 here matches the rest of the CLI and related docs; no further changes needed.

src/tool/subcommands/archive_cmd.rs (1)

101-105: F3 header CLI help text is clear and aligned with FRC-0108

The updated description and argument help for the standalone F3 snapshot look clear and consistent with other snapshot subcommands.

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

17-33: JSON-RPC overview wording and formatting are consistent

Using “GitHub” and backticking V0/V1 aligns this page with the rest of the docs and the Common Node API framing; no further edits needed here.

src/cli/subcommands/f3_cmd.rs (1)

147-151: F3 readiness error and status messages remain clear after formatting change

The updated bail message and progress-bar strings that now render F3 in backticks still read clearly and convey the sync state and epochs accurately; no behavior change here.

Also applies to: 184-197

docs/docs/developers/guides/network_upgrades.md (1)

16-16: LGTM! Inline code formatting improves readability.

The addition of backticks around code-like terms (NV23, NV24, CIDs, 2k, Forest Discussions) improves documentation consistency and readability.

Also applies to: 58-58, 64-64, 92-92, 121-121

src/blocks/block.rs (1)

11-11: LGTM! Documentation formatting is consistent.

The inline code formatting for SECP improves documentation clarity and aligns with the repository-wide formatting improvements in this PR.

Also applies to: 15-15, 45-45

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

35-44: LGTM! Consistent inline code formatting.

The backtick formatting around F3, FFI, f3, and config improves clarity and consistency with the rest of the documentation.

Also applies to: 57-61, 89-89

docs/docs/developers/deep_dives/chain_follower.md (1)

14-16: LGTM! Type and module name formatting enhances clarity.

The consistent use of backticks around type names (e.g., ChainStore, SyncStateMachine, FullTipset) and enum variants helps distinguish code entities from prose and improves documentation readability.

Also applies to: 82-86, 97-97, 104-104, 108-113, 121-121, 125-125, 128-128, 132-132, 138-138, 145-146

.config/spellcheck.toml (1)

9-9: LGTM! Spellcheck configuration enhancements look reasonable.

The updated tokenization characters and transform patterns appropriately handle template syntax, domain names, operators, network version tokens, and emoji sequences. These additions should reduce false positives while extending spellcheck coverage to the .github directory and other Markdown files throughout the repository.

Also applies to: 16-24, 27-53, 57-62

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