@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix content: <http://purl.org/rss/1.0/modules/content/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<https://lhero.org/?post_type=lh-portfolio-doc&#038;p=153058>
  a sioc:Post ;
  dc:title "Changelog" ;
  dcterms:identifier 153058 ;
  dc:modified "2026-11-01T12:18:39Z"^^xsd:dateTime ;
  dc:created "2026-11-01T12:18:39Z"^^xsd:dateTime ;
  sioc:link <https://lhero.org/portfolio/lh-contacts/changelog/> ;
  sioc:has_creator <https://lhero.org/author/1/#account> ;
  sioc:has_container <https://lhero.org/#posts> ;
  content:encoded "<ul class=\"lh_portfolio-meta\"><li><strong>Part of:</strong> <a href=\"https://lhero.org/portfolio/lh-contacts/\">LH Contacts</a></li></ul><ul class=\"lh_portfolio-changelog\"><li><strong>0.3.0:</strong> LH Contacts now does everything LH Vcard did, so LH Vcard can be retired: contact cards, signed download links, change tracking and the links on other screens, with none of LH Vcard&#039;s names or data carried over. Cards (vCard 3.0, built with sabre/vobject from this plugin&#039;s own Composer install) are the same apart from their UID, now seeded from lh-contacts, so a card downloaded before and imported again after may appear as a new contact. Downloads move to lh-contacts/v1/download, and links made by LH Vcard stop working. Each card&#039;s last-changed time is kept per site in {site prefix}lh_contacts-updated_time, set for every member by a backfill the first time each site loads, and every change, departure or block is recorded straight in LH DAV&#039;s change log, replacing LH Vcard&#039;s tombstones; the bridge and change recorder classes are removed. Hooks: lh_contacts_add_data (card fields, with the viewer as a third argument), lh_contacts_return_all_tracked_meta_fields, lh_contacts_return_view_capability (publish_posts by default), lh_contacts_return_photo_size, lh_contacts_block_taxonomy, lh_contacts_download_link_lifetime and lh_contacts_recently_updated_item; other plugins can call LH_Contacts::return_signed_download_url() and LH_Contacts::return_view_capability(). The Latest Vcards dashboard widget and shortcode become Recently Updated Contacts and . The dashboard widget, shortcode, bbPress link and the check-in and group report columns now appear only for users who can see member contacts; LH Vcard showed them to anyone who could reach those screens. Requires only LH DAV.</li><li><strong>0.2.0:</strong> First working release: each site&#039;s member directory as a read-only CardDAV address book, served by LH DAV at addressbooks/{user ID}/members/. It replicates LH Vcard&#039;s own CardDAV address book: the site&#039;s users less anyone blocked on it, readable by users with LH Vcard&#039;s view capability (publish_posts by default), with each card built by LH Vcard for the person syncing, so the teams shown are the groups they can see. Changes reach phones through LH DAV&#039;s sync-collection: card updates and removals are recorded from LH Vcard&#039;s existing change tracking, and a change to what the viewer can see, or a new release of LH Vcard or LH Contacts, resends the cards. Requires LH DAV and LH Vcard (Requires Plugins header) and is network-only; it boots after both on plugins_loaded and does nothing if either is missing. Every call into LH Vcard goes through one bridge class. No MCP abilities: the provider&#039;s methods are the service API, with the permission checks inside them.</li><li><strong>0.1.0:</strong> Initial scaffold.</li></ul>"^^rdf:XMLLiteral ;
  sioc:content "Part of: LH Contacts0.3.0: LH Contacts now does everything LH Vcard did, so LH Vcard can be retired: contact cards, signed download links, change tracking and the links on other screens, with none of LH Vcard&#039;s names or data carried over. Cards (vCard 3.0, built with sabre/vobject from this plugin&#039;s own Composer install) are the same apart from their UID, now seeded from lh-contacts, so a card downloaded before and imported again after may appear as a new contact. Downloads move to lh-contacts/v1/download, and links made by LH Vcard stop working. Each card&#039;s last-changed time is kept per site in {site prefix}lh_contacts-updated_time, set for every member by a backfill the first time each site loads, and every change, departure or block is recorded straight in LH DAV&#039;s change log, replacing LH Vcard&#039;s tombstones; the bridge and change recorder classes are removed. Hooks: lh_contacts_add_data (card fields, with the viewer as a third argument), lh_contacts_return_all_tracked_meta_fields, lh_contacts_return_view_capability (publish_posts by default), lh_contacts_return_photo_size, lh_contacts_block_taxonomy, lh_contacts_download_link_lifetime and lh_contacts_recently_updated_item; other plugins can call LH_Contacts::return_signed_download_url() and LH_Contacts::return_view_capability(). The Latest Vcards dashboard widget and shortcode become Recently Updated Contacts and . The dashboard widget, shortcode, bbPress link and the check-in and group report columns now appear only for users who can see member contacts; LH Vcard showed them to anyone who could reach those screens. Requires only LH DAV.0.2.0: First working release: each site&#039;s member directory as a read-only CardDAV address book, served by LH DAV at addressbooks/{user ID}/members/. It replicates LH Vcard&#039;s own CardDAV address book: the site&#039;s users less anyone blocked on it, readable by users with LH Vcard&#039;s view capability (publish_posts by default), with each card built by LH Vcard for the person syncing, so the teams shown are the groups they can see. Changes reach phones through LH DAV&#039;s sync-collection: card updates and removals are recorded from LH Vcard&#039;s existing change tracking, and a change to what the viewer can see, or a new release of LH Vcard or LH Contacts, resends the cards. Requires LH DAV and LH Vcard (Requires Plugins header) and is network-only; it boots after both on plugins_loaded and does nothing if either is missing. Every call into LH Vcard goes through one bridge class. No MCP abilities: the provider&#039;s methods are the service API, with the permission checks inside them.0.1.0: Initial scaffold." ;
  sioc:topic <https://lhero.org/?taxonomy=author&term=cap-1> .

<https://lhero.org/author/1/#account> rdfs:seeAlso <https://lhero.org/author/1/?feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=author&term=cap-1> rdfs:seeAlso <https://lhero.org/?taxonomy=author&term=cap-1&feed=lhrdf&format=turtle> .
