Skip to content

Releases: xD4O/memento

v0.1.2 — Search accuracy & license

Choose a tag to compare

@xD4O xD4O released this 31 Jul 03:41

Search accuracy, and the project's first license.

Search now answers the question you asked

Searching a word the journal had never recorded used to return a screenful of
unrelated moments. Two causes, both in hybridSearch:

  • The nearest-neighbour query had no distance ceiling. ORDER BY embedding <=> query LIMIT 20 always returns twenty rows however far away they are —
    there is no such thing as "no semantic results", only the least-bad twenty.
  • Reciprocal-rank fusion then scored a rank-0 semantic guess (1/60) above a
    rank-1 literal word match (1/61), so the word you typed was not reliably
    first.

/search is now literal. Results are segments that actually contain your
terms, ranked by ts_rank, each deep-linking to the exact second. If the log
never said the word, you get nothing rather than a confident-looking stranger.

An intermediate version of this release surfaced semantic neighbours as a
separate "similar topics" list. It was removed: measurement showed cosine
distance is not a reliable relevance signal here. On a 600-segment corpus a
keyboard mash landed nearer (0.34) than ordinary words like "food" (0.40), and
the safe threshold moves with corpus size — the same gibberish sits at ~0.47 on
a 90-segment corpus. A list that looks authoritative should not rest on that.

Meaning-based retrieval stays where a model has to justify each citation:
Ask and the live agent's search_journal tool still receive literal
matches plus bounded semantic neighbours, so natural-language questions keep
working. Both also benefit from the fix, since the unfiltered neighbours were
previously reaching the LLM as context.

License

The project is now licensed under the
PolyForm Noncommercial License 1.0.0.
Personal, hobby, research, educational, and nonprofit use is granted, including
modifying and redistributing. Commercial use is not. This is a source-available
license, deliberately not an OSI open source one.

Also in this release

  • SEARCH_SEMANTIC_MAX_DIST bounds semantic retrieval for Ask (default 0.33)
  • Search page copy corrected: it no longer claims to be semantic, and the
    Ollama-offline banner is gone from keyword search
  • ESLint now honours the leading-underscore convention the code already uses
  • README: search and Ask sections, config table, and screenshot refreshed

Upgrading from 0.1.1

No schema change. Rebuild and restart:

(cd web && npm run build) && systemctl --user restart memento-web

Full changelog: v0.1.1...v0.1.2

v0.1.1 — Vault & console redesign

Choose a tag to compare

@xD4O xD4O released this 30 Jul 02:15

Second release of Memento — a private journal you talk to. Adds the Vault,
rebuilds the console UI, wires up the live avatar surface, and ships a rewritten
README with fresh screenshots.

Highlights

Vault

A new /vault with two tabs for everything that is off the timeline but still
on disk:

  • Trash — soft-deleted entries. Restoring puts one straight back on the
    timeline; the media file was never removed from storage.
  • Archive — entries set aside deliberately. They stay in the log and stay
    searchable, they just don't crowd the timeline.

Purging is the only destructive path in the app, and it is deliberately narrow:
only rows already in the trash can be purged, scoped to the operator,
UUID-validated, behind explicit multi-select plus confirmation. A storage
failure is logged rather than failing the request — a stray object is
recoverable, a half-deleted row is not.

Console redesign

A rebuilt Mission Log console: persistent module rail, mission-elapsed clock,
parallax starfield backdrop, archive orbit visual, and an About panel — plus an
app-wide styling pass across every view.

Live avatar surface

/api/avatar/render prefers a warm render daemon on port 8745 and falls back to
a cold scripts/render_avatar.py subprocess when it isn't listening, so the
feature works with nothing resident. This is delayed replay, not realtime
lip-sync.

Documentation

New structure and contents, a feature reference, a configuration table, and 9 new screenshots captured
from a demo instance seeded with fictional data.

Also in this release

  • entries.archived_at plus a partial index for the archive view
  • Account and entry API routes extended for archive/restore actions
  • Worker updates across the indexing and reporting passes
  • Version pinned to 0.1.1 in web/package.json and web/src/lib/version.ts

Upgrading from 0.1.0

Apply the schema change (idempotent — schema.sql uses IF NOT EXISTS), then
rebuild and restart:

bash scripts/migrate.sh
(cd web && npm run build) && systemctl --user restart memento-web
systemctl --user restart memento-worker

Full changelog: v0.1.0...v0.1.1

v0.1.0 — Memento v1

v0.1.0 — Memento v1 Pre-release
Pre-release

Choose a tag to compare

@xD4O xD4O released this 30 Jul 01:36

First tagged release of Memento — a live journal you talk to.

Video/voice log entries and full-duplex agent sessions, transcribed, indexed,
and remembered.

What's in it

  • Mission timeline — every log indexed, transcribed, and summarized
  • Live console — full-duplex voice sessions with the agent
  • Search & Ask over the whole log, plus a concept catalog
  • Mission calendar with day reports, moods, and reminders
  • Weekly debriefs with narrated recap videos
  • Pins & time capsules, threads & rapport profile
  • Life Story program — a long-form interview conducted over weeks
  • Stats & memory starmap — streaks, logged time, concept graph
  • Morning briefings

Stack

  • web/ — Next.js 16, Mission Log UI + API routes
  • worker/ — Python pipeline: whisper transcription, embeddings, LLM
    extraction/reflection, vision pass, day/week reports, capsule delivery,
    recap videos
  • db/schema.sql — Postgres 17 + pgvector
  • MinIO (S3) for raw media

See README.md for setup
and PLAN.md for the vision doc.

All screenshots in the README come from a demo instance seeded with fictional data.