Skip to content

Releases: pike00/Kindred

v0.2.93

Choose a tag to compare

@pike00 pike00 released this 19 Jun 00:46
v0.2.93
57834c1
release v0.2.93

v0.2.92

Choose a tag to compare

@pike00 pike00 released this 07 Jun 02:15
v0.2.92
1647b8a

Kindred v0.2.92 is a quiet but impactful tuning pass—one that makes the app feel faster from the very first paint, and a bit more human when you reach out to someone.

We’ve tightened up the frontend’s startup sequence: a slower-than-it-should-be first paint is now fixed, and the eagerly loaded JavaScript bundle has gotten notably leaner. On top of that, we brought our display font in‑house, so pages now render with zero layout shift and no third‑party round‑trip stealing milliseconds from your first glance. The result is a noticeably snappier, more stable shell right as you land.

Under the hood, contact fields are learning better manners. Phone fields now politely reject non‑numeric input, and email fields push back when the value doesn’t look like an address—catching typos before they become undelivered messages. It’s a small guardrail that keeps your contact list clean and dependable.

All in all, v0.2.92 is the kind of release that doesn’t scream for attention, but earns it every time you open the app.

v0.2.91

Choose a tag to compare

@pike00 pike00 released this 07 Jun 00:15
v0.2.91
c2e5002

Here’s a short editorial release narrative for kindred v0.2.91:


Contact cards just got a little more personal. In this release we reordered the details so that the phone number now sits right above email — because sometimes a quick call comes first. We also brought age and a birthday countdown directly onto the contact card and the dashboard, giving every connection that extra touch of warmth.

Behind the curtain, our backend tests caught up with the removal of the journal and mood features. And in a small but fun automation upgrade, we enlisted DeepSeek v4 Pro to help draft these release notes — faster, sharper, and maybe a bit cleverer than before.

Small steps that keep Kindred human.

v0.2.90

Choose a tag to compare

@pike00 pike00 released this 06 Jun 23:19
v0.2.90
45846c3

What's new

Added

  • Edit a contact's birthday from the Edit dialog. Previously a birthday could only be set when creating a contact and never changed afterward, even though the API supported it. The Edit Contact dialog now has a birthday field that pre-fills the existing value.

Full changelog: v0.2.89...v0.2.90

v0.2.89

Choose a tag to compare

@pike00 pike00 released this 06 Jun 22:45
v0.2.89
0d1a76f
release v0.2.89

v0.2.86

Choose a tag to compare

@pike00 pike00 released this 01 Jun 03:42
v0.2.86
ccac035
release v0.2.86

v0.2.85

Choose a tag to compare

@pike00 pike00 released this 01 Jun 01:40
v0.2.85
f512258
release v0.2.85

v0.2.84 — Fix global search and duplicate contact header buttons

Choose a tag to compare

@pike00 pike00 released this 29 May 23:31
v0.2.84
f598b85

Fixes

  • Global search no longer 500s. Every /search query failed: search referenced Model.search_vector on Contact / Note / Interaction / JournalEntry, but the tsvector columns (created by migration a0b1c2d3e4f5) were never declared on the SQLModel classes (AttributeError: search_vector). The columns are now mapped on all four table models (DB-trigger maintained, excluded from the API). Additionally, interaction search referenced Interaction.updated_at and Interaction.contact_id, neither of which exist — interactions have no updated_at and link to contacts via interaction_attendee. Shared-contact visibility now scopes through the attendee join.
  • Contact detail header no longer shows duplicate buttons. Removed an accidentally duplicated "Download PDF + Edit" button group.

v0.2.83 — Fix contact detail page crash

Choose a tag to compare

@pike00 pike00 released this 29 May 23:05
v0.2.83
a04eac2

Fixes

  • Contact detail page no longer crashes. The interaction-activity heatmap rendered two sibling <button> elements (light/dark variants) inside a single Radix TooltipTrigger asChild, which requires exactly one child. React.Children.only threw on every render and the route error boundary replaced the whole page with "Error / Oops!". The cell is now a single button with inner light/dark color spans.
  • Contact heatmap endpoint no longer 500s for contacts with interactions. get_contact_heatmap unpacked a single-column scalar SELECT as a tuple (for (occurred_at,) in ...), raising TypeError: cannot unpack non-iterable datetime.datetime object.

v0.2.82 — Stack QuickLog FAB above the voice-record FAB

Choose a tag to compare

@pike00 pike00 released this 29 May 22:21
v0.2.82
cb390db

Fixed

  • The QuickLog and hold-to-record floating action buttons were both pinned to the bottom-right corner with the same z-index, so the 48px QuickLog button rendered on top of the 64px voice button as one overlapping green blob. QuickLog now sits above the voice FAB with a clean gap.

Commit: cb390db