Commit Graph

60 Commits

Author SHA1 Message Date
Kian Jones
9418ab9815 feat: add provider trace backend abstraction for multi-backend telemetry (#8814)
* feat: add provider trace backend abstraction for multi-backend telemetry

Introduces a pluggable backend system for provider traces:
- Base class with async/sync create and read interfaces
- PostgreSQL backend (existing behavior)
- ClickHouse backend (via OTEL instrumentation)
- Socket backend (writes to Unix socket for crouton sidecar)
- Factory for instantiating backends from config

Refactors TelemetryManager to use backends with support for:
- Multi-backend writes (concurrent via asyncio.gather)
- Primary backend for reads (first in config list)
- Graceful error handling per backend

Config: LETTA_TELEMETRY_PROVIDER_TRACE_BACKEND (comma-separated)
Example: "postgres,socket" for dual-write to Postgres and crouton

🐙 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* feat: add protocol version to socket backend records

Adds PROTOCOL_VERSION constant to socket backend:
- Included in every telemetry record sent to crouton
- Must match ProtocolVersion in apps/crouton/main.go
- Enables crouton to detect and reject incompatible messages

🐙 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* fix: remove organization_id from ProviderTraceCreate calls

The organization_id is now handled via the actor parameter in the
telemetry manager, not through ProviderTraceCreate schema. This fixes
validation errors after changing ProviderTraceCreate to inherit from
BaseProviderTrace which forbids extra fields.

🐙 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* consolidate provider trace

* add clickhouse-connect to fix bug on main lmao

* auto generated sdk changes, and deployment details, and clikchouse prefix bug and added fields to runs trace return api

* auto generated sdk changes, and deployment details, and clikchouse prefix bug and added fields to runs trace return api

* consolidate provider trace

* consolidate provider trace bug fix

---------

Co-authored-by: Letta <noreply@letta.com>
2026-01-19 15:54:43 -08:00
Kian Jones
3eae81cf62 feat: add /v1/runs/{run_id}/trace endpoint for OTEL traces (#8682)
* feat: add /v1/runs/{run_id}/trace endpoint for OTEL traces

- Add new endpoint to retrieve filtered OTEL spans for a run
- Filter to only return UI-relevant spans (agent_step, tool executions, root span, TTFT)
- Skip Postgres writes when ClickHouse is enabled for provider traces
- Add USE_CLICKHOUSE_FOR_PROVIDER_TRACES env var to helm/justfile
- Move typecheck CI to self-hosted runners

🤖 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* fix: add missing clickhouse_provider_traces.py

The telemetry_manager.py imports ClickhouseProviderTraceReader from
this module, but the file was not included when splitting the PR.

🤖 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* autogen

* fix: add trace.retrieve to stainless.yml for SDK generation

Adds the runs.trace.retrieve method mapping so Stainless generates
the useRunsServiceRetrieveTraceForRun hook.

🤖 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

---------

Co-authored-by: Letta <noreply@letta.com>
2026-01-19 15:54:39 -08:00
Sarah Wooders
b8a6496acb feat: add runs_metrics table (#5169) 2026-01-19 15:51:30 -08:00
Ari Webb
754e750cc5 feat: add conversation_id filter to list runs [LET-6865] (#8404)
feat: add conversation_id filter to list runs
2026-01-12 10:57:48 -08:00
Kian Jones
939ba75e97 fix: properly limit runs query (#6357)
* letta

* tweak

* cancellation to 100

* openapi changes
2025-11-24 19:10:27 -08:00
cthomas
90e13f7dbc fix: runs endpoint titles (#6282) 2025-11-24 19:10:25 -08:00
cthomas
1be2f61f05 feat: add new letta error message stream response type (#6192) 2025-11-24 19:10:11 -08:00
Kian Jones
814856711e fix: prevent too many runs bug (#6076)
* add limit of 1000 and change FE

* add safety

* const name

* update limit

* add max limit

---------

Co-authored-by: christinatong01 <christina@letta.com>
2025-11-13 15:36:56 -08:00
Kian Jones
193c4f7c4a chore: continued logging cleanup and bugfixes (#5882)
* gracefully handle mcp error, runs/temporal error, and otel exporter bug fixes

* move error handling to managers

* remove migrated error handling from routers

* move logger.error calls to logger.warnings
2025-11-13 15:36:20 -08:00
cthomas
026deb294c feat: update delete runs return type [LET-5777] (#5636)
feat: update delete runs return type
2025-10-24 15:13:47 -07:00
Ari Webb
4431b06881 runs and jobs [LET-4634] (#5427)
runs and jobs

Co-authored-by: Ari Webb <ari@letta.com>
2025-10-24 15:12:11 -07:00
Ari Webb
9e94c344b8 using uuid and datetime [LET-5508] (#5430)
* using uuid and datetime

* add run_id

---------

Co-authored-by: Ari Webb <ari@letta.com>
2025-10-24 15:12:11 -07:00
cthomas
1353bcd524 fix: patch lettuce bug (#5335) 2025-10-24 15:11:31 -07:00
Sarah Wooders
216151a313 feat: add runs_metrics table (#5169) 2025-10-24 15:11:29 -07:00
Sarah Wooders
2017568b32 fix: fix run deletion [LET-5339] (#5277) 2025-10-09 13:20:53 -07:00
cthomas
9cb5156ac7 chore: sync 0.12.0 version (#3023)
Co-authored-by: Matthew Zhou <mattzh1314@gmail.com>
Co-authored-by: Kian Jones <11655409+kianjones9@users.noreply.github.com>
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>
2025-10-08 16:10:51 -07:00
Shelley Pham
346db5ce60 feat: add status to runs api [PRO-1529] (#5214) 2025-10-07 17:50:50 -07:00
cthomas
c31521c7ad feat: add conditional importing for lettuce client (#5212) 2025-10-07 17:50:50 -07:00
cthomas
391ecdba6d feat: clean up settings file (#5210) 2025-10-07 17:50:50 -07:00
cthomas
5b7e2b3f86 feat: add new lettuce client (#5207)
* feat: add new lettuce client

* modest improvements

* fix comment
2025-10-07 17:50:50 -07:00
cthomas
d9c7da643a feat: remove redundant docstring for runs steps (#5092) 2025-10-07 17:50:48 -07:00
cthomas
0794a6db69 feat: add pagination to run steps endpoint (#5083)
* feat: add pagination to run steps endpoint

* chore: regenerate API client with pagination parameters
2025-10-07 17:50:48 -07:00
cthomas
af23e6cda1 feat: add pagination to run messages endpoint (#5082)
* feat: add pagination to run messages endpoint

* chore: regenerate API client with pagination parameters
2025-10-07 17:50:48 -07:00
cthomas
c176835a1b feat: add pagination to list runs endpoint [LET-4580] (#5077)
feat: add pagination to list runs endpoint
2025-10-07 17:50:48 -07:00
cthomas
d7b2d3c6ba feat: make agent_ids field as deprecated on list runs [LET-4573] (#5067)
* feat: make agent_ids field as deprecated on list runs

* api sync
2025-10-07 17:50:48 -07:00
Sarah Wooders
354205f581 feat: create new runs table [LET-4467] (#4841) 2025-10-07 17:50:47 -07:00
Sarah Wooders
53786ee102 feat: asyncify test_manager.py [LET-4494] (#4890)
* add test_agent_manager.py

* created shared conftest

* add test_tool_manager.py

* add tag tests

* add message manager tests

* add blocks

* add org

* add passage tests

* add archive manager

* add user manager

* add identity

* add job manager tests

* add sandbox manager

* add file manager

* add group managers

* add mcp manager

* fix batch tests

* update workflows

* fix test_managers.py

* more tests

* comment out old test and add file

---------

Co-authored-by: Matthew Zhou <mattzh1314@gmail.com>
2025-10-07 17:50:46 -07:00
Sarah Wooders
4df0a27eb0 chore: remove sync db (#4873) 2025-10-07 17:50:45 -07:00
Matthew Zhou
8b580c94f0 fix: Asyncify runs routes [LET-4491] (#4869)
Asyncify runs routes
2025-10-07 17:50:45 -07:00
Matthew Zhou
8395ec429a feat: Add flag for TLS (#4865)
Add flag for TLS
2025-10-07 17:50:45 -07:00
cthomas
5dbb3a8648 feat: fix default job status (#4831) 2025-10-07 17:50:45 -07:00
cthomas
27dfb52568 feat: update run status for lettuce runs (#4830)
* feat: update run status for lettuce runs

* only fetch job status for pending case
2025-10-07 17:50:45 -07:00
cthomas
5166ab2f86 feat: only update job metadata when flag is set (#4824) 2025-10-07 17:50:45 -07:00
cthomas
a605271846 fix: flip tls flag (#4806) 2025-10-07 17:50:44 -07:00
Matthew Zhou
678350a6f2 feat: Pass through agent_state and patch bugs [LET-4456] (#4800)
* Pass through agent state

* temp

* Patch bugs

* Add todo for jin
2025-10-07 17:50:44 -07:00
Sarah Wooders
46ba8789b7 fix: patch issue with run listing (#4793)
* fix: patch issue with run listing

* another fix
2025-10-07 17:50:44 -07:00
cthomas
ee39b2bff2 feat: ensure temporal is hit through fastapi (#4784)
feat: ensure temporal works end-to-end
2025-10-07 17:50:44 -07:00
Sarah Wooders
c85bfefa52 feat: add agents_runs table (#4768) 2025-10-07 17:50:44 -07:00
cthomas
992f94da4b feat: integrate temporal into letta (#4766)
* feat: integrate temporal into letta

* use fire and forget, set up cancellation and job status checking
2025-10-07 17:50:43 -07:00
Kian Jones
b8e9a80d93 merge this (#4759)
* wait I forgot to comit locally

* cp the entire core directory and then rm the .git subdir
2025-09-17 15:47:40 -07:00
Kian Jones
22f70ca07c chore: officially migrate to submodule (#4502)
* remove apps/core and apps/fern

* fix precommit

* add submodule updates in workflows

* submodule

* remove core tests

* update core revision

* Add submodules: true to all GitHub workflows

- Ensure all workflows can access git submodules
- Add submodules support to deployment, test, and CI workflows
- Fix YAML syntax issues in workflow files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* remove core-lint

* upgrade core with latest main of oss

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-09 12:45:53 -07:00
Charles Packer
326f9a5049 fix: Add approval messages to runs.stream SSE schema (align with agents.create_stream) (#4451)
* fix: patch error on HITL tests

* Revert uv.lock to match main

* fix: IDK why uv lock keeps changing???
2025-09-05 21:44:26 -07:00
cthomas
892667d633 feat: poll cancellation status in client.runs.stream endpoint [LET-4209] (#4439)
* feat: make include pings default to true

* feat: add cancellation checks in  path
2025-09-05 12:30:30 -07:00
cthomas
b6b2bba7a7 feat: add error handling for background mode fetch [LET-4052] (#4210)
* feat: add error handling for background mode fetch

* improve redis error message

* fix typeerror

---------

Co-authored-by: Shubham Naik <shub@letta.com>
2025-08-26 14:33:29 -07:00
cthomas
4a53a466e6 feat: add pagination to list runs endpoint (#4204) 2025-08-26 13:26:12 -07:00
cthomas
ea34fdeeb7 feat: add background filter to list runs endpoint (#4196) 2025-08-26 10:52:36 -07:00
cthomas
6c59bc8dea feat: add retrieve stream testing (#4168) 2025-08-25 16:13:59 -07:00
cthomas
8909fd257b feat: add new client.runs.stream endpoint (#4165) 2025-08-25 13:42:22 -07:00
cthomas
064f87e722 chore: consolidate enum definitions (#2919) 2025-06-19 16:04:12 -07:00
cthomas
99e112e486 feat: make create_async route consistent with other message routes (#2877) 2025-06-19 13:51:51 -07:00