Skip to content

Feature: Fixed several bugs with phase one#61

Merged
EinfachValle merged 7 commits into
developfrom
feature/phase-one
May 20, 2026
Merged

Feature: Fixed several bugs with phase one#61
EinfachValle merged 7 commits into
developfrom
feature/phase-one

Conversation

@EinfachValle
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bundles multiple “phase one” fixes and foundational features across the Recrest app, test suite, and Tauri backend—covering settings schema expansion, improved UX interactions (drawers/swipes/scroll restore), dev-mode stubbing, and new maintenance tooling (verify scripts, CI helpers).

Changes:

  • Adds new settings fields (Phase 0.1) and related behaviors (pinned repos persistence, UI scale hotkeys, privacy-gated favicon fetching, author dedupe via signature keys).
  • Introduces new UX flows and reliability fixes (inline PR drawer on repo detail, swipe navigation/drawer-dismiss gestures, scroll restoration, factory reset end-to-end).
  • Expands tooling and test coverage (new Vitest + Playwright specs, Rust tests for reset/registry, verify scripts, CI workflow/env seeding, visual-tester workflow).

Reviewed changes

Copilot reviewed 141 out of 143 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
yarn.lock Adds @use-gesture lock entries.
package.json Adds Rust check/test/clippy scripts and verify aggregations.
.husky/pre-commit Runs lint-staged plus full yarn verify pre-commit.
.env.example Documents/introduces DEV_PORT_WEB / DEV_PORT_TAURI.
docs/plans/bugs.md Adds a phase-1 bug tracking document.
docs/plans/04-activity-stats-and-settings.md Renumbers/updates plan references and prerequisites.
docs/plans/03-repo-and-git-actions.md Renumbers/updates plan references and prerequisites.
tests/playwright.config.ts Loads repo-root .env to align Playwright app URL/port.
tests/src/setup/global.setup.ts Reads ports from env or repo-root .env for test URLs/logging.
tests/src/helpers/tauri-stub.ts Extends Tauri event stubs to support unlisten/unregister cleanup.
tests/src/helpers/seed/settings.ts Adds Phase 0.1 additive default settings to test seed.
tests/src/helpers/seed/repos.ts Sanitizes seed email away from a real domain.
tests/src/e2e/app/17-repo-detail-pr-drawer.spec.ts New E2E coverage: repo detail PR row opens inline drawer without navigation.
tests/src/e2e/app/18-swipe-gestures.spec.ts New E2E coverage: swipe-to-dismiss drawer and swipe page navigation.
shared/src/types/settings.ts Extends AppSettings with Phase 0.1 fields and supporting types.
shared/src/types/repo.ts Adds optional signatureKey to RecentCommit.
shared/src/types/pr.ts Adds optional assignees / requestedReviewers fields.
shared/src/constants/events.ts Adds SETTINGS_RESET_EVENT and exposes via EventChannel.
shared/src/constants/commands.ts Adds FACTORY_RESET Tauri command constant.
app/package.json Adds @use-gesture/react dependency.
app/vite.config.ts Loads repo-root .env for port overrides and validates tauri devUrl vs env.
app/src/styles/tokens.scss Adds UI-scale preference variable and destructive button tone; fixes layout scaling math.
app/src/styles/page-anim.scss Tweaks page animation opacity/offset/duration for legibility and screenshot stability.
app/src/store/slices/uiSlice.ts Introduces persisted pin toggle thunk and hydrates pins from settings updates.
app/src/store/slices/settingsSlice.ts Adds Phase 0.1 defaults to settings initial state.
app/src/store/resetListener.ts New: clears recrest:* storage and registers settings://reset listener to reload.
app/src/store/resetListener.test.ts New: tests storage wipe + reload behavior via mocked listener.
app/src/store/index.ts Wires settings-reset listener at store module load; syncs Phase 0.1 preloaded defaults.
app/src/pages/RepoDetailPage.tsx PR rows now open an inline drawer panel instead of navigating away.
app/src/pages/DashboardPage.tsx Adds “Open in IDE” quick action; adjusts skeleton layout and CI indicator logic.
app/src/pages/ActivityPage.tsx Adds scroll restoration and author dedupe/alias-aware filtering + options.
app/src/pages/tests/RepoDetailPage.test.tsx New unit test verifying inline PR drawer behavior without navigation.
app/src/main.tsx Bootstraps dev-only Tauri stub + seed groups; mounts ConfirmProvider at root.
app/src/lib/tauri/services/autostartService.ts Makes enable/disable throw so UI can surface failures; best-effort state read.
app/src/lib/repoEnrich.ts Uses explicit group display names when available; threads groups into enrich calls.
app/src/lib/initials.ts Updates example name in comment.
app/src/lib/dev/seed/settings.ts New: app-workspace seed settings mirrored from tests.
app/src/lib/dev/seed/prs.ts New: app-workspace seed PR data mirrored from tests.
app/src/lib/dev/seed/providers.ts New: app-workspace seed provider connections mirrored from tests.
app/src/lib/dev/seed/index.ts New: central seed bundle for dev Tauri stub.
app/src/lib/charts/smoothLine.ts New monotone-cubic interpolation helper for chart smoothing.
app/src/lib/charts/smoothLine.test.ts New unit tests for smoothing path edge cases and overshoot constraints.
app/src/lib/authorNormalize.ts New signature-key normalization logic for author dedupe.
app/src/lib/authorNormalize.test.ts New unit tests for normalization + signature key behavior.
app/src/lib/activityStats.ts Moves palette to shared helper; adds signatureKey + alias-aware leaderboard aggregation.
app/src/i18n/locales/en/settings.json Adds autostart error + developer factory reset strings.
app/src/i18n/locales/en/onboarding.json Adds “Continue” and Done-step “Back” strings.
app/src/i18n/locales/en/common.json Adds reload toast strings, repo list view/filter/sort labels, and other UI strings.
app/src/i18n/locales/de/settings.json Adds autostart error + developer factory reset strings (German).
app/src/i18n/locales/de/onboarding.json Adds “Continue” and Done-step “Back” strings (German).
app/src/i18n/locales/de/common.json Adds reload toast strings, repo list view/filter/sort labels, and other UI strings (German).
app/src/hooks/useTheme.ts Writes --ui-scale-pref from settings into the document root.
app/src/hooks/useTauri.ts Removes reactive start-minimized JS hook (boot-time only).
app/src/hooks/useScrollRestoration.ts New hook to persist/restore scroll position via sessionStorage.
app/src/hooks/useRepoFavicon.ts New privacy-gated favicon discovery + LRU cache.
app/src/hooks/usePageSwipe.ts New touch swipe navigation between top-level pages.
app/src/hooks/useGlobalShortcuts.ts Adds UI scale hotkeys (Cmd/Ctrl +/-/0) persisted via settings.
app/src/hooks/useEnrichedRepos.ts Threads repo groups into enrich pipeline.
app/src/hooks/useDrawerSwipe.ts New touch swipe-to-dismiss gesture for drawers.
app/src/components/organisms/settings/tabs/DeveloperTab/index.tsx Adds factory reset section wired through shared confirm dialog.
app/src/components/organisms/settings/tabs/DeveloperTab/DeveloperTab.test.tsx Extends tests to cover factory reset confirm + storage wipe + reload.
app/src/components/organisms/settings/tabs/DesktopSettings/index.tsx Makes autostart toggle reflect plugin state; surfaces failures via toast.
app/src/components/organisms/settings/_test-helpers.tsx Wraps settings tests in ConfirmProvider in addition to TooltipProvider.
app/src/components/organisms/repos/RepoRow/index.tsx Switches pin action to persisted pin thunk.
app/src/components/organisms/repos/RepoList/RepoList.test.tsx Tightens assertions around single-layout rendering and card-view mode.
app/src/components/organisms/onboarding/steps/InitialScanStep/index.tsx Replaces spinner UI with pulsing Search icon and adds test IDs.
app/src/components/organisms/onboarding/steps/DoneStep/index.tsx Adds Back button to final step.
app/src/components/organisms/onboarding/steps/DoneStep/DoneStep.test.tsx Updates tests for Back + CTA buttons.
app/src/components/organisms/onboarding/steps/DoneStep/DoneStep.stories.tsx Updates story args to include onBack.
app/src/components/organisms/onboarding/steps/ConnectProviderStep/index.tsx Adds provider brand icons and “Continue” behavior when already connected.
app/src/components/organisms/onboarding/steps/BasicsStep/index.tsx Widens selects and improves locale labels for DE/EN.
app/src/components/organisms/onboarding/OnboardingWizard/index.tsx Adds step history stack for consistent Back navigation across steps.
app/src/components/organisms/layout/Sidebar/Sidebar.test.tsx Adds test ensuring Settings entry is pinned in sidebar footer.
app/src/components/organisms/layout/Sidebar/index.tsx Removes unused imperative navigate usage for Settings entry.
app/src/components/organisms/layout/Header/index.tsx Adds refresh success/error toasts; adds repo-add scope toggle UI; responsive header tweaks.
app/src/components/organisms/layout/DetailPane/index.tsx Extracts section UI into reusable DetailSection.
app/src/components/organisms/layout/AppShell/index.tsx Registers global page swipe navigation hook.
app/src/components/organisms/activity/Timeline/index.tsx Adjusts filter chip styling and updates translation keys for check-fail chips.
app/src/components/organisms/activity/cards/PrVelocityCard/index.tsx Uses monotone cubic smoothing for velocity lines.
app/src/components/organisms/activity/cards/OpenPrsHero/index.tsx Simplifies open PRs hero display (removes segmented bar).
app/src/components/organisms/activity/cards/CiPassRateCard/index.tsx Uses monotone cubic smoothing and closes area fill to baseline.
app/src/components/organisms/activity/cards/CiHealthHero/index.tsx Replaces single-color ring with segmented donut + legend and new i18n keys.
app/src/components/molecules/RepoAvatar/index.tsx Adds favicon fallback via useRepoFavicon when no logo/brand match.
app/src/components/molecules/Drawer/index.tsx New shared drawer envelope with backdrop/ESC close/swipe-to-dismiss and optional tabs.
app/src/components/molecules/DetailSection/index.tsx New reusable collapsible detail section component.
app/src/components/molecules/compounds/Tooltip/index.tsx Wraps Radix primitives to satisfy Fast Refresh export rules.
app/src/components/molecules/compounds/Tabs/index.tsx Wraps Radix Tabs root to satisfy Fast Refresh export rules.
app/src/components/molecules/compounds/Select/index.tsx Wraps Radix Select primitives to satisfy Fast Refresh export rules.
app/src/components/molecules/compounds/DropdownMenu/index.tsx Wraps Radix dropdown primitives to satisfy Fast Refresh export rules.
app/src/components/molecules/compounds/Dialog/index.tsx Wraps Radix dialog primitives to satisfy Fast Refresh export rules.
app/src/components/molecules/compounds/AlertDialog/index.tsx Wraps Radix alert-dialog primitives to satisfy Fast Refresh export rules.
app/src/components/molecules/AuthorAvatar/index.tsx Skips Gravatar fetches for dev-seed domains; adds gradient direction variance.
app/src/components/molecules/AuthorAvatar/AuthorAvatar.test.tsx Updates fixtures and adds test for Gravatar suppression on seed emails.
app/src/components/molecules/AuthorAvatar/AuthorAvatar.stories.tsx Updates story args to new example name.
app/src/components/atoms/ConfirmDialog/useConfirm.ts New promise-based confirm API + context hook.
app/src/components/atoms/ConfirmDialog/index.tsx New provider implementing shared confirm dialog UI.
app/src-tauri/tauri.conf.json Bundles Linux desktop/launcher/icon files into deb + appimage.
app/src-tauri/src/providers/registry.rs Adds provider ID listing + registry reset; includes unit test.
app/src-tauri/src/providers/gitlab.rs Adds placeholder empty assignees/reviewers vectors.
app/src-tauri/src/providers/github.rs Maps assignees and requested reviewers into DTO.
app/src-tauri/src/providers/bitbucket.rs Adds placeholder empty assignees/reviewers vectors.
app/src-tauri/src/providers/api.rs Extends PullRequestDto with assignees/requested_reviewers (serde default).
app/src-tauri/src/platform/mod.rs New platform module root with Windows-gated submodule.
app/src-tauri/src/platform/windows/mod.rs New Windows platform module exports for snap-layout subclassing.
app/src-tauri/src/git/watcher.rs Adds unsubscribe_all to clear all watched repos for factory reset.
app/src-tauri/src/git/mod.rs Exposes new author_normalize module.
app/src-tauri/src/config/store.rs Adds settings reset-to-defaults + test helpers and unit tests.
app/src-tauri/src/commands/window.rs Adds caption button bounds IPC for Windows snap-layouts integration.
app/src-tauri/src/commands/settings.rs Adds factory_reset command + settings reset event emission.
app/src-tauri/src/commands/repos.rs Adds signature_key field to recent commit DTOs using backend normalization.
app/src-tauri/src/commands/notifications.rs Uses notify-rust on Linux to improve icon display; keeps plugin path elsewhere.
app/src-tauri/resources/recrest.desktop New Linux desktop entry for launcher + scheme handling.
app/src-tauri/resources/recrest-launcher.sh New Linux launcher wrapper selecting Wayland/X11 backend.
app/src-tauri/Cargo.toml Adds deunicode, switches Windows dependency to windows, adds Linux notify-rust.
.github/workflows/visual-tester.yml New cross-OS Playwright run uploading screenshots and reports.
.github/workflows/ci.yml Uses shared seed-env action and updates workflow name.
.github/workflows/deploy-landingpage.yml Updates workflow name.
.github/workflows/release-tauri.yml Updates workflow name.
.github/workflows/release-tauri-beta.yml Updates workflow name.
.github/workflows/release-please.yml Updates workflow name.
.github/actions/seed-env/action.yml New composite action to write deterministic repo-root .env in CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/src/hooks/useScrollRestoration.ts
Comment thread app/src/store/slices/uiSlice.ts Outdated
Comment thread app/src/components/atoms/ConfirmDialog/index.tsx
Comment thread app/src/i18n/locales/de/common.json
@EinfachValle EinfachValle merged commit aa1d98d into develop May 20, 2026
13 of 14 checks passed
@EinfachValle EinfachValle deleted the feature/phase-one branch May 20, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants