Commit Graph
9734 Commits
Author SHA1 Message Date
can1357 d9d911a58d fix(coding-agent): kept mid-turn command deferral silent
- Reverted the status-line acknowledgment added for deferred panel
  commands: showStatus mounts a Spacer+Text into the transcript, and any
  mid-turn transcript mount re-renders rows below the growing live block,
  duplicating them in native scrollback (issues #4806/#6767).
- The queue still flushes at every settle, terminal or not.
2026-08-06 14:18:50 +02:00
can1357 52ec788afb fix(coding-agent): enforce exact trusted extension paths 2026-08-06 13:24:29 +02:00
can1357 9628c2e2e6 Merge PR #7754: feat(omp): load only explicitly trusted extensions (@oleksoleksoleks) 2026-08-06 13:24:29 +02:00
Alexander KirilinandEric Singer 9154c56a69 feat(omp): load only explicitly trusted extensions
Co-authored-by: Eric Singer <singer.ericm@gmail.com>
2026-08-05 16:32:45 -04:00
can1357 1d181161b0 style: formatted legacy-pi shim changes with biome 2026-08-05 22:18:05 +02:00
can1357 cac0887fee Merge PR #7708: fix(coding-agent): preserve shell quoting in POSIX $EDITOR commands (@metaphorics) 2026-08-05 22:16:29 +02:00
can1357 a6918d3397 Merge PR #7669: fix(catalog): exposed low effort tier for deepseek-v4-flash (@roboomp) 2026-08-05 22:16:29 +02:00
can1357 ae84aff853 Merge PR #7675: fix(memory): hide disabled memory protocol (@roboomp) 2026-08-05 22:16:28 +02:00
can1357 0474e797da Merge PR #7678: fix(session): migrate hashed session dirs back to legacy names (@roboomp) 2026-08-05 22:16:28 +02:00
can1357 1e3419ebac Merge PR #7688: fix(tui): detach plan approval dispatch from serialized event chain (@roboomp) 2026-08-05 22:16:28 +02:00
can1357 65132b3373 fix(computer): correct Wayland recovery guidance 2026-08-05 22:15:47 +02:00
can1357 21a7a32eb6 fix(plugins): only rewrite imported createRequire calls 2026-08-05 22:15:47 +02:00
can1357 c20d95fecc Merge PR #7730: fix(plugins): resolve createRequire deps in legacy-pi shim (@roboomp) 2026-08-05 22:15:47 +02:00
can1357 677b6f10f5 Merge PR #7735: fix(coding-agent): return ToolInfo[] from getAllTools extension API (@roboomp) 2026-08-05 22:15:46 +02:00
can1357 fa8922b40c Merge PR #7667: fix(web-search): keep GPT-5.6 hosted tools top-level (@roboomp) 2026-08-05 21:50:25 +02:00
can1357 c01d18eb57 Merge PR #7657: fix(read): split semicolon-delimited internal URLs (@revofusion) 2026-08-05 21:50:25 +02:00
can1357 dd1035fe98 Merge PR #7665: fix(model-hub): separate status glyph from role label (@jamesarch) 2026-08-05 21:50:25 +02:00
can1357 f37b06eb3b Merge PR #7680: fix(coding-agent): stringify Bash preview env values (@GratefulDave) 2026-08-05 21:50:24 +02:00
can1357 e6ebfd4d49 Merge PR #7705: fix(coding-agent): validate Linux browser executables before launch (@metaphorics) 2026-08-05 21:50:24 +02:00
can1357 7ef3822de9 Merge PR #7706: fix(coding-agent): fall back to xsel for Linux X11 clipboard reads (@metaphorics) 2026-08-05 21:50:24 +02:00
can1357 07af58df93 Merge PR #7694: fix(task): inherit the aliased role's retry fallback chain for subagents (@enieuwy) 2026-08-05 21:50:24 +02:00
can1357 5fee38bdf8 Merge PR #7696: fix(coding-agent): stop Python eval shell children inheriting the runner control channel; resolve Git Bash on Windows (@metaphorics) 2026-08-05 21:50:24 +02:00
can1357 8b8452d62a Merge PR #7698: fix(coding-agent): build WSL mount fallback paths with POSIX semantics (@metaphorics) 2026-08-05 21:50:24 +02:00
can1357 8e53c6bb50 Merge PR #7699: fix(coding-agent): cancelled stale mcp oauth reauthorization (@brymko) 2026-08-05 21:50:23 +02:00
can1357 3de6dabf98 Merge PR #7740: fix(session): isolate rewind reports by checkpoint cycle (@roboomp) 2026-08-05 21:50:23 +02:00
can1357 6d1bd624df fix(advisor): reset completed refusal cascades 2026-08-05 21:50:23 +02:00
can1357 a11eacc9d6 fix(advisor): drop unreachable status guard 2026-08-05 21:50:23 +02:00
can1357 c19665ef90 Merge PR #7745: fix(advisor): fail a refusal over to the model fallback chain (@mvid) 2026-08-05 21:50:23 +02:00
can1357 b42de04b2a Merge PR #7752: fix(coding-agent): enabled multiline matching in ts-no-tiny-functions condition (@zhang17-24) 2026-08-05 21:50:22 +02:00
can1357 0d243ea425 Merge PR #7746: fix(tui): surface deferred command output instead of failing silently (@mvid) 2026-08-05 21:50:01 +02:00
Mantas Vidutis ebdda043b8 Merge upstream/main into fix/deferred-command-output-feedback 2026-08-05 11:43:17 -07:00
Mantas Vidutis a650938d3f Merge upstream/main into fix/advisor-refusal-fallback 2026-08-05 11:43:16 -07:00
Mantas Vidutis 006933ef06 docs(coding-agent): align presentCommandOutput doc with settle-time flush 2026-08-05 11:13:27 -07:00
zhang17-24 9e62597387 fix(coding-agent): enabled multiline matching in ts-no-tiny-functions condition 2026-08-06 01:59:47 +08:00
roboomp 2cf500dcc0 fix(session): isolated rewind reports by checkpoint cycle
- Bounded rewind report recovery to messages created after the active checkpoint.

- Added resumed-context regression coverage for late stale rewind results.

Fixes #7739
2026-08-05 16:26:56 +00:00
roboomp 83496b8211 fix(coding-agent): returned ToolInfo[] from getAllTools extension API
The ExtensionAPI getAllTools() wired to session.getAllToolNames(),
returning bare tool-name strings. Upstream @earendil-works/pi-coding-agent
promises ToolInfo[] with sourceInfo, so extensions loaded through the
legacy-pi shim (e.g. gentle-pi) crashed on t.sourceInfo.source at every
session start.

Added SourceInfo/ToolInfo types plus SessionTools.getAllToolInfos(), which
returns { name, description, parameters, sourceInfo } and classifies each
tool as builtin/mcp/sdk/extension. Rewired every getAllTools action site
(interactive, acp, print/rpc, subagent executor) and the example extension.

Fixes #7732
2026-08-05 15:42:06 +00:00
roboomp 31ee049374 fix(plugins): resolve createRequire deps in legacy-pi shim
The legacy-pi load-time rewriter only recognized static require()/import
specifiers, so an extension resolving a bundled dependency through the
createRequire(base)(spec) factory form (e.g. gentle-pi loading
@heyhuynhgiabuu/pi-pretty) left the bare specifier untouched. In a
compiled binary that argument then fell through to native node_modules
resolution, which is unavailable under --compile, failing extension
validation and session load.

collectExtensionSpecifierReferences now detects createRequire(...)(spec)
factory invocations and records the invoked bare specifier as a require
reference, so the existing pipeline pins it to an absolute path. Relative
specifiers are left alone since they resolve against the createRequire
base, which is not rewritten.

Fixes #7728
2026-08-05 15:02:07 +00:00
metaphorics 7c8f6249ed fix(coding-agent): build WSL mount fallback paths with POSIX semantics 2026-08-05 11:43:02 +00:00
metaphorics e9ee424ded fix(coding-agent): preserve POSIX editor quoting 2026-08-05 11:42:28 +00:00
can1357 e9888367d1 refactor: migrated packages to internal utility modules and removed external dependencies
- Implemented in-house, zero-dependency utility modules in `pi-utils` covering DOM manipulation, markdown parsing, templating, browser automation helpers, and terminal buffers.
- Migrated packages across the repository to consume the new internal utilities and `omptype` schema validators instead of external dependencies.
- Removed multiple external runtime and development dependencies including Zod, Marked, LRU cache, Turndown, and Puppeteer browser packages.
2026-08-05 13:39:09 +02:00
metaphorics 30bbfd69e7 fix(coding-agent): avoid racing browser probe output 2026-08-05 11:19:38 +00:00
metaphorics e1a7c17c2b fix(coding-agent): bound browser version probes 2026-08-05 11:10:20 +00:00
metaphorics 64f2639d61 fix(coding-agent): fall back to xsel for Linux clipboard 2026-08-05 10:51:01 +00:00
metaphorics ecb22957cf fix(coding-agent): validate Linux browser executables 2026-08-05 10:50:31 +00:00
brymko 9e898fa185 fix(coding-agent): cancelled stale mcp oauth reauthorization
Repeated /mcp reauth commands could remain blocked by a prior
unfinished login because each command receives a fresh controller.
Coordinate flows through session-shared state so a replacement cancels
and cleans up the old flow before proceeding.
2026-08-05 18:46:49 +08:00
metaphorics 85177a29ec fix(coding-agent): fail loudly when no POSIX bash exists; add stdin-isolation regression test 2026-08-05 10:42:36 +00:00
Can BölükandGitHub 1e492d6ff9 Merge pull request #7354 from brymko/fix/browser-timeout-crash-recovery
Fix/browser timeout crash recovery
2026-08-05 12:39:14 +02:00
metaphorics f03581dc22 fix(coding-agent): stop eval shell children inheriting the runner control channel; resolve Git Bash on Windows 2026-08-05 10:24:24 +00:00
enieuwy b279f06849 fix(task): inherit the aliased role's retry fallback chain for subagents
A single-model subagent has no fallbacks of its own, so it inherits one
and is pinned to a `subagent:<id>` role. That pin is inserted first in
`retry.fallbackChains` so no other role can capture its routing — which
also means it shadows every configured role chain at runtime.

Inheritance was hardcoded to `chains.default`, so a subagent spawned
through a role alias (the bundled scout's `model: "@smol"`) retried on
the default role's chain instead of its own. With `smol` chained to
composer/grok/luna and `default` chained to gpt-5.6-sol, every scout
fell back onto sol.

Resolve the inherited chain from the role identity still present in the
raw pattern (`@smol` -> `smol`), falling back to `default` when that
role configures no chain. An explicitly empty role chain still means
"no fallbacks", mirroring `expandDefaultRetryFallbackChains`. Explicit
model selectors keep inheriting `default`: they carry no role identity,
and a role assigned the same model must not capture the child's routing.
2026-08-05 18:13:42 +08:00
brymko 5e28f85627 fix(coding-agent): stabilized browser worker startup
Gave browser worker initialization an infrastructure timeout floor so short navigation budgets do not expire before a loaded runner starts the worker.
2026-08-05 17:34:09 +08:00