Skip to content

v0.62.0

Latest

Choose a tag to compare

@github-actions github-actions released this 17 Oct 20:47
· 167 commits to main since this release
2461721

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 /AgentKeyRegister registers 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/PATCH now 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 doctor finding 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_end capture 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_basement and memory_restore replies report the stored, redacted text after a server-side redaction. (#2558)

  • MemoryBootstrap's task-relevant selection and the /MemoryDedupStats sweep now consult the embedding-space guard (#2559). (#2559)

  • openclaw-flair retains 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 stopHarper rejects 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_basement and memory_restore tool contracts declare the fields their replies actually carry: id and written (#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 doctor reads 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