Skip to content

Agent Memory v0.2.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 12:01
· 44 commits to main since this release
Immutable release. Only release title and notes can be modified.
ea2259a

Upgrading

No data or configuration changes. From any version since 0.1.1:

git fetch --tags && git checkout v0.2.2
docker compose up -d --build

Update amem on every client. Two of the three fixes are in the client (REMOTE-CLIENTS §4).

Fixes

  • PostgreSQL stores every message (#23). PostgreSQL refuses the character U+0000, which SQLite stores, and a tool that printed binary data was enough to trigger it. That caused two problems:

    • On PostgreSQL, live writes containing it failed.
    • migrate-to-postgres.sh stopped with unsupported Unicode escape sequence.

    Core now drops U+0000 where text enters, and the migration drops it from data already stored in SQLite.

  • Long replies and long sessions are no longer lost (#22). amem sent turns that broke Core's request limits:

    • a message over 8,192 characters;
    • more than 100 messages in one request, or more than 500 tool messages.

    Core rejected each such turn as a whole, and amem only logged it. Long text is now sent as several messages, and requests are split into batches.

  • Memories keep the date of the conversation (#21). amem now sends the time each message was recorded:

    • Claude Code: each transcript line's time.
    • Antigravity: each step's time.

    A turn that is imported or sent later keeps its own date instead of the day it arrived.

Known issue

MIGRATE_TARGET=postgres-url ./migrate-to-postgres.sh --non-interactive ignores AGENT_MEMORY_POSTGRES_URL given on the command line, because the empty value in .env replaces it. Fixed on main (#25). Until the next release, set the URL in .env first.


升級

資料和設定都沒有改變。從 0.1.1 之後的任何版本升級:

git fetch --tags && git checkout v0.2.2
docker compose up -d --build

每台 client 都要更新 amem,三個修正裡有兩個在 client 端(REMOTE-CLIENTS §4)。

修正

  • PostgreSQL 可以存下所有訊息(#23)。PostgreSQL 不接受 U+0000 這個字元,但 SQLite 可以存,只要工具印出二進位資料就會觸發。造成兩個問題:

    • 在 PostgreSQL 上,含有這個字元的即時寫入會失敗。
    • migrate-to-postgres.sh 會停在 unsupported Unicode escape sequence。

    現在 Core 會在文字進入時去掉 U+0000,搬移時也會從 SQLite 既有的資料中去掉。

  • 長回覆和長 session 不會再遺失(#22)。amem 送出的一輪超過了 Core 的請求上限:

    • 單則訊息超過 8,192 字元;
    • 一次請求超過 100 則訊息,或超過 500 則工具訊息。

    Core 會整輪拒絕,amem 只記在 log 裡。現在長文字會拆成多則訊息送出,請求也會分批。

  • 記憶保留對話當時的日期(#21)。amem 現在會送出每則訊息被記錄的時間:

    • Claude Code:transcript 每一行的時間。
    • Antigravity:每個 step 的時間。

    事後匯入或延遲送出的一輪,會保留它自己的日期,不再是送達那天的日期。

已知問題

MIGRATE_TARGET=postgres-url ./migrate-to-postgres.sh --non-interactive 會忽略在指令上傳入的 AGENT_MEMORY_POSTGRES_URL,因為 .env 裡的空值會把它覆蓋掉。已在 main 修正(#25)。下一版發布之前,請先把 URL 寫進 .env。