chore: repository hygiene, MSRV correction, and CI hardening - #317
Merged
Merged
Conversation
salazarsebas
force-pushed
the
chore/repo-hygiene-and-docs
branch
from
September 4, 2026 19:46
fb29fc1 to
c75ca54
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A batch of open-source readiness improvements, grouped into atomic commits for easier review:
require_authbefore mutation, no panics on caller-reachable conditions, standards layer over hand-rolled guards) and the required verification gate.cougr-site/,internal/,packages/tokens/,tools/preview-gen/,skills/, andscripts/, which weren't documented before.murdoku.ymlfrom the repo root (GitHub Actions only reads.github/workflows/, so it never ran), and a.gitignoreline that was a typo ofdocs/and matched nothing.rust-version(1.70.0 in some crates, 1.82.0 in others) hadn't matched reality for a while. Verified empirically with real toolchains: 1.79 fails (edition2024required), 1.85 fails (darling/serde_withneed 1.88), 1.88 builds the whole workspace cleanly. Correctedrust-versionin all 6 crates that declared it, updated the 10 example READMEs still citing 1.70, and added a dedicated MSRV job pinned to 1.88.0 incore.ymlso this can't silently drift again.wee_alloc: it was cougr-core's own direct dependency (not transitive), flagged unmaintained with known memory leaks (RUSTSEC-2022-0054), no safe upgrade available. Replaced withsoroban-sdk's ownallocfeature, a bump-pointer allocator purpose-built for Soroban's run-to-completion invocation model, which the SDK's own docs recommend over a custom allocator. Verified: full workspace test suite passes, andspawn_and_move's compiled WASM is 44 bytes smaller with no regression.-D warningswith a newer toolchain, found 12 pre-existingmanual_is_multiple_ofviolations insrc/zk/merkle/{tree,sparse}.rs, unrelated to this PR's diff but real and about to start failing once CI'sstablecatches up. Fixed alongside.skills/cougr-game-starterscaffolded projects by hand-writing a Cargo.toml and contract skeleton, duplicating what the CLI now does. Rewired it to invokecougr new <name> --template <template>, matching whatdocs/strategy/11-skills-strategy.mdalready called for once the CLI shipped.pr-check.yml, a path-filter-free workflow (fmt, no committed build artifacts, no conflict markers) so branch protection has something that reliably runs on every PR to require. Addedcargo-deny.yml(advisories, licenses, bans, sources), PR-triggered only. Three RUSTSEC advisories are transitive throughsoroban-sdk/soroban-env-host(paste, yankedspin,derivative) with no fix available on our side, documented indeny.tomlwith the reason instead of failing indefinitely.renovate.json(merged via chore: Configure Renovate聽#313) with dependency grouping (cargo/npm/github-actions) and weekly lockfile maintenance.Branch protection on
main, repo topics, and GitHub Discussions were also set up as part of this pass, directly via repo settings (not part of this diff).Verification
cargo fmt --check,cargo clippy --all-targets --all-features -- -D warnings, andcargo test --workspace --features testutilsall pass on the root workspace.fog_explorerclippy,hidden_handfmt) are pre-existing and outside this PR's diff;circuit_examples.yml, the only workflow covering those two, only runscargo test+stellar contract buildfor them (no fmt/clippy gate exists there today), and both of those pass.mdbook testandmdbook buildverified locally with the exact pinned versions CI uses (mdbook 0.4.43, mdbook-linkcheck 0.7.7), including the sync-then-diff checkcougr-site.ymlruns.node build.js --checkfor design tokens passes against the updateddocs/BRAND.md.generated_projects_pass_cargo_testtest (compiles all 4cougr newtemplates) passes.Known non-blocking gap
fog_explorerandhidden_hand(along withdice_duelandblind_auction) are only covered bycircuit_examples.yml's matrix job, which never runsfmt/clippyon them. Worth a follow-up to close that gap; not addressed here since it's a pre-existing hole in CI coverage rather than something this PR introduces.