Repository navigation
Added
-
Compare the Memory ids of explicitly named nodes. (#2216)
-
Operator-run checkpoint and post-operation check for Memory ids. (#2218)
-
New admin-only
POST /AgentKeyRegisterregisters an agent key. (#2549) -
The federation receiver names refused and indeterminate keys. (#2579)
-
Sealed FederationRetry storage and an administrator-only HTTP reader support retry bookkeeping (#2538). (#2538)
-
Office-wide Presence, slice 1: a hub can receive a spoke's agent presence, behind a default-off flag.
Changed
-
Bootstrap's structured containers and the admin bootstrap carry no host-source pointer (#2448). (#2448)
-
The CI workflow coverage-gate checker refuses a gate whose step, job or workflow overrides the shell. (#2567)
-
Non-admin Memory writes discard caller-supplied vectors and model stamps that differ from the stored row's. (#2573)
-
Local test Harper refuses a stale Flair resource build (#2583). (#2583)
-
The CI workflow coverage-gate checker compares the Unit Tests adapter step line by line. (#2595)
-
Integration test shards are assigned by measured per-file duration (#2554). (#2554)
Fixed
-
Federation sync no longer logs the hub's response text; an unrecoverable non-2xx batch or a non-2xx liveness ping names only its HTTP status. (#2538)
-
A server-computed Memory vector stores the hash of the text it was computed from (#2465). (#2465)
-
Ordinary PATCHes of existing memories refresh or clear embeddings on content changes when embedding is omitted after redaction (#2466). (#2466)
-
After a server-side redaction, Memory write results report the stored text fields, never the caller's input for a field the server changed (#2467). (#2467)
-
Memory
PUT/PATCHnow lock the target id and commit ordinary row writes in owned transactions (#2478). (#2478) -
The embedding backfill computes its vector before its write transaction opens. (#2507)
-
The managed-start confirmation probe reads only the response the port it probed returned (#2485). (#2485)
-
The clean-VM CI gate lists every
flair doctorfinding when it cannot tell which ones doctor counted (#2489). (#2489) -
An embedding-space scan that finishes after a newer one no longer overwrites the newer scan's verdict (#2508). (#2508, #2481)
-
agent_endcapture now counts each session's message occurrences, so a session-keyed scan treats only new occurrences as the ending run's (best effort) (#2513). (#2513) -
flair doctor's audit-log and instance-identity checks route their ops reads to the endpoint verified for the probed instance (#2520). (#2520) -
The memory-tool contract in openclaw-flair's manifest is now the tool-name string list the OpenClaw host reads. (#2523)
-
The HTTP/ops pair check now proves from the OS listener table that one process with a Harper command line listens on both ports (#2526). (#2526)
-
The embedding-space guard fails closed: an unknown verdict is treated as not-uniform (#2545). (#2545)
-
After a server-side redaction, the built-in
/mcp, pi and OpenClaw write replies take the content they show from the stored text (#2537). (#2537, #2467) -
The built-in /mcp
skill_store,memory_basementandmemory_restorereplies report the stored, redacted text after a server-side redaction. (#2558) -
MemoryBootstrap's task-relevant selection and the
/MemoryDedupStatssweep now consult the embedding-space guard (#2559). (#2559) -
openclaw-flairretains snapshot identities while session state and encoded fields stay unchanged, and spends each run's cap from the end (#2560). (#2560) -
Memory stored reports supplied text and skill fields after redaction; FeedMemories uses an allowlist; write responses omit embeddings (#2561). (#2561)
-
flair doctor's fallback ops candidate is derived from the HTTP port it probed, not the configured one. (#2585) -
Test-harness Harper before/after hooks pass explicit lifecycle timeouts, and an overrunning
stopHarperrejects with a named error carrying its pid and phase. (#2569) -
OrgEvent POST, PUT and PATCH refuse malformed bodies with 400 body_must_be_object; PUT admits arrays of records (#2580). (#2580)
-
The embedding-space guard fails closed on scans and notified writes that find an untrusted vector stamp. (#2593)
-
The built-in /mcp
memory_basementandmemory_restoretool contracts declare the fields their replies actually carry:idandwritten(#2575). (#2575) -
OrgEvent rejects malformed ids that reach its id check with 400
invalid_event_id. (#2609) -
The launchd redaction check loads without a build, runs on PRs targeting main, and tells a check that could not run from a finding. (#2590)
-
Boot graph-heal and the dedup sweep consult the embedding-space guard, and the REM runner records its named state (#2596). (#2596)
-
The integrity scan reads Memory and its watermark-bounded deletion history by keyset on
id. (#2601) -
The integration shard weights updater writes a fresh table from a missing or malformed one (#2604). (#2604, #2605)
-
Size the CI unit-lane time budget from measured shard durations. (#2614)
-
The MCP pin-refresh unit test now rewrites a TEMP copy of package.json. (#2588)
-
flair doctorreads its Agent roster and home checks only from an ops endpoint whose own configuration names the HTTP port it probed. (#2519) -
Verify the CLI runtime in persisted-admin and using-flair seed integration tests (#2570). (#2570)
Security
-
Federation cannot replace a pending agent key (#2549). (#2549)
-
OrgEvent POST checks existing ownership and generates collision-resistant ids (#2333). (#2333)
-
Grant-authorized non-skill supersedes recheck the write grant before commit (#2333). (#2333)
-
The handlebars 4.7.10 bake-time exemption is removed: the pin is now past the 7-day window and passes the gate unexempted (flair#2424). (#2424)
-
Federation Memory merges refuse a changed stored target (#2510). (#2510)
-
MCP and XAA resolve only active Credential mappings with a principal (#2524). (#2524)
-
Grant-authorized cross-agent skill closes recheck write grants before commit (#2511). (#2511)
-
First-time pairing refuses an existing Peer row found during confirmation (#2512). (#2512)
-
Skill POST, PUT without
_reindex, and feed writes validate metadata and redact credential-shaped names, descriptions and tags (#2575). (#2575) -
Default REST routes reject noncanonical targets before route and authentication handling (#2607). (#2607)
-
Non-admin Credential PUT and PATCH abort when confirmed mapping fields changed (#2551). (#2551)
-
A Memory write grant cannot change the predecessor's visibility (#2564). (#2564)
-
Credential reserves IdP mapping creation, identity changes and reactivation for administrators and server code (#2552). (#2552)
-
Agent and admin OrgEvent resource writes use server time when no stored row is observed and preserve observed stored createdAt (#2551). (#2551)
Heads-up: Omit createdAt when updating an existing event.
-
Non-admin addressed writes to protected owner-scoped resources verify the addressed record and stored owner (#2551). (#2551)
Heads-up: Non-admin PUT, PATCH and DELETE must address one record.
Full record: CHANGELOG.md