Commit graph

812 commits

Author SHA1 Message Date
Christian Klotz
8823891f3d
feat(agent): simplify session storage composition 2026-08-02 00:08:18 +03:00
Christian Klotz
1a7e1faa1f
fix(agent): synchronize array-backed entry indexes eagerly 2026-08-01 23:50:57 +03:00
Christian Klotz
6e48c10f5b
Merge pull request #7448 from earendil-works/feat/agent-branch-queries-v2
feat(agent): add bounded branch entry queries
2026-08-01 22:14:17 +03:00
Christian Klotz
4ecd1bbe67
test(agent): derive timeout output size from truncation limit 2026-08-01 21:30:35 +03:00
Christian Klotz
081d7fbfca
fix(agent): harden bounded branch queries 2026-08-01 21:26:55 +03:00
Christian Klotz
9b75872017
feat(agent): add bounded branch queries 2026-08-01 21:26:55 +03:00
Armin Ronacher
a1403af8ec fix(agent): make timeout output test deterministic 2026-08-01 14:06:00 +02:00
Christian Klotz
e92bf60a58
fix(agent): make SQLite branch caching scalable 2026-08-01 10:08:56 +03:00
Christian Klotz
c2adb4d1da
fix(agent): use SQLite trigger for rollback test 2026-08-01 02:52:21 +03:00
Christian Klotz
57583617ef
fix(agent): make SQLite session operations linear 2026-08-01 02:11:22 +03:00
Christian Klotz
2366649ba4
fix(agent): avoid counting entries when opening sessions 2026-08-01 01:39:12 +03:00
Christian Klotz
2cc51b9d76
fix(agent): rename session fork module 2026-08-01 01:32:53 +03:00
Christian Klotz
53422a241a
feat(agent): add storage-owned session readers 2026-08-01 01:24:59 +03:00
Christian Klotz
a0bb4a489b
Merge pull request #7400 from earendil-works/refactor/sqlite-session-connection-cleanup
Remove obsolete SQLite session connection internals
2026-07-31 23:00:50 +03:00
Christian Klotz
62f3c61b68
feat(agent): add per-session store queues 2026-07-31 22:56:26 +03:00
Christian Klotz
9f4dfdddbf
fix(agent): remove obsolete SQLite session internals 2026-07-31 22:55:49 +03:00
Christian Klotz
9c3b271be0
fix(agent): make session search query-only 2026-07-31 18:31:04 +03:00
Christian Klotz
15f719489b
fix(agent): scope JSONL entry IDs by path 2026-07-31 17:59:16 +03:00
Christian Klotz
2b765ef529
fix(agent): restore forward session cursor reads
Document complete session store and search composition for scanning and canonical SQLite search.
2026-07-31 17:17:41 +03:00
Christian Klotz
4e81b79615
fix(agent): restrict session construction to repositories 2026-07-31 16:56:51 +03:00
Christian Klotz
f4a96c62b3
docs(agent): simplify session store guidance 2026-07-31 16:42:14 +03:00
Christian Klotz
0b229f1046
docs(agent): document session persistence migration 2026-07-31 16:37:13 +03:00
Christian Klotz
d937ee15d6
docs(agent): remove session API migration example 2026-07-31 16:23:57 +03:00
Christian Klotz
f90b8595db
fix(agent): update harness lifecycle tests 2026-07-31 16:20:59 +03:00
Christian Klotz
11679808c7
Merge remote-tracking branch 'origin/main' into refactor/session-store-file-names
* origin/main: (25 commits)
  fix(tui): prevent phantom alt-screen selections
  feat(tui): add draggable transient scrollbars
  fix(coding-agent): avoid auth read lock contention
  fix(ai): route Fireworks Kimi K3 through OpenAI compatibility
  docs(client): document Bun Unix transport support
  feat(client): add Unix socket transport
  fix: forward autocompleteMaxVisible to custom editors (#7369)
  fix(ai): scope Codex sockets to accounts
  docs(client): note promise helper removal
  refactor(client): retain ES2022 compatibility
  refactor(client): simplify lifecycle architecture
  refactor(client): tighten lifecycle state modeling
  feat(client): add runtime-neutral session client
  fix(coding-agent): decouple auth lock error tests
  fix: custom-compaction through provider via new model runtime complete (#7325)
  fix(ai): preserve Anthropic initial stream block content (#7358)
  fix(coding-agent): update vulnerable brace-expansion
  fix(ai): keep signed empty text/thinking blocks in google history (#7362)
  feat(tui): add stacked alt-screen flashes (#7361)
  fix(coding-agent): reload credentials before reads
  ...
2026-07-31 16:20:00 +03:00
Christian Klotz
2132f8f75f
fix(agent): clarify session persistence ownership 2026-07-31 16:16:42 +03:00
Christian Klotz
7e121c67cf
refactor(client): tighten lifecycle state modeling 2026-07-31 12:19:19 +03:00
Christian Klotz
33bc0a7b83
feat(client): add runtime-neutral session client
Split harness shutdown initiation from settlement so callbacks can request shutdown without deadlocking active work.
2026-07-31 12:19:19 +03:00
Christian Klotz
8eda7d5020
fix(agent): type composed session stores explicitly 2026-07-31 10:37:12 +03:00
Christian Klotz
a1bb7e4483
fix(agent): expose session stores through factories 2026-07-31 10:28:59 +03:00
Christian Klotz
2700511e45
fix(agent): refine session repository API 2026-07-31 09:48:24 +03:00
Christian Klotz
9b50b046d3
Merge pull request #7163 from cristinaponcela/feat/search
feat: search index sqlite
2026-07-31 09:15:12 +03:00
Cristina Poncela Cubeiro
aa784e5eed refactor, cleanup and conditionals for fts5 2026-07-31 05:51:24 +02:00
Cristina Poncela Cubeiro
c984b7c9e2 cleanup 2026-07-31 05:35:19 +02:00
Cristina Poncela Cubeiro
fb0f0f7cd5 rename: vars 2026-07-31 05:19:23 +02:00
Christian Klotz
9cde1725d7
fix(agent): preserve waitForIdle semantics 2026-07-30 22:22:47 +03:00
Christian Klotz
871a990479
refactor(agent): unify harness task tracking 2026-07-30 22:16:08 +03:00
Christian Klotz
bc031ae457
fix(agent): await mutations during harness shutdown 2026-07-30 22:07:37 +03:00
Christian Klotz
82c4859839
feat(agent): add harness shutdown lifecycle 2026-07-30 21:29:30 +03:00
Cristina Poncela Cubeiro
83a7f755cc refactor and cleanup 2026-07-30 16:35:29 +02:00
Cristina Poncela Cubeiro
5e48d41ecd refactor: repo facade 2026-07-30 14:07:58 +02:00
Mario Zechner
96eda8b47f docs(agent): agent-loop building blocks in harness v2
New section 14: streamAssistant and the three-phase tool execution
blocks (prepare/execute/finalize) with durability callbacks, batch rules
(parallel vs sequential, length truncation, terminate), and the
unbreakable agent-loop.ts compatibility requirement with acceptance
criterion. Harness internals rewritten on top of the blocks: runToolBatch
with provisioned-id callbacks, reconciliation via phases 2+3, hook-to-
block wiring table. Auth surface removed from the stream block: Models
resolves auth per request; before_payload/after_response mount on
onPayload/onResponse. Sections 16-22 renumbered.
2026-07-30 12:59:09 +02:00
Armin Ronacher
71efc6f0c1 Add [Unreleased] section for next cycle
Some checks are pending
CI / build-check-test (push) Waiting to run
2026-07-30 00:24:23 +02:00
Armin Ronacher
845d6ff1f6 Release v0.83.0 2026-07-30 00:24:19 +02:00
Cristina Poncela Cubeiro
6a9591ae78 refactor: repo owns session and storage separately 2026-07-29 16:33:20 +02:00
Mario Zechner
4f0437e2d5 docs(agent): harness design v2 (harness-v2.md)
Restructured rewrite: concepts (session = tree + lanes + per-lane
operation logs + global facts), records and crash-site traces, recovery
as reduction, then API and implementation top-down. Renames refs to
lanes, generations to tasks; retires leaf entries, de-trees labels and
name, adds deferred provider requests (stopReason deferred, optional
fetchDeferred/cancelDeferred on ProviderStreams, deliberate lane
suspension), SQLite branch cache with tips and reverse lookup, Unix ms
timestamps. Supersedes harness.md.
2026-07-29 15:41:49 +02:00
Petr Houška
f9476a61e5
fix(ai): update TypeBox nullable array validation (#7243)
Bump TypeBox to 1.3.7 so compiled validators guard array-specific keywords when null is accepted, and cover tool-argument validation with a regression test.

Breaking for extensions: TypeBox 1.3 removes deprecated APIs including Type.Base, Type.Awaited, Type.Promise, Type.AsyncIterator, Type.Iterator, Type.Options, and Value.Mutate. Extensions using these through Pi's bundled TypeBox aliases must migrate to supported TypeBox APIs.

Fixes #7003
2026-07-29 10:31:07 +02:00
Cristina Poncela Cubeiro
3627c01179 fix: do not require index 2026-07-29 10:22:51 +02:00
Cristina Poncela Cubeiro
d5c37c65bf refactor: composable Storage vs Search 2026-07-29 09:50:36 +02:00
Mario Zechner
fdbedcad8a docs(agent): add refs to harness design
Refs: named movable leaf pointers, one active operation per ref, parallel
under one writer. AgentRef surface implemented by AgentHarness for main;
per-ref queues, persisted config, session views, scoped watch() plus
watchSession(). Per-ref recovery and operational-log partitioning (no
parenting; log order is causal order within a ref; session entries carry
no ref, membership derives from parent linkage). Labels and session name
de-treed to global latest-wins records with setter APIs. Named
append-only context invariant (KV cache rationale for deferred writes).
New traces, API examples, and open questions for review.
2026-07-28 16:08:11 +02:00