mirror of
https://github.com/selfxyz/self.git
synced 2026-04-27 03:01:15 -04:00
* Redo "Mobile SDK: move provingMachine from the app (#1052)" (#1084)"
This reverts commit 3397fcf43b. which reverted merging proving machine migration
* fix build
* lint fix
* fix imports
* pr suggestions
* make sure not to create multiple instances of stores
* WIP: don't expose useSelfAppStore directly in the public API
* Update packages/mobile-sdk-alpha/src/proving/provingMachine.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* dont call protocol store directly
* fix protocol store tests
* fix deeplinks test
* fix web build and exports
* test fixes
* keep reactivity
* remove file name
* WIP: expose stores through SelfClient only
* move protocolStore usage behind SelfClient
* fix deeplinks tests
* lint
* fix provingMachine tests
* remove provingStore from browser exports
* lint
* lint
* fix provingMachine.generatePayload tests
* fix provingMachine.startFetchingData tests
* fix more tests
* remove not exported
* fix more tests
* remove unused
* simplify getAltCSCA signature (fix build?)
* yarn lint
* final touches
---------
Co-authored-by: Leszek Stachowski <leszek.stachowski@self.xyz>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
5.0 KiB
5.0 KiB
AGENTS Instructions
Package Management
Package Manager: Yarn
Commands to use: yarn install, yarn add, yarn remove
Note: Do not use npm or pnpm.
This repository is a Yarn v4 monorepo with several workspaces:
app– mobile app (@selfxyz/mobile-app)circuits– zk-SNARK circuits (@selfxyz/circuits)common– shared utilities (@selfxyz/common)contracts– solidity contracts (@selfxyz/contracts)sdk/core– core TypeScript SDK (@selfxyz/core)sdk/qrcode– qrcode SDK (@selfxyz/qrcode)packages/mobile-sdk-alpha– alpha version of the SDK (@selfxyz/mobile-sdk-alpha)noir– noir circuits
Workflow
Setup
- Ensure Node.js 22.x is installed (see
.nvmrcfor exact version), then:nvm usecorepack enable && corepack prepare yarn@stable --activate- Verify:
node -v && yarn -v
- Run
yarn installonce before running any other commands. This installs root dependencies and sets up husky hooks.
Pre-PR Checklist
Before creating a PR, ensure:
Code Quality
yarn nice(or equivalent) passes in affected workspacesyarn typespasses across the repoyarn testpasses in affected packagesyarn buildsucceeds for all workspaces
AI Review Preparation
- Clear commit messages following conventional format
- PR description includes context for AI reviewers
- Complex changes have inline comments explaining intent
- Security-sensitive changes flagged for special review
Follow-up Planning
- Identify any known issues that need separate PRs
- Note any performance implications
- Document any breaking changes
Post-PR Validation
After PR creation:
Automated Checks
- CI pipeline passes all stages
- No new linting/formatting issues introduced
- Type checking passes in all affected workspaces
- Build artifacts generated successfully
Review Integration
- Address CodeRabbitAI feedback (or document why not)
- Resolve any security warnings
- Verify performance benchmarks still pass
- Confirm no sensitive data exposed in logs/comments
Commit Checks
Before committing, run the following commands:
# Fix linting and formatting issues automatically (for packages that support it)
yarn workspaces foreach -A -p -v --topological-dev --since=HEAD run nice --if-present
# Lint all packages in parallel
yarn lint
# Build all workspaces except `contracts`
yarn build
# Compile Solidity contracts (may occasionally throw a Hardhat config error)
yarn workspace @selfxyz/contracts build
# Run type-checking across the repo
yarn types
Workflow Commands
Pre-PR Validation
# Run all checks before PR - only on changed workspaces since main
# Format and lint changed workspaces (workspace-specific scripts first, then fallback to root)
yarn workspaces foreach -A -p -v --topological-dev --since=origin/main run nice --if-present
# Run global checks across all workspaces
yarn lint && yarn types && yarn build && yarn test
# Alternative: Run workspace-specific checks for changed workspaces only
# yarn workspaces foreach -A -p -v --topological-dev --since=origin/main run lint --if-present
# yarn workspaces foreach -A -p -v --topological-dev --since=origin/main run types --if-present
# yarn workspaces foreach -A -p -v --topological-dev --since=origin/main run build --if-present
# yarn workspaces foreach -A -p -v --topological-dev --since=origin/main run test --if-present
Post-PR Cleanup
# After addressing review feedback
yarn nice # Fix any formatting issues in affected workspaces
yarn test # Ensure tests still pass
yarn types # Verify type checking
Tests
- Run unit tests where available:
yarn workspace @selfxyz/common testyarn workspace @selfxyz/circuits test# may fail if OpenSSL algorithms are missingyarn workspace @selfxyz/mobile-app testyarn workspace @selfxyz/mobile-sdk-alpha test- For Noir circuits, run
nargo test -p <crate>in eachnoir/crates/*directory. - Tests for
@selfxyz/contractsare currently disabled in CI and may be skipped.
CI Caching
Use the shared composite actions in .github/actions when caching dependencies in GitHub workflows. They provide consistent cache paths and keys:
cache-yarnfor Yarn dependenciescache-bundlerfor Ruby gemscache-gradlefor Gradle wrappers and cachescache-podsfor CocoaPods
Each action accepts an optional cache-version input (often combined with GH_CACHE_VERSION and a tool-specific version). Avoid calling actions/cache directly so future workflows follow the same strategy.
Formatting
- Use Prettier configuration from
.prettierrcfiles. - Follow
.editorconfigfor line endings and indentation.
Commit Guidelines
- Write short, imperative commit messages (e.g.
Fix address validation). - The pull request body should summarize the changes and mention test results.
Scope
These instructions apply to the entire repository unless overridden by a nested AGENTS.md.