Skip to content

Master update - #3622

Merged
GuillaumeDSM merged 26 commits into
masterfrom
dev
Aug 6, 2026
Merged

Master update#3622
GuillaumeDSM merged 26 commits into
masterfrom
dev

Conversation

@GuillaumeDSM

Copy link
Copy Markdown
Member

No description provided.

GuillaumeDSM and others added 25 commits July 31, 2026 09:18
…r created through ServiceFactory

save_service_config() crashed with AttributeError: 'NoneType' object has
no attribute 'config' when NodeApiService.edited_config was never set
(interface initialize() failed but was started anyway). Raise a typed
ServiceConfigurationError instead, and stop silently discarding a failed
interface initialize() so this is visible in logs going forward.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The DSL run_octobot_process operator spawns child bots as
[sys.executable, <cwd>/start.py, ...], but the Docker image never
copied start.py into /octobot, so every process-bound automation
raised "start.py not found" (#3596). Copy start.py into the image
and wire it into the pants docker_image build.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
buildAuthHeader (node-config.ts, logs-export.ts, octochat.ts) fell back to
the literal username "node" and an empty password when no real session
existed, so an unauthenticated or partially-set-up browser sent
Basic node: / Basic address: and the server rejected it as "Incorrect
address or passphrase" (issue #3593) instead of staying unauthenticated.
Now both the wallet address and a stored password are required before a
header is built; otherwise it throws locally instead of hitting the API.

login.tsx's matching "node" fallback (zero wallets configured) now bails
out instead of submitting a fabricated address.

setup/index.tsx and useAuth.ts now persist the password before writing
auth_username, so a failed IndexedDB write (private browsing, blocked
storage) can't leave isLoggedIn() true with no password ever saved --
the race that produced this exact passwordless-session state.

The browser's native auth-popup itself (WWW-Authenticate: Basic on 401)
was already fixed upstream in 98d8db5; this addresses the remaining
report of the passphrase-mismatch error appearing after setup. re #3593

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A pre-multi-wallet OctoBot version stored a bare private-key string at
config["community"]["wallets"][chain_type][chain_network]. The multi-wallet
refactor reused that exact same path to store a list of wallet entry
dicts instead, so upgrading users with an old wallet still there hit
list_wallets() iterating the string character by character and raising
AttributeError: 'str' object has no attribute 'address' -- 500ing
GET /wallets/ and blocking login entirely (issue #3591).

ConfigJsonWalletStorage.load() and DedicatedFileWalletStorage.load() now
treat a non-list value as no wallets stored instead of crashing.
ConfigJsonWalletStorage additionally deletes the invalid legacy value
from config so it stops being read as (invalid) wallet storage content;
setup can then create a new wallet at the now-clean path. re #3591

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Root path returned a bare 404; redirect it to the node web UI when the
frontend build is present, matching the target already used by the
browser auto-open and the legacy dashboard link.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@GuillaumeDSM GuillaumeDSM self-assigned this Aug 6, 2026
@GuillaumeDSM
GuillaumeDSM requested a review from Herklos as a code owner August 6, 2026 07:20
@GuillaumeDSM
GuillaumeDSM merged commit 66c87d6 into master Aug 6, 2026
46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants