Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
828 commits
Select commit Hold shift + click to select a range
1e9327c
- Fixed an issue where the Group Detail block did not load attribute …
maxwelleley May 19, 2026
518cd37
Merge branch 'release-19.0' into hotfix-19.1
maxwelleley May 19, 2026
fe635f5
Merge branch 'hotfix-19.1' into develop
maxwelleley May 19, 2026
3404bdc
- Added due status support to the Mobile Connection block.
Panha-Sim May 19, 2026
430f73b
Merge remote-tracking branch 'origin/hotfix-19.1' into develop
Panha-Sim May 19, 2026
fe4ffc2
Merge branch 'hotfix-19.1' into develop
maxwelleley May 19, 2026
81a4818
- Improved Obsidian list blocks to display name and description using…
kylehenning May 19, 2026
3c76fde
Merge branch 'hotfix-19.1' into develop
kylehenning May 19, 2026
40e3fde
- Fixed build issue.
kylehenning May 19, 2026
d4c22fd
Merge branch 'hotfix-19.1' into develop
kylehenning May 19, 2026
f21a4b3
- Updated claude reference files to cover Highlight Detail Columns wh…
kylehenning May 19, 2026
37b94d4
- Code Generation, Migration rollups, and version update for 18.3 alp…
nairdo May 19, 2026
153f7ea
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-19.1
nairdo May 19, 2026
fd9602b
- Code Generation, Migration rollups, and version update for 19.1 alp…
nairdo May 20, 2026
d991592
+ (Prayer) Fixed an issue on the Prayer Request List block that would…
cabal95 May 20, 2026
a74ec5b
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 May 20, 2026
5ca5d57
- Fixed an issue where the Group Detail block did not load attribute …
maxwelleley May 19, 2026
51015fb
+ (Workflow) Updated the v20 Form Builder Detail UI, converted Form S…
joshuahenninger May 20, 2026
b413d84
- QA Kickback changes
CarterHenning May 20, 2026
fa2d6b0
- Fix Rock.Bus.Faults.ReceiveFaultObserver exception errors in VS out…
nairdo May 20, 2026
002b182
- PreAlpha 20260520 Migrations (part 1)
nairdo May 20, 2026
ec090d1
- PreAlpha 20260520 Migrations (part 2)
nairdo May 20, 2026
128b8fb
- Updated Build Version (20.0.3)
nairdo May 20, 2026
a57d8d6
- entity types list block styling changes after qa feedback
CarterHenning May 20, 2026
1ff76ed
Merge remote-tracking branch 'origin/develop' into pre-alpha-release
nairdo May 21, 2026
e6e65b8
- Fixed CI build error from naming convention on variable.
cabal95 May 21, 2026
14d9930
- Added missing XML comments for public class ContentChannelViewCusto…
nairdo May 21, 2026
94d5f20
- Start 18.4.0 branch
nairdo May 21, 2026
afd3fa1
- ncoa results list obsidian block adjustments
CarterHenning May 21, 2026
6fbceef
- Minor fix to the new server field validation around attribute abbre…
cabal95 May 21, 2026
56b2e1a
- Minor fix to the new server field validation around attribute abbre…
cabal95 May 21, 2026
aab21e4
Merge remote-tracking branch 'origin/hotfix-17.8' into hotfix-18.3
cabal95 May 21, 2026
64f661d
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-19.1
cabal95 May 21, 2026
9201250
Merge branch 'hotfix-19.1' into hotfix-19.2
cabal95 May 21, 2026
4a9a493
Merge branch 'hotfix-19.2' into develop
cabal95 May 21, 2026
29b6df1
- Update to 19.1.2
nairdo May 21, 2026
086ed00
- Update 18.3.2
nairdo May 21, 2026
7be8d59
Merge branch 'hotfix-18.3' into hotfix-18.4
nairdo May 21, 2026
ec9c1c5
- transaction detail block enhancements and fixes
CarterHenning May 21, 2026
d591910
- missing files from "transaction detail block enhancements and fixes…
CarterHenning May 21, 2026
94dc24b
- Fixed cross-context query issue in ContentChannelView and tidied re…
joshuahenninger May 22, 2026
708fcfc
- Fixed cross-context query issue in ContentChannelView and tidied re…
joshuahenninger May 22, 2026
34d54ad
- Fixed issue where the mobile profile detail block doesn't allowed s…
Panha-Sim May 22, 2026
cf89a74
- Update RockImage.GetPersonImageFromBinaryFileService (...) verify B…
nairdo May 23, 2026
350a2aa
Merge remote-tracking branch 'origin/hotfix-18.4' into hotfix-19.2
nairdo May 23, 2026
766ade6
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo May 23, 2026
8d8ebce
- Added 'Allow HTML' setting to Text field type to resolve issues whe…
cabal95 May 26, 2026
c2de32e
Merge remote-tracking branch 'origin/hotfix-17.8' into hotfix-18.3
cabal95 May 26, 2026
3236742
- Fixed an issue with server side validation of attribute values igno…
cabal95 May 26, 2026
a8268f3
Merge remote-tracking branch 'origin/hotfix-17.8' into hotfix-18.3
cabal95 May 26, 2026
180d1f3
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-19.1
cabal95 May 26, 2026
e7f3b5c
- Relocated ElevatedSecurityLevel enum to Rock.Enums.
maxwelleley May 26, 2026
0e28c16
- Updated several Group-related blocks to accept IdKey for the GroupI…
maxwelleley May 26, 2026
c32ad7d
- Added an allowInactiveSelection prop to the SchedulePicker control …
maxwelleley May 26, 2026
cc16f28
- Added titleIconCssClass and headerLabels props to the DetailBlock t…
maxwelleley May 26, 2026
977c919
- Updated the GroupTypeDetail block to fix a few minor issues and imp…
maxwelleley May 26, 2026
1787efc
+ (Group) Added a PhotoId column to the Group entity.
maxwelleley May 26, 2026
cd605f0
- Updated the Group docs to reflect the new Group Detail Obsidian blo…
maxwelleley May 26, 2026
aa85e26
- Added the obsidian Group Detail block and chopped webforms.
maxwelleley May 26, 2026
bb94e62
- Fixed error when putting HTML content the Set Workflow Attribute ac…
cabal95 May 26, 2026
719d949
Merge remote-tracking branch 'origin/hotfix-17.8' into hotfix-18.3
cabal95 May 26, 2026
5ea0bac
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-19.1
cabal95 May 26, 2026
a2c34d1
Merge branch 'hotfix-19.1' into hotfix-19.2
cabal95 May 26, 2026
501b527
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 May 26, 2026
31d7e92
- Fixed a number of issues with the server model validation logic via…
cabal95 May 26, 2026
db9c530
+ (Connection) Fixed the Default Connector picker not appearing on a …
maxwelleley May 27, 2026
135ca28
Merge branch 'hotfix-19.2' into develop
maxwelleley May 27, 2026
201026a
- Update to 19.1.3
nairdo May 27, 2026
0d894d6
- Update 18.3.3
nairdo May 27, 2026
967882f
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-18.4
nairdo May 27, 2026
5d261e9
Merge remote-tracking branch 'origin/hotfix-18.4' into hotfix-19.2
nairdo May 27, 2026
6163109
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo May 27, 2026
f91b197
+ (Reporting) Fixed an issue that prevented DOCX merge templates with…
cabal95 May 27, 2026
d655dd9
Merge branch 'hotfix-19.1' into hotfix-19.2
cabal95 May 27, 2026
92550c2
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 May 27, 2026
0331c41
- (Connection) Fixed the Connections Hub crash when a Connection Type…
kylehenning May 28, 2026
0d46485
Merge remote-tracking branch 'origin/hotfix-19.1' into hotfix-19.1
kylehenning May 28, 2026
135c326
Merge branch 'hotfix-19.1' into hotfix-19.2
kylehenning May 28, 2026
d56648c
Merge branch 'hotfix-19.2' into develop
kylehenning May 28, 2026
1d89f4a
- Update to 19.1.4
nairdo May 28, 2026
0692ee1
- Fixed Rock.Tests build error from merge.
cabal95 May 28, 2026
c729471
- Added an Obsidian/TypeScript conventions rule file documenting ESLi…
joshuahenninger May 21, 2026
38a1010
- Code Generation, Migration rollups, and version update for 17.8 alp…
nairdo May 28, 2026
95d3a2d
+ (Workflow) Fixed an issue where the Person Entry Form would overwri…
kylehenning May 28, 2026
924792d
Merge branch 'hotfix-19.2' into develop
kylehenning May 28, 2026
7d66f33
- Added support for both CampusId and ScheduleId as query string para…
cabal95 May 28, 2026
82eb917
- Added support for both CampusId and ScheduleId as query string para…
cabal95 May 28, 2026
533d704
- calendar dimension settings block chopped
CarterHenning May 28, 2026
e097c2a
+ (Finance) Updated the Benevolence Request Detail block to honor blo…
maxwelleley May 28, 2026
3708ab6
Merge branch 'hotfix-19.1' into hotfix-19.2
maxwelleley May 28, 2026
e1f0e3e
Merge branch 'hotfix-19.2' into develop
maxwelleley May 28, 2026
48a81ea
+ (CMS) Fixed an issue where .webp images could not be previewed in t…
maxwelleley May 28, 2026
e573a3c
Merge branch 'hotfix-19.2' into develop
maxwelleley May 28, 2026
6649c60
- Fixed DatabaseConfiguration properties so they dynamically retrieve…
cabal95 May 28, 2026
3f79399
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 May 28, 2026
b74abf8
- Fixed the Named Location Detail block so a saved location is select…
maxwelleley May 28, 2026
1f7480e
Merge branch 'hotfix-19.2' into develop
maxwelleley May 28, 2026
4b0005c
+ (Group) Fixed an issue where the Group Scheduler block's Send Confi…
nairdo May 29, 2026
54f5364
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo May 29, 2026
ca97c3e
- Fixed two components using KeyValueFieldAttribute that needed Allow…
cabal95 May 29, 2026
be4534f
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 May 29, 2026
4d8b2e2
- Fixed the Page Properties modal failing to render Matrix and Conten…
maxwelleley May 29, 2026
8d98fab
Merge branch 'hotfix-19.2' into develop
maxwelleley May 29, 2026
d96c4e6
- work flow trigger list block conversion and chop
CarterHenning May 29, 2026
2d2e99c
- Improved error message for attribute value validation errors. Messa…
cabal95 May 29, 2026
3e5b9d6
- Added a Sortable Tree Obsidian control.
jasonhendee May 29, 2026
261cd04
- Fixed XML reference build warnings.
cabal95 May 31, 2026
715658a
- Fixed incorrect block attribute key on ContentCollectionView and du…
cabal95 May 31, 2026
c36cc70
- Fix small issue that caused certain block attributes to be updated …
cabal95 May 31, 2026
460a9e9
- Updated all Block field attributes to use the format prescribed in …
cabal95 May 31, 2026
180fdd0
- Updated all Workflow Action field attributes to use the format pres…
cabal95 May 31, 2026
60ac341
- Updated all Job Type field attributes to use the format prescribed …
cabal95 Jun 1, 2026
eca1ac3
- Restored 'using' statement lost during merge which caused build err…
cabal95 Jun 1, 2026
8546a2f
- Fixed an issue with the Connections List where the request data cou…
kylehenning Jun 1, 2026
c4ec895
Merge branch 'hotfix-19.1' into hotfix-19.2
kylehenning Jun 1, 2026
cf1f7a4
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 1, 2026
d27d9ed
- Added the obsidian Bulk Update block and chopped webforms. The bulk…
maxwelleley Jun 1, 2026
2635df6
+ (Prayer) Added a server-side date range filter to the Prayer Reques…
maxwelleley Jun 1, 2026
571ccc2
Merge branch 'hotfix-19.1' into hotfix-19.2
maxwelleley Jun 1, 2026
a7d0334
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 1, 2026
efb5618
+ (Group) Fixed a misleading group type error message in the Group De…
maxwelleley Jun 1, 2026
54b7a7e
+ (Group) Fixed an issue where copying a group would duplicate its in…
maxwelleley Jun 1, 2026
99b2dec
Merge remote-tracking branch 'origin/hotfix-19.2' into hotfix-19.2
maxwelleley Jun 1, 2026
705fea7
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 1, 2026
deb2ff6
- Applied the fix from efb56188 to the Obsidian Group Detail block, w…
maxwelleley Jun 1, 2026
8fe6b64
+ (Core) Improved the Process BI Analytics job to show a clear warnin…
nairdo Jun 1, 2026
54fc59e
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo Jun 1, 2026
6ab04d0
+ (Finance) Fixed AnalyticsSourceDate.FiscalWeekNumberInYear so it tr…
nairdo Jun 1, 2026
68fd956
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo Jun 1, 2026
bcafeb9
+ (Workflow) Fixed a typo in the Workflow Entry block's unauthorized …
kylehenning Jun 2, 2026
e5e47f8
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 2, 2026
4875010
- Fixed push notification registration being cleared when finishing o…
Panha-Sim Jun 2, 2026
7438508
- Updated some obsidian blocks to ensure functional parity with their…
maxwelleley Jun 2, 2026
3467cbb
Merge branch 'hotfix-19.1' into hotfix-19.2
maxwelleley Jun 2, 2026
410e299
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 2, 2026
1017f6e
- Fixed an issue where the Personalized Communication History Webform…
kylehenning Jun 2, 2026
212a62a
Merge branch 'hotfix-19.1' into hotfix-19.2
kylehenning Jun 2, 2026
9156664
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 2, 2026
1259795
- Fixed an issue where the Legacy Communication Entry Wizard would st…
kylehenning Jun 2, 2026
aad12b8
- fix build error
maxwelleley Jun 2, 2026
61ec318
Merge branch 'hotfix-19.1' into hotfix-19.2
maxwelleley Jun 2, 2026
b43fc28
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 2, 2026
8f3b936
- Removed duplicate FinancialSourceType block setting for Transaction…
cabal95 Jun 2, 2026
71834ad
- Update to 19.1.5
nairdo Jun 2, 2026
3a5333b
Merge branch 'hotfix-19.1' into hotfix-19.2
nairdo Jun 2, 2026
5c71fe5
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo Jun 2, 2026
59093e6
- Added the obsidian DataViewResults block and chopped webforms.
maxwelleley Jun 2, 2026
e7cc929
- Improved the Metric Value List block to hide while the metric itsel…
maxwelleley Jun 2, 2026
3373a11
- Updated RockPage.HideSecondaryBlocks to also hide/show Obsidian Sec…
maxwelleley Jun 2, 2026
6135376
- Added the Obsidian Check-in Areas and Groups block and chopped the …
jasonhendee Jun 2, 2026
d329441
+ (CMS) Added a Status field to Persisted Datasets that records the r…
jasonhendee Jun 2, 2026
7bd0ea4
- Added the obsidian TransactionFeeReport block and chopped webforms.
maxwelleley Jun 2, 2026
7bdbaf9
- Completed the Check-in Areas and Groups spec.
jasonhendee Jun 3, 2026
6c778c3
- Added a few patches following the Group Detail QA review.
maxwelleley Jun 3, 2026
e7eabdd
- Updated the Group Member List block to handle IdKeys for the GroupI…
maxwelleley Jun 3, 2026
f205860
- Standardized the Group Member Workflow trigger labels and modal tit…
maxwelleley Jun 3, 2026
b233c2a
+ (Mobile) Updated the default layouts seeded for new mobile applicat…
Panha-Sim Jun 3, 2026
0776050
- Added the obsidian FormTemplateList block and chopped webforms.
maxwelleley Jun 3, 2026
032f660
- Updated the title of the Form Template List block to match the lega…
maxwelleley Jun 3, 2026
63ce1d8
- registrant wait list move block chop
CarterHenning Jun 3, 2026
eac9e07
Update SECURITY.md
jonedmiston Jun 3, 2026
66bb499
- Added the obsidian PhoneNumberIdentification block and chopped webf…
maxwelleley Jun 3, 2026
2c43642
- Added default auth role to Benevolence Request Detail Blocks to mat…
kylehenning Jun 3, 2026
14f6118
Merge branch 'hotfix-19.1' into hotfix-19.2
kylehenning Jun 3, 2026
ca64f85
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 3, 2026
a68e789
- Update FormTemplateDetail to handle idkeys.
maxwelleley Jun 3, 2026
6396ad7
- Updated obsidian-conventions.md with the .obs SFC block order (temp…
joshuahenninger Jun 3, 2026
49155da
+ (Communication) Added a Create Connection Request SMS pipeline acti…
joshuahenninger Jun 4, 2026
459ec73
- (Lava) Fixed an exception in the 'Where' Lava filter that was throw…
nairdo Jun 4, 2026
0a54f3b
+ (Group) Fixed the Group RSVP Detail block Excel export to include t…
maxwelleley Jun 4, 2026
d3d3e05
- Updated the export title of the obsidian RSVP Detail block.
maxwelleley Jun 4, 2026
e6222f4
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 4, 2026
b2c7096
- Update to 19.1.6
nairdo Jun 4, 2026
6c22da5
Merge branch 'hotfix-19.1' into hotfix-19.2
nairdo Jun 4, 2026
24da910
Merge remote-tracking branch 'origin/hotfix-19.2' into hotfix-19.2
nairdo Jun 4, 2026
2a43235
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo Jun 4, 2026
e92a233
+ (Connection) Fixed the Connection Opportunity Signup block to suppo…
maxwelleley Jun 4, 2026
5604fd3
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 4, 2026
91f8f50
- Fixed the Group Detail block to explain why the Group Type dropdown…
maxwelleley Jun 4, 2026
a2d5c58
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 4, 2026
5698be3
- Apply the fix for 91f8f509 ( webforms ) to obsidian GroupDetail block.
maxwelleley Jun 4, 2026
75c7895
+ (Finance) Added per-account allocations (AccountAllocations) to Pay…
nairdo Jun 4, 2026
81c7f8c
- Moved the PaymentInfo AccountAllocations spec to specs/completed/fi…
nairdo Jun 4, 2026
2ac5853
- Fixed the Outreach Dashboard and Outreach Onboarding blocks to reta…
Panha-Sim Jun 4, 2026
757ee50
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
Panha-Sim Jun 4, 2026
fdda501
- Added the obsidian VerifySecurity block and chopped webforms.
maxwelleley Jun 4, 2026
b12da75
- (Group) Improved the performance of the Group Schedule Toolbox bloc…
jasonhendee Jun 4, 2026
9539f9c
- rock security settings block chop
CarterHenning Jun 4, 2026
9c7b755
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
jasonhendee Jun 4, 2026
80853db
- Completed the Group Schedule Toolbox Sign-Up Save Performance spec.
jasonhendee Jun 4, 2026
09b710a
+ (Engagement) Fixed the Sign-Up Finder block so it honors Group view…
jasonhendee Jun 4, 2026
0f0ec2f
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
jasonhendee Jun 4, 2026
4eae89d
- Fixed an issue where person reminder links in the Reminder List blo…
maxwelleley Jun 4, 2026
97aa50d
- Styling: fixed account picker input-group button size
jnevius Jun 5, 2026
11615cc
- Added response for standard security.txt file.
cabal95 Jun 5, 2026
88fd08a
- Package Category List Lava block converted into obsidian. Now named…
CarterHenning Jun 5, 2026
4b86e56
+ (Group) Fixed an issue with the Group Placement Block where Person …
kylehenning Jun 5, 2026
e9bf26f
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 5, 2026
4e84760
+ (CRM) Fixed the Family Pre-Registration block showing person attrib…
joshuahenninger Jun 5, 2026
4baadb0
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
joshuahenninger Jun 5, 2026
63c8cb8
- Updated Outreach Toolbox generation to ignore future dated touchpoi…
cabal95 Jun 5, 2026
050f935
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
cabal95 Jun 5, 2026
3ed99f4
- Fixed the Outreach Dashboard and Outreach Onboarding blocks to reta…
Panha-Sim Jun 5, 2026
047d71c
+ (Core) Fixed an error that prevented the Geography Picker from load…
nairdo Jun 5, 2026
fe3c5ec
- Update 17.8.2-alpha
nairdo Jun 5, 2026
9ec45e9
Merge remote-tracking branch 'origin/hotfix-17.8' into hotfix-18.3
nairdo Jun 5, 2026
b71b506
- Update the VerifySecurity obsidian block to hide the action column …
maxwelleley Jun 5, 2026
fcf53c0
- Update 18.3.4
nairdo Jun 5, 2026
0cc2e3c
- Link Organization block conversion and chop
CarterHenning Jun 5, 2026
8db063a
- Fixed the Person Picker control no longer displaying its label afte…
maxwelleley Jun 5, 2026
0b7eaa1
Merge remote-tracking branch 'origin/hotfix-18.3' into hotfix-19.1
nairdo Jun 5, 2026
f88a228
- Update to 19.1.7
nairdo Jun 5, 2026
3c432f8
Merge branch 'hotfix-19.1' into hotfix-19.2
nairdo Jun 5, 2026
bc558e7
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
nairdo Jun 6, 2026
1e8caff
- (Core) Improved performance by caching Rock security settings so re…
jasonhendee Jun 5, 2026
ca2292f
- Completed the GetPersonPhotoUrl Performance Bottleneck spec.
jasonhendee Jun 8, 2026
fc7cc06
+ (Connection) Added a "My Connections" view to the Connections Hub B…
kylehenning Jun 8, 2026
33ea22d
- My Connections view migration
kylehenning Jun 8, 2026
2f076e4
- Fixed an error when adding requests from a campaign in the Connecti…
kylehenning Jun 8, 2026
b83fbe6
Merge branch 'hotfix-19.2' into develop
kylehenning Jun 8, 2026
49d78ee
- Styling: refactored Email Preference Entry block to use section for…
jnevius Jun 8, 2026
08ea70f
- Styling: fixed Stark theme color variable issues.
jnevius Jun 8, 2026
29ecde8
- (Core) Added the Smarty Streets International location service for …
nairdo Jun 8, 2026
e77a856
- Added Entity Attribute compatibility with transaction detail obsidi…
CarterHenning Jun 8, 2026
80a66e0
+ (CRM) Fixed an exception that prevented person profile views from b…
nairdo Jun 8, 2026
428dec9
- (Communication) Fixed the links used to navigate between Communicat…
jasonhendee Jun 8, 2026
35ecea8
- (Communication) Fixed the links used to navigate between Communicat…
jasonhendee Jun 8, 2026
b4c670d
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
jasonhendee Jun 8, 2026
505d34f
+ (CMS) Fixed Person Attribute Values configured for indexing not bei…
jasonhendee Jun 9, 2026
456646d
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
jasonhendee Jun 9, 2026
c1fafde
- Added a Comments column to the Prayer Request List block that count…
maxwelleley Jun 9, 2026
b922284
- Update the BulkUpdate block following QA review.
maxwelleley Jun 9, 2026
aff4a0a
- (Core) Fixed the Id column wrapping in the Exception Occurrences bl…
jasonhendee Jun 9, 2026
ef81f49
Merge remote-tracking branch 'origin/hotfix-19.2' into develop
jasonhendee Jun 9, 2026
953c92c
- Styling: updated Exception Occurrence and Detail title color
jnevius Jun 9, 2026
d41ab17
- Promo List Lava chopped and converted into Promo List obsidian
CarterHenning Jun 9, 2026
e2e14aa
- (CMS) Added a hotfix data migration that finalizes the conversion o…
nairdo Jun 9, 2026
3172800
- Fix for Rotator sizing bug on page refresh
CarterHenning Jun 9, 2026
5867c5f
+ (Core) Added a Days field to the Schedule Builder duration so multi…
nairdo Jun 9, 2026
3c13c3b
- Added plugin migrations for pre-alpha build
nairdo Jun 10, 2026
2710769
+ (Group) Fixed the Group Registration block erasing an existing pers…
maxwelleley Jun 10, 2026
5f0c128
Merge branch 'hotfix-19.2' into develop
maxwelleley Jun 10, 2026
fa03562
- Fixed compiler warnings and code generation.
nairdo Jun 10, 2026
d6662d5
- Updated Build Version (20.0.4)
nairdo Jun 10, 2026
56b3d6d
- Update the DataViewResults block following QA
maxwelleley Jun 10, 2026
1525a56
Merge remote-tracking branch 'origin/develop' into pre-alpha-release
nairdo Jun 10, 2026
df1c420
Merge remote-tracking branch 'origin/develop' into pre-alpha-release
nairdo Jun 10, 2026
f776c8c
- removed legacy rock theme
briankalwat Jul 15, 2026
28e5e82
Merge pull request #1496 from NewSpring/pre-alpha-sync
briankalwat Jul 15, 2026
9753395
Merge branch 'master' into beta
briankalwat Aug 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .claude/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
settings.local.json
244 changes: 244 additions & 0 deletions .claude/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
# Claude Code for Rock RMS

A developer guide for using [Claude Code](https://code.claude.com/docs/en/overview) in the Rock RMS codebase.

> **Note:** This guide is written for the terminal (CLI) experience. Claude Code is also available as a [VS Code extension](https://code.claude.com/docs/en/vs-code) and through the [Claude desktop app](https://code.claude.com/docs/en/desktop). The core concepts -- skills, rules, MCP, context management -- apply everywhere, but the commands and examples below assume you're working in a terminal.

---

## 1. Overview

Claude Code is an agentic coding tool that reads files, writes code, runs commands, and operates within the context of this repository.

**How we use it:** Claude Code accelerates Rock development -- block conversions, entity scaffolding, migrations, SQL scripts, bug fixes, and code review. The `.claude/` directory is checked into the repo so the entire team shares the same configuration, rules, and skills.

**Philosophy:** Claude Code is a tool for leverage, not a replacement for engineering judgment. You own the output. Review what it produces, understand what it changed, and verify it works before committing.

---

## 2. Setup

### Install

```bash
npm install -g @anthropic-ai/claude-code
```

Then open a terminal at the repo root and run:

```bash
claude
```

Claude Code automatically picks up the shared `CLAUDE.md` and `.claude/` configuration. On first run it will walk you through authentication -- follow the prompts.

### LSP Setup

LSP gives Claude the same code navigation your IDE has -- go-to-definition, find references, type resolution, and diagnostics. In a codebase this large, that difference matters.

Install both from within a Claude Code session:

```
/plugin install typescript-lsp@claude-plugins-official
/plugin install csharp-lsp@claude-plugins-official
```

- **TypeScript LSP** -- Type-aware navigation across the Obsidian frontend (Vue 3 + TypeScript)
- **C# LSP** -- Cross-project resolution across Rock.Blocks, Rock.ViewModels, Rock.Model, and the rest of the solution

> **Why it matters:** With LSP, Claude can resolve types, follow inheritance chains, and find all usages -- the same way your IDE does. Without it, it relies on grep and file reads alone.
>
> **Troubleshooting:** If LSP isn't working, run `/plugin` and check the **Errors** tab. The most common issue is the language server binary not being found in your PATH.

### Prompting tips

- **Plan before you build.** For non-trivial tasks, press `Shift+Tab` to toggle Plan Mode -- Claude explores the code without making changes. Once you're aligned on the approach, switch back and let it execute.
- **Be specific.** "Fix the login bug in `AuthenticationService.cs` -- session tokens aren't refreshing after expiry" beats "fix the login bug."
- **Include test cases.** "Implement `ValidateEmail`. Test: `user@example.com` returns true, `invalid` returns false. Run tests after."
- **Scope your requests.** One task per prompt. If you need three things, do them sequentially or break them into separate prompts.
- **Provide context.** Paste error messages, stack traces, or screenshots directly into the prompt. The more Claude can verify its own work, the better the output.

---

## 3. Project Configuration

The `.claude/` directory is checked into the repo. Everything here is shared -- treat it like production code.

```
.claude/
README.md -- This guide
settings.json -- Shared permissions and hooks (team-wide)
settings.local.json -- Personal overrides (gitignored)
commands/ -- Slash commands (/build, /test, /check)
hooks/ -- Safety hooks (block destructive git operations)
rules/ -- Contextual rules (auto-loaded based on file paths)
block-architecture.md Loads when editing block files
code-conventions.md Always loaded (formatting, SQL, enums, etc.)
data-model.md Always loaded (entities, FKs, GUIDs, etc.)
skills/ -- On-demand workflows (/convert-block, /bugfix, etc.)
```

### How the pieces work together

| Component | Location | When it loads | Purpose |
|---|---|---|---|
| `CLAUDE.md` | Repo root | Always | Core guidelines: architecture, naming, critical rules, commit format |
| Rules | `.claude/rules/` | Always or by file path | Additional coding standards and domain conventions |
| Skills | `.claude/skills/` | On demand (`/command` or keyword) | Multi-step workflows with reference material |
| Commands | `.claude/commands/` | On demand (`/command`) | Simple one-shot operations |
| Settings | `.claude/settings.json` | Always | Permission allowlist and safety hooks |

**Rules** deserve special attention: `block-architecture.md` only activates when Claude is working on files in `Rock.Blocks/`, `Rock.JavaScript.Obsidian.Blocks/`, `RockWeb/Blocks/`, or `Rock.ViewModels/Blocks/`. The other two rules load on every session. This keeps Claude's context focused -- it gets block patterns when working on blocks, not when writing a migration.

---

## 4. Using Skills & Commands

### Skills

Skills are on-demand workflows that encode Rock-specific knowledge. They live in `.claude/skills/` and are invoked by `/` command or keyword triggers.

| Skill | Triggers | Purpose |
|---|---|---|
| `/bugfix` | "fix this bug", "debug this", error + fix intent | Root cause analysis and minimal correct fix |
| `/convert-block` | "convert block", "obsidian conversion", WebForms path | Converts WebForms (.ascx) to Obsidian (Vue 3 + C#) |
| `/css-cleanup` | "clean up css", "style audit", "use rock utilities" | Replaces inline styles with Rock utility classes |
| `/entity-model` | "create entity", "new model", "scaffold entity" | Scaffolds entity class, config, SystemGuid, service |
| `/migration` | "write migration", "EF migration", "review migration" | Writes/reviews Up() and Down() for EF migrations |
| `/plugin-migration` | "plugin migration", "hotfix", "new hotfix" | Creates plugin migration .cs files in HotFixes/ |
| `/review-conversion` | "review conversion", "check the conversion" | Audits completed Obsidian conversion against WebForms original |
| `/sql` | "write sql", "seed data", "insert data" | Generates Rock-safe SQL with proper conventions |

Skills can be invoked two ways:
- **Directly:** Type `/convert-block` in the prompt
- **By keyword:** Describe the task naturally -- "convert `RockWeb/Blocks/Core/CampusList.ascx` to Obsidian" triggers the conversion skill automatically

Each skill has a `SKILL.md` (the workflow definition) and a `references/` folder (domain knowledge, patterns, common pitfalls). **Read the skill files** to understand what each one does -- this is the best way to learn the patterns.

Full docs: https://code.claude.com/docs/en/skills

### Commands

Commands are lightweight slash commands for build and verification.

| Command | Purpose |
|---|---|
| `/build` | Build Rock.sln, report errors |
| `/test` | Run Rock.Tests, report results |
| `/check` | Pre-commit verification: build + test + diff review |

### After code generation

When Claude creates new ViewModels (bags) or block types, you need to run the **Rock.CodeGeneration** tool to generate the corresponding TypeScript types before working on the Obsidian frontend. Claude cannot run this for you -- it's a WPF app. Run it from Visual Studio after Claude finishes the C# side.

---

## 5. Permissions & Safety

### Shared permissions

`settings.json` pre-approves common operations so Claude doesn't prompt for every file read or git status. The current allowlist covers:

- **File operations** -- read, write, edit, glob, grep (all pre-approved)
- **Git read operations** -- status, diff, log, show, branch, blame (pre-approved)
- **Git write operations** -- add, create branches, push to origin (pre-approved)
- **Build and test** -- `dotnet build`, `dotnet test` (pre-approved)
- **Everything else** -- requires your approval when prompted

### Safety hooks

A `PreToolUse` hook (`hooks/prevent-destructive.sh`) intercepts every Bash command and blocks dangerous git operations before they execute:

- Force push (`--force`, `-f`) and hard reset (`--hard`)
- Rebase onto main or develop
- Amend commits, skip hooks (`--no-verify`)
- Force-delete branches (`-D`), drop/clear stashes
- Blanket discard (`checkout .`, `restore .`, `clean -f`)

These protect the team from accidental data loss in autonomous mode. If you need to do something the hook blocks, do it manually outside Claude Code.

### Personal overrides

Create `.claude/settings.local.json` (gitignored) for personal preferences -- additional MCP servers, adjusted permission prompts, or tool-specific settings that don't affect the team.

### Team guidelines

- **Do not modify skills you didn't author** without coordinating with the team. They encode tested workflows that others depend on.
- **Do not edit `settings.json`** without team review. It controls permissions and safety hooks for everyone.
- **Test skill changes before pushing.** Run the skill against a known input and verify the output.

### Contributing to shared knowledge

When Claude makes a repeatable mistake, add it to the relevant `common-pitfalls.md` in the skill's `references/` directory:

```markdown
### Pitfall: [Short name]
**Symptom:** What Claude does wrong
**Cause:** Why it happens
**Fix:** What to do instead
**Added:** [date] by [your name]
```

This builds institutional knowledge over time -- the more pitfalls documented, the fewer repeated mistakes across the team.

---

## 6. MCP (Model Context Protocol)

MCP lets Claude Code connect to external services -- design tools, databases, project management -- without custom integration. Instead of copy-pasting between tools, Claude pulls context directly from the source.

**Example -- Figma:** Share a Figma URL and Claude reads the design specs directly, implements the UI, and can compare against the original design.

### Managing servers

Type `/mcp` to manage servers -- enable, disable, reconnect, or authenticate. You can also edit `settings.json` or `settings.local.json` directly.

Scope options:
- `--scope local` (default) -- your machine only
- `--scope project` -- checked into `.mcp.json`, shared with the team
- `--scope user` -- global across all projects

Full docs: https://code.claude.com/docs/en/mcp

---

## 7. Context Management

### Choosing a model

**Opus** is the default and should be used for all work -- especially planning, where deep reasoning matters most. If you have a solid plan and want faster execution, you can switch to **Sonnet** mid-session with `/model`.

### Working with context

Opus supports ~1M tokens of context -- large enough to hold entire block conversions in a single session. But context is finite. Manage it intentionally:

- **`/clear` between unrelated tasks.** Leftover context adds noise and reduces accuracy.
- **`/compact` to reclaim space.** Add a focus: `/compact keep the migration changes` preserves what matters.
- **Reference files with `@filename`** instead of pasting contents into prompts.
- **`/context`** to see what's consuming space.

### Statusline

Optional but worth setting up. Pins context usage, model, git branch, cost, and elapsed time to the bottom of your terminal so you always know where you stand. Run `/statusline` to configure.

Full docs: https://code.claude.com/docs/en/statusline

---

## 8. Resources

### Core references

The principles and guidelines behind this setup were shaped by these resources:

- [Claude Code Best Practices](https://code.claude.com/docs/en/best-practices) -- Prompting, context management, and verification loops
- [The Complete Guide to Building Skills for Claude](https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf) -- Skill design, structure, and patterns
- [Real-world Claude Code workflows](https://x.com/trq212/status/2033949937936085378) -- Practical patterns from production use

### Community & extensions

The Claude Code ecosystem is growing quickly. These are worth exploring:

- [Anthropic Skills](https://github.com/anthropics/skills/) -- Anthropic's official skill library covering code review, TDD, security, and more
- [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) -- Comprehensive collection of skills, agents, rules, and multi-agent patterns
- [Skills Marketplace](https://skillsmp.com/) -- Searchable directory of community-contributed skills
10 changes: 10 additions & 0 deletions .claude/commands/build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
description: Build Rock.sln and report errors. Use when the user says "build", "compile", "check build", or after making code changes that may have introduced errors.
---

Build the Rock.sln solution using `dotnet build`. Report:
- Whether the build succeeded or failed
- Any errors (with file path and line number)
- Any warnings that look like real issues (ignore nullable reference warnings unless they're in files I recently changed)

If the build fails, diagnose the root cause and suggest a fix. Do not fix anything automatically — just report.
17 changes: 17 additions & 0 deletions .claude/commands/check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
description: Pre-commit verification (build + test + diff review). Use before committing, when the user says "check", "verify", "pre-commit", or wants to validate changes before pushing.
---

Pre-commit verification. Run these checks in order and stop at the first failure:

1. **Build** — `dotnet build Rock.sln` (must succeed)
2. **Tests** — `dotnet test Rock.Tests/Rock.Tests.csproj --no-build` (must pass)
3. **Diff review** — Run `git diff --cached` (or `git diff` if nothing is staged) and scan for:
- Missing copyright headers on new files
- `DateTime` usage instead of `RockDateTime`
- `System.Web` references outside `#if WEBFORMS` blocks
- `lock()` statements (flag for review)
- Public methods that should be internal
- Missing XML doc comments on public methods

Report a pass/fail summary. For failures, list each issue with file and line number.
12 changes: 12 additions & 0 deletions .claude/commands/test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
description: Run Rock.Tests and report results. Use when the user says "run tests", "test", or wants to verify changes haven't broken anything.
---

Run the Rock.Tests project using `dotnet test Rock.Tests/Rock.Tests.csproj --no-build --verbosity normal`. If the solution hasn't been built yet, build first with `dotnet build`.

Report:
- Total tests run, passed, failed, skipped
- For any failures: test name, assertion message, and the relevant source location
- If all tests pass, say so concisely

Do not fix failing tests automatically — just report the results.
69 changes: 69 additions & 0 deletions .claude/hooks/prevent-destructive.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#!/bin/bash
# Hook: Block destructive bash commands before execution.
# Called by Claude Code as a PreToolUse hook on Bash.
# Exit 0 = allow, Exit 2 = block (stderr shown to user).

INPUT=$(cat)
CMD=$(echo "$INPUT" | sed -n 's/.*"command"\s*:\s*"\(.*\)"/\1/p' | head -1)

# --- Git: force push ---
if echo "$CMD" | grep -qiE 'git\s+push\s+.*(--force|-f)\b'; then
echo "BLOCKED: Force push can overwrite remote history. Push normally or ask the user to confirm." >&2
exit 2
fi

# --- Git: hard reset ---
if echo "$CMD" | grep -qiE 'git\s+reset\s+--hard'; then
echo "BLOCKED: git reset --hard discards all uncommitted changes. Stage or stash first." >&2
exit 2
fi

# --- Git: discard all working changes ---
if echo "$CMD" | grep -qiE 'git\s+checkout\s+\.\s*$'; then
echo "BLOCKED: git checkout . discards all unstaged changes. Be specific about which files to restore." >&2
exit 2
fi

# --- Git: force-delete branch ---
if echo "$CMD" | grep -qiE 'git\s+branch\s+-D\s'; then
echo "BLOCKED: git branch -D force-deletes a branch even if unmerged. Use -d (lowercase) for safe delete." >&2
exit 2
fi

# --- Git: clean untracked files ---
if echo "$CMD" | grep -qiE 'git\s+clean\s+-f'; then
echo "BLOCKED: git clean -f permanently deletes untracked files. Run git clean -n first to preview." >&2
exit 2
fi

# --- Git: restore all files (discard all changes) ---
if echo "$CMD" | grep -qiE 'git\s+restore\s+\.\s*$'; then
echo "BLOCKED: git restore . discards all working tree changes. Be specific about which files to restore." >&2
exit 2
fi

# --- Git: rebase onto main/develop ---
if echo "$CMD" | grep -qiE 'git\s+rebase\s+.*(main|master|develop)\b'; then
echo "BLOCKED: Rebasing onto main/develop rewrites commit history. Merge instead, or ask the user to confirm." >&2
exit 2
fi

# --- Git: amend a commit ---
if echo "$CMD" | grep -qiE 'git\s+commit\s+.*--amend'; then
echo "BLOCKED: --amend rewrites the last commit. Create a new commit instead, or ask the user to confirm." >&2
exit 2
fi

# --- Git: skip hooks ---
if echo "$CMD" | grep -qiE 'git\s+.+--no-verify'; then
echo "BLOCKED: --no-verify skips commit hooks (message format validation). Fix the issue instead of bypassing." >&2
exit 2
fi

# --- Git: stash drop/clear ---
if echo "$CMD" | grep -qiE 'git\s+stash\s+(drop|clear)'; then
echo "BLOCKED: git stash drop/clear permanently deletes stashed work. Ask the user to confirm." >&2
exit 2
fi

exit 0
Loading