Tiki29
Tiki 29.0 will be released in July or August 2025.
It is a Standard Term Support (STS) version and will be supported until Tiki 30.1 is released as per the Tiki lifecycle policy
You can see the development page at : https://dev.tiki.org/Tiki29 and all the code commits here: https://gitlab.com/tikiwiki/tiki/-/commits/29.x/
If you use the WYSIWYG, please do extensive testing before you upgrade because https://github.com/summernote/summernote has replaced https://github.com/ckeditor/ckeditor4 (which is no longer Open Source)
The Cookie Consent Management for User Privacy Compliance has done undergone an overhaul so please also do extensive testing here.
1. Infrastructure
(alphabetically sorted)
1.1. Avatar Generation with DiceBear
Adds automatic avatar generation using DiceBear SVG-based styles when users have no custom avatar uploaded.
Supports multiple styles and runs fully client-side or within Tiki, with admin controls for enabling and style selection.
Improves visual identity and personalization across user profiles without external API dependencies.
1.2. Menus: “Add as a Module” Action
Adds a new action in Admin Menus to convert a menu directly into a module with prefilled assignment, streamlining navigation setup and reducing context switching.
Improves ease of use for new and existing admins managing menus and modules. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6920
1.3. Migration Away from composer.tiki.org - Tiki now fully relies on Packagist and Asset-Packagist for Composer packages.
- Tiki now support composer multi‑repository with Packagist.org, Asset‑Packagist.org, and composer.tiki.org.
- The deprecated https://composer.tiki.org has been removed, simplifying dependency resolution and improving reliability with modern Composer versions.
- Legacy packages not available on Packagist were temporarily removed; handling of those will be finalized before the release of Tiki 29.
- Resolves issues with blocked Composer updates in pre-release environments and modernizes package sourcing.
1.4. Forum Email Retrieval switched from POP3 to IMAP
Forum mail-in now uses IMAP (with TLS) instead of the legacy POP3 protocol for retrieving posts from mailboxes. This improves security, works with modern email providers, and ensures encrypted access. POP3 support has been removed. Admins should review mailbox retention settings, as IMAP does not delete messages by default. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7698
1.5. Swiper
The Swiper package has been upgraded from version 3 to 11 and its installation has been migrated to npm modules. ##$ Symfony Mailer (Migration from Laminas Mail)
The abandoned laminas/mail and laminas/mime packages have been replaced with the modern and actively maintained symfony/mailer ecosystem. This major migration improves long-term stability, modernizes email sending in Tiki, and introduces better compatibility with transactional email providers.
1.6. Tiki 27+ Build System - Several more JavaScript and CSS libraries have been moved to the new Build System. The migration is considered done, and the remaining code will not be move for reasons explained in
- <a target="_blank" class="wiki" href="https://gitlab.com/tikiwiki/tiki/-/blob/master/vendor_bundled/composer.json">https://gitlab.com/tikiwiki/tiki/-/blob/master/vendor_bundled/composer.json</a>
- The JavaScript build system has been upgraded to Vite version 7, introducing modern performance enhancements and aligning frontend tooling with current best practices.
- Additionally, the Vitest testing framework has been updated to its latest stable release, ensuring compatibility and benefiting from recent features and fixes.
1.7. UI-predicate
UI-predicate library used in Tiki Tracker Rules to Vue 3 has been upgraded, completing the migration of all Vue.js components within Tiki to Vue 3. ##$ Composer / Dependency Configuration
- Composer – PHP Extension Validation Tiki now checks that all required PHP extensions (e.g.,
ext-sockets
) listed incomposer.lock
are explicitly declared in the "platform" section of "composer.json". If a mismatch is detected or an extension is missing, Composer installation stops and provides troubleshooting help.
1.8. Dependency Upgrades
As part of a broader Composer cleanup and modernization effort, several third-party libraries have been upgraded to ensure compatibility with modern PHP versions, reduce technical debt, and improve security.| - ASCII banner generation (dev tool): replaced the PHP-based laminas-text
with the npm figlet
package, consolidating the ASCII art logic into the JavaScript toolchain and reducing Composer dependencies.
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8095
- Event Calendar performance/UI – @event-calendar upgrade: upgraded @event-calendar/core to the latest version and refactored internal calendar scripts. This resolves UI latency when opening or editing event forms, resulting in smoother interactions—especially beneficial for large calendars or slower devices.
- Tiki Diagram has been upgraded to version 26.0.6
- Cypht (webmail client) has been updated to the version 2.4.2.
- Email parsing (ZBateson MailMimeParser) has been upgraded from version 2 to 3 to improve PHP 8.2+ compatibility and make MIME email parsing (including encoded headers and attachments) more reliable.
- Test Dependency (kornrunner/dbunit) has been upgraded from to ~9.1 for improved compatibility with modern PHPUnit versions and better dataset handling during tests.
- Manticore Search SDK (manticoresoftware/manticoresearch‑php) has been upgraded to ~4.0. Tiki still uses direct SQL for most interactions; the SDK is only used in edge cases like stored queries.
- PHPUnit Markup Assertions
(stevegrunwell/phpunit-markup-assertions)
has been updated to version 2.0. - SabreDAV has been upgraded to version 4.7
- Kint (debugging tool) has been upgraded to version 6.0
- Kaltura (media integration) has been upgraded to version 21.18
- Sentry has been replaced the deprecated "sentry/sdk" meta-package with "sentry/sentry ^4.12", eliminating a deprecation warning about "php-http/message-factory" and aligning with best practices. Also ensures compatibility with GlitchTip, an open-source Sentry-compatible error tracker. (MR #7726)
- QR Code Generator (bacon/bacon‑qr‑code) has been upgraded to version 3 for PHP 8.2+ compatibility and internal performance improvements.
- Ramsey/uuid updated to 4.9 for UUID generation
1. Enhancements
(alphabetically sorted)##$ Attribute Controller
Extended the Attribute Controller with new actions to set, get, and search attributes more effectively, including support for comments.
1.1. "Back to Top" button
adds a floating “Back to Top” button using an Element Plus Vue component, which appears when users scroll down. Optionally customizable tooltip via the title attribute. Assignable via the Admin Modules panel. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7346
1.2. Calculations Improvements
The if
function in Mathematical Calculation Tracker Fields now supports elseif
and else
, enabling clearer and more maintainable formulas without excessive nesting. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7850
1.3. Calendar
- FullCalendar library has been replaced with Event-Calendar (@event-calendar) in both Tiki Calendar and the Tracker Calendar plugin. This change improves maintainability, while preserving all essential scheduling features
- Tiki now supports private email invitations where attendee lists are hidden. When enabled, only the organizer sees the full guest list; participants receive invitations without other attendees displayed, while retaining RSVP and calendar integration functionality. (MR #7768)
1.4. Changes Wizard
In Tiki28, the Changes Wizard was modified to be hidden on new installations while remaining visible during upgrades. However, it's been found out that this change would lead to issues, so in Tiki 29, the Changes Wizard behavior has been reverted to its original state — meaning it will once again appear for both new installations and upgrades. ##$ Console
New Console commands:
1.4.1. Administration Enhancements
Adds a new command security:generate
to create a "security.txt" file in the ".well-known/" directory. This file can include admin contact info, expiration dates, PGP links, and optional GPG signatures—streamlining responsible vulnerability disclosure practices.
1.4.2. Calendar Migration from tiki-minical
A new console command — calendar:minical:migrate
— enables the migration of calendar data from the legacy tiki-minical.php system into the modern Tiki private calendar infrastructure. - This facilitates deprecation of outdated modules while preserving user data.
- The migrated calendars gain support for full permissions and collaborative editing.
1.4.3. Create Subgalleries and Migrate Files Field Content
A new CLI command files:subgalleries-create
allows administrators to migrate files stored in Tracker Files fields into per-item subgalleries automatically.
This helps when switching to the “store files per item” mode by creating subgalleries for each tracker item and moving files accordingly.
Reduces manual effort to reorganize file attachments and supports smoother gallery management. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7255
1.4.4. Database Engine Convert
A new command — database:convert
— to convert the database engine, simplifying the migration from MyISAM to InnoDB. ##$ Cookie Consent Management for User Privacy Compliance
Tiki now includes a built-in cookie consent system that aligns with privacy regulations such as GDPR.
- Improvement: Users can now accept, decline, or customize their cookie preferences via a consent dialog.
- Options Available:
- Accept All – Enables all cookies
- Decline Non-Essential – Allows only essential cookies
- Customize Preferences – Choose cookie categories individually
- Persistent Settings: Consent choices are saved in the browser and synced to user accounts (if logged in) and persist between sessions.
- Goal: Improve transparency and empower users with control over their data.
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/5263
1.5. Directory Upload
Enhance the Tiki uploader interface, used in File Tracker fields, now supports drag-and-drop of entire folders or directories onto the upload area. When a directory is dropped, Tiki recursively uploads all files it contains and automatically creates the corresponding file gallery hierarchy. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6922
1.6. Element Plus ###$ Element Plus Message Component
This update replaces the legacy jQuery $.notify notification system with the modern and visually consistent Element Plus ElMessage component across the Tiki interface.
1.6.1. Element Plus Upload Component
blueimp/jQuery-File-Upload has been replaced with the modern Element Plus Upload component for a more efficient and user-friendly file upload experience. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6765
1.7. Expand/Collapse All Content with One Click
A new preference to expand or collapse all collapsible sections on a page with a single click has been added. Previously, content had to be manually toggled section by section, making navigation cumbersome—especially when searching for specific information. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6747
1.7.1. File Gallery Per Item
A new option has been added to the Files tracker field type to allow automatic creation of a dedicated File Gallery per tracker item.
This improves file organization by associating uploads directly with individual items — useful for user profiles, articles, invoices, contracts, signatures, and more. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6832
1.8. Headless Chrome Integration
PhantomJS and CasperJS have been replaced with the Chrome-php library for headless browsing, improving performance, security, and maintainability while keeping CasperJS as a fallback. A new preference — Headless Browser Integration Type — allows switching between Chrome-php (default) and CasperJS. Key features like Wiki Diagrams export, search snapshots, and ChartJS export have been updated to use Chrome-php. Additionally, a configurable Chrome binary path has been introduced, and the implementation has been refactored for better maintainability. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6834
1.9. High Efficiency Image File Format
Tiki now supports High Efficiency Image Format (HEIF/HEIC) by automatically converting HEIC files to JPEG. This allows users to upload HEIC images from modern devices, ensuring compatibility with Tiki's existing image processing system. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6590
1.10. Hold-to-Reveal Password Fields
A new feature has been added to enhance password input fields with a hold-to-reveal mechanism. This UX-friendly enhancement introduces a subtle icon next to password fields (only when a value is entered), allowing users to temporarily reveal their password by pressing and holding the icon—ideal for preventing accidental exposure, especially during presentations or screen sharing. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6343
1.11. Lazy Loading for userSelector & itemLink Tracker Fields
A new lazyload option has been added to the userSelector and itemLink tracker fields. When enabled, the list of options is loaded dynamically based on user input—greatly improving performance for fields with large datasets (e.g., 10,000+ items). - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7309
1.12. Login Module (login_box) - The register_page parameter was added to module Login Box, allowing redirection to a custom wiki page for registration instead of the default tiki-register.php. This provides more flexibility to personalize the sign-up experience.
- <a target="_blank" class="wiki" href="https://gitlab.com/tikiwiki/tiki/-/merge_requests/7176">https://gitlab.com/tikiwiki/tiki/-/merge_requests/7176</a>
- When using the Switch User feature, the login module is now always displayed — even if the impersonated user wouldn’t normally see it. This helps admins test role-based access more easily and switch accounts without losing access to login controls.
- Two-Factor Authentication, Improved Setup and Login Flow , enhances the 2FA experience by allowing users to download the TOTP QR code, toggle visibility of the secret key, and follow a smoother login sequence.
The login form now validates username/password first, then prompts for 2FA without requiring re-entry of credentials on incorrect code entry.
Improves usability for both setup and daily authentication.
1.13. Logging - Tiki 29 enhances Tiki’s logging by adding support for logging failed login attempts and allowing logs to be written to a file. This helps integrate with tools like fail2ban and improves external log monitoring.
- <a target="_blank" class="wiki" href="https://gitlab.com/tikiwiki/tiki/-/merge_requests/5220">https://gitlab.com/tikiwiki/tiki/-/merge_requests/5220</a>
- Tiki now uses the actively maintained Monolog library for all logging. This replaces the abandoned Laminas Log package, improving PSR-3 compatibility and enabling flexible logging to files, databases, sockets, email, Slack, and more.
- Configurable Expiration Time for Reset Links adds an admin preference to define how long password reset links remain valid (default: 60 minutes).
User-facing messages now include the specific expiration time, improving clarity and aligning with site security policies.
Helps tighten security on sensitive systems while guiding users more effectively during the reset process.
1.14. Maps – configurable marker popups in SearchLayer
Now you can specify which fields appear in marker popups and define custom HTML popup templates using field tags. Provides cleaner, context-specific displays when clicking on map markers. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7735
1.15. Media Recorder Preview and Close Button
The media recording tool has been improved to provide a preview before upload option. This allows users to review their recordings before submitting them, helping avoid accidental uploads and enhancing usability. A close button was also added for better interface control. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7957
1.16. Meta Tags
Pages blocked in robots.txt now include a noindex meta tag, improving alignment with modern SEO practices.
According to Google's guidelines, relying solely on robots.txt to block indexing is not sufficient. So, Tiki now adds a noindex meta tag to commonly excluded pages (e.g., tiki-editpage.php), helping prevent them from being indexed by search engines. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/665
1.17. Minutes hold warning message
A new preference checks when the scheduler last ran and displays a visual warning if it hasn’t run recently. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/5510
1.18. Password History Management
Tiki now includes a password history management feature to enhance security by determining the number of password resets associated with a user account before the password can be reused. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6721
1.19. PluginAnimeOnScroll
Animate on Scroll Using anime.js
Adds a new {animeonscroll} plugin to trigger animations (fade, zoom, flip, slide, and more) as elements enter the viewport.
Uses anime.js (already bundled with Tiki) to provide lightweight, dependency-free AOS-like effects, with customizable options such as offset, threshold, and anchor placement.
Enables native scroll-triggered animations without embedding external libraries.
1.20. PluginConvene
Default Users, Groups, and Dates Pre-Filling.
Adds new parameters defaultusers
and defaultdates
to the "convene" plugin, allowing pre-filling of participants and proposed dates using usernames, group names, or natural language date strings.
Improves meeting poll setup UX by providing sensible defaults that users can edit. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7273
1.21. PluginFancyTable
Custom class option to PluginFancyTable, allowing users to apply their own CSS classes for better styling flexibility. This enhancement ensures that tables can be customized to match specific design requirements. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/5523
1.22. PluginListExecute
PluginListExecute received various fixes and enhancements including:
1.22.1. Partial Reload Stability Improvements
This update refines how PluginListExecute handles partial reloads to make it more stable and reliable - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7290
1.23. PluginTrackerFilter
Add truncateTextLength Parameter:
Adds a new truncateTextLength
parameter to the "trackerfilter" plugin to uniformly truncate long text with ellipsis across all displayed fields.
Simplifies tabular reports and dashboard views by enabling quick, global text truncation without losing full data access. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7435
1.23.1. Correctly Mark Plugins After Parser Option Changes
This fix improves stability when using ListExecute inside templates or dynamically parsed content. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7378
1.23.2. Warnings for Missing fallbackBaseUrl in Console and Scheduler
To help prevent incorrect URL generation in scheduled or console-executed tasks, a warning is now displayed if fallbackBaseUrl is not set: - Console (list:execute command):
Displays a warning before executing if fallbackBaseUrl is missing.
- Scheduler UI:
Shows a warning when configuring a ConsoleCommand task if fallbackBaseUrl is not set, with a link to easily fix it (tiki-admin.php?page=general#fallbackBaseUrl). - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7023
1.24. PluginListPages
PluginListPages now includes a noheader
parameter, giving users more control over how page listings are displayed. This option allows the suppression of the default header section, making it more versatile for embedding within templates and other pages. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6643
1.25. PluginMediaPlayer
The PluginMediaPlayer now supports rendering text files directly within the media player interface. This expands the plugin’s functionality beyond audio and video playback, enabling users to view text-based content. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6334
1.26. PluginMermaid
A new plugin PluginMermaid has been added to support rendering diagrams using Mermaid syntax directly within Tiki. This enables users to securely visualize structured diagrams (like ER diagrams) without needing to rely on external tools like mermaid.live, making it ideal for working with confidential data. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7151
1.27. PluginOEmbed
Tiki 29 introduces OEmbed support, allowing seamless integration of videos and media from platforms like PeerTube, Vimeo, and YouTube. This enables users to embed content effortlessly using the OEmbed protocol without manually copying iframe embed codes.
Key Highlights: - New Plugin - PluginOEmbed:
To simplifie media embedding using the OEmbed protocol.
- PeerTube Integration:
To use PeerTube as a backend for video storage and streaming. - Customizable Options:
To set video size, start time, quality, and privacy preferences. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6704
1.28. PluginRSS
PluginRSS now supports direct URL configuration in wiki pages — no admin permissions required!
Previously, RSS feeds had to be pre-configured via tiki-admin_rssmodules.php, which required elevated permissions.
Now you can define the RSS feed URL directly in the wiki page using
This allows more flexible, user-friendly integration of dynamic RSS content - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6385
1.29. PluginTracker
PluginTracker has been improved to allow making a previously non-mandatory field mandatory based on evolving business needs. This update introduces the requiredFields attribute, ensuring that fields can be enforced dynamically during different stages of form submission. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6799
1.30. PluginVue
Tiki has upgraded the PluginVue implementation to support Vue.js 3 and Single File Components (SFCs). This update allows users to leverage the latest Vue.js features while maintaining seamless integration with Tiki. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/4570
1.31. Preference Warning System
Introduced a new mechanism to warn users when a preference is set to a value that causes conflicts.
This helps administrators detect and correct configuration issues early.
First application:
session_storage
preference: A warning is now displayed if it is set to db, which is not recommended for performance and stability reasons. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7199
1.32. Search & Indexing Improvements - The index:cleanup
command now detects if search indexes are shared across multiple Tiki instances before deletion, preventing accidental data loss.
A new preference (*unified_check_unused_indexes*) allows detecting unused indexes, and visibility of unused indexes has been improved after rebuilds. Additionally, new options ( `index_to_remove`, ` <strike>all `, ` dry-run` ) provide more control over index management, alongside a refactored Elasticsearch handling for better performance and reliability.
- Search – untitled comments labeling: search results now show a clean label like "A user comment" instead of “Untitled” followed by a long date/time when comment titles are disabled, improving clarity and consistency.
1.33. Show rules for password creation
Tiki now provides users with a clear view of password creation rules when they set or change their passwords. This ensures that users can easily comply with security requirements, reducing frustration and failed attempts.
1.34. Switch User
Administrators can now seamlessly switch between multiple users without needing to return to their admin account each time. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6852
1.35. Tiki Share
- Manage and Track Shared URLs
Adds a dedicated list of shared URLs, allowing users to see all links they’ve shared and revoke them individually.
Improves visibility, control, and user experience for managing shared items, consolidating functionality that previously overlapped with Tell-a-Friend.
1.36. Trackers
Several bug fixes and enhancements have been added to Trackers such as:
1.36.1. Barcode/QR Code field type
Adds a tracker field for scanning and generating 1D and 2D barcodes (including QR codes), useful for logistics, inventory, attendance, and similar systems. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6470
1.36.2. Tracker Fields: Prevent Empty or Duplicate Permanent Names Across Trackers
Improves validation for tracker fields by preventing empty permanent names and showing a warning when a permanent name is already used in another tracker. This helps maintain consistency and avoid conflicts across trackers. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6759
1.36.3. Tracker Field: Support for Email Folders per Item
The EmailFolder tracker field now allows setting email folders at the item level rather than globally.
This enables dynamic folder-specific email workflows (saving, archiving, routing) based on tracker item data, improving integration with Cypht email accounts.
A new setting lets folders be defined individually per item, useful for client-specific folder destinations or tighter Cypht integration.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/7688 ###$ Trackers – drag‑and‑drop file rename
When uploading via drag‑and‑drop into a Files Tracker field, users can now rename the file before selecting it—improving usability and file organization.
1.36.4. Tracker Usability Improvements - The Preview tab in tracker item text area fields is now **disabled by default**, streamlining the interface for users filling out forms. Admins can still enable previewing using the “Preview Edits” option in Editing and Plugins settings.
- <a target="_blank" class="wiki" href="https://gitlab.com/tikiwiki/tiki/-/merge_requests/7471">https://gitlab.com/tikiwiki/tiki/-/merge_requests/7471</a>
- Users importing data into trackers can now select the delimiter used in tabular imports—choosing between comma ",", semicolon :;", or tab "\t." This improves compatibility with regional formats and common sources like Excel spreadsheets.
1.36.5. Tracker Inline Editing: Per-Tracker Configuration
Adds an “Allow Inline Editing” setting in individual tracker admin panels, enabling or disabling inline editing per tracker.
Overrides the previous global-only control (ajax_inline_edit_trackerlist) and applies to both tracker list views and "trackerlist" plugin output.
Provides administrators with finer control over editing behavior for different workflows. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7628
1.36.6. Tracker Audio Comments
Audio recording features have been enhanced to improve usability and integration within tracker items. - Tracker items now support inline audio recording and saving using RecordRTC.
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7598
- A waveform visualization and recording duration timer have been added to improve the recording experience.
-
Audio files attached to items now include an embedded HTML5 audio player.
-
Foundations have been laid for future support of audio recording directly within comment fields.
1.36.7. Usability and Internationalization
Better output for simple list and table templates. The actions are now translatable + new param button_label
was added to allow custom submit button label (translatable too) - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7299
1.37. Userlist Search Formatter
A new userlist search formatter has been introduced to better handle UserSelector fields that store real names separated by a custom string. This formatter automatically splits the values into a proper array of users, enabling cleaner display and easier filtering in search results. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7312
1.37.1. Webmail: Auto-Suggest Moving Sent Emails to Tracker Items
Adds smart integration between Cypht Webmail and Tracker items by auto-suggesting relevant tracker items when sending emails.
Users can consent to move sent emails into tracker item folders, improving workflow traceability for support, client communication, and projects.
Includes manual search if suggestions don’t match and prepares groundwork for automatic reply routing via Email Folder field and Sieve rules. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7664
1.38. WebAuthn Authentication Support
Tiki29 introduces WebAuthn as a modern and secure authentication method.
Key Features: - Users can now register and authenticate using passkeys, enhancing security and ease of access.
- Added preferences to enable/disable WebAuthn as a login method.
- Integrated WebAuthn into the login process, alongside existing authentication methods.
- Error handling, validation, and a structured flow for WebAuthn registration and login.
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/6997
1.39. Wiki Page “Duplicate” Action
Adds a “Duplicate” option to the “More” dropdown in individual wiki pages.
Renames the existing “Copy” action in the wiki page list (tiki-listpages) to “Duplicate” for consistency.
Makes duplication easier to access from the page view and standardizes terminology across the UI.
Requires appropriate wiki admin/edit permissions. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7559
1.40. wiki_page_actions_groups
A new admin setting, wiki_page_actions_groups, allows you to control the visibility of the Wiki Page Actions button by user group. This gives more flexibility in managing the editing interface—showing the button only to relevant users and keeping the UI clean for others. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7313
1.41. WikiPlugins - PluginTrackerVerticalTimeline a new wiki plugin that generates vertical timelines from Tracker data—ideal for historical timelines, project overviews, activity feeds, etc.
- <a target="_blank" class="wiki" href="https://gitlab.com/tikiwiki/tiki/-/merge_requests/7897">https://gitlab.com/tikiwiki/tiki/-/merge_requests/7897</a>
- PluginTimeline & PluginTrackerTimeline migration to Vis-Timeline: legacy Simile Timeline has been fully replaced with modern, actively maintained Vis-Timeline. Plugin parameters have been updated to reflect the new syntax, obsolete Simile code removed, and timelines now benefit from better performance and future expansion potential. (MR #7676)
1.42. WYSIWYG Editor
Tiki29 introduces Summernote as the new WYSIWYG editor in Tiki, replacing CKEditor 4. Summernote offers a Bootstrap-based, themable editor with a customizable toolbar, rich formatting tools, and functional CodeMirror integration.
To enhance flexibility, the new adminToolbar tool allows Summernote to operate independently of the legacy editor’s adminToolbar interface, streamlining the editing experience - https://gitlab.com/tikiwiki/tiki/-/merge_requests/6892
Additionally, paste behavior in the HTML editor has been improved: styled content (e.g., bold, colored, or formatted text) now retains its formatting when converted into Tiki page, minimizing manual cleanup and improving compatibility with content pasted from word processors or web pages.
1. Removals
1.1. Accounting module
The legacy Tiki Accounting feature and related code, templates, preferences, and permissions have been fully removed. It was unmaintained, underused, and relied on obsolete dependencies. Existing data is preserved in the database and can be exported manually. Users are encouraged to use Dolibarr, which is actively maintained and part of the WikiSuite ecosystem.
1.2. ADOdb – Migrated Fully to PDO
Completely removes ADOdb support in favor of PHP PDO for all database interactions.
Eliminates adodb/adodb-php from dependencies, deletes all related files and calls (including dbversion_tiki and api_tiki), and cleans up related language strings.
Improves security, performance, and maintainability by standardizing on PDO-based access (TikiDb, TikiDb_Pdo, etc.).
1.3. composer.tiki.org and legacy vendor packages. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7572
1.4. Edit Templates and CSS Editing Preferences
Removes preferences feature_view_tpl, feature_edit_templates, and feature_editcss, which allowed viewing/editing templates and CSS via the web UI.
This improves security by closing risks related to arbitrary file access/editing through the browser.
Most admins edit templates and CSS externally now; these features were marked as endangered on dev.tiki.org. - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7556
1.5. Expiration Date article
This was part of the article features and practically it's not needed - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7000
1.6. jQuery UI
As part of deprecating jQuery UI in Tiki, this change removes unused references to feature_jquery_ui. jQuery UI will be retained only where it's still required (e.g., elFinder), but all other dependencies are being phased out.
1.6.1. feature_jquery_ui
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/6723
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/6743
1.6.2. blueimp/jQuery-File-Upload
1.6.3. jquery/photoswipe
1.6.4. jQuery Colorbox
Replaced with GLightbox
1.7. Laminas
1.7.1. laminas/mail and laminas/mime - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7846
1.7.2. Laminas Log
Logging migrated to Monolog
1.8. nestedSortable
Replaced with sortablejs
1.9. Pear/db Dependency
Removes legacy PHP package pear/db from Tiki’s co
This dependency became obsolete after the OpenID PHP library (which required it) was archived and removed from Tiki.
1.10. POP3
Forum Email Retrieval now uses IMAP - https://gitlab.com/tikiwiki/tiki/-/merge_requests/7698
1.11. Rangy library
1.12. Rubix/extras package
The "rubix/extras" repository has been archived (as of March 27, 2025) and was not used anywhere in Tiki. All its valuable features are now consolidated into RubixML, so the package has been removed.
1.13. sam152/javascript-equal-height-responsive-rows
1.14. Vue.js 2
1. Mass cleanups
Many mass cleanups (affecting 15+ files), typically to reduce technical debt. Because of the large number of affected files, it's tricky to tests all the features in all contexts. So, some bugs could have slipped through. If you encounter one, please report it and we will quickly address:
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7308
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7432
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/5974
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7382
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7356
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7174
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8075
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8047
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8023
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8022
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8011
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7846
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7922
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/8073
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7924
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7923
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7935
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7921
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7879
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7383
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7535
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7725
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7582
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7587
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7622
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7593
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7532
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7432
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7452
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/5974
- https://gitlab.com/tikiwiki/tiki/-/merge_requests/7556