曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.かつては雑草やヨモギと共に雨や露を分かち合っていたが、今では松やヒノキと共に霜や雪に耐えている。曾与蒿藜同雨露,Once sharing rain and dew with weeds and wormwood, now enduring frost and snow with pines and cypresses.终随松柏到冰霜.曾与蒿藜同雨露한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.,终随松柏到冰霜.譖セ荳手珍阯懷酔髮ィ髴イ�檎サ磯囂譚セ譟丞芦蜀ー髴�曾与蒿藜同雨露,鏇句笌钂胯棞鍚岄洦闇诧紝缁堥殢鏉炬煆鍒板啺闇�终随松柏到冰霜.曾与蒿藜同雨露,한때 잡초와 쑥과 함께 비와 이슬을 나누던 곳이 이제는 소나무와 삼나무와 함께 서리와 눈을 견뎌내고 있다.终随松柏到冰霜.曾与蒿藜同雨露,终随松柏到冰霜.
Hubzilla 11.4.1 (2026-09-09)
- Fix regression in settings in case where advanced theme settings were disabled
- Pubcrawl: fix PHP fatal error if a field in "to" was not a string
- Gallery: fix issue where alt text would cover the whole image
Hubzilla 11.4 (2026-08-07)
Features
- Introduce DBA upsert function wich will insert or update a row in one go to reduce integrity constraint violation warnings due to race conditions
- Notify about to be moderated likes if like notifications are disabled
- Lib/Activity deal with content map arrays by returning the first entry
- Selectable timezone (channel timezone or utc) for hubzilla log
- Implement thumb previews in files app tiles mode where applicable
- Implement fetchable lists endpoint
- Provide a method to convert the public key to multibase/base58 format
- Allow to load extra schemas in unit tests
- Add system.propfind_depth_infinity option for admins to allow propfind requests with infinity depth
- Add CSRF token to Authorize module
- Add AVIF support for PhotoImagick
Maintenance
- Improved get_recursive_thr_parents() query
- Update the platform icon to the current project style icon
- Refactor mod item->item_check_service_class() for performance reasons
- Refactor Queue::insert() to implement prepared statements and store it in a static variable
- Introduce channel_id_by_hash() function to minimize code duplication
- Introduce abook_id_by_hash() function to minimize code duplication
- Refactor PConfig Load and Set methods to store prepared statement in static variable
- Refactor get_account_by_id() function to implement prepared statements and replace custom queries where applicable
- Refactor Theme::current() to implement prepared statements and store it in a static variable
- Refactor load_translation_table() to implement prepared statements and store it in a static variable
- Refactor plugin_is_installed() to implement prepared statements and store it in a static variable
- Refactor Lib/XConfig Load and Set methods to implement prepared statements and store it in a static variable
- Refactor Lib/AbConfig Load and Set methods to implement prepared statements and store it in a static variable
- Remove unused functions their_perms_contains() and my_perms_contains()
- Refactor conv_sort() to save some roundtrips for performance
- Set PDO::ATTR_EMULATE_PREPARES to false by default - configurable via system.pdo_emulate_prepares
- Add API doc for Daemon/Addon and daemon_addon hook
- Minor refactor of is_matrix_url() to fix a php warning
- Refactor some queries in loops to implement prepared statements
- Introduce prepared statements helper functions p() to prepare e() to execute and pe() prapre and execute (replacement for current q())
- Move dealing with item_private based on public_policy out of post_activity_item() and process it in item_store()
- Remove the deprecated snap module
- Catch and log jsonld expand errors
- Refactor Lib/System and add get_useragent() method which is now used for network requests
- Replace unmaintained id3parser lib with php-id3
- Add english database docs
- Refactor Activity::encode_follow_collection() to implement pagination
- Refactor AccessList::members() to implement pagination
- Move html for block widget to template
- Add tests for bbcode img and zmg tags
- Use getallheaders() if available in Web/WebServer
- Refactor Activity::encode_attachment() to return url field with array of links or attachment field depending on url/href in provided data
- Refactor mod sharedwithme and deprecate attach.meta iconfig due to incompatibility with AS2
- Refactor files app for better performance in backend and frontend
- Remove registration of empty shutdown function in killme()
- Update API docs for attach.php and item.php
- Document init_1 hook
- Add API docs for channel_url()
- Add API docs for xrd module
- Improve terminating functions
- Remove unneeded browser plugin in mod dav
- Move default home page to template
- Cleanup Hook API's and tests
- Update German register email template
- Escape input params in Authorize module
- Improve API docs and naming in head_add_css()
Bugfixes
- Fix fetch_xchan() to prefer zot records
- Fix display array config values in util/config
- Fix uncaught event bbcode parsing error
- Fix App::$profile_uid check for autosave feature
- Fix discrepancy between created and edited timestamp
- Fix possible race condition issue when storing ObjCache json
- Fix unnecessary hubloc lookups in Lib/Dreport
- Fix performance issue when bulkuploading images
- Fix gender and marital icons in profile widget
- Fix mod photo displaying Add/Remove activities
- Fix IPv6 for database connections
- Fix dbunescbin called more than once breaking postgres
- Fix deleted apps counted as installed
- Fix post_activity_item() not caching the activity object
- Fix duplicate tags when editing a post
- Fix mod dav loading the profile while not needed
- Fix handle_tag() to select only xchans where we also have a hubloc
- Fix missing return statement in mod pdledit_gui
- Fix missing return statement in Browser::generateDirectoryIndex()
- Fix Storage/File->get() to throw file not found if we did not find the file
- Fix missing returns in various modules
- Fix wrong variable in attach_store()
- Fix bbcode img tag attributes
- Fix attachment order issue for inbound activities
- Fix display error with modal overlays if the cover slide up was triggered via click
- Fix missing data to calculate lat/lon - issue #1986
- Fix redundant redirect in mod cloud - issue #1988
- Fix registration verification email template
- Fix min/max fields in duration template
Addon
- Wiki: fix created/edited timestamp discrepancy
- Fediquest: move the cheap checks up before any db calls
- Qrator: minor improvements
- Sse: performance improvements
- Pubcrawl: fix warning if the object is not yet resolved
- Superblock: version 3.1.2 with many improvements and new features (sponsored by NLnet NGI0 Commons Fund)
- Pubcrawl: refactor mod followers and mod following to reflect core changes and implement pagination
- Pubcrawl: represent the public key in multibase format along with eddsa public key
- Pubcrawl: add mediatype and dimensions to the image attachments
- Pubcrawl: refactor encoding of image attachments
- Pubcrawl: fix alt text for attachments in various conditions
- Pubcrawl: do not add attachments to media objects
- Wiki: add attachments to item
- Simplenotes: new addon implementing the serverside UI for the Simple Notes Sync android app https://github.com/inventory69/simple-notes-sync
Hubzilla 11.2.1 (2026-05-20)
- Fix channel creation failing in some situations
- Drop payloads with unsafe json-ld keys in LDSignatures::verify() and add tests
- Fix App::$profile set for removed channels
- Fix MessageFilter breaking when expecting string but array is given
- Superblock: fix blocking failed in some setups (sponsored by NLnet NGI0 Commons Fund/Superblock)
- Superblock: fix missing import of attribute (sponsored by NLnet NGI0 Commons Fund/Superblock)
- Superblock: improved detection of reshares (sponsored by NLnet NGI0 Commons Fund/Superblock)
- Cards: fix PHP warning
- Gallery: fix PHP warnings and only implement observer related javascript if there actually is an observer
- Diaspora: fix missing local namespace for thr_parent
Hubzilla 11.2 (2026-03-26)
Features
- Introduce parse_webbie() for preparing webbies and URLs for webfinger usage
- Allow to override cUrl useragent
- New HQ system status widget for admins (sponsored by NLnet NGI0 Commons Fund/Performance Profiling)
- Refactor drop_query_params() to deal with array params and add test
Maintenance
- Remove private members from API docs
- Remove custom CA certs
- Add type annotations in Extend\Route
- Set method visibility in Extend\Route
- Add API docs and licence info to Extend\Route
- Add a short sleep interval to Activity::init_background_fetch() when adding new work items in a loop
- Add a short sleep interval to the convo daemon loop to spread the load for large collections
- Use PHP matching rules in util/run_xgettext
- Store translation templates as .pot instead of .po
- Deprecate NULL_DATE constant in favor of DBA::get_null_date()
- Composer require guzzlehttp/psr7
- Update composer libs
- Move HQ channel notifications widget HTML to template
- Deprecate tags and attachment in activities
- Update the nginx config example to meet the more modern approach
Bugfixes
- Fix route and widget register() not deduplicating entries
- Fix issue in route and widget unregister() where we unregistered even if only one of the two arguments did not match
- Fix issue in Storage/Directory where we returned a partial path instead of throwing exception if a directory of a path could not be found
- Fix possible endless loop in externals daemon
- Fix fatal error in italian translation file
- Fix mod network not displaying direct messages when filters active - issue #1973
- Fix ghost notifications with reshared items - issue #1970
- Fix issue with double typed objects in Lib/Activity
- Fix events displaying event timezone instead of adjusted to timezone
- Fix duplicated terms in activity object
- Fix last modified timestamp not updating in attach_store()
Addons
- Wopi: fix headers already set warning when serving the file to the client
- Superblock: complete rewrite with extended functionality and added tests for version 3.0 (sponsored by NLnet NGI0 Commons Fund/Superblock)
- Diaspora: use Diaspora/2 useragent when fetching hcards to prevent being redirected to some shady bot guard
- Add composer config and autoload files for addons
- Wopi: return early in construct_page hook and
- Wopi: fix wrong hook name in uninstall function
Hubzilla 11.0 (2026-01-30)
Features
- Rewrite Lib/MessageFilter (ported from forte) and add more tests
- Rewrite editor encryption feature to implement libsodium and PBDKF2 for password hashing
- Change default feed behaviour to return only toplevels - issue #1953
- Add active themes list to siteinfo
- Show viewsource link for pubstream items
- Implement singleton object cache
- Restructure cross protocol message payload
- View source will now display the raw object instead of just the object body
- Implement OWA2
Maintenance
- Remove capability to update xchan entries via api
- Move mod search HTML to template
- Move channel activities HTML to template
- Update util/run_xgettext.sh to ignore not relevant directories
- Update composer libs
- Move mod bookmarks HTML to template
- Update italian translation
- Use finfo class to determine mime type in attach_store()
- Bump attach.filetype field length to match photo.mimetype
- Move share container HTML to template
- Update cloud directory template to provid necessary data for the WOPI addon
- Remove appearances of curl_close() - deprected and noop since PHP version 8.0
- Remove appearances of GD imagedestroy() - deprected and noop since PHP version 8.0
- Improve replies id detection
- Remove deprecated ofeed and ochannel modules
- Remove support for deprecated AS1 verbs and objects in the network stream filters
- Improve detection of allday events
- Improve handling of events with no endTime
- Provide the event hash and timezone in the event object
- Improve test isolation
- Add quoteUri field to activities
- Update API docs for hooks
- Improve share to quote conversion
- Rename (un)serialise() -> json_(un)serialize()
- CI: Replace use of create_identity in MagicTest
- CI: Add test db fixtures for hubloc table
- CI: Stub crypto calls from CreateIdentityTest (performance)
- CI: Add tests for Profiles module
- CI: Add tests for Zotfinger module
- Use json serialisation for iconfig
- CI: Add test db fixtures for channel table
- CI: Reload test fixtures from db
- CI: Set logged in channel for delete account test
- CI: Use root passwd to set up MySQL test db
- Improve dba_pdo::insert function
- Update install document
- Remove unused sprintf.js
- Move twitteroauth lib to addon_common
- Move slinky lib to addon_common
- Move openid lib to openid addon
- Move XRI lib to wppost addon
- Move diff lib to wiki addon
- Remove unused bootbox lib
- Remove unused images
- Move language specific folders into its own subfolder in /view
- Remove deprecated sjcl lib and references
- Deprecate outbound JSalmon signatures
Bugfixes
- Fix reply-to button not diplayed for anonymous visitors allthough permission is granted
- Fix wrong icon class in mod cloud
- Fix bulk deleting files
- Fix cloud root folder shows unknown error
- Fix edited timestamp in attach_store() in case of update
- Fix grammar in Lib/Enotify::submit()
- Fix content-type and length header in Module\TestCase
- Fix args in xchan_fetch() not escaped
- Fix notification for events linking to wrong message id - issue #1954
- Fix post_mail permission not working independend from the send_stream/post_comment permissions - issue #1951
- Fix item relayed again in case it comes back from a channel that sources our channel
- Fix activity signer not set
- Fix category link not update at clone - issue #1932
- Fix tag delivery attempted item type is not post - fix issue #1941
- Fix block/unblock account - issue #1947
- Fix warnings in profile_edit template
- Fix warnings for optional args in field templates
- Fix undefined vars in mod profiles
- Fix fullscreen button class
- Fix delivery report when syncing cloned channels
Addon
- New addon implementing basic WOPI protocol - integrates collabora with the Files app
- Redphotos: addon removed - was used for migration from redmatrix to hubzilla
- Redfiles: addon removed - was used for migration from redmatrix to hubzilla
- Nsfw: rewrite to implement new MessageFilter
- Wiki: fix long loading time due to oembed attempts
- Wiki: improved SQL query