Tags: open-gitagent/gitagent
Tags
chore(release): v2.0.2 Republish of the Windows hook-path fix. 2.0.1 on npm was published from a feature branch that predated cc81c67, so it shipped the old guard (`startsWith(allowedBase + "/")`) which always reports "escapes its base directory" on Windows — the safety hook never ran, so `rm -rf` was not blocked. 2.0.2 is built from main and includes: - fix: Windows compatibility for hooks and cli tool (#75) - fix(index): align google provider startup check to GEMINI_API_KEY (#63) - fix(tool-loader): image output from declarative tools via data URI (#62) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat(2.0)!: split voice into @open-gitagent/voice, drop unused deps (#56 ) A hosted dev sandbox blocks every published version (1.5.0–1.5.2 and the predecessor gitclaw 0.5.0–1.4.1) with HTTP 403 on the tarball fetch. The trigger is inside the bundle, not the dep tree. Two contributors plus a user directive to make voice opt-in point to one fix: split the package so voice is a separate optional install, drop unused deps, and shrink the surface scanners actually see. What's in the core (this commit): - Bump 1.5.2 -> 2.0.0 (semver-major because gitagent --voice no longer works on a fresh install of just core) - Drop baileys (declared but never imported), ws (voice-only), @googleworkspace/cli (unused) from dependencies. Drop @types/ws too. - Tighten the 'files' allowlist to exclude dist/voice/ and dist/composio/ - Move shared types/utilities from src/voice/ into the core surface: src/voice/adapter.ts -> src/adapter.ts src/voice/chat-history.ts -> src/chat-history.ts - Remove src/voice/* and src/composio/* (all voice-only). - Re-export the symbols the voice package needs (context, skills, workflows, schedules, schedule-runner, chat history, adapter types, DEFAULT_VOICE_INSTRUCTIONS) from src/exports.ts. - --voice in src/index.ts now dynamic-imports @open-gitagent/voice and prints an install hint if missing. install.sh defaults to installing both packages (curl-bash UX is unchanged); GITAGENT_SLIM=1 opts into a core-only install for sandboxed or CI environments. README + Documentation updated with the migration note and the new two-line install. Results: - Tarball 179.5 kB -> 85.7 kB packed (-52%), 752 kB -> 343 kB unpacked (-54%), 124 files -> 109. Zero dist/voice/* or dist/composio/* in the tarball. node_modules dep count 310 -> 211. - tsc clean; 27/27 tests pass. The matching voice package (@open-gitagent/voice) ships separately.
chore: publish as scoped @open-gitagent/gitagent (#45) Switch the npm package name from the unscoped `gitagent` (which the CI NPM_TOKEN can't create) to the existing scoped `@open-gitagent/gitagent`, which the token can publish. 1.5.0 > 0.2.0 so it becomes the new latest. - package.json + package-lock.json: name -> @open-gitagent/gitagent (bin stays `gitagent`, version stays 1.5.0) - install.sh: scope npm ls/view/install + global-dir refs (the `gitagent` command and display strings are unchanged) - README + Documentation: install command -> npm install -g @open-gitagent/gitagent npm ci + npm run build verified locally.
fix: auto-refresh Realtime session before 60-min cap, recover on expiry OpenAI Realtime sessions are terminated by the server at 60 minutes. Once the session dies, every further WS message from the browser returns "server had an error while processing your request", which persisted in the UI as an unrecoverable failure. This adds two fixes to OpenAIRealtimeAdapter: 1. Proactive refresh — on session.created, start a 55-minute timer that tears down the WS and opens a fresh one with the same instructions, tools, and voice. The user sees a sub-second pause instead of a hard failure. 2. Reactive recovery — when the server sends an error whose message contains "maximum duration" or code is "session_expired", trigger the same reconnect flow instead of surfacing the error. Both paths reuse the existing connectWs + sendSessionUpdateOn logic, including the ephemeral-token fallback for WebContainer-style hosts. Bumps version to 1.4.3. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add edit tool for string replacement and regex-based editing Introduces an 'edit' built-in tool that lets the agent modify files without rewriting them in full. Supports exact string replacement (default, with uniqueness check), replace_all for bulk substitutions, and regex mode with $1-style backreferences and custom flags. Added for both the local filesystem (edit.ts) and E2B sandbox (sandbox-edit.ts), registered in createBuiltinTools. Bumps version to 1.4.2. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: deepen log visibility — global error handlers, HTTP/WS instrume… …ntation - Adds process-level uncaughtException, unhandledRejection, and warning handlers - Logs all HTTP API requests with method, path, status, and duration - jsonReply auto-logs any 400+ response with error detail - Adds HTTP server error and clientError handlers - Adds WebSocket server and per-connection error handlers - Logs unauthorized WS rejections with remote IP - WS message handler now logs errors with stack instead of swallowing - Error objects formatted with full stack traces via formatArg - Startup banner shows agent dir, model, Composio, Telegram, and auth status Bumps version to 1.4.1. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add unified Logs tab to web UI for real-time log viewing Adds a new Logs tab that captures all server-side logs (voice, telegram, whatsapp, triggers, sdk, scheduler) via console intercept and streams them to the browser in real time over WebSocket. Includes source/level filtering, text search, auto-scroll, and a REST endpoint for history. Bumps version to 1.4.0. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PreviousNext