Skip to content

Fix: 4 issues (#931, #932, #933, #934) - #962

Merged
Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
joel-metal:simple/931-932-933-934
Oct 20, 2026
Merged

Kingsman-99 merged 1 commit into
Stellar-split:mainfrom
joel-metal:simple/931-932-933-934

Conversation

@joel-metal

Copy link
Copy Markdown
Contributor

Closes #931
Closes #932
Closes #933
Closes #934

Issues

#931 Create user guide and onboarding documentation

Overview

Write comprehensive user guide with screenshots and video tutorials.

Requirements

  • Create getting started guide
  • Document main features
  • Add troubleshooting section
  • Include FAQ
  • Create video tutorials
  • Add visual screenshots

Acceptance Criteria

[ ] Guide covers all features
[ ] Easy to follow
[ ] Troubleshooting helpful
[ ] Videos engaging
[ ] FAQ comprehensive

Definition of Done

All CI checks must pass before the PR is reviewed.

#932 Implement breadcrumb navigation and contextual help

Overview

Add breadcrumbs and contextual help text throughout the app.

Requirements

  • Implement breadcrumb component
  • Add contextual help icons
  • Create help content
  • Implement tooltip system
  • Test accessibility
  • Add help analytics

Acceptance Criteria

[ ] Breadcrumbs show context
[ ] Help content helpful
[ ] Tooltips display correctly
[ ] Help analytics tracked
[ ] Accessible to screen readers

Definition of Done

All CI checks must pass before the PR is reviewed.

#933 Add error tracking and crash reporting (Sentry, LogRocket, etc)

Overview

Implement real-time error tracking and crash reporting.

Requirements

  • Choose error tracking service
  • Implement SDK integration
  • Configure error grouping
  • Add custom context
  • Implement sourcemaps
  • Setup alerts for critical errors

Acceptance Criteria

[ ] Errors captured automatically
[ ] Grouping works correctly
[ ] Sourcemaps available
[ ] Alerts sent timely
[ ] Privacy respected

Definition of Done

All CI checks must pass before the PR is reviewed.

#934 Implement feature flags for gradual rollout

Overview

Use feature flags to control feature rollout and testing.

Requirements

  • Choose feature flag service
  • Implement flag evaluation
  • Add UI for flag control
  • Implement analytics
  • Support A/B testing
  • Document flag management

Acceptance Criteria

[ ] Flags work correctly
[ ] Flags can be toggled
[ ] No performance impact
[ ] Analytics tracked
[ ] Gradual rollout possible

Definition of Done

All CI checks must pass before the PR is reviewed.

Summary

Sentry and feature flag SDKs must remain optional: guard all imports behind env checks so CI without secrets still passes. Ensure all new components have accessible names and keyboard support to satisfy the a11y gate. Run lint, typecheck, unit tests, and Playwright a11y tests before opening the PR.

Changes

  • (1) Create the user guide documentation set under docs/user-guide/: getting-started.md, features.md, troubleshooting.md, and faq.md. Cover wallet connection, invoice creation, splitting, payments, subscriptions, groups, recipients, and analytics. Reference screenshots stored in public/docs/screenshots/ and video tutorials in public/docs/videos/ (create placeholder directories with README notes if assets are not yet recorded). Link the guide from the app footer and from the onboarding flow so users can find it.; (2) Extend docs/ACCESSIBILITY.md with a section documenting the breadcrumb and HelpTooltip accessibility contract (aria-describedby, keyboard support, aria-current) and add the new components to the audit scope notes so the a11y gate covers them. (docs/ACCESSIBILITY.md)
  • Add a link to the new user guide (docs/user-guide/getting-started.md) in the onboarding flow's welcome step and final step, and add a 'View full guide' link in the checklist footer. Ensure the link opens in a new tab with rel="noopener noreferrer" and an accessible label. (src/components/OnboardingFlow.tsx)
  • Add a 'Help & User Guide' link to the site footer in the root layout, pointing to /docs/user-guide (or the hosted guide URL). Keep it accessible and consistent with existing footer styling. (src/app/layout.tsx)
  • Refactor Breadcrumb.tsx into a reusable contextual breadcrumb: derive the trail from usePathname() when no items prop is supplied, render a proper with
      , mark the last item with aria-current="page", and avoid duplicate Home entries. Export a helper to build trails from route segments so pages can override labels. (src/components/Breadcrumb.tsx)
    1. Create a HelpTooltip component (src/components/HelpTooltip.tsx) that renders a focusable help icon button with aria-describedby pointing at a tooltip element, supports keyboard focus/escape, and emits a help_opened analytics event with the help key. Also create src/lib/helpContent.ts exporting a registry of help entries keyed by id with title/body text used by the tooltip and contextual help. (src/components/HelpTooltip.tsx)
    2. Mount the Breadcrumb component in the Navbar (below the header) so every non-home route shows a contextual trail, and add a HelpTooltip next to the shortcuts button linking to the user guide. Ensure the breadcrumb is hidden on the home route and that the help icon has an accessible name. (src/components/Navbar.tsx)
    3. Create src/lib/analytics.ts with a small typed event helper (trackEvent(name, props)) that no-ops when analytics is unavailable, plus specific helpers trackHelpOpened(helpKey) and trackFeatureFlagExposure(flagKey, variant). This backs both the help analytics requirement and feature flag exposure analytics. (src/lib/analytics.ts)
    4. Harden Sentry initialization in instrumentation.ts: read DSN/org/project from env, set environment and release tags, configure beforeSend to scrub PII (emails, wallet addresses, cookies), and enable error grouping defaults. Keep the existing no-DSN no-op behavior. (instrumentation.ts)
    5. Update instrumentation-client.ts to add Sentry browser tracing, replay-on-error sampling, beforeSend PII scrubbing, and a setUser helper that only sends a hashed wallet identifier. Ensure onRouterTransitionStart remains exported. (instrumentation-client.ts)
    6. Configure Sentry sourcemap upload in next.config.js: enable hideSourceMaps, widenClientFileUpload, set org/project/authToken from env, and disable plugins when NEXT_PUBLIC_SENTRY_DSN is absent. Add tunnelRoute if needed for ad-blocker resilience. (next.config.js)
    7. Update ErrorBoundary.tsx to attach custom context before captureException: set Sentry tags for error kind (from classifyError), route pathname, and a hashed wallet address, and set a fingerprint based on error kind so grouping is stable. Keep the dynamic import fallback. (src/components/ErrorBoundary.tsx)
    8. Update src/app/error.tsx to report the error to Sentry with the digest as a tag and route context, in addition to the existing console.error, so route-level errors are captured. (src/app/error.tsx)
    9. Add a Sentry alert configuration note and env var documentation to .env.example (SENTRY_ORG, SENTRY_PROJECT, SENTRY_AUTH_TOKEN, NEXT_PUBLIC_SENTRY_DSN) and document the alert rules for critical errors in docs/ACCESSIBILITY.md or a new docs/ERROR_TRACKING.md. (.env.example)
    10. Extend src/lib/config.ts with feature flag configuration: a FEATURE_FLAGS object read from NEXT_PUBLIC_FEATURE_FLAGS (JSON) with defaults, plus a helper isFlagEnabled(key, context) supporting boolean and percentage-based rollout using a stable hash of the user id. (src/lib/config.ts)
    11. Create src/contexts/FeatureFlagContext.tsx providing a FeatureFlagProvider that loads flags from config/remote source, exposes useFeatureFlag(key) and useFeatureFlags(), and emits trackFeatureFlagExposure on first evaluation per session. Wrap the app with the provider in layout.tsx. (src/contexts/FeatureFlagContext.tsx)
    12. Create an admin feature flag UI at src/app/admin/feature-flags/page.tsx that lists flags with toggles and rollout percentages, calls an API route to persist overrides, and is gated behind an admin flag. Include accessible labels and confirmation feedback. (src/app/admin/feature-flags/page.tsx)
    13. Add a feature flag API route at src/app/api/feature-flags/route.ts (GET returns evaluated flags for the current user, POST updates overrides for admins) using apiClient for CSRF-protected mutations. (src/app/api/feature-flags/route.ts)
    14. Document feature flag lifecycle, naming, rollout percentages, A/B testing, and cleanup in docs/FEATURE_FLAGS.md, and link it from the user guide and CONTRIBUTING.md. (docs/FEATURE_FLAGS.md)

Co-authored-by: Simple Agent <agent@simple.dev>
@vercel

vercel Bot commented Oct 19, 2026

Copy link
Copy Markdown

@joel-metal is attempting to deploy a commit to the kingsman-99's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Oct 19, 2026

Copy link
Copy Markdown

@joel-metal Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Kingsman-99
Kingsman-99 merged commit c6d3a89 into Stellar-split:main Oct 20, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants