Skip to content

Update CSAT survey to be always on instead of annual#18657

Merged
harshpatel17 merged 6 commits into
mainfrom
harsh/dec4/csatSurvey
Dec 18, 2025
Merged

Update CSAT survey to be always on instead of annual#18657
harshpatel17 merged 6 commits into
mainfrom
harsh/dec4/csatSurvey

Conversation

@harshpatel17
Copy link
Copy Markdown
Contributor

@harshpatel17 harshpatel17 commented Dec 8, 2025

Description

Updates the Bicep CSAT survey to be "always on" instead of annual, and aligns survey behavior with Terraform's survey logic.

Changes

1. Survey link update

  • Changed aka.ms link from bicep/surveys/annual to bicep-csat-survey
  • Renamed variable from hatsAnnualSurveyInfo to hatsAlwaysOnSurveyInfo

Everything below are the changes made to align with Terraform's survey logic

2. "Maybe later" behavior

  • After clicking "Maybe later", user is asked again in 7 days instead of 14 days

3. Dismissed/ignored behavior

  • If user ignores/dismisses prompt, user is asked again in 7 days
  • Before: it was set to ask again on next activation (so we were actually being even more persistent than Terraform for ignores/dismisses)
  • Note: Didn't add what Terraform has for subsequent ignores ("they are asked every 30 days later") because it adds slight complexity and given the tight timeline

4. "Don't ask again" behavior

  • Changed button text from "Never ask again" to "Don't ask again"
  • Before: set bicep.enableSurveys: false (permanent opt-out)
  • After: Postpones survey prompt by 180 days
  • Note: Existing users who previously clicked "Never ask again" will still have the setting bicep.enableSurveys: false persisted and won't see surveys. Users can still manually set this setting to false if they want to permanently opt out.

Example Usage

Checklist

Microsoft Reviewers: Open in CodeFlow

@harshpatel17 harshpatel17 changed the title Update CSAT survey to be always-on instead of annual Update CSAT survey to be always on instead of annual Dec 8, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 8, 2025

Test this change out locally with the following install scripts (Action run 20346629732)

VSCode
  • Mac/Linux
    bash <(curl -Ls https://aka.ms/bicep/nightly-vsix.sh) --run-id 20346629732
  • Windows
    iex "& { $(irm https://aka.ms/bicep/nightly-vsix.ps1) } -RunId 20346629732"
Azure CLI
  • Mac/Linux
    bash <(curl -Ls https://aka.ms/bicep/nightly-cli.sh) --run-id 20346629732
  • Windows
    iex "& { $(irm https://aka.ms/bicep/nightly-cli.ps1) } -RunId 20346629732"

@harshpatel17 harshpatel17 enabled auto-merge (squash) December 8, 2025 22:59
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Dec 8, 2025

Dotnet Test Results

   102 files   -     51     102 suites   - 51   39m 23s ⏱️ - 28m 25s
12 577 tests  -      8  12 577 ✅  -      8  0 💤 ±0  0 ❌ ±0 
28 899 runs   - 14 428  28 899 ✅  - 14 428  0 💤 ±0  0 ❌ ±0 

Results for commit a3b9bfc. ± Comparison against base commit b0d5e2f.

This pull request removes 1962 and adds 669 tests. Note that renamed tests count towards both.

		nestedProp1: 1
		nestedProp2: 2
		prop1: true
		prop2: false
	1
	2
	\$'")
	prop1: true
	prop2: false
…
Bicep.Cli.UnitTests.Services.ReplEnvironmentTests ‑ ShouldSubmitBuffer_terminates_at_expected_point ("var foo = {
")
Bicep.Cli.UnitTests.Services.ReplEnvironmentTests ‑ ShouldSubmitBuffer_terminates_at_expected_point ("var multilineString = '''
Line 1
Line 2
Line 3
'''")
Bicep.Cli.UnitTests.Services.ReplEnvironmentTests ‑ ShouldSubmitBuffer_terminates_at_expected_point ("var outRoleAssignments object[] = union(map(
  filter(varMockedEntraGroupIds, item => !contains(item.uniqueName, 'DevOps')),
  group => {
    principalId: group.groupId
    definition: group.roleToAssign
    relativeScope: ''
    principalType: 'Group'
  }
),[
  {
    principalId: '22222222-2222-2222-2222-222222222222'
    definition: 'Reader'
    relativeScope: ''
    principalType: 'ServicePrincipal'
  }
])")
Bicep.Cli.UnitTests.Services.ReplEnvironmentTests ‑ ShouldSubmitBuffer_terminates_at_expected_point ("var test = {
  abc: 'def' // boo
}")
Bicep.Cli.UnitTests.Services.ReplEnvironmentTests ‑ ShouldSubmitBuffer_terminates_at_expected_point ("var varMockedEntraGroupIds = [
  {
    uniqueName: 'Reader-Group'
    roleToAssign: 'Reader'
    groupId: '11111111-1111-1111-1111-111111111111'
  }
  {
    uniqueName: 'Contributor-Group'
    roleToAssign: 'Contributor'
    groupId: '22222222-2222-2222-2222-222222222222'
  }
  {
    uniqueName: 'DevOps-Group'
    groupId: '33333333-3333-3333-3333-333333333333'
  }
]")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
�ӽ
�0\u0014\u0005�;�)B\u001f ��I�\u0011:\u0008\u000eV�
��\u0014Z�B��\u0007
���"tq��`��,w8p9<8&�6KҬ��4r\u0019p\u0018\u001a"�Q꓈�ODmz�d��u0��n�
\u0010�?	�\u001eIs
�2�:~��'�\u0015M^d� c�H*˭Պ�7w[gh߿�h~�_*\u0010ZH�\u000b�Q��O��M�����������G���t��\u0015#��;9��80�\u0017�\u0012��\u0000\u000c\u0000\u0000,"'7' is an invalid end of a number. Expected a delimiter. Path: $.INVALID_JSON | LineNumber: 0 | BytePositionInLine: 20.")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
��;
�0\u0010\u0004Э}
�@��d�*ܧ�\u0015\u00041���\u000f1��=�*�I�؅��i�\u0018XF��0\u001d�p��^*��\��\u0000�\u001a�I\u0000�\u0004,��u��D+\u0018�!t\u0004�>)\u0016�0��1�b���ڷ1S�h�KSW쬅s�x���5�օ�E}��������\u000bV\u000c�\u0005��Ѕ&��&�}���ںA�$IB\u001bx\u0003\u0000\u0014Rg\u0000\u000c\u0000\u0000,"The path: index.json was not found in artifact contents")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000
��=
�@\u0010\u0005�=��\u00016o6ɮ
�6��\u0007X͈��!?\u0010\u0010�.�\u000866&)�_�)\u001e\u000cOG;�m�gR��X��4�\u001b\u0000�$y'��\u0004R�u�\u001c@��\u0001�u�+\u0002h�x�Jߜח"�N_�{13\u000b�7�\�쬅s&�\u0006[k��Ʈ\u001b����ԛ���\u0013�
#�\u0014��Ǥ\u0006�d;��?�|_HWʱ�l+�A��J������݂ \u0008\u0002��\u000b-��Z\u0000\u000c\u0000\u0000,"Value cannot be null. (Parameter 'source')")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003�ӿ
�@\u000c\u0006��}��\u000fpMz�\u0005��.��\u000fpڈ\u0015[K�@A|w�E��R���-\u001f�\u000c���h熍�\�V\u001b�8�05DD�$�D�q"�v���\u001aP\u0003�A�v�\u0001DX&Z��u笨r\u0019���UA̪�R2bk����	y\u0015�}�7����g���$@)ń�\u000c��̜��K'�e����}%C-�N�\u0007iµ:�k+��o�<���g��r-u\u0000\u000c\u0000\u0000,"Value cannot be null. (Parameter 'source')")
Bicep.Core.IntegrationTests.AzTypesViaRegistryTests ‑ Bicep_compiler_handles_corrupted_extension_package_gracefully (\u001f�\u0008\u0000\u0000\u0000\u0000\u0000\u0000\u0003��1
�@\u0010\u0005Щ=��\u00016��͎\u0011,\u0004\u000b\u0015QA��@\u0016TH\u0014\u0013!��\u0005\u001b1�M�����L10���:��.�ܥ�\u00118\u000c4�
\u0000�1�\u0004�L �ƼXkH�ԁkY�\u0017\u0002�?q��i�\u001f\u001d����X��^8Pyu�݈�Z�����Ɖ�޷��Z��;}�����8�\u0011qd��\u0000�T'���w�o��r;^�&��f��\u000f���3�<���\u0017�\u0001��Ć\u0000\u000c\u0000\u0000,"'7' is an invalid end of a number. Expected a delimiter. Path: $.INVALID_JSON | LineNumber: 0 | BytePositionInLine: 20.")
…

♻️ This comment has been updated with latest results.

@harshpatel17 harshpatel17 disabled auto-merge December 8, 2025 23:05
@harshpatel17 harshpatel17 enabled auto-merge (squash) December 17, 2025 22:07
Comment thread src/vscode-bicep/src/feedback/surveys.ts
@harshpatel17 harshpatel17 merged commit 26762d6 into main Dec 18, 2025
43 checks passed
@harshpatel17 harshpatel17 deleted the harsh/dec4/csatSurvey branch December 18, 2025 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants