Skip to content

chore(main): release 1.0.0 - #1

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--fund-my-cause
Open

github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--fund-my-cause

Conversation

@github-actions

Copy link
Copy Markdown

🤖 I have created a release beep boop

1.0.0 (2026-08-27)

Features

Bug Fixes

  • #746 memory leaks, #747 DB monitoring, #748 WCAG 2.2 AA audit, #749 focus trap (6a132cd)
  • [Performance] Profile and reduce frontend memory usage Fund-My-Cause/Fund-My-Cause#746,[Performance] Add database query performance monitoring Fund-My-Cause/Fund-My-Cause#747,[Accessibility] Complete a full WCAG 2.2 AA audit Fund-My-Cause/Fund-My-Cause#748,[Accessibility] Ensure full keyboard operability across modals Fund-My-Cause/Fund-My-Cause#749: memory leaks, DB monitoring, a11y audit, focus trap (4f17c2b)
  • Consolidate the duplicate locale / non-locale route trees in apps/interface Fund-My-Cause/Fund-My-Cause#830: consolidate duplicate locale/non-locale route trees (ac3f008)
  • Consolidate the duplicate locale / non-locale route trees in apps/interface Fund-My-Cause/Fund-My-Cause#830: consolidate duplicate locale/non-locale route trees (065ec90)
  • Consolidate three divergent Campaign/CampaignStatus type definitions into one shared source of truth Fund-My-Cause/Fund-My-Cause#838: consolidate Campaign/CampaignStatus into @fund-my-cause/types (f63088c)
  • Consolidate three divergent Campaign/CampaignStatus type definitions into one shared source of truth Fund-My-Cause/Fund-My-Cause#838: consolidate Campaign/CampaignStatus into @fund-my-cause/types (2e5e656), closes #838
  • [Frontend] Split components-lib bundle for tree-shaking Fund-My-Cause/Fund-My-Cause#876: Configure per-component entry points for tree-shaking (af827da)
  • [Smart Contracts] Replace remaining unwraps in contracts/registry and achievements Fund-My-Cause/Fund-My-Cause#933: replace unwrap() calls in registry and achievements contracts (0f832be), closes #933
  • all fix (1e4b1bf)
  • all fix (89483cd)
  • auth: enforce JWT_SECRET validation at startup (f9bebb4)
  • auth: enforce JWT_SECRET validation at startup (6d88f78)
  • cache-invalidation bug and cross-cutting perf/quality issues (P1) (29f99be)
  • cache-invalidation bug and cross-cutting perf/quality issues (P1) (c9035b9)
  • centralize campaign date formatting for consistency (860e738), closes #879
  • ci: adjust gitleaks scope, benchmark node version, and contract size limit (5567081)
  • ci: handle husky prepare in sub-workspaces and resilience in security audits (093e56e)
  • ci: improve contract upgrade and gas monitoring resilience (7584d42)
  • ci: pin serde_with to 3.12.0, unblocking the pinned 1.86.0 toolchain (6e9de9e)
  • ci: resolve workspace typecheck, build, and test failures (7a49b49)
  • ci: update chaos testing test runner and contract coverage flags (7062e8a)
  • ci: use npm run typecheck and fix contract coverage flags (9790a30)
  • contracts: make crowdfund, registry and achievements CI checks pass (54672ea)
  • crowdfund: replace panicking unwrap/expect with typed errors (#835) (95b9fd9)
  • crowdfund: replace panicking unwrap/expect with typed Result errors (#835) (4f22d58)
  • crowdfund: replace raw arithmetic with checked/saturating ops (#919) (3ab5b11)
  • crowdfund: replace raw arithmetic with checked/saturating ops, add overflow property tests Closes #919 ## What Full audit and fix of every arithmetic operation on contribution totals, fee calculations, and counters in contracts/crowdfund following the unwrap/panic remediation in #835. ### Risky operations fixed (lib.rs) - contribute(): gross_total += amount -> checked_add -> Overflow - contribute(): prev_fee + insurance_fee -> checked_add -> Overflow - contribute(): pool + insurance_fee -> checked_add -> Overflow - contribute(): pool - matched_amount -> checked_sub -> saturate at 0 - contribute(): config.max_match - total_matched -> checked_sub -> saturate at 0 - contribute(): total_matched + matched_amount -> checked_add -> Overflow - contribute(): count + 1 (u32 contributor cnt) -> checked_add -> Overflow - contribute_on_behalf(): count + 1 -> checked_add -> Overflow - withdraw(): payout * elapsed / duration -> checked_mul -> Overflow - claim_stream(): stream.claimed += claimable -> checked_add -> Overflow - claim_stream(): total - stream.claimed -> checked_sub -> Overflow - refund_single(): amount * unreleased / total -> checked_mul -> Overflow - vote_on_dispute(): votes_for/against += w -> checked_add -> Overflow - file_dispute(): dispute_id += 1 -> checked_add -> Overflow - approve_emergency_withdrawal(): count + 1 -> checked_add -> Overflow - emergency_pause/resume(): count + 1 -> checked_add -> Overflow - propose_platform_update(): nonce + 1 -> checked_add -> Overflow - get_stats(): total * 10_000 / target -> saturating_mul (capped at 10_000) - get_performance_metrics(): recent/earlier sums -> saturating_add - get_performance_metrics(): diff * 100 -> saturating_mul + i32 clamp - get_performance_metrics(): days * 86400 -> saturating_mul - claim_yield(): info.claimed + payout -> checked_add -> Overflow - claim_yield(): distributed + payout -> checked_add -> Overflow ### Risky operations fixed (helpers.rs) - apply_insurance_fee(): prev_fee + fee, pool + fee -> checked_add (saturate) - apply_matching(): total_matched + matched -> checked_add -> Overflow - apply_matching(): pool - matched -> checked_sub -> saturate at 0 ## Tests added contracts/crowdfund/tests/arithmetic_safety.rs — 18 proptest property tests: - §1 Insurance fee accumulation never panics - §2 Gross total overflow caught / boundary amounts safe - §3 Matching pool never underflows - §4 Contributor count monotone; repeat contributor count stable - §5 Vesting payout multiply no overflow - §6 Refund on cancelled campaign: amount*unreleased/total safe - §7 Dispute votes accumulate safely - §8 get_stats() progress_bps always in [0, 10_000] - §9 claim_stream() claimed never exceeds total - §10 get_performance_metrics() never panics; zero velocity safe - §11 claim_yield() never exceeds pool - §12 total_raised == sum of contributions (conservation); two-contribution overflow rejected (51de0df)
  • crowdfund: restore compiling build and wire refund module into contract impl (a13a402)
  • e2e: mock the actual Freighter postMessage protocol (d0278d6)
  • indexer: remove dead Postgres/GraphQL layer, keep in-memory EventStore live (5cd56c4)
  • indexer: remove dead Postgres/GraphQL layer, keep in-memory EventStore live (3700a16)
  • interface: fix SSR/hydration crashes blocking every page in dev (2edaf25)
  • interface: reinstate modal state as a single, live Context owner (c36d00b)
  • interface: stop ErrorNotification dismiss tests from timing out (#889) (6baff57)
  • Reconcile k8s/autoscaling manifests with live tuned values (b51cd3d)
  • Reconcile k8s/autoscaling manifests with live tuned values (27ca4da), closes #981
  • regenerate sdks/js package-lock.json to add missing transitive deps (bba30cc)
  • remove unused DateTime scalar and add K8s health probes (d09db3e)
  • remove unused DateTime scalar from GraphQL schema (#913) (57bb9a5)
  • Remove unused Terraform variables and modules (b483258)
  • Remove unused Terraform variables and modules (242af21), closes #980
  • replace any types in contract API layer with unknown (a33df51), closes #1418
  • replace mocked contract data with real Soroban RPC calls (69d3901)
  • resolve CI test failures and complete spec implementation (1c250c8)
  • resolve CI test failures and complete spec implementation (d81c2a3)
  • resolve issues #909 #910 #911 #912 - backend cleanup and improvements (cde816f)
  • resolve issues #966, #967, #968, #969 (a34d0ff)
  • resolve syntax error in errors.rs enum definition (69a3d42)
  • resolve test suite failures across indexer, graphql-api, fraud-detection and recommendations (b4da568)
  • resolve test suite failures across indexer, graphql-api, fraud-detection and recommendations (fad5b57)
  • sdk: correct build output path and wire it into CI (077790f)
  • Standardize null/undefined convention in TypeScript packages (8e5c747)
  • Standardize null/undefined convention in TypeScript packages (832ac76), closes #978
  • testing: resolve issues #950, #951, #952 — test cleanup, achievements edge cases, load test results (0f0938b)
  • types: add DOM lib and safe URL guard in validation (1dfa067)
  • types: remove duplicate validator declarations (fff8b49)
  • ui: perf and a11y fixes for #1101-#1104 (263bf42)
  • ui: perf and a11y fixes for #1101-#1104 (c3ef418)

Performance Improvements

  • add donation-mutation k6 load test and results doc (91c3de8)
  • add query result caching with stale-while-revalidate (7c0c10c)
  • add query result caching with stale-while-revalidate (d7f5325)
  • contract: hoist KEY_PLATFORM, KEY_GROSS_TOTAL, KEY_INSURANCE, MatchingConfig into upfront batch in contribute (858c33c)
  • contracts: optimize gas usage for contribute, refund, and contributor list (9360627)
  • contracts: reduce gas usage for contribute, refund, and contributor list (e89ec83)
  • frontend: add image CDN and responsive AVIF/WebP pipeline (43dca91)
  • frontend: implement SSR/ISR data seeding for campaign detail pages (232b552)

This PR was generated with Release Please. See documentation.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants