WackoWiki: Change Log Feed

https://wackowiki.org/doc     Version: 7 (03/31/2025 10:14)

Change Log Feed

In chronological order, the change log of the last 10 releases.
XML

Feed Title: Release notes from wackowiki[link1]


6.1.27[link2]

Minor feature and bug fix release for 6.1.x series

  • installer: set more strict create ACLs for default pages
  • installer: add option to set default ACL settings (public or private wiki)
  • add to-top button for smaller screens to default theme
  • remove max values from form field for logo height and width
  • set min to 8 for user password form fields in admin panel
  • use short year alias y instead of yyyy for ICU date formats
  • translations
    • add Arabic, Czech, Finnish, Norwegian, Romanian, Portuguese-Brasilian, Swedish and Ukrainian translation
    • update Danish, Greek, French, Italian, Japanese, Dutch, Polish and Portuguese translation
    • add initial Indonesian language files
  • make date format depended on localization and user preferences
    • add date_preference VARCHAR(20) to user_setting table
    • add american_date to secondary config
    • formatter: add option american_date to set the default date format for English to
      • [mdy] MM/dd/y (true)
      • [dmy] dd-MM-y (false)
  • miscellaneous minor fixes
  • update libs
    • svg sanitizer 0.20
    • PHPMailer 6.9.2
    • SimplePie 1.8.1

Full Changelog: 6.1.26...6.1.27

6.0.38[link3]

Minor feature and bug fix release for 6.0.x series (PHP 7.3 - 8.0)

  • adds icon for action to WikiEdit toolbar
  • _t() uses now English as fallback for missing message sets
  • allows now hyphen-minus in file name and ignores duplicate files
    • e.g. wackowiki-6.0.38.zip
  • re-check for anonymous user before storing cache
    • soft_login() may set sess->user_profile
  • adds function number_format() to localize formatting
    • uses intl NumberFormatter
  • adds admin_replace action
    • allows administrators to do a global string find-and-replace on all wiki pages
  • changes format for backup.log to JSON (see upgrade page for more details)
    • Remove the backups you've created prior to WackoWiki 6.0.38 from the file/backup/ folder or replace the backup.log with a JSON formatted version.
  • disables show_permalink by default
  • removed deprecated Pragma: no-cache and Expires: header
  • fixes If-Modified-Since conditional requests issues
  • fixes invalid ETag
  • fixes various Cache-Control header issues
  • adds option to set the SameSite attribute
  • removes redundant setlocale() call
  • set HTTP status 410 for deleted pages
  • fix uploading is rejected when upload_max_size is 0
  • add copy to clipboard button for page tag and file syntax
  • allow Admins to change passwords for other users
  • uses :focus-within pseudo selector for dropdown
  • adds CSS class btn-sm and btn-md
  • miscellaneous minor fixes
  • update libs
    • SimplePie 1.8.1
    • PHPMailer 6.10.0
    • freeCap 1.4.6

Full Changelog: 6.0.37...6.0.38

6.1.29[link4]

Minor feature and bug fix release for 6.1.x series

  • disables double-click editing for all pages having forms
    • inside id section-content
  • add URI regex pattern PATTERN['URI']
  • add spaces also to page_path in link title
  • add link support for geo:, git:, tel:, sftp: and ssh: URI scheme
  • add icons for archive:, geo: and tel: links
  • update libs
    • svg sanitizer 0.22
    • PHP Thumb Library 2.3.2
    • freeCap 1.4.7

Full Changelog: 6.1.28...6.1.29

6.1.28[link5]

Minor feature and bug fix release for 6.1.x series

  • set 'Send me a copy' checkbox by default for personal messages
  • rename lang files for theme
    • theme/lang/theme.<lang>.php
    • theme/lang/theme.all.php
  • set HTTP status 410 for deleted pages
  • fix uploading is rejected when upload_max_size is 0
  • disables double-click editing for pages with actions that have a <form> tag
  • disable Topics API in permissions_policy.conf
    • browsing-topics=()
  • allow Admins to change passwords for other users
  • add copy to clipboard button for page tag and file syntax
  • add option comments_offset to display either the first or last comments page by default
  • update Indonesian translation
  • PHPMailer 6.10.0
  • freeCap 1.4.6
    • add AVIF and WebP support to freeCap
    • set WebP as default image type for freeCap

Full Changelog: 6.1.27...6.1.28

6.1.24[link6]

Minor feature and bug fix release for 6.1.x series

  • sets direct link to diff handler in feed and change notice
  • sets abuse_email as the Sender email (return-path) of the message
  • updates Português translation
  • random action redirects logged-in users now also to pages with registered users as read permission
  • enables section edit by default
  • adds syndication module to Admin panel
  • miscellaneous minor fixes

Full Changelog: 6.1.23...6.1.24



XML

Feed Title: Recent Commits to wackowiki:master[link7]


Modernize autocomplete & session heartbeat[link10]

Modernize autocomplete & session heartbeat This commit replaces the fragile `~~~`-delimited text protocol with a proper JSON API, consolidates the handler into a single optimized endpoint, and integrates autocomplete as a standard WikiEdit feature module loaded via main.js. Backend (src/handler/page/_autocomplete.php) - Single UNION query replaces two separate LIKE queries + PHP merge - Removed ancient `escape()`/`%uXXXX` decoding (client sends UTF-8) - Heartbeat (`?_autocomplete=1` only) and autocomplete (`q`+`ta_id`) share endpoint - JSON response: {ta_id, best_match, suggestions[]} Frontend (src/js/editor/features/autocomplete.js – new module) - fetch/AbortController, debounced requests, proper error handling - Lazy dropdown attachment fixes race condition on first response - Keyboard navigation (ArrowUp/Down, Enter, Escape, Ctrl+Space) - Accessible markup (role=listbox, aria-selected, aria-label) - Clean destroy() for WikiEdit lifecycle Session Heartbeat (src/js/editor/features/session-heartbeat.js) - Uses same endpoint, validates JSON `{ok:true}` response - Keeps simple 3-strike warning with draft-save UI (unchanged behavior) Integration (src/js/main.js, src/js/editor/wikiedit.js) - Autocomplete loaded unconditionally via main.js (like live-preview) - Feature flag `data-autocomplete` on textarea controls activation - Instance created BEFORE toolbar build so button renders in initial DOM - `_protoBuildToolbar` attaches dropdown synchronously post-render Template & Handler (src/handler/page/edit.php, edit.tpl, _header.tpl) - Removed inline `<script>` import and conditional script tag - Added `data-autocomplete` attribute driven by user setting - edit.php unchanged – still includes _autocomplete.php for AJAX Removed legacy cruft - `~~~` text parsing, double-query pattern - Ancient JS `escape()` decoder in PHP - Duplicate ACL SQL logic

refactor: add robust lifecycle management[link11]

refactor: add robust lifecycle management - core/init-diag.js * Release the debug‑console popup reference (`window._debugConsole`) and disconnect the MutationObserver on `beforeunload` so the popup and observer can be GC‑ed. - editor/editor-state.js * Implement `EditorState.destroy()` that unsubscribes every listener returned by `subscribe()` and clears internal data. - editor/wikiedit.js * Initialise `this._cleanup = []` in the constructor (guaranteed existence even if a feature throws). * `destroy()` now runs all registered clean‑ups, tears down `EditorState`, `AutoComplete`, removes global refs (`window.weSave`, `textarea.wikiEditInstance`), detaches textarea listeners, clears undo/redo stacks and timers, and calls `super.destroy()` when available. - editor/autocomplete.js * Declare all private handlers (`#handleDropdownClick`, `#handleDropdownMouseover`, `#onButtonClick`, `#onResetClick`) and keep bound references for reliable `addEventListener` / `removeEventListener`. * Add `destroy()` that cancels the debounce timer, aborts in‑flight fetches, removes every DOM listener, and nulls private DOM references. - components/upload.js * Refactor per‑form initialisation into a factory returning a `destroyUpload()` closure that removes all drag‑drop, paste, click listeners and any injected summary UI. The destroy function is stored on the form (`form._destroyUpload`) for SPA unmount handling. - editor/toolbar/toolbar-customizer.js * Auto‑close the toolbar‑customizer modal on `beforeunload` to avoid leaked dialog nodes and listeners. Overall these changes eliminate reference cycles, guarantee cleanup on page unload or SPA navigation.

add per-wiki localStorage namespace to prevent key collisions[link12]

add per-wiki localStorage namespace to prevent key collisions - Introduce Storage helper with automatic unique prefix based on application root - Fix localStorage sharing issue when multiple WackoWiki instances run under the same domain (e.g. example.com/wiki_a and example.com/wiki_b) - Update zen-mode, live-preview, syntax-highlight, autosave and related features - Add initStorage(appRoot) for explicit server-side root passing - Improve robustness and debugging output This resolves the fundamental design issue with shared localStorage on the same domain.