Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/pond/issues.md or /mcp/pond/issues.json, or Pod over MCP.

Reported issues for pond

Pod holds 11 of 11 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to pond.

Most discussed

pond serve never stops when a supervisor asks it to

Follow-up to #194. Two separate problems with the same symptom: a supervised pond serve is always killed rather than stopped. Both reproduce against the v0.16.3 release binary in a container, serve --transport http --host 0.0.0.0, with pond as PID 1.

1. SIGTERM is ignored

transport.rs::shutdown_signal awaits tokio::signal::ctrl_c(), which on unix is SIGINT alone. Container runtimes, systemd and orchestrators all stop a process with SIGTERM, and a process running as PID 1 gets no def

Read the thread · 2026-08-29 · open · outside contributor · 2 comments

feature: letta-code adapter - sessions in ~/.letta/transcripts are not captured

Requested by a letta-code user on X who runs letta as the orchestrator with codex, pi, claude-code, and omp workers: https://x.com/kylelittle/status/2090858874626572337. Four of those already have adapters; this issue specs the letta-code one. React with 👍 if you want this adapter - reactions decide which adapter ships next.

Source of record

~/.letta/transcripts/<agentId>/<conversationId>/transcript.jsonl - the append-only client-side transcript letta-code writes for every conversation. R

Read the thread · 2026-08-21 · closed · 1 comment

pond serve leaks memory until OOM-killed (0.13.2): 157 MB -> 3.6 GB RSS over ~5 days

pond serve grows unbounded until the kernel OOM-kills it. On a 15 GB host it reached 5.5 GB RSS and was killed by the OOM killer; after an automatic restart it climbed back to 3.6 GB RSS + 3.2 GB swap over the next 4.9 days. pond mcp shows the same pattern independently.

Version

pond 0.13.2 (cc94b7d x86_64-linux)

Confirmed the leaking process was running this build (binary mtime predates process start), so this is not a stale-binary artifact.

Environment

Read the thread · 2026-07-20 · open · 1 comment

memory: reduce idle RAM of pond mcp toward <500 MiB (stream rowmap build, f16 model)

Goal

Bring idle RAM of a long-lived pond mcp server toward the <500 MiB target. Peak stays comfortably under the 2 GiB ceiling.

Measured baseline (real 2.1M-message corpus, local FS)

cargo bench --bench serve_mem_bench after serving fts + vector + sql + get, model idle-unloaded:

vmmap anatomy of that floor:

Component MiB Reclaimable?
Live Lance caches (index IVF/PQ + FTS post

Read the thread · 2026-06-19 · open · 1 comment

pond as a third-party session manager: Strands Agents (SessionRepository) + Claude Agent SDK (SessionStore)

Context capture from the 2026-06-17 research session. Goal: design pond so it can be contributed as a third-party session manager - to Strands Agents (their community catalog) and to the Claude Agent SDK - riding on the in-flight durability/perf/live-write/erasure work rather than as a separate rewrite.

The two integration seams (both thin Python shims over pond's HTTP API)

Strands: implement SessionRepository, not SessionManager

Strands has two seams. SessionManager = full li

Read the thread · 2026-06-17 · open · 1 comment

claude-code adapter: workflow journal.jsonl wrongly flagged as 'unrecognized subagent transcript layout'

Summary

pond sync reports errors (8 err) and prints a scary "update pond and re-run pond sync" message for every Claude Code workflow journal file:

[11:34:57] claude-code skip  .../subagents/workflows/wf_030e6487-da6/journal.jsonl: subagent transcript layout not recognized by this pond version; skipped so it is not merged into the parent session - update pond and re-run `pond sync`
... (8 such lines)
sync claude-code  ... 8 err

This is a false positive. `journal.jsonl

Read the thread · 2026-06-04 · closed · 1 comment

redaction on outbound paths (copy, export, resume) - not at ingest

Why

Secrets land in agent sessions: API keys pasted into prompts, tokens in tool output, scheme://user:pass@host URLs. pond stores sessions value-complete and never pruned, so the question "what happens to a secret in my archive" needs a deliberate answer.

Redacting at ingest is the wrong layer for an archive: it destroys data in the one place whose promise is losslessness, and it does nothing about the original exposure - the key already went to the model and sits in the harness's ow

Read the thread · 2026-08-21 · open · 0 comments

namespaces: keep work and personal sessions apart, scope what each agent can recall

Why

The wire protocol already carries an opaque namespace (spec 7.3) and the substrate has a catalog seam for it (3.2 lance-chokepoints-catalog), but a personal pond has exactly one namespace and nothing enforces separation. Two concrete needs:

Read the thread · 2026-08-21 · open · 0 comments

Most recent

perf(read): remote store reads - parts residency, FTS prewarm, long-lived serve topology

Why

Measured over 30 days against a remote S3 store (2608-12 read-path doc): 77% of all pond MCP calls took over 5 s; pond_search p50 10 s; before #141 not one pond_get_session or pond_get_message finished under 5 s. "Your own S3 bucket" is the differentiator, so the remote read path has to feel local.

#141 (v0.14.9) landed the two biggest items - rowmap-served message-id resolution and g

Read the thread · 2026-08-21 · open · 0 comments

Regression test: stdout purity for stdio MCP transport

Why

The stdout-is-only-JSON-RPC invariant is load-bearing for every stdio MCP client, silent when broken, and currently guarded only by convention: nothing in CI asserts it. PR #129's first revision moved all tracing output to stdout (fmt::layer() defaults to stdout) and would have merged green - the corruption was caught only in review, measured at 9 stray log lines interleaved around the initialize response (RUST_LOG=info), and 281 lines mixed into pond status -vv output. A comment

Read the thread · 2026-07-28 · open · 0 comments

Remote-store SQL analytics over parts.variant_data time out: compress JSON columns + materialize tool columns

Symptom

On a remote (S3) store, corpus-wide tool-call analytics in pond_sql_query hit the 30s timeout guard (QUERY_TIMEOUT, src/sql.rs). This includes the schema doc's own flagship worked example ("tool usage and failure rates over the last week", src/transport.rs schema resource), which fails even scoped to 7 days. Even a plain GROUP BY json_get_string(variant_data, 'name') over all tool_call parts times out.

Found during an MCP stress test (2026-07-03) against the real corpus: 1

Read the thread · 2026-07-03 · closed · 0 comments

The remaining reports are on the project's issue tracker.