From e4db79fdd168511994e15a5c7da634723004efa8 Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Wed, 11 Feb 2026 13:25:59 +0530 Subject: [PATCH 1/6] feat(frontier): add InputHintOption for structured preference options Add InputHintOption message with name and title fields for user-friendly option display in preference traits. The input_options field in PreferenceTrait allows specifying both machine-readable names and display titles. Co-Authored-By: Claude Opus 4.5 --- raystack/frontier/v1beta1/models.proto | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index 63581d24..6fc1b9ce 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -518,6 +518,14 @@ message AuditLog { }]; } +// InputHintOption represents a selectable option with a machine-readable name and user-friendly title +message InputHintOption { + // Machine-readable identifier (e.g., "sq_km", "megagram") + string name = 1; + // User-friendly display title (e.g., "Square Kilometers", "Megagram (Mg)") + string title = 2; +} + // PreferenceTrait is a trait that can be used to add preferences to a resource // it explains what preferences are available for a resource message PreferenceTrait { @@ -547,6 +555,9 @@ message PreferenceTrait { reserved 20 to 26; InputType input_type = 27; + // Structured input options with name and title for select/combobox/multiselect inputs + // Takes precedence over input_hints when both are provided + repeated InputHintOption input_options = 28; } message Preference { From a277680758949b6fc44d0bbc64bb65e4fbea3ee1 Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Wed, 11 Feb 2026 14:06:19 +0530 Subject: [PATCH 2/6] feat(frontier): add value_title to Preference message Add value_title field to show human-readable display title alongside the machine-readable value in preference responses. Co-Authored-By: Claude Opus 4.5 --- raystack/frontier/v1beta1/models.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index 6fc1b9ce..ebd3c3ec 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -572,6 +572,9 @@ message Preference { // scope_id is the identifier of the scope context (e.g., organization ID) // Only applicable when scope_type is set string scope_id = 7; + // value_title is the human-readable display title for the value + // Populated from InputHintOption.title when the trait has input_options configured + string value_title = 8; google.protobuf.Timestamp created_at = 10 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { description: "The time when the preference was created.", From 9ebaa2d55452e301b3bbd2fd73e035010d483a5e Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Mon, 16 Feb 2026 11:50:51 +0530 Subject: [PATCH 3/6] feat(frontier): rename value_title to value_description in Preference Rename title to description in InputHintOption and value_title to value_description in Preference message for better semantic clarity. Co-Authored-By: Claude Opus 4.5 --- raystack/frontier/v1beta1/models.proto | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index ebd3c3ec..e6040e28 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -522,8 +522,8 @@ message AuditLog { message InputHintOption { // Machine-readable identifier (e.g., "sq_km", "megagram") string name = 1; - // User-friendly display title (e.g., "Square Kilometers", "Megagram (Mg)") - string title = 2; + // User-friendly display description (e.g., "Square Kilometers", "Megagram (Mg)") + string description = 2; } // PreferenceTrait is a trait that can be used to add preferences to a resource @@ -572,9 +572,9 @@ message Preference { // scope_id is the identifier of the scope context (e.g., organization ID) // Only applicable when scope_type is set string scope_id = 7; - // value_title is the human-readable display title for the value - // Populated from InputHintOption.title when the trait has input_options configured - string value_title = 8; + // value_description is the human-readable display description for the value + // Populated from InputHintOption.description when the trait has input_options configured + string value_description = 8; google.protobuf.Timestamp created_at = 10 [(grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { description: "The time when the preference was created.", From 9ea399c2d5acbfb032587a8bd509a250a04c4e7c Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Mon, 16 Feb 2026 12:01:33 +0530 Subject: [PATCH 4/6] update comment --- raystack/frontier/v1beta1/models.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index e6040e28..dda957e8 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -518,7 +518,7 @@ message AuditLog { }]; } -// InputHintOption represents a selectable option with a machine-readable name and user-friendly title +// InputHintOption represents a selectable option with a machine-readable name and user-friendly descriptu=ion message InputHintOption { // Machine-readable identifier (e.g., "sq_km", "megagram") string name = 1; @@ -555,7 +555,7 @@ message PreferenceTrait { reserved 20 to 26; InputType input_type = 27; - // Structured input options with name and title for select/combobox/multiselect inputs + // Structured input options with name and description for select/combobox/multiselect inputs // Takes precedence over input_hints when both are provided repeated InputHintOption input_options = 28; } From f0e1082c79c700a84e6da11ca75a80ab6420bc00 Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Mon, 16 Feb 2026 12:04:35 +0530 Subject: [PATCH 5/6] update comment --- raystack/frontier/v1beta1/models.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index dda957e8..6990e6d6 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -518,7 +518,7 @@ message AuditLog { }]; } -// InputHintOption represents a selectable option with a machine-readable name and user-friendly descriptu=ion +// InputHintOption represents a selectable option with a machine-readable name and user-friendly description message InputHintOption { // Machine-readable identifier (e.g., "sq_km", "megagram") string name = 1; From 2d39b17ab48fcb3b513eb9f243493b5396ba4132 Mon Sep 17 00:00:00 2001 From: Abhishek Sah Date: Mon, 16 Feb 2026 12:35:53 +0530 Subject: [PATCH 6/6] update comment --- raystack/frontier/v1beta1/models.proto | 1 - 1 file changed, 1 deletion(-) diff --git a/raystack/frontier/v1beta1/models.proto b/raystack/frontier/v1beta1/models.proto index 6990e6d6..53b146d8 100644 --- a/raystack/frontier/v1beta1/models.proto +++ b/raystack/frontier/v1beta1/models.proto @@ -556,7 +556,6 @@ message PreferenceTrait { InputType input_type = 27; // Structured input options with name and description for select/combobox/multiselect inputs - // Takes precedence over input_hints when both are provided repeated InputHintOption input_options = 28; }