Skip to content

Latest commit

 

History

History
693 lines (610 loc) · 84.9 KB

CHANGELOG.md

File metadata and controls

693 lines (610 loc) · 84.9 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.9.5 (2020-04-29)

1.9.4 (2020-04-29)

1.9.3 (2020-04-29)

1.9.2 (2020-04-29)

1.9.1 (2020-04-29)

Features

Bug Fixes

1.9.0 (2020-04-23)

Features

Bug Fixes

1.8.5 (2020-04-15)

Bug Fixes

  • fix permission check (#631) (b549f9d)
  • remove auth query param from segments helpdesk url (#637) (29512aa)
  • require owner permissions to query settings (#632) (03c9890)
  • use the same knex client throughout query builder (#640) (43aba59)

1.8.4 (2020-04-10)

Bug Fixes

  • prevent conversation overflow (7098c25)

1.8.3 (2020-04-10)

Bug Fixes

  • fix flexbox height calculation in Safari (#630) (83cf4a2)

1.8.2 (2020-04-08)

Bug Fixes

1.8.1 (2020-04-07)

1.8.0 (2020-04-06)

Features

Bug Fixes

  • export config as commonjs module to support knex cli (1edba6b)
  • ux: make pencil icon size dynamic (take 2) (#583) (d85d648)

1.7.1 (2020-03-30)

1.7.0 (2020-03-30)

Features

Bug Fixes

  • message review action resolver errors (#613) (649192d)
  • throw error only if ineligible for access check (770336c)
  • ux: avoid flashing background between texts (#608) (0a605a2)

1.6.1 (2020-03-23)

Bug Fixes

1.6.0 (2020-03-21)

Features

Bug Fixes

  • message-review: prevent duplicate fetches of users (#605) (a02295e)
  • reset texter loading UI state on refetch (#602) (cf07e59)

1.5.1 (2020-03-13)

Bug Fixes

1.5.0 (2020-03-12)

Features

  • 404 like page for bad campaign id (6868efd)
  • accept firstname, first_name, lastname, last_name (5038d07)
  • add apply tags helper text (b1373be)
  • add auto assign toggle to operations dialog (8d3c66b)
  • add delete selected button to campaign overlap module (d0066a1)
  • add error handling (639b8c5)
  • add progress and new campaign id to copy campaign (9ab3241)
  • add reply count on release (251ef14)
  • add segment counter (2e0618d)
  • add symmetric decrypt script (1cc1a99)
  • add withOperations HOC (6e3fb47)
  • allow disabling the badge counts (5043a44)
  • allow disabling the Texters section of campaign edit (7078a91)
  • allow inserting Switchboard LRN API key (809b357)
  • auto approve / reject basics (8478ad2)
  • cache and invalidate campaigns list (4b3bdf4)
  • cache assignment.campaign (f6c7383)
  • cache get users for 5 minutes (dd24beb)
  • cache information for get contacts (77fc0a8)
  • cache my current assignment targets for one minute (b2b5f0d)
  • campaign html preview (6d190d0)
  • communicate texters loading (dee43d5)
  • copy blocks (5e67451)
  • disable dynamic assignment (2e0a405)
  • env var for auto handle request concurrency (ed2b10d)
  • execute easy unicode -> gsm replacements (7a54d66)
  • flag to hide contact info (2f96e41)
  • handle shutdown gracefully (a8ca156)
  • hide auto handle behind yaev (3d8f810)
  • improve release all unnhandled replies (0bccfb8)
  • include campaign in tag webhook payload (6bb94b5)
  • limit notifications to once per 30 seconds per team (8645017)
  • make exclude recently contacted contacts have a default of true on mark for second pass (bc49230)
  • make search for texters fast (802f184)
  • more cautious second passes (b961069)
  • optimize get assignment contacts (d745488)
  • optimize get todos (9e319b9)
  • optimize getContactMessagingService (cf5cf12)
  • optimize overlap deletion - no reason to materialize distinct cell (d9cce3a)
  • page size changes in contact overlap deletion (866d1b7)
  • perform encryption of auth token in script (e6c282a)
  • process contact csvs server-side (1e6eb99)
  • reassign my replies button (6cfad65)
  • release all unhandled replies (e868dcb)
  • release replies on textable contacts only (ba37ba4)
  • remove unnecessary polling (6ae129a)
  • seach in overlap deletion (f2ac6a8)
  • shorten texter poll interval (2a9301c)
  • show hidden contact fields if super volunteer (9a2a066)
  • speed up overlap deletion (6faed80)
  • switch to file drop (e5ec8d7)
  • tear down kue on shutdown (ee29ce4)
  • treat 4 digit zips as 0 padded (61715b7)
  • update texter name in external assignment manager db cron job (ce09838)
  • upgrade memoredis (4c4a97b)
  • use empty mode if env var not present to bypass caching (b458879)
  • use function to cache plans (b265213)
  • use group by instead of many queries (08fdb71)
  • use sped up memoredis (924de74)

Bug Fixes

1.4.2 (2020-01-20)

Bug Fixes

  • add missing preferredTeamId argument (63fe02c)
  • avoid archived as bidning (a2e086a)
  • avoid union with for update skip locked (ff1b88c)
  • bail on submit if already submitting (b569c20)
  • bypass overly complex timezone evaluation (4acc8e7)
  • clarify that arg is unused (c28b2ea)
  • comment, simplify queryArgs (88f89af)
  • dont aggregate messaging services at send time (f724913)
  • dont change message status when escalating (c087da3)
  • dont fetch count of messaging services (424c0c7)
  • extend HTTP request timeout and log errors (ea2f593)
  • fix dataloader implementation (b996bff)
  • fix error when changing password (cd90ccc)
  • fix return type for returning("id") (8044e25)
  • fix service selection behavior (fa49557)
  • ignore the mocked ID added to CannedResponseInput (d473624)
  • include required numberAssigned property (b40f3c4)
  • index and query change necessary for search by tag (39ab3b3)
  • let delivered override error (fdbaa8a)
  • messages export blank (13fd5f2)
  • only update if not delivered (f0068a8)
  • order by messaged first (e9da7f7)
  • perform notify in separate delayed transaction (7c943d5)
  • pick json response property based on status (f768df4)
  • pr changes (fd064d8)
  • pr review cleanup (f630d99)
  • proper index use archived = false (365c50c)
  • remove campaign team requirement for custom escalation tags assignment pathway (9d26fe7)
  • rename to last updated at (bdf5f20)
  • replace final .save() calls (7d05190)
  • report anticipated autoassignment errors as successes (1593cd5)
  • return updated campaign from resolver (e279aee)
  • return values where appropriate (85e0d6c)
  • review requests (a6cc75f)
  • review requests (f1aa8bb)
  • scope opt-out check correctly (18c1c8e)
  • send message opt out query should respect global opt out env var toggle (9e8df70)
  • send null instead of empty string for contact zip code (4edb5a7)
  • setting assignment controls for first time (1fef9f2)
  • skip locked on link domain subquery (72a9498)
  • supply aws credentials explicitly (c430720)
  • syntax error on mark for second pass (9331b36)
  • use correct date comparison (8d36f45)
  • use correct table name for zip_code (4f454af)
  • use modal dialog (a8e5224)
  • use subshell (8b16415)
  • exports: handle error from stream creation (a78f73c)
  • external-assignment-request: dont hold transaction (de49e36)
  • message-review: remove contact name filter when text is empty (a37893c)
  • s3: use async method to support role-based auth (c32a400), closes aws/aws-sdk-js#2166
  • add count_left back to allCurrentAssignmentTargets (dba9580)
  • add escalate tag without confirmation steps (8654101)
  • add option to disable has unassigned contacts query (92a0223)
  • assemble numbers inbound message handling (b56e2b3)
  • at time zone unknown; docs: add conservative comment (19ff9fb)
  • check for null values not empty object (072495f)
  • contact is textable function (3848c0b)
  • contact_is_textable function (14c96fa)
  • contact_is_textable_now can return null (9546ab1)
  • correct sign direction on assignable_needs_message and reply (0eb28c7)
  • correct variable name (80064f3)
  • dont set max contacts in auto assign loop; default MAX_CONTACTS_PER_TEXTER of 500 (8415d02)
  • dont set sent after other message (0fc2bde)
  • drop count_left subqueries (42e96ca)
  • enable assignment request by supervolunteer (ff80750)
  • filter by organization correctly (1f15608)
  • fix syntax error (ab3eafc)
  • fix typo in opt-out query (ad913ef)
  • handle case where responsesString is undefined (68dadda)
  • include insert invite in dockerfile (49cd0ce)
  • include unmessaged contacts in message review queries (fe02fd4)
  • index campaign contact id (0e72b6e)
  • limit on update (effa5d0)
  • make dynamic assignment toggle truly controlled (b94dd46)
  • make requested changes for review (618cc77)
  • make test more robust to future DDL (48578c3)
  • order by coalesce (01ae8fa)
  • properly conservatively handle contacts with missing time zones (aa172b4)
  • return location (17ae3f6)
  • tweaks to backfill script and migrations non index option (c97fa09)
  • use is (not) distinct from (fce87da)
  • pg: catch missing knex<>reader swaps (58ff0ff)
  • fix ordering of view drops (23b8836)
  • get title of overlapping campaign (4ec68f6)
  • message locking from assignment queries (67a0c13)
  • move where clauses to join conditions (88f3dc7)
  • order by last messaged at rather than updated_at (3a65d70)
  • prevent empty tagConversation mutations (28c5956)
  • restrict contact upload to 75% of db pool size (9a1db5e)
  • scope bulkScriptUpdate to organization (bf6f0cb)
  • simple less than for texting hour end (3089c50)
  • standardize conversion from timezone name to UTC offset (6acbbc5)
  • use assignable contact views for assignLoop (168c85b)
  • knex: return count as number (8a24126)
  • local-login: expect user object not array of users (01b900b)
  • message-review: move key prop to correct location (5a5bbfa)
  • session: use passport for non-Auth0 logout (1f3c076)
  • switchboard: fix switchboard response handling (b7d607c)
  • tags: allow admins to bypass assignment requirement for tag management (e20df00)
  • tags: reset tags each time dialog is opened (c5f9041)
  • tags: update method name (0a41d79)
  • teams: fix campaign team comparison (553696e)
  • teams: remove unnecessary authRequired check (a4f1608)
  • teams: simplify team update logic (f9ffe30)
  • 0 index into null (9a97cfd)
  • account for fake organization team (2e926f2)
  • forms: prevent submit button from being full-width (1f1ba37)
  • add default background color (58451ca)
  • add message, sensible defaults for updated_at (99c0162)
  • allCurrentAssignmentTargets should show everyone else with first campaign without limit contraint (c7ee88c)
  • assignment queries organization scope (9adbfcf)
  • default now for migration (763b688)
  • dont allow non team members to get campaigns as a result of default (d6b99f7)
  • find a campaign that is potentially lower id for limited assignment (05c7510)
  • fix column names in down migration (03c0770)
  • fix the production path (e168bfa)
  • flexible return from myCurrentAssignmentTarget (4628f5e)
  • general assignment returning multiple results and final ordering not by id (4dd5b04)
  • global regex replace (bb1847a)
  • more to controlled component, allow setting null (0189cdf)
  • move to static imports instead of dynamic require (9c1aa8b)
  • my current assignment target selection - create priority column (e7e591e)
  • nulling and editing numbersApiKey (e262820)
  • organization scoped opt outs (f1348e1)
  • proper .then calls (b31a0b9)
  • rejecting assignment requests when general is disabled (e065e01)
  • requested permission changes (db24bb3)
  • return array from myCurrentAssignmentTargets (065bbfc)
  • return empty array rather than null (11bb011)
  • return full messaging service correctly (d9d4692)
  • return values from saveTeams (4f3dd7a)
  • slack team update - fully paginate slack channels (8afe903)
  • tag application blocking message sending (0e0188b)
  • tag editing (fd03409)
  • timezone issues (f9b8786)
  • unassigned contacts respects opt outs and escalation tag (5d0af87)
  • update cache with new values (bfc01d7)
  • use campaign texting hours instead of hardcoded 12 and 21 (a2bd049)
  • use idiomatic approach to state update (afe8287)
  • use null instead of unknown - at time zone null is null (fde17eb)
  • use raw archived = instead of knex binding (dcd40bb)
  • use SpokeSendStatus.Delivered (287f37d)
  • wrong number of vars for unsent assignments (3243bef)
  • apollo: remove buggy custom dataIdFromObject function (39e9504)
  • assignment: fix createdAt resolver (bdabaca)
  • assignment-requests: scope results to organization (ab7f156)
  • campaigns-list: add early return for All results case (666f5e4)
  • campaigns-list: skip limit/offset application for 'All' pageSize (fdbac58)
  • config: add ASSIGNMENT_COMPLETE_NOTIFICATION_URL (b946c75)
  • config: change STATIC_BASE_URL to str type (e245ce7)
  • config: create missing reference (76d473a)
  • config: fix envalid options (a54f2e2)
  • config: remove trailing dot in IP address (e6818a4)
  • config: switch config to process.env (25ecf33)
  • exports: order cte (a1dd25f)
  • lambda: load config file from correct location (9715086)
  • logging: fix config import (6d5c97d)
  • logging: fix rollbar setup (f9db668)
  • logging: remove errorCatcher (14b388c)
  • logging: remove log object complexity (655700a)
  • logging: remove unused client-side reference to server function (5ee63c3)
  • logging: use console for remaining client-side logs (e24f173)
  • metrics: pass custom StatsD to connect-datadog (5909678)
  • metrics: use standard connect-datadog library (fca59df)
  • teams: add column default (4c1f0ca)
  • teams: fetch organization's teams (2e00584)
  • teams: fix assignment_priority column name (9858387)
  • teams: manage teams and toggle independently (c87e1b0)
  • twilio: pass emtpy array rather than undefined to twilio (c9dde44)
  • util: return copy rather than mutating (5aed874)
  • utils: return offset (7574cf7)
  • add missing PasswordResetLink import (fdc3a0a)
  • apollo client singletown window reference (134655f)
  • assignment query (708fe7a)
  • assignment query subquery instead of left join (30660d0)
  • campaign contact tag.id (a98ff06)
  • construct and use RegEx correctly (794db0e)
  • invert incorrect boolean logic (426e6e0)
  • invite to organization creation (1205497)
  • order by old style (64ccf71)
  • question response in export (9c36f3a)
  • reduce scope of regex to specific domain (4e03e92)
  • reference knex correctly (630815d)
  • remove all config imports from client (6812062)
  • remove all config imports from client (843dc72)
  • remove apollo singleton from server (9cb939c)
  • remove order by (9cdb1d8)
  • requested pr changes (6b0719c)
  • return id field from insert and correct variable name. (95e75f1)
  • serve public dir if envvar is defined (07d9a0b)
  • set default of empty array for service_response (89dd361)
  • signing up with invite, button placement (41c6654)
  • signup (2f94693)
  • simplify renderIndex (2c1469c)
  • slack user team cron job (c776ce8)
  • standardize service_response (3909b0e)
  • test client correctly (ef86631)
  • tz.zone().utcOffset (077bbeb)
  • logging: use console everywhere (6f2348a)
  • unassign on escalate (7b49403)
  • use console instead of undefined log (6d45fb6)
  • use independent webpack envalid config file (745a5ae)
  • message-review: request userId when sending admin message (fb5d036)
  • tags: create new tagsFilter object (57efc8f)
  • update fakeservice sendMessage signature (6494627)
  • update numbers client usage (84815c2)
  • use reject within AuthHasher callbacks (5534a8a)
  • view definition (migrations already run in production) (d804570)
  • tags: reset tags every time the selection dialog is opened (e62a584)
  • tags: wrap PG lower function in knex.raw (d7ece37)
  • teams: add onDelete statements (76e3e0d)
  • teams: apply code review suggestions (04faf4a)
  • user: fix UserEdit required fields (7dad66e)
  • user: prevent password change for non-local login (2eda21f)
  • switch ordering of moment.diff arguments (e313914)
  • trim leading/trailing spaces in custom fields. (1d7fd94)
  • use timezone-aware logic everywhere (5d55156)

Features

  • add additional logging for assemble numbers (4fe865b)
  • add archived=false to assignment views (67818bc)
  • add campaign title to texter todo (132a433), closes #355
  • add client-side authentication check (3630383)
  • add early return if there are no cells to assign (06ba3d1)
  • add error handling for editCampaign (303ff8a)
  • add fine-grained control of notifications (b040b85)
  • add script to sync all active and recent campaigns (c6fada4)
  • add support for invite payloads (9d2aa57)
  • add team columns (ea9c177)
  • add timeouts to outbound http requests (4bdd699)
  • allow texters to choose assignment (de61f0b)
  • apply tags on skip reply (1180e95)
  • assign messaging service in sendMessage resolver (ce1a8bb)
  • cache authorization and some campaign fetches (3debbb3)
  • change team assignment column name; add AssignmentTarget.enabled (bb04b09)
  • contact level time zone assignment (17fe36c)
  • custom escalation tags gui (2bf21cf)
  • display authentication errors (a276099)
  • display authentication errors (8fcd440)
  • drop column should be same as up column; new team based assignment queries (12b62c9)
  • expose new team properties (dc45103)
  • filter by tags in incoming message review (2338794)
  • formalize enforced texting hours (fc4b90d)
  • generalize all message service assignment functionality (278d2a6)
  • implement unmarkforsecondpass and deleteneedsmessage (e08453c)
  • improve assignment request error handling (31c2fcf)
  • include archived condition on incoming message review query (6475be1)
  • include texter email address in search UI/params (d0584ea)
  • include timezone among campaign fields copied (9d1c48f)
  • increase password reset period to 1 day (5ab7912)
  • move assignment control flow to its own admin page (c7366d2)
  • move texting hours section to just after basics (95c7752)
  • notify client when Spoke is out of date (2811beb)
  • optimize search by texter (494b891)
  • order by campaign id, not due date (e41390a)
  • partial todos index (1a08628)
  • per contact messaging service types (39baad1)
  • refactor assignment queries to respect team_escalation_tags (9dad5f0)
  • search by unassigned (null texter) (3b15869)
  • show message.created_at if exists above campaign_contact.updated_at (741a2da)
  • show teams on campaign list (f95c1c4)
  • silence expected errors (f991105)
  • store md5 hash of script before variable substitution (aad419b)
  • support passing knex session (6f5df84)
  • support read replicas for a few key queries (6ea8a89)
  • support soft delete of tags view trigger and view (105419a)
  • support team-scoped assignment complete notifications (99ca099)
  • update knex migration signatures (cca0015)
  • update mutation to take multiple teams (6890f25)
  • update password reset text (a31f400)
  • update UI for new fields (bea031f)
  • use case insensitive search (f619144)
  • use cte style query chains for custom escalation tags assignment path (4ab83d6)
  • assemble-numbers: add assemble-numbers sending service (62b5ccd)
  • auth: limit password reset to local login (1abd2d4)
  • export: create export drivers for AWS and GCS (409049c)
  • exports: create export driver for GCS w/ HMAC auth (3ba3b0c)
  • exports: disable GCS with HMAC (4c5ea89)
  • exports: export texter information (510df6b)
  • exports: flesh out hmac signing for GCS (fd434bf)
  • exports: support mulitple export drivers (5e49d0d)
  • graphql: add mocks only in non-production environments (c34e8fb)
  • graphql: disable batched graphql requests (b537608)
  • graphql: restrict graphiql to non-production env (3808a21)
  • immutable-question-response: migration (b889d82)
  • local-login: capture login modes in enum (27714ea)
  • logging: add timestamps to log format (6d8b8b8)
  • logging: enable Rollbar the right way (0e33448)
  • logging: switch to connect-datadog-graphql (4bc517d)
  • logging: use console for client-side logging (ef091df)
  • logging: use most verbose logging level in development (5597462)
  • logging: use winston for server-side logging (042bf09)
  • message-review: allow admin sending to unassigned contact (0431022)
  • message-sending: add service_type column to messaging_service table (9ab6953)
  • monitoring: add healthcheck endpoint (aa91aa5)
  • pg: use reader for conversations query (5925c0a)
  • pg: use reader pool everywhere (f32d056)
  • pg: use trx over .transacting (ec726e6)
  • teams: add Assignment Request Controls component (d1275bf)
  • teams: add campaign<->team association (3be2c8e)
  • teams: add CrUD mutations for teams (09908e5)
  • teams: add organization<->team association (ac4f814)
  • teams: add team resolver (688ad29)
  • teams: add team selection to campaign edit page (4e35ad0)
  • teams: add teams migration (8002862)
  • teams: add UI for managing teams (72e0b6e)
  • teams: allow specifying teams to campaign (ffdfb32)
  • teams: clarify wording of instructions (26b9712)
  • teams: include type in current assignment HUD (fc81eb3)
  • ux: add overdue tag to overdue campaigns (2f07de9)
  • ux: add overdue warning to campaign edit page (970caa4)
  • ux: show overdue warning on stats page (cb7261f)
  • add currentAssignmentTargets and update campaign list ui (c2a6bdc)
  • allow opt-out without assignment ID (4d83c60)
  • cron job to sync teams with slack channel memberships (9701d1e)
  • option to apply tags without sending message (5a93d84)
  • upgrade assemble-numbers-client (300b931)
  • use DISABLE_TEXTER_NOTIFICATIONS to disable texter notifications (77e8f15)
  • use LocalAuthError type (2d7e0a3)
  • sweeping: add previous/next conversation navigation (def7c34)
  • tag: add tag management to sweeper view (22838b9)
  • tags: add reusable TagSelector component (ab798c0)
  • tags: handle tagConversation error (c3b3253)
  • teams: add member management page (e09e43d)
  • teams: add team member management mutations (a5bdf82)
  • teams: add team root query (c926d1a)
  • twilio: add defensive fix for null characters in database (2cefe70)
  • ux: add overflow menu to mobile texter view (997ee98)
  • remove text form block from settings (8d96db6)
  • remove updated_at calls from code (02f5e6b)
  • universal trigger based updated_at (6d4563a)
  • use LocalAuthError type (45f7752)
  • use myCurrentAssignmentTarget for form controls (b33ca1f)
  • write and use myAssignmentTarget for giveUserMoreTexts and form display decisions (d6ac7e2)
  • teams: add user<->team association (63c7e76)
  • teams: use live campaign values (1a2c145)
  • default assignment priority of 500 (19e1810)
  • open tags selector on focus (58065b3)
  • persist tag state between dialog opens (93d7f49)
  • separate out escalate tag (6f23b78)
  • config: add config file (3f4233a)
  • config: export separate client and server config objects (773d9b8)
  • config: migrate knex config (5e64d2a)
  • config: use envalid config everywhere (cff9e2a)
  • config: use envalid config for webpack (145899f)
  • exports: allow alternate AWS endpoint (df7b305)
  • tags: add ability to support tag colors in the future (5f0bfd3)
  • tags: add additional fields (08e7514)
  • tags: add admin UI for editing tags (eb40bef)
  • tags: add columns (be1d1b5)
  • tags: add error dialog for saveTag (0d15163)
  • tags: add tag management UI (d11978f)
  • tags: remove separate message editing field for tags (d61b3f3)
  • tags: switch to tagConversation mutation (81d5c88)
  • tags: update sendMessage payload for tags (db448f1)
  • add ability to set organization.features.numbersApiKey via organization settings (10594b1)
  • add datadog support via dogstatsd (df0c7df)
  • add release stage to Heroku Procfile (bbf004e)
  • cosmetic changes for local login. (9d44d65), closes MoveOnOrg/Spoke#1059
  • filter landlines on upload if numbersApiKey defined (5fcb6df)
  • if percent is more than 100 on upload, we are filtering (f044515)
  • implement local login (80ba1b5), closes MoveOnOrg/Spoke#658
  • include tags as list of titles in export (70ef3a1)
  • lock contacts tagged with tags.is_assignable = f out of assignment (46a54f5)
  • make incoming message review and esclated conversations review use tags (a50721e)
  • migration script (87d0160)
  • remove escalationUserId from resolvers (e793bd3)
  • tags: add GraphQL queries and mutations for tags (ca6d0e2)
  • tags: add migration for tags (ede1fba)
  • tags: create default tags during organization creation (8e90fc8)
  • tags: resolve naming collision for tags properties (1e88ef7)
  • reject numbers api keys with * (4cdd30a)
  • remove migration management (d2d0659)
  • support running knex from the command line (4a3149b)
  • use knex-style database seeding (8e15dd2)

Reverts

  • Revert "fix: truthy check on array" (fb8f52a)
  • revert pull request #265 - feat/no-mocks-in-prod (c5ec88e)
  • Revert "feat: add rollbar version" (e0420e6)
  • Revert "build(docker): include git in Docker image" (a089447)
  • Revert "fix(docker): account for git potentially being unavailable" (ad8f516)
  • Revert "Update Twilio TwiML usage." (1df8e51)
  • Revert "Sort messaging service SIDs, not the env var keys." (241a0f7)
  • Revert "Add field for specifying reply age." (6673cf8)
  • Revert "just return true for now" (73bd991)
  • Revert "Revert "Moveon main plus reassign all plus message review optout plus set message validity"" (01f7e2e)
  • Revert "Ability to return roles from campaign.texters" (c7713cf)
  • Revert "Avoid error if no campaign is found" (8a7aa7c)
  • Revert "Revert "Upgrade webpack and related deps to latest."" (d78c9d2)
  • Revert "Upgrade webpack and related deps to latest." (7befef7)
  • Revert "Removes fixed height for message fields for smaller screens" (2c887e5)
  • Revert "Revert "adds sqs message processing function"" (492e89c)
  • Revert "dependencies" (cefc3c9)
  • Revert "some ideas for how to mitigate campaign-contact QuestionResponses resolver" (72e5be6)
  • Revert "A few fixes for not finding organization settings. Revert after mig." (b2fd454)
  • Revert "One more commit to revert" (efb2b8a)
  • Revert "Hide sections and don't use unmigrated fields yet. Revert after migration." (07976c3)
  • Revert "Comment out making fields required. Revert after migration" (2e8b012)
  • Revert "Commit #2 to revert post-migration" (7020f0e), closes #2
  • Revert "Commit for deploy - revert after migration" (be9a62e)
  • Revert "Temporarily allow admin access instead of owner access -- revert after migration" (07edbfc)