Repository navigation
Master update - #3725
Merged
Merged
Master update#3725
Conversation
Interactive Cloud Agent shells resolve `node` to the platform-provided Node (v22 via /exec-daemon/node) which precedes /usr/bin/node in PATH, even though the repo pins Node 24 (.nvmrc, .cursor/Dockerfile). Make the generated .cursor/env.sh prepend the directory of a system node whose major matches .nvmrc, ahead of the platform node, while keeping the venv bin first so python/OctoBot still resolve to the OctoBot venv. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Optional max_retry_interval samples wait between condition checks using the same randrange semantics as wait(). Re-sample on each scheduling cycle in return_remaining_time and blocking modes. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Assert max_retry_interval in generated DSL when LOOP_INTERVAL_MAX is set and preserve baseline behavior without it. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
ActionsDAGParser emits max_retry_interval when LOOP_INTERVAL_MAX exceeds LOOP_INTERVAL and validates max is not below min. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Structured auth error codes on the node API (401/503 detail.code) and plain-language login UI: inline error, contextual tips, session-expired banner, verify-before-persist session. UTF-8 Basic auth helper; recovery screen copy clarifying broken local sign-in vs wrong passphrase. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Bump @drakkar.software/octobot-protocol consumer range to ^0.9.0 and refresh the workspace package-lock.json so npm ci stays in sync. Co-authored-by: Herklos <herklos@drakkar.software>
Implement passphrase reset via BIP39 seed or hex private key proof, unauthenticated recover API endpoint, dual-bucket rate limiting, and /login/recover-seed UI with success banner on return to login. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Split /login into a layout route with Outlet so /login/recover-seed renders the recovery form instead of the unlock screen. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Do not upgrade the Nth failed recovery response to 429; the entry is_rate_limited check blocks follow-up attempts. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Move recover back link below CTA, drop prove-ownership subheader, and use proof-field placeholders. Show post-recover success via Sonner toast on login instead of an inline banner. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Move dual-bucket failure limiting into node_api_interface core helper; wire recover-from-seed through a thin recovery policy module. RAM-only counters remain per-process (no shared store). Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Move InProcessFailureRateLimiter to octobot_commons. HTTPRateLimiter subclasses it and raises HTTP 429; recover-from-seed uses http_failure_rate_limited with dual-bucket policies unchanged. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com> docs(commons): docstrings for in-process rate limiter methods Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com> refactor(node-api): stack recover rate-limit decorator on route Use @http_failure_rate_limited on recover_wallet_from_seed_route with router.post outermost; HTTP wallet mapping via a thin wrapper decorator. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com> fix(node-ui): remove leftover merge conflict markers in login.tsx Keep Outlet-only login layout; login and recover-seed remain child routes. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Herklos
approved these changes
Oct 1, 2026
Bash treats the BOM as part of the variable name, so source .cursor/agent-seed.env fails and the documented demo seed cannot start. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Cloud agents need the node web UI build. GitHub cloud-env-validate still installs ci-tentacles explicitly. Co-authored-by: Guillaume De Saint Martin <GuillaumeDSM@users.noreply.github.com>
Herklos
approved these changes
Oct 6, 2026
…y smoke test Document how to test a CI-built PyInstaller binary, and add the tooling to do it: BINARY_TESTING_INSTRUCTIONS.md, a curl-only smoke_test.sh, and agent-seed bootstrap scenarios (grid, index, completed, lifecycle) with builders, typed errors, and unit tests. Co-authored-by: Herklos <herklos@drakkar.software>
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.