- Extracted common kernel and executor logic into `BaseKernel` and `executor-base` to eliminate duplicated implementations for Julia, Python, and Ruby.
- Migrated shared operational workflows--including session namespacing, environment filtering, and result mapping--to centralized backend helpers.
- Consolidated runtime discovery and resolution logic into a unified `runtime-env` utility module.
- Simplified language-specific modules by delegating subprocess lifecycle, IPC, and configuration management to the newly established base classes.
- Centralized Parallel API utilities and parsing logic into a single module.
- Exported constants and helper functions from `parallel.ts` to replace duplicated definitions in the search provider.
- Updated the search provider to leverage the unified `parseParallelSearchPayload` function with metadata parsing toggled off.
- Moved tokenization, CJK detection, and query logic from `helpers.ts` to `util/regex.ts`.
- Consolidated duplicated CJK character check logic into a single utility function.
- Exported restructured utilities to maintain existing functionality for the beam module.
- Pass `streamIdleTimeoutMs` from model compatibility settings to the streaming logic.
- Update catalog definitions for Sakana models to include a 300,000ms idle timeout.
- Add a test case to verify that the streaming client honors the model-defined idle timeout.
- Implemented `proxy.ts` utilities for HTTP/HTTPS proxying and `NO_PROXY` bypass rules.
- Added `PI_PROXY` and `PI_PROXY_<PROVIDER>` environment variable support for outbound model service requests.
- Integrated `wrapFetchForProxy` into stream dispatch logic to intercept and proxy `fetch` calls.
- Enabled proxy support for `cursor` provider via custom socket tunneling in `http2` client connections.
- Updated AWS credentials resolution to accept and propagate custom `fetch` implementations.
- Implemented Sakana AI and Fugu provider integration including authentication, API base URL resolution, and dynamic model discovery.
- Configured static model definitions and reasoning metadata for the Fugu model series within the catalog.
- Added environment variable support for API configuration and base URL overrides via `SAKANA_*` and `FUGU_*` variables.
- Verified service integration and provider registry registration through comprehensive test suites in both AI and catalog packages.
- Assert the eval tool hides disabled backends from the model-facing wire
schema (language enum + field descriptions), summary, and description by
default (rb/jl off), and advertises them once enabled — including the
enabled-subset case.
- Update the env-flag fallback test for the new rb/jl opt-in defaults and
extend the env guard to PI_RB/PI_JL so the suite is shell-independent.
- Note the opt-in default and dynamic advertising in the changelog.
- Changed default evaluation backend configuration to only enable Python and JavaScript by default.
- Implemented dynamic tool parameter generation to hide Ruby and Julia from the model's schema when they are disabled in settings.
- Updated tool summary and field descriptions to reflect the currently enabled runtime backends.
- Implemented persistent execution backends for Ruby and Julia using dedicated kernel processes and NDJSON-based IPC.
- Integrated language-specific prelude environments, runtime path resolution, and security-focused environment variable filtering.
- Exposed configuration options, tool schema updates, and lifecycle management for seamless agent interaction with both languages.
- Added comprehensive integration tests and updated prompt documentation to support the new evaluation capabilities.
- Centralized draft state and image management by migrating fields from context to the CustomEditor component.
- Standardized transcript row construction by introducing shared helpers for background jobs, IRC traffic, and file mentions.
- Refactored redundant UI logic and helper functions into reusable utility modules to streamline message submission and component rendering.
- Standardized event handler types by consolidating lifecycle definitions into a shared module while maintaining public API stability.
- Removed the `readHashLines` setting to consolidate hashline display logic.
- Simplified `resolveFileDisplayMode` to derive hashline visibility solely from the active edit mode.
- Added automatic cleanup of the `readHashLines` key from existing configuration files.
- Implement `handleWheelAt` to restrict wheel scrolling to the settings pane.
- Update selection movement to support clamping when scrolling at boundaries.
- Add tests to verify boundary behavior and spatial constraints.
- Improved delimiter-balance logic to correctly identify and spare partially deleted structural closers.
- Prevented premature deletion of structural closers by accounting for existing code below the modification range.
- Added support for tracking inserted lines to improve boundary repair accuracy across multi-section updates.
- Refined the suffix-closer identification to skip lines restated by the new payload and account for projected closers appearing after the patch.
- Established shared `subprocess` infrastructure to standardize worker IPC, environment resolution, and error handling.
- Migrated mnemopi, speech-to-text, tiny-model, and TTS clients to utilize consolidated worker-client utilities.
- Implemented common runtime helpers for ONNX model loading, logging, and process readiness probing.
- Eliminated redundant local spawn logic and environment mapping across all inference worker clients.
- Updated system and tool prompts to present dedicated tools as preferred defaults rather than absolute prohibitions.
- Relaxed the hard-forbidding of shell equivalents for file operations, searching, and editing.
- Retained guidance on prioritizing tools for their gitignore semantics, structure, and line-anchoring capabilities.
- Extracted deterministic UUID generation into a shared utility helper.
- Consolidated redundant API key validation and login prompt boilerplate across multiple registry providers into a unified `loginWithApiKey` function.
- Standardized `DeterministicUuid` usage across `auth-gateway`, `cursor` provider, and `devin` provider.
- Introduced `selector-helpers.ts` to centralize reusable list, dashboard, and selection utilities.
- Refactored `AgentDashboard`, `ExtensionList`, `HistoryResultsList`, and `TreeList` to use standardized rendering and navigation helpers.
- Encapsulated viewport padding, scrolling logic, and key matching to reduce code duplication across TUI components.
- Maintained consistent scrollbar themes and keyboard behaviors while simplifying component-specific implementations.
- Consolidated redundant benchmark timing logic into a shared `makeBench` utility.
- Removed duplicate local implementation of `bench` from individual benchmark scripts.
- Extracted incremental byte-stream framing logic into a shared `MessageFramer` class.
- Replaced redundant, per-client implementations in `dap/client.ts` and `lsp/client.ts`.
- Centralized buffer management to avoid O(n^2) allocation patterns during large message bursts.
- Updated logic to verify if the patch prefix already satisfies missing structural openers before sparing deleted suffix lines.
- Fixed a bug where replacement payloads that restated existing suffix tails caused erroneous retention of structural closers.
- Added support for "xhigh" reasoning tier and new model variants, including GPT-5.5 and GCP-5.4 Mini.
- Refactored variant routing and model identification logic to consolidate tier definitions.
- Implemented a standardized variant collapse table to improve Devin provider configuration.
- Disabled parallel tool calls for the Devin provider to ensure request stability.
- Added a 10-image budget for the umans provider to match its request cap.
- Updated the unit tests to verify the correct budget assignment for umans.
Fixes#3227
- Implemented the Devin inference provider, including OAuth flow with PKCE, Connect protocol integration, and streaming support for chat requests.
- Integrated comprehensive Protobuf-based service definitions and generated TypeScript clients for Devin's API infrastructure, including model management and workspace operations.
- Updated the AI and Catalog modules to support dynamic model discovery, provider-specific configuration, and authentication.
- Standardized tool call arguments as `Record<string, unknown>` across provider implementations to ensure type safety.
Filtered failed and incomplete OpenAI Responses image_generation_call items out of native history replay while preserving completed inline results. Added regression coverage for the request shape that produced OpenAI 404s on transient ig_ item ids.\n\nFixes #3225
The login validator pinged `/inference/v1/models`, which Fireworks
serves from the per-account deployment registry and 500s with
`Error listing deployed models` for accounts without active
deployments. Valid `fw_…` keys were rejected during `/login`.
Switched validation to the static control-plane `List Models` API
(`GET /v1/accounts/fireworks/models?filter=supports_serverless=true&pageSize=1`),
the same endpoint discovery already uses. Authentication no longer
depends on the caller owning any deployments.
Fixes#3219
- Refined obfuscation logic to use granular, typed transformations instead of generic object traversal.
- Enforced an 8-character minimum for secret patterns and restricted redaction to user-authored content to prevent false positives.
- Preserved system prompts, tool schemas, and opaque remote replay data to maintain provider context and data integrity.
- Integrated protected snapshot exports with targeted redaction to safeguard sensitive information in shared sessions.
Re-added the isConfigured guard inside applyDefaultSettingOverrides so the
runtime override applied at RPC/ACP startup only fills holes — explicit
embedder/project/--config/global values now survive for task.isolation.{mode,
merge,commits}, task.{eager,batch,maxConcurrency,maxRecursionDepth,disabledAgents,
agentModelOverrides}, memory.backend, memories.enabled, advisor.{enabled,
subagents,syncBacklog,immuneTurns}, plus the RPC-only async.{enabled,maxJobs}
and bash.autoBackground.{enabled,thresholdMs}. The guard was originally added
for #2598 and had quietly regressed, so the override re-asserted the schema
default and clobbered every explicit value — matching the contract problem
#2828 already fixed for the todo paths.
Replaced the prior 'default-disables advisor' test (which codified the
clobbering as the contract) with a comprehensive 'honors explicit
host-defaulted settings' regression covering every contested path across
rpc/rpc-ui/acp.
Fixes#3207
- Enabled Julia language support by adding a sub-syntax definition file.
- Integrated the new syntax into the highlighter by updating the syntax set builder.
- Configured the dependency to support YAML syntax loading via syntect feature flags.
- Updated the mention extraction regex to prevent partial matching when a suffix follows the `[bot]` identifier.
- Added a regression test to ensure that invalid extended suffixes are correctly rejected.
- Implement `has_authorized_impl_event` in the database to retrieve historical authorization state.
- Update `_enforce_impl_authorization` to permit actions if prior events on the issue provided implementation authorization.
- Normalize maintainer logins by stripping `[bot]` suffixes and allow match-regex to ignore them.
- Implemented case-insensitive normalization for bot logins to handle mention handles and `[bot]` suffixes consistently.
- Added support for `ROBOMP_MAINTAINER_LOGINS` to allow authorized non-owner users to execute implementations.
- Refined authorization logic to distinguish between personal repository owners and organizational accounts.
- Updated documentation and added comprehensive tests to verify authorization handling across tasks, workers, and directive processing.
- Updated configuration to strip the '@' prefix from bot login names.
- Granted personal repository owners authorization to trigger implementations regardless of their GitHub author association.
- Included authorizes_impl field when attaching threads to directives.
- Added a test case to ensure the author authorization flag is preserved during directive hydration.
- Introduced `web-palette.ts` to implement the collab-web pink/purple brand identity for HTML exports.
- Updated `generateThemeVars` to support a `palette` option, allowing users to choose between the brand-web aesthetic and a specific TUI theme.
- Configured public exports and the share-viewer script to default to the brand-web palette rather than inheriting the user's terminal theme.
- Refactored `AgentSession.exportToHtml` to align with the new branding defaults while allowing for per-export theme overrides.
- Adjusted `dark.json` background values to ensure better visual consistency across internal surfaces.
Trimmed stored image_generation_call output items before replaying OpenAI Responses native history so provider-only fields like action no longer leak into the next input array.
Added a regression test covering the proxy-rejected replay shape.
Fixes#3201
- Implemented `waitForSelector` and `waitForNavigation` methods in the browser tool API.
- Introduced per-operation fail-fast budget management with dynamic timeout clamping.
- Added validation for selector engines to reject unsupported Playwright-only platform features.
- Standardized error handling to provide descriptive, named timeouts for stalled browser operations.
- Updated model detection to exclude WebP format for Codex-based providers, which do not support it.
- Forced the image resize pipeline to encode to PNG or JPEG for incompatible models to resolve transmission errors.
- Added test coverage to verify that WebP images are re-encoded when using the Codex Responses backend.