Skip to content

refactor(shared,client): restore capability ownership and reuse - #802

Open
Oba-One wants to merge 4 commits into
feature/gardener-celo-walletsfrom
refactor/shared-capability-boundaries
Open

refactor(shared,client): restore capability ownership and reuse#802
Oba-One wants to merge 4 commits into
feature/gardener-celo-walletsfrom
refactor/shared-capability-boundaries

Conversation

@Oba-One

@Oba-One Oba-One commented Sep 6, 2026

Copy link
Copy Markdown
Member

Summary

  • Put account signing under auth and wizard navigation under store transitions. Feature hooks keep their own orchestration and dirty-state rules.
  • Reuse the existing connectivity hook and Treasury amount input. Queue-aware callers retain queue status; withdrawal limits and confirmation remain with their flows.
  • Strengthen the existing architecture contract, AGENTS.md, and review guidance, with tested dependency guards in the source-structure checker. Refresh the four existing seam fingerprints after verifying their recorded proofs.

Stacked on #799, targeting feature/gardener-celo-wallets. This PR contains the three cleanup commits and one generated-documentation refresh after the Celo checkpoint: 70 files, 787 additions and 399 deletions; production code is 85 lines smaller. It adds no UI components or dependencies and leaves sponsorship configuration unchanged.

Validation

  • Review and module-seams review of 15e7970b0..01d490903: no must-fix or should-fix findings.
  • Focused review proof: 289 Shared tests passed (4 skipped), 203 Client tests passed, and 199 validation-tool tests passed.
  • Source-structure, direct-seam integrity, guidance, design, vocabulary, and Storybook guards passed.
  • Authenticated Brave: wallet rendering, tab interaction, and empty Cookies state observed.
  • Live Treasury withdrawal UI proof: requires an account with an eligible deposit or cookie jar. Component tests cover precision, limits, disabled states, confirmation, and mutation payloads.
  • Generated documentation refreshed with bun run docs:generate; generator tests and documentation authority checks passed.
  • All 34 automated checks in the critical publication plan passed at c825265a9: format, lint, package typechecks/tests/builds, contract release verification, documentation, and architecture/design/guidance guards.
  • Manual browser-proof gate: the runner exits blocked because it cannot ingest authenticated Brave evidence. Draft publication used a one-time hook exception after all automated checks passed; live Treasury proof remains outstanding as noted above.
  • Current-head GitHub CI pending.

The source-structure guard retains seven existing baseline violations. Static dependency checks do not certify module depth or runtime behavior; those remain review responsibilities.

Refresh evidence left stale by the parent Celo changes after rerunning all 12 recorded proof files: 205 tests passed and 4 existing cases skipped. Preserve the registered boundaries and review dates.
@Oba-One Oba-One added automated/codex PR opened by Codex draft labels Sep 6, 2026
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
green-goods Building Building Preview Sep 6, 2026 8:22am UTC
green-goods-admin Building Building Preview Sep 6, 2026 8:22am UTC
green-goods-design Building Building Preview Sep 6, 2026 8:22am UTC
green-goods-docs Building Building Preview Sep 6, 2026 8:22am UTC
green-goods-qa Building Building Preview Sep 6, 2026 8:22am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 9de10237-682e-400a-a82c-1462ef7e7a97

📥 Commits

Reviewing files that changed from the base of the PR and between 15e7970 and c825265.

📒 Files selected for processing (70)
  • .claude/context/codebase-architecture.md
  • .claude/context/values.md
  • .claude/skills/review/SKILL.md
  • AGENTS.md
  • docs/docs/builders/agentic/mcp-guide.mdx
  • docs/docs/builders/agentic/task-routing.mdx
  • docs/docs/builders/packages/api-index.mdx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/client/src/views/Home/index.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/shared/src/__tests__/modules/profile-avatar.test.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/shared/src/hooks/admin-ui/hypercerts/index.ts
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/admin-ui/hypercerts/wizardTransitions.ts
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/i18n/en.json
  • packages/shared/src/i18n/es.json
  • packages/shared/src/i18n/pt.json
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/shared/src/modules/profile-avatar/index.ts
  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/modules/profile-avatar/signer.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/profile-avatar/index.ts
  • packages/shared/src/stores/transitions/create-assessment.ts
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • scripts/data/module-seam-registry.json
  • scripts/quality/check-source-structure.js
  • scripts/quality/check-source-structure.test.mjs
💤 Files with no reviewable changes (6)
  • packages/shared/src/modules/profile-avatar/signer.ts
  • packages/shared/src/tests/modules/profile-avatar.test.ts
  • packages/shared/src/modules/profile-avatar/index.ts
  • packages/shared/src/hooks/admin-ui/hypercerts/index.ts
  • packages/shared/src/hooks/admin-ui/hypercerts/wizardTransitions.ts
  • packages/shared/src/profile-avatar/index.ts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
🧰 Additional context used
📓 Path-based instructions (12)
Read it first, then the nearest package `AGENTS.md`.

📄 CodeRabbit inference engine (CLAUDE.md)

Files:

  • AGENTS.md
Add every new user-facing string to `src/i18n/en.json`, `src/i18n/es.json`, and `src/i18n/pt.json`.

📄 CodeRabbit inference engine (packages/shared/AGENTS.md)

Files:

  • packages/shared/src/i18n/es.json
  • packages/shared/src/i18n/en.json
  • packages/shared/src/i18n/pt.json
Use this guide when editing `packages/client/**`.

📄 CodeRabbit inference engine (packages/client/AGENTS.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/client/src/views/Home/index.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
Use this guide when editing `packages/shared/**`.

📄 CodeRabbit inference engine (packages/shared/AGENTS.md)

Files:

  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/shared/src/i18n/es.json
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • packages/shared/src/i18n/en.json
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/shared/src/i18n/pt.json
  • packages/shared/src/stores/transitions/create-assessment.ts
Use `bun run test`, never `bun test`

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
Add every new user-facing string to `en`, `es`, and `pt` language files

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/shared/src/i18n/es.json
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • packages/client/src/views/Home/index.tsx
  • packages/shared/src/i18n/en.json
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
  • packages/shared/src/i18n/pt.json
  • scripts/data/module-seam-registry.json
  • packages/shared/src/stores/transitions/create-assessment.ts
Keep `AGENTS.md`, `CLAUDE.md`, `.codex/**`, and `.claude/**` human-governed even when Copilot review runs automatically

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • .claude/context/values.md
  • AGENTS.md
  • .claude/skills/review/SKILL.md
  • .claude/context/codebase-architecture.md
Keep reusable hooks, providers, stores, modules, and shared UI primitives in `@green-goods/shared`

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/shared/src/stores/transitions/create-assessment.ts
Use `bun run test` for running tests

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
Default to single-chain behavior through `getDefaultChain()` or `DEFAULT_CHAIN_ID` Use `logger` from shared instead of `console.log` Use `bun run format:check && bun lint` for code quality checks

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • packages/client/src/views/Home/index.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
  • packages/shared/src/stores/transitions/create-assessment.ts
  • scripts/quality/check-source-structure.js
Use Remixicon (`Ri*Line`), never lucide for UI icons

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/client/src/views/Home/index.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
Use the `Address` type for Ethereum addresses instead of raw string types

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • packages/client/src/__tests__/views/HomeGardenWork.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/ToConfirmTab.tsx
  • packages/shared/src/modules/profile-avatar/publisher.ts
  • packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts
  • packages/client/src/__tests__/views/CookieJarTab.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/LiveTab.tsx
  • packages/client/src/__tests__/views/ENSSection.test.tsx
  • packages/client/src/views/Home/CommitmentsDrawer/OverTimeTab.tsx
  • packages/client/src/__tests__/views/WalletDrawer.test.tsx
  • packages/client/src/__tests__/views/Home.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx
  • packages/client/src/__tests__/components/ConvictionDrawer.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useWorkDetailController.test.tsx
  • packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts
  • packages/shared/src/hooks/client-ui/work/useWorkDetailController.ts
  • packages/client/src/__tests__/views/GardenPool.test.tsx
  • packages/shared/src/hooks/profile/useProfileAvatar.ts
  • packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx
  • packages/shared/src/modules/auth/account-message-signer.ts
  • packages/client/src/components/Dialogs/ConvictionDrawer.tsx
  • packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx
  • packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts
  • packages/shared/src/modules/profile-avatar/types.ts
  • packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts
  • packages/client/src/components/Communication/Offline/OfflineIndicator.tsx
  • packages/shared/src/stores/transitions/hypercert-wizard.ts
  • packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/CookieJarCard.tsx
  • packages/client/src/__tests__/views/ComposeCommitment.test.tsx
  • packages/client/src/views/Profile/ENSSection.tsx
  • packages/client/src/__tests__/views/ProofComposer.test.tsx
  • packages/client/src/__tests__/views/GardenCommitment.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts
  • packages/client/src/__tests__/components/OfflineIndicator.test.tsx
  • packages/client/src/__tests__/views/SendTab.test.tsx
  • packages/client/src/components/Dialogs/TreasuryDrawer/MyDepositRow.tsx
  • packages/shared/src/__tests__/modules/account-message-signer.test.ts
  • packages/client/src/views/Home/WalletDrawer/SendTab.tsx
  • packages/shared/src/hooks/app/useOffline.ts
  • packages/shared/src/__tests__/stores/wizard-transitions.test.ts
  • packages/client/src/__tests__/components/TreasuryAmounts.test.tsx
  • packages/shared/src/hooks/garden/useGardenJoinRequests.ts
  • packages/shared/src/stores/transitions/wizard-navigation.ts
  • packages/client/src/views/Home/index.tsx
  • packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts
  • packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx
  • packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts
  • packages/client/src/components/Dialogs/TreasuryDrawer/index.tsx
  • packages/shared/src/stores/transitions/create-assessment.ts
🔇 Additional comments (54)
packages/shared/src/stores/transitions/wizard-navigation.ts (1)

1-18: LGTM!

packages/shared/src/stores/transitions/create-assessment.ts (1)

2-2: LGTM!

Also applies to: 75-111

packages/shared/src/stores/transitions/hypercert-wizard.ts (1)

2-2: LGTM!

Also applies to: 125-139

packages/shared/src/hooks/admin-ui/hub/useCreateAssessmentController.ts (1)

28-28: LGTM!

packages/shared/src/hooks/admin-ui/hypercerts/useWizardData.ts (1)

29-29: LGTM!

packages/shared/src/__tests__/stores/wizard-transitions.test.ts (1)

1-2: LGTM!

Also applies to: 7-8, 97-103, 108-115, 121-122

.claude/context/codebase-architecture.md (1)

77-77: LGTM!

Also applies to: 79-83, 85-90, 92-100, 102-111

.claude/context/values.md (1)

32-35: LGTM!

.claude/skills/review/SKILL.md (1)

14-15: LGTM!

Also applies to: 18-20

docs/docs/builders/agentic/task-routing.mdx (1)

25-25: LGTM!

docs/docs/builders/packages/api-index.mdx (1)

21-21: LGTM!

Also applies to: 235-235, 419-419

AGENTS.md (1)

133-134: LGTM!

scripts/quality/check-source-structure.js (1)

5-6: LGTM!

Also applies to: 279-315, 317-335, 337-363, 476-479, 519-519, 712-712

scripts/quality/check-source-structure.test.mjs (1)

193-219: LGTM!

Also applies to: 221-232, 234-257

scripts/data/module-seam-registry.json (1)

21-21: LGTM!

Also applies to: 40-40, 61-61, 80-80

docs/docs/builders/agentic/mcp-guide.mdx (1)

13-13: LGTM!

packages/shared/src/modules/auth/account-message-signer.ts (1)

1-33: LGTM!

packages/shared/src/hooks/garden/useGardenJoinRequests.ts (1)

7-9: LGTM!

Also applies to: 79-79, 115-115

packages/shared/src/hooks/profile/useProfileAvatar.ts (1)

1-4: LGTM!

Also applies to: 19-23, 137-137, 147-147

packages/shared/src/__tests__/hooks/useGardenJoinRequests.test.tsx (1)

33-35: LGTM!

packages/shared/src/modules/profile-avatar/publisher.ts (1)

1-1: LGTM!

Also applies to: 23-23

packages/shared/src/modules/profile-avatar/types.ts (1)

1-1: LGTM!

Also applies to: 45-45

packages/shared/src/__tests__/modules/account-message-signer.test.ts (1)

1-67: LGTM!

packages/shared/src/hooks/app/useOffline.ts (1)

1-1: LGTM!

Also applies to: 9-9, 16-16

packages/shared/src/hooks/admin-ui/garden/useCreateGardenController.ts (1)

1-1: LGTM!

Also applies to: 8-8, 21-21

packages/shared/src/hooks/client-ui/commitment/useCommitmentComposerController.ts (1)

18-18: LGTM!

Also applies to: 50-50

packages/client/src/views/Home/WalletDrawer/CookieJarTab.tsx (1)

7-7: LGTM!

Also applies to: 51-51, 241-241

packages/client/src/__tests__/views/CookieJarTab.test.tsx (1)

63-63: LGTM!

Also applies to: 66-66

packages/client/src/__tests__/views/Home.test.tsx (1)

85-86: LGTM!

packages/shared/src/__tests__/hooks/client-ui/useCommitmentComposerController.test.tsx (1)

34-35: LGTM!

packages/client/src/__tests__/components/TreasuryAmounts.test.tsx (1)

1-199: LGTM!

packages/shared/src/i18n/en.json (1)

3072-3072: LGTM!

packages/shared/src/i18n/es.json (1)

3072-3072: 🎯 Functional Correctness

No placeholder change is required.

The key uses {amount} and {asset} in all three locale files.

packages/shared/src/i18n/pt.json (1)

3072-3072: LGTM!

packages/shared/src/hooks/client-ui/commitment/useGardenCommitmentController.ts (1)

20-20: LGTM!

Also applies to: 56-56

packages/client/src/views/Home/WalletDrawer/SendTab.tsx (1)

11-11: LGTM!

Also applies to: 49-49

packages/client/src/views/Home/index.tsx (1)

6-6: LGTM!

Also applies to: 96-96

packages/client/src/views/Profile/ENSSection.tsx (1)

3-3: LGTM!

Also applies to: 67-67

packages/client/src/__tests__/components/ConvictionDrawer.test.tsx (1)

24-24: LGTM!

Also applies to: 27-27

packages/client/src/__tests__/views/HomeGardenWork.test.tsx (1)

1-1: LGTM!

packages/client/src/__tests__/views/ProofComposer.test.tsx (1)

51-56: LGTM!

packages/client/src/__tests__/views/SendTab.test.tsx (1)

123-123: LGTM!

Also applies to: 126-126

packages/client/src/__tests__/views/WalletDrawer.test.tsx (1)

84-84: LGTM!

Also applies to: 87-87

packages/shared/src/__tests__/hooks/client-ui/useGardenCommitmentController.test.tsx (1)

105-105: LGTM!

Also applies to: 106-106

packages/shared/src/hooks/client-ui/commitment/useProofComposerController.ts (1)

21-21: LGTM!

Also applies to: 52-52

packages/shared/src/hooks/client-ui/pool/useGardenPoolController.ts (1)

6-6: LGTM!

Also applies to: 28-28

packages/client/src/__tests__/components/OfflineIndicator.test.tsx (1)

27-28: LGTM!

packages/client/src/__tests__/views/CommitmentsDrawer.test.tsx (1)

115-118: LGTM!

packages/client/src/__tests__/views/ComposeCommitment.test.tsx (1)

61-67: LGTM!

packages/client/src/__tests__/views/ENSSection.test.tsx (1)

36-37: LGTM!

packages/client/src/__tests__/views/GardenCommitment.test.tsx (1)

83-89: LGTM!

packages/client/src/__tests__/views/GardenPool.test.tsx (1)

211-214: LGTM!

packages/shared/src/__tests__/hooks/client-ui/useGardenPoolController.test.tsx (1)

25-26: LGTM!

packages/shared/src/__tests__/hooks/client-ui/useProofComposerController.test.tsx (1)

72-73: LGTM!


📝 Summary

Summary by CodeRabbit

  • New Features

    • Added shared wallet and passkey signing support for account-based actions.
    • Added improved treasury withdrawal amount entry with formatting, validation, limits, and clearer error feedback.
    • Added API documentation entries for wallet-related capabilities.
  • Bug Fixes

    • Improved online-status handling across wallet, commitment, treasury, and profile workflows.
    • Preserved appropriate disabling and offline warnings during connectivity changes.
    • Simplified withdrawal confirmation messages to clearly show the asset amount.
  • Tests

    • Expanded coverage for treasury withdrawals, wallet signing, online states, and wizard behavior.

Walkthrough

The PR centralizes online status, account signing, wizard transitions, treasury amount handling, and capability-boundary enforcement. It also updates architecture guidance, generated documentation, translations, tests, and seam fingerprints.

Changes

Shared capability consolidation

Layer / File(s) Summary
Capability ownership and boundary enforcement
.claude/context/*, .claude/skills/review/SKILL.md, AGENTS.md, scripts/quality/*, scripts/data/module-seam-registry.json, docs/docs/builders/*
Adds reuse and capability-ownership guidance. The source-structure checker validates protected dependency directions and resolves package exports. Related tests, fingerprints, and generated documentation are updated.
Shared online-status migration
packages/shared/src/hooks/*, packages/client/src/components/*, packages/client/src/views/*, packages/*/src/__tests__/*
Consumers and test mocks switch from useOffline to the boolean-returning useOnlineStatus hook.
Treasury amount input and withdrawal validation
packages/client/src/components/Dialogs/TreasuryDrawer/*, packages/client/src/__tests__/components/TreasuryAmounts.test.tsx, packages/shared/src/i18n/*
Treasury inputs use shared formatting and parsing controls. Tests cover validation, limits, confirmation, connectivity, pending state, and paused jars.
Account-owned message signing
packages/shared/src/modules/auth/*, packages/shared/src/modules/profile-avatar/*, packages/shared/src/profile-avatar/*, packages/shared/src/hooks/{garden,profile}/*
Adds shared account signing and factory-argument helpers. Profile-avatar and garden consumers use them, and the old profile-avatar signer exports are removed.
Store-owned wizard transitions
packages/shared/src/stores/transitions/*, packages/shared/src/hooks/admin-ui/*, packages/shared/src/__tests__/stores/*
Moves wizard navigation and dirty-state selectors into store transition modules and updates consumers, exports, and tests.

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: ⚪ Minimal · up to c8252

This refactor centralizes shared signing, navigation, connectivity, and treasury input behavior while retaining the tested flow contracts. No merge-blocking risk remains.

Poem

A rabbit checks the hooks in line,
And moves the signers to their shrine.
The wizard steps now know their place,
Treasury fields gain guarded grace.
Boundaries hold, while tests keep pace.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.81% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 27 functions across 50 files. (14 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main changes: restoring capability ownership and reuse across shared and client code.
Description check ✅ Passed The description includes a clear summary and detailed validation results. It also identifies outstanding live Treasury, browser-proof, and GitHub CI checks. No Linear reference is required because no …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 14.81% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 27 functions across 50 files. (14 skipped: 11 unsupported, 3 over the file limit.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/shared-capability-boundaries

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.

@@ -1,3 +1,4 @@
vi.mock("@green-goods/shared/hooks/app/useOnlineStatus", () => ({ useOnlineStatus: () => true }));
@Oba-One
Oba-One marked this pull request as ready for review September 6, 2026 09:11
@Oba-One
Oba-One requested a review from a team as a code owner September 6, 2026 09:11
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-06T09:17:13.879904Z c825265 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated/codex PR opened by Codex draft

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant