I found the same issue as SessionRestore and Safari 17/17.1 on Sonoma .
I did the test of using Safari 17/17.1 recent history restore of all tabs and SessonRestore 2.7.7 only records one tab per window. As noted, if one manually reloads every tab in every window, then SessonRestore 2.7.7 can record them all.
All tabs were recorded with Safari 16.6 - I don’t know what change Apple made to Safari 17/17.1 (still Ventura 13.6.1) to cause the difference.
Prior to SessionRestore, I used a Script, based on postings on various forums many years ago, to record the name and url of every tab open in Safari. The script records all of the tabs without having to reload each tab manually. The script then saves the name and url of every tab in Safari to a text file in TextEdit which can be used to manually reload every tab.
Use Script Editor in the Utilities folder to copy the code into Script Editor and create the script application.
I don’t know how to modify the script to create a file that SessionRestore can use with Safari. There are many internet sites that discuss using the Script Editor if help is needed. I have only used the script through MacOS Ventura, but not Sonoma.
tell application "Safari"
--Variables
set windowCount to number of windows
set docText to ""
--Repeat for Every Window
repeat with x from 1 to windowCount
set tabcount to number of tabs in window x
--Repeat for Every Tab in Current Window
repeat with y from 1 to tabcount
--Get Tab Name & URL
set tabName to name of tab y of window x
set tabURL to URL of tab y of window x
set docText to docText & "<a href=" & "\"" & tabURL & "\">" & tabName & "</a>" & linefeed as string
end repeat
end repeat
end tell
--Write Document Text
tell application "TextEdit"
activate
make new document
set the text of the front document to docText
end tell
Phil