* fix: prevent human block overwrite when skills block missing
**Bug**: When connecting to agents created before skills blocks were
standard, the human block gets overwritten with skills directory content.
**Root cause**: agent_manager.py:1893-1898 had `block = block` (no-op).
When skills block doesn't exist, loop variable ends as last block in
core_memory (often "human"), then updates that wrong block.
**Fix**: Use `matched_block` variable to properly track found block.
Now correctly raises NoResultFound when block label doesn't exist.
**Impact**: Affects pre-December 2025 agents missing skills blocks.
Written by Cameron ◯ Letta Code
"The best error message is the one that never shows up." - Thomas Fuchs
Co-Authored-By: Letta <noreply@letta.com>
* fix: use correct method name in block update test
Change get_block_by_label_async to get_block_with_label_async in test.
Written by Cameron ◯ Letta Code
Co-Authored-By: Letta <noreply@letta.com>
---------
Co-authored-by: Letta <noreply@letta.com>