Skip to content

Latest commit

 

History

History
65 lines (48 loc) · 2.49 KB

File metadata and controls

65 lines (48 loc) · 2.49 KB

Changelog

0.3.1 — 2026-07-21

Security

  • Transitive cryptography CVE fix. cryptography reaches this package only via nostrkey, which previously capped cryptography<45.0 and shipped the vulnerable 44.0.3 (four advisories: PYSEC-2026-35, PYSEC-2026-2141, GHSA-537c-gmf6-5ccf, and a related OpenSSL fix). The nostrkey floor is raised to >=0.3.5, whose lifted ceiling resolves cryptography 49.0.0.

Changed

  • Dependency floor raised from nostrkey>=0.3.4 to nostrkey>=0.3.5. Verified against the local nostrkey 0.3.5 build: full suite and pip-audit green on cryptography 49.

0.3.0 — 2026-07-19

Added

  • PersonaMemory type — a domain/facet/insight structure with knowledge half-life, relevance decay, and lifecycle states (STATE_ACTIVE/STATE_FADING/STATE_FORGOTTEN/STATE_DISSOLVED), plus IntrospectionReport and the DEFAULT_DOMAINS / DEFAULT_FACETS constants. Exported from the package top level.
  • Taxonomy rename: wing→domain, hall→facet, room→insight.
  • MemoryStore.__repr__ redaction — never exposes identity secrets.
  • sense-memory v2 design spec (DESIGN-V2.md) and Operator Guidance in clawhub/SKILL.md.

Changed

  • Dependency bumped to nostrkey>=0.3.0.

Carried forward from 0.2.1

  • The MemoryStore.recent() journal-starvation and ordering fix (see below) is included in this release.

0.2.1 — 2026-07-17

Fixed

  • MemoryStore.recent() could return an empty list or wrong-order results despite journal entries existing on the relay (release-audit finding, severity: high).
    • Journal entries share kind 30078 with key-value memories, and the old limit + 50 over-fetch relied on the relay's newest-first window — a burst of recent KV writes could fill the entire window and starve journal entries out of the result. recent() now fetches up to the MAX_QUERY_RESULTS safety cap so all candidate events for the author are considered before filtering.
    • Results were never sorted, so "newest first" depended on relay stream order (which NIP-01 does not guarantee); an oldest-first stream returned the OLDEST entries. recent() now sorts entries by created_at descending locally and truncates to limit.
  • Added regression tests covering journal starvation by newer KV events, oldest-first relay stream order, limit truncation keeping the newest entries, and malformed-event tolerance.

0.2.0

  • Multi-relay support, journal entries, NIP-09 forget, prior releases.