Skip to content

Oikos

v1.38.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 7d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

docker family family-planner home-automation planner-app privacy-first
+4 more
progressive-web-app pwa self-hosted selfhosted-apps

Summary

AI summary

Contacts now preserve vCard name components for consistent sorting and duplicate detection.

Changes in this release

Feature Medium

Contacts store vCard name components and compose display name as "First [Middle] Last".

Contacts store vCard name components and compose display name as "First [Middle] Last".

Source: llm_adapter@2026-07-20

Confidence: medium

Feature Medium

Contact dialog requires at least one of first or last name fields.

Contact dialog requires at least one of first or last name fields.

Source: llm_adapter@2026-07-20

Confidence: medium

Feature Medium

vCard export writes real `N` components; import reads them preserving name structure.

vCard export writes real `N` components; import reads them preserving name structure.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Medium

Editing a contact with an unmanaged category no longer silently changes its category.

Editing a contact with an unmanaged category no longer silently changes its category.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Medium

Family and shared‑expense guest contacts drop stale name components when member display name changes.

Family and shared‑expense guest contacts drop stale name components when member display name changes.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Medium

Duplicate check during vCard import now recognises contacts regardless of name order or comma form.

Duplicate check during vCard import now recognises contacts regardless of name order or comma form.

Source: llm_adapter@2026-07-20

Confidence: medium

Bugfix Medium

Existing CardDAV contacts have display name normalised once on next sync; locally adopted contacts retain original household‑given names.

Existing CardDAV contacts have display name normalised once on next sync; locally adopted contacts retain original household‑given names.

Source: llm_adapter@2026-07-20

Confidence: medium

Full changelog

Added

  • Contacts keep the structured name components of a vCard (given, family, additional, prefix, suffix) instead of only the combined FN string. CardDAV sources format that string however they like — Given Family on one server, Family, Given on the next, sometimes with a title mixed in — which made the list read and sort differently depending on where a contact came from. The display name is now composed as First [Middle] Last from the components, and the list sorts by last name. FN remains the fallback for cards whose N carries no name parts, such as organisation entries.
  • The contact dialog has separate fields for first and last name, grouped under one required marker: at least one of them must be filled. A contact that has no components yet is pre-filled by splitting its display name at the last word, and that guess is only saved once a name field is actually edited — so changing a phone number never invents a surname for a company contact.
  • The vCard export writes real N components where they exist, and the import reads them, so a contact exported from Yuvomi and read back elsewhere keeps its name structure.

Changed

  • Existing CardDAV contacts are picked up on the next sync: contacts created purely from a vCard also get their display name normalised once, while contacts that were adopted from a local entry keep the name the household gave them.
  • The duplicate check during vCard import compares both name orders and the comma form, so re-importing a contact that is already synced under Family, Given is recognised instead of silently offered as new.

Fixed

  • Editing a contact whose category is not in the managed list no longer moves it to a different category. The dropdown had no matching entry, silently displayed the first category and wrote it on save; the contact's actual category is now offered as its own option and left untouched unless it is changed deliberately.
  • Family and shared-expense guest contacts drop stale name components when the member's display name changes, so the list no longer sorts them under a surname that is no longer part of their name.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Oikos

Get notified when new releases ship.

Sign up free

About Oikos

Family planner for small households

All releases →

Related context

Earlier breaking changes

  • v0.71.3 Changes WebDAV backup default path from "/oikos/backups/" to "/yuvomi/backups/".
  • v0.66.0 Repository URL changed to `https://github.com/ulsklyc/yuvomi`.
  • v0.66.0 Docker image moved to `ghcr.io/ulsklyc/yuvomi`.
  • v0.66.0 Project renamed from Oikos to Yuvomi.
  • v0.62.0 Changes event dialog to unified sync target picker across Google and CalDAV calendars.

Beta — feedback welcome: [email protected]