Skip to content

Deploy to PROD 6/16/26#2167

Merged
Mephistic merged 70 commits into
prodfrom
main
Jun 16, 2026
Merged

Deploy to PROD 6/16/26#2167
Mephistic merged 70 commits into
prodfrom
main

Conversation

@Mephistic

Copy link
Copy Markdown
Collaborator

Changelog

mertbagt and others added 30 commits April 5, 2026 15:17
* Spruced up phone verification modals

* Additional tweak to phone verification modal

* Updated verify section of profile page to show both email and phone verification

* Added verify account section to edit profile page and refactored

* used feature flag to show new or legacy verify account section appropriately on profile page

* fixed formatting

* minor style adjustment
…d, we mainly need to know when it starts and when it ends (#2111)
* Merge pull request #51 from hyphacoop/visual-system-refinement

Refine MAPLE visual system and shared surfaces

* Apply visual tokens to search pages and shared components

* Fix bill search typecheck

* Format search and hearing components

* Align ballot question browse search controls

* Merge pull request #55 from hyphacoop/ballot-questions-2024-fix

Ballot question 2024 data

* Merge pull request #56 from hyphacoop/fix-sync-script-validation

Skip stale-doc validation in ballot question sync

* Merge pull request #57 from hyphacoop/fix-bq-search-responsiveness

Fix ballot question search responsiveness for medium and mobile

* Merge pull request #61 from hyphacoop/fix/ballot-question-count-scope

Fix ballot question bill count scope

* Merge pull request #60 from hyphacoop/docs/ballot-questions-field-descriptions

docs: add ballot question field reference

* Merge pull request #58 from hyphacoop/homepage-redesign

Homepage refresh and design polish

* Merge pull request #59 from hyphacoop/ballot-question-alert-flag

Add ballot question alert flag

* Merge pull request #63 from hyphacoop/fix/ballot-question-notification-test

Fix ballot question notification test statuses

* Make ballot question frontend strings translatable

* Remove unused homepage assets

* Update ballot question i18n tests

* Fix referendum title i18n namespace

* Reorganize ballot question i18n into dedicated namespace

* Migrate remaining components to ballotquestions namespace

* Update 24-firearms-referendum.yaml

* Add ballotquestions namespace to serverSideTranslations

* Fix formatting

---------

Co-authored-by: vincent <vincentcharlebois@gmail.com>
…timony (#2119)

* fixing bug on testimony detail page so users must verify email before submitting testimony

* added redirect from submit testimony page to profile page for users that are not email verified
* allow date to be nullable on billHistory items

* formatting
* initial page

* header and stat blocks

* bottom columns placement

* Sidebar folder

* set up tabs

* tab title colors

* fill in stat blocks

* minor cleanup

* cleanup 2

* feature flags

* cleanup page

* remove user from page

* update translations

* cleanup

* cleanup2
* Mocking out real firebase calls for YourLegislators component so Storybook doesn't make real API calls

* Adding firebase mocks to prevent erroneous calls to a real Firebase instance from the Storybook server - includes a default state for auth calls and a note in the README about when to override
nesanders and others added 19 commits May 28, 2026 05:59
- Exclude mcp-server/ from root tsconfig.json — it is a self-contained
  package with its own tsconfig and zod version; the root tsc was
  resolving zod@3.20.2 from root node_modules rather than the package-
  local 3.25+, causing incompatibility with @modelcontextprotocol/sdk 1.29
- Cast (FieldValue as any).vector() in backfill-embeddings.ts and
  migrate-embeddings-to-vector.ts — @google-cloud/firestore@5.0.2 does
  not include type definitions for FieldValue.vector() (added in v7.x),
  though the method exists at runtime in firebase-admin@12

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove unnecessary GOOGLE_APPLICATION_CREDENTIALS secret from
  createVectorIndexer runWith() — ADC is automatic on GCP (comment #1)
- Remove insecure query-param token fallback from hybridAuthMiddleware;
  only accept Authorization: Bearer header (comment #4)
- Export shapeBill/shapeTestimony/shapeBallotQuestion for testability
- Add jest test suite for mcp-server following functions/ conventions:
  - mcp-server/jest.config.js (ts-jest preset, firebase-admin moduleNameMapper)
  - mcp-server/tools.test.ts (18 tests covering all three shape helpers:
    field inclusion/exclusion, relevanceScore computation, full-text flag,
    missing-field defaults, latestAction)
  - mcp-server/auth.test.ts (9 tests: missing header, no Bearer prefix,
    valid Firebase token, active/inactive agent keys, unknown token,
    query-param fallback rejected)
  - Add jest/ts-jest/@types/jest devDependencies to mcp-server/package.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…privacy

tools.ts:
- search_bills / search_policies: add topic, committee, primarySponsor
  post-filters; fetch 4× candidate set when filters active
- search_testimony: add authorDisplayName filter gated on public===true
  so private-profile users cannot be searched by name
- shapeBill: expose currentCommittee {id, name}
- shapeTestimony: remove public flag from output; anonymize authorDisplayName
  and authorRole for private-profile users (content remains — it is public
  legislative record per Firestore rules)
- Add list_topics (static TOPICS_BY_CATEGORY taxonomy), list_committees,
  list_sponsors tools with optional court filter
- Document pagination limitation in limit parameter description
- Inline TOPICS_BY_CATEGORY constant (mirrors functions/src/bills/types.ts)

tools.test.ts:
- Add tests for currentCommittee exposure in shapeBill
- Add tests for privacy anonymization in shapeTestimony:
  public flag absent from output, author masked when public===false,
  content preserved for private-profile testimony

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… bills

- Add court parameter to search_bills, search_testimony, search_policies,
  list_committees, list_sponsors; defaults to CURRENT_COURT (194)
- CURRENT_COURT read from CURRENT_COURT env var with 194 fallback; source
  of truth is functions/src/shared/constants.ts → currentGeneralCourt
- Bills scoped by court via collection path (generalCourts/{court}/bills)
  — a true pre-filter using the existing COLLECTION_GROUP vector index,
  no new composite index required
- Testimony uses court as pre-filter (court + vector composite index added
  to firestore.indexes.json) for general search; falls back to post-filter
  when combined with billId/ballotQuestionId/authorDisplayName filters
  to avoid proliferating composite indexes
- Ballot questions not filtered by court (organised by electionYear, not GC)
- Remove dedup logic from search_policies — bills (H1234) and ballot
  questions (25-12) have structurally distinct IDs, no overlap possible;
  add comment explaining this
- Update search_policies description to remove 'deduplicated'
- Document CURRENT_COURT in .env.example
- Add court + vector composite index for publishedTestimony to
  firestore.indexes.json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add authorDisplayName + public + vector_embedding composite index for
the author display name filter path in search_testimony. The court,
billId, and ballotQuestionId composite indexes were already present.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
search_bills queries collection("generalCourts/{court}/bills") directly,
which requires COLLECTION scope. The existing COLLECTION_GROUP index does
not satisfy direct collection queries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MAPLE MCP server creation for RAG workflows
* Restore TestimonyCalloutSection to homepage

* fix(prettier): Run prettier

---------

Co-authored-by: Danchen <37356721+HDC432@users.noreply.github.com>
* color correction

* color correction
- Extract embedded text from bill PDFs when DocumentText is missing
- Add backfill tooling and documentation for repairing existing bills

Co-authored-by: Mephistic <deathbyfiresermon@gmail.com>
* homepage update

* cleanup
* initial page

* header and stat blocks

* bottom columns placement

* Sidebar folder

* set up tabs

* tab title colors

* fill in stat blocks

* minor cleanup

* cleanup 2

* feature flags

* cleanup page

* remove user from page

* update translations

* cleanup

* cleanup2

* expanded profile type

* header name

* filled in more fields

* fill in more details

* party labels

* cleanup2

* translations

* cleanup socials

* cleanup

* district bubble

* buttons

* Buttons

* cleanup

* hide town for now
…r-testimony-tab

feat: add "Their Testimony" tab to legislator profile
* remove squish effect

* Browse All Testimony button responsiveness tweaked

* revert surface-gradiant
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
maple-dev Ready Ready Preview, Comment Jun 16, 2026 5:44pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
maple-prod Ignored Ignored Jun 16, 2026 5:44pm

Request Review

@Mephistic Mephistic merged commit 2f4ebb2 into prod Jun 16, 2026
11 of 12 checks passed
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.