What changed in our agent research. Each entry tracks new findings, updated systems, and refined analysis.
Monthly deep code analysis of the 9 source repos. Real architectural movement in 5 systems (31-day windows): Cline (355 commits/27 authors), Graphify (416/85), Hermes (5,921/871), HOME23 (438/solo), NemoClaw (1,032/57). Four systems were quiet: ElizaOS, Milady, OpenClaw, smolagents. The convergent theme this month is durability and hard enforcement boundaries — crash-safe delivery, capability tokens, deny-first tool gates.
ca6f6a6c; desktop-app/sidecar/ARCHITECTURE.md). Connector sessions (Slack etc.) persist across Hub restarts with autostart (51e5daf8).team_spawn tool (blocks recursive unbounded spawn), OAuth refresh propagates single-flight to all subagents mid-turn (359445ae); scheduled/headless routines default to yolo auto-approve with ask_question disabled (469debdb); sidecar bind host + trusted origins env-configurable for Docker dev (d41eed11).3e06abc3); ACP organization selector (3f38bd51); per-session subagent history via list_session_agents.c39c6d44); agentic compaction — context condensed by a summarization agent rather than truncation — defaulted on (26037b17); nightly publish workflow; 10+ ENG-ticketed VS Code regression fixes.GatewayRunner collapsed ~19 ad-hoc Dict[str, session_key] attributes into one SessionState (gateway/session_state.py) with explicit turn/conversation/persistent scopes — kills a class of wholesale-reset races.gateway/delivery_ledger.py records each outbound final response in state.db with pending → attempting → delivered | failed and a restart-sweep — at-least-once delivery with honest duplicate labeling ("Recovered reply — may be a duplicate"). Cites 3 prior prod issues; cross-process kill-mid-send E2E test.approvals.smart_policy) + user-defined deny rules that block terminal commands even under yolo (first hard user veto); per-channel model + system-prompt overrides (priority session > channel > global); desktop-vision images reachable from profile Docker sandboxes.reply_to) → near-parity with native adapters.indirect_call edges for getattr() (8fdbf50), ADR/RFC doc-reference edges (6d3a6f1).graphify install --strict installs a Claude Code hook that issues permissionDecision:"deny" to block the first raw file read of a session, forcing the agent through the graph query layer (689dd6c). Atomic per-session marker fires it at most once so it can't strand the agent; GRAPHIFY_HOOK_STRICT toggles. Previously advisory-only — now a hard behavioral gate. Symlink following moved to opt-in with out-of-root targets rejected (009a98b)._GraphContextCache capped by GRAPHIFY_MAX_CONTEXTS (default 8), bad project_path raises a tool error instead of sys.exit (b4865ff); token budget on get_neighbors/get_community.src/lib/onboard/managed-startup/ (~3,250 lines) + a root-owned transactional shared-state layer — but explicitly dormant, no production caller yet (issue #7744, PR3.1–3.15).nemoclaw <sandbox> mcp status <server> --tools — with hard limits (time/request/size/tool-count) and the invariant that discovery never sends tools/call; a vendored discovery runtime is bundled into all 3 agent images to avoid duplicating the security-sensitive path. Managed shared-state transactions enforce ownership/mode checks and env -i clean-exec (6 allowlisted controls) with idempotent rollback.operation-store.js (append-only, idempotency keys, terminal-state tracking, signed snapshots) and a Query Notebook (durable continuation tokens, size-bounded redacted export).requesterAgent/operationType/operationId/accessMode; privileged-env stripping scrubs HOME23_*_KEY from tool-spawned subprocess environments (a test proves a model-driven shell can't read them); confined-file reads re-stat inode/dev/mtime for identity.ElizaOS (develop branch idle), Milady, OpenClaw — 0 commits/31d; smolagents — 4 trivial commits. Pages remain current from the prior pass. Individual system-page integration of the above deferred to a reviewed edit; this entry is the record.
Every cloned repo pulled and git-log-diffed since February; the 10 systems with no local repo re-researched on the web. Material orthogonal-component changes:
@cline/{shared,llms,agents,core,sdk}) + a detached multi-client Cline Hub daemon brokering one shared session across IDE/CLI/browser. Orthogonal shifts from "VS Code-native plan/act" to the Hub session broker.messages_in/messages_out as the sole host↔container channel), Chat-SDK bridge, pluggable AgentProvider.Renamed "Agent Frameworks" → Agents Hub. Restored the canonical krons gold/blue style across all pages (the shared /assets/ dir was missing, so pages had been loading an unstyled fallback).
v3.4.0 (2026-06-05) repositions ContextLattice from "a memory service agents call into" to "a runtime contract agents inhabit." The public headline shifted from write-optimization / freshness framing to amnesia prevention: "Stop giving your agents amnesia and calling it workflow." The write-optimized control-plane core still holds — but the orthogonal claim is now the runtime contract, with context freshness secondary.
contextlattice_agent_adapter implementing bootstrap, context-pack, checkpoint, handoff, event, complete — any runtime wires it once for durable handoff./v1/agents/sessions with /telemetry/agents/runtime, and objective_runtime_state.v1 threaded across preflight / context-pack / Dream Mode.Currently v3.4.23 (2026-06-13). github.com/sheawinkler/ContextLattice is alive and very active — pushed 2026-06-14, 113 stars, 7 forks, Go primary lang, not archived; 30 GitHub releases spanning v3.3.x–v3.4.23 in roughly Feb–June 2026. v3.4.0 is the stable public agent-runtime-contract baseline; v4 stays a private tuning/experiment lane gated on benchmark/recall/soak.
Updated page: ContextLattice (v3.4.23)
Monthly reresearch of 9 agent framework repositories revealed significant activity in 3 systems: ElizaOS (2680 commits), Cline (55 commits), and smolagents (3 commits). The common theme: production hardening—isolation boundaries, credential management, containerized deployment, and operational observability.
milady.json) and runtime pools. AccountPool now owns all credential mutations with public CRUD API. Cross-provider account isolation enforced—each provider maintains independent priority namespace.@elizaos/agent harness package introduced with extended loadCharacters (JSON file + cwd support) and optional checkShouldRespond callbacks. Agent-Orchestrator + Plugin-Manager promoted to core bundles for multi-agent PTY delegation and runtime plugin loading..dockerignore.ci. 599+ lines of connector simulator + mutation tests prove state isolation.@elizaos/vault introduced for credential mirroring—apiKeyRef replaces plaintext apiKey in configs. Android AOSP local inference wired with bun:ffi struct-by-value shim + KV chunking.SdkController split into SdkMessageCoordinator, SdkSessionFactory, SdkSessionLifecycle, mode-specific handlers. Plan/Act mode switching triggers session rebuild with preserved history.toolPolicies. Follow-up message queueing prevents "already in progress" races. Subagent spawn events filter by parentAgentId to prevent parent chat flooding.RipgrepError + error_reason proto fields (CLINE-1814) for structured diagnostics. Workspace unavailability, ripgrep spawn failures surface via telemetry with individual enums.--heapsnapshot-near-heap-limit=1. CVE-2026-41242 protobufjs pinned to 7.5.5.allow_pickle=False in remote executors reduces arbitrary object deserialization risk.LocalPythonExecutor is NOT a security sandbox—mandate external sandboxes (E2B, Docker, Modal) for untrusted code.OpenClaw, NemoClaw, Milady, Hermes, HOME23, Graphify had 0 commits in April 2026. Pages remain current from April 16, 2026 analysis.
Cloned all 9 system repositories to /workspace/agent-research-sources/ and launched parallel deep code analysis using Explore subagents. Updated all research pages with current state findings integrated into existing orthogonal sections (not as "Recent Updates" sections).
~/.hermes/profiles/, pluggable context engine with compression supportplugin.json capabilities/hooks declaration, Pi framework details (@mariozechner/pi-coding-agent, not Claude Code wrapper), involuntary subagent injection mechanics (child results force-injected into parent without consent)System capability summaries on main hub page updated to reflect current state. All pages now document current implementation, not historical updates.