Skip to content

feat(dashboard): mark built-in properties with $ in the property picker - #459

Open
ayushjhanwar-png wants to merge 1 commit into
Openpanel-dev:mainfrom
Dashverse:feat/property-picker-reserved-marker-upstream
Open

feat(dashboard): mark built-in properties with $ in the property picker#459
ayushjhanwar-png wants to merge 1 commit into
Openpanel-dev:mainfrom
Dashverse:feat/property-picker-reserved-marker-upstream

Conversation

@ayushjhanwar-png

@ayushjhanwar-png ayushjhanwar-png commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Problem

The property picker renders OpenPanel's built-in columns (geo-IP country, os, region, city, browser, device…) and client-sent properties (properties.country etc.) with the same label. When a client sends a property that shares a built-in name, the picker shows two identical "country" rows — one for the geo-IP column, one for properties.country — with no way to tell them apart.

Fix

Mark built-in ("reserved") properties — anything not under properties. / profile.properties. — with a leading $ (reserved-property convention), subtext "OpenPanel":

$country      OpenPanel      ← built-in geo-IP column
country       properties     ← client-sent properties.country

Display only — the selected value (and the filter/breakdown it produces) is the raw property, unchanged, so saved reports keep working; search still matches ($country contains "country"). Applies to both the event and profile property lists.

One file: apps/start/src/components/report/sidebar/PropertiesCombobox.tsx.

Summary by CodeRabbit

  • Bug Fixes
    • Improved property action labels in the report sidebar.
    • Reserved properties now display with the correct $ prefix and panel description.
    • Client properties retain their derived names and namespace descriptions.
    • Selected property values remain unchanged.

Built-in geo/device/session columns (country, os, region, browser…) and built-in
profile fields render with the same name as a client-sent property (built-in
geo-IP `country` vs a `properties.country` the SDK sends), so the picker shows
two identical "country" rows with no way to tell which is which.

Prefix the built-ins (anything not under `properties.` / `profile.properties.`)
with a leading `$` (reserved-property convention) and label their subtext
"OpenPanel". Display only: the selected value and the filter it produces are the
raw property, unchanged; search still matches.
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bf27e0e8-28a0-447b-9d2e-3d0036f6d164

📥 Commits

Reviewing files that changed from the base of the PR and between 8e60223 and 64b3a50.

📒 Files selected for processing (1)
  • apps/start/src/components/report/sidebar/PropertiesCombobox.tsx

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The combobox now centralizes property action formatting. Reserved properties receive $ labels and OpenPanel descriptions. Prefixed client properties use derived names and namespace descriptions. Profile and event property lists share this mapping.

Changes

Property action formatting

Layer / File(s) Summary
Shared property mapping
apps/start/src/components/report/sidebar/PropertiesCombobox.tsx
Adds toPropertyAction and uses it for profile and event properties. The helper preserves raw values and formats reserved and prefixed client properties.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 64b3a

This localized change clarifies built-in versus client-sent properties in the picker without changing saved report values or generated filters, so no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: displaying built-in properties with a "$" marker in the dashboard property picker.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

1 participant