Commit Graph

2887 Commits

Author SHA1 Message Date
DeprecatedLuke 5dfa44f2a3 feat(coding-agent): add idle compaction flow 2026-04-04 11:52:43 +01:00
can1357 f044f3ba75 feat(patch): added language-specific import management with deduplication
- Added language-specific import management for TypeScript, JavaScript, Python, Rust, Go, and C/C++ with automatic deduplication and grouping.
- Added `imports` parameter to patch, hashline, and replace edit operations for structured import/include requests with named, default, namespace, and alias support.
- Added `edit.manageImports` setting to control post-edit import management behavior across all edit operations.
- Implemented language-specific import handlers with parsing, merging, and rendering logic for each supported language.
- Integrated import application into EditTool with feature flag support and comprehensive test coverage across all languages.
2026-04-02 08:36:28 +02:00
can1357 6bb10ca40e feat(modes): enabled external editor integration for plan review and editing workflows
- Added external editor callback support to extension UI dialogs and hook selector for opening plans in external editor.
- Added `matchesAppExternalEditor()` keybinding matcher to detect external editor shortcuts (ctrl+g) across components.
- Added `trimTrailingNewline` option to `openInEditor()` function to preserve trailing newlines when editing externally.
- Modified plan review flow to re-read plan content from disk before approval to reflect external editor changes.
- Refactored plan preview rendering to cache and reuse UI container instead of recreating children on each render.
- Refactored Promise creation in external editor utility to use `Promise.withResolvers()` for cleaner async handling.
2026-04-02 07:43:01 +02:00
can1357 80f771d22f refactor(coding-agent): migrated GitHub CLI utilities to git.github namespace
- Migrated GitHub CLI utilities from gh-cli.ts module to utils/git.ts github namespace.
- Consolidated GitHub CLI command execution (available, run, json, text) into git.github namespace with unified error handling.
- Removed gh-cli.ts module and ControlledGit class infrastructure; updated all tool imports and call sites.
- Exported git utilities from main package entry point for extension use.
2026-04-02 07:39:11 +02:00
can1357 418b6801a0 refactor(coding-agent): migrated git operations to centralized utils module
- Extracted git operations from ControlledGit class into centralized utils/git module with 1276 lines of typed command wrappers.
- Replaced dependency injection of ControlledGit instances with direct cwd string parameters across commit agent tools and workflows.
- Migrated all git command execution from inline shell calls and custom helpers to structured git module API (diff, status, branch, worktree, patch, etc.).
- Removed ControlledGit class, operations.ts, and helper functions (findGitHeadPath, mergeStdoutStderr, joinPatch) now provided by git module.
- Exported git utilities from main package entry point for extension and plugin use.
2026-04-02 07:35:44 +02:00
can1357 8fab9fb600 refactor(tools): restructured text result building to eliminate duplication
- Extracted in-memory text result building logic into reusable #buildInMemoryTextResult method to eliminate duplication between file and resource reading paths.
- Generalized result limit handling via ignoreResultLimits parameter to support skill resources without code duplication.
2026-04-02 07:02:01 +02:00
can1357 ff86b21e8a fix(tools): corrected run collection outcome classification on job failure
- Added early exit in getRunCollectionOutcome when any job fails, preventing incorrect success classification.
2026-04-02 06:54:26 +02:00
can1357 279ae220a4 chore: bump version to 13.18.0 2026-04-02 06:00:18 +02:00
can1357 d6d15a2937 refactor(tools): consolidated fetch into read tool with URL caching
- Consolidated fetch tool into read tool with URL reading capability and caching support.
- Removed standalone fetch tool from all agent prompts and CLI documentation.
- Extended read tool schema with timeout and raw parameters for URL fetch control.
- Added URL caching mechanism to prevent redundant network requests during read operations.
- Refactored fetch module from class-based tool to standalone executeReadUrl function.
- Updated read tool documentation to describe multi-purpose capabilities including web pages, GitHub, Stack Overflow, Wikipedia, Reddit, NPM, arXiv, blogs, and feeds.
2026-04-02 05:59:50 +02:00
can1357 950249f045 config(coding-agent): added gemini-3.1 model variants to designer agent
- Updated designer agent model configuration to include gemini-3.1 variants alongside existing gemini-3 models.
2026-04-02 02:48:09 +02:00
can1357 84e71f2c66 chore: bump version to 13.17.6 2026-04-02 01:07:43 +02:00
can1357 264e02fde3 chore: bump version to 13.17.5 2026-04-02 00:17:12 +02:00
can1357 a6ab60e452 fix(ci): use fflate for zip archive writes and increase PR push test timeout 2026-04-02 00:10:00 +02:00
can1357 25f3a029fb feat(tools): added ZIP archive writing support via fflate library
- Added support for writing to ZIP archives using fflate library for cross-platform compatibility.
- Modified archive writing to detect and handle ZIP files separately from Bun archives.
- Removed GhPrPushTool test case.
2026-04-02 00:08:34 +02:00
can1357 bb01e58865 chore: bump version to 13.17.4 2026-04-01 23:50:36 +02:00
can1357 9498032d68 feat(coding-agent): enabled archive entry writes with automatic creation support
- Added support for writing to archive entries using `archive.ext:path/inside/archive` syntax for .tar, .tar.gz, .tgz, and .zip formats.
- Added ability to create new archives automatically when writing to non-existent archive subpaths with nested directory support.
- Implemented archive path resolution and validation with fallback to plain file writes for non-archive filenames.
- Added comprehensive test coverage for archive write operations including entry updates, archive creation, and fallback behavior.
2026-04-01 21:25:36 +02:00
can1357 513982b16e fix(ci): externalize mupdf from compiled binary and update ci-green test assertions
- Add --external mupdf to bun build --compile to avoid top-level await error
- Update ci-green test to match current prompt template content
2026-04-01 21:07:16 +02:00
can1357 236fedaf2e chore: bump version to 13.17.3 2026-04-01 20:57:14 +02:00
can1357 d4d5c9924e test(coding-agent): removed brittle tests relying on implementation details
- Removed 3 test cases from gh.test.ts that relied on implementation details and external state.
- Removed unused helper functions getCurrentHeadSha() and GhToolDetails import.
- Updated test assertions to use path.resolve() and corrected expected remote name from fork-contrib to forksrc.
- Reformatted else blocks in shell.rs for consistency.
2026-04-01 20:54:50 +02:00
can1357 d8f5bb4be2 feat(coding-agent): replaced markitdown CLI with native markit-ai library for document conversion
- Replaced Python-based markitdown CLI with native markit-ai library for document and notebook conversion.
- Added support for converting Jupyter notebooks (.ipynb) to markdown via markit-ai integration.
- Created markit utility module with file/buffer conversion wrappers and standardized error handling.
- Removed markitdown from Python tools manager and eliminated external CLI dependency.
- Updated fetch, read, and scraper tools to use new markit conversion API across codebase.
- Added test coverage for ipynb file conversion through markit utility.
2026-04-01 20:51:29 +02:00
can1357 9281e6b50e feat(coding-agent): added archive reading support for tar, tar.gz, tgz, zip
- Added archive reading support for .tar, .tar.gz, .tgz, and .zip files with virtual subpath syntax (archive.ext:path/inside/archive).
- Added archive listing and subdirectory navigation capabilities to explore archive contents without extraction.
- Added /tools slash command to display visible agent tools and their capabilities.
- Implemented ArchiveReader module with openArchive(), parseArchivePathCandidates(), and archive content extraction methods.
- Added fflate 0.8.2 dependency for archive decompression support.
- Added comprehensive test coverage for TAR, TAR.GZ, TGZ, and ZIP archive reading with fixture generation utilities.
2026-04-01 20:45:51 +02:00
can1357 e59436ba31 feat(coding-agent): added /tools command to display available agent tools
- Added `/tools` slash command to display agent-visible tools in interactive sessions.
- Added `handleToolsCommand()` method to InteractiveMode to delegate tools display to command controller.
- Added `buildToolsMarkdown()` utility function to generate formatted markdown table of available tools.
- Refactored `showMarkdownPanel()` helper to reduce duplication in markdown display logic across commands.
2026-04-01 20:32:59 +02:00
can1357 2e0186a952 fix(ci): resolve gh_run_watch test hang and hardcoded path
- abortableSleep used Bun.sleep which vitest fake timers do not intercept;
  switch to setTimeout via Promise.withResolvers so vi.useFakeTimers() +
  vi.advanceTimersByTime() work correctly in the polling loop tests
- getCurrentHeadSha() and GhRunWatchTool session cwd used a hardcoded
  /work/pi path; replace with import.meta.dir so the tests resolve the
  real repo HEAD on any machine
- add timeout-minutes: 30 to the CI test job as a safety net against
  future hangs blocking release runs
2026-04-01 20:18:23 +02:00
can1357 5fbfbafa58 chore: bump version to 13.17.2 2026-04-01 19:32:22 +02:00
can1357 5f0944ffe2 feat: added marketplace help command and improved catalog parsing resilience
- Added `/marketplace help` subcommand to display marketplace operations usage guide.
- Enhanced marketplace catalog parsing to skip invalid entries with warnings instead of failing.
- Improved `/marketplace discover` command to suggest official marketplace when no plugins available.
- Fixed marketplace error messages to display error details instead of object stringification.
- Added comprehensive marketplace plugin system documentation covering discovery, installation, and management.
2026-04-01 19:31:48 +02:00
can1357 94edc693cb fix(marketplace): corrected plugin name validation to allow dots
- Corrected plugin name validation regex to allow dots in addition to hyphens.
2026-04-01 19:09:55 +02:00
can1357 68cf52de3c fix(session): corrected artifact storage fallback for non-persistent sessions
- Fixed artifact storage for non-persistent sessions to use in-memory fallback instead of returning undefined, enabling proper spill truncation for all session types.
- Added in-memory artifact map and counter to SessionManager for fallback storage when file-based ArtifactManager is unavailable.
- Updated saveArtifact() JSDoc to reflect new behavior of returning artifact IDs for all sessions.
2026-04-01 19:08:48 +02:00
can1357 5366888205 ux(tools): added animated spinner with status icons to gh_run_watch output
- Enhanced `gh_run_watch` tool call rendering to display animated spinner status and target description (run ID, branch, or current HEAD) with improved visual hierarchy.
- Refactored renderer to use `formatStatusIcon` helper for consistent status display across spinner frames.
2026-04-01 17:44:31 +02:00
can1357 b7c801fab2 feat(tools): added GitHub Actions workflow renderer and enhanced gh-* tool outputs
- Added gh-renderer.ts module with GitHub Actions workflow visualization for terminal output.
- Enhanced gh_pr_view tool to fetch and display inline review comments alongside pull request reviews.
- Improved gh_run_watch tool output with structured job state tracking and failed log formatting.
- Fixed gh_run_watch to resolve explicit branch watches against GitHub API branch head instead of local HEAD.
- Fixed gh_* tool outputs to spill full large results to artifacts instead of pre-truncating.
- Standardized trailing newlines across 100+ prompt template files for POSIX compliance.
2026-04-01 17:35:39 +02:00
can1357 a0f2b0ad99 feat(tools): added gh_pr_checkout and gh_pr_push tools for worktree-based PR management
- Added gh_pr_checkout tool to check out GitHub pull requests into git worktrees with branch metadata.
- Added gh_pr_push tool to push checked-out pull request branches to source fork with force-with-lease support.
- Implemented 15+ git helper functions for worktree, branch, and remote management operations.
- Extended GhPrViewData interface with headRefOid, headRepository, isCrossRepository, and maintainerCanModify fields.
- Added comprehensive integration tests for gh_pr_checkout and gh_pr_push tools with fixture setup and cleanup.
2026-04-01 17:21:27 +02:00
can1357 010a69c7d6 feat(tools): introduced GitHub CLI tools for repository and workflow operations
- Added 7 GitHub CLI tools (repo view, issue view, PR view, PR diff, PR search, issue search, run watch) for repository and workflow operations.
- Added `github.enabled` setting to gate read-only GitHub CLI tools, disabled by default.
- Added bundled `/green` command for iterative CI failure fixing with optional git tag instructions.
- Implemented gh-cli module with GitHub CLI command execution utilities and output parsing.
- Added comprehensive test coverage for GitHub tools and custom commands with mocked CLI interactions.
2026-04-01 17:15:10 +02:00
can1357 7b05dbf9ef Merge remote-tracking branch 'origin/main' into pr-595 2026-04-01 15:36:17 +02:00
can1357 d42975618d Merge remote-tracking branch 'origin/main' into pr-594
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-04-01 15:35:50 +02:00
can1357 b264ddda84 Merge remote-tracking branch 'origin/main' into pr-594
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-04-01 15:34:54 +02:00
can1357 766d81e8e4 Merge remote-tracking branch 'origin/main' into pr-587
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-04-01 15:34:54 +02:00
can1357 268dca8fe8 Merge remote-tracking branch 'origin/main' into pr-587
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-04-01 15:33:13 +02:00
can1357 606f9ac1f5 Merge remote-tracking branch 'origin/main' into pr-586-r2
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-04-01 15:33:13 +02:00
can1357 c667cb3720 docs(coding-agent): add changelog entry for stale replay fix 2026-04-01 15:31:46 +02:00
can1357 522f6b0c8d docs(coding-agent): add changelog entry for inline image cap 2026-04-01 15:31:46 +02:00
can1357 dca0fcb974 fix(coding-agent): validate plugin scope flag 2026-04-01 15:31:46 +02:00
BayLee4 2d5f802daf fix(coding-agent): do not enable web_search if explicitly disabled (#593)
Co-authored-by: le-cameleon <200889489+le-cameleon@users.noreply.github.com>
2026-04-01 15:26:08 +02:00
Vu Anh Nguyen bd2283610f fix(ai): preserve first-event timeout errors for OpenAI stream retries
fixes #591
2026-04-01 15:14:31 +07:00
Vu Anh Nguyen 3860ac986c fix(coding-agent): strip stale assistant OpenAI Responses replay payload on rehydrate
sanitizeRehydratedOpenAIResponsesAssistantMessage now removes the
assistant providerPayload for Responses-family messages, not just the
stale thinkingSignature. After rehydration the native replay snapshot
belongs to a previous live provider connection and replaying it on a
warmed session causes 401 rejections from GitHub Copilot.

User/developer providerPayload is preserved by the caller since it
carries durable compaction and preserved history needed for valid cold
request reconstruction.

Fixes #592
2026-04-01 14:53:28 +07:00
can1357 9b453ce2e5 chore: bump version to 13.17.1 2026-04-01 05:19:32 +02:00
can1357 bccc62eb2e fix: CI reasoning replay and test imports 2026-04-01 05:17:54 +02:00
can1357 906123c97d style: reformat 2026-04-01 04:52:47 +02:00
can1357 77eddf80e9 fix(patch): wrapped long diff lines with continuation gutters
- Replaced truncation with line wrapping for diff output in the edit tool renderer.
- Added `wrapEditRendererLine` to preserve gutter markers and line numbers on continuation lines.
Fixes #578
2026-04-01 04:52:03 +02:00
can1357 6645a7a059 fix(model-registry): filtered disabled providers from model listing
- Applied `disabledProviders` setting to `getAvailable()` and `getDiscoverableProviders()` so `--list-models` and `/model` hide models from disabled providers.
- Initialized settings before model refresh in the `--list-models` code path.
- Added tests verifying disabled providers are excluded from both methods.
Fixes #588
2026-04-01 04:52:03 +02:00
can1357 3b68346123 fix(render-utils): used diff-specific colors for diffstat add/remove
- Replaced success/error theme colors with toolDiffAdded/toolDiffRemoved for diff stats display.
Fixes #589
2026-04-01 04:52:02 +02:00
can1357 cbb9f21363 chore(tools): added napi-rs to auto-generated file detection patterns
- Added napi-rs to known code generator patterns for auto-generated file detection.
2026-04-01 04:52:02 +02:00