You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-10-27] [Insights: Violations][R2] Add the date filter any-approval #99930
Part of the [Tracking] [Insights Violations] Release 2 issue: Expensify/Expensify#671675
Phase 6 of the Release 2 implementation order. Depends on Phase 3: Expensify/Expensify#676895 (any-approval date filter - Auth).
The largest App phase by file count.
Problem
approved is already wired end to end in App and any-approval needs the same wiring, otherwise the suggested search cannot express its date range.
Solution
Every step sits next to the equivalent approved entry.
Add ANY_APPROVAL: 'any-approval' to SYNTAX_FILTER_KEYS.
Add the five form keys ANY_APPROVAL_ON, ANY_APPROVAL_NOT, ANY_APPROVAL_AFTER, ANY_APPROVAL_BEFORE and ANY_APPROVAL_RANGE to FILTER_KEYS, and repeat them everywhere the APPROVED_* keys appear in SearchAdvancedFiltersForm.ts.
Map each new form key in FILTER_TO_SYNTAX_KEY, and add a FILTER_VIEW_MAP entry with labelKey: 'search.filters.anyApproval' and an icon.
Add the autocomplete cases in SearchAutocompleteUtils and useAutocompleteSuggestions, and add the key to the SYNTAX_FILTER_KEYS.APPROVED lists in useAdvancedSearchFilters.
Add the parser rule in baseRules.peggy and the rule name to the key lists in searchParser.peggy and autocompleteParser.peggy, then re-run npm run generate-search-parser and npm run generate-autocomplete-parser and commit the generated files.
Add the search.filters.anyApproval translation in en.ts and every other language file.
Tests
Automated and manual tests from the doc section must be included in the PR. Key automated cases: buildQueryStringFromFilterFormValues and buildFilterFormValuesFromQuery round-trip the ON, AFTER, BEFORE, RANGE and negated forms; the autocomplete suggests date presets after any-approval:; and the parser accepts any-approval in a query string, which also proves the parsers were regenerated and committed.
changed the title [-][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval - App[/-][+][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval[/+]on Aug 31, 2026
changed the title [-][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval[/-][+][Insights: Violations][R2] Add the date filter any-approval[/+]on Sep 22, 2026
Activity
nkdengineer commentedon Aug 31, 2026
Comment for assignment.
[-][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval - App[/-][+][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval[/+]daledah commentedon Aug 31, 2026
Comment for being assigned as the reviewer for this issue
[-][HOLD 676895][Insights: Violations][R2] Add the date filter any-approval[/-][+][Insights: Violations][R2] Add the date filter any-approval[/+]neil-marcellini commentedon Sep 22, 2026
@nkdengineer this is off hold now. Please start implementation.
nkdengineer commentedon Sep 23, 2026
@neil-marcellini I still see the backend error while testing.
neil-marcellini commentedon Sep 23, 2026
Resolved as mentioned in DM. It should be
anyApprovalwhen sent to the API. Sorry for the mistake in the issue description.17 remaining items
melvin-bot commentedon Oct 26, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Oct 26, 2026
Payment Summary
Resolving PRs:
[Insights: Violations][R2]: Add the date filter any-approval #101058
Reviewer: @nkdengineer owed $175 via NewDot
Reviewer: @daledah owed $175 via NewDot
BugZero Checklist (@mallenexpensify)
mallenexpensify commentedon Oct 28, 2026
Payment Summary
Contributor+: @nkdengineer due $250 via NewDot
Contributor+: @daledah due $250 via NewDot
twisterdotcom commentedon Oct 30, 2026
$250 approved for @nkdengineer in Report ID: R00AgwJoQv11.
Zapier Logs
Run ID: 00040eee-14e9-a2cb-a403-cf02dbf15c44SO: https://stackoverflowteams.com/c/expensify/questions/7582