KinKudos

VERSIONS

Changelog

See what was added and fixed in every application version.

v26.1.1

What's new?

No new features in this release.

What's fixed?

  • The Settings page now uses one clear heading hierarchy, centered dividers, consistent field typography, styled select controls, primary action buttons, and matching green/red service status indicators.
  • The project README now presents verified capabilities, privacy boundaries, deployment expectations, and screenshots made with fictional demo data.
  • Backup documentation now distinguishes an invalid S3 hostname from Docker or host DNS failures and provides direct diagnostic commands.
  • Sensitive settings ask for โ€œYour account passwordโ€ instead of the longer, account-type-specific wording.
  • The activity-history filter no longer repeats a separate โ€œChildโ€ label next to the self-explanatory selector.
  • Service-worker cache behavior is covered by a regression test that requires Cache-Control: no-cache on the worker script.

v26.1.0

What's new?

  • Parent administrators can verify and update SMTP settings from the Settings page; the SMTP password remains in a local permission-restricted secret file.
  • The family name can now be edited from the general family settings.

What's fixed?

  • Settings are organized into family, child and point, privacy, email, backup, account, and feedback sections.
  • The seventh child theme is now the original Blockville theme with cube currency and trademark-neutral interface copy.
  • Backup storage verification retries temporary Docker DNS failures and replaces low-level resolver output with an actionable endpoint message.
  • Task, penalty, and reward edit forms consistently show colons after labels.
  • Sensitive SMTP and backup credential changes require the current password of the parent administrator making the change. Account editing remains under its existing authentication rules.

v26.0.0

What's new?

No new features in this release.

What's fixed?

  • KinKudos is now a production release and no longer displays the BETA label.
  • Version numbers now use YY.FEATURE.FIX: the year changes the first number, new functionality increments the second, and fixes, design work, or extensions of existing functionality increment the third.
  • Feedback settings show unresolved reports by default and retain pagination; resolved reports remain available through the status filter.
  • Backup settings distinguish an unconfigured orange state, a red stale or error state, and a green current state. Empty technical placeholders are replaced with concise human-readable values.
  • Installation and upgrade documentation is repository-neutral, distinguishes KinKudos remote snapshots from whole-server backups, and recommends a dedicated restricted bucket for backup verification.
  • Traefik is permanently instructed to reach the application through the external web network when the app also joins its internal backup network.
  • The release updater assigns backup directories, agent credentials, and restic configuration to the configured application UID and GID even when the updater is run with sudo.
  • Compose and updater regression tests protect the network selection and backup-file ownership fixes.
  • The backup settings page no longer exposes REPLACE_WITH_REPOSITORY, and its destructive-change warning uses a softly red background.

v0.13.0 BETA

What's new?

  • Blockville World is a seventh child theme with a dark game-style interface, cube currency forms, challenge and prize wording, tactile controls, neon confetti, and its own completion sound in English and Lithuanian.
  • Parent Settings now show backup provider, repository, last successful remote copy, integrity-check time, current activity, errors, and a seven-day health indicator.
  • Parent administrators can verify Backblaze B2 or generic S3-compatible credentials and request an immediate encrypted backup from the web UI.
  • A daily isolated backup agent copies the consistent SQLite database and private uploaded media, applies 31-day retention, and runs restic check.
  • Dedicated English and Lithuanian Orange Pi ARM64 installation guides cover first-family setup, verification, backups, and upgrades.

What's fixed?

  • The interactive installer now asks for language, hostname, allowed private networks, first-parent credentials, family name, and child profiles without embedding deployment-specific defaults.
  • Existing provider-neutral restic.env and repository passwords are preserved and detected when upgrading from 0.12.4.
  • The Lithuanian TODO now contains only outstanding device checks, restore tests, deferred providers, and newly identified work.
  • Backup credentials are owned by an isolated container without a published port or Docker socket; the web application receives only sanitized status and never receives stored provider secrets.
  • Backup configuration and manual requests are limited to the first parent administrator, require password confirmation for credential changes, and are audited without secret values.
  • Family-specific names and a deployment-specific diagnostics username were removed from the current repository tree and demo/test data is generic.

v0.12.4 BETA

What's new?

No new features in this release.

What's fixed?

  • Child activity history now shows only the five most recent actions.
  • Gift notifications use shorter wording and the recipient's themed point name without exposing the transferred amount in the notification text.
  • Catalog create and edit forms consistently call the emoji field โ€œIconโ€.
  • The project README now reflects the current BETA feature set, deployment model, supported platforms, and AI-project disclaimer.
  • Language controls now show only the flag in a compact 44 px circular control, without the code or dropdown arrow that was misaligned on iPad.
  • Notification controls now show only the bell in the same 44 px frame as the sign-out control, while keeping accessible state text.
  • Release archives are built only from Git-tracked files, so ignored local caches and configuration cannot be included accidentally.