Repository navigation
fix: address #504, #505, #506, #507 - #563
Merged
james2177 merged 5 commits intoSep 30, 2026
Merged
Conversation
…tals and error telemetry w Closes stellar-vortex-protocol#504
… cached jobs with required Closes stellar-vortex-protocol#505
…nd duplicate-declaration g Closes stellar-vortex-protocol#506
…mated e2e, Lighthouse, vis Closes stellar-vortex-protocol#507
|
@sundayjob996 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! 🚀 |
# Conflicts: # .github/workflows/ci.yml # .github/workflows/coverage-badge.yml # package.json # playwright.config.ts # src/lib/secureLogging.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
fix: address #504, #505, #506, #507
What was solved
#504 — [High] Add privacy-preserving web-vitals and error telemetry with a pluggable sink and consent controls
Add a privacy-preserving telemetry module for Core Web Vitals and scrubbed client error summaries, with a pluggable sink (default no-op), strict allowlist schema, PII scrubbing, opt-in consent UI persisted in the privacy center, DNT/GPC honoring, and documentation of collected fields plus a build-time disable path.
Addressed:
telemetrymodule exposingtrack(event)andreportVital()with a schema-first allowlist (name, route pattern not raw URL, metric values, app version, coarse device class); reject anything else at type and runtime level.send(batch), default no-op, optional backend endpoint or third-party; batch with flush onvisibilitychangeusingsendBeaconwith size caps and never blocking navigation.web-vitalsor an equivalent manualPerformanceObserverimplementation.#505 — [High] Restructure CI into parallel, cached jobs with required checks and a fast-feedback path
Restructure the single serial CI workflow into parallel, cached jobs (static, unit, build, e2e, storybook-visual, security) with a final ci-success aggregator as the required check, path filtering for docs-only PRs, Playwright sharding with chromium-only on PRs and full matrix on main/nightly, and flaky-test reporting.
Addressed:
#506 — [High] Add a merge-conflict-marker and duplicate-declaration guard to pre-commit and CI
Add a fast merge-debris guard to the repo: a new
scripts/check-merge-debris.mjsthat scans tracked files for conflict markers, detects duplicate keys in JSON configs (via a tokenizing parser, not JSON.parse), and detects duplicate top-level TS declarations and duplicate members within a single type literal using the TypeScript compiler API. Wire it into lint-staged, Husky pre-commit, and the CI static job, enable ESLint duplicate/redeclare rules, and document the workflow in CONTRIBUTING.md.Addressed:
scripts/check-merge-debris.mjsthat detects<<<<<<</=======/>>>>>>>conflict markers in tracked filespackage.jsonand JSON configs using a tokenizing parser (notJSON.parse, which silently drops duplicates)const/function/type/interfaceand duplicate members within a single type literal#507 — [High] Upgrade PR previews with automated e2e, Lighthouse, visual diffs and a consolidated PR report comment
Extend the preview deployment pipeline so each PR preview runs a curated Playwright smoke suite against the deployed URL, a Lighthouse run on three routes with budget deltas vs main, and visual diffs of key routes vs the last main deployment, then posts a single sticky PR comment (updated in place via an HTML marker) summarizing preview URL, check statuses, bundle-size delta, Lighthouse deltas, and artifact links. Fork PRs get a safe comment explaining local verification without secret exposure, using a least-privilege pull_request vs workflow_run pattern.
Addressed:
Changes
src/components/GlobalErrorCapture.tsx(modify)src/lib/secureLogging.ts(modify).github/workflows/ci.yml(modify)playwright.config.ts(modify)package.json(modify).github/workflows/coverage-badge.yml(modify)scripts/check-merge-debris.mjs(create).lintstagedrc.js(modify).github/workflows/preview-deploy.yml(modify)e2e/smoke/preview-smoke.spec.ts(create)scripts/build-preview-report.mjs(create)Approach
Issues
Closes #504
Closes #505
Closes #506
Closes #507