Commit graph

5196 commits

Author SHA1 Message Date
Christian Klotz
ba9339e8ca
More slop 2026-08-02 22:53:51 +03:00
Christian Klotz
1ceb9ea488
fix(coding-agent): harden experimental client-server CLI
Make connection, protocol, storage, and lock failures fail fast. Align the remote TUI's spacing, activity indicator, and exit behavior with legacy mode.
2026-07-30 15:31:47 +03:00
Christian Klotz
09058b3e35
feat(coding-agent): add Unix socket client-server CLI 2026-07-30 15:30:59 +03:00
Mario Zechner
c13ffe1877 feat(tui): add alternate-screen renderer
Closes #7304
2026-07-30 12:59:48 +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
Cristina Poncela Cubeiro
bb226f9c1f
fix: redundancy in setToolsExpanded (#7313) 2026-07-30 10:57:16 +02:00
Christian Klotz
7659e1c98d
Merge pull request #7289 from earendil-works/worktree/evals-baseline
feat(coding-agent): add comparative Pi eval harness
2026-07-30 11:46:45 +03:00
Christian Klotz
743e1595c4
fix(coding-agent): remove custom eval shuffling 2026-07-30 11:31:41 +03:00
Christian Klotz
ca11823f72
fix(coding-agent): streamline comparative eval ergonomics 2026-07-30 11:12:04 +03:00
Christian Klotz
fce7445b1c
fix(coding-agent): make eval comparison direction explicit 2026-07-30 10:58:07 +03:00
github-actions[bot]
6bcc29a06c chore: approve contributors from issue #7300 2026-07-30 07:30:34 +00:00
Christian Klotz
ac033d1865
fix(coding-agent): align eval comparison report output 2026-07-30 10:19:58 +03:00
Christian Klotz
29f97c20f3
fix(coding-agent): simplify harness table tests 2026-07-30 10:11:08 +03:00
David Brailovsky
05558a7928 fix(ai): correct OpenCode Go provider display name from 'OpenCode Zen Go' to 'OpenCode Go'
fixes #7157
2026-07-30 09:01:42 +02:00
github-actions[bot]
fe1f7230f2 chore: approve contributors from issue #7271 2026-07-30 07:00:58 +00:00
Christian Klotz
d9ae6e2b07
fix(coding-agent): simplify comparative eval internals 2026-07-30 02:27:47 +03:00
Christian Klotz
6a3eae8e48
fix(coding-agent): normalize eval inputs before hashing 2026-07-30 02:13:02 +03:00
Christian Klotz
56e6a8a3fa
fix(coding-agent): record eval sessions after each test 2026-07-30 02:05:43 +03:00
Christian Klotz
2a2e677bed
fix(coding-agent): make source artifacts language neutral 2026-07-30 01:59:30 +03:00
Christian Klotz
3631e82d0e
fix(coding-agent): generalize eval source artifacts 2026-07-30 01:56:06 +03:00
Christian Klotz
eb08aa8fa2
fix(coding-agent): specialize eval attachment types 2026-07-30 01:47:53 +03:00
Christian Klotz
2eed6d219a
fix(coding-agent): remove redundant artifact names module 2026-07-30 01:37:23 +03:00
Christian Klotz
af00848d6b
fix(coding-agent): record eval artifacts with explicit tasks 2026-07-30 01:30:18 +03: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
Armin Ronacher
44b26c9b44 fix(tui): format image fallback changes 2026-07-30 00:20:32 +02:00
Christian Klotz
32f3a97282
feat(coding-agent): add comparative Pi eval harness 2026-07-30 01:17:54 +03:00
Armin Ronacher
f0499a63ff docs: audit changelogs since v0.82.1 2026-07-30 00:00:54 +02:00
Armin Ronacher
34239180ac
fix(ai): preserve function arguments with empty custom payloads
Prefer function payloads when malformed OpenAI-compatible tool-call deltas also include an empty custom object, preserving parsed arguments.

Fixes #7160

Co-authored-by: Sunny Young <isunnyyoung@gmail.com>
2026-07-29 23:54:14 +02:00
github-actions[bot]
21f579a9a7 chore: approve contributors from issue #7160 2026-07-29 21:49:58 +00:00
David Brailovsky
d7b02636a0
Merge pull request #7272 from earendil-works/preserve-original-stop-reason
Adds AssistantMessage.rawStopReason and preserves provider original stop reasons.
Improves certain cases of error messages.
For mistral, change unmapped finish reasons to be "error" instead of "stop".

fixes #7255
2026-07-29 18:34:59 +02:00
David Brailovsky
5a2539a7bd update error messages copy to be more generic 2026-07-29 16:29:37 +00:00
David Brailovsky
bff5ab7174
fix(coding-agent): show system prompt files in startup context (#7266)
Shows file-backed SYSTEM.md and APPEND_SYSTEM.md entries in the interactive startup [Context] section.

fixes #7096
2026-07-29 17:05:22 +02:00
David Brailovsky
4c1a0b92e5 fix(ai): use Qwen thinking controls for token plan reasoning models
fixes #6998 #6951
2026-07-29 14:58:48 +00: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
David Brailovsky
5a53f086ee fix(ai): preserve raw Mistral stop reasons
Treat unmapped Mistral finish reasons as provider errors instead of successful stops.
2026-07-29 14:05:29 +02:00
David Brailovsky
e5ef8d0654 fix(ai): preserve raw OpenAI response statuses 2026-07-29 13:56:21 +02:00
David Brailovsky
fe1c9b6d52 fix(ai): preserve raw OpenAI completion stop reasons 2026-07-29 13:52:14 +02:00
David Brailovsky
637737ca71 fix(ai): preserve raw Bedrock stop reasons 2026-07-29 13:49:42 +02:00
David Brailovsky
926eb15c18 fix(ai): preserve raw Anthropic stop reasons 2026-07-29 13:41:03 +02:00
David Brailovsky
23cb385b67 fix(ai): preserve google providers raw stop reason 2026-07-29 11:31:53 +00:00
Arunprasad Rajkumar
cced6a21da
fix(coding-agent): stop loading AGENTS.md twice in nested git worktrees (#7221)
Running from a linked worktree nested under its main repo loaded the
project's AGENTS.md/CLAUDE.md twice. The ancestor walk climbs from cwd to
the filesystem root, so it picked up the worktree's copy and then the main
repo's copy above it, even though both are the same tracked file.

The walk now drops that one duplicate: the main repo root's copy is skipped
when the worktree root has a context file of the same name. Nothing else
changes. The worktree still inherits the main repo's copy when it has none,
directories above the main repo keep loading, and ordinary repos, sibling
worktrees, submodules and bare layouts are untouched.
2026-07-29 10:31:50 +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
Mario Zechner
fb4ecd633e
fix(tui): shorten image fallback paths and clamp width (#7262)
Image.render() previously emitted the imageFallback line without
truncateToWidth. Long absolute paths (common when callers pass a
filename) exceeded the terminal width and crashed the TUI.

- imageFallback: home-shorten paths to ~/...; OSC 8 file:// link when
  hyperlinks are available and the path is absolute
- Image.render: truncate fallback lines to the render width
- tests for shorten, hyperlink, basename, and width clamp

Co-authored-by: Moritz Hofmann <Moritz.Hofmann@aimentum.de>
2026-07-29 10:27:12 +02:00
github-actions[bot]
7796481e62 chore: approve contributors from issue #7217 2026-07-29 08:24:33 +00:00
github-actions[bot]
a5db0e4f17 chore: approve contributors from issue #7219 2026-07-29 08:23:43 +00:00
github-actions[bot]
e9e86e1c83 chore: approve contributors from issue #7224 2026-07-29 08:21:47 +00:00
Steve Immanuel
0c32e83a35
fix(coding-agent): enable streaming usage for llama.cpp provider (#7258)
llama-server supports OpenAI-spec stream_options.include_usage since
b2b6b55a59 (Sep 2025); any server new enough for router mode sends the
final usage chunk when requested. With the flag hardcoded to false the
provider never requests it, so streamed responses record zero tokens
and session/context accounting stays empty.

Verified against llama-server b10094: with include_usage sent, the
final chunk carries usage (incl. prompt_tokens_details.cached_tokens);
without it, nothing.
2026-07-29 10:03:59 +02:00
Armin Ronacher
027a584790 feat(ai): add per-request fetch injection 2026-07-28 18:51:44 +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