Commit Graph

5728 Commits

Author SHA1 Message Date
can1357 a92d2ce989 feat(coding-agent): removed context argument from eval agent() spawn
Shared background now flows through a '/Users/can/.omp/agent/sessions/-Projects-.tree-pi-commit/2026-06-10T15-36-32-782Z_019eb22d-970e-7000-8964-72c98becf3e8/local' file referenced in each prompt instead of a context string forwarded into the subagent's system prompt. The JS and Python preludes drop the context kwarg from agent(), the subagent system prompt drops the {{#if context}} block and the conversation-context file pointer, and runEvalAgent no longer writes a per-call conversation context file. AgentSession sheds the now-unused formatCompactContext() helper that supplied the file's body, and ToolSession.getCompactContext is removed alongside it.
2026-06-10 17:49:01 +02:00
can1357 fcb8663de8 feat(coding-agent): reworked irc to a send/wait/inbox/list mailbox bus
Replaces the blocking auto-reply IRC turn with a process-global IrcBus and a four-op tool (send/wait/inbox/list). send is fire-and-forget with per-recipient delivery receipts (injected/woken/revived/failed); replies become real turns by the recipient, observed via wait (or the send await:true sugar). Bounded per-agent mailboxes (cap 100) drop oldest on overflow; AgentSession.deliverIrcMessage folds an in-flight delivery in as a non-interrupting aside at the next step boundary, or starts a real wake turn when idle. AgentRegistry/lifecycle handle the idle→woken / parked→revived transitions, so messaging a non-running peer brings it back. Adds a dedicated TUI renderer (directional headers, delivery-outcome coloring, quoted bodies, per-recipient receipt trees, status-badged peer lists with unread counts). irc.timeoutMs is now the default timeout for wait / send await:true. AgentSession sheds the agentRegistry config field, the dedupeIrcReply → dedupeEphemeralReply rename (now used by /btw and /omfg), and the background-channel exchange queue / forwardIrcRelayToMain plumbing the auto-reply model needed.
2026-06-10 17:47:47 +02:00
can1357 1654c759ca feat(coding-agent): added AgentLifecycleManager for idle/parked subagents
Introduces AgentLifecycleManager: when the task executor adopts a finished subagent the manager arms a TTL timer on idle, parks the agent on expiry (disposes the live session, keeps the AgentRef + sessionFile), and revives it on demand via an injected reviver. Only this manager flips parked ↔ idle. AgentRegistry now annotates session: AgentRef["session"] as null exactly when parked/aborted, and sdk.ts wires the lifecycle dispose into main-session teardown, derives agentKind once, and gates ref unregistration on parking so a parked agent stays addressable (history://, revive).
2026-06-10 17:46:02 +02:00
can1357 5406edeed0 refactor(coding-agent): made the job tool always available and dropped async-job gating
Removes isBackgroundJobSupportEnabled and JobTool.createIf; the tool is now registered unconditionally via `new JobTool(s)`. `async.enabled` now gates async bash commands only — the task tool runs asynchronously regardless. Deletes the async/support module and its barrel re-export.
2026-06-10 17:44:31 +02:00
can1357 84175ce4b2 fix(agent): preserved queued steering across externally aborted runs
Interrupting mid-tool execution (e.g. Enter with a pending steer) drained the steering queue into the dying run — it landed in history without a response and the post-abort resume saw an empty queue, so the agent stopped instead of continuing. Steering/follow-up/aside queue polls in runLoopBody and the post-tool-call check in executeToolCalls are now skipped once the run's abort signal fires, leaving the queue intact for Agent.continue().
2026-06-10 17:43:51 +02:00
can1357 03b5c48827 feat(agent): added supersedeReads pruning for redundant tool results
Adds pruneSupersededToolResults() and the opt-in PruneConfig.supersedeKey hook: when a tool call shares a key with a newer one (e.g. a re-read of the same file), the older result is pruned even inside the protectTokens window and replaced with a [Superseded by a newer read of this file] placeholder. Adds readToolSupersedeKey() and the shared splitReadSelector() implementing the read-tool path/selector grammar (including the .. range alias and L-prefix forms) so selector-free reads supersede range reads of the same file and URL-scheme paths are exempt. Strips selectors before tracking in <read-files> compaction lists, so reads dedupe to the base path and match write/edit paths when splitting read-only vs modified lists (selector-polluted lists from earlier compactions self-heal on the next pass). Gated by the new compaction.supersedeReads setting (default on).
2026-06-10 17:43:17 +02:00
can1357 70fc147d3f feat(coding-agent): enabled startup input capture with queued replay and async submit handling
- Added pre-TUI startup input capture that queued non-empty Enter submissions.
- Replayed queued startup submissions after initialization and injected startup editor text into InteractiveMode.
- Handled startup Ctrl+C to clear typed text and Ctrl+D to exit, with detach restoring terminal state.
- Extended TUI Editor `onSubmit` to accept `void | Promise<void>` for async handlers.
2026-06-10 11:20:26 +02:00
can1357 fd06c70dde fix(ask): restored checkmark glyph on custom answers and done option
- Replaced ask-tool icon with success glyph swapped during status sweep.
- Updated tests to expect a single success glyph on custom input.
2026-06-10 11:02:47 +02:00
can1357 6b76463941 fix: fixed stats dashboard asset serving for bundled CLI distributions
- Fixed npm CLI bundling by invoking `generate-client-bundle.ts --generate` before build and `--reset` after.
- Added `PI_BUNDLED` handling in `packages/stats/src/server.ts` and switched bundled distributions to embedded assets.
- Decoded embedded archives via `decodeEmbeddedClientArchive` and treated legacy placeholder content as missing.
- Handled missing dashboard source/build directories as ENOENT during mtime scans to avoid startup crashes.
- Extended `--smoke-test` to start the stats server and validate dashboard HTML contains expected asset markers.
2026-06-10 10:45:31 +02:00
can1357 bbe85b6661 chore: bump version to 15.10.12 2026-06-10 09:53:01 +02:00
can1357 224f56aa3a chore: update changelogs 2026-06-10 09:52:46 +02:00
can1357 316722397a Merge pull request #1896: fix(coding-agent): respect user shell for ! shortcuts 2026-06-10 09:52:28 +02:00
can1357 10c979ca05 fix(coding-agent): detect reftable refStorage values with format suffixes 2026-06-10 09:51:48 +02:00
can1357 f75ee75905 fix(coding-agent): return the checkout root from primaryRoot for non-worktree repos 2026-06-10 09:51:48 +02:00
can1357 56ac63da08 fix(coding-agent): scope antigravity image-gen key resolution to the session and model 2026-06-10 09:51:47 +02:00
can1357 c08e6f8a19 ux(coding-agent): default artifact captures back to unbounded with opt-in capping 2026-06-10 09:51:47 +02:00
can1357 1821e167f4 fix(coding-agent): deobfuscate secrets in ephemeral turns and obfuscate via provider-context hook 2026-06-10 09:51:47 +02:00
can1357 730e9c8e0c fix(acp): honor the explicit autoApprove session flag when skipping the permission gate 2026-06-10 09:51:47 +02:00
can1357 9f7e8551ee fix(coding-agent): guard RPC subagent registry against stale and cross-owner updates 2026-06-10 09:51:47 +02:00
can1357 c67dd4c034 fix(coding-agent): claim MCP OAuth manual input atomically and clear only the owned claim 2026-06-10 09:51:47 +02:00
can1357 280f8be352 fix(coding-agent): cache status-line branch by cwd instead of re-resolving HEAD per render 2026-06-10 09:51:46 +02:00
can1357 da9088964c fix(acp): drain extension prompts before end_turn and fail queued prompts on closed sessions 2026-06-10 09:51:46 +02:00
can1357 7fd0c84f7b fix(coding-agent): report mnemopi status inactive when the session backend is uninitialised 2026-06-10 09:51:46 +02:00
can1357 ffe3b6afd4 fix(coding-agent): rehome TITLE_SYSTEM.md discovery and reload it on cwd change 2026-06-10 09:51:46 +02:00
can1357 1696047d8e fix(coding-agent): reserve all builtin slash-command names against extension commands 2026-06-10 09:51:46 +02:00
can1357 4068bfc304 fix(coding-agent): key python kernel sessions by resolved interpreter 2026-06-10 09:51:45 +02:00
can1357 7d0f154a92 fix(coding-agent): clear cached Settings.init promise on failure so retries work 2026-06-10 09:51:45 +02:00
can1357 adf0b02972 fix(coding-agent): type boolean settings without defaults as possibly undefined 2026-06-10 09:51:45 +02:00
can1357 95146192e9 fix(coding-agent): evaluate enabledModels globs and fuzzy selectors in the sync ACP filter 2026-06-10 09:51:45 +02:00
can1357 c9235db8bd fix(coding-agent): make command-backed provider api keys authoritative and retryable 2026-06-10 09:51:45 +02:00
can1357 4561cdfbd4 ux(coding-agent/task): reordered live task progress to show finished agents first
- Added a stable progress-ordering helper that moved pending and running agents below completed and failed ones.
- Applied this ordering to top-level and nested live task-progress rendering so finished entries render first.
- Added a renderer test and changelog note covering the finished-before-unfinished progress ordering.
2026-06-10 09:51:43 +02:00
roboomp cafd957f5d fix(providers): disabled ollama thinking for off turns
Propagated explicit thinking-off state through the agent loop so provider requests receive disableReasoning instead of an undefined effort. Added Ollama and agent-session regressions for the :off path.\n\nFixes #2239
2026-06-10 07:41:58 +00:00
handlecusion bbf8216768 fix(coding-agent): avoid interactive fish shortcuts 2026-06-10 16:36:09 +09:00
handlecusion 9820a5233f test(coding-agent): stabilize CI expectations 2026-06-10 16:21:43 +09:00
handlecusion 2f76c48160 test(coding-agent): align bash shortcut harness 2026-06-10 16:07:59 +09:00
handlecusion 2d7d717029 fix(coding-agent): tighten user shell routing 2026-06-10 16:07:59 +09:00
handlecusion 8b9c4fa1b9 fix(coding-agent): respect user shell for shortcuts 2026-06-10 16:07:59 +09:00
can1357 e3501e3f76 chore: fix merge issues 2026-06-10 08:35:51 +02:00
can1357 7205289ece Merge pull request #2201: feat(coding-agent): add title system prompt override 2026-06-10 08:32:10 +02:00
can1357 4a5686a120 Merge pull request #2176: feat(minimizer): deterministic shell-output minimizer 2026-06-10 08:32:10 +02:00
can1357 719875ac9a Merge pull request #2163: fix(tui): omit hidden thinking placeholder 2026-06-10 08:32:10 +02:00
can1357 d080645b94 Merge pull request #2161: fix(cli): reject ambiguous extensions command 2026-06-10 08:32:10 +02:00
can1357 db3a54cbe5 Merge pull request #2108: feat(memory): add runtime API and exact vector index 2026-06-10 08:32:09 +02:00
can1357 11c53051bf Merge pull request #2097: fix(acp): skip permission gate when yolo mode is explicitly enabled 2026-06-10 08:32:09 +02:00
can1357 d30dca302f Merge pull request #2044: fix(coding-agent): apply enabledModels filter to ACP model list 2026-06-10 08:32:09 +02:00
danzaio 3e9b5ea796 test(cli): avoid inline import in guard test 2026-06-10 08:31:37 +02:00
danzaio e2c7c45ff8 fix(cli): limit extensions guard to bare command 2026-06-10 08:31:37 +02:00
danzaio da1ad85dbe fix(cli): reject ambiguous extensions command 2026-06-10 08:31:37 +02:00
can1357 3984740926 fix(changelog): move hidden-thinking entry to Unreleased
Rebase auto-merge landed the entry inside the released 15.10.9 section
with a duplicate '### Fixed' header.

Addresses review feedback on #2163.
2026-06-10 08:31:35 +02:00
danzaio e5f37a5585 fix(tui): update hidden thinking expectations 2026-06-10 08:31:35 +02:00