文件最后提交记录最后更新时间
refactor(natives): migrated native bindings to NAPI-RS with auto-generated types - Migrated native bindings from TypeScript wrappers to NAPI-RS generated modules with auto-generated type definitions and runtime enums. - Replaced chunk tree API with stateful ChunkState class supporting render, edit, and resolve operations with improved error handling. - Converted callback signatures to error-first pattern (error, result) for shell, PTY, glob, and grep operations. - Introduced type-safe enums for MacOSAppearance, GrepOutputMode, KeyEventType, ImageFormat, and AstMatchStrictness replacing string literals. - Refactored chunk tree implementation with dedicated modules for edit, indent, resolve, and state management with comprehensive validation. - Moved clipboard utilities from native bindings to coding-agent package with improved OSC 52 and Termux compatibility. 1 个月前
feat(hashline)!: disallowed inline payload on op lines, required + rows - Removed inline_body from grammar; op sigils (↑, ↓, :) now accept no trailing content. - Executor emits INLINE_PAYLOAD_ACCEPTED_WARNING when legacy inline form is encountered but still applies the edit leniently. - Updated prompt docs and all tests to use bare op + +-prefixed continuation rows. 5 天前
feat: added block replace syntax with block edits in hashline parser - Added replace block N: syntax in grammar/parser/tokenizer/types, emitting kind: "block" edits with empty-body checks. - Added block-resolution in hashline apply/recovery, wiring BlockResolver to resolve edits with throw/drop unresolved behavior. - Added native blockRangeAt support and exported block range/options types through pi-ast, pi-natives, and JS bindings. - Added coding-agent resolver wiring plus internal visibility/exports updates and new parser, patcher, and setup-wizard tests. 1 天前
refactor(pi-natives): simplified NAPI naming by removing explicit js_name attributes - Removed explicit js_name attributes from NAPI macros across all modules, relying on automatic snake_case to camelCase conversion. - Renamed internal functions in keys.rs for clarity: parse_kitty_sequence_napi() -> parse_kitty_sequence() and parse_kitty_sequence() -> parse_kitty_sequence_bytes(). - Renamed text.rs functions for consistency: set_env_tab_width() -> set_default_tab_width() and get_env_tab_width() -> get_default_tab_width(). - Updated documentation to reflect automatic NAPI naming convention and simplified export mapping tables. 1 个月前
feat(pi-natives): added link-following control to filesystem scan options - Added a follow_links flag to ScanOptions and build_walker so callers could control symlink traversal. - Updated scan callsites so ast, glob, and grep continued skipping symlinks while fd's fuzzy-find enabled link following. - Updated fd scoring to favor fuzzy basename matching for queries without '/', reducing matches based only on ancestor directory names. 20 天前
feat(pi-natives): added link-following control to filesystem scan options - Added a follow_links flag to ScanOptions and build_walker so callers could control symlink traversal. - Updated scan callsites so ast, glob, and grep continued skipping symlinks while fd's fuzzy-find enabled link following. - Updated fd scoring to favor fuzzy basename matching for queries without '/', reducing matches based only on ancestor directory names. 20 天前
feat(pi-natives): added link-following control to filesystem scan options - Added a follow_links flag to ScanOptions and build_walker so callers could control symlink traversal. - Updated scan callsites so ast, glob, and grep continued skipping symlinks while fd's fuzzy-find enabled link following. - Updated fd scoring to favor fuzzy basename matching for queries without '/', reducing matches based only on ancestor directory names. 20 天前
fix(pi-natives): preserved exact brace unions without adding recursive glob prefix - Updated glob pattern construction to skip prepending the recursive **/ prefix for exact brace unions wrapped in {}. - Added an is_exact_brace_union helper that detected brace-only unions without wildcard or bracket meta-characters. - Added tests covering {alpha.txt,beta.txt} as non-recursive and {*.ts,*.tsx} as still receiving the recursive prefix. 1 个月前
fix(coding-agent): improved run lookup and made test temp directories unique - Updated TempDirGuard creation in grep tests to include PID and an atomic sequence, preventing temp path collisions. - Removed the branch filter from GitHub action run queries so results are matched by head_sha only. - Adjusted run-watch calls to the simplified fetchRunsForCommit interface without the branch argument. 6 天前
refactor(pi-natives): simplified NAPI naming by removing explicit js_name attributes - Removed explicit js_name attributes from NAPI macros across all modules, relying on automatic snake_case to camelCase conversion. - Renamed internal functions in keys.rs for clarity: parse_kitty_sequence_napi() -> parse_kitty_sequence() and parse_kitty_sequence() -> parse_kitty_sequence_bytes(). - Renamed text.rs functions for consistency: set_env_tab_width() -> set_default_tab_width() and get_env_tab_width() -> get_default_tab_width(). - Updated documentation to reflect automatic NAPI naming convention and simplified export mapping tables. 1 个月前
refactor(pi-natives): simplified NAPI naming by removing explicit js_name attributes - Removed explicit js_name attributes from NAPI macros across all modules, relying on automatic snake_case to camelCase conversion. - Renamed internal functions in keys.rs for clarity: parse_kitty_sequence_napi() -> parse_kitty_sequence() and parse_kitty_sequence() -> parse_kitty_sequence_bytes(). - Renamed text.rs functions for consistency: set_env_tab_width() -> set_default_tab_width() and get_env_tab_width() -> get_default_tab_width(). - Updated documentation to reflect automatic NAPI naming convention and simplified export mapping tables. 1 个月前
fix(crates): address clippy lints surfaced on linux baseline 20 天前
fix(pi-natives): updated alt key handling for kitty mode and alt+enter decoding - Removed legacy lowercase Alt+arrow byte handling so alt-arrow sequences are matched through kitty-aware CSI/u paths instead of deprecated escape-letter forms. - Added support for alt+enter from both \x1b\r and \x1b\n during key parsing and matching. - Expanded tests to cover mixed Kitty/tmux modes and to restrict legacy uppercase Alt+arrow aliases to non-Kitty protocol mode only. 3 天前
chore: bump version to 15.7.4 1 天前
feat: added macOS power assertion schema and begin/end/reset handling - Added macOS power assertion settings for idle, system, user, and display with schema defaults. - Added idle, system, and user options to MacOSPowerAssertionOptions in TS typings and Rust, preserving display. - Changed agent-session power flow to use begin/end/reset in-flight helpers and avoid manual counter updates. - Updated power assertions to combine multiple kinds per native handle and support safe repeated-stop behavior. - Updated unreleased changelog notes to document the breaking behavior and canceled-prompt unblock correction. 22 天前
feat: updated atom.sed edge handling for object syntax and matching - Replaced atom.sed string syntax with {pat,rep,g?,F?,i?} objects in schema, prompts, and tests. - Changed sed validation defaults so pat is regex, g defaults to global replacement, and F:true forces literal matching. - Fixed sed edge cases by allowing sequential same-anchor edits, handling zero-length matches, and preserving chaining. - Updated native build flow to local --profile defaults, refactored enum generation, and switched totals to total_ms. 1 个月前
feat(coding-agent): added verbatim unicode rule to hashline prompt 20 天前
feat: added auth-gateway usage cache with single-flight 15s ttl fallback - Added AbortSignal propagation and timeout-race handling for broker health, usage, refresh, and snapshot calls. - Added single-flight usage-report caching with 15s TTL, per-caller abort races, and null-on-fail fallback. - Expanded provider schemas and parse/build logic for cache metadata, headers, stop controls, and image/file content. - Hardened auth flows by rejecting refresh sentinels and using timing-safe bearer-token comparisons. 15 天前
fix: corrected child-session behavior to DetachSession for non-term stdin - Renamed non-terminal stdin pipeline tests and updated non-terminal expectations to DetachSession behavior. - Updated child_session_action behavior so non-terminal, non-pipeline stdin now yields DetachSession instead of None. - Updated execute_external_command to skip process_group for detached children and move take_foreground into its foreground arm. - Added async regression coverage for detached pipeline stages and logged the fix in the natives CHANGELOG. 1 天前
feat: Bun 1.3.14 - Raised the Bun minimum version to >=1.3.14 across package metadata, install scripts, and changelog notes. - Removed the Photon native image pipeline and added SIXEL-based sixel support in pi-natives. - Migrated coding-agent image handling and resizing to Bun.Image, including updated tests and a JPEG quality bump to 80. - Added HTTP/2 fetch bootstrap with HTTPS-only fallback and updated Bun build flags for autoload suppression/--keep-names. 19 天前
chore: reformat 5 天前
feat(cross-cutting): added pi-ast/pi-shell crates and rewired pi-natives - Added pi-ast as a new crate with public language, ops, and summary modules and exported SupportLang. - Added AST summary and rewrite APIs in pi-ast, including language inference, overlap-safe edits, and span normalization. - Added pi-shell crate with new Shell and cross-platform Process APIs, session execution, and cancellation-aware runs. - Updated pi-natives to use shared pi_ast/pi_shell APIs, switched to local path deps, and moved minimizer assets to pi-shell. 21 天前
fix(tui): apply Hangul jamo width correction only on macOS The Hangul Compatibility Jamo width correction (U+3131..=U+318E → 1 cell) was applied unconditionally, but macOS terminals (Ghostty, Terminal.app, iTerm2) are the only ones that render jamo as 1 cell. WezTerm and most Linux terminals follow UAX#11 and render them as 2 cells. The unconditional correction caused a width mismatch between the TUI's calculated column positions and the terminal's actual rendering, resulting in corrupted layout and broken Korean input on non-macOS platforms. - Rust: gate the correction with cfg!(target_os = "macos") - TS: gate the correction with process.platform === "darwin" - On non-macOS, use UnicodeWidthStr for multi-char graphemes (perf) Constraint: macOS terminals render jamo as 1 cell despite UAX#11. Rejected: removing the correction entirely — would break macOS. Tested: native build succeeds, typecheck passes. Not-tested: visual verification on macOS terminals. Scope-risk: narrow 6 天前
feat: compressed prompts slightly 1 个月前
refactor(pi-natives): restructured config handling with env_uint! macro and scope validation - Extracted environment variable parsing into centralized env_uint! macro for consistent configuration handling across modules. - Refactored recursion logic to validate scope narrowing before recursing, introducing recursion_narrows_scope() and MIN_RECURSE_SAVINGS constant. - Consolidated static configuration initialization from LazyLock to declarative env_uint! macro in render and cache modules. - Improved control flow statement classification in defaults module by replacing positional candidates with named function-context candidates. 1 个月前
feat: added listWorkspace binding and moved AGENTS.md lookup into tree - Added listWorkspace native binding and API types, exporting bounded workspace trees with AGENTS.md candidates. - Reworked buildWorkspaceTree and buildDirectoryTree to call listWorkspace with 5s timeout defaults. - Replaced startup AGENTS.md discovery with workspace-tree-only scanning and removed legacy AgentsMdSearch session plumbing. - Updated WorkspaceTree and system prompt context to expose agentsMdFiles and aligned tests/changelog expectations. 22 天前