Commit Graph
3344 Commits
Author SHA1 Message Date
can1357 9bb40deb3c chore: bump version to 14.4.3 2026-04-26 11:17:28 +02:00
can1357 09e5407539 refactor(coding-agent): renamed atom edit verb from set to splice
- Renamed atom tool schema fields and internal `AtomEdit` operation from `set` to `splice` in edit parsing and application.
- Adjusted resolver and conflict checks to use `splice` semantics, including file-loc rejection, blank-line deletion handling, and sed precedence.
- Updated atom edit documentation and tests to describe and verify the new `splice`-based API.
2026-04-26 11:16:52 +02:00
can1357 94e9dcf35f feat: never collapse added lines in the diff 2026-04-26 10:56:11 +02:00
can1357 fe25549d1f refactor(coding-agent): updated hashline/grep anchors to * and |-separated output
- Updated `formatMatchLine` to emit `*` for matched lines, a leading space for context, and a `|` anchor/content separator.
- Revised grep/hashline mismatch messages and prompts to describe the new marker and separator format.
- Aligned affected atom and hashline tests with the updated match-line prefixes and separators.
2026-04-26 10:41:07 +02:00
can1357 413e517c5e feat(coding-agent): added AgentRegistry for IRC session peer lookup
- Added `AgentRegistry` singleton with session registration/unregistration and IRC routing metadata for peer lookups.
- Added IRC messaging prompts and tooling with `irc.enabled` setting, `list/send` tool paths, and peer roster rendering.
- Changed `/btw` to session-side `runEphemeralTurn`, added background IRC exchange flushing, and fixed empty-input checks.
- Added unit tests for IRC tool and BtwController ephemeral behavior, including disabled, busy, not-found, and abort cases.
2026-04-26 10:28:22 +02:00
can1357 8e5ad4665c feat(coding-agent/tools): added unified job tool for poll and cancel
- Added a unified `job` prompt and removed `poll` and `cancel-job` prompts, documenting merged async actions.
- Renamed `PollTool` to `JobTool` and replaced `poll`/`cancel_job` tool exports with a unified `job` tool.
- Expanded `JobTool` schema to accept `poll` and `cancel` IDs, adding cancel-first execution for cancel-only requests.
- Consolidated poll/cancel rendering in `renderJob`, mapping `await`, `poll`, and `cancel_job` keys to the unified job renderer with action badges.
- Updated bash/task prompts and tests to use `job` for polling and cancellation flows, including JobTool auto-background checks.
2026-04-26 09:31:57 +02:00
can1357 1d18640159 chore: bump version to 14.4.2 2026-04-26 09:14:20 +02:00
can1357 4c1a899679 chore: reformat 2026-04-26 09:05:56 +02:00
can1357 0d75c582dd feat(coding-agent): added todo note operations to coding-agent todo-write
- Added `note` support to todo-write with `op: "note"` and required `text` input.
- Added optional `notes: string[]` to todo models and preserved notes in cloning and session task mapping.
- Implemented `op: "note"` append flow and markdown `>` block serialization/parsing for todo import/export.
- Updated HUD todo rendering to append superscript `+N` note markers and show in-progress note bodies.
- Documented note operation, required text field, and note rendering rules in todo-write docs and changelog.
2026-04-26 09:05:42 +02:00
can1357 fc4ffb2f88 feat(coding-agent/modes): added /todo export and import command support
- Added /todo export and /todo import commands to write/read markdown todos, defaulting to TODO.md.
- Changed /todo append from JSON payloads to tokenized [<phase>] <task...> input with quoted tokens.
- Changed /todo start/done/drop/rm matching to fuzzy-resolve task or phase names in TodoCommandController.
- Removed /todo replace from todo-command builtins in CHANGELOG and command registry.
2026-04-26 08:45:17 +02:00
can1357 17c0303a98 feat(coding-agent/edit): added multi-file streaming diff previews for edit tools
- Grouped streaming edit strategies by file path and generated diff previews for each file, with a five-file preview cap.
- Updated patch and hashline preview generation to return per-file preview arrays instead of only the first file.
- Rendered multi-file streaming diffs with file headers in the edit tool UI and stored them when more than one preview is present.
2026-04-26 08:38:55 +02:00
can1357 07cb2cecdf fix(coding-agent/modes): used latest session entries for /todo phase reads
- Added a private #currentPhases helper that reads todo phases from the latest session entries.
- Updated /todo handlers to use #currentPhases so existing todo states are loaded from entries when available.
- Added a fallback to session.getTodoPhases when no entry-derived phases exist.
2026-04-26 08:35:01 +02:00
can1357 7b0ec87e3f feat(coding-agent): expanded file-level atom edits with whole-file sed support
- Updated atom edit location parsing to treat "$" as a file-wide target for prepend, append, and sed, and rejected "^" as a supported locator.
- Added a new sed_file operation that runs line-wise substitutions across the full file, preserving ordering and trailing-newline semantics while failing when no lines match.
- Removed per-entry path overrides from atom resolution and made read selector parsing return "none" for unrecognized selectors to defer handling to specialized readers.
2026-04-26 08:34:49 +02:00
can1357 0334fa9ad0 feat(tools): added live poll progress renderer with periodic snapshots
- Added live poll progress updates emitted every 500ms while jobs run for intermediate UI refreshes.
- Added a poll tool TUI renderer with status counts, duration, and result/error previews.
- Fixed final poll output to use current job snapshots, improving status and duration/reporting accuracy.
2026-04-26 08:32:50 +02:00
can1357 9ca2d2e4cf feat(coding-agent): added /todo slash command actions in interactive-mode
- Added `/todo` slash command with edit, copy, start, done, drop, rm, append, and replace actions.
- Added InteractiveMode context/controller wiring to dispatch `/todo` commands through session runtime.
- Added todo controller parsing, editor-assisted edits, and commit syncing for session, UI, and storage updates.
- Changed todo persistence/restoration behavior, restored grep defaults, and removed chunk read mode and `pi-natives` references.
2026-04-26 08:32:20 +02:00
can1357 ee7351326a chore(coding-agent/config): increased default grep context lines before and after matches
- Set the default "grep.contextBefore" setting to 1 instead of 0.
- Set the default "grep.contextAfter" setting to 3 instead of 0.
2026-04-26 08:25:35 +02:00
can1357 5ea1d55e56 feat: removed chunk-mode modules and read/edit entrypoints from pi-natives
- Removed `pi-natives` chunk language classifier modules and all core chunk subsystems (kind, state, render, edit, resolve).
- Removed chunk-mode CLI/read/edit entrypoints, including `read` command and chunk mode registration/prompt tooling.
- Removed chunk selectors from `read` and `grep` tools, switching behavior to raw/L-range handling.
- Fixed poll wait parsing to keep defaulting to `30s` when the provided value is empty.
2026-04-26 08:19:02 +02:00
can1357 a227adad1b docs(coding-agent/prompts): updated todo phase naming guidance to use roman numerals
- Updated the todo-write prompt to require phase names to use roman-numeral ordinals and reject nonconforming identifiers.
- Refreshed the sample todo JSON invocations to use prefixed phase names such as `I. Foundation`, `II. Auth`, and `III. Verification`.
- Aligned the todo-write phase schema examples with the new roman-numeral phase naming convention.
2026-04-26 08:14:08 +02:00
can1357 b13ffb2052 feat(coding-agent): added configurable poll wait duration timeout
- Added a new `async.pollWaitDuration` setting with enum values for 5s to 5m and defaulted it to 30s.
- Updated PollTool to parse the configured wait duration and include a timeout in the job-promise race before returning.
- Revised the poll tool prompt to describe timeout return behavior and discourage indefinite unproductive polling.
2026-04-26 08:12:09 +02:00
can1357 dc02697097 chore: bump version to 14.4.1 2026-04-26 07:24:08 +02:00
can1357 2f4d5c68c4 feat(coding-agent-lsp): removed built-in taplo from lsp defaults
- Removed built-in `taplo` from `src/lsp/defaults.json`, so TOML files no longer start a default LSP server.
- Condensed many `defaults.json` arrays and option blocks to a compact single-line style.
2026-04-26 07:21:42 +02:00
can1357 5de4774f16 fix: session listing
- Session metadata now stores on-disk size bytes, populated from file stats when collecting sessions.
- The session selector metadata line now renders file size using formatBytes instead of message counts.
- Session test fixtures were updated with the new size property so they match the revised SessionInfo shape.
2026-04-26 06:59:47 +02:00
can1357 725cb89899 feat(coding-agent): added sed atom edits and LINE+ID hashline output
- Added `sed` atom editing with `g`, `i`, and `F` flags, path/anchor parsing, and conflict handling updates.
- Changed hashline and grep/read output to `LINE+ID|content` with `>` match prefixes and `:` context prefixes.
- Fixed atom anchor parsing for path-qualified locs, hyphenated single anchors, and content hints after `|` or `:`.
- Updated prompts, changelog, and tests to document and validate the new hashline and `sed` formats.
2026-04-26 06:44:27 +02:00
can1357 f80348bf34 fix(coding-agent): kept inspect_image tool non-strict and removed cwd from python schema test 2026-04-26 05:49:29 +02:00
can1357 8321996758 feat(tools): implemented op-based github tool replacing gh_* registrations
- Consolidated all former gh_* tools into a single GithubTool that routes execution by a required op field.
- Replaced gh_* tool registrations and render dispatch with `github`, including renderer key and header updates.
- Removed deprecated gh-* tool prompt files and added a unified github.md prompt covering per-op inputs and outputs.
- Updated settings-schema and ci-green prompt guidance to reference the unified github tool and `run_watch` operation.
- Updated tests and tool imports to use `GithubTool`/`githubToolRenderer` with op-based payloads and assertions.
2026-04-26 05:48:07 +02:00
can1357 3a20aca826 chore: bump version to 14.4.0 2026-04-26 05:34:02 +02:00
can1357 0db51b1dbc fix(coding-agent): removed atom sub edits and excluded write from Anthropic strict allowlist
- Removed the atom tool's `sub` verb from its schema, parser, conflict checks, and edit application.
- Updated atom documentation, examples, and tests to reject `sub`-based replacements in favor of `set` replacements.
- Adjusted Anthropic strict-tool handling by dropping `write` from the allowlist and updating alignment expectations.
2026-04-26 05:28:23 +02:00
can1357 52da3674a4 feat(coding-agent): added auto-rebase for stale atom/hashline anchors
- Added auto-rebasing for stale atom and hashline anchors within ±2 lines, with warning diagnostics.
- Removed atom range-locator support and dropped `between` ops, updating docs/tests for `sub` over `set` nudges.
- Changed no-op handling to track unchanged hashline edits and emit contextual hints for unchanged ranges.
- Expanded Anthropic strict error handling to retry on schema-too-complex and compiled-grammar-too-large errors.
- Added anchor-retargeting warning checks and updated edit tests to expect locator and range-locator rejections.
- Updated python tool-call fixtures by adding `title` to executed-cell payloads and adjusting related test expectations.
2026-04-26 05:22:15 +02:00
can1357 652f49442f refactor(coding-agent/tools): wrapped todo_write parameters in an ops object
- Changed the todo-write parameter schema from a bare operations array to an object containing an `ops` array.
- Updated request parsing and renderer logic to consume `params.ops` and `args.ops` when processing todo operations.
- Updated session and unit tests to invoke todo_write with wrapped `{ ops: [...] }` payloads.
2026-04-26 05:11:59 +02:00
can1357 5d6f8a7951 fix(anthropic): restricted strict tools to allowlist and fixed minItems on objects
- Limited strict tool candidates to a named allowlist instead of all opt-in tools.
- Fixed `minItems` stripping to target object-typed schema nodes, not just arrays.
- Enabled strict mode on all remaining coding-agent tools now that the allowlist guards eligibility.
2026-04-26 05:09:53 +02:00
can1357 eb8c20955d test(hashline-tests): updated hashline tests for colon-prefixed anchors
- Adjusted hashline tests to expect colon-prefixed anchors in format, diff preview, and parse assertions.
- Updated ast-edit test regexes and split logic to parse colon-delimited hashline prefixes.
2026-04-26 05:01:53 +02:00
can1357 2c8da2ce09 refactor(ast-tools): reorganized ast-edit+grep hashline sep and lax strict
- Applied HASHLINE_CONTENT_SEPARATOR in AstEditTool output so hashline entries share a shared delimiter.
- Set AstEditTool and AstGrepTool strict defaults to false for more permissive tool call input handling.
2026-04-26 05:01:52 +02:00
can1357 d493f945e0 feat(hashline-formatting): added hashline colon separators across tooling
- Added `HASHLINE_CONTENT_SEPARATOR` and switched hashline formatting to colon separators across hashline helpers.
- Updated hashline prefix regexes in `edit/modes/hashline.ts` to require `:` and stop accepting tab separators.
- Updated `read.ts` and `write.ts` hashline prepending/stripping to match `LINE+ID:` content prefixes.
- Updated `match-line-format.ts` and hashline read-mode docs to document and emit `LINE+ID:content` lines.
2026-04-26 05:01:52 +02:00
can1357 b670d67652 fix(grep-tool): patched grep-tool skip-limit message and test assertion
- Updated GrepTool result-limit messaging to include a concrete next skip hint.
- Updated grep tool test assertion to verify the new skip-hint limit message.
2026-04-26 05:01:52 +02:00
can1357 956e053103 chore(session-payloads): removed task notes from serialized task entries
- Removed task notes from AgentSession serialized task entries.
2026-04-26 05:01:52 +02:00
can1357 e3f7496deb feat(coding-agent): added ordered todo_write ops and sequential execution
- Changed `todo_write` to an ordered `op`-array model with `replace`, `start`, `done`, `rm`, `drop`, `append`.
- Removed legacy multi-field todo payloads and updated tests/fixtures to use ordered `{op, task?, phase?, items?}[]` args.
- Reworked todo operation execution to apply entries sequentially and validate missing or unknown task/phase IDs.
- Updated todo rendering to use `todo.content` only and changed bash artifact labels from `full result` to `raw output`.
2026-04-26 05:00:54 +02:00
can1357 b22837f898 feat(coding-agent): added unified path targets for grep family
- Consolidated grep, ast-grep, and ast-edit on required `path`, replacing `glob`/`lang`/`sel` with inline file, dir, glob, list, and URL targets.
- Changed ast-grep and grep schemas to require a single `pat` string and use `skip` pagination instead of array patterns or offsets.
- Updated argument validation to reject empty `path` and invalid `skip`, and routed grep context to session settings only.
- Updated tool prompts and tests to reflect new path globbing semantics and `first N` truncation output text.
2026-04-26 04:33:38 +02:00
can1357 44ea247cf8 fix(coding-agent/tools): corrected json-tree inline arg truncation logic
- Updated inline argument formatting in formatArgsInline to truncate key/value pairs by width and show ellipsis when values overflow.
- Fixed JSON-tree output to hide harness-internal INTENT_FIELD and __partialJson keys from top-level tool argument rendering.
- Fixed multiline scalar rendering and empty-structure display paths in renderJsonTreeLines after tree-prefix traversal changes.
2026-04-26 04:32:27 +02:00
can1357 d294b8021d fix(coding-agent/tools): aligned Python tool execution to session cwd and removed cwd option
- Disabled strict schema enforcement on AskTool to relax request validation.
- Removed the optional `cwd` field from Python tool parameters and used `session.cwd` for warmup and execution context.
- Updated atom edit test fixtures to pass `set` as arrays instead of scalar strings.
2026-04-26 04:01:33 +02:00
can1357 d0a3791ea6 fix(agent): changed intent tracing marker from _i to i
- Updated the agent loop intent marker constant to use `i` instead of `_i` for tracing fields.
- Updated intent tracing documentation to describe a generic string marker field and cleanup behavior.
- Adjusted related Anthropic and coding-agent tests to match the renamed intent field via shared `INTENT_FIELD` usage.
2026-04-26 03:58:56 +02:00
can1357 fd42aa4c8f fix(coding-agent): adjusted strict validation settings across coding-agent tools
- Updated `CustomToolAdapter` to read `strict` from the wrapped tool instead of hard-coding it.
- Disabled strict validation for `LspTool` and `ResolveTool` by setting their `strict` flags to false.
- Updated `YieldTool` to set `strict` false in its fallback path and remove the local strict accumulator.
2026-04-26 03:47:48 +02:00
can1357 cfaee4c0dc fix(coding-agent/modes): added checks to skip writing error messages to
- Added checks to skip writing error messages to stderr when stopReason is 'error' or 'aborted', as these cases already handle error output separately.
- This prevents duplicate error reporting in print mode when the assistant encounters terminal error conditions.
2026-04-26 03:44:56 +02:00
can1357 0fcc2846cb feat(coding-agent/config): added atom option to edit mode schema
- Extended the edit.mode enum in the coding-agent configuration schema to include atom as an additional option.
2026-04-26 03:36:34 +02:00
can1357 9a6116bb85 fix(ai): resolved strict tool fallback in AI streaming providers
- Added `examples` option to `StringEnum` so generated schemas include examples metadata.
- Added session-state tracking and strict-tools fallback flags for Anthropic and OpenAI streaming providers.
- Added first-token retry fallback from strict to non-strict for Anthropic/OpenRouter 400 compiled-grammar errors.
- Added strict tool-schema normalization, stripping unsupported fields, capping strict tools, and nullable conversion.
- Added assistant `errorMessage` rendering in print mode and assistant message components.
- Added tests for strict retries, grammar-error handling, and strict-schema alignment behavior.
2026-04-26 03:36:21 +02:00
can1357 5cba717ff7 feat(coding-agent): added locator-based atom edits with loc selectors
- Added locator-based atom edits with required `loc`, including inline `file:line`, range, and `^`/`$` selectors.
- Added path resolution via top-level path, entry path, or `path:loc` selectors and flattened multi-target atom execution.
- Removed `del`; required `set/pre/post` to use line arrays and mapped `set: []` to deletion semantics.
- Changed `sub` payloads to required `[find, replace]` tuples and tightened parsing to accept null optional verbs and array-or-null lines.
2026-04-26 03:34:33 +02:00
can1357 17411f3a4b fix(coding-agent): fixed tool validation and branch-cache fallback handling
- Added a regression test for tool argument coercion that preserves quoted edit arrays while stripping optional null fields.
- Updated footer branch-watcher initialization to clear cached branch state when resolving git head fails.
- Set the report_tool_issue tool definition to non-strict mode for looser argument handling.
2026-04-26 03:20:43 +02:00
can1357 c82df1367d fix(edit): collapsed unchanged diff context between distant edit blocks
- Updated generateDiffString to preserve bounded context at both edges of unchanged regions between adjacent changes by adding a middle skip and ellipsis.
- Added a test covering distant edit hunks to verify unchanged lines in the gap are collapsed while change lines remain visible.
2026-04-26 03:17:55 +02:00
can1357 985f2049ab fix(coding-agent/tools): disabled strict tool parameter validation across built-in tools
- Added an optional strict field to CustomTool definitions to support non-strict execution mode.
- Set strict to false across built-in AgentTool and custom tool registrations, including browser, calculator, GitHub, image generation, and related utilities.
- Updated inspect-image tests to reflect the relaxed strict setting on the tool.
2026-04-26 03:17:30 +02:00
can1357 537ee2237e fix(coding-agent/utils): handled ENFILE/EMFILE as optional git metadata errors
- Extended optional git metadata checks to treat ENFILE and EMFILE like missing paths.
- Updated sync and async helper functions to return null for those filesystem errors instead of throwing.
- Documented the status-line branch-rendering fallback for ENFILE/EMFILE failures in the changelog.
2026-04-26 03:16:44 +02:00
can1357 4f85ebe472 fix(coding-agent): corrected gutter marker alignment in diff rendering
- Added `CodeFrameMarker` and `formatCodeFrameLine()` to centralize code-frame gutter formatting.
- Extended diff rendering to preserve `|` and `│` separators, aligning gutter markers and line numbers.
- Reworked AST, grep, hashline, Vim, and diff renderers to use shared line formatting with computed `lineNumberWidth`.
- Updated atom editing flow and tests, including `resolveAtomEntryPaths` migration and new loc-based/edge-case coverage.
- Adjusted benchmark runner early-stop configuration by passing `buildEarlyStop` through prompt collection.
2026-04-26 03:00:51 +02:00