fix: merge main into dev (merge commit, not squash) to unblock PR #422#428
Merged
Conversation
dev to main week of march 17 2025
dev → main beta access param
Dev → Main July 2025
dev -> main -- resolve build issues
feat: dev to main, map and sidebar updates, e2e testing
feat: Dev to Main December 2025
* Begin draft of annotation logic * Continue draft * Update Draft * Begin incorporating typescript * Finish initial typescript setup * Add logic for submission * Rearrange and add comments for variables * Rearrange and add comments for computed variables * Rearrange and add comments for types * Rearrange and add comments for helpers * Rearrange and add comments for control logic * Rearrange and add comments for handlers * Rearrange and add comments for request logic * Add `Name` suffix to model variables * Add Confirm submit emit and variable reset functionality * Add fontAwesome icons * Add reset logic for Location, Agency, Record Type components * Refine reset logic * Correct attribute `name` -> `text` * Add key to img attribute * Add docstrings to modules * Update merge and lock * Refresh package lock * Fix typo Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> * Remove `Type` suffixes to types * Commit package-lock.json * Add logic for handling null `next_annotation` * Add console logs and handling for when no annotations found * Add auth logic * Adjust URL placement * Add warning for anonymous users * Adjust text size * Begin draft of contributions section * Incorporate PDAP Design System and refactor * Add Hints & Notes and Record Type Reference * Add URL Type descriptions and make formatting tweaks. * fix: december release regressions (#388) * fix: skip record-creating e2e tests in prod * fix: december release regressions * fix: stabilize e2e * fix: lint script * chore(deps): eslint missing a11y package * Revert "chore(deps): eslint missing a11y package" This reverts commit 1dec0e2. * Revert "fix: lint script" This reverts commit 220c9f1. * chore: eslint packages * fix: linting config --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> * fix: lint and format fix * chore: migrate to plural route names keep redirects on the singulars for backward compat * Bug fixes, refactor, and mobile optimizations * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * feat: templatize portal (#395) * Add anonymous session persistence with cookies (#398) * Add bug fixes, cookies (#399) * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * Remove unnecessary style sections and inline single-use classes * Add cookie for saving session * Add migration logic and minor refinements * Add logic for cookie reminder and content warning * Change position of URL info to below screenshot * Solve bug with submission spinner not showing * chore(REVERT THIS): test dynamic transparency seal * Revert "chore(REVERT THIS): test dynamic transparency seal" This reverts commit 9453d98. * feat: collapsible footer (#401) * chore(deps): bump design-system (#403) * hide annotate nav link * fix: update favicon to production asset path (#402) * fix: skip record-creating e2e tests in prod * fix: update favicon paths to use production asset location Replace broken node_modules paths with working /assets/favicon.png path. The previous paths pointed to development dependencies that don't exist in production builds, causing the favicon to not display. - Remove: node_modules/pdap-design-system/*/favicon.png references - Remove: node_modules/pdap-design-system/*/webclip.gif reference - Add: /assets/favicon.png (verified to exist and work in production) Fixes favicon display issue on pdap.io production site. --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> * Revert "hide annotate nav link" This reverts commit 8c26af0. --------- Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com>
Strategy matches PR #423: keep dev's versions for annotate components, workflows (Node 24), data-fetchers, locationFormatters, constants. Regenerate package-lock from dev's dependencies.
josh-chamberlain
approved these changes
May 4, 2026
This was referenced May 20, 2026
Merged
maxachis
added a commit
that referenced
this pull request
May 31, 2026
* Begin draft of annotation logic * Continue draft * Update Draft * Begin incorporating typescript * Finish initial typescript setup * Add logic for submission * Rearrange and add comments for variables * Rearrange and add comments for computed variables * Rearrange and add comments for types * Rearrange and add comments for helpers * Rearrange and add comments for control logic * Rearrange and add comments for handlers * Rearrange and add comments for request logic * Add `Name` suffix to model variables * Add Confirm submit emit and variable reset functionality * Add fontAwesome icons * Add reset logic for Location, Agency, Record Type components * Refine reset logic * Correct attribute `name` -> `text` * Add key to img attribute * Add docstrings to modules * Update merge and lock * Refresh package lock * Fix typo Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> * Remove `Type` suffixes to types * Commit package-lock.json * Add logic for handling null `next_annotation` * Add console logs and handling for when no annotations found * Add auth logic * Adjust URL placement * Add warning for anonymous users * Adjust text size * Begin draft of contributions section * Incorporate PDAP Design System and refactor * Add Hints & Notes and Record Type Reference * Add URL Type descriptions and make formatting tweaks. * fix: december release regressions (#388) * fix: skip record-creating e2e tests in prod * fix: december release regressions * fix: stabilize e2e * fix: lint script * chore(deps): eslint missing a11y package * Revert "chore(deps): eslint missing a11y package" This reverts commit 1dec0e2. * Revert "fix: lint script" This reverts commit 220c9f1. * chore: eslint packages * fix: linting config --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> * fix: lint and format fix * chore: migrate to plural route names keep redirects on the singulars for backward compat * Bug fixes, refactor, and mobile optimizations * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * feat: templatize portal (#395) * Add anonymous session persistence with cookies (#398) * Add bug fixes, cookies (#399) * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * Remove unnecessary style sections and inline single-use classes * Add cookie for saving session * Add migration logic and minor refinements * Add logic for cookie reminder and content warning * Change position of URL info to below screenshot * Solve bug with submission spinner not showing * chore(REVERT THIS): test dynamic transparency seal * Revert "chore(REVERT THIS): test dynamic transparency seal" This reverts commit 9453d98. * feat: collapsible footer (#401) * chore(deps): bump design-system (#403) * hide annotate nav link * fix: update favicon to production asset path (#402) * fix: skip record-creating e2e tests in prod * fix: update favicon paths to use production asset location Replace broken node_modules paths with working /assets/favicon.png path. The previous paths pointed to development dependencies that don't exist in production builds, causing the favicon to not display. - Remove: node_modules/pdap-design-system/*/favicon.png references - Remove: node_modules/pdap-design-system/*/webclip.gif reference - Add: /assets/favicon.png (verified to exist and work in production) Fixes favicon display issue on pdap.io production site. --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> * Revert "hide annotate nav link" This reverts commit 8c26af0. * fix: search results showing 'United States' instead of state name (#409) * fix: check display_name before type detection in getFullLocationText Resolves #387. The refactored getFullLocationText() only checked display_name in the default switch case, causing locations without an explicit type field to fall through to the hardcoded "United States" fallback instead of showing the correct state name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve location not displaying in search results header The getLocation API returns the location object directly in the response body, not nested under a data property. The extra .data dereference caused resolvedLocation to always be null. Co-Authored-By: Claude <noreply@anthropic.com> * fix: normalize line endings to LF and add .gitattributes The previous commit introduced CRLF line endings from the Windows filesystem. Add .gitattributes with eol=lf to prevent this in future commits regardless of OS. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: bump Node.js from v20 to v24 LTS (#410) * chore: bump Node.js from v20 to v24 LTS (#373) - Update .nvmrc, package.json engines, CI workflows, and devcontainer to Node 24.13.1 - Upgrade actions/setup-node@v3 to @v4 in pull.yaml for consistency - Add eslint-plugin-vuejs-accessibility as direct devDependency (required by @pdap-design-system/eslint-config@1.0.2) - Regenerate package-lock.json under npm 11 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: apply Prettier formatting for Node.js v24 compatibility Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: remove .devcontainer from tracking and add to .gitignore Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat: annotation visual refinements (#408) * Redesign annotate page with two-panel layout and stepper navigation Full visual overhaul: two-panel grid (sticky preview + wizard), numbered circle stepper replacing tab bar, unified notice styling, collapsible reference panel, on-palette colors throughout, and removal of <br> hacks. Co-Authored-By: Claude <noreply@anthropic.com> * Fix contrast: soften content card, amber URLs and buttons, dark prev button Co-Authored-By: Claude <noreply@anthropic.com> * Switch all selected states and links from wine to amber for readability Co-Authored-By: Claude <noreply@anthropic.com> * Add zoomable screenshot with hover magnifier and expanded desktop size Co-Authored-By: Claude <noreply@anthropic.com> * Improve mobile layout with collapsible preview and better contrast - Add collapsible preview card on mobile with smooth animation - Compact screenshot (4:3 ratio), reduce content min-height on mobile - RecordType grid single-column on narrow screens - Switch stepper colors from wine to amber for dark-background readability Co-Authored-By: Claude <noreply@anthropic.com> * Disable magnifier on touch devices, keep tap-to-open Co-Authored-By: Claude <noreply@anthropic.com> * Reduce URL type card padding and gap on mobile Co-Authored-By: Claude <noreply@anthropic.com> * Replace amber/orange with brand-gold and goldneutral colors per design system Primary action buttons and interactive states use brand-gold-*, non-clickable info banners and decorative elements use goldneutral-*. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Restrict gold to primary action buttons only, use wine/wineneutral for selections Gold now appears only on the Next/Skip (TabControls) and Submit (Confirm) buttons. Selected states use brand-wine, stepper indicators use wineneutral, links use goldneutral-700/800 for adaptive contrast across light and dark mode backgrounds. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: improve annotation wizard accessibility and add E2E test coverage - Fix WCAG 2 AA contrast issues across all annotation components (headings, labels, selected states, stepper text) - Fix URL Type selected card rendering (bg-brand-wine with inline style fallback for axe-core compatibility) - Fix Confirm.vue name submission bug (existing_name_id sent "new" string instead of null, causing 422 errors) - Migrate VITE_SOURCE_COLLECTOR_API_URL to VITE_SM_API_URL across codebase and CI scripts - Add axe-core WCAG 2 AA accessibility tests for all wizard steps - Add E2E tests: wizard flow, stepper navigation, responsive layout - Add ui-testing skill using @playwright/cli for visual QA - Remove hardcoded RGB values, use design system colors throughout - Improve skipped step styling with dashed border indicator * style: fix prettier formatting in e2e annotation tests * style: run prettier on annotate page components * chore: remove accidentally committed .playwright-cli files --------- Co-authored-by: Max Chis <maxachis@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> * fix: use semver range for Node engine to fix DO build (#412) The exact version "24.13.1" was not resolvable by the Digital Ocean buildpack, causing "No result" during build. Using ">=24" allows the buildpack to pick the latest available Node 24.x. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * Issue/309 error message persistence (#418) * fix: update required fields for data request and data source forms (#306) Make Coverage Range and Target Date optional on the data request form, add asterisk indicators to required fields, and make Description optional on the data source form to match backend schema. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: clear error message on successful form submission (#309) When a form submission fails and then succeeds on retry, the error message was persisting alongside the success toast. Clear formError in the onSuccess callback of both data request and data source creation mutations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: apply prettier 3.8.1 formatting to SearchForm and DataSourceMapSidebar The lockfile specifies prettier 3.8.1 which formats Boolean() argument indentation differently than 3.4.2. Update files to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: update required fields for data request and data source forms (#… (#417) * fix: update required fields for data request and data source forms (#306) Make Coverage Range and Target Date optional on the data request form, add asterisk indicators to required fields, and make Description optional on the data source form to match backend schema. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: apply prettier 3.8.1 formatting to SearchForm and DataSourceMapSidebar Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve merge conflicts between dev and main (#423) * fix: skip record-creating e2e tests in prod * Dev to Main January 4 2026 (#400) * Begin draft of annotation logic * Continue draft * Update Draft * Begin incorporating typescript * Finish initial typescript setup * Add logic for submission * Rearrange and add comments for variables * Rearrange and add comments for computed variables * Rearrange and add comments for types * Rearrange and add comments for helpers * Rearrange and add comments for control logic * Rearrange and add comments for handlers * Rearrange and add comments for request logic * Add `Name` suffix to model variables * Add Confirm submit emit and variable reset functionality * Add fontAwesome icons * Add reset logic for Location, Agency, Record Type components * Refine reset logic * Correct attribute `name` -> `text` * Add key to img attribute * Add docstrings to modules * Update merge and lock * Refresh package lock * Fix typo Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> * Remove `Type` suffixes to types * Commit package-lock.json * Add logic for handling null `next_annotation` * Add console logs and handling for when no annotations found * Add auth logic * Adjust URL placement * Add warning for anonymous users * Adjust text size * Begin draft of contributions section * Incorporate PDAP Design System and refactor * Add Hints & Notes and Record Type Reference * Add URL Type descriptions and make formatting tweaks. * fix: december release regressions (#388) * fix: skip record-creating e2e tests in prod * fix: december release regressions * fix: stabilize e2e * fix: lint script * chore(deps): eslint missing a11y package * Revert "chore(deps): eslint missing a11y package" This reverts commit 1dec0e2. * Revert "fix: lint script" This reverts commit 220c9f1. * chore: eslint packages * fix: linting config --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> * fix: lint and format fix * chore: migrate to plural route names keep redirects on the singulars for backward compat * Bug fixes, refactor, and mobile optimizations * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * feat: templatize portal (#395) * Add anonymous session persistence with cookies (#398) * Add bug fixes, cookies (#399) * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * Remove unnecessary style sections and inline single-use classes * Add cookie for saving session * Add migration logic and minor refinements * Add logic for cookie reminder and content warning * Change position of URL info to below screenshot * Solve bug with submission spinner not showing * chore(REVERT THIS): test dynamic transparency seal * Revert "chore(REVERT THIS): test dynamic transparency seal" This reverts commit 9453d98. * feat: collapsible footer (#401) * chore(deps): bump design-system (#403) * hide annotate nav link * fix: update favicon to production asset path (#402) * fix: skip record-creating e2e tests in prod * fix: update favicon paths to use production asset location Replace broken node_modules paths with working /assets/favicon.png path. The previous paths pointed to development dependencies that don't exist in production builds, causing the favicon to not display. - Remove: node_modules/pdap-design-system/*/favicon.png references - Remove: node_modules/pdap-design-system/*/webclip.gif reference - Add: /assets/favicon.png (verified to exist and work in production) Fixes favicon display issue on pdap.io production site. --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> * Revert "hide annotate nav link" This reverts commit 8c26af0. --------- Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com> * fix: use dev's versions for conflict resolutions Corrects three conflict resolutions that incorrectly took main's versions: - _data-fetchers: use .data (not .data?.data) - constants: nav link text is 'Label' (not 'Annotate') - locationFormatters: restore display_name early return, use empty string fallback (not 'United States') Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * update CTAs (#407) * fix: mock email/password login in E2E tests (#413) * fix: mock email/password login in E2E tests to prevent timeouts Add MSW handler for POST /auth/login so auth-dependent E2E tests no longer hit the real API. This fixes two issues: fork PRs failing because GitHub Actions doesn't expose secrets, and flaky timeouts from slow external API responses. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: formatting in auth mock handler Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: add aria-label to icon-only buttons and links (#311) (#415) Adds accessible labels to interactive elements that only contain icons, making them usable by screen readers. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: allow GitHub OAuth users to change password (#419) * fix: allow GitHub OAuth users to change password (#279) Remove the OAuth gating that hid the password change form from GitHub-linked users. Users who signed up with email and later linked GitHub may still have a password to change. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test: add unit tests for change-password page Verify the password change form renders unconditionally — no longer gated behind an OAuth check. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat: add static Open Graph meta tags for social media previews (#420) Add OG tags to index.html so crawlers that don't execute JavaScript can read them. Fix default og:title from "Police Data Access Point" to "Police Data Accessibility Project" across all config. Update refreshMetaTags to clean up static OG tags when JS takes over. Also fix pre-existing Prettier formatting in two unrelated files. Closes #173 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * Issue/310 title limit client side (#416) * fix: enforce 255-character title limit client-side on data request creation (#310) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: remove redundant constants unit test per review feedback Validator logic is already tested in the design system. The constants file is its own source of truth and doesn't benefit from a unit test that just re-asserts its values. E2e tests already cover form validation behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: reduce E2E test flakiness by mocking unmocked endpoints (#427) * fix: mock unmocked API endpoints in E2E tests to reduce flakes Flaky E2E tests were failing because only auth endpoints were mocked — GET /user/:id (profile fetch) and POST /data-requests (create submit) fell through MSW's onUnhandledRequest: bypass and hit the real backend, whose latency/availability drove the flakes. Also fixes a JWT claim mismatch: the mock access token emitted email, but the auth store reads user_email (src/stores/auth.js:56), so user.email was undefined after sign-in. Closes #425 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style: wrap long line for prettier * fix: mock POST /auth/api-key so profile API-key test doesn't hit real backend * style: apply prettier formatting fixes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: display URL health pill on data source details (#421) (#429) Adds a color-coded pill near the "Visit Data Source" button that surfaces the backend-reported url_status and internet_archive_url, so users know whether an external link is likely to work before clicking through. Renders three states: healthy, archived (with a link to the archived copy), and broken. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: remove v2 feature flags (#424) (#426) All v2 features have been rolled out, so the feature-flag plumbing (VITE_V2_FEATURE_* env vars, getIsV2FeatureEnabled, and all usages) is no longer needed. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add TypeScript types to annotation async fetchers (#404) (#414) - Rename api/typeahead.js → .ts with typed generic factory - Define TypeaheadLocationSuggestion and TypeaheadAgencySuggestion types - Type useMutation generics, refs, emits, and handlers in SearchLocationForm and SearchAgencyForm - Re-export LocationSuggestion from canonical typeahead types - Remove broken UseQueryResult annotation from index.vue - Remove dead AgencyLocationSuggestionType import from helpers.ts Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: merge main into dev (merge commit, not squash) to unblock PR #422 (#428) * fix: skip record-creating e2e tests in prod * Dev to Main January 4 2026 (#400) * Begin draft of annotation logic * Continue draft * Update Draft * Begin incorporating typescript * Finish initial typescript setup * Add logic for submission * Rearrange and add comments for variables * Rearrange and add comments for computed variables * Rearrange and add comments for types * Rearrange and add comments for helpers * Rearrange and add comments for control logic * Rearrange and add comments for handlers * Rearrange and add comments for request logic * Add `Name` suffix to model variables * Add Confirm submit emit and variable reset functionality * Add fontAwesome icons * Add reset logic for Location, Agency, Record Type components * Refine reset logic * Correct attribute `name` -> `text` * Add key to img attribute * Add docstrings to modules * Update merge and lock * Refresh package lock * Fix typo Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> * Remove `Type` suffixes to types * Commit package-lock.json * Add logic for handling null `next_annotation` * Add console logs and handling for when no annotations found * Add auth logic * Adjust URL placement * Add warning for anonymous users * Adjust text size * Begin draft of contributions section * Incorporate PDAP Design System and refactor * Add Hints & Notes and Record Type Reference * Add URL Type descriptions and make formatting tweaks. * fix: december release regressions (#388) * fix: skip record-creating e2e tests in prod * fix: december release regressions * fix: stabilize e2e * fix: lint script * chore(deps): eslint missing a11y package * Revert "chore(deps): eslint missing a11y package" This reverts commit 1dec0e2. * Revert "fix: lint script" This reverts commit 220c9f1. * chore: eslint packages * fix: linting config --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> * fix: lint and format fix * chore: migrate to plural route names keep redirects on the singulars for backward compat * Bug fixes, refactor, and mobile optimizations * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * feat: templatize portal (#395) * Add anonymous session persistence with cookies (#398) * Add bug fixes, cookies (#399) * Remove unused variable * Fix inexplicable `Select` text in typeaheads * Add mobile optimizations * Remove unnecessary style sections and inline single-use classes * Add cookie for saving session * Add migration logic and minor refinements * Add logic for cookie reminder and content warning * Change position of URL info to below screenshot * Solve bug with submission spinner not showing * chore(REVERT THIS): test dynamic transparency seal * Revert "chore(REVERT THIS): test dynamic transparency seal" This reverts commit 9453d98. * feat: collapsible footer (#401) * chore(deps): bump design-system (#403) * hide annotate nav link * fix: update favicon to production asset path (#402) * fix: skip record-creating e2e tests in prod * fix: update favicon paths to use production asset location Replace broken node_modules paths with working /assets/favicon.png path. The previous paths pointed to development dependencies that don't exist in production builds, causing the favicon to not display. - Remove: node_modules/pdap-design-system/*/favicon.png references - Remove: node_modules/pdap-design-system/*/webclip.gif reference - Add: /assets/favicon.png (verified to exist and work in production) Fixes favicon display issue on pdap.io production site. --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> * Revert "hide annotate nav link" This reverts commit 8c26af0. --------- Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com> --------- Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com> * fix: mock annotation endpoints in E2E tests (#431) * fix: mock annotation endpoints in E2E tests PRs targeting main run E2E against the production source-collector API while PRs targeting dev run against staging. Annotation endpoints weren't mocked, so the wizard hit a real backend that doesn't yet serve them on prod — making every Dev → Main PR fail the annotate suite consistently (latest: #422). Adds MSW handlers for the /annotate and /contributions endpoints so the suite is env-agnostic. Also ignore .claude/worktrees in prettier so untracked agent scratch dirs don't break the pre-commit hook. Refs #425 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: return NextAnnotationResponse from annotate POST mocks The Confirm component sets annotationModel.value = data on submit success; the parent uses next_annotation to render the wizard, so the POST must return a full NextAnnotationResponse, not just { session_id }. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Joshua D. Graber <68428039+joshuagraber@users.noreply.github.com> Co-authored-by: Josh <30379833+josh-chamberlain@users.noreply.github.com> Co-authored-by: Joshua D. Graber <code+gh@joshuadgraber.com> Co-authored-by: labradorite-dev <250898349+labradorite-dev@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Claude <claude@anthropic.com>
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
Second attempt at resolving the conflicts blocking PR #422. PR #423 applied the correct resolutions but was squash-merged into
dev, which dropped the second parent pointing atmain. That leftdevwith the content of the merge but not the ancestry, so PR #422 kept showing the same 28 conflicts.This PR brings in
mainvia a real merge commit sogit merge-base main devadvances to main's HEAD (304c983).MUST use "Create a merge commit" — NOT squash, NOT rebase. Squashing will re-create the original problem.
Conflict resolutions
Same strategy as PR #423:
_data-fetchers.js,locationFormatters.js,constants.js,index.html,index.vue: kept dev'sdata-requests/_constants.js: kept dev's (main's rename of olddata-request/_constants.jsresolved by dev's already-renamed location)package-lock.json: regenerated from dev's dependenciesTest plan
git merge-base origin/main HEAD==origin/mainHEAD🤖 Generated with Claude Code