Skip to content

Commit e2f64a8

Browse files
committed
Merge branch 'main' into collectioneur/transition-tracker-v3
2 parents 6ec2e4e + 4b5b509 commit e2f64a8

269 files changed

Lines changed: 14302 additions & 9216 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/scripts/createInlineComment.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Secure proxy script to create an inline comment on a GitHub PR.
44
set -eu
55

6-
readonly ALLOWED_RULES_FILE="${GITHUB_WORKSPACE}/.claude/allowed-rules.txt"
6+
readonly ALLOWED_RULES_FILE="${ALLOWED_RULES_FILE:-${GITHUB_WORKSPACE}/.claude/allowed-rules.txt}"
77

88
# Print error and exit.
99
die() {

.github/workflows/claude-review.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
run: |
5858
"$GITHUB_WORKSPACE/.github/scripts/extractAllowedRules.sh" \
5959
"$GITHUB_WORKSPACE/.claude/skills/coding-standards/rules" \
60-
"$GITHUB_WORKSPACE/.claude/allowed-rules.txt"
60+
"$RUNNER_TEMP/allowed-rules.txt"
6161
6262
- name: Load code review JSON schema
6363
id: schema
@@ -82,6 +82,7 @@ jobs:
8282
env:
8383
GH_TOKEN: ${{ github.token }}
8484
STRUCTURED_OUTPUT: ${{ steps.code-review.outputs.structured_output }}
85+
ALLOWED_RULES_FILE: ${{ runner.temp }}/allowed-rules.txt
8586
run: |
8687
if [ -z "$STRUCTURED_OUTPUT" ]; then
8788
echo "::error::Claude Code Action returned empty structured output"

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009035807
115-
versionName "9.3.58-7"
114+
versionCode 1009035903
115+
versionName "9.3.59-3"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

docs/articles/new-expensify/reports-and-expenses/Adding-Attendees.md

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,60 @@
22
title: Adding Attendees
33
description: Learn how to add attendees to your expenses and resolve category limit errors by splitting the cost across participants.
44
keywords: [New Expensify, add attendees, expense attendees, split expense, category limit, attendee allocation]
5+
internalScope: Audience is all members. Covers adding attendees to an expense. Does not cover category limit policies member management.
56
---
67

7-
You can add attendees to an expense to indicate who participated in a meal, meeting, or event. This is especially helpful when your company has per-person category limits, as Expensify can split the cost evenly across all attendees to help avoid violations.
8+
# Adding Attendees
9+
10+
Adding attendees to an expense shows who participated in a meal, meeting, or event. Expensify automatically splits the total cost across all attendees, making it easier to track per-person spending and stay within company limits.
811

912
---
1013

11-
# Add Attendees to an Expense
14+
## Who can add attendees to an expense
1215

13-
1. From the navigation tabs (on the left on web, and at the bottom on mobile), head to **Reports > Expenses**.
14-
2. Open the expense and click the **Attendees** caret to expand attendee options.
15-
3. Select participants from your **Recents**, **Contacts**, or use the **Search bar** to find someone by name or email.
16-
4. To add someone new, manually enter their name or email. They’ll be saved to your Contacts for future use.
17-
5. Click on each attendee to add them. A checkmark (✅) will show who’s been selected.
18-
6. Click **Save**.
16+
All members can add attendees to their own expenses.
1917

2018
---
2119

22-
# Resolve Category Limit Errors by Adding Attendees
20+
## How to add attendees to an expense
2321

24-
If an expense exceeds a category limit set by your admin, you can resolve the issue by adding attendees.
22+
1. From the navigation tabs (on the left on web, and at the bottom on mobile), go to **Reports > Expenses**.
23+
2. Open the expense and click **Attendees**.
24+
3. Select attendees from **Recents**, **Contacts**, or enter a name, email, or phone number.
25+
4. Select each attendee to add a checkmark next to their name.
26+
5. Click **Save**.
2527

26-
1. Click the **Attendees** caret to open the attendee selector.
27-
2. Add the attendees involved in the expense.
28-
3. Expensify will automatically split the total cost across all attendees.
29-
4. Once added, a dot will appear between the **Attendees** field and the **per-person amount**, making it easy for approvers to verify the distribution.
28+
The selected attendees are added to the expense.
3029

3130
---
3231

33-
# Audit Trail for Attendees
32+
## What happens after you add attendees to an expense
33+
34+
- The total expense is automatically split evenly across all attendees
35+
- The per-attendee amount updates instantly on the expense
36+
- If your Workspace has per-attendee category limits, adding attendees can reduce the per-attendee amount and help resolve limit violations
37+
- Approvers can review attendee details during the approval process
38+
- All attendee changes are recorded in the expense history for auditing
39+
40+
---
41+
42+
# How to view attendees on a report
43+
44+
When any expense in a report has attendees, the report automatically shows two additional columns:
45+
46+
- **Attendees:** displays the attendees added to each expense.
47+
- **Per attendee:** shows the total amount divided equally among all attendees.
48+
49+
These columns appear in both the report and search results.
50+
51+
---
52+
53+
# FAQ
54+
55+
## Is there an audit trail for attendee changes?
56+
57+
Yes. Expensify automatically records all attendee updates in the expense history. These system records cannot be edited.
3458

35-
🕵️ **Note:** Expensify automatically records attendee changes on the expense report. These system messages cannot be edited, ensuring a clear and secure history of all attendee updates.
59+
## Can I edit attendees on an expense before it's submitted?
3660

61+
Yes. Open the expense, click **Attendees**, update the list, and click **Save**.

docs/articles/new-expensify/reports-and-expenses/How-to-Find-and-Resolve-Flagged-Duplicate-Expenses.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ Within the report, duplicate expenses will show the label **Potential duplicate*
3535

3636
---
3737

38-
<!-- SCREENSHOT:
39-
Suggestion: Show Inbox > Chat with red dot
40-
Design request:https://github.com/Expensify/Expensify/issues/614048
41-
-->
38+
![Inbox > Chat with red dot]({{site.url}}/assets/images/ExpensifyHelp-ResolveDuplicates_03.png){:width="100%"}
4239

4340
---
4441

@@ -56,10 +53,9 @@ Design request:https://github.com/Expensify/Expensify/issues/614048
5653

5754
---
5855

59-
<!-- SCREENSHOT:
60-
Suggestion: Show expense with Review Duplicates at the top
61-
Design request:https://github.com/Expensify/Expensify/issues/614048
62-
-->
56+
![expense with Review Duplicates at the top]({{site.url}}/assets/images/ExpensifyHelp-ResolveDuplicates_04.png){:width="100%"}
57+
58+
---
6359

6460
## What happens after you resolve a flagged duplicate
6561

@@ -73,9 +69,11 @@ The hold is removed from the expense. Depending on your choice:
7369
# FAQ
7470

7571
## Can I edit a duplicate expense after resolving it?
72+
7673
Yes, you can edit a duplicate expense as long as it is in the Unreported, Draft or Outstanding state.
7774

7875
## Will two SmartScanned receipts from the same day with the same amount be flagged?
76+
7977
Yes, unless:
8078
- The expenses were split from a single expense.
8179
- They were imported from a credit card.

docs/articles/new-expensify/reports-and-expenses/How-to-Merge-Expenses.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,9 @@ Use this method when both expenses are inside the same report.
7777

7878
---
7979

80-
<!-- SCREENSHOT:
81-
Show 2 expenses selected within a report > Selected button > Merge highlighted
82-
Design request:https://github.com/Expensify/Expensify/issues/614048
83-
-->
80+
![expenses selected within a report > Selected button > Merge highlighted]({{site.url}}/assets/images/ExpensifyHelp-ResolveDuplicates_01){:width="100%"}
81+
82+
---
8483

8584
## How to merge duplicate expenses from an individual expense
8685

@@ -94,10 +93,7 @@ Design request:https://github.com/Expensify/Expensify/issues/614048
9493

9594
---
9695

97-
<!-- SCREENSHOT:
98-
Open one individual expense > More > Merge > one eligible expense selected.
99-
Design request:https://github.com/Expensify/Expensify/issues/614048
100-
-->
96+
![one individual expense > More > Merge > one eligible expense selected]({{site.url}}/assets/images/ExpensifyHelp-ResolveDuplicates_02){:width="100%"}
10197

10298
---
10399

docs/articles/new-expensify/reports-and-expenses/Managing-Expenses-in-a-Report.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ The table displays:
9090
- Date
9191
- Merchant
9292
- Category
93+
- Attendees (if any expense has attendees)
94+
- Per attendee (if any expense has attendees)
9395
- Amount
9496
- Workspace violations (if applicable)
9597

docs/articles/new-expensify/reports-and-expenses/Using-search-operators.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
---
2-
title: "How to use search operators in Expensify"
3-
description: "Learn how to use advanced search filters, comparisons, and groupings to find exactly what you need across expenses, chats, reports, and more."
4-
keywords: "search operators, filters, search rules, expense search, report search, chat filters, advanced search, group-by, search syntax"
2+
title: How to use search operators in Expensify
3+
description: Learn how to use advanced search filters, comparisons, and groupings to find exactly what you need across expenses, chats, reports, and more.
4+
keywords: [New Expensify, search operators, filters, search rules, expense search, report search, chat filters, advanced search, group-by, view, chart, search syntax]
5+
internalScope: Audience is all Expensify users. Covers search operator syntax for filtering, grouping, and chart views. Does not cover saved search management or Search page UI navigation.
56
---
67

7-
<div id="new-expensify" markdown="1">
8-
98
The search operator framework lets you quickly filter, sort, and group items like expenses, chats, reports, and tasks using powerful text-based rules. This guide walks you through the supported syntax, available filters, and usage tips.
109

1110
---
@@ -101,12 +100,12 @@ type:task assignee:"Charlie Brown" status:outstanding
101100

102101
---
103102

104-
# Available filters for grouping and currency conversion
103+
## How to use grouping, chart views, and currency conversion filters
105104

106-
Use `group-by:` to analyze data by dimension, and `group-currency:` to normalize totals.
105+
Use `group-by:` to analyze data by dimension, `view:` to choose how grouped results are displayed, and `group-currency:` to normalize totals.
107106

108107
```
109-
group-by:merchant group-currency:USD
108+
group-by:category view:bar group-currency:USD
110109
```
111110

112111
Supported groupings include:
@@ -123,6 +122,19 @@ Supported groupings include:
123122
- `group-by:quarter` - Group by fiscal quarter
124123
- `group-by:year` - Group by calendar year
125124

125+
## How to choose a chart view for grouped results
126+
127+
When using `group-by:`, you can add `view:` to control the visualization type. If you save a grouped search with a specific `view:`, that choice is preserved in the saved search label.
128+
129+
Supported views:
130+
131+
- `view:table` - Display grouped results as a table (default)
132+
- `view:bar` - Display grouped results as a bar chart
133+
- `view:pie` - Display grouped results as a pie chart
134+
- `view:line` - Display grouped results as a line chart
135+
136+
> **Note:** The `view:` operator only applies when `group-by:` is also used. Without `group-by:`, the `view:` value is ignored.
137+
126138
---
127139

128140
# FAQ
@@ -139,4 +151,3 @@ If the search operator isn’t recognized, the system will ignore it and return
139151

140152
Only use quotes for values that include spaces or exact phrases, like `description:"client lunch"` or `in:"#general"`.
141153

142-
</div>

0 commit comments

Comments
 (0)