Skip to content

fix: resolve feature audit UX and test issues - #148

Open
krishagel wants to merge 1 commit into
mainfrom
codex/feature-audit-ux-fixes
Open

fix: resolve feature audit UX and test issues#148
krishagel wants to merge 1 commit into
mainfrom
codex/feature-audit-ux-fixes

Conversation

@krishagel

Copy link
Copy Markdown
Member

Summary

  • fix envelope-editor recipient removal/autosave ordering, teamless-user dashboard guidance, and theme hydration
  • harden local Compose health checks, configured Playwright URLs/workers, optional job-provider loading, and deterministic seed discovery
  • stabilize audited E2E workflows and refresh signed-PDF visual baselines
  • add the canonical 1,421-story feature audit workbook with status and error history

Verification

  • final full E2E run: 789 first-attempt passes, 4 retry passes, 26 intentional source skips, 0 unrecovered failures
  • focused post-fix stress for the final four flaky scenarios: 20/20 passes
  • repository lint-staged hooks: ESLint, Prettier, and commitlint passed
  • git diff --check passed
  • full build not run per repository instructions

Copilot AI review requested due to automatic review settings August 1, 2026 05:25
@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

Hey There! and thank you for opening this pull request! 📝👋🏼

We require pull request titles to follow the Conventional Commits Spec and it looks like your proposed title needs to be adjusted.

Details:

No release type found in pull request title "Fix audited UX workflows and stabilize E2E coverage". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Thank you for creating your first Pull Request and for being a part of the open signing revolution! 💚🚀

Feel free to hop into our community in Discord

@krishagel krishagel changed the title Fix audited UX workflows and stabilize E2E coverage fix: resolve feature audit UX and test issues Aug 1, 2026

Copilot AI left a comment

Copy link
Copy Markdown

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 addresses several audited UX workflow issues (envelope editor autosave/recipient removal ordering, teamless-user dashboard empty state guidance, theme hydration) while also stabilizing Playwright E2E coverage and local/dev operational behavior (deterministic seeding, optional job-provider loading, healthier Compose checks, and more robust selectors/waits in tests).

Changes:

  • Made Prisma seeding deterministic and limited execution to explicit *-seed.ts seed scripts.
  • Made jobs provider initialization lazy/optional and adjusted BullMQ board bootstrapping to avoid eager imports.
  • Stabilized E2E: improved Playwright config (workers/baseURL), reduced flakiness via stronger locators/retries/timeouts, and updated/added coverage for updated UX flows.

Reviewed changes

Copilot reviewed 30 out of 40 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/prisma/seed-database.ts Deterministic seed discovery by filtering/sorting seed scripts.
packages/lib/jobs/client/client.ts Lazy async provider initialization and async-safe API handler/triggering.
packages/lib/jobs/client/bullmq.ts Defers Bull Board-related imports to runtime to keep dependencies optional.
packages/lib/client-only/providers/envelope-editor-provider.tsx Refines envelope state updates and autosave flush ordering to prevent recipient/field race conditions.
packages/app-tests/playwright.config.ts Uses computed worker count and configurable baseURL for more stable test runs.
packages/app-tests/e2e/webhooks/webhooks-crud.spec.ts Stabilizes dropdown closing interaction via more robust locator.
packages/app-tests/e2e/user/password.spec.ts Switches to relative navigation for baseURL compatibility and consistency.
packages/app-tests/e2e/user/auth-flow.spec.ts Updates auth expectations for PSD flows + adds teamless-user dashboard empty state assertions.
packages/app-tests/e2e/templates/direct-templates.spec.ts Adds explicit waits for “Complete”/“Sign” steps to reduce flakiness.
packages/app-tests/e2e/templates/bulk-template-actions.spec.ts Adds preconditions and improves toast timing/awaiting for bulk flows.
packages/app-tests/e2e/templates-flow/template-autosave-fields-step.spec.ts Replaces brittle text selectors with data-attribute selectors.
packages/app-tests/e2e/teams/team-signature-settings.spec.ts Adds resilient “open signature dialog” helper with retry semantics.
packages/app-tests/e2e/scenarios/field-transparency-and-positioning.spec.ts Reworks scenario to seed deterministic data and rely less on existing DB state.
packages/app-tests/e2e/public-profiles/public-profiles.spec.ts Tightens role selectors and adds explicit waits for step transitions.
packages/app-tests/e2e/pdf-viewer/pdf-viewer.spec.ts Adds retry-based click/transition assertion for “View” action.
packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts Uses stable testid for date format trigger.
packages/app-tests/e2e/organisations/manage-organisation.spec.ts Seeds admin user explicitly for org management test.
packages/app-tests/e2e/fixtures/generic.ts Increases toast visibility timeout to reduce flaky timing.
packages/app-tests/e2e/fixtures/authentication.ts Adds retry logic for CSRF token fetch in API sign-in helper.
packages/app-tests/e2e/envelope-editor-v2/envelope-save-as-template.spec.ts Uses shared dropdown helper and makes template counter assertions more parallel-safe.
packages/app-tests/e2e/envelope-editor-v2/envelope-recipients.spec.ts Makes recipient UI assertions robust by matching rows by email rather than index.
packages/app-tests/e2e/envelope-editor-v2/envelope-fields.spec.ts Uses polling helper for Konva field counts to reduce race conditions.
packages/app-tests/e2e/documents/find-documents.spec.ts Stabilizes sender filter assertions and avoids brittle member indexing.
packages/app-tests/e2e/documents/bulk-document-actions.spec.ts Adds preconditions and improves toast timing/awaiting for bulk flows.
packages/app-tests/e2e/document-flow/stepper-component.spec.ts Adds retry-based logic around approval dialog appearance.
packages/app-tests/e2e/api/v1/document-sending.spec.ts Updates test expectation for sending documents with non-signature fields.
docker/development/compose.yml Improves Postgres healthcheck to include DB name and correct env escaping.
apps/remix/app/routes/_authenticated+/dashboard.tsx Adjusts empty state guidance + hides “Create organisation” action for non-admins.
apps/remix/app/root.tsx Removes data-theme attribute to prevent theme hydration mismatch.
apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx Normalizes signing orders and ensures recipient removal is enqueued promptly for autosave ordering.

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

Comment on lines 11 to 13
public constructor(definitions: T) {
this._provider = match(env('NEXT_PRIVATE_JOBS_PROVIDER'))
.with('inngest', () => InngestJobProvider.getInstance())
.with('bullmq', () => BullMQJobProvider.getInstance())
.otherwise(() => LocalJobProvider.getInstance());

definitions.forEach((definition) => {
this._provider.defineJob(definition);
});
this._provider = this.initializeProvider(definitions);
}
}

return csrfToken;
throw lastError;
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.

2 participants