Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 18 Mar 12:13
2826e04

What's New

Cornerstone now includes a Construction Diary (Bautagebuch) that helps you maintain a detailed record of your home building project. Track daily activities, site visits, deliveries, and issues while the system automatically logs significant events like status changes, invoice processing, and milestone delays.

Highlights

  • Manual Diary Entries -- Create five types of entries: daily logs, site visits, delivery records, issues, and general notes with weather tracking and photo attachments
  • Automatic System Events -- Key project changes (work item status, invoices, milestones, budget breaches, schedule changes, subsidies) are automatically recorded in the diary
  • Photo Attachments -- Attach photos directly when creating or editing diary entries for visual documentation
  • Digital Signatures -- Capture signatures from users or vendors with a drawing canvas; signed entries become immutable for accountability
  • Dashboard Integration -- A new "Recent Diary" card on the project dashboard shows the latest entries at a glance
  • Filtering -- Filter entries by All, Manual, or Automatic with type-specific chips for quick navigation

2.0.0 (2026-03-18)

⚠ BREAKING CHANGES

  • dav: OIDC_REDIRECT_URI environment variable has been removed.
    The OIDC callback URL is now derived as <EXTERNAL_URL>/api/auth/oidc/callback,
    falling back to the request's protocol and host when EXTERNAL_URL is not set.
    Users who previously set OIDC_REDIRECT_URI should set EXTERNAL_URL instead
    (e.g. EXTERNAL_URL=https://myhouse.example.com).

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): add getctag, supported-report-set, and calendar/addressbook-query support

iOS Calendar and Contacts require several properties and REPORT types
that were missing:

  • Add CS:getctag (Calendar Server extension) to calendar and addressbook
    collection properties — iOS uses this to detect changes and trigger sync
  • Add supported-report-set to advertise supported REPORT types
  • Handle calendar-query and addressbook-query REPORT types by returning
    all items (read-only collections, no server-side filtering needed)
  • Use replaceAll for etag/ctag placeholder substitution in collection props

Previously, iOS would connect successfully but show no events or contacts
because it sent calendar-query/addressbook-query REPORTs (which we returned
empty for) and had no getctag to trigger change detection.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): use regex replace instead of replaceAll for TS lib compat

The tsconfig lib target doesn't include es2021, so replaceAll is not
available on string types. Use .replace() with a global regex instead.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): PROPPATCH handler, root NS declarations, ETag consistency
  • Register PROPPATCH HTTP method and add handlers for calendar/addressbook
    collections (iOS sends PROPPATCH to set color, name, alerts)
  • Move CalDAV/CardDAV/CalendarServer namespace declarations to multistatus
    root element instead of local declarations on child elements (iOS strict)
  • Fix ETag mismatch: REPORT now uses type-prefixed ETags (wi-/milestone-/
    hi-/vendor-/contact-) matching PROPFIND depth 1 and GET responses
  • Add debug-level request body logging for PROPFIND/REPORT/PROPPATCH
  • Add tests for PROPPATCH, ETag consistency, and namespace declarations

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): update davXml tests for root namespace declarations

Tests expected namespace URIs in collection prop templates and the
multistatus tag, but namespaces are now declared only on the root
<D:multistatus> element. Update assertions accordingly.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): fix calendar-home-set structure for iOS discovery

iOS PROPFINDs the calendar-home-set at depth 1 looking for children
with <C:calendar/> resourcetype. Previously, the home-set pointed
directly to the calendar collection (/dav/calendars/default/), so
depth 1 children were .ics files — not calendars. iOS could discover
the calendar via fallback but may not properly sync events from it.

Changes:

  • Point calendar-home-set to /dav/calendars/ (parent collection)
  • Point addressbook-home-set to /dav/addressbooks/ (parent collection)
  • Add PROPFIND handlers for /dav/calendars/ and /dav/addressbooks/
    that return the default collection as a child at depth 1
  • Add current-user-privilege-set (read) to calendar and addressbook
    collection props so iOS knows the user has read access

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): add temporary info-level DAV request/response logging

Log full request body (with Depth header) and response body (truncated
at 4000 chars) at info level for PROPFIND, REPORT, and PROPPATCH.
This will help diagnose why iOS receives calendar data but doesn't
display events. Remove after the issue is resolved.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • fix(dav): parse iOS-style href elements with inline xmlns declarations

iOS sends multiget REPORT requests with <A:href xmlns:A="DAV:"> format
instead of the standard <D:href> format. The parseReportHrefs regex
did not accept attributes between the tag name and >, causing it to
return an empty array and producing empty multiget responses.

Fix: change regex from to <href[^>]*> to accept any attributes.
Also removes temporary debug logging hooks (no longer needed).

Features

Bug Fixes

Documentation

  • add EPIC-13 diary documentation and task tracking to skills (#914) (5d79d2f)
  • feeds: add CalDAV/CardDAV feed documentation (#930) (32695e9)

Chores

  • add AGPL-3.0 license and Harmony CLA (#954) (664fb43)
  • add i18n conventions to agent definitions and CLAUDE.md (#931) (2c02163)
  • add timeouts to CI gate polling loops (#932) (b9e43de)
  • agent metrics evaluation & process improvements (P1-P8) (#913) (7847c70)
  • ci: replace CLA Assistant app with GitHub Action (#976) (d1027d8)
  • harden dependency supply chain (#959) (8288572)
  • i18n: add translator agent, glossary, and fix German terminology (#972) (6a260ba)
  • migrate project board management from GraphQL to native gh project CLI (#925) (1d5c87f)
  • reduce test output noise (#974) (3ee5717)

Tests

Continuous Integration