Repository navigation
Conversation
Register AbTopicManager for system shutdown to ensure topics are saved automatically when the image closes, even if the browser window is not explicitly closed. Added safety checks to prevent creating an empty manager instance during shutdown.
Introduce a helper method to set the default topic manager and announce the change, ensuring UI components correctly refresh. Update existing persistence and test logic to use this method.
* Add openCurrent method to AgenticBrowser class * Reduce default topic stall threshold to 120 seconds * Automate stall recovery for agent topics - Add `stallMonitoringIntervalSeconds` to `AbSettings` - Implement background stall monitoring in `AbTopicManager` - Add `resumePrompt` to `AbTopicGoal` to nudge stalled topics - Decouple topic monitoring and teardown from UI lifecycle * Update goal stall threshold to 120 seconds * Fix AbTopicManager startup and default loading Ensure stalled topic monitoring and package watching are correctly initialized or cleaned up during system startup and when swapping the default manager. * Confirm save on window close in AbBrowserPresenter
* Add timeout handling to orchestration steps Introduce `onTimeout:` to `AbBaseOrchestrationStep` to allow custom handling of timeouts instead of raising an exception. Update step implementations to use `handleTimeout:` for consistent error reporting. * Refactor orchestration timeout handling Replace manual exception passing with `signalTimeout` to encapsulate timeout creation and error handling logic. * Add timeout handling to AbBaseOrchestration forkRunThen: * Refactor orchestration steps to support retryable timeouts Introduce a template method pattern in `AbBaseOrchestrationStep` where `run` handles `AbOrchestrationStepTimeout` exceptions by invoking an optional `onTimeout:` block. Add `retry` capability and convenience methods for configuring wait timeouts across orchestration steps. * Add AbMockOrchestrationForGroupCompletesAfterRetry test mock * Improve orchestration step retry and timeout handling - Reset `lastError` and `stepResult` during retry to ensure clean state. - Ensure `AbOrchestrationGroupParallelStep` unsubscribes from item announcers on completion or timeout using `ensure:`. - Add `resetForRetry` hooks to orchestration steps to properly clear transient state.
Add documentation for `runOnTimeout:`, `forkRunThen:onTimeout:`, and per-step `onTimeout:` handlers to prevent debugger invocation on orchestration timeouts.
Require the use of `forkRunThen:onTimeout:` for all orchestration scripts to ensure background processes handle timeouts gracefully. Add guidance on monitoring and recovery for stalled steps.
Ensure all items in an orchestration group implement resetForRerun by adding the method to mock classes and removing the conditional check in AbOrchestrationGroupStep.
Ensure `waitTimeoutSeconds:` only affects the individual step by using a private copy of `AbSettings` instead of mutating the shared orchestration settings.
Introduce AbTopicGoalChanged announcement to propagate goal updates to connected clients. Update AbTopicGoal and AbTopic to trigger this announcement when descriptions are modified, and ensure the Web UI broadcasts the event.
Add support for positional arguments to specify output directory and generate-only mode, and update documentation to reflect these changes.
Add /workingDirs/list to enumerate agentic-browser subfolders (excluding reserved topic-template/screenshots) with timestamps, and extend /topics/create with optional workingDir + isNewFolder body keys so a caller can reuse an existing folder or require a brand-new one, with path-traversal and reserved-name validation. Enables the web-ui to let users pick or create a Topic's working directory (kanban issue 1789021772221). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This reverts commit 2480335.
* Add workingDir folder selection to Ripple API topic creation Add /workingDirs/list to enumerate agentic-browser subfolders (excluding reserved topic-template/screenshots) with timestamps, and extend /topics/create with optional workingDir + isNewFolder body keys so a caller can reuse an existing folder or require a brand-new one, with path-traversal and reserved-name validation. Enables the web-ui to let users pick or create a Topic's working directory (kanban issue 1789021772221). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Address review: fix root-mismatch, reject empty/dot names, dedupe reserved names - Route /topics/create's workingDir resolution through the same overridable workingDirsRootDirectory used by /workingDirs/list (was hardcoded to AbSettings defaultAgenticBrowserRootDirectory), so tests can isolate filesystem effects and both endpoints agree on the root. - Reject empty/whitespace-only and "." workingDir names, which previously collapsed to the agentic-browser root itself and would have handed a topic the entire root (containing every other topic's folder) as its working directory. - Derive the reserved folder name list from AbTopicTemplateDirectory and AbScreenshotAttachment (each now exposes reservedFolderName) instead of a hardcoded literal array, so a future rename can't silently drift. - Rename newTopicFrom:workingDirPath: to createTopicFrom:workingDirPath: to name its side effects (addTopic:, directory creation) honestly. - Wrap the three create-path tests that exercise workingDir in withTempWorkingDirsRoot:, and add regression tests for empty/"." names. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Use trimBoth instead of deprecated String>>trimmed trimmed is deprecated in Pharo 14 in favor of trimBoth (pharo-project/pharo#18307). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Flatten path-separator checks in validateWorkingDirName: with anySatisfy: Reduces nesting by replacing the chained includesSubstring: or: checks for '..', '/', '\' with a single anySatisfy: over the literal array. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Document /workingDirs/list and /topics/create workingDir/isNewFolder Adds the new /workingDirs/list request endpoint, documents the optional workingDir/isNewFolder body keys on /topics/create, and adds error codes 10009/10010 to the reference. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Rename working directory API fields Refactor `workingDir` to `workingDirectory`, `isNewFolder` to `checkExistingDirectory`, and `/workingDirs/list` to `/workingDirectories/list` for consistency and clarity. * Recategorize error signaling methods in AbTopicManagerRipple --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.