Skip to content

Instantly share code, notes, and snippets.

View kaaloo's full-sized avatar

Luis Arias kaaloo

View GitHub Profile
@kaaloo
kaaloo / report.md
Created June 16, 2026 10:20
# Bug report: Memory harness fails to auto-commit and auto-push Edit-tool changes

Letta Code version: 0.27.8 (macOS) / 0.27.9 (Railway worker) Severity: High — silent data loss for agent learnings

What I observed

On 2026-06-16, while making several Edit tool calls to memory block files in the agent's MemFS (for example reference/letta-code-remote-worker-integration.md and reference/team-learnings.md), the Letta memory harness did not auto-commit the changes. Running git status in the local Mac MemFS showed the modifications as unstaged, with 49 other recent commits also still unpushed to origin.

This means a multi-turn session that includes Edit-tool calls to memory blocks can leave the new learnings only in the working tree on the local machine. If the Mac restarts, the memfs resets, the harness re-clones from origin, or the user switches machines, those learnings are silently lost — even though the agent believes it has persisted them (the system prompt at the top of every conversation advertises an auto-commit/push workflow).

Steps to reproduce

{
"name": "ApiError",
"url": "/v1/conversations/?agent_id=agent-ad2e72e7-c97b-4294-b288-42649e736e17",
"status": 422,
"statusText": "Unprocessable Entity",
"body": {
"trace_id": "9999573c3feefd4fc6eb902609cc9afe",
"detail": "[{'type': 'union_tag_invalid', 'loc': ('body', 'model_settings'), 'msg': \"Input tag 'minimax' found using 'provider_type' does not match any of the expected tags: <ProviderType.openai: 'openai'>, <ProviderType.sglang: 'sglang'>, <ProviderType.anthropic: 'anthropic'>, <ProviderType.google_ai: 'google_ai'>, <ProviderType.google_vertex: 'google_vertex'>, <ProviderType.azure: 'azure'>, <ProviderType.xai: 'xai'>, <ProviderType.moonshot: 'moonshot'>, <ProviderType.zai: 'zai'>, <ProviderType.moonshot_coding: 'moonshot_coding'>, <ProviderType.groq: 'groq'>, <ProviderType.deepseek: 'deepseek'>, <ProviderType.together: 'together'>, <ProviderType.bedrock: 'bedrock'>, <ProviderType.baseten: 'baseten'>, <ProviderType.openrouter: 'openrouter'>, <ProviderType.chatgpt_oauth: 'chatgpt_o
-- SQL Script to add 50 user entries to the database
INSERT INTO user (id, name, email, role, profile_image_url, last_active_at, updated_at, created_at, organization_name)
VALUES
('user1', 'John Smith', 'john.smith@example.com', 'admin', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Acme Corp'),
('user2', 'Jane Doe', 'jane.doe@example.com', 'user', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Acme Corp'),
('user3', 'Robert Johnson', 'robert.johnson@example.com', 'user', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Acme Corp'),
('user4', 'Emily Williams', 'emily.williams@example.com', 'user', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Tech Solutions'),
('user5', 'Michael Brown', 'michael.brown@example.com', 'user', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Tech Solutions'),
('user6', 'Lisa Davis', 'lisa.davis@example.com', 'user', '/user.png', unixepoch(), unixepoch(), unixepoch(), 'Tech Solutions'),
@kaaloo
kaaloo / secrets.py
Created January 9, 2023 16:47
Secrets Management with Colab
import json
import os
from getpass import getpass
from pathlib import Path
from typing import Dict, List, Optional, Union
def load_secrets(secrets: Optional[Union[str, Dict[str, str]]] = None, overwrite=False) -> None:
"""
Loads secrets and sets up some env vars and credential files.
@kaaloo
kaaloo / File.fs
Last active January 29, 2019 22:05
module Mdar.Addresses
open Fable.Core.JsInterop
open Fable.Import
open Fable.Import.Fuse
open Node.Exports
open Node.Globals
open Thoth.Json
open Fable.Core
@kaaloo
kaaloo / file.js
Last active January 29, 2019 22:05
js I ported
const fs = require('fs')
const path = require('path')
const { featureCollection } = require('@turf/helpers')
const Fuse = require('fuse.js')
const streetAddressesGeoJSON = featureCollection(JSON.parse(fs.readFileSync(path.join(__dirname, 'adresses.json'))))
const streetAddressesFuse = new Fuse(streetAddressesGeoJSON.features.features, {
shouldSort: true,
keys: [
"properties.adresse"
var React = require('react');
var ReactDOM = require('react-dom');
var CSSTransitionGroup = require('react-addons-css-transition-group');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Navigation = ReactRouter.Navigation;
var History = ReactRouter.History;
var createBrowserHistory = require('history/lib/createBrowserHistory');
The meetup will begin at 18:30 the early presentations at 19:00. The preliminary program is as follows:
6:30 p.m. Doors. Pizza, Champagne ....
7:00 p.m. Intro: Franck Bardol Igor Carron
7:05 p.m. Bastien Legras, Francois Sterin
7:30 p.m. Andrew Ng (remote from SF)
@kaaloo
kaaloo / gist:9784776
Created March 26, 2014 14:35
10 biggest tables in MySQL
SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows / 1000000, 2), 'M') rows,
CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G') DATA,
CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G') idx,
CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
ROUND(index_length / data_length, 2) idxfrac
FROM information_schema.TABLES
ORDER BY data_length + index_length DESC
LIMIT 10;
/**
* Base64-encodes the specified serialized byte array and sets that base64-encoded String as the cookie value.
* <p/>
* The {@code subject} instance is expected to be a {@link WebSubject} instance with an HTTP Request/Response pair
* so an HTTP cookie can be set on the outgoing response. If it is not a {@code WebSubject} or that
* {@code WebSubject} does not have an HTTP Request/Response pair, this implementation does nothing.
*
* @param subject the Subject for which the identity is being serialized.
* @param serialized the serialized bytes to be persisted.
*/