Skip to main content
10.13.2026

SuperOffice

Step 155Create table authentication_session (per-user authenticated session with encrypted OIDC tokens, last seen and ns_secret expiry) and add a foreign key from login to it
  • Add table authentication_session
  • Modify table login authentication_session_id
Step 156Repair person.activeInterests and contact.activeInterests where the denormalized counter disagrees with the number of interest link rows whose list item is not deleted, which is what draws the interest indicator in lists. Corrects the descriptions of those fields, which claimed the counter equals the raw number of link rowsBug 118450 (merging moved the interest link rows at row level without recounting) and Bug 21531 (deleting an interest list item left the counters of everyone linked to it untouched) are fixed in code; this repairs the rows that have already drifted.
  • Modify table person activeInterests
  • Modify table contact activeInterests
  • Modify table personinterest
Step 157Adding prospecting/enrichment fields to contact and person
  • Modify table contact numEmployees, yearFounded, revenueYear, revenueBasecurrency, sharecapitalBasecurrency, sourcedFrom, linkedinUrl, contextText_id
  • Modify table person sourcedFrom, linkedinUrl, contextText_id
Step 158Prime LocaleText resourceIds 26/28/29 (PushNotificationTextResources.TicketRequestIdentity/TicketTakenOverTitle/TicketTakenOverTitleGeneric) for the TicketCustomMessage/TicketTakenOver mobile push notifications added in PR 48936. English (1033) only - resourceId is not scoped per typeid in this table, so a full re-sync of every existing typeid=41 row (not just an incremental Truncate_field on the new resourceIds) is required to avoid deleting unrelated rows that reuse the same resourceId under a different typeid (e.g. 26/28 already exist under typeid 7/11/12). The other 15 languages need translation before the next full re-sync of this typeid.Step 159Add functional right ‘Delete externally owned follow-ups’Adds the ‘delete-external-follow-ups’ functional right with its name and tooltip; the role admin only lists rights that have both. It is not linked to any role: admin-all implies it in AppointmentSentry, and other roles get it by assignment in the role admin.

ai

Step 3Set more default values for AI preferences.

ConsentManagement

Step 11 (updated)Make the person_id + consentPurpose_id index unique, this is an important constraint
  • Modify table ConsentPerson
  • Modify table ShipmentTypeReservation
  • Modify table ConsentPurpose
  • Modify table ConsentSource
  • Modify table LegalBase
  • Modify table ShipmentType
Step 25Add ‘Agent’ as a GDPR consent source (key AGENT), for data created or enriched by agents

Copilot

Step 3Add Copilot preference defaults: allow web search

Mention

Add table for @-mentions: one row per colleague tagged with @ in a request comment, tracking read state and a text snippet for display.
  • Add table mention

NewsFeed

Step 5Add FromCategoryIdentifier to NewsFeedItem so that start page can open filter/count by type without worrying about translation/languages.
  • Modify table NewsFeedItem FromCategoryIdentifier
Step 6Add FromIdentifier to NewsFeedItem so that start page can open filter/count by agent id without worrying about translation/languages.
  • Modify table NewsFeedItem FromIdentifier
09.17.2026

SuperOffice

Step 152Improve the Dutch translations of the built-in Lead status list items ‘Contacting’ and ‘Re-nurture’Step 153Ensure SaintConfiguration has exactly one row per owner table: remove duplicates (highest id wins) and insert missing rows for contact, person and projectStep 154Add a unique index on SaintConfiguration.ownerTable, so that an owner table can never get more than one configuration row
  • Modify table SaintConfiguration

NewsFeed

Step 3Add SourceSoProtocol to NewsFeedItem so that start page can open the agent topic directly.
  • Modify table NewsFeedItem SourceSoProtocol
Step 4Add Type to NewsFeedItem so that start page can open filter/count by message type without analyzing the CTAs or message content.
  • Modify table NewsFeedItem Type
08.27.2026

inbox

Step 14Delete obsolete field simple_mode on email_account (superseded by the user preference), and remove the obsolete Mail preferences (EnableMailSync, FirstMailSync, MailSyncTimer, CheckForDuplicates, RemoveAfterArchive, IsEmailInstalled, IsFaxInstalled) from prefdesc and userpreference.
  • Modify table email_account simple_mode

LandingPage

Step 2Rename table landing_page_pin to landing_page_tab and its primary key landing_page_pin_id to landing_page_tab_id.
  • Rename table landing_page_pin to landing_page_tab
  • Modify table landing_page_tab landing_page_pin_id
Step 3Add columns pinned, rank and tab_type to landing_page_tab, now that it stores all tabs (not only pinned ones).
  • Modify table landing_page_tab pinned, rank, tab_type
Step 4Add provider_name to landing_page_tab (and widen its unique index to include it) so hardcoded provider tabs (e.g. LastTickets, FavouriteTickets) can be stored alongside selection and entity tabs.
  • Modify table landing_page_tab provider_name
Create the navigation_history table, holding per-associate Current (persisted soprotocol) and Recent navigation entries, and migrate individual-level SuperMode navigation values out of the userpreference table.
  • Add table navigation_history

NewsFeed

Step 2Add Location and RatingPercent to NewsFeedItem. Bump CTA Identifier length to 1000.
  • Modify table NewsFeedItem Location, RatingPercent
  • Modify table NewsFeedItemCta Identifier