feat: scaffold FPSMaxxing Rust workspace with typed contracts, CI, and OSS docs#1
Merged
Conversation
…k passes on Windows
- Rebrand HTML implementation plan to FPSMaxxing (title, nav, hero eyebrow) - Add cargo deny check to PR template validation checklist - Pin third-party GitHub Actions to full commit SHAs - Replace em dashes with plain dashes in README and plan docs - Validate schemas against their declared metaschema in CI - Use schemars in tests to check generated schemas stay in sync - Make ChangeRequest.lease_seconds NonZeroU64 and test zero rejection
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.
Intent
Create a public OSS-ready GitHub repository named fpsmaxxing under undeemed. Scaffold a Rust 2024 monorepo for an AI- and Claude-driven, measurement-gated PC performance optimizer with strict privilege separation, typed capabilities, verification, rollback, and no real hardware writes in the scaffold. Use Apache-2.0, include organized implementation and architecture plans in canonical Markdown plus a static HTML visualization, contributor and security documentation, CI, natural GitHub discoverability without keyword stuffing, Cargo workspace plus xtask, one isolated .NET LibreHardwareMonitor bridge, and provider-first source and target artifacts.
What Changed
broker,cli,gateway,experiment-runner,watchdog),contractsandprovider-sdkcrates, a mock-provider sidecar that exercises the snapshot -> apply -> verify -> rollback lifecycle, and anxtaskcheck runner. The scaffold performs no real hardware writes..gitattributesforcing LF checkout so rustfmt passes on Windows) and the OSS project surface: Apache-2.0 license, README, CONTRIBUTING, SECURITY, GOVERNANCE, code of conduct, issue/PR templates, dependabot, ADRs, threat model, and the implementation plan in Markdown plus a static HTML visualization.Risk Assessment
✅ Low: Round-1 findings are all correctly addressed with tests that strengthen contract/schema sync, and the only residuals are a leftover branding string in a docs artifact and an unpinned CI helper version.
Testing
Ran the full workspace test suite (8 contracts schema-sync tests + mock provider apply/verify/rollback, all passing), exercised all seven scaffold binaries end-to-end capturing a CLI transcript that shows privilege-separated stubs and hardware writes disabled, verified the cargo xtask alias, validated the JSON schemas against their metaschema as CI does, and captured a full-page screenshot of the HTML implementation plan confirming it renders cleanly.
Evidence: CLI transcript: all scaffold binaries incl. mock provider lifecycle and cli doctor
$ cargo run -q -p fpsmaxxing-cli -- doctor FPSMaxxing scaffold diagnostics contracts: ready provider SDK: ready hardware writes: disabled status: architecture scaffold only $ cargo run -q -p fpsmaxxing-broker fpsmaxxing-broker: scaffold ready; no privileged actions are enabled $ cargo run -q -p fpsmaxxing-gateway fpsmaxxing-gateway: scaffold ready; MCP transport is not implemented yet $ cargo run -q -p fpsmaxxing-mock-provider mock # full snapshot→apply→verify→rollback lifecycle asserted in main/var/folders/dn/rb9kwwms3yq_c7ym5vgtp1740000gn/T/no-mistakes-evidence/01KXCWFER8ERGXNKB3G11ZZFEW/implementation-plan-full.png)Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
docs/IMPLEMENTATION_PLAN.html:6- HTML implementation plan is branded "Performance Gateway" and never mentions "FPSMaxxing" (0 occurrences), while docs/README.md presents it as the visual companion to the canonical FPSMaxxing plan. Appears to be a leftover working title; rebrand the HTML (title, hero, nav) to match the repository name or readers will not connect the two documents..github/pull_request_template.md:22- PR template validation checklist omitscargo deny check, but AGENTS.md documents it as part of the required validation suite and CI enforces it via cargo-deny-action. Add a- [ ] cargo deny checkline so contributors run the same gate locally..github/workflows/ci.yml:20- Third-party GitHub Actions are pinned by mutable tag (actions/checkout@v4, Swatinem/rust-cache@v2, EmbarkStudios/cargo-deny-action@v2). For a project with an explicit security posture, pin to full commit SHAs; dependabot's github-actions ecosystem already updates SHA pins automatically.README.md:5- README.md line 5 and docs/IMPLEMENTATION_PLAN.html (estimate-basis note) use em dashes, violating the author's standing rule to use plain dashes only. Replace with plain "-".crates/contracts/src/lib.rs:5- The schemars JsonSchema derive is currently unused: schemas/*.json are hand-written and the contracts tests hand-compare enum wire strings and field sets. Either use schemars in the tests to generate schemas from the types and diff against the checked-in files (stronger sync, less manual assertion code) or drop the schemars dependency until it is needed.crates/contracts/src/lib.rs:76- ChangeRequest.lease_seconds is a plain u64 that permits 0, but the design says every mutation carries a TTL lease. Consider NonZeroU64 (mirroring protocol_version's NonZeroU32) or document what a zero lease means before real providers consume the contract.AGENTS.md:35- AGENTS.md claims CI runs "JSON schema validation", but the CI schemas job only checks the files parse as JSON (json.loads); structural validation lives in the contracts tests. Either soften the wording or validate the schemas against the 2020-12 metaschema in the job.🔧 Fix: rebrand HTML plan, pin CI actions, enforce non-zero leases
2 infos still open:
docs/IMPLEMENTATION_PLAN.html:352- Rebrand from round 1 is incomplete: the repo-layout tree data in the page script still names the repository root "performance-gateway/" (the only remaining occurrence), so the rendered layout diagram shows the old working title instead of fpsmaxxing. Rename the tree root label to "fpsmaxxing/"..github/workflows/ci.yml:48-pipx run check-jsonschemaresolves the latest PyPI release at CI time, which is inconsistent with the commit's SHA-pinning of actions and lets an upstream release break or alter the schemas gate; pin the version (e.g.pipx run check-jsonschema==<version>) so dependabot-style bumps are deliberate.✅ **Test** - passed
✅ No issues found.
cargo test --workspace --locked(9 tests: 8 contracts schema-sync/wire-format tests incl.generated_schemas_match_checked_in_schemas, plus mock providerapply_verify_and_rollback)Ran every binary end-to-end and captured a CLI transcript:fpsmaxxing-cli+fpsmaxxing-cli doctor(reports hardware writes disabled),fpsmaxxing-broker,fpsmaxxing-gateway,fpsmaxxing-experiment-runner,fpsmaxxing-watchdog,fpsmaxxing-mock-provider(runs snapshot→apply→verify→rollback lifecycle)cargo xtaskandcargo xtask checkvia the.cargo/config.tomlaliasuvx check-jsonschema --check-metaschema schemas/*.json(mirrors the CI schemas job) → okRendereddocs/IMPLEMENTATION_PLAN.htmlin headless Chromium (CDP) and captured a full-page 1440px screenshot to verify the static visualization renders without layout breakage✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.